nexu-design is a pnpm workspace for Nexu's React and TypeScript UI library, shared design tokens, a Storybook app, and an Electron demo app.
packages/ui-web—@nexu-design/ui-web, the React component librarypackages/tokens—@nexu-design/tokens, shared design tokens and CSSapps/storybook—@nexu-design/storybook, the component playground and docs appapps/demo—@nexu-design/demo, the Electron demo app
- React 19
- TypeScript
- Vite
- Storybook 9
- Vitest
- Biome
- pnpm workspaces
- Node.js 20+
- pnpm 10+
pnpm installpnpm devThis starts:
- Storybook at
http://localhost:6006 - the Electron demo from
apps/demo
pnpm dev
pnpm dev:storybook
pnpm dev:demo
pnpm dev:demo:web
pnpm build
pnpm build:storybook
pnpm build:electron
pnpm build:packages
pnpm typecheck
pnpm test
pnpm lint
pnpm format
pnpm format:check
pnpm biome:check
pnpm release:checkpnpm --filter @nexu-design/ui-web test
pnpm --filter @nexu-design/ui-web typecheck
pnpm --filter @nexu-design/tokens build
pnpm --filter @nexu-design/storybook build-storybook
pnpm --filter @nexu-design/demo dev
pnpm --filter @nexu-design/demo dist.
├── apps/
│ ├── demo/
│ └── storybook/
├── design-md/
│ └── … third-party DESIGN.md references (see design-md/README.md)
├── docs/
├── packages/
│ ├── tokens/
│ └── ui-web/
├── package.json
└── pnpm-workspace.yaml
- Use
pnpmonly. - Source files are written in TypeScript and React.
- Component stories live in
apps/storybook/src/stories. - The desktop demo lives in
apps/demo, with Electron main/preload sources inapps/demo/mainandapps/demo/preload. - Tests for
@nexu-design/ui-webare co-located with source files and run with Vitest. - Formatting and code quality checks are managed with Biome and TypeScript.
Before publishing package changes, run:
pnpm release:checkThis validates package builds, type checks, tests, and dry-run packaging.
docs/package-publishing-and-consumption.mddocs/component-api-guidelines.mddocs/core-component-api-specs.md