OmniVoice-Studio / frontend /src /ui /Progress.css
LΓͺ Phi Nam
Deploy to HF Space
94004a2
Raw
History Blame Contribute Delete
1.78 kB
/* ── 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 */
}