A clean masked text reveal that lifts real DOM text into view for SaaS headlines, section intros, and polished landing-page copy.

Mask Text Reveal helps important words arrive with intent: lines rise through a clean mask.
Reach for it on headlines, launch claims, section openers, and one-line proof. Keep it away from body copy, error messages, legal text, and instructions, where reading has to be effortless.
The risk in production is that the words get lost in the motion. The resolved phrase has to be real DOM text, the animation must not spell itself out to a screen reader, and a reduced-motion visitor should land on the final, readable state at once.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
Use this as text-animation implementation guidance. Verify the shipped component API, splitting strategy, accessible text exposure, duplicated span handling, layout reservation, and reduced-motion behavior before relying on exact props, defaults, imports, or installation steps.
Not for body text, labels, errors, legal copy, or anything a user must read right away.
Limit motion to the phrase that earns it, hold its layout space ahead of time, and keep heavy filters off large blocks of text.
Make the whole phrase available to assistive technology a single time; where the text is split into per-character spans, mark the duplicates aria-hidden.
| Prop | Type | Default | Description |
|---|---|---|---|
animateOnScroll | boolean | true | Runs reveal on scroll. |
stagger | number | 0.2 | Delay between animated lines. |
duration | number | 5.5 | Mask reveal duration. |
delay | number | 0 | Animation delay. |
scrub | boolean | false | Links the reveal to scroll progress. |
Use it when a polished SaaS section needs lines rising through a clean mask.
Ship the final phrase in the DOM and surface it a single time, hiding duplicated animated fragments from assistive technology where needed.
Not when the final text ships as real HTML rather than living inside canvas or client-only animation.
Pre-reserve the final text's space so line breaks stay put across breakpoints.
Render the settled, legible text at once, with no scrambling, staggering, or looping.
Need a custom effect? Tell us what to create.