CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/paint-strokes

Paint Strokes

Thick glossy paint strokes sweep across the hero in slow motion. Each stroke has its own colour and gloss highlight.

ReactWebGLInteractiveFont#paint#strokes#ribbon#glossy#premium

Usage

import PaintStrokes from '@crazygl/hero-paint-strokes';

export default function Hero() {
  return (
    <PaintStrokes
      heading="In oil."
      strokeCount={6}
      gloss={1}
      speed={0.4}
    />
  );
}

Customise

  • CanvascanvasColor (backdrop), strokeA / strokeB / strokeC (the three cycling tints), strokeCount (2–10), thickness, speed (sweep), gloss (wet highlight).
  • Content & TypographycontentType (heading / two-columns / custom) and headingFontFamily.

Best for

  • Art galleries, museums, and fashion editorial.
  • Beauty and cosmetics brands.
  • Design-led agency and studio sites wanting a tactile, painterly first frame.
01 · Install the package

One command, zero config.

npm install @crazygl/hero-paint-strokes
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 PaintStrokes from '@crazygl/hero-paint-strokes';

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

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

Floating Monolith

A glossy obsidian monolith floats on screen, rotating slowly, sampling a procedural HDRI for genuine mirror reflections. Emissive light strips travel down its faces in a hypnotic loop.

Lava Lamp Blobs

Raymarched metaballs drifting through space and merging smoothly via SDF smin. Glossy + subsurface-style shading gives them a thick, viscous look.

Extruded 3D Headline Sculpture

Your headline as a thick, bevelled 3D sculpture floating under three-point studio lighting. Each letter has glossy bevelled edges, the camera parallaxes with your pointer so the depth reads from every angle, a soft contact shadow + AO strip ground it, and a real mirrored reflection fades into the glossy floor. A CTA button hover sends a sweep of light across the letters.

Neon Tubes

Flexible neon tubes float and bend through space, forming abstract loops. Each tube glows with its own colour and bloom.

Mechanical Orrery

Tilted-projection brass orrery — concentric orbit rings, planets at parametric positions, slow shadows. The cursor tilts the assembly.

Floating Origami

Paper polygons fold and unfold as they drift across soft directional light. Each shape has its own crease line and fold cycle.
Live customizer

Paint Strokes

Canvas colourStroke AStroke BStroke CStroke count6Stroke thickness1Sweep speed0.4Gloss1Heading FontInteractivityWhich input drives the hero — try Scroll if you want the page to drive motion.
CrazyGL · crazygl.comProgrammable hero sections for real websites.