shadcn.io is an independent project built on shadcn/ui
One spinner is on screen at 32px. No label sits beside it. It uses the text color around it. The file does not start a request.
Use the large size when the wait is the only thing in a page, a panel, or an overlay. A known percent belongs on a Progress bar. In Svelte, Ark UI still labels it Loading with role status.
Installation
Anatomy

Usage
<Spinner class="size-8" />FAQ
How does this spinner become 32px?
Spinner defaults to size-4 (16px). This file passes size-8, which sets the width and height to 32px. Size is that class. There is no size prop.
What color is the large spinner?
The icon uses currentColor, so it takes the text color around it. This file adds no color class, so it matches the parent. Add text-primary or text-muted-foreground on the same Spinner to change it.
What does a screen reader announce for this spinner?
It renders with role="status" and an aria-label of Loading. Pass your own aria-label, such as "Loading the page", when the wheel is the only thing in view.
How do I stop the large spinner for reduced motion?
The spin is the animate-spin class. Add motion-reduce:animate-none and the icon stays still. The status role and the label stay.
API Reference
Spinner
No extra props in this demo. The rest is on the Spinner page.





