crucıble

Flywheel

Four machined CSS spinners — ring, dots-orbit, segmented, dual-ring — selected by variant. Conic-gradient comet head cooling to a blue-silver tail over a recessed groove; currentColor-driven, zero dependencies, lit resting frame under reduced motion.

cssfree

Installation

CLI

npx shadcn@latest add @crucible/flywheel

Props

PropTypeDefaultDescription
variant"ring" | "dots-orbit" | "segmented" | "dual-ring""ring"Which spinner to render. - ring (default): a machined groove with a white-hot comet head that cools to a blue-silver tail, spun with heavy inertia and a faint flicker at speed — the Crucible signature. - dots-orbit: a comet of beads orbiting, each breathing on a sine so the ring has life even at rest. - segmented: a spoked wheel of alternating solid/gap segments with a hot leading spoke. - dual-ring: two filament heads counter-rotating at different rates.
sizenumber40Overall size in px.
speednumber1Rotation speed multiplier. 1 = default, 2 = twice as fast.
labelstring"Loading"Accessible label announced to screen readers.
accentColorstring"#ffffff"Accent color for the hot head / active ring.
Also accepts all props of React.ComponentPropsWithoutRef<"div">they pass through to the underlying element.

Honors prefers-reduced-motion with a designed static fallback, and passes className through.