Skeleton
A pulsing placeholder that keeps the row height or prose pitch of what it stands for.
import { Skeleton } from "@arcadia/ui"text, the default, is one line of the surrounding text: 1lh tall with a 6px bar centred in it, so a stack keeps the prose pitch and a skeleton label keeps a row's height. Nothing moves when the content arrives. It pulses 1 → .45 → 1 over 1.4s.
Which loader? A Skeleton holds the place of content that is on its way. A Spinner says a control or a small region is busy. A Pine Sweep says an agent is running, and a Shimmer marks the live status text beside it.
Examples
width and height size one placeholder: a share of its container or a size token. rootStyle takes layout and these knobs.
| Knob | Takes | Default | Sets |
|---|---|---|---|
SkeletonLength | 100% | Width (a circle's diameter). | |
SkeletonLength | var(--space-10) | A block's height. | |
Paint | var(--fill-4) | The bar, block or circle. |
Always decorative (aria-hidden): announce loading on the container with aria-busy, as above, or with text. With reduced motion it holds still at its resting tint.
Skeleton
shape- "text" | "block" | "circle"Default"text"
text: one line of the surrounding text (1lh tall) with a 6px bar centred in it, so a skeleton label keeps a row's height and a stack of them keeps the prose pitch.block: a filled rectangle (images, cards).circle: an avatar or icon placeholder.width- SkeletonLengthDefault100%
- Width, e.g. "72%" or "var(--space-16)". Circle: 24px.
height- SkeletonLengthDefault40px
- Height for
block. rootStyle- RootStyle<SkeletonKnobs>
- Typed StyleX override: layout and the
--skeleton-*knobs.
Rest props go to <span> props and render.