You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

138 lines
2.7 KiB

@use "sass:map";
@use "sass:list";
$loadingThemeList: (
(
name: "primary",
textColor: var(--vxe-ui-font-primary-color),
bgColor: var(--vxe-ui-font-primary-tinge-color)
),
(
name: "success",
textColor: var(--vxe-ui-status-success-color),
bgColor: var(--vxe-ui-status-success-tinge-color)
),
(
name: "info",
textColor: var(--vxe-ui-status-info-color),
bgColor: var(--vxe-ui-status-info-tinge-color)
),
(
name: "warning",
textColor: var(--vxe-ui-status-warning-color),
bgColor: var(--vxe-ui-status-warning-tinge-color)
),
(
name: "danger",
textColor: var(--vxe-ui-status-danger-color),
bgColor: var(--vxe-ui-status-danger-tinge-color)
),
(
name: "error",
textColor: var(--vxe-ui-status-error-color),
bgColor: var(--vxe-ui-status-error-tinge-color)
)
);
.vxe-loading {
display: none;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 99;
user-select: none;
color: var(--vxe-ui-loading-color);
background-color: var(--vxe-ui-loading-background-color);
.vxe-loading--spinner {
&:before,
&:after {
background-color: var(--vxe-ui-font-primary-color);
}
}
@for $index from 0 to list.length($loadingThemeList) {
$item: list.nth($loadingThemeList, $index + 1);
&.theme--#{map.get($item, name)} {
color: map.get($item, textColor);
background-color: map.get($item, bgColor);
.vxe-loading--spinner {
&:before,
&:after {
background-color: map.get($item, bgColor);
}
}
}
}
&.is--visible {
display: block;
}
& > .vxe-loading--chunk,
& > .vxe-loading--wrapper {
width: 100%;
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
text-align: center;
}
.vxe-loading--default-icon {
font-size: 1.4em;
}
.vxe-loading--text {
padding: 0.4em 0;
}
.vxe-loading--spinner {
display: inline-block;
position: relative;
width: 56px;
height: 56px;
&:before,
&:after {
content: "";
width: 100%;
height: 100%;
border-radius: 50%;
opacity: 0.6;
position: absolute;
top: 0;
left: 0;
animation: bounce 2.0s infinite ease-in-out;
}
&:after {
animation-delay: -1.0s;
}
}
@keyframes bounce {
0%, 100% {
transform: scale(0);
} 50% {
transform: scale(1);
}
}
}
.size--mini {
.vxe-loading {
.vxe-loading--spinner {
width: 38px;
height: 38px;
}
}
}
.size--small {
.vxe-loading {
.vxe-loading--spinner {
width: 44px;
height: 44px;
}
}
}
.size--medium {
.vxe-loading {
.vxe-loading--spinner {
width: 50px;
height: 50px;
}
}
}