CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/textfluxunveil

TextFluxUnveil

A paragraph whose first N words start fully revealed (setting up context) and the rest fade in as the viewer scrolls — perfect for 'context → reveal' headlines.

ReactFont#scroll-reveal#typography#context-reveal#word-by-word

Usage

import TextFluxUnveil from '@crazygl/hero-textfluxunveil';

export default function Hero() {
	return (
		<TextFluxUnveil
			text="Your text will reveal word by word as you scroll down the page."
			startFromWord={5}
			initialOpacity={0.1}
		/>
	);
}

Customise

  • RevealstartFromWord (0–30, how many words start fully visible), initialOpacity (resting opacity of un-revealed words), fadeDuration and fadeDelay (per-word transition length and cascade).
  • Scroll windowscrollStart / scrollEnd (% of scroll progress over which the reveal runs) in scroll mode, or autoplaySeconds for the one-shot none mode.
  • TypographytextColor, textAlign, fontSize, lineHeight, letterSpacing, maxWidth, headingFontFamily, headingFontWeight.
  • BackdroptransparentBackground and bgColor.

Best for

  • Brand reveal lines ("We build the future of __").
  • Product punchlines and conference / talk teases.
  • Manifesto blocks where the opening is the question and the closing is the answer.
01 · Install the package

One command, zero config.

npm install @crazygl/hero-textfluxunveil
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 TextFluxUnveil from '@crazygl/hero-textfluxunveil';

export default function Landing() {
  return (
    <TextFluxUnveil />
  );
}
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 TextFluxUnveil from '@crazygl/hero-textfluxunveil';

export default function Page() {
  return (
    <section>
      <TextFluxUnveil
        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

Animated Text Reveal

A paragraph that unblurs and fades in word by word as the viewer scrolls — with an initial blur and initial opacity that mean even the un-revealed words sit softly on the page rather than disappearing.

Ultimate Scroll Text

A long paragraph that reveals as the viewer scrolls — word-by-word, letter-by-letter, or line-by-line — with a soft ghost copy underneath that hints at the next words just before they arrive.

Reveal Text Scroll

A heading revealed by a directional wipe — one of eight angles — with an optional layered effect: a blur-in, a colour morph from start to end, or a chromatic-aberration split that resolves as the reveal completes.

Unblur Text Reveal

A paragraph that resolves word-by-word as the viewer scrolls, with a choice of six animation styles — blur, slide-up, scale, rotate, wave, or glow — and a colour transition from an initial muted hue to the final readable colour.

Scroll Text Color

A heading whose colour sweeps from start to end as the user scrolls — uses background-clip:text for crisp gradient handover.

Scattered Sentence

Words start scattered across the canvas at random positions and angles, then converge into a single readable sentence — chaos resolving into order.
Live customizer

TextFluxUnveil

Start from word5Number of words at the start that are fully revealed at rest. Words after this index animate in as the viewer scrolls.Hidden text opacity0.1Opacity of the un-revealed underlying text. Lower values make the upcoming words read as a faint ghost; 0 makes them invisible until the scroll wave reaches them.Fade duration0.1sPer-word delay0sScroll start (%)15%Scroll progress at which the reveal starts. 0% = element just entering viewport.Scroll end (%)70%Scroll progress at which the reveal completes.Text colourAlignmentFont size48pxLine height1.3Letter spacing-0.005emMax width900pxHeading fontHeading weight500Transparent backgroundBackground colourInteractivityWhich input drives the hero — try Scroll if you want the page to drive motion.
CrazyGL · crazygl.comProgrammable hero sections for real websites.