<!-- Generated from /contracts/tokens at build time. Do not edit by hand. -->
<!-- Source of truth: the rendered page. A hand edit here is overwritten on the next build. -->

# Designesy — /contracts/tokens

Canonical page: https://www.designesy.org/contracts/tokens

---

## Tokens

Token-format conformance is the foundation of portable design intelligence. If tokens are not structurally valid, every downstream tool inherits the rot.

Version 0.1.3 · provisional · [machine export](https://www.designesy.org/contracts/tokens.json)

## Source authority

## Conformance

**$value** (required) · **$type** (required, direct or inherited) · **$description** (recommended on semantic) · **$extensions** (optional, namespaced)

color, dimension, fontFamily, duration, cubicBezier, number, boolean

**spring** (via $extensions.designesy.spring) · **sound** (via $extensions.designesy.sound)

OKLCH mandatory for new tokens · Display-P3 permitted · sRGB bare hex legacy (SHOULD migrate)

## Verification

10 checks. PASS=1, WARN=0.5, FAIL=0; SKIP is not scored. Score = ((PASS + 0.5 × WARN) / scored checks) × 100, where a scored check returned PASS, WARN or FAIL (until v0.1.1 a SKIP counted in the denominator, so a clean file with no custom types scored 90; until v0.1.2 a WARN counted 0, where the motion contract, the score engine and the npm validator count it half). A {group.token} alias is a reference: t08 checks the dimension it resolves to, and a $root token is checked like any other. Since v0.1.3 the type of a token is its own $type, else the type of the token it references, else the closest group $type above it ($extends included), and a token written { $type, $ref } is counted, with t04 checking that its JSON Pointer names a location in the file. A≥90, B≥80, C≥70, D≥60, F<60.

## Open questions

- DTCG custom types proposal: should spring and sound be proposed to W3C DTCG?
- Color migration timeline: when should §8.1 migrate from bare hex to structured OKLCH?
- Resolver support: should Designesy adopt DTCG 2025.10 resolvers?
- Multi-theme conformance: how should t09 handle intentional cross-theme type changes?
- Style Dictionary integration: switch from Terrazzo when style-dictionary achieves full 2025.10 support?
