Spaces:
Running
Running
File size: 1,779 Bytes
94004a2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | /* ββ Progress primitive βββββββββββββββββββββββββββββββββββββββββββ */
.ui-progress {
width: 100%;
background: rgba(0, 0, 0, 0.3);
border-radius: var(--radius-sm);
overflow: hidden;
position: relative;
}
/* sizes */
.ui-progress--size-xs { height: 2px; }
.ui-progress--size-sm { height: 4px; }
.ui-progress--size-md { height: 6px; }
/* tones (fill colour) */
.ui-progress--brand .ui-progress__fill { background: linear-gradient(90deg, var(--color-brand), var(--color-accent)); }
.ui-progress--success .ui-progress__fill { background: linear-gradient(90deg, var(--color-success), var(--color-accent)); }
.ui-progress--warn .ui-progress__fill { background: linear-gradient(90deg, var(--color-accent), var(--color-warn)); }
.ui-progress--danger .ui-progress__fill { background: linear-gradient(90deg, var(--color-danger), var(--color-warn)); }
.ui-progress__fill {
height: 100%;
transition: width var(--dur-slow) var(--ease-out);
position: relative;
}
.ui-progress__fill.has-shimmer::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
background-size: 200% 100%;
animation: ui-shimmer 1.5s linear infinite;
}
@keyframes ui-shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
}
/* indeterminate: sliding bar ~30% wide */
.ui-progress.is-indeterminate .ui-progress__fill {
width: 30%;
animation: ui-progress-indet 1.4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}
@keyframes ui-progress-indet {
0% { transform: translateX(-100%); }
100% { transform: translateX(433%); } /* (100% - 30%) / 30% * 100 + 100 */
}
|