CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/iridescent-membrane

Iridescent Membrane

The whole background is a thin soap-bubble film — a translucent holographic membrane rendered with physically-based thin-film interference. Slow domain-warped flow drives the film thickness, so restrained pastel rainbows drift across the surface. The pointer presses on the membrane: the film stretches under the cursor and sends out concentric tension waves — single-wavefront ripples that perturb the thickness and shift the colour as they expand. Elegant, futuristic, premium.

ReactWebGLInteractiveFont#iridescent#thin-film#soap-bubble#holographic#membrane#interference#ripple#shader#pointer#premium

Usage

import IridescentMembrane from '@crazygl/hero-iridescent-membrane';

export default function Hero() {
	return (
		<IridescentMembrane
			heading="A surface of light."
			iridescence={2}
			filmThickness={1.2}
		/>
	);
}

Customise

  • MembranefilmThickness (interference orders), iridescence (colour saturation), baseTint, flowSpeed, scale of the flow field.
  • RipplerippleStrength, rippleSpeed, rippleWidth (crispness of each tension ring).
  • ReadabilitytextShade, a soft dark vignette behind the copy.
  • Backdroptransparent to composite the film over an existing page background.

Best for

  • Premium SaaS and AI product launches.
  • Beauty, fragrance, and luxury / fashion brand sites.
  • Design studios wanting a calm, futuristic surface rather than a busy scene.
01 · Install the package

One command, zero config.

npm install @crazygl/hero-iridescent-membrane
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 IridescentMembrane from '@crazygl/hero-iridescent-membrane';

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

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

Iridescent Gradient Typography

Your headline cast in oil-slick iridescence. Real thin-film interference shifts the surface through cyan → green → gold → pink → violet → blue as you move the pointer, just like a soap bubble or a petrol puddle catching streetlight. Three.js TextGeometry + a MeshPhysicalMaterial iridescence layer, lit by a procedural HDR studio with concentrated softboxes.

Halftone Video

A looping video rendered as a living halftone print — a grid of ink dots whose size tracks the footage's local brightness, so the moving image reads as a newspaper press plate that's somehow in motion. The pointer is a clarity lens: under the cursor the screen resolves finer and the raw footage sharpens through, so the image reads clearer exactly where you point. Bold, editorial, premium.

Shader Playground

A live, full-bleed procedural shader background — domain-warped fractal Brownian motion mixed through an iridescent fresnel palette, with the headline and CTA layered cleanly on top. The pointer subtly steers the flow.

Bubble Universe

Iridescent soap bubbles drift upward, each refracting the bg and showing a thin-film rainbow rim. The cursor wobbles nearby bubbles.

Reactive Gradient Silk

A background of folded silk made of light — very smooth gradients with broad flowing folds drifting in slow, elegant fabric motion. The folds carry deep desaturated jewel tones and catch a soft specular sheen along each crease. The pointer presses a gentle indentation into the cloth: the folds bend around the cursor and the highlights and shadows shift with it.

Slow Glitch Fabric

An elegant, controlled digital-signal background: deep moody bands drift like a damaged broadcast, always carrying a tasteful base glitch — blocky horizontal tears and red/cyan channel splits. Move the cursor and the glitch concentrates around its position, intensifying the tears and chromatic split right where you point, then eases back out when you leave.
Live customizer

Iridescent Membrane

Film thickness1.2Average optical thickness of the soap film. Thicker film cycles through more interference orders, so more colour bands appear. Below 0.5 reads as a near-clear film; above 2.5 becomes busy. Sweet spot 1.0–1.5.Iridescence2Colour saturation / restraint of the interference. 0 is a near-monochrome smoky film; 1 is the soft pastel holographic default; above 1.4 the rainbows get vivid. Keep around 0.8–1.1 for the premium pastel look.Base tintDeep backing colour the translucent film sits over. A near-black blue keeps the iridescence reading as light on a dark surface.Flow speed0.09How fast the domain-warped thickness field drifts. 0 freezes the membrane into a static frame; 0.35 is a slow, calm breathing flow. Above 1 it churns.Pattern scale2.8Spatial frequency of the thickness field. Lower = large soft continents of colour; higher = fine marbled veins. 1.0 balances both.Ripple strength1How hard the pointer presses on the membrane. Drives both the surface stretch around the cursor and the height of the expanding tension waves. 0 disables the pointer response.Ripple speed0.62How fast each tension wave expands outward from the cursor. 1 is a natural surface-tension speed; higher snaps the rings out faster.Ripple width0.1Thickness of each single-wavefront ring (Gaussian sigma in fragUV). Thin reads as a crisp shockwave; wide reads as a soft swell. 0.08–0.14 is the sweet spot.Heading shade0.35Strength of the soft dark vignette painted behind the heading so the copy stays legible over the bright film. 0 removes it; 0.35 is a subtle anchor; 1 is a strong spotlight.Transparent backgroundDrop the opaque backing so the membrane composites over whatever sits behind the hero on your page.InteractivityWhich input drives the hero — try Scroll if you want the page to drive motion.
CrazyGL · crazygl.comProgrammable hero sections for real websites.