Skip to content

Search

Start typing to search.


Show all pages

Documentation

feedback

Skeleton

Placeholder shapes that hold the place of content while it loads.

CSS onlyPlain classes; no JavaScript in any stack.

Usage

Shape the skeleton like the content it replaces. Mark the container aria-busy="true" and tell screen readers what is loading.

Loading the lesson

HTML

Examples

Variants

A line of text, a circle for an avatar, and a block for an image or a card.

HTML

Guidance and accessibility

When to use

  • Use skeletons when content takes a moment and its layout is known, so the page does not jump when it arrives.
  • Keep them close to the final layout: the same number of lines, the same avatar size.
  • For a short wait in one control, such as a button that saves, show progress in that control instead.

Accessibility

  • Hide the shapes from screen readers with aria-hidden="true"; they carry no content.
  • Say what is loading in a role="status" element, visually hidden if the shapes are enough for sighted people. The example uses Tailwind’s sr-only; any visually hidden class works.
  • Set aria-busy="true" on the container while it loads and remove it when the content is in.
  • The pulse only runs when people allow motion.

Classes

Generated from the component contract. Parts use __, modifiers use --.

Classes of the skeleton component
ClassKindUse it for
ca-skeletonComponentA placeholder shape. Add one variant.
ca-skeleton--textVariantOne line of text, as tall as the text around it.
ca-skeleton--circleVariantA round shape, such as an avatar.
ca-skeleton--blockVariantA larger area, such as an image or a chart.

Skins

The same markup, dressed by each skin. Structure and behavior stay the same; only the look changes.

Base skin

Neutral grayscale starting point; product skins extend it and change what differs.

Loading the lesson

Calaca skin

The Calaca UI brand: hueso paper and tinta ink, cempasúchil marigold, rosa and jade.

Loading the lesson

Proof skin

Pilot skin pushed far from base: square, heavy, offset shadows, larger targets.

Loading the lesson

Crossview skin

The CrossView proofing table: cool ground, bond-paper sheets, rule-grey hairlines, one red mark.

Loading the lesson

Framework notes

Link the prebuilt stylesheet of your skin next to your brand theme. No build step.

HTML
<link rel="stylesheet" href="theme.css" />
<link rel="stylesheet" href="ca-base.css" />