Files
dsProject/dsBase/WebRoot/html/cdn/theme-chalk/src/loading.scss
2025-08-14 15:45:08 +08:00

105 lines
2.0 KiB
SCSS

@use 'sass:math';
@use 'mixins/mixins' as *;
@use 'mixins/var' as *;
@use 'common/var' as *;
:root {
@include set-component-css-var('loading', $loading);
}
@include b(loading-parent) {
@include m(relative) {
position: relative !important;
}
@include m(hidden) {
overflow: hidden !important;
}
}
@include b(loading-mask) {
position: absolute;
z-index: 2000;
background-color: rgba(255, 255, 255, 0.9);
margin: 0;
top: 0;
right: 0;
bottom: 0;
left: 0;
transition: opacity var(--el-transition-duration);
@include when(fullscreen) {
position: fixed;
.#{$namespace}-loading-spinner {
margin-top: calc((0px - var(--el-loading-fullscreen-spinner-size)) / 2);
.circular {
height: var(--el-loading-fullscreen-spinner-size);
width: var(--el-loading-fullscreen-spinner-size);
}
}
}
}
@include b(loading-spinner) {
top: 50%;
margin-top: calc((0px - var(--el-loading-spinner-size)) / 2);
width: 100%;
text-align: center;
position: absolute;
.#{$namespace}-loading-text {
color: var(--el-color-primary);
margin: 3px 0;
font-size: 14px;
}
.circular {
display: inline;
height: var(--el-loading-spinner-size);
width: var(--el-loading-spinner-size);
animation: loading-rotate 2s linear infinite;
}
.path {
animation: loading-dash 1.5s ease-in-out infinite;
stroke-dasharray: 90, 150;
stroke-dashoffset: 0;
stroke-width: 2;
stroke: var(--el-color-primary);
stroke-linecap: round;
}
i {
color: var(--el-color-primary);
}
}
.#{$namespace}-loading-fade-enter-from,
.#{$namespace}-loading-fade-leave-to {
opacity: 0;
}
@keyframes loading-rotate {
100% {
transform: rotate(360deg);
}
}
@keyframes loading-dash {
0% {
stroke-dasharray: 1, 200;
stroke-dashoffset: 0;
}
50% {
stroke-dasharray: 90, 150;
stroke-dashoffset: -40px;
}
100% {
stroke-dasharray: 90, 150;
stroke-dashoffset: -120px;
}
}