Skip to main content
For development, import ProgressBar from @servicetitan/anvil2. For design, find it in the Anvil2 file.

Anatomy

The Progress Bar consists of four primary elements that work together to visually represent the completion of a task.
Anatomy of a Progress
Bar
  1. Label
  2. Fill
  3. Track
  4. Status Indicator: the shared Status Icon, the same one Alert and Field Message use

Options

The Progress Bar supports the following configurations to accommodate various progress representation scenarios.

Status

Value

A numeric value visually changes the progression. Use this when the actual percentage of completion can be determined.

Indeterminate

Set an indeterminate value when it isn’t well known how long an operation will take.

Label

Label

More Info

No Label

Description And Error Text

Behavior

The Progress Bar responds to content overflow by wrapping text labels while maintaining consistent visual representation.

Overflow

The text label of a Progress Bar will wrap when not enough space is provided.

Usage Guidelines

Content

Content within the Progress Bar should clearly communicate the task being completed and its current status.

Keyboard Interaction

Users can navigate the Progress Bar using standard keyboard controls.

Accessibility

Provide ARIA labels when a visual label is not used

When using a Progress Bar without a label, provide one through the usage of an aria-label. For more guidance on progress indicators and status updates, see changing content best practices.

Code

Common Examples

Progress bar fill percentage

Progress bars show a completed state when the value is equal to the max value, which is 100 by default. Otherwise, the value is divided by the max to determine what percentage the bar should be visually filled to.

Showing indeterminate progress bars

If the indeterminate prop is set to true, the progress bar will show an animation to signal to the user that the progress has not been determined.

Progress bar error state

Use the error prop to show an error state. If a string is provided to the error prop, a message will also be displayed.
Last modified on October 27, 2026