Thousands of floating 3D points settle into a soft sphere of light. Wherever you point, a gravity well opens — nearby dots erupt radially outward from the sphere's centre, bulging the cloud like a living particle sculpture. A critically-damped spring eases every swell in and out; idle, the whole field drifts and turns.
import MagneticDotCloud from '@crazygl/hero-magnetic-dot-cloud';
export default function Page() {
return (
<MagneticDotCloud
heading="A living sculpture."
particleCount={6000}
pullStrength={0.24}
dotColor="#ffffff"
/>
);
}contentType, heading, subheading, columns / custom node.particleCount, cloudShape (sphere / wave), cloudScale, offsetX/offsetY, dotColor, backgroundColor.rotateSpeed (idle drift), pullStrength, pullRadius, springDamping (spring response).pointSize, glow.transparent.npm install @crazygl/hero-magnetic-dot-cloudThe component takes the same props you see in the live customizer on the right — every default ships poster-quality.
import MagneticDotCloud from '@crazygl/hero-magnetic-dot-cloud';
export default function Landing() {
return (
<MagneticDotCloud />
);
}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 MagneticDotCloud from '@crazygl/hero-magnetic-dot-cloud';
export default function Page() {
return (
<section>
<MagneticDotCloud
heading="Say hi."
subheading="Your new hero."
/>
<article>
<h2>Welcome</h2>
<p>Your content keeps its own voice below the hero.</p>
</article>
</section>
);
}