Skeleton

Provides visual placeholders that represent interface elements during loading, improving user experience and perceived performance

Decorative page cover image showing and example of a skeleton component

Best practices

The Skeleton component displays a placeholder representing an element or content before they are ready to be displayed. This component is used to improve perceived performance that tends to improve user experience by reducing load time frustration and making the page feel more responsive.

If content takes more than a couple of seconds to load, consider using a skeleton loader. For faster loading times, consider the Spinner component instead as the overhead of the skeleton loader may not be worth it and can even cause a perceived slowdown.
A Skeleton should match the visual hierarchy of the actual content. This helps users anticipate the structure and layout of the loaded content.

When to use

  • If the visual layout/format of the content being loaded is known ahead of time.
  • When the placeholder content matches the actual content being loaded to avoid creating a jumpy loading experience.
  • Meant to be used specifically on a white background (dark on dark mode).

When not to use

  • If the visual layout/format of the content being loaded is unknown, or you need to indicate processing, or that change will occur on the page (rather than loading UI elements) – consider using the spinner instead.
  • To represent static content that won’t change when the page has been loaded.

Anatomy

Listing some of the separate elements of the skeleton loader component
  1. Label and small text
  2. Small titles and paragraph text
  3. Image

Building blocks

Visualising all individual skeleton blocks in various sizes

Individual blocks for creating skeletons:

  1. Text block – Small, medium, large
  2. Box – Small, medium, large, full
  3. Button – Default medium/small and Icon medium/small
  4. Circle – Small, medium, large
  5. Surface – Default, raised, overlay

Components

Product card
Example of the product card skeleton component
Order card
Example of the order card skeleton component
Search results
Example of the search result skeleton component
Order status
Example of the order status skeleton component

Behaviour

Responsive behaviour

All Skeleton components are adapted for small and large screens. Please note that the product card skeleton fits on all screen sizes without any adjustments and does not need a mobile version.

Order card desktop/mobile
Visualising desktop and mobile sizes of the order card component
Search results desktop/mobile
Visualising desktop and mobile sizes of the search result component
Order status desktop/mobile
Visualising desktop and mobile sizes of the order status component