CrazyGL gives you polished WebGL, canvas, and interactive typography effects you can customize and ship.
Hand-picked heroes from the catalogue.
Every hero is shaped around the things you actually need on a real landing page: it has to be tweakable, fast, and quiet to integrate.
Every hero exposes its sliders, colors, typography, and content controls. Open the customizer, dial in the brand, copy a single prop list out.
Heroes are standalone packages. You install only what you render, so your bundle stays small and your build stays quick.
Drop in a headline + subhead, two columns of rich text, or compose something custom. Swap between content shapes without rewriting the hero.
Heroes prefer plain CSS when it suffices, escalate to canvas or WebGL when there's real visual benefit, and pause when offscreen. Performance is the default, not an option.
One default export per package. Works in Next.js, Remix, React Router v7 — anywhere SSR matters. No hydration warnings, no special bundler config.
Reads prefers-reduced-motion, keeps content readable on top of busy backgrounds, and ships with sensible focus styles out of the box.
Every hero is a standalone package — add only what you need and keep your bundle tight.
// add a hero
// $ npm i @crazygl/hero-bubbles
import Bubbles from '@crazygl/hero-bubbles';
export default function Landing() {
return <Bubbles heading="Say hi." subheading="Your new hero." />;
}