ThiloDesign System
DV

Spinner

shadcn/ui

Animated loading indicator. No size prop — use size-* class. Color inherits from text-*.

@/components/ui/spinner

Sizes

ClasspxPreviewUsage
size-312pxInline text, dense table cells
size-416pxButtons, toolbar actions — most common
size-520pxInput suffixes, compact panels
size-624pxCard loaders, side panels
size-832pxPage-level loaders, full-screen overlays

Color via text-*

ClassPreviewWhen to use
(none — inherits)Default — picks up current text color
text-muted-foregroundSubtle loaders, secondary panels
text-primaryPrimary action in progress
text-destructiveDeletion or error context

In context — loading patterns

Buttons
Panel loader

Loading tickets...

Inline (in text)
Syncing with external system...

Spinner vs Skeleton

SpinnerSkeleton
Use whenAction in progress (save, delete, submit)Content is loading (initial fetch, page navigation)
DurationShort and unpredictable (under 3s)Long or predictable (network fetch, images)
PlacementInside buttons, centered in panel, inline textReplaces the content it represents — same shape
Perception"Something is happening""Content will appear here"

On this page