Progress
Horizontal bar showing task completion percentage.
Selectors
<progress>- Native HTML progress element — auto-styled inside
.ciderscope. .progress-indeterminate- Single-div sliding bar animation for unknown-duration progress.
Default
<progress value="60" max="100" aria-label="Progress"></progress>
With Label
Uploading...
73%
<div class="space-y-2">
<div class="flex items-center justify-between text-sm">
<span class="font-medium">Uploading...</span>
<span class="text-tertiary-foreground">73%</span>
</div>
<progress value="73" max="100" aria-label="Uploading"></progress>
</div>
Indeterminate
<div class="progress-indeterminate" role="progressbar" aria-label="Loading"></div>
In Card
Storage
7.2 GB / 15 GB48% of storage used. Upgrade for more space.
<div class="card max-w-sm p-6">
<div class="flex items-center justify-between">
<h3 class="text-sm font-semibold">Storage</h3>
<span class="text-xs text-tertiary-foreground">7.2 GB / 15 GB</span>
</div>
<div class="mt-3">
<progress value="48" max="100" aria-label="Storage usage"></progress>
</div>
<p class="mt-2 text-xs text-tertiary-foreground">48% of storage used. Upgrade for more space.</p>
</div>
Usage Notes
- Use
<progress>when you know the completion percentage. - Use
.progress-indeterminatewhen duration is unknown (e.g., file processing). - Hide indeterminate bars with
display: nonewhen not active to reduce battery usage on mobile.
Accessibility
The native <progress> element is accessible by default. For the indeterminate variant (.progress-indeterminate), add role="progressbar" and aria-label so screen readers can announce the loading state.