Create

Feedback

Progress

Copy page View as Markdown Open in ChatGPT Open in Claude

Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.

Usage#

app.component.ts
import { WdsProgressComponent } from '@wds/angular/progress';

Examples#

Default#

value between min (0) and max (100) fills the bar; changes animate. Without a visible label, name the bar with label.

Label#

The content is a label above the bar and names it. show-value adds the percentage, formatted in the language of the page (lang).

Upload progress

Value text#

value-text replaces the percentage, for screen readers too. With max the value can count anything, e.g. files.

Uploading files

Indeterminate#

Without value (or with null) the bar is indeterminate: the task runs, but its progress is unknown.

Loading data

Controlled#

The bar follows value set by the app.

Profile completion
−10+10

Height and color#

--wds-progress-height sets the height of the track, --wds-progress-indicator and --wds-progress-track the colors.

Storage Backup

File upload#

A list of uploads in wds-item: a short bar per file in the actions slot. Each bar is named by label (the file name), and value-text adds the time left for screen readers.

2m 30s
45s
5m 12s
Complete

Steps#

Progress of a multi-step setup: value-text counts the steps instead of a percentage, and a read-only Stepper below lists them with their state.

Setup progress

API References#

wds-progress#

Shows how far a task has come, as a bar. Without value the bar is indeterminate (the task is running, but its progress is unknown).

Attributes

AttributeTypeDefaultDescription
valuenumber | nullnullCurrent value between min and max. Leave it out (or set null) for an indeterminate bar.
minnumber0Smallest value.
maxnumber100Largest value (the task is complete).
show-value.showValuebooleanfalseShows the value next to the label (a percentage, or value-text).
value-text.valueTextstring''Text of the value instead of a percentage, e.g. 3 of 5 files; also read by screen readers.
labelstring''Accessible name when there is no label in the slot.

Slots

SlotDescription
(default)Label above the bar; it names the progress bar.

CSS parts (::part)

PartDescription
rootThe progressbar element (label, value and track).
labelThe label.
valueThe value text (with show-value).
trackThe track.
indicatorThe filled part.

CSS custom properties

PropertyDescription
--wds-progress-heightHeight of the track (default 4px).
--wds-progress-trackColor of the track.
--wds-progress-indicatorColor of the filled part.

Accessibility#

Screen reader#

The bar is a progressbar with aria-valuenow, aria-valuemin and aria-valuemax; screen readers announce the percentage. value-text becomes aria-valuetext.

The label in the slot names the bar (aria-labelledby); without it, set label. The visible value is hidden from screen readers, since the bar already announces it.

An indeterminate bar has no aria-valuenow. With reduced motion its animation is slower.

Screen readers do not announce every change. For a long task, announce key moments (e.g. completion) in a live region or a toast.

Keyboard support#

The progress bar is not focusable and has no keyboard interaction.

Footer