jan/web/styles/components/loader.scss
2023-11-09 23:07:01 +07:00

137 lines
2.6 KiB
SCSS

.loader {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
.loader-inner {
transform: translateY(-50%);
top: 50%;
position: absolute;
width: 100%;
color: white;
padding: 0 100px;
text-align: center;
}
.loader-inner label {
opacity: 0;
display: inline-block;
margin: 0 4px;
}
@keyframes loaderDot {
0% {
opacity: 0;
transform: translateX(-300px);
}
33% {
opacity: 1;
transform: translateX(0px);
}
66% {
opacity: 1;
transform: translateX(0px);
}
100% {
opacity: 0;
transform: translateX(300px);
}
}
.loader-inner label:nth-child(6) {
-webkit-animation: loaderDot 3s infinite ease-in-out;
animation: loaderDot 3s infinite ease-in-out;
}
.loader-inner label:nth-child(5) {
-webkit-animation: loaderDot 3s 100ms infinite ease-in-out;
animation: loaderDot 3s 100ms infinite ease-in-out;
}
.loader-inner label:nth-child(4) {
-webkit-animation: loaderDot 3s 200ms infinite ease-in-out;
animation: loaderDot 3s 200ms infinite ease-in-out;
}
.loader-inner label:nth-child(3) {
-webkit-animation: loaderDot 3s 300ms infinite ease-in-out;
animation: loaderDot 3s 300ms infinite ease-in-out;
}
.loader-inner label:nth-child(2) {
-webkit-animation: loaderDot 3s 400ms infinite ease-in-out;
animation: loaderDot 3s 400ms infinite ease-in-out;
}
.loader-inner label:nth-child(1) {
-webkit-animation: loaderDot 3s 500ms infinite ease-in-out;
animation: loaderDot 3s 500ms infinite ease-in-out;
}
.bubble-loader {
position: relative;
margin-top: 8px;
height: 32px;
@apply bg-secondary;
border-radius: 20px;
width: 56px;
display: inline-flex;
justify-content: center;
align-items: center;
}
.bubble-loader span {
width: 8px;
height: 8px;
border-radius: 50%;
display: inline-block;
position: absolute;
left: 50%;
margin-left: -4px;
animation: 3s infinite linear;
}
.bubble-loader span:nth-child(1) {
@apply bg-secondary-foreground/50;
animation: DotLeft 1.5s infinite linear;
}
.bubble-loader span:nth-child(2) {
@apply bg-secondary-foreground/50;
z-index: 100;
}
.bubble-loader span:nth-child(3) {
@apply bg-secondary-foreground/50;
animation: DotRight 1.5s infinite linear;
}
@keyframes DotRight {
0% {
-webkit-transform: translateX(14px);
}
50% {
-webkit-transform: translateX(-14px);
}
100% {
-webkit-transform: translateX(14px);
z-index: 200;
}
}
@keyframes DotLeft {
0% {
-webkit-transform: translateX(-14px);
z-index: 200;
}
50% {
-webkit-transform: translateX(14px);
}
100% {
-webkit-transform: translateX(-14px);
}
}