A circular mask text animation that reveals short headlines, campaign lines, and proof statements through a focused shape-based entrance.

Circle Text Reveal helps important words arrive with intent: text appears through a circular mask.
Best on short, high-emphasis text: headlines, launch lines, section openers, proof points. Avoid it on body copy, errors, legal text, or instructions, where legibility cannot be negotiable.
The main risk is the text disappearing into the effect. Ship the final phrase as genuine HTML, keep per-character motion out of the accessibility tree, and serve the settled, legible text immediately when motion is reduced.
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.
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.
Avoid it on body copy, labels, error and legal text, or any wording that has to be read on sight.
Move only the words that carry weight, pre-reserve their space to avoid shift, and skip costly filters on large text blocks.
Assistive technology should hear the phrase once, not character by character; visually split fragments are hidden from the accessibility tree with aria-hidden.
| Prop | Type | Default | Description |
|---|---|---|---|
textColor | string | #111111 | Base text color. |
circleColorBg | string | #E76F2E | Reveal circle background color. |
RevealedTextColor | string | #fefefe | Text color inside the revealed layer. |
lerp | number | 0.15 | Pointer-follow smoothing amount; higher values track faster. |
smoothness | number | 0.5 | Mask-size transition duration in seconds. |
circleSize | number | 500 | Expanded reveal circle size in pixels. |
Use it when a campaign moment needs text appearing through a circular mask.
Keep the resolved phrase in the DOM, exposed once; mark any duplicated animated fragments hidden from assistive technology.
Not as long as the resolved text is genuine HTML and never trapped in canvas or client-only animation.
Hold the finished text's footprint so wrapping does not jump between breakpoints.
Land directly on the finished, readable text: no character scramble, no stagger, no loop.
Need a custom effect? Tell us what to create.