@use "sass:math"; @import 'mixins/mixins'; @import 'mixins/var'; @import 'common/var'; :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; } }