Spinner
@sushindustries/uiOne ring, one border, one turn - with a visually hidden label, because a spinner with nothing to announce is just an animation.
Spinner is a single turning ring with a label that is visually hidden but
still announced through role="status". Reach for it whenever there is an
operation in flight worth telling someone about, not as decoration next to
something that already finished.
tanstacktanstack add https://adamjurek.com/r/tanstack/spinner.jsonpnpm dlx shadcn@latest add https://adamjurek.com/r/shadcn/spinner.jsonWhy it is built this way
The hidden label is why it exists as a status rather than just a CSS animation: a spinner with nothing to announce is only motion, not information. Reduced motion swaps the turn for a slower pulse instead of removing it outright, because a spinner is still communicating "in progress right now", unlike a skeleton, which just goes still.
Install
tanstack add https://adamjurek.com/r/tanstack/spinner.jsonpnpm dlx shadcn@latest add https://adamjurek.com/r/shadcn/spinner.jsonpnpm add @sushindustries/ui @sushindustries/atomsWhat you get
| Version | 0.1.0 |
| Category | content · Loading |
| Files | spinner.tsx |
| Dependencies | None |
| Tags | loading, no-deps |
No runtime dependencies
It brings nothing with it beyond the stylesheet.