Upload an SVG or transparent PNG logo and light it with a neon inner glow — a bright, radial-gradient rim clipped to the silhouette that fades to a dark core, and intensifies toward your cursor as it approaches.
import LogoEdgeGlow from '@crazygl/hero-logo-edge-glow';
export default function Page() {
return (
<LogoEdgeGlow
logo="https://crazygl.com/samples/crazygl.svg"
colorInner="#ff7a2f"
colorMid="#ff2d9b"
colorOuter="#7b3cff"
/>
);
}logo (transparent SVG/PNG; alpha is the silhouette mask) and logoScale.glowDepth (how far the rim reaches inward; 0.03–0.06 reads as crisp neon), glowIntensity, edgeBoost, outerGlow, ambient (resting glow), bodyDarkness (1 = black core).colorInner/colorMid/colorOuter, gradientShift (focal position), gradientRadius.pointerStrength, pointerRadius (hotspot size).backgroundColor, transparentBackground.npm install @crazygl/hero-logo-edge-glowThe component takes the same props you see in the live customizer on the right — every default ships poster-quality.
import LogoEdgeGlow from '@crazygl/hero-logo-edge-glow';
export default function Landing() {
return (
<LogoEdgeGlow />
);
}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 LogoEdgeGlow from '@crazygl/hero-logo-edge-glow';
export default function Page() {
return (
<section>
<LogoEdgeGlow
heading="Say hi."
subheading="Your new hero."
/>
<article>
<h2>Welcome</h2>
<p>Your content keeps its own voice below the hero.</p>
</article>
</section>
);
}