123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- @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: getCssVar('mask-color');
- margin: 0;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- transition: opacity getCssVar('transition-duration');
- @include when(fullscreen) {
- position: fixed;
- .#{$namespace}-loading-spinner {
- margin-top: calc(
- (0px - getCssVar('loading-fullscreen-spinner-size')) / 2
- );
- .circular {
- height: getCssVar('loading-fullscreen-spinner-size');
- width: getCssVar('loading-fullscreen-spinner-size');
- }
- }
- }
- }
- @include b(loading-spinner) {
- top: 50%;
- margin-top: calc((0px - getCssVar('loading-spinner-size')) / 2);
- width: 100%;
- text-align: center;
- position: absolute;
- .#{$namespace}-loading-text {
- color: getCssVar('color-primary');
- margin: 3px 0;
- font-size: 14px;
- }
- .circular {
- display: inline;
- height: getCssVar('loading-spinner-size');
- width: getCssVar('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: getCssVar('color-primary');
- stroke-linecap: round;
- }
- i {
- color: getCssVar('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;
- }
- }
|