Skip to main content

Overview

Uploading…60%
Complete100%
Almost full85%
Failed40%
Progress displays a determinate (known value) or indeterminate (loading) progress bar. Semantic color variants communicate the meaning of the progress state.

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 · error
string
default:"md"
Bar height. Values: sm · md · lg
boolean
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" with aria-valuenow, aria-valuemin, and aria-valuemax
  • Indeterminate state (no value) uses aria-valuenow omitted per ARIA spec
  • Label text is referenced via aria-label or aria-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-label like “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