Design tokens and React components built on shadcn/ui, Base UI, and Tailwind CSS v4, consumed across Vendure applications and ecosystem surfaces.
This monorepo contains the published packages and agent skills of the Vendure design system, plus a Storybook app for component documentation.
| Package | Description |
|---|---|
@vendure-io/design-tokens |
Design tokens and Tailwind v4 CSS theme (@theme, CSS variables) |
@vendure-io/ui |
React components built on shadcn/ui (base-vega style), Base UI, and Tailwind v4 |
@vendure-io/design-lint |
Equivalent ESLint and Biome rules for mechanical design-system constraints |
| App | Description |
|---|---|
storybook |
Component documentation and playground (Storybook 10) |
Note that @vendure-io/ui ships raw .tsx source with no build step; consumers transpile the package themselves. The packages version independently.
To consume the design system in your app, follow the getting started guide. Further guides:
- Design tokens: token pipeline, CSS theme, usage
- UI components: component catalog and usage
- Agent skills: global installation for Codex and Claude Code
- Testing: CI quality gates (a11y, visual regression) and baselines
- Releasing: how packages are versioned and published
Install the portable UI composition and token skills globally for Codex, Claude Code, or another supported agent:
npx skills add vendurehq/design --skill vendure-ui --skill vendure-tokens --globalThe skills are model-invoked, so developers can describe the screen they want to build or review without selecting a skill manually. See Agent Skills for non-interactive installation and host-specific behavior.
Add the mechanical semantic-color checks to a consuming app:
bun add --dev @vendure-io/design-lintEnable either the recommended ESLint config or the Biome GritQL plugin as shown in the @vendure-io/design-lint package guide.
This repo uses Bun and Turborepo.
# Install dependencies
bun install
# Run Storybook
bun run storybook
# Type-check all packages
bun run check-types
# Lint
bun run lint
# Format
bun run format
# Run tests
bun run testPackages are released independently by creating a GitHub Release with a per-package tag. The CI workflow bumps the version in package.json, publishes to npm with provenance, and commits the bump back to main.
| Package | Tag format | Example |
|---|---|---|
@vendure-io/design-tokens |
design-tokens/v{version} |
design-tokens/v1.2.0 |
@vendure-io/ui |
ui/v{version} |
ui/v1.3.0 |
@vendure-io/design-lint |
design-lint/v{version} |
design-lint/v1.0.0 |
Prerelease tags such as ui/v1.4.0-beta.0 publish to the matching npm dist-tag (beta) instead of latest. See docs/releasing.md for the full workflow, including release ordering when both packages change.
See LICENSE.md.