Per-char/word rise reveal with CSS-variable stagger — powered by splitText
Each character rises from beneath a hidden clip with a spring stagger. The delay is calc(var(--char-index) * 30ms) — pure CSS, zero JS timers.
Words rise as whole units — ideal for headlines where character-level stagger feels too busy.
Delay uses calc(var(--word-index) * 60ms).
With triggerMode="intersect" the animation fires once the element scrolls into
view. Use the button below to remount and retrigger.
splitText(node, { by: 'char' }) wraps each character in a <span> stamped with --char-index and --char-total CSS custom properties. The animation stagger is entirely in CSS:
transition-delay: calc(var(--char-index, 0) * 30ms); Accessibility: the container gets aria-label with the original text; all injected
spans are aria-hidden. Reduced-motion: full text shown immediately, no transforms.