Skeleton
Carbon ships three skeletons: Skeleton — base wrapper around any shape (block, circle, etc.) SkeletonText — pulsing horizontal lines for text placeholders SkeletonPlaceholder — fillable rectangle for image / chart placeholders
Live playground
Edit the JSX below — preview updates instantly. Switch brand × tone in the toolbar to see the same component re-themed in place.
Edit JSX — preview updates livereact-live
import { Skeleton, SkeletonPlaceholder, SkeletonText } from "@avala/design"; <Skeleton> <SkeletonPlaceholder /> <SkeletonText /> </Skeleton>
All variants
The Storybook stories file rendered as an iframe — every variant, every size, every state, baselined for visual regression.
primitives-skeleton--defaultOpen in Storybook →
When to use
- Maintain layout stability while async data loads — list rows, cards, dashboards, dataset thumbnails.
- Shape matches the eventual content; user perceives faster load.
When not to use
- Indeterminate spinner without specific layout shape → use `Loading`.
- Determinate progress (with known % complete) → use `ProgressBar`.
- Quick interactive feedback inside a button or row → use `InlineLoading`.