Skeleton

Grey blocks where the content will be

Set width / height to match the content that will replace it. Use data-variant="circle" for a circle.

In a card

Add aria-busy="true" and an aria-label to the card while it loads.

One line

Stands in for a single line of text, such as a customer name in a table.

Attributes

Attribute / element Values Description
.skeleton Block, 1em tall, full width, neutral fill, 4px corners. Pulses every 1.5s (2.5s with reduced motion). Set width / height yourself.
data-variant circle (omit for a block) 40px circle for avatars. Does not shrink in flex.
aria-hidden true On a skeleton or skeleton group that carries no meaning.
aria-busy true On the loading container, with an aria-label. Remove it once the content arrives.