59 lines
1.2 KiB
SCSS
59 lines
1.2 KiB
SCSS
@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;
|
|
}
|