Version 5.1.1

Bar loader

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

Example of a bar loader in action, with 'Load Data' label, filling track to value of 100%.


Diagram of the anatomy of a Bar Loader, including label, track, value, and fill.


Example of two Bar Loader variants, comparing indeterminate with determinate.

Determinate or indeterminate#

Determinate is the default usage for the bar loader, but it can be determinate or indeterminate.

Example of two Bar Loader size variants, comparing large and small.


Bar loaders come in two different sizes: large and small. Use the large version when there is a single loading operation displayed prominently on the page. Use the small version when there are multiple loading operations happening at the same time in a more confined space (tables, cards, etc.)

Example of two variants of Bar Loader fish, comparing label variant and no label variant

Label or no label#

Bar loaders can include a label when necessary. This label gives context about the operation being performed. When the label is displayed, the associated percentage value is also displayed. Both items are placed above the track.

Example of the Bar Loader 'over background' variant.

Over background#

When a loader needs to be placed on top of a colored background, use the over background loader. This loader uses a white opaque color no matterthe background. Make sure the background offers enough contrast for the loader to be legible.


Example of Bar Loader with overflowing label text.

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#

Bar loader or circle loader?#

Both bar and circle loaders can show either determinate or indeterminate progress. The given area should help determine if a bar or circle is best for that space. Bar loaders are preferred in vertically narrow areas (tables, cards, etc.) Use a circle loader for full page loading or in very small areas. Use a bar loader in a loader dialog.

Illustration of Bar Loaders in context of preferred use in vertically narrow design.


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.

Illustration of a Bar Loaded implemented with the preferred built-in label.

Do use the built-in label style.

Illustration of a Bar Loader implemented with a non-preferred custom label.


Key example of indeterminate and determinate bar loader using a mirrored RTL layout.


For RTL (right-to-left) languages, the layout of the bar loader is mirrored for both determinate and indeterminate options. The label is right-aligned, the value is left-aligned, and the fill progresses from right to left. Keep in mind that the placement of the percent sign differs depending on the locale.


Dec 12, 20195.1.1
  • Updated RTL internationalization guideline to include the indeterminate option
Aug 22, 20195.1.0
  • Added text overflow behavior
Apr 19, 20195.0.0
  • 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).

Multiple options

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

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).

Defined behaviors

Includes guidelines for layout (wrapping, truncation, overflow), animation, interactions, etc.

Usage guidelines

Includes a list of dos and don’ts that highlight best practices and common mistakes.

Accessible contrast

Follows WCAG 2.0 standards for contrast (AA).

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.

Generated UI kit

Includes a downloadable XD file that has been generated by code and shows multiple variations, states, color themes, and scales.

Design tokens

All design attributes (color, typography, layout, animation, etc.) are included in Spectrum DNA.