Progress
StableA progress bar component for showing completion status and loading states based on DaisyUI.
API Reference
| Attribute | Description | Type | Default |
|---|---|---|---|
variant
|
Progress display type | string |
"linear"
|
value
|
Completion percentage (0–100). Omit for indeterminate state. | number |
"0"
|
max
|
Maximum value for linear progress | number |
100
|
color
|
Progress bar color theme | string |
""
|
size
|
Diameter of the radial progress circle (radial only); CSS size value e.g. 5rem
|
string |
""
|
thickness
|
Thickness of the radial progress track (radial only); CSS value e.g. 4px
|
string |
""
|
bg
|
Background color with automatic text contrast (radial only) | string |
""
|
border
|
Adds a 4px colored border around radial progress (radial only) | string |
""
|
variant
linear
radial
color
neutral
primary
secondary
accent
info
success
warning
error
Accessibility
Radial progress: automatically includes role="progressbar"
and aria-valuenow. Always provide a visible label so the purpose is clear.
Linear progress: the native <progress> element provides
implicit ARIA progressbar semantics. Pair with a visible label for meaningful tasks.
Indeterminate state: add aria-label="Loading..." or wrap with
a live region (aria-live="polite") to announce progress changes to screen readers.
Examples
Usage
<c-progress value="50" class="w-56">50%</c-progress>
Basic Progress
<c-progress value="0" class="w-56">0%</c-progress>
<c-progress value="50" class="w-56">50%</c-progress>
<c-progress value="100" class="w-56">100%</c-progress>
Colors
<c-progress value="70" color="primary" class="w-56">Primary</c-progress>
<c-progress value="70" color="success" class="w-56">Success</c-progress>
<c-progress value="70" color="error" class="w-56">Error</c-progress>
Indeterminate Progress
<!-- Omit value for indeterminate animation -->
<c-progress color="primary" class="w-56">Loading...</c-progress>
Radial Progress
<c-progress variant="radial" value="75">75%</c-progress>
Radial Background & Border
With Background Colors
With Borders
Combined Background & Border
<c-progress variant="radial" value="70" bg="primary">70%</c-progress>
<c-progress variant="radial" value="85" border="secondary">85%</c-progress>
<c-progress variant="radial" value="60" bg="accent" border="accent">60%</c-progress>
Radial Sizes & Thickness
Different Sizes
Different Thickness
<c-progress variant="radial" value="80" size="8rem">Large</c-progress>
<c-progress variant="radial" value="65" thickness="1rem">Thick</c-progress>
Real-world Examples
File Upload
Dashboard Stats
<div class="flex flex-col gap-2">
<div class="flex justify-between text-sm">
<span>document.pdf</span>
<span>84%</span>
</div>
<c-progress value="84" color="info" class="w-full"></c-progress>
</div>
Alpine.js Usage
Linear Progress
Radial Progress
<div x-data='{ progress: 0, interval: null }'>
<c-button @click="start()" color="primary">Start Progress</c-button>
<c-button @click="reset()" color="secondary">Reset</c-button>
<!-- Linear: use ::value binding -->
<c-progress ::value="progress" color="success" class="w-full"></c-progress>
<!-- Radial: use ::style for CSS custom property -->
<c-progress variant="radial" ::style="`--value: ${progress}`" color="primary"></c-progress>
</div>