Skeleton
ImplementedLoading skeleton — radius matched to whatever it's skeletonizing. Use while Server Components fetch data.
patterns/atoms/skeleton.htmlLoading placeholder block. Animates a subtle pulse. FR-CA: Espace réservé de chargement.
Skeleton
Display atom (Family 2 — Tier 1)
Use Skeleton instead of Spinner when you know the final content shape.
This component supports light and dark mode.
Usage
import { Skeleton } from '@epasslive/design-system'
<Skeleton width="100%" height={120} radius="lg" />
<Skeleton count={3} height={14} />
<Skeleton width={48} height={48} radius="full" />When to use
- Initial load of lists, cards, and table rows.
- Suspense boundaries that gate content above the fold.
Accessibility
The component renders aria-hidden="true" and is decorative. Wrap the loading region in aria-busy="true" on the parent.
Props
widthnumber | stringCSS width (px if number).
heightnumber | stringCSS height (px if number).
radius'sm' | 'md' | 'lg' | 'full'mdBorder-radius preset.
countnumber1Number of stacked skeletons.
classNamestringAdditional classes.
Props
Skeleton
widthnumber | string—Synced from source — no interface JSDoc yet; document on `Skeleton.tsx`.
heightnumber | string—Synced from source — no interface JSDoc yet; document on `Skeleton.tsx`.
radius"sm" | "md" | "lg" | "full"—Synced from source — no interface JSDoc yet; document on `Skeleton.tsx`.
countnumber1Synced from source — no interface JSDoc yet; document on `Skeleton.tsx`.
<Skeleton />Accessibility
ARIA
1 rulerender
1 ruleUsage
Import
import { Skeleton } from "@epasslive/design-system"Example 1
<Skeleton />Example 2
<Skeleton variant="default" />Anti-patterns
— Do not compose atoms directly — use molecules instead
— Avoid inline styles on atoms