hall.scss 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. page-hall {
  2. ion-content {
  3. background: #3f50b4 !important;
  4. }
  5. // Animation properties
  6. $anim-width: 200px;
  7. $anim-height: 250px;
  8. $anim-duration: 4s;
  9. // Splash properties
  10. $splash-width: $anim-width;
  11. $splash-height: $anim-width / 2;
  12. $splash-origin: $splash-height / 2;
  13. $water-level: $splash-origin;
  14. // Drip properties
  15. $drip-size: 15px;
  16. $drip-pos: ($splash-width / 2) - ($drip-size / 2);
  17. $drip-rebound: 40px;
  18. $drip-re-size: 5px;
  19. $drip-re-pos: ($splash-width / 2) - ($drip-re-size / 2);
  20. // Colours
  21. $c-drip: #FFF;
  22. $c-splash: #FFF;
  23. $c-bg: #43A2CE;
  24. .drip {
  25. width: $anim-width;
  26. height: $anim-height;
  27. display: flex;
  28. flex-wrap: wrap;
  29. justify-content: center;
  30. margin: auto;
  31. position: relative;
  32. &:before {
  33. position: absolute;
  34. left: $drip-pos;
  35. top: 0;
  36. content: '';
  37. width: $drip-size;
  38. height: $drip-size;
  39. background-color: $c-drip;
  40. border-radius: 50%;
  41. opacity: 0;
  42. animation: drip $anim-duration ease infinite;
  43. }
  44. &:after {
  45. box-sizing: border-box;
  46. position: absolute;
  47. bottom: 0;
  48. left: 0;
  49. content: '';
  50. width: 0px;
  51. height: 0px;
  52. border: solid 4px $c-drip;
  53. border-radius: 50%;
  54. opacity: 0;
  55. animation: splash $anim-duration ease infinite;
  56. }
  57. }
  58. @keyframes drip {
  59. 10% {
  60. top: 0;
  61. opacity: 1;
  62. animation-timing-function: cubic-bezier(.24,0,.76,.14);
  63. }
  64. 25% {
  65. opacity: 1;
  66. top: $anim-height - $water-level;
  67. animation-timing-function: ease-out;
  68. width: $drip-size;
  69. height: $drip-size;
  70. left: $drip-pos;
  71. }
  72. 30% {
  73. opacity: 1;
  74. top: $anim-height - ($water-level + $drip-rebound);
  75. width: $drip-re-size;
  76. height: $drip-re-size;
  77. animation-timing-function: ease-in;
  78. left: $drip-re-pos;
  79. }
  80. 33% {
  81. top: $anim-height - $water-level;
  82. opacity: 0;
  83. animation-timing-function: ease-out;
  84. left: $drip-re-pos;
  85. }
  86. 33.001% {
  87. opacity: 0;
  88. }
  89. 100% {
  90. opacity: 0;
  91. }
  92. }
  93. @keyframes splash {
  94. 0% {
  95. opacity: 0;
  96. }
  97. 25% {
  98. bottom: $splash-height / 2;
  99. left: $splash-width / 2;
  100. opacity: 0;
  101. width: 0px;
  102. height: 0px;
  103. }
  104. 25.001% {
  105. opacity: 1;
  106. }
  107. 33% {
  108. bottom: 0;
  109. left: 0;
  110. opacity: 0;
  111. width: $splash-width;
  112. height: $splash-height;
  113. }
  114. 33.001% {
  115. bottom: $splash-height / 2;
  116. left: $splash-width / 2;
  117. opacity: 1;
  118. width: 0px;
  119. height: 0px;
  120. }
  121. 43% {
  122. bottom: 0;
  123. left: 0;
  124. opacity: 0;
  125. width: $splash-width;
  126. height: $splash-height;
  127. }
  128. 43.001% {
  129. opacity: 0;
  130. }
  131. }
  132. }