Flexible neon tubes float and bend through space, forming abstract loops. Each tube glows with its own colour and bloom.
import NeonTubes from '@crazygl/hero-neon-tubes';
export default function Page() {
return (
<NeonTubes
heading="Filaments."
count={5}
bloom={1}
tintA="#ff6cd1"
tintB="#5cf2ff"
tintC="#a4ff60"
/>
);
}contentType (heading / two-columns / custom), heading, subheading, or custom node columns.transparent toggle, plus bgTop / bgBottom for the vertical gradient.tintA / tintB / tintC cycled across tubes, count (2-9), thickness (0.4-2.5), bloom (0-2.5), and speed bend rate (0-2).headingFontFamily.npm install @crazygl/hero-neon-tubesThe component takes the same props you see in the live customizer on the right — every default ships poster-quality.
import NeonTubes from '@crazygl/hero-neon-tubes';
export default function Landing() {
return (
<NeonTubes />
);
}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 NeonTubes from '@crazygl/hero-neon-tubes';
export default function Page() {
return (
<section>
<NeonTubes
heading="Say hi."
subheading="Your new hero."
/>
<article>
<h2>Welcome</h2>
<p>Your content keeps its own voice below the hero.</p>
</article>
</section>
);
}