Thanks for stopping by. This project exists because builders like you push boundaries. If you're here to experiment, break things, or ship speed - you're in the right place.
React Zero-UI is built on a radical idea:
UI state should not require re-rendering.
CSS anddata-*attributes can be enough.
It's fast because it skips the VDOM entirely - no state triggers, no diffing, no component redraws.
Stay pre-rendered, declarative, and brutally fast.
packages/
├── core -> @react-zero-ui/core (library logic + postcss)
└── cli -> create-zero-ui (npx installer)
docs/ -> Next.js + Fumadocs docs site (apps/docs replacement)
examples/demo/ -> Live performance + sprite showcase app
For the variant extractor / PostCSS pipeline internals (AST parsing, literal resolution, token scanning), see packages/core/ARCHITECTURE.md.
pnpm bootstrap # builds + installs local tarball into test fixtures
pnpm test # runs all tests (unit + E2E)Node 22+ and PNPM required.
Run from repo root.
.codex/project-summary.mdis the high-level overview of what this repo is and what it is for..codex/project-memory.mdis the working memory file for current repo state, recent decisions, and next steps. Helpful for LLM-based context bootstrapping.- Keep
.codex/project-summary.mddurable and product-level. - Keep
.codex/project-memory.mdshort, tactical, and current.
For questions, proposals, or early feedback. Share ideas before building.
Use the templates.
- Bug -> Include steps to reproduce, expected vs. actual behavior.
- Feature -> Explain the why, and sketch a possible approach.
- Use semantic commit prefixes:
feat:,fix:,chore:,refactor: - Add tests if you touch logic, CLI, or rendering behavior.
- Keep PRs focused - one change per pull.
- Fill out the PR template - no empty descriptions.
pnpm test:unit # Core logic tests
pnpm test:integration # Core logic tests
pnpm test:cli # CLI creation flow
pnpm test:vite # E2E tests on Vite fixture
pnpm test:next # E2E tests on Next.js fixture
pnpm test # Runs all of the aboveThis repo measures bundle size from the built @react-zero-ui/core entry.
pnpm build
pnpm size # prints the gzipped byte count
pnpm size:badge # refreshes the README badge JSONThe size script runs:
npx esbuild ./packages/core/dist/index.js --bundle --minify --format=esm --external:react --define:process.env.NODE_ENV='"production"' | gzip -c | wc -csize:badge writes .github/badges/core-size.json, which the README badge reads through a Shields endpoint. Run it after a build when you want to refresh the number.
Keep it respectful and accessible. Push ideas hard, not people.
Got a big idea? DM me:
linkedin.com/in/austin-serb