React shader components powered by WebGPU and Three.js TSL.
Status: v0.1.0 shipped to npm.
npm install -D @camp-dev/shaders-cli && npx shaders-cli init && npx shaders-cli add linear-gradientto scaffold your first component.
Shaders is a React component library for shader-driven backgrounds and interactive surfaces. It ships polished drop-in components like <LinearGradient>, <Aurora>, and <DotField> for developers who don't want to write shaders, alongside a primitives library and recipe gallery for those who do.
apps/
├── docs/ # @shaders/docs — Next.js docs site (Tweakpane-driven demos)
└── playground/ # @shaders/playground — Vite app with M1 manual harnesses
packages/
├── shaders/ # @camp-dev/shaders — engine: TSL primitives, renderer, scheduler
├── shaders-react/ # @camp-dev/shaders-react — React binding
└── shaders-cli/ # @camp-dev/shaders-cli — copy-paste CLI
registry/ # @shaders/registry — Tier 1 component source files (CLI consumes)
tooling/
├── eslint-config/ # shared ESLint flat config
└── tsconfig/ # shared TypeScript configs
docs/
└── superpowers/
├── specs/ # design documents
└── plans/ # implementation plans
Requires Node 22+ and pnpm 9+.
pnpm install
pnpm build # build all packages + apps
pnpm typecheck # typecheck all packages + apps
pnpm lint # lint all packages + apps
pnpm test # run all tests (Vitest in @camp-dev/shaders)
# Live shader demo
pnpm --filter @shaders/docs dev # Next.js docs at http://localhost:3000
# Engine playground (per-phase manual harnesses)
pnpm --filter @shaders/playground dev # Vite at http://localhost:5173- ✅ Milestone 0 — Repo bootstrap
- ✅ Milestone 1 — Vertical slice:
<LinearGradient>end-to-end - ✅ Milestone 2 —
@camp-dev/shaders-cli(copy-paste delivery) - ✅ Milestone 3 — The other 5 v1 components (MeshGradient, Aurora, DotField, NoiseField, Waves)
- ✅ Milestone 4 — Docs site polish
- ✅ Milestone 5 — Performance, testing, accessibility
- ✅ Milestone 6 — v0.1.0 publish
- ⏳ Milestone 7 — Vite Plus toolchain migration
This repo uses Changesets for versioning. To prepare a release:
- Run
pnpm changesetand describe the change (patch / minor / major). - Open a PR; merge it.
- Run
pnpm changeset versionlocally — bumps versions, updatesCHANGELOG.mdper package. - Run
pnpm build && pnpm test && pnpm smoke— final dress rehearsal. - Run
pnpm publish -r --access public— publishes all three public packages. Requiresnpm loginand 2FA. git tag v<x.y.z>andgit push --tags.
MIT — see LICENSE.