A unified skeleton loading component library providing accessible, animated placeholder elements for content loading states across the application.
## Key Components
### `UnifiedSkeleton`
Base skeleton component accepting:
- `variant` — Shape style: `default` (rounded), `text` (rounded-sm), `circular`, `rectangular`
- `width` / `height` — Custom dimensions; defaults to full width with variant-based height
- `animate` — Toggles pulse animation; respects `prefers-reduced-motion` via `motion-reduce:animate-none`
- `aria-label` — Screen reader label (defaults to `"Loading content"`)
### `TextSkeleton`
Namespace of text-specific variants:
| Export | Use Case |
|---|---|
| `TextSkeleton.Heading` | H1/H2 placeholders |
| `TextSkeleton.Subheading` | H3/H4 placeholders |
| `TextSkeleton.Body` | Paragraph text |
| `TextSkeleton.Caption` | Captions and metadata |
### `InteractiveSkeleton`
UI control placeholders:
| Export | Use Case |
|---|---|
| `InteractiveSkeleton.Button` | CTA buttons |
| `InteractiveSkeleton.Input` | Form fields |
| `InteractiveSkeleton.Chip` | Filter chips |
### `MediaSkeleton`
Media and icon placeholders:
| Export | Use Case |
|---|---|
| `MediaSkeleton.Avatar` | Profile images (`sm`/`md`/`lg`) |
| `MediaSkeleton.CardImage` | OG-ratio card images (1200×630) |
| `MediaSkeleton.Icon` | Icons (`sm`/`md`/`lg`) |
## Usage Example
```typescript
import {
UnifiedSkeleton,
TextSkeleton,
InteractiveSkeleton,
MediaSkeleton,
} from "./unified-skeleton"
// Custom skeleton