WebberUI

Split Text Reveal

Per-character or per-word staggered text reveal, with optional blur and viewport triggering.

Loading preview…
npx shadcn@latest add https://webberui.com/r/split-text.json

Playground

Tune the props live — the code snippet updates as you go, so you can dial in the look you want before copying it.

0.03
0.6
16
<SplitText />

Installation

npx shadcn@latest add https://webberui.com/r/split-text.json

Or, once registries are configured in components.json, install it as @webberui/split-text.

Usage

import { SplitText } from "@/components/ui/split-text";

<SplitText text="Animate everything." className="text-4xl font-bold" />

Props

PropTypeDefaultDescription
textstringThe text to animate
by"char" | "word""char"Split unit
delaynumber0Delay before the reveal starts (seconds)
staggernumber0.03Interval between units (seconds)
durationnumber0.6Duration of a single unit's animation (seconds)
ynumber16Initial vertical offset (px)
blurbooleantrueWhether the reveal is accompanied by a blur
oncebooleantruePlay only the first time the element enters the viewport

Accessibility

  • When the user has "reduce motion" enabled at the system level, the text renders statically
  • The container carries an aria-label and the split units are hidden from assistive technology (aria-hidden), so screen readers announce the complete sentence

On this page