reelcn
Text

Text

Mask Reveal

Headline whose words slide up from behind an invisible edge, as if uncovered by a mask.

Install

Usage

<Center>
  <MaskReveal text="Made for vertical first" />
</Center>

Props

NameTypeDefaultDescription
font?"mono" | "heading" | "body"
delay?numberFrames to wait before entering.
duration?numberEnter duration in frames. Defaults to 0.6s.
exit?number | booleanExit at the end of the parent `<Sequence>`. `false` keeps it on screen, a number sets the exit length in frames.
motion?MotionPresetOverride the theme's motion personality.
stagger?numberFrames between units. Defaults at 30fps: char 1, word 2, line 5.
style?CSSProperties
className?string
textstring
split?"word" | "char" | "line"What staggers in. `line` splits on "\n".
size?numberFont size in design units.
weight?number
color?string
accentColor?string
accentWords?string[]Words painted in the accent color. Case and punctuation are ignored.
align?"left" | "right" | "center"

Use

  • Editorial and cinematic titles
  • Crisp reveals where fading would feel soft

Avoid

  • Multi-line statements that should arrive line by line — use line-slide

Dependencies

Source

registry/items/mask-reveal.tsx
/**
 * @title Mask Reveal
 * @category text
 * @description Headline whose words slide up from behind an invisible edge, as if uncovered by a mask.
 * @duration 30
 * @use Editorial and cinematic titles
 * @use Crisp reveals where fading would feel soft
 * @avoid Multi-line statements that should arrive line by line — use `line-slide`
 * @tags mask, clip, reveal, editorial, headline
 * @preset text-reveal
 * @example
 * <Center>
 *   <MaskReveal text="Made for vertical first" />
 * </Center>
 */
import { TextReveal, type TextRevealProps } from "./text-reveal";

export type MaskRevealProps = Omit<TextRevealProps, "effect">;

export function MaskReveal(props: MaskRevealProps) {
  return <TextReveal {...props} effect="mask" />;
}

Related