Skip to main content

Actions and status

Skeleton

Render a loading placeholder surface or text-line group. The ghostly apparition of content yet to come, now with better manners for assistive tech.

Curated demo

Reference

Render a loading placeholder surface or text-line group. The ghostly apparition of content yet to come, now with better manners for assistive tech.

  • Use Skeleton only while real content is pending.
  • Match the final content shape as closely as possible, so the page doesn't jump around when it loads.
  • Prefer one announced loading region over many noisy placeholders; skeletons are aria-hidden unless ariaLabel is provided.
  • Focus mode and reduced-motion preferences both suppress shimmer in favor of static loading surfaces.

Props

Name Type Default Description
width string '100%' Placeholder width.
height string '1rem' Placeholder height.
size string — Square size used by circle skeletons.
shape 'rect' | 'circle' | 'text' 'rect' Placeholder shape.
lines number 1 Number of text lines to render.
gap 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 2 Spacing token between text lines.
lastLineWidth string '75%' Width of the final line in a multi-line text skeleton.
radius string — Radius token name or custom CSS radius.
animate boolean true Whether shimmer animation is enabled when user preferences allow it.
ariaLabel string — Optional accessible loading announcement for a skeleton region.
ariaHidden boolean — Force skeleton assistive-tech visibility.
class string — Additional CSS classes.

Example snippet

<Stack space={4}>
  <Skeleton shape="circle" size="3rem" />
  <Skeleton shape="text" lines={3} lastLineWidth="60%" />
  <Skeleton width="100%" height="8rem" radius="xl" ariaLabel="Loading card" />
</Stack>