Design Data Specification
Version: 1.0.0-draft
Status: Draft — normative text and schemas may change before 1.0.0.
This document is the top-level overview for the Design Data Specification: a machine-readable model for Spectrum design tokens, mode sets, platform manifests, and validation.
Scope
The specification defines:
- Token format — structured token identity (
name), literalvalueor alias$ref, and lifecycle metadata (Token format). - Taxonomy — concept categories, token term vocabulary, formatting style, and the distinction between component anatomy and token objects (Taxonomy).
- Registry — named value collections that supply allowed vocabulary for token name fields and component metadata; three-registry boundary (anatomy-terms, token-objects, categories) and packaging strategy (Registry).
- Component format — component declaration shape: API options, named content slots, anatomy parts, state model, and cross-reference validation rules (Component format).
- Anatomy format — anatomy part declaration shape: field constraints, canonical anatomy vocabulary, and cross-reference rules for token
anatomyfield values (Anatomy format). - State model — state declaration shape: trigger semantics, precedence and resolution algorithm, canonical state vocabulary, and cross-reference rules for token
statefield values (State model).
- Anatomy format — anatomy part declaration shape: field constraints, canonical anatomy vocabulary, and cross-reference rules for token
- Cascade and resolution — layered data (foundation, platform, product), specificity, and how a context picks a winning value (Cascade).
- Mode Sets — declared modes, defaults, and coverage expectations (Mode Sets).
- Platform manifest — how a platform repo pins foundation data, filters tokens, and applies typed overrides (Manifest).
- Semantic diff — change taxonomy, token identity rules, and property-level change tracking for comparing dataset versions (Diff).
- Query notation — filter syntax for selecting tokens by structured fields (Query).
- Accessibility — component accessibility vocabulary: semantic role, interaction and keyboard intents, focus behavior, WCAG criteria, and state-level AT fields (Accessibility).
- Accessibility adapters — informative platform adapter contracts: Web/ARIA, iOS UIAccessibility, Android AccessibilityNodeInfo, and voice/multimodal (Accessibility adapters).
- Document blocks — typed prose blocks attachable to tokens, components, and anatomy parts; makes design guidance machine-readable and agent-queryable (Document blocks).
- Agent-readable surface — operations and transport contracts (CLI, MCP server, Agent Skill) for AI agents consuming spec-conformant design data; covers session primer, token resolution, validation, query, and component description (Agent-readable surface).
- Evolution — deprecation lifecycle, migration windows, change classification, and legacy format contract (Evolution).
- Dataset layout — normative directory structure of a dataset (
tokens/,components/,fields/,mode-sets/,registry/,guidelines/), discovery algorithm, and optional root descriptor (Dataset layout). - Guideline documents — standalone JSON files representing non-component design guidance pages (color, typography, motion, spacing, principles, etc.); each wraps page metadata and a
documentBlocksbody (Guideline format). - Authoring workflow — normative contract for authoring design data via tooling: authoritative source location, lifecycle operations (create / edit / deprecate / rename / alias-rewire / mode-set management), taxonomy-aware decomposition requirement, and output-generation obligations (Authoring workflow).
Conformance
The key words MUST, MUST NOT, SHOULD, SHOULD NOT, MAY, and OPTIONAL in this specification are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
Conformance levels
| Level | Meaning |
|---|---|
| NORMATIVE | Required for a conforming document or tool. |
| RECOMMENDED | Strong default; deviations SHOULD be documented. |
| OPTIONAL | May be omitted unless a feature explicitly requires it. |
Validation layers
Conformance is checked in three layers (all under @adobe/design-data-spec):
| Layer | Artifact | Responsibility |
|---|---|---|
| 1 | schemas/*.json |
Per-instance structural shape (JSON Schema Draft 2020-12). |
| 2 | rules/rules.yaml |
Semantic rules with stable IDs (e.g. SPEC-001). |
| 3 | conformance/ |
Fixtures and expected diagnostics for implementors. |
A conforming validator MUST implement Layer 1 for supported document types and SHOULD implement Layer 2 rules whose introduced_in is less than or equal to the validator’s claimed spec version.
Spec version and SemVer
This document set carries the spec version 1.0.0-draft. Published artifacts (schemas, rule catalog) are expected to align with Semantic Versioning once 1.0.0 is released: MAJOR for incompatible schema or rule behavior, MINOR for backward-compatible additions, PATCH for clarifications and compatible fixes.
Full governance (compatibility tiers, migration, CLI --spec-version) is discussed in discussion #735 — Versioning and Evolution.
Normative references (sibling documents)
| Document | Role |
|---|---|
| Token format | Token name, value / $ref, value types, lifecycle metadata. |
| Taxonomy | Concept categories, vocabulary, formatting, anatomy vs objects. |
| Registry | Named value collections for vocabulary validation; three-registry boundary (anatomy, token objects, categories) and packaging. |
| Component format | Component declaration: options, slots, anatomy (→ anatomy-format.md), states (→ state-model.md), lifecycle. |
| Anatomy format | Anatomy part declarations: field constraints, canonical vocabulary, SPEC-020/SPEC-023/SPEC-024/SPEC-025. |
| State model | State declarations: trigger semantics, precedence algorithm, canonical vocabulary, SPEC-022/SPEC-026. |
| Cascade | Layers, specificity, resolution algorithm. |
| Mode Sets | Mode set declarations, built-in mode sets, coverage. |
| Manifest | Platform manifest fields and validation expectations. |
| Product context | Product-layer context document: rationale, overrides, and extensions. |
| Diff | Semantic diff change taxonomy, token identity, property changes. |
| Query | Filter notation for selecting tokens by structured fields. |
| Accessibility | Component accessibility vocabulary: role, intents, focusable, keyboardIntents, wcag, and state-level AT fields (SPEC-030/031). |
| Accessibility adapters | Informative platform adapter contracts mapping foundation accessibility vocabulary to Web/ARIA, iOS, Android, and voice surfaces. |
| Document blocks | Typed prose blocks (purpose, guideline, accessibility, do-dont, examples) attachable to any entity. |
| Agent-readable surface | Transport contracts (CLI, MCP, Agent Skill) and operation catalog for AI agents consuming spec-conformant design data. |
| Evolution | Deprecation lifecycle, migration windows, change classification. |
| Dataset layout | Normative dataset directory structure, discovery algorithm, optional root descriptor, and SPEC-044 structural pre-check. |
| Guideline format | Standalone guideline document shape: metadata fields, category enum, related cross-references, and required documentBlocks body (SPEC-045/046). |
| Authoring workflow | Normative authoring contract: authoritative source location, lifecycle operations, taxonomy-aware decomposition, and output-generation obligations. |
JSON Schema $id and versioning
NORMATIVE: Canonical schema documents use versioned path $id URIs so major revisions can coexist on the documentation host:
- Base:
https://opensource.adobe.com/spectrum-design-data/schemas/v0/ - Examples:
.../v0/token.schema.json,.../v0/mode-set.schema.json,.../v0/manifest.schema.json
The v0 segment denotes the draft / pre-1.0 schema family aligned with spec version 1.0.0-draft. A future 1.0.0 stable release MAY introduce v1 paths without reusing v0 URLs for incompatible shapes.
RECOMMENDED: Each root schema document includes a top-level string property specVersion (const matching this spec’s version label) when the instance is a design-data document that should self-identify; see individual schemas.
Packaged copies in this repository live under packages/design-data-spec/schemas/; their $id still identifies the canonical published URL above.
Relationship to existing Adobe packages
| Package / area | Relationship |
|---|---|
@adobe/spectrum-tokens |
Current token JSON under packages/tokens/ is the legacy shape (e.g. color-set, scale-set). This spec defines the target format; backward-compat schemas and migration are Phase 1 (#723). |
@adobe/spectrum-design-data |
Registry enums (under registry/) and component metadata MAY be referenced by validation rules (e.g. component association); exact coupling is Layer 2. |
@adobe/spectrum-component-api-schemas |
Will become a thin adapter over component declarations in packages/design-data/components/ (Phase 6.5). Until migration, existing schemas remain authoritative. Cross-reference rules SPEC-018–SPEC-020 apply when component declarations are present in the dataset. |