Version 5.0.0

Circle loader

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

Example of an indeterminate Circle Loader in action, just spinning and spinning and spinning and spinning and spinning.


Diagram of the anatomy of a Circle Loader, showing the track and fill.


Key example showing both determinate and indeterminate circle loaders in default variant.

Default variant#

Circle loaders are used to visually show the progression of a system operation such as downloading, uploading, processing, etc.

Example of an 'over background' Circle Loader.

Over background variant#

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 matter the background. Make sure the background offers enough contrast for the loader to be legible.

Examples of the size variants of Circle Loader, showing small, medium, and large sizes.


Circle loaders come in 3 sizes: small, medium (default), or large. These are available to fit various contexts. For example, the small loader can be used in place of an icon or in tight spaces, while the large one can be used for full-page loading.

Key example of determinate circle loader with progress going from 0 to 100%.


This shows the percentage of a system operation’s progression, such as downloading, uploading, processing, etc. This is not applicable when a circle loader is indeterminate.

Examples of both a determinate and indeterminate circle loader.


A circle loader can be either determinate or indeterminate. By default, loaders are determinate. Use a determinate loader when progress can be calculated against a specific goal (e.g., downloading a file of a known size). Use an indeterminate loader when progress is happening but the time or effort to completion can’t be determined (e.g., attempting to reconnect to a server).

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.

PropertyValuesDefault Value
default / over background
small / medium / large
Not applicable when loader is indeterminate.
is indeterminate
yes / no

Usage guidelines#

Use circle loaders for loading views#

Medium and large circle loaders are optimized for large areas with no space constraints. Use them for loading content into views (e.g., web pages, panels, etc.)

Illustration showing large Circle Loader in their preferred use in a content view.

Use small circle loaders when space is limited#

Small circle loaders are well suited when space is limited both vertically and horizontally, such as in buttons, menu items, and input fields.

Illustration of a small Circle Loaded being used as preferred in a small space.


Example of an indeterminate Circle Loader in RTL layout.

RTL indeterminate loader#

For RTL (right-to-left) languages, the fill of an indeterminate circle loader continues to spin clockwise.

Example of a determinate Circle Loader in RTL layout.

RTL determinate loader#

For RTL (right-to-left) languages, the fill of a determinate circle loader continues to fill in clockwise.


Apr 18, 20195.0.0
  • This component is now individually versioned (individual versions of existing components start at 5.0.0)

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.