@import "../base"; @import "./config"; %ripple { position: absolute; z-index: $z-index-high; pointer-events: none; background-color: currentColor; border-radius: 50%; transform-origin: 50% 50%; } .wrapper { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: $z-index-normal; pointer-events: none; } .normal { @extend %ripple; transition-duration: $ripple-duration; &.restarting { transform: translate3d(-50%, -50%, 0) scale(0); transition-property: none; opacity: $ripple-final-opacity; } &.active { transform: translate3d(-50%, -50%, 0) scale(1); transition-property: transform; opacity: $ripple-final-opacity; } &:not(.active):not(.restarting) { transform: translate3d(-50%, -50%, 0) scale(1); transition-property: opacity, transform; opacity: 0; } } .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; }