Ripple Surface

A field of soft concentric rings shaded by a directional light — WebGL sin-ridge height field with four travel modes (outward, inward, breathe, drift), tanh-smoothed ridges, a faded core that kills the seam at the origin, and eight palettes from pearl to obsidian. Pauses when off-screen.

Lazy-ui
Ripple

Build quietly.

Concentric rings carved by a single directional light — tanh-smoothed ridges and a faded core keep the surface clean from edge to edge.

Customize

Palette
Effect
Show content
Rings4
Sharpness0.30
Depth1.25
Speed1.15
Light130°
Center glow0.62
Vignette0.30
Origin X0.50
Origin Y0.50

Usage

import { RippleSurface } from "@/components/lazy-ui/ripple-surface";

export function Demo() {
  return (
    <RippleSurface
      palette="graphite"
      effect="drift"
      rings={4}
      sharpness={0.3}
      depth={1.25}
      speed={1.15}
      lightAngle={130}
      centerGlow={0.62}
      vignette={0.3}
      className="min-h-[520px] rounded-2xl"
    >
      <main className="relative z-10 flex h-full items-center justify-center px-6">
        <h1
          className="text-5xl tracking-tight text-white"
          style={{ fontFamily: "'Instrument Serif', serif" }}
        >
          Build <span className="italic">quietly.</span>
        </h1>
      </main>
    </RippleSurface>
  );
}