Skeleton
Subtly pulsing placeholder that signals "content loading here, in this shape."
2.1 kBgzipped
At a glance
- Pulses opacity between 100% and 55% over ~900ms — calm enough to use throughout a list without flashing.
- Decorative —
aria-hiddenis set automatically. Pair with a realaria-busyindicator on the loading region.
Preview
width and height
width accepts a number (px) or any RN dimension string like '40%'
or 'auto'. height is px-only because RN doesn't accept percentage
heights without a parent height.
radius
Border radius in px, or 'full' for circular skeletons (avatars,
icon buttons). Default 6.
static
Set static to opt out of the pulse animation. Use it when you stack
many skeletons in a long list — a hundred independent animations can
feel busier than helpful, and a static placeholder is still recognized
as "loading state" by users.
style
Forwarded to the underlying RN <View> so you can layer in margins,
absolute positioning, or any other layout style without leaving the
component.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | — | — |
height | number | 16 | Height — number of px. Default 16. |
radius | number | "full" | 6 | Border radius. Defaults to `theme.radius.md` (6px). Use `'full'` (= 9999px) for circular skeletons (avatars). |
static | boolean | false | Disable the pulse — useful when stacking many skeletons in a list. |
style | ViewStyle | — | — |
testID | string | — | — |
width | number | "auto" | `${number}%` | '100%' as const | Width — number of px or any RN dimension string. Default `100%`. |