@vue-interface/activity-indicator
Version:
An Vue activity indicator component.
58 lines (48 loc) • 1.92 kB
CSS
@theme {
--activity-indicator-dots-font-size: 1em;
--activity-indicator-dots-position: relative;
--activity-indicator-dots-child-width: 1em;
--activity-indicator-dots-child-height: 1em;
--activity-indicator-dots-child-bg: currentColor;
--activity-indicator-dots-child-border-radius: 100%;
--activity-indicator-dots-child-display: inline-block;
--activity-indicator-dots-child-animation: activity-indicator-dots 1.4s infinite ease-in-out both;
--activity-indicator-dots-child-margin-right: 0.2em;
--dots-delay-1: -0.32s;
--dots-delay-2: -0.16s;
--activity-indicator-dots-scale-0: scale(0);
--activity-indicator-dots-scale-1: scale(1.0);
}
@utility activity-indicator-dots {
font-size: var(--activity-indicator-dots-font-size);
position: var(--activity-indicator-dots-position);
& > div {
width: var(--activity-indicator-dots-child-width);
height: var(--activity-indicator-dots-child-height);
background-color: var(--activity-indicator-dots-child-bg);
border-radius: var(--activity-indicator-dots-child-border-radius);
display: var(--activity-indicator-dots-child-display);
&:not(:last-child) {
margin-right: var(--activity-indicator-dots-child-margin-right);
}
}
}
@utility activity-indicator-dots-bounce1 {
animation: var(--activity-indicator-dots-child-animation);
animation-delay: var(--dots-delay-1);
}
@utility activity-indicator-dots-bounce2 {
animation: var(--activity-indicator-dots-child-animation);
animation-delay: var(--dots-delay-2);
}
@utility activity-indicator-dots-bounce3 {
animation: var(--activity-indicator-dots-child-animation);
}
@keyframes activity-indicator-dots {
0%, 80%, 100% {
transform: var(--activity-indicator-dots-scale-0);
}
40% {
transform: var(--activity-indicator-dots-scale-1);
}
}