PRO

Skew Char Header

Headlines that assemble character by character, skewed and thrown in from the right. The stagger is keyed to each character's index within its own line rather than its index in the whole heading, so every line starts its ripple at the same moment and multi-line copy reads as several parallel waves instead of one long queue. Three modes on the same component: play on mount, play once on entry, and scrub against scroll.

Component

Every letter finds its place

Lines resolve together, not one after another

Scrub it and the whole thing rewinds

Install
npx shadcn@latest add https://ui.aryank.space/r/skew-char-header.json

Installs from ui.aryank.space. To add it by hand, copy the files in Usage below, or register the @compronents namespace via the docs.

Files

API
PropTypeDefaultDescription
sectionsSkewCharSection[]Three BLANK sectionsHeading plus a mode of load, enter, or scrub, and the section's background and text colors.
stagger / durationnumber0.05 / 0.65Delay between characters within a line, and how long each takes to arrive.
embeddedbooleantrueOwn the scroll container so it fits a bounded box. Set false to drive it from the window scroll.
Customize
sectionstext

Heading, animation mode, and colors per section.

stagger / durationtext

Per-character delay and travel time.

Dependencies
gsaplenis