@camunda/design-system
v0.26.0
Published
Camunda's AI-first design system. shadcn + Tailwind components, design tokens aligned to Camunda's identity, and AI tooling for component authoring + migration.
Maintainers
Keywords
Readme
@camunda/design-system
Camunda's AI-first design system. React components built on shadcn/ui with Radix UI primitives and Tailwind CSS v4.
v0 — public API subject to change. Under active development; minor versions may introduce breaking changes before 1.0.
Claude Code plugin
Install once to get AI agents for building UI, adding components, and migrating from Carbon:
- Open the plugin manager:
/plugins - Marketplaces → Add → enter
camunda/design-system→ confirm - Discover → find
camunda-design-system→ Install - Choose user scope
No configuration needed — agents auto-detect the DS package via components.json.
Update notifications are built in: a banner appears at session start whenever a newer plugin version is available. To apply the update, open /plugins and click Update on the camunda-design-system tile.
| Task | How |
| ------------------------------------ | ------------------------------ |
| Build UI from existing DS components | Describe what you need in chat |
| Add or modify a DS component | /camunda-design-system |
| Migrate a file from Carbon | /migrate <file> |
| Migrate a directory | /migrate <dir> --bulk |
→ Getting Started: your first task in 2 minutes
Manual setup
Install
npm install @camunda/design-system react react-domPeer dependencies: React 19, Node ≥ 24. @carbon/react is an optional peer dependency — only needed if migrating from Carbon Design System.
Quick start
Add the CSS import and wrap your app root with <C4Provider>:
// index.tsx / main.tsx
import "@camunda/design-system/styles.css";
import { C4Provider } from "@camunda/design-system";
createRoot(document.getElementById("root")!).render(
<C4Provider>
<App />
</C4Provider>,
);Then use components anywhere in your tree:
import { Button } from "@camunda/design-system";
export function Example() {
return <Button variant="default">Click me</Button>;
}<C4Provider> establishes the .c4-ui CSS scope that design tokens and Tailwind preflight require. Place it at your app root — as high up as possible.
What's included
Components (src/components/ui/) — 28 shadcn/Radix UI primitives (Button, Input, Dialog, DataTable, TreeView, ComboBox, and more), each with:
- TypeScript + Tailwind CSS implementation
.specs.tsmachine-readable contract (drives AI authoring and Storybook docs)- Storybook story with documented variants
Design tokens (src/index.css) — CSS custom properties scoped under .c4-ui: colors, radius, shadows, typography aligned to Camunda's brand identity.
Carbon adapter (carbon-compat/) — transitional wrappers for teams migrating off @carbon/react. Each adapter is @deprecated from birth and removed once consumers migrate.
Storybook — live component browser at camunda.github.io/design-system. Run locally with npm run storybook.
Reporting issues & requesting features
Use GitHub Issues to report bugs or propose new components and enhancements.
| What | Template to use | | ------------------------ | --------------------------------------------------------------------------------------------------- | | Something is broken | Bug report | | New component or variant | Feature request |
Before opening an issue:
- Search existing issues to avoid duplicates.
- For quick questions or informal requests, ping us on Slack at
#design-systemfirst.
All new issues are triaged by the DS team and added to the AI-first Design System board. Expect an initial response within one business day for urgency:immediate issues.
Contributing
Developer setup
Prerequisites: Node 24+, npm 10+.
git clone https://github.com/camunda/design-system
cd design-system
npm install
npm run storybook # component browser at localhost:6006
npm run typecheck # TypeScript validation
npm run build # compile to dist/Adding a component
Open Claude Code in this repo and describe the component. Agents route automatically:
no .specs.ts found → Spec Author agent (drafts the contract)
spec exists, no .tsx → Dev agent (implements + stories)
both exist → Validator agent (PASS / WARN / FAIL report)Sequence: Spec Author → human review → Dev → Validator → PR.
Full agent reference: AGENTS.md.
Releasing a new version
Agents write changesets automatically as part of PRs. If you implement a change yourself:
npx changeset # interactive: pick patch / minor / major + one-line descriptionOnce changesets accumulate on main, the bot opens a "Version Packages" PR that batches all bumps. Merging it publishes to npm and creates a GitHub Release.
Releasing a plugin update
Plugin agents, skills, and scripts are versioned independently of the npm package — no changeset needed, no npm publish.
Version bumps are automatic: the pre-commit hook detects staged changes to agents/, skills/, or plugins/camunda-design-system/ and runs a patch bump automatically. No manual step required for routine changes.
To bump minor or major manually (new agent added, breaking API change):
npm run version:bump-plugin minor # or major| Type | When |
| ------- | -------------------------------------------------------- |
| patch | Prompt tweaks, script fixes, copy corrections — auto |
| minor | New agent or skill added |
| major | Breaking change to agent API or plugin structure |
CI will block plugin-file changes that lack a version bump — add label skip-plugin-version to bypass when intentional.
Before every PR
npx tsc --noEmit -p tsconfig.app.json # zero errors required
npm run build-storybook # docs page must renderFull checklist: AGENTS.md — Verification gate.
License
Apache-2.0 — see LICENSE.
