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, dimensions, platform manifests, and validation.
Scope
The specification defines:
- Token format — structured token identity (
name), literalvalueor alias$ref, and lifecycle metadata (Token format). - Cascade and resolution — layered data (foundation, platform, product), specificity, and how a context picks a winning value (Cascade).
- Dimensions — declared modes, defaults, and coverage expectations (Dimensions).
- 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).
- Evolution — deprecation lifecycle, migration windows, change classification, and legacy format contract (Evolution).
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. |
| Cascade | Layers, specificity, resolution algorithm. |
| Dimensions | Dimension declarations, built-in dimensions, coverage. |
| Manifest | Platform manifest fields and validation expectations. |
| Diff | Semantic diff change taxonomy, token identity, property changes. |
| Query | Filter notation for selecting tokens by structured fields. |
| Evolution | Deprecation lifecycle, migration windows, change classification. |
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/dimension.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/design-system-registry |
Registry enums and component metadata MAY be referenced by validation rules (e.g. component association); exact coupling is Layer 2. |
@adobe/spectrum-component-api-schemas |
Component schemas MAY be cross-checked by graph rules; not required for Layer 1 structural validation. |