@vue-interface/activity-indicator
Version:
An Vue activity indicator component.
160 lines (130 loc) • 5.71 kB
CSS
@theme {
--activity-indicator-spinner-width: 2.5em;
--activity-indicator-spinner-height: 2.5em;
--activity-indicator-spinner-bg: currentColor;
--activity-indicator-spinner-animation: activity-indicator-spinner 1.2s infinite ease-in-out both;
--activity-indicator-spinner-bar-width: 10%;
--activity-indicator-spinner-bar-height: 33.333%;
--activity-indicator-spinner-bar-margin: 0 auto;
--activity-indicator-spinner-bar-display: block;
--activity-indicator-spinner-bar-content: '';
--activity-indicator-spinner-position: relative;
--activity-indicator-spinner-child-position: absolute;
--activity-indicator-spinner-child-width: 100%;
--activity-indicator-spinner-child-height: 100%;
--activity-indicator-spinner-child-left: 0;
--activity-indicator-spinner-child-top: 0;
--activity-indicator-spinner-spinner2-rotate: rotate(30deg);
--activity-indicator-spinner-spinner3-rotate: rotate(60deg);
--activity-indicator-spinner-spinner4-rotate: rotate(90deg);
--activity-indicator-spinner-spinner5-rotate: rotate(120deg);
--activity-indicator-spinner-spinner6-rotate: rotate(150deg);
--activity-indicator-spinner-spinner7-rotate: rotate(180deg);
--activity-indicator-spinner-spinner8-rotate: rotate(210deg);
--activity-indicator-spinner-spinner9-rotate: rotate(240deg);
--activity-indicator-spinner-spinner10-rotate: rotate(270deg);
--activity-indicator-spinner-spinner11-rotate: rotate(300deg);
--activity-indicator-spinner-spinner12-rotate: rotate(330deg);
--activity-indicator-spinner-spinner2-delay: -1.1s;
--activity-indicator-spinner-spinner3-delay: -1s;
--activity-indicator-spinner-spinner4-delay: -0.9s;
--activity-indicator-spinner-spinner5-delay: -0.8s;
--activity-indicator-spinner-spinner6-delay: -0.7s;
--activity-indicator-spinner-spinner7-delay: -0.6s;
--activity-indicator-spinner-spinner8-delay: -0.5s;
--activity-indicator-spinner-spinner9-delay: -0.4s;
--activity-indicator-spinner-spinner10-delay: -0.3s;
--activity-indicator-spinner-spinner11-delay: -0.2s;
--activity-indicator-spinner-spinner12-delay: -0.1s;
}
@utility activity-indicator-spinner {
width: var(--activity-indicator-spinner-width);
height: var(--activity-indicator-spinner-height);
position: var(--activity-indicator-spinner-position);
& .activity-indicator-spinner {
width: var(--activity-indicator-spinner-child-width);
height: var(--activity-indicator-spinner-child-height);
position: var(--activity-indicator-spinner-child-position);
left: var(--activity-indicator-spinner-child-left);
top: var(--activity-indicator-spinner-child-top);
&::before {
content: var(--activity-indicator-spinner-bar-content);
display: var(--activity-indicator-spinner-bar-display);
margin: var(--activity-indicator-spinner-bar-margin);
width: var(--activity-indicator-spinner-bar-width);
height: var(--activity-indicator-spinner-bar-height);
background-color: var(--activity-indicator-spinner-bg);
animation: var(--activity-indicator-spinner-animation);
}
}
}
@utility activity-indicator-spinner2 {
transform: var(--activity-indicator-spinner-spinner2-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner2-delay);
}
}
@utility activity-indicator-spinner3 {
transform: var(--activity-indicator-spinner-spinner3-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner3-delay);
}
}
@utility activity-indicator-spinner4 {
transform: var(--activity-indicator-spinner-spinner4-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner4-delay);
}
}
@utility activity-indicator-spinner5 {
transform: var(--activity-indicator-spinner-spinner5-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner5-delay);
}
}
@utility activity-indicator-spinner6 {
transform: var(--activity-indicator-spinner-spinner6-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner6-delay);
}
}
@utility activity-indicator-spinner7 {
transform: var(--activity-indicator-spinner-spinner7-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner7-delay);
}
}
@utility activity-indicator-spinner8 {
transform: var(--activity-indicator-spinner-spinner8-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner8-delay);
}
}
@utility activity-indicator-spinner9 {
transform: var(--activity-indicator-spinner-spinner9-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner9-delay);
}
}
@utility activity-indicator-spinner10 {
transform: var(--activity-indicator-spinner-spinner10-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner10-delay);
}
}
@utility activity-indicator-spinner11 {
transform: var(--activity-indicator-spinner-spinner11-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner11-delay);
}
}
@utility activity-indicator-spinner12 {
transform: var(--activity-indicator-spinner-spinner12-rotate);
.activity-indicator-spinner &::before {
animation-delay: var(--activity-indicator-spinner-spinner12-delay);
}
}
@keyframes activity-indicator-spinner {
0%, 39%, 100% { opacity: 0; }
40% { opacity: 1; }
}