Editorialper-word
Shared Slide
The phrase glides in as one motion while words fade in sequentially.
Installation
Run the following command:
pnpmdlx shadcn@latest add https://mutype.dev/r/short-slide-right.jsonProps
| Prop | Type | Default | Description |
|---|---|---|---|
| spec | AnimationSpec | — | Animation spec object (imported from components/mutype/specs/<id>). |
| text | string | — | The text to animate. |
| as | "span" | "div" | "h1"–"h4" | "p" | "span" | The HTML element to render. |
| triggerKey | string | number | — | Re-runs the animation when the value changes. |
| duration_multiplier | number | 1 | Scales duration_ms and stagger_ms uniformly. >1 slower, <1 faster. |
| y_travel_multiplier | number | 1 | Multiplier on y_px values; useful to dampen lift on small text. |
| forceReducedMotion | boolean | false | Forces the reduced-motion fallback even when the user has not opted in (testing). |
| onFinished | () => void | — | Fires once when the enter phase completes (not on cancel). |
| className | string | — | Tailwind / CSS class names. Forwarded to the host element. |
Usage notes
The phrase shares one transform (no per-word x stagger), so the line reads as a single shared move. Per-word stagger applies only to opacity. Keep travel ≤24px so motion stays controlled. Best on three-word headings where ordering matters; for emphasis on one word, switch to per-word-crossfade.
Inspired by Keynote-style restrained editorial headers where one travel vector carries the whole line..
