Installation
Usage
import { Pulse } from "@/components/loading-ui/pulse";<Pulse />Customization
Pulse animates a bordered ring with gentle scale and opacity breathing. It is deliberately low urgency—use it when you want presence without implying a hard error or precise percent complete.
Size
Match the ring to icons, badges, and list rows with size-* utilities on the outer span.
Color
The ring uses border-current, so the stroke follows inherited foreground and currentColor. The Color preview uses explicit hex swatches for clarity.
Ring weight
Target the animated ring with a child selector if you need a lighter or heavier stroke.
Duration
Breathing speed follows --duration.
Examples
These examples emphasize soft holds: warm cache, idle polish, and tooltips that explain a temporary state.
Button
Keeps pending actions feeling patient next to firmer spinners elsewhere in the app.
Badge
Works well for “standby” or “degraded but OK” badges where a full spinner would feel loud.
Collapsible
A dashed shell and muted copy reinforce that the section is optional context, not a blocker.
When you open this section, the loader can disappear or hand off to skeleton lines depending on your data shape.
Tooltip
Short explanations plus a subtle pulse signal backoff or partial health without opening a dialog.