@vue-interface/activity-indicator
Version:
An Vue activity indicator component.
65 lines (56 loc) • 2.84 kB
CSS
@theme {
--activity-indicator-circle-orbit-width: 2.5em;
--activity-indicator-circle-orbit-height: 2.5em;
--activity-indicator-circle-orbit-position: relative;
--activity-indicator-circle-orbit-text-align: center;
--activity-indicator-circle-orbit-animation: activity-indicator-circle-orbit-rotate 2.0s infinite linear;
--activity-indicator-circle-orbit-dot-width: 60%;
--activity-indicator-circle-orbit-dot-height: 60%;
--activity-indicator-circle-orbit-dot-display: inline-block;
--activity-indicator-circle-orbit-dot-position: absolute;
--activity-indicator-circle-orbit-dot-top: 0;
--activity-indicator-circle-orbit-dot-bg: currentColor;
--activity-indicator-circle-orbit-dot-border-radius: 100%;
--activity-indicator-circle-orbit-dot-animation: activity-indicator-circle-orbit-bounce 2.0s infinite ease-in-out;
--activity-indicator-circle-orbit-dot2-top: auto;
--activity-indicator-circle-orbit-dot2-bottom: 0;
--activity-indicator-circle-orbit-dot2-delay: -1.0s;
--activity-indicator-circle-orbit-rotate-transform: rotate(360deg);
--activity-indicator-circle-orbit-rotate-bounce-scale-start: scale(0.0);
--activity-indicator-circle-orbit-rotate-bounce-scale-end: scale(1.0);
}
@utility activity-indicator-circle-orbit {
width: var(--activity-indicator-circle-orbit-width);
height: var(--activity-indicator-circle-orbit-height);
position: var(--activity-indicator-circle-orbit-position);
text-align: var(--activity-indicator-circle-orbit-text-align);
animation: var(--activity-indicator-circle-orbit-animation);
}
@utility activity-indicator-circle-orbit-dot {
width: var(--activity-indicator-circle-orbit-dot-width);
height: var(--activity-indicator-circle-orbit-dot-height);
display: var(--activity-indicator-circle-orbit-dot-display);
position: var(--activity-indicator-circle-orbit-dot-position);
top: var(--activity-indicator-circle-orbit-dot-top);
background-color: var(--activity-indicator-circle-orbit-dot-bg);
border-radius: var(--activity-indicator-circle-orbit-dot-border-radius);
animation: var(--activity-indicator-circle-orbit-dot-animation);
&:nth-child(2) {
top: var(--activity-indicator-circle-orbit-dot2-top);
bottom: var(--activity-indicator-circle-orbit-dot2-bottom);
animation-delay: var(--activity-indicator-circle-orbit-dot2-delay);
}
}
@keyframes activity-indicator-circle-orbit-rotate {
100% {
transform: var(--activity-indicator-circle-orbit-rotate-transform);
}
}
@keyframes activity-indicator-circle-orbit-bounce {
0%, 100% {
transform: var(--activity-indicator-circle-orbit-rotate-bounce-scale-start);
}
50% {
transform: var(--activity-indicator-circle-orbit-rotate-bounce-scale-end);
}
}