@import "../base"; @import "./config"; %ripple { position: absolute; z-index: $z-index-high; pointer-events: none; background-color: currentColor; border-radius: 50%; transform-style: preserve-3d; transform: translate3d(-50%, -50%, 0); backface-visibility: hidden; will-change: width, height, opacity; } .wrapper { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: $z-index-normal; pointer-events: none; } .normal { @extend %ripple; width: 0; height: 0; opacity: $ripple-final-opacity; transition-timing-function: $animation-curve-linear-out-slow-in; transition-duration: $ripple-duration; transition-property: height, width; &:not(.active) { opacity: 0; transition-property: height, width, opacity; &.restarting { transition-property: none; } } } .loading { @extend %ripple; @include ripple-loading(ripple, $ripple-size, $ripple-size); top: 50%; left: 50%; width: $ripple-size; height: $ripple-size; opacity: $ripple-final-opacity; animation-name: ripple; animation-duration: $ripple-duration; animation-timing-function: $animation-curve-linear-out-slow-in; animation-iteration-count: infinite; }