Skip to content

ProgressIndicator

A ProgressIndicator is a visual element used to indicate the ongoing, indefinite progress of an action or process.

NameValue
Props
showLabel
Slots
default
View
Reading direction

Overview

When to use ProgressIndicator

ProgressIndicator animates continuously to indicate that an action or content loading is in progress, helping users understand when the system is actively working on a task with unknown completion time.

Use ProgressIndicator when:

  • Indicating asynchronous processes with an unknown completion time.
  • Displaying inline with text to represent ongoing background processes.
  • Loading section-level content where preserving layout isn't essential.
  • Providing immediate feedback for user-initiated actions.
  • Offering a compact, animated visual cue to indicate ongoing activity.

Avoid using ProgressIndicator when:

  • Loading states need to maintain content layout. In such cases, use an inline ProgressBar instead.

About ProgressIndicator

ProgressIndicator includes the following elements.

Spinner indicator

A rotating element that represents an ongoing process or loading state. It helps users understand that an action is in progress.

  • Use for indeterminate, short-duration processes.
  • Don't modify the spinner's color or size.

Label (optional)

A brief message providing additional context about the loading process, such as a description of the action being performed or an estimated wait time.

  • Include a label when additional clarification is needed for the loading context.
  • Don't use lengthy or unclear loading messages.

Examples

Basic usage

By default, the spinner appears without text, serving as a simple visual indicator of a loading process.

  • Center the spinner in its loading area.

WARNING

ProgressIndicator require one of the following: Label via default slot or set the aria-hidden attribute.

When either is set the ProgressIndicator is understandable to assistive technology users.

With label

A spinner can be accompanied by text in cases where additional context is needed to clarify the loading process.

  • Use clear, concise text to describe the loading process.
  • Don't use long or multi-line text.
  • Don't add ellipsis (…) to loading text - the spinner already communicates the ongoing process.

Technical implementation

Vue usage

Props

Prop nameDescriptionTypeDefault
showLabelWhether the label should be visible.

This will show or hide the text carrying <span> element next to the progress indicator.
booleanfalse

Slots

NameDescriptionBindings
defaultProgressIndicator label text.

CSS-only version

Markup structure

The most common usage of ProgressIndicators is without a label. In the CSS-only version, there is a small deviation from the Vue version. The aria-label attribute is used to provide a description of the progress indicator to assistive technologies – instead of a label element to ensure leaner markup.

With visible label