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)
API Reference
number
Progress value from 0 to
max. Omit for indeterminate animation.number
default:"100"
Maximum value (100 = full).
string
default:"default"
Semantic fill color. Values:
default · success · warning · errorstring
default:"md"
Bar height. Values:
sm · md · lgboolean
default:"false"
Displays a percentage label above the bar.
string
Custom label text. Overrides the auto-generated percentage.
string
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