CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/text-reveal

Text Reveal

Heading wiped in from a single direction via a hard clip-path mask, with a small per-letter delay — the foundational reveal everyone needs.

ReactFont#reveal#mask#typography

Usage

import TextReveal from '@crazygl/hero-text-reveal';

export default function Hero() {
	return (
		<TextReveal
			heading="Reveal what matters."
			direction="bottom"
			trigger="load"
			duration={900}
		/>
	);
}

Customise

  • Revealtrigger (load / reveal / click), direction (bottom / top / left / right), duration, perWordStagger, loopAfter (load only).
  • TypographytextColor, subColor, fontSize, headingFontFamily, headingFontWeight.
  • Contentheading, subheading.
  • BackdroptransparentBackground, bgColor.

Best for

  • Landing-page headlines and section intros
  • Editorial and agency sites
  • Product launches needing a clean, reliable entrance
  • Any hero where a tasteful masked reveal beats a heavy effect
01 · Install the package

One command, zero config.

npm install @crazygl/hero-text-reveal
02 · Render the component

Import once, drop it in.

The component takes the same props you see in the live customizer on the right — every default ships poster-quality.

hero.tsx
import TextReveal from '@crazygl/hero-text-reveal';

export default function Landing() {
  return (
    <TextReveal />
  );
}
03 · Use it in a page

SSR-safe by default.

The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.

page.tsx
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';

import TextReveal from '@crazygl/hero-text-reveal';

export default function Page() {
  return (
    <section>
      <TextReveal
        heading="Say hi."
        subheading="Your new hero."
      />
      <article>
        <h2>Welcome</h2>
        <p>Your content keeps its own voice below the hero.</p>
      </article>
    </section>
  );
}
You might also like

Similar heroes

Mask Text Reveal

Text revealed as a moving circular mask sweeps across — the headline appears only where the image-shaped mask uncovers it.

Scroll Reveal Pro

Multi-line heading where each line is masked and rises into view as the visitor scrolls — staggered, eased, with a small blur dropoff.

Text Split Reveal

Heading splits into two halves that slide apart to reveal a secondary line between them — the curtain-pull pattern.

Text Hover Reveal

Each item shows a default heading; on hover the heading scrolls up and a secondary line scrolls in from below — list-of-services interaction.

Hover Text Reveal

A row of phrases where hovering one expands a stagger-typed paragraph beside it — the kind of FAQ heading-list interaction premium SaaS sites use.

Text Masking

Headline acts as a window onto a slowly drifting photograph — large letterforms, the photograph showing through them, a clean colored hero around the cut-out.
Live customizer

Text Reveal

TriggerWhat kicks off the reveal animation. Load fires immediately; Reveal uses IntersectionObserver; Click replays every tap.DirectionDuration (ms)900msStagger (ms)110msLoop after (s, 0=off)0sOnly applies to the Load trigger. Reveal and Click play once.Text colourSubheading colourFont size96pxFontWeight800Transparent backgroundBackground
CrazyGL · crazygl.comProgrammable hero sections for real websites.