Skip to content

Feedback

Progress, Spinner & Skeleton

The three loading states: known duration, unknown duration, and known shape.

Progress Spinner Skeleton
import { Progress, Spinner, Skeleton } from '@anomalia/ui';

Notes

  • Prefer Skeleton when you know the shape of what is coming — it avoids the layout jump a spinner hides.
  • Progress transitions width on the emphasized curve, so a jump from 20% to 80% reads as a move.

Examples

Progress

Determinate progress eases on the emphasized curve, so a jump from 20% to 80% reads as a move rather than a teleport.

Rendering video · 28%

Skeleton

Prefer a skeleton whenever you know the shape of what is coming: it holds the layout, so nothing jumps when the data lands.

API

Progress

PropTypeDefaultDescription
valuenumber | nullnull0–100; `null` is indeterminate.
toneTone'accent'Bar colour.
size'sm' | 'md''md'3 / 6px.

Skeleton

PropTypeDefaultDescription
shape'text' | 'block' | 'circle''text'Placeholder form.
linesnumber1Text lines; the last is shortened.
width / height / radiusstringCSS overrides.

Every component also forwards the native attributes of its root element, plus class, so anything not listed here still works.