Skip to content

Skeleton

The skeleton component is an animated placeholder for the information that is still being loaded. It mimics the structure and look of the entire view and provides an idea regarding what kind of content is loading in each block like image, text, input, avatar, or more. It is used to create a perception of reduced waiting time.

Usage

Skeleton placeholders are temporary and simplified representations of page components that are displayed during the initial page load.

They follow the shape and form of what will be loaded, representing the layout and spacing of the actual content.

Rather than using skeleton placeholders to represent entire containers, it's generally better to use them for specific data-driven components that may take longer to load, such as tables, lists, and images.

Skeleton

When to use

  • To create an illusion of short page loading times when the load time is unknown.
  • Use it when a spinner component is not prominent enough.
  • Use when there’s more than one element loading at the same time that requires an indicator.
  • Use it only for the most significant graphic elements such as avatars, cards, content blocks, lists, and tables.

Best practices

  • Only show skeleton placeholders for a few seconds, hiding them once components and content populate the page.
  • Avoid using it for action components (e.g. buttons, checkboxes, toggles).
  • Avoid using skeleton placeholders to represent components that contain other components such as cards, accordions, and other layout elements.
  • Map the skeleton placeholders to the expected size and shape of the data that will be replacing it once loaded.
  • Don't use it for static content that never changes on a page, such as page titles, headings, and body text.
  • Don't use it for fast processes that take less than 300ms.
  • When giving feedback for in-context operations, use the spinner or progress bar component.

Except where otherwise noted, content on this site is licensed under MIT License.