Design system doc spec 0.20.0
A machine-readable format for design system documentation, what it means for a document to conform to the spec, and every rule the spec enforces.
Draft Specification: This is a draft. It can still change—and has done so in dramatic fashion. No standards body has endorsed it. We welcome feedback and contributions on GitHub.
- Latest version: GitHub repo
- Feedback: GitHub Issues
#
A machine-readable format for design system documentationDSDS puts design-system docs in one format any tool can read. A document is a base —
#
Principles- Documentation only. This schema is focused on the how, when, and why of a design system. That's it. If a better source of truth exists elsewhere, the schema links rather than restating.
- A consistent schema pattern. Each part of the schema follows the same structure, so writing one part teaches you the rest.
- No learning cliffs. It's designed to have a low barrier of entry. But it can grow with you. DSDS'
$extensions let you add on to the schema when you actually need it. - Everything can link to everything else. A design system is a network of connections; the documentation reflects that.
- There's always a way out. The schema has opinions, but always a way to step outside them.
#
Flexible and modularDesign systems have different documentation needs. This schema can be as simple or as detailed as needed. Every entry's structured docs live in one
Any entry kind can use any section kind — nothing restricts which goes with which.
#
Humans and agentsA DSDS document has two readers: people and AI agents. Both are served by the same file. Every section carries a
for: human orfor: all : Everything a person needs—definitions, guidelines, steps, freeform narrative. Agents read these too.for: agent : Agent-only notes—for the times when basic documentation can't get through those thick titanium skulls. This allows you to write documentation specifically for agent misunderstandings, hallucinations, or agent-specific tasks.
Write for people by default. It serves agents too. Use
#
InteroperabilityNo open standard covers design-system documentation end to end. The formats that do exist each cover one layer well — DTCG owns token values, CEM owns a component's generated API, CSF owns a story, a test runner owns whether a rule actually holds.
DSDS sits above them and documents meaning and usage. If another format owns a fact, DSDS points at it rather than restating it — which is why a token entry has a
→ Interoperability covers every format DSDS is built to sit alongside, the field that points at each, and a worked example for all of them.
#
Next stepsNew to DSDS? Start with the Quick Start Guide — document structure, entry kinds, the section system, and examples you can copy.
For the full schema reference, see Schema. For the JSON Schema source, see
#
Contributors- PJ Onori: Current maintainer.
- Cody Clark: the CEM interop example, the nested/aliased DTCG interop example, and the token-description lint rule (
DSDS-13 ). - Suleiman Ali Shakir: the README validate command and lockfile, and a stale version string fix.
- Mykhaylo Ryechkin: the agent skills (
.agents/skills/ ) andscripts/sync-skill-versions.js . - Mark Toadvine: the
shared-a11y WCAG 2.2 accessibility guidelines in the starter kit. - Afyia Smith: the
owner /reviewed andorigin metadata schemas.