A cinematic auto-playing slider built on one shared particle engine. Each slide picks a visualization — magnetic sphere, spiral galaxy, liquid wave field, vortex portal, image-to-particle, particle text, neural cloud, cube lattice, orbital rings, terrain — and the thousands of particles MORPH from one formation into the next instead of resetting. The field reacts to the pointer (repel / attract / magnetic). Per-slide heading, subheading, CTA, text transition and layout. Dark, premium, developer-grade.
import ParticleSlider from '@crazygl/hero-particle-slider';
export default function Page() {
return (
<ParticleSlider
slideCount={4}
autoplaySeconds={5}
particleCount={3000}
pointerMode="repel"
/>
);
}slideCount (1–8), autoplaySeconds, dotStyle (bars / dots / lines / hidden).slideNHeading / slideNSubheading / slideNCta / slideNCtaHref, slideNViz (the formation), slideNTransition, slideNLayout, slideNAccent, slideNImage (mask), slideNText (particle word).particleCount, particleSize, baseColor.pointerMode, pointerStrength, pointerRadius, rotationSpeed.bgTop / bgBottom, transparent.headingFontFamily.npm install @crazygl/hero-particle-sliderThe component takes the same props you see in the live customizer on the right — every default ships poster-quality.
import ParticleSlider from '@crazygl/hero-particle-slider';
export default function Landing() {
return (
<ParticleSlider />
);
}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 ParticleSlider from '@crazygl/hero-particle-slider';
export default function Page() {
return (
<section>
<ParticleSlider
heading="Say hi."
subheading="Your new hero."
/>
<article>
<h2>Welcome</h2>
<p>Your content keeps its own voice below the hero.</p>
</article>
</section>
);
}