Skip to main content
On this page

Shows how far through a process or task something is.

When to use​

  • To show progress toward a known percentage, using the flat variant: for example, how much of a multi-part upload is complete
  • To show that a task is running but its duration is not known, using the indeterminate variant: for example, while a file finishes uploading
  • As the underlying progress indicator inside another component, using the stepped variant: this is how Progress Stepper shows progress through a form

When not to use​

  • To show progress through a multi-step form - use Progress Stepper instead, which wraps Progress Bar with a step counter, current step name, and next-step label
  • As an interactive element - Progress Bar is display-only and cannot be used to navigate between steps or states

Anatomy​

  1. Track: the full-width background showing the total extent of progress
  2. Fill: the portion representing progress made so far
  3. Steps: individual step segments in the stepped variant, one per step, filled up to the current step

Basic usage​

Loading...
Edit live code
<ProgressBar percentage={60} />

Variants​

Flat (default)​

Use to show progress toward a known percentage. percentage is clamped between 0 and 100.

Loading...
Edit live code
<ProgressBar percentage={70} />

Stepped​

Use to show progress through a fixed number of discrete steps. For multi-step forms, use Progress Stepper instead: it adds the step counter, heading, and next-step label.

Loading...
Edit live code
<ProgressBar variant="stepped" currentStep={2} totalSteps={4} />

Indeterminate​

Use when a task is running but you cannot calculate a percentage or step count for it.

Loading...
Edit live code
<ProgressBar variant="indeterminate" />

The fill sweeps repeatedly from the start of the track to the end and out of view, rather than tracking a fixed amount. The animation is removed for users who have prefers-reduced-motion enabled.