Loading presets
Usage
Skeleton/Spinner/Progress (feedback.tsx) already cover the baseline pulse/spin/determinate-bar cases — Skeleton grew a shimmer prop and Progress an indeterminate prop for this pass rather than forking new components for those two. SpinnerOrbit and DotPulse are genuinely new shapes: an alternative spinner style, and a typing/processing indicator distinct from either.import { SpinnerOrbit, DotPulse } from '@summonware/ui';Best practices
DoUse DotPulse specifically for "something is processing, no ETA" (a chat "typing…", an AI response streaming) — not as a generic loading spinner substitute.
DoUse shimmer on Skeleton when the loading state is likely to hold for a beat (a slow network fetch) — the pulse default reads calmer for near-instant loads.
Don'tUse Progress indeterminate when you actually know the percentage — an indeterminate bar under-communicates real progress and reads as less trustworthy than an accurate one.
Anatomy
SpinnerOrbitThree dots orbiting a center point as one rigid body.
DotPulseThree dots pulsing in sequence.
Examples
Common configurations, variations and states.SpinnerOrbit and DotPulse
Two alternatives to the default Spinner ring.
Skeleton, shimmer vs. default pulse
The same component, side by side.
Progress, indeterminate
Uploading…
For an unknown-duration operation — an upload with no reportable percentage.