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

Rolling Text

Each character rolls through a vertical stack of duplicate copies of itself in a continuous loop, with a blur pulse mid-roll and a per-character stagger.

ReactInteractiveFont#rolling-text#typography#stagger#blur#headline

Usage

import RollingText from '@crazygl/hero-rolling-text';

export default function Hero() {
  return (
    <RollingText
      heading="ROLLING TEXT"
      duplicateCount={8}
      rollDuration={2}
      animationPattern="alternating"
    />
  );
}

Customise

  • Contentheading (the wordmark), optional subheading, ctaLabel / onCTAClick.
  • RollduplicateCount (copies stacked), rollDuration, staggerDelay, blurIntensity, animationPattern (sequential / alternating), loopInterval.
  • TypographytextColor, fontSize, letterSpacing, headingFontFamily, headingFontWeight.
  • BackdropbgColor, accentColor / accentStrength (diagonal vignette), transparentBackground.

Best for

  • Brand wordmarks and product launches where the headline performs.
  • Sports / streetwear and music drop pages.
  • Conference and "Manufactured / Built / Made" hero blocks.
01 · Install the package

One command, zero config.

npm install @crazygl/hero-rolling-text
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 RollingText from '@crazygl/hero-rolling-text';

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

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

Word Blur

Heading that comes in word-by-word — each word lifts out of a deep blur and slides into focus on a small stagger.

Text Cycler

A wordmark that cycles between several words or phrases, each one entering with a character-, word-, or line-staggered fade — pick the stagger order from first / last / center / random.

Path Text Reveal

Multi-line heading where each line wipes in via a CSS clip-path from top, bottom, left, right, or centre — with a configurable stagger between lines.

Blurry Text FX

Each word starts heavily blurred and resolves into focus on a stagger. Plays once on load or loops with a configurable hold.

Clip Type Stagger

Each character is clipped from below and rises into place on a stagger — like setting movable type one piece at a time. Plays once on load or loops with a configurable hold.

Blend Text

A heading with CSS mix-blend-mode applied so it changes appearance against whatever sits behind it — picks the inverse colour of the backdrop pixel, like ink on a poster.
Live customizer

Rolling Text

Duplicate count8How many copies of each character live in the column. 5–10 reads as a confident roll; >15 reads as a slot machine.Roll duration2sHow long the roll takes per character. Shorter is more energetic; longer is more cinematic.Stagger delay0.12sDelay between each character starting its roll. 0 fires all at once; 0.1+ gives the classic 'flipboard' read.Blur intensity8pxPeak blur during the middle of the roll, simulating motion blur. 0 disables the blur pulse.PatternSequential rolls every character top→bottom; Alternating flips odd-indexed characters bottom→top so the wordmark looks like split-flap signage.Loop interval5sLength of one full cycle (roll-in + rest + smooth blur wind-up before the next roll-in).Text colourHeading colour.Font size96pxHeading font size.Letter spacing-0.02emTracking.Heading fontFamily. Heavy display sans serifs read most flipboard-mechanical.Heading weight900Weight.Transparent backgroundSkip the deepest backdrop so the hero composes onto whatever section background sits behind.Background colourCanvas backdrop colour.Accent glow colourTint of the soft diagonal vignette behind the wordmark.Accent glow strength0.5Opacity of the accent.
CrazyGL · crazygl.comProgrammable hero sections for real websites.