crucıble

Anneal

Text that resolves from a soft blur into sharp focus, staggered by word or character, when it scrolls into view. Falls back to a fade under reduced motion.

motionfree

Installation

CLI

npx shadcn@latest add @crucible/anneal

Manual — install dependencies, then copy the source

npm install motion

Props

PropTypeDefaultDescription
childrenstringThe text to reveal.
by"word" | "char"Split granularity. Words keep natural line-wrapping; chars are more dramatic.
delaynumberSeconds before the reveal starts.
staggernumberSeconds between each segment's reveal.
durationnumberSeconds each segment takes to sharpen.
blurnumberStarting blur radius in px.
repeatbooleanRe-trigger every time the text scrolls into view (default: once).
Also accepts all props of Omit<HTMLMotionProps<"span">, "children" | "initial" | "whileInView" | "viewport" | "transition">they pass through to the underlying element.

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