DTCG Alignment
DTCG Alignment
Variable Contract is DTCG 2025.10 compliant. What that means and what Variable Contract adds.
Compliance statement
Variable Contract uses the Design Tokens Community Group (DTCG) format 2025.10 as its base format. Any JSON file that follows Variable Contract rules is valid DTCG 2025.10 format.
What DTCG provides
DTCG 2025.10 defines:
- JSON structure for variables and groups
- Type system (color, dimension, fontFamily, etc.)
- Reference syntax (curly brace and JSON Pointer)
- Composite types (border, transition, shadow, gradient, typography)
- Group extension with
$ref - Mode support
What Variable Contract adds
Variable Contract adds a governance layer on top of DTCG format:
- Naming convention rules (see Naming)
- Change control process (see Change Control)
- Role definitions (see Design Engineer)
- Adapter patterns for tool integration (see Adapters)
- Validation requirements beyond format correctness
Compatibility matrix
| DTCG Feature | Variable Contract Requirement | Notes |
|---|---|---|
Variable structure ($type, $value) |
MUST | Required for all variables |
| Groups | MUST | Required for organization |
Group extension ($ref) |
MAY | Supported but not required |
Curly brace references ({path}) |
MUST | Canonical format |
JSON Pointer references (#/path) |
MAY | Supported for DTCG compliance |
| Modes | SHOULD | Use when needed for variants |
| Composite types | MAY | Use when structure is needed |
$extensions |
MAY | For tool metadata only |
$deprecated |
SHOULD | Use when deprecating variables |
Format differences
Variable Contract does not change DTCG format. It adds:
- Naming rules that enforce dot-separated paths
- Validation that checks references resolve
- Governance that treats renames as breaking changes
Migration from older formats
If you have variables in older DTCG formats (pre-2025.10):
- Update reference syntax to use curly braces:
{path.to.variable} - Add
$typeto all variables if missing - Move tool metadata to
$extensionsif it’s in root properties - Update group structure if using deprecated patterns
Failure modes
If you ignore DTCG compliance:
- Tools that expect DTCG format will fail to parse your variables
- Reference resolution may break if you use non-standard syntax
- Group extension will not work if
$refformat is wrong
Out of scope
- Runtime validation libraries (use DTCG-compliant validators)
- Format conversion tools (use adapters)
- Tool-specific features not in DTCG spec