Overview
Uploading…60%
Complete100%
Almost full85%
Failed40%
Installation
Usage
Variants
Default
With Label
75% uploaded
Semantic Variants
Complete
Almost full
Failed at 40%
Sizes
Small (4px)
Medium (8px)
Large (12px)
| Size | Height | Use case |
|---|---|---|
| Small | 4px | Compact UI, table cells |
| Medium | 8px | Default — most contexts |
| Large | 12px | Prominent upload/download indicators |
API Reference
Progress value from 0 to
max. Omit for indeterminate animation.Maximum value (100 = full).
Semantic fill color. Values:
default · success · warning · errorBar height. Values:
sm · md · lgDisplays a percentage label above the bar.
Custom label text. Overrides the auto-generated percentage.
Additional Tailwind classes for custom overrides.
Accessibility
- Progress uses
role="progressbar"witharia-valuenow,aria-valuemin, andaria-valuemax - Indeterminate state (no
value) usesaria-valuenowomitted per ARIA spec - Label text is referenced via
aria-labeloraria-labelledby - Color alone does not convey meaning — always pair variant colors with a label
- Do not rely on animation alone for indeterminate state; add an
aria-labellike “Loading”
Do’s & Don’ts
Do
- Use
variant="success"when a task completes successfully - Use
variant="warning"for high-usage alerts (storage, quota) - Always show a label when the progress value matters to the user
- Use indeterminate mode when the duration is unknown
Don't
- Don’t use color alone to indicate status — always pair with a label
- Don’t use Progress for interactive input — use Slider instead
- Don’t show multiple progress bars for the same task simultaneously
- Don’t display a Progress bar for actions under 300ms — it creates visual noise