Live example

Loading trip
Usage
<div aria-busy="true">
  <VisuallyHidden>Loading bookings</VisuallyHidden>
  <Skeleton lines={3} />
</div>

Props

Skeleton props
PropTypeDefaultDescription
shape?'text' | 'rect' | 'circle''text'Placeholder shape.
lines?number1Text lines; the last is shorter.
width?string | numbernoneCSS width.
height?string | numbernoneCSS height.

Do and don't

Do

  • Match the shape of the content that will replace it.
  • Set aria-busy on the loading container and give it a text status.

Don't

  • Show skeletons for content that loads in under about 300 ms.

Accessibility

  • Hidden from assistive technology with aria-hidden.
  • Shimmer animation stops under prefers-reduced-motion and the site motion setting.

No keyboard interaction of its own; it contains whatever controls you put inside.