UNPKG

wetrade-design

Version:

一款多语言支持Vue3的UI框架

265 lines (228 loc) 5.16 kB
@import '../../style/themes/index'; @import '../../style/mixins/index'; @spin-prefix-cls: ~'@{wd-prefix}-spin'; @spin-dot-default: @text-color-secondary; .@{spin-prefix-cls} { .reset-component(); position: absolute; display: none; color: @brand-primary; text-align: center; vertical-align: middle; opacity: 0; transition: transform 0.3s @ease-in-out-circ; &-spinning { position: static; display: inline-block; opacity: 1; &:not(.@{spin-prefix-cls}-sm), &:not(.@{spin-prefix-cls}-lg) { height: 24px; } } &-nested-loading { position: relative; height: 100%; // 考虑高度不存在的情况 > div > .@{spin-prefix-cls} { position: absolute; top: 0; left: 0; z-index: 4; display: block; width: 100%; height: 100%; // max-height: 400px; .@{spin-prefix-cls}-dot { position: absolute; top: 50%; left: 50%; margin: -(@spin-dot-size / 2); } .@{spin-prefix-cls}-text { position: absolute; top: 50%; width: 100%; padding-top: ((@spin-dot-size - @font-size-base) / 2) + 2px; text-shadow: 0 1px 2px @shadow-color-inverse; } &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot { margin-top: -(@spin-dot-size / 2) - 10px; } } > div > .@{spin-prefix-cls}-sm { .@{spin-prefix-cls}-dot { margin: -(@spin-dot-size-sm / 2); } .@{spin-prefix-cls}-text { padding-top: ((@spin-dot-size-sm - @font-size-base) / 2) + 2px; } &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot { margin-top: -(@spin-dot-size-sm / 2) - 10px; } } > div > .@{spin-prefix-cls}-lg { .@{spin-prefix-cls}-dot { margin: -(@spin-dot-size-lg / 2); } .@{spin-prefix-cls}-text { padding-top: ((@spin-dot-size-lg - @font-size-base) / 2) + 2px; } &.@{spin-prefix-cls}-show-text .@{spin-prefix-cls}-dot { margin-top: -(@spin-dot-size-lg / 2) - 10px; } } > div > .@{spin-prefix-cls}-placement-top { .@{spin-prefix-cls}-dot { // margin-top: 0; top: 56px; } .@{spin-prefix-cls}-text { display: none; } } } &-container { position: relative; transition: opacity 0.3s; height: 100%; // 考虑高度不存在的情况 &::after { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 10; display: ~'none \9'; width: 100%; height: 100%; background: @spin-container-bg; opacity: 0; transition: all 0.3s; content: ''; pointer-events: none; } } &-blur { clear: both; opacity: 0.5; user-select: none; pointer-events: none; &::after { opacity: 0.9; pointer-events: auto; } } // tip // ------------------------------ &-tip { color: @spin-dot-default; } // dots // ------------------------------ &-dot { position: relative; display: inline-block; font-size: @spin-dot-size; .square(1em); &-item { position: absolute; display: block; width: 9px; height: 9px; background-color: @brand-primary; border-radius: 100%; transform: scale(0.75); transform-origin: 50% 50%; opacity: 0.3; animation: antSpinMove 2s infinite linear alternate; &:nth-child(1) { top: 0; left: 0; } &:nth-child(2) { top: 0; right: 0; animation-delay: 0.4s; } &:nth-child(3) { right: 0; bottom: 0; animation-delay: 0.8s; } &:nth-child(4) { bottom: 0; left: 0; animation-delay: 1.2s; } } &-spin { transform: rotate(45deg); animation: wdRotate 1.2s infinite linear; &-line { position: absolute; top: 0; left: 0; z-index: 10; } &-bg { position: absolute; top: 0; left: 0; transform: rotate(150deg); z-index: 1; color: @brand-lighter; } } // &::before { // display: block; // position: absolute; // content: ''; // width: 22px; // /* left: 1px; */ // top: 1px; // /* margin: 1px; */ // height: 22px; // border-radius: 22px; // border: 5px solid @brand-lighter; // } } // Sizes // ------------------------------ // small &-sm &-dot { font-size: @spin-dot-size-sm; i { width: 6px; height: 6px; } } // large &-lg &-dot { font-size: @spin-dot-size-lg; i { width: 14px; height: 14px; } } &&-show-text &-text { display: block; } } @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { /* IE10+ */ .@{spin-prefix-cls}-blur { background: @component-background; opacity: 0.5; } } @keyframes antSpinMove { to { opacity: 1; } } @keyframes wdRotate { to { transform: rotate(405deg); } } @import './rtl';