Raymarched metaballs drifting through space and merging smoothly via SDF smin. Glossy + subsurface-style shading gives them a thick, viscous look.
import LavaLamp from '@crazygl/hero-lava-lamp';
export default function Page() {
return <LavaLamp blobColor="#ff5e92" smoothness={0.55} speed={0.6} />;
}blobColor, blobAccent, blobInner (subsurface glow), smoothness (how eagerly they fuse), speed, glossy, innerStrength.bgTopColor, bgBottomColor.centerX (slide the cluster left/right behind your copy).npm install @crazygl/hero-lava-lampThe component takes the same props you see in the live customizer on the right — every default ships poster-quality.
import LavaLampBlobs from '@crazygl/hero-lava-lamp';
export default function Landing() {
return (
<LavaLampBlobs />
);
}The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';
import LavaLampBlobs from '@crazygl/hero-lava-lamp';
export default function Page() {
return (
<section>
<LavaLampBlobs
heading="Say hi."
subheading="Your new hero."
/>
<article>
<h2>Welcome</h2>
<p>Your content keeps its own voice below the hero.</p>
</article>
</section>
);
}