Skip to main content

Spinner

Overview​

Used to show indeterminate progress, especially at a sub-page level.

Definition​

Spinner is a visual indicator rotating or animated that communicates to the user that the system is performing a task.

Live Demo​

  • Spinner A looped indicator that indicates progress.

Spinner

Anatomy​

Variants​

Indeterminate Spinner​

  • The Spinner for a sub- page indeterminate progress.

Indeterminate Xing​

  • The Xing loader for page-level indeterminate progress.

iOS​

  • Blurred background over content loading
  • Use native iOS spinner with grey box background behind the native element.
  • Use "Loading" underneath the spinner element

Android​

  • Show banner / Top navigation
  • Use MUI surface / Neutral 'Subtle' background
  • Use MUI spinner component

Size​

  • Keep spinner small but noticeable (48X48px) ??

Guidelines​

When to use​

  • Within Bright Apps only
  • When a process or action is in progress - used to signal loading or waiting
  • Transitions / Navigating between screens

When not to use​

  • For very short tasks (i.e if the action takes less than a second)
  • When a progress would be more appropriate, for example: if the process is taking a long time.

Note: For guidelines on when to use and when not to use, see the Loading states design pattern

Position​

  • The spinner should be positioned in the centre of the screen or centred within a content block if the spinner is being used inline with content.

Behaviour​

Display on interaction​

The spinner is activated when the user interacts by tapping on a feature or call to action that requires data fetch.

Appearance​

The spinner appears centred within the content area with a rotating animation.

Duration​

The spinner should remain visible until the data fetch is complete or a timeout occurs.

Dismissal​

Once the data is successfully loaded or the task is complete, the spinner fades out and the content is displayed.

Content​

Only the main banner and secondary navigation remain visible

All other content (e.g; body content, lists, forms) should be replaced by the spinner

Accessibility​

Use sufficient contrast between the spinner component and the background

Screen reader compatibility​

Semantic labelling (e.g ARIA label) allows screen readers to announce 'Loading content' message, when the spinner appears for users who rely on audio feedback.