Progress bar
Progress bars show the progression of a system operation: downloading, uploading, processing, etc., in a visual way. They can represent either determinate or indeterminate progress.

Anatomy#

Options#
Table of options#
From the design point of view, each component has a number of options. These options and their names are platform agnostic, and each implementation should adapt these to fit into their framework.
Behaviors#

Minimum and maximum width#
The minimum width of a progress bar is 48 px and the maximum width of a progress bar is 768 px, for both desktop and mobile platform scale. Smaller progress bars should only be used in places where it’s not necessary to have a label.

Text overflow#
When the label is too long for the available horizontal space, it wraps to form another line. The value is always shown in full and never wraps or truncates.
Usage guidelines#
Progress bar or progress circle?#
Both progress bars and circles can show either determinate or indeterminate progress. The given area should help determine if a progress bar or circle is best for that space. Progress bars are preferred in vertically narrow areas (tables, cards, etc.) Use a progress circle for full page loading or in very small areas. Use a progress bar in a loader dialog.


Labels#
Use the built-in style for showing a label associated with the operation. The built-in style always has a left aligned label and a right aligned percentage value above the track. The label should be in sentence case. Add an ellipsis ("...") to the end to show that the action is in progress (e.g., "Loading data..." or "Updating settings...").


Do use the built-in label style.


Internationalization#
Changelog#
- Migrated to latest token system
- Added sizes to UI kits
- Updated all colors to 6.0.0
- Added two size options (medium, extra-large)
- Added min value and max value options
- "Bar loader" has been renamed to "progress bar"
- Updated RTL internationalization guideline to include the indeterminate option
- Added text overflow behavior
- This component is now individually versioned (individual versions of existing components start at 5.0.0)
- Added an indeterminate variant
- Added RTL (right-to-left) guidelines
Design checklist#
All interactive states
Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).

All color themes
Works properly across all four color themes (lightest, light, dark, darkest).

All platform scales
Includes a desktop scale (UWP, macOS, web desktop) and a mobile scale (iOS, Android, web mobile).

Accessible use of color
Color is not used as the only visual means of conveying information (WCAG 2.0 1.4.1).

Accessible contrast for text
Text has a contrast ratio of at least 4.5:1 for small text and at least 3:1 for large text (WCAG 2.0 1.4.3).

Accessible contrast for UI components
Visual information required to identify components and states (except inactive components) has a contrast ratio of at least 3:1 (WCAG 2.1 1.4.11).

Content design
UI language and information design considerations have been incorporated into component design.

Defined options
Includes relevant options (variant, style, size, orientation, optional iconography, decorations, selection, error state, etc.)

Defined behaviors
Includes guidelines for keyboard focus, layout (wrapping, truncation, overflow), animation, interactions, etc.

Usage guidelines
Includes a list of dos and don'ts that highlight best practices and common mistakes.

Writing guidelines
Includes content standards or usage guidelines for how to write or format in-product content for the component.

Internationalization guidelines
Works properly across various locales and includes guidelines for bi-directionality (RTL).
Keyboard interactions
Follows WCAG 2.0 standards for keyboard accessibility guidelines and includes a description of the keyboard interactions.

Design tokens
All design attributes (color, typography, layout, animation, etc.) are available as design tokens.
UI kit
Includes a downloadable XD file that shows multiple options, states, color themes, and platform scales.

Generated UI kit
Includes a downloadable XD file, generated by code using design tokens defined in Spectrum DNA, and shows multiple options, states, color themes, and platform scales.

In Spectrum for Adobe XD plugin
Component is included in the Spectrum for Adobe XD plugin.