CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/parallax-marquee

Parallax Marquee

A horizontally-scrolling strip of image cards at different depths. Each card has its own depth, vertical offset, and speed multiplier — closer cards scroll faster, distant ones drift past slowly, creating a layered 3D parallax read.

ReactImageFont#marquee#parallax#carousel#3d#cards

Usage

import ParallaxMarquee from '@crazygl/hero-parallax-marquee';

export default function Hero() {
  return (
    <ParallaxMarquee
      heading="PARALLAX"
      card1Image="/work/cover-1.jpg"
      card2Image="/work/cover-2.jpg"
      baseSpeed={60}
    />
  );
}

Customise

  • Contentheading, subheading, and five card slots cardNImage with per-card cardNDepth, cardNY, cardNSpeed.
  • MarqueebaseSpeed, cardWidth, cardHeight, gap, perspective, maxRotation.
  • StyleborderRadius, bgColor, transparentBackground.
  • TypographytextColor, fontSize, letterSpacing, headingFontFamily, headingFontWeight.

Best for

  • Gallery-style portfolio reels and agency homepage banners.
  • Travel landing pages and e-commerce category strips.
  • Festival lineups, sports / streetwear drops.
01 · Install the package

One command, zero config.

npm install @crazygl/hero-parallax-marquee
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 ParallaxMarquee from '@crazygl/hero-parallax-marquee';

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

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

Scroll Flow Text FX

Stacked rows of large text drift left/right at offset speeds as the visitor scrolls — like a marquee orchestrated by the page itself.

Text Rotation

A static prefix with a vertical slot-machine rotator behind it — each word slides up, settles, and the next one rises into place.

Kinetic Split Typography

A bold grotesk headline is split into horizontal slices that fly in from alternating sides, settle into alignment, and then parallax against the pointer at different depths.

Rotating Text Pro

Slot machine with a 3D flip in X — the rotating word flips over a horizontal axis like a split-flap board.

3D Depth Text

Heading extruded with stacked text-shadow layers — a faux-3D effect with a slow camera-style tilt that follows the cursor.

Screenshot Torn Into Layers

A background screenshot plus up to five overlay images, each placed on its own depth plane with X / Y / Z / scale controls. On load each layer slides in from depth with a staggered easeOutBack overshoot; hover spreads them further apart along Z.
Live customizer

Parallax Marquee

Base speed60px/sPixels per second the strip drifts.Card width240pxCard width.Card height320pxCard height.Card gap80pxHorizontal gap between cards.Perspective1200pxCSS perspective value — smaller exaggerates the 3D effect.Max card rotation6°Subtle rotation of each card to break uniformity.Border radius10pxCard corner radius.Background colourBackdrop colour behind the marquee.Transparent backgroundDrop the backdrop colour.Heading colourWordmark colour.Heading size96pxWordmark font size.Letter spacing-0.02emTracking.Heading fontFamily.Heading weight900Weight.
CrazyGL · crazygl.comProgrammable hero sections for real websites.