mirror-web/_src/styles/3-wave.scss
2024-04-21 13:17:19 +08:00

65 lines
1.3 KiB
SCSS

/*
* Usage:
*
<div class="sk-wave">
<div class="sk-rect sk-rect1"></div>
<div class="sk-rect sk-rect2"></div>
<div class="sk-rect sk-rect3"></div>
<div class="sk-rect sk-rect4"></div>
<div class="sk-rect sk-rect5"></div>
</div>
*
*/
@use "./utils.scss" as utils;
@use "./bootstrap_vars.scss" as bs;
$spinkit-spinner-margin: 40px auto !default;
$spinkit-size: 40px !default;
$spinkit-spinner-color: #333 !default;
.sk-wave {
$rectCount: 5;
$animationDuration: 1.2s;
$delayRange: 0.4s;
margin: $spinkit-spinner-margin;
width: $spinkit-size * 1.25;
height: $spinkit-size;
text-align: center;
font-size: 10px;
.sk-rect {
background-color: $spinkit-spinner-color;
height: 100%;
width: 6px;
display: inline-block;
animation: sk-waveStretchDelay $animationDuration infinite ease-in-out;
@include utils.dark {
background-color: bs.$body-secondary-color-dark;
}
&:not(:last-child) {
margin-right: 0.3em;
}
}
@for $i from 1 through $rectCount {
.sk-rect#{$i} {
animation-delay: -$animationDuration +
calc($delayRange / ($rectCount - 1)) *
($i - 1);
}
}
}
@keyframes sk-waveStretchDelay {
0%,
40%,
100% {
transform: scaleY(0.4);
}
20% {
transform: scaleY(1);
}
}