Loading Indicator

Written byJovin LiewJovin Liew
PlatformsiOS, Android, Web
SynonymsLoading spinner, Loading screen
ExamplesMobile, Web

What is a loading indicator component?

A loading indicator is an animated spinning or dot icon that lets users know content is being loaded. This helps to reduce user anxiety and reassures the user that the screen is executing a loading process and is not frozen.

  1. It shows users that their request is being executed and that the system is active.

  2. It can be either determinate or indeterminate.

  3. It may be accompanied with a text label to give users more context about the process.

  4. It may be customised to fit the brand identity, and can be used as a branding moment.

Loading indicators are commonly used in the following design patterns: Data/content loading, Form submission, Page transitions.

Examples of what loading indicators look like in mobile apps - both spinning and dot icons.Examples of what loading indicators look like in mobile apps - both spinning and dot icons.
When to use?
Long tasks

When a process takes time and you need to give assurance to your users.

User needs feedback

When users need reassurance that something is happening in the background.

Indeterminate waits

When the duration is unknown, to show that the system is still working.

Complex interactions

If a process involves multiple steps or external services, keeping the user informed is helpful.

When not to use?
Instant actions

As a rule of thumb, if the task completes in less than a second, a loading indicator is unnecessary.

Frequent, short tasks

Avoid adding indicators for tasks that are too quick or repetitive.

Distraction risk

If a loading indicator appears too often, it might distract or annoy users.

One must consider the difference between determinate and indeterminate loading indicators.

  1. Determinate loading process: Shows exact progress level or percentage. Used for predictable tasks, with measurable progress - this helps users gauge how much longer a task will take. Examples: File uploads or downloads.
  2. Indeterminate loading process: Shows that a loading task is ongoing, without a specific progress value. Used for unpredicatable tasks with unmeasurable progress. Examples: Server requests, data fetching.

What is the anatomy of a loading indicator?

We've observed four key vairants of loading indicators: Circle, Bar, iOS Spinner, and Dots.

Bar, Circle, iOS Spinner, Dot loading indicatorsBar, Circle, iOS Spinner, Dot loading indicators

What are the design variants of a loading indicator?

We studied over 3,400+ loading indicator UI components on Mobbin, from real-world examples and found the following variants.

1. Circle or spinner loading indicator

Here are some circle spinner loading indicators without labels.

Examples of spinner without labelsExamples of spinner without labels

If space permits, adding a label to the circle spinner indicators can help give context to users on the action that's being loaded.

For example, verifying an account, or purchasing a subscription.

Examples of spinner with label textExamples of spinner with label text

Some brands opt to go for spinners with their logo centered inside of it, of an animated form of their logo, similar to what Figma or Mobbin has.

Examples of branded spinners with logosExamples of branded spinners with logos

There is really no norm that you need to follow - we've seen all kinds of funky spinners used by many different notable brands across the world.

Examples of funky spinnersExamples of funky spinners

2. Dot spinner

Examples of dot loading indicatorsExamples of dot loading indicators

3. iOS spinner

Default iOS styled spinner.

Examples of iOS spinnersExamples of iOS spinners

When to use a loading indicator?

1. Data / content loading

When an app fetches or loads large amounts of data, an indicator can be displayed to indicate that the content is being retrieved and processed.

Examples of data / content loadingExamples of data / content loading

2. Form submission

When a user submits a form or performs an action that requires processing, an indicator can be displayed to indicate that the app is working on the request. This helps to manage user expectations and provides visual feedback that the action is being processed.

Examples of form submissionsExamples of form submissions

3. Page transitions

Loading indicators can be used during page transitions, such as when navigating between different sections or screens within the app. They serve as a visual cue that the next content is being loaded.

Examples of page transitionsExamples of page transitions

Conflicting UI elements: Progress indicator, Skeleton screen

1. Loading indicators v.s. Progress indicators

Progress indicators are used to indicate the progress of a task such as a download, a file upload, or a video streaming. Additionally, progress indicators can be interacted with to be able to cancel or pause the current task.

Examples of progress indicatorsExamples of progress indicators

2. Loading indicators v.s. Skeleton screen

A Skeleton screen is a type of loading indicator as well - it was popularized by Twitter in 2012, introduced as a technique to enhance user experience during loading times by displaying a lightweight placeholder interface.

It allows users to see a preview of the content that will load, making the experience feel faster and more engaging.