mdc.ripple.css 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. /**
  2. * @license
  3. * Copyright Google LLC All Rights Reserved.
  4. *
  5. * Use of this source code is governed by an MIT-style license that can be
  6. * found in the LICENSE file at https://github.com/material-components/material-components-web/blob/master/LICENSE
  7. */
  8. @-webkit-keyframes mdc-ripple-fg-radius-in {
  9. from {
  10. -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  11. animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  12. /* @noflip */
  13. /*rtl:ignore*/
  14. -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  15. transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  16. }
  17. to {
  18. /* @noflip */
  19. /*rtl:ignore*/
  20. -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  21. transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  22. }
  23. }
  24. @keyframes mdc-ripple-fg-radius-in {
  25. from {
  26. -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  27. animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  28. /* @noflip */
  29. /*rtl:ignore*/
  30. -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  31. transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  32. }
  33. to {
  34. /* @noflip */
  35. /*rtl:ignore*/
  36. -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  37. transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  38. }
  39. }
  40. @-webkit-keyframes mdc-ripple-fg-opacity-in {
  41. from {
  42. -webkit-animation-timing-function: linear;
  43. animation-timing-function: linear;
  44. opacity: 0;
  45. }
  46. to {
  47. opacity: var(--mdc-ripple-fg-opacity, 0);
  48. }
  49. }
  50. @keyframes mdc-ripple-fg-opacity-in {
  51. from {
  52. -webkit-animation-timing-function: linear;
  53. animation-timing-function: linear;
  54. opacity: 0;
  55. }
  56. to {
  57. opacity: var(--mdc-ripple-fg-opacity, 0);
  58. }
  59. }
  60. @-webkit-keyframes mdc-ripple-fg-opacity-out {
  61. from {
  62. -webkit-animation-timing-function: linear;
  63. animation-timing-function: linear;
  64. opacity: var(--mdc-ripple-fg-opacity, 0);
  65. }
  66. to {
  67. opacity: 0;
  68. }
  69. }
  70. @keyframes mdc-ripple-fg-opacity-out {
  71. from {
  72. -webkit-animation-timing-function: linear;
  73. animation-timing-function: linear;
  74. opacity: var(--mdc-ripple-fg-opacity, 0);
  75. }
  76. to {
  77. opacity: 0;
  78. }
  79. }
  80. .mdc-ripple-surface {
  81. --mdc-ripple-fg-size: 0;
  82. --mdc-ripple-left: 0;
  83. --mdc-ripple-top: 0;
  84. --mdc-ripple-fg-scale: 1;
  85. --mdc-ripple-fg-translate-end: 0;
  86. --mdc-ripple-fg-translate-start: 0;
  87. -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  88. will-change: transform, opacity;
  89. position: relative;
  90. outline: none;
  91. overflow: hidden;
  92. }
  93. .mdc-ripple-surface::before, .mdc-ripple-surface::after {
  94. position: absolute;
  95. border-radius: 50%;
  96. opacity: 0;
  97. pointer-events: none;
  98. content: "";
  99. }
  100. .mdc-ripple-surface::before {
  101. transition: opacity 15ms linear, background-color 15ms linear;
  102. z-index: 1;
  103. /* @alternate */
  104. z-index: var(--mdc-ripple-z-index, 1);
  105. }
  106. .mdc-ripple-surface::after {
  107. z-index: 0;
  108. /* @alternate */
  109. z-index: var(--mdc-ripple-z-index, 0);
  110. }
  111. .mdc-ripple-surface.mdc-ripple-upgraded::before {
  112. -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
  113. transform: scale(var(--mdc-ripple-fg-scale, 1));
  114. }
  115. .mdc-ripple-surface.mdc-ripple-upgraded::after {
  116. top: 0;
  117. /* @noflip */
  118. /*rtl:ignore*/
  119. left: 0;
  120. -webkit-transform: scale(0);
  121. transform: scale(0);
  122. -webkit-transform-origin: center center;
  123. transform-origin: center center;
  124. }
  125. .mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after {
  126. top: var(--mdc-ripple-top, 0);
  127. /* @noflip */
  128. /*rtl:ignore*/
  129. left: var(--mdc-ripple-left, 0);
  130. }
  131. .mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after {
  132. -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
  133. animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
  134. }
  135. .mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after {
  136. -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
  137. animation: mdc-ripple-fg-opacity-out 150ms;
  138. /* @noflip */
  139. /*rtl:ignore*/
  140. -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  141. transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  142. }
  143. .mdc-ripple-surface::before, .mdc-ripple-surface::after {
  144. top: calc(50% - 100%);
  145. /* @noflip */
  146. /*rtl:ignore*/
  147. left: calc(50% - 100%);
  148. width: 200%;
  149. height: 200%;
  150. }
  151. .mdc-ripple-surface.mdc-ripple-upgraded::after {
  152. width: var(--mdc-ripple-fg-size, 100%);
  153. height: var(--mdc-ripple-fg-size, 100%);
  154. }
  155. .mdc-ripple-surface[data-mdc-ripple-is-unbounded],
  156. .mdc-ripple-upgraded--unbounded {
  157. overflow: visible;
  158. }
  159. .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,
  160. .mdc-ripple-upgraded--unbounded::before,
  161. .mdc-ripple-upgraded--unbounded::after {
  162. top: calc(50% - 50%);
  163. /* @noflip */
  164. /*rtl:ignore*/
  165. left: calc(50% - 50%);
  166. width: 100%;
  167. height: 100%;
  168. }
  169. .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before, .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,
  170. .mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before,
  171. .mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after {
  172. top: var(--mdc-ripple-top, calc(50% - 50%));
  173. /* @noflip */
  174. /*rtl:ignore*/
  175. left: var(--mdc-ripple-left, calc(50% - 50%));
  176. width: var(--mdc-ripple-fg-size, 100%);
  177. height: var(--mdc-ripple-fg-size, 100%);
  178. }
  179. .mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,
  180. .mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after {
  181. width: var(--mdc-ripple-fg-size, 100%);
  182. height: var(--mdc-ripple-fg-size, 100%);
  183. }
  184. .mdc-ripple-surface::before, .mdc-ripple-surface::after {
  185. background-color: #000;
  186. /* @alternate */
  187. background-color: var(--mdc-ripple-color, #000);
  188. }
  189. .mdc-ripple-surface:hover::before, .mdc-ripple-surface.mdc-ripple-surface--hover::before {
  190. opacity: 0.04;
  191. /* @alternate */
  192. opacity: var(--mdc-ripple-hover-opacity, 0.04);
  193. }
  194. .mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before, .mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before {
  195. transition-duration: 75ms;
  196. opacity: 0.12;
  197. /* @alternate */
  198. opacity: var(--mdc-ripple-focus-opacity, 0.12);
  199. }
  200. .mdc-ripple-surface:not(.mdc-ripple-upgraded)::after {
  201. transition: opacity 150ms linear;
  202. }
  203. .mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after {
  204. transition-duration: 75ms;
  205. opacity: 0.12;
  206. /* @alternate */
  207. opacity: var(--mdc-ripple-press-opacity, 0.12);
  208. }
  209. .mdc-ripple-surface.mdc-ripple-upgraded {
  210. --mdc-ripple-fg-opacity: var(--mdc-ripple-press-opacity, 0.12);
  211. }
  212. /*# sourceMappingURL=mdc.ripple.css.map*/