Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Progress indicators show that an operation is in progressongoing, and display an unspecified wait time or the current completed ratio of the operation or an unspecified wait time.

Types 

There are two visually-distinct types of progress indicator: linear and circular.

...

Type

Usage

Image

Linear

Linear progress indicators are often referred to as a Progress bar.

Determinate indicators are for operations where the length duration of the process is known. The indicator increases in width from 0 to 100% of the track, in sync with the process’s progress.

Indeterminate indicators are for operations where the length duration of the process is not known. The indicator is continuously animated along the track until the process is complete.

They can be applied to the entire page, large containers, and to form elements.

Circular

Circular progress indicators are often referred to as a Progress spinner.

Determinate indicators are for operations where the length of the process is known. They fill the invisible, circular track with colour, as the indicator moves from 0 to 360 degrees.

Indeterminate indicators are for operations where the length duration of the process is not known. They continuously animate along the invisible circular track until the process is complete.

They can be applied directly to an element, such as a button or card.

...

Progress indicators inform users about the status of ongoing processes, such as loading a page, submitting a form, or saving updates. They communicate an application's state and indicate available actions, such as whether users can navigate away from the current screen.

A linear indicator can also be integrated into form elements, such as file uploads, to express a connection between a background ongoing process and individual items. They are ideal for long determinate activities (over 10 seconds).

A circular indicator can be integrated into a button or actionable icon to show a connection between an interaction and a specific item. They are typically used to show when an interaction is not available, such as a repeated click of a button again. They should be used for short, indeterminate activities (between 2-5 seconds).

General guidelines

Structure

...

Placement and Positioning

The placement of a progress indicator can indicate the scope of a process. Linear progress indicators should only be placed at the top or in the center of a container or component. For example:

...

When integrated to form elements (such as file upload), it may be placed to the right of the field it relates to. It may also be placed underneath the field depending on available space or responsive design.

A circular progress indicator should can be placed in the center of a container or component. For example:

  • A circular progress indicator at the center of the screen should indicate , indicating that the screen content is loading, and that no interaction is possible until the process is completed.

  • A circular progress indicator at the center of component, such as a widget or a card, indicates indicating that the process applies to that particular item, and that interaction with the rest of the UI is possible.

  • In a Toast message (if a progress indicator is needed, it will replace ) replacing the Toast status icon.

Default State

  • Determinate linear progress indicators may be hidden or shown in their empty state by default. When shown, they can indicate that an action may be a lengthy operation. For example, a form submission which is expected to take several minutes to complete should show the linear progress indicator in its empty state to set the user’s expectations.

  • Indeterminate linear progress indicators should be hidden by default and only appear once active. On completion, the linear progress indicator should be hidden again, and in most cases replaced by the content that was loaded or a post-completion message.

  • Circular progress indicators should be hidden by default and only appear once active. On completion, the circular progress indicator should be hidden again, and in most cases replaced by the content that was loaded. In the case of integration with a component such as a button, the button component is returned to its default state.

...

State

Determinate

Indeterminate

Empty

Partially complete

Complete

Image Removed

NA

Disabled

Circular

State

Determinate

Indeterminate

Empty

Partially complete

Complete

Image Removed

NA

Disabled

Interaction

Progress indicators do not support user interaction. They are solely used to provide a visual status indicator. The exception to this is where circular progress indicators are integrated into a button with a built-in cancel operation.

Best practices

...

Don’t stop a progress indicator. Users develop an expectation for how fast the action is being processed. Any unexpected freezes will be noticed and will impact user satisfaction. The worst possible case is when a progress indicator approaches 99% and suddenly stops. Most users will be frustrated by this behaviour because it makes them think the app is frozen. You can disguise small delays in your progress indicator by moving it instantly and steadily.

...

Use:

  • A linear indicator can be integrated into form elements, such as file uploads, to express a connection between a background ongoing process and individual items. They are ideal for long determinate activities (over 10 seconds).

  • A circular indicator can be integrated into a button or actionable icon on a ribbon to show a connection between an interaction and a specific item. They are typically used to show when an interaction is not available, such as a repeated click of a button again. They should be used for short, indeterminate activities (between 2-5 seconds).

Don’t Use:

  • when the action lasts less than 1 second.

General:

  • Consider adding informative text to tell the user what is happening or explain why they are waiting. Provide a general time estimate for time-consuming tasks. Don’t try to be exact: This might take five minutes can be enough to encourage users to wait.

  • Make sure that long operations offer the ability to cancel during the process.Don’t use vertical linear indicators. A horizontal linear indicator is easier to visualize, and reduces the cognitive load.

Accessibility Compliance

...