Progress bar

Figma logo The guideline content on this page is synced with Figma and can be used as a source of truth. Open in Figma

This component visually communicates the status of a task and it shows users how much work remains.


Anatomy

  1. Label
  2. Progress line
  3. Progress bar container
  4. Progress label
Progress bar anatomy: 1 — label, 2 — progress line, 3 — progress bar container, 4 — progress label

Usage

Progress bars are best when placed on the edge of a container.

Always use the same type of progress indicator for a given process across the platform. For instance, if refreshing uses a circular indicator in one view, it must use a circular indicator everywhere.

Label 60%

Progress label

The progress label is supposed to match the progress line and have the same number value. You will have to do that manually.

Label 40%

Variants

We have two distinct colours for the progress bar component to clearly communicate the status and user context of the ongoing process.

Green
Usage: it signifies a normal, positive, or successful state.

Purple
Usage: it signifies a specific, non-standard, or emphasised process.

Label 40%
Label 40%

Accessibility

Keyboard interaction

All components should be reachable via Tab and Shift + Tab keys. The focused progress bar shows a 2 px focus ring.

Label 80%

Best practices

Label 80%

Do

Indicate to users the progress of a task, showing how much has been completed and what remains.

Loading

Do

If there is a task with a short loading time, use the Spinner component instead.

screen shot 15.png 80%

Do

Use the progress bar to show either a loading state or the status of a system process.

John Doe 40%
Anna Svensson 80%

Don't

Don't use the progress bar for data visualisation; use a custom component for that purpose instead.


Specs

Progress bar specifications: 8 px bar height with the label and value row below

Developer reference

The following sections describe supported functionality that is not part of the Figma design specification.


Basic design

A standalone progress bar without a label row. Set the fill width with an inline style="width: …%" and keep the role="progressbar" ARIA attributes on the .progress element in sync. The .progress-bar fill is presentational.


Content Security Policy

Setting the fill width inline relies on the style attribute.