---
"@ux-team/tvu-design-system": patch
---

`./tokens` (DTCG): the `--z-*` overlay scale and `--font-weight-*` now carry their
real DTCG types instead of the spec-invalid `"other"`.

`--z-dropdown` / `--z-tooltip` / `--z-modal` / `--z-select-portal` are now
`$type: "number"`, and `--font-weight-regular` / `--font-weight-semibold` are now
`$type: "fontWeight"`. The DTCG format defines 13 types and `"other"` is not one of
them, so these six nodes were previously invalid; they are now individually valid.

Scope, stated plainly: this does **not** make `./tokens` strictly DTCG-valid, and no
strict consumer becomes able to validate the file as a result. The export keeps the
Second Editors' Draft string-value style — `dimension` is `"16px"` rather than
`{ value, unit }`, and `shadow` is a raw CSS string rather than a composite object —
so a strict validator still rejects the file. See `docs/GETTING_STARTED.md` §8 for
the full conformance boundary.

Their `$value` changed shape with the type, because the spec requires it: a
`number` value "MUST be a JSON number", and `fontWeight` takes a number in
[1, 1000]. So `"1000"` is now `1000` and `"400"` is now `400` **in
`dist/tokens/tokens.json` only**. Typing them without this would merely trade
"type not recognised" for "type recognised, value invalid".

Unaffected: the `./tokens/js` export is unchanged — it stringifies every value, so
`tokens.nonColor['z-dropdown']` is still `'1000'` with the same string-literal type.
The remaining eight `"other"` tokens keep warning by design, and they are two
different cases — the warning now says which:

- `--text-style-*` (7) is a CSS `font` shorthand, which **does** map onto the DTCG
  `typography` composite type (`fontFamily` / `fontSize` / `fontWeight` /
  `lineHeight`). It is simply not implemented yet. Note `typography.lineHeight` must
  be a unitless number while ours is an absolute length, so it would become a ratio —
  exactly `1.5` for six of the seven, but `16/12` for `--text-style-tips`.
- `--form-item-label-width-dynamic: auto` (1) is a keyword and genuinely has no DTCG
  counterpart in any version.
