Skip to content

feat: token-to-spec gap analysis, registry expansion, scaleIndex field, and spec proposals#814

Open
GarthDB wants to merge 17 commits into
mainfrom
feat/token-spec-gap-analysis
Open

feat: token-to-spec gap analysis, registry expansion, scaleIndex field, and spec proposals#814
GarthDB wants to merge 17 commits into
mainfrom
feat/token-spec-gap-analysis

Conversation

@GarthDB
Copy link
Copy Markdown
Member

@GarthDB GarthDB commented Apr 8, 2026

Description

Comprehensive analysis of all 2,455 tokens against the 13-field taxonomy name object spec, with remediation across multiple phases:

  1. Token mapping analyzer tool — Decomposes every token into semantic fields, scores confidence, identifies structural gaps
  2. Registry vocabulary expansion — Added missing terms to sizes, variants, anatomy, and states registries
  3. 176 token renames — Deprecated non-standard-order tokens and added spec-compliant names
  4. 6 spec proposals — Documented remaining gaps with concrete amendment proposals
  5. 602 naming exceptions — Every unresolvable token categorized and linked to its proposal
  6. Proposal 003 implemented — Added scaleIndex as a formal field in the configurable field catalog with a new "numeric" kind, eliminating taxonomy gaps for ~280 scale tokens
  7. Configurable field catalog integration — Analyzer uses the field catalog from feat(spec): configurable name-object field catalog #816 for serialization order and registry discovery

Results

Metric Before After
HIGH confidence 519 (37.6%) 876 (63.4%)
MEDIUM 863 (62.4%) 506 (36.6%)
LOW/FAIL 0 0
Roundtrip rate 37.6% 64.8%
Scale tokens with taxonomy gaps ~280 0

scaleIndex Field (Proposal 003)

Added scaleIndex as the first "numeric" kind field in the field catalog:

  • Declared in packages/design-data-spec/fields/scaleIndex.json
  • valueType: "integer", validation: "none", serialization.position: 16
  • Decomposer no longer flags numeric scale indices as gaps when the field is declared
  • 12 former numeric-scale-index naming exceptions re-categorized to ordering-mismatch (these tokens have mid-name numerics that still don't roundtrip)
  • SDK codegen regenerated to pick up registry vocabulary expansions

Spec Proposals (in docs/proposals/)

  • 001: Typography taxonomy — script, family, emphasis fields (221 tokens)
  • 002: Component property axes — style, staticColor, emphasis aligned with component schema properties (234 tokens)
  • 003: Numeric scale index field — Implemented (280 tokens)
  • 004: Drop-shadow as structure (31 tokens)
  • 005: Compound states (13 tokens)
  • 006: Vocabulary gaps — registry additions (~70 tokens)

Related Issue

Related to taxonomy/naming framework work on feat/taxonomy-naming-framework and feat/taxonomy-registry-split branches.

Motivation and Context

We needed to understand where the new 13-field token naming taxonomy fits existing tokens and where it doesn't, before building migration tooling. This PR provides that complete picture: what works, what needs renaming, and what needs spec changes — with concrete proposals for each gap.

Key finding: component schemas already define style, staticColor, and isEmphasized as independent variant axes. The token taxonomy should mirror this rather than using array variants.

How Has This Been Tested?

  • Token mapping analyzer has 10 AVA tests covering decomposition, serialization, gap detection, and scaleIndex field behavior
  • Analyzer processes all 2,455 tokens across 8 source files
  • Token renames verified: old tokens have deprecated/renamed pointers, new tokens preserve values/sets
  • All 20 token tests pass (UUIDs unique, component props, alias references, schema validation)
  • Validation snapshot regenerated and verified
  • SDK codegen check passes
  • All pre-commit hooks pass (prettier, lint-staged)

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Note: Token renames are breaking — 176 tokens deprecated with renamed pointers to new spec-order names.

Checklist:

  • I have signed the Adobe Open Source CLA.
  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 8, 2026

🎨 Token Changes Report

Tokens Changed (457)

Original Branch: main
New Branch: feat/token-spec-gap-analysis

Newly Deprecated (194)
  • body-size-l: Renamed to spec-order name. Use `body-size-large` instead.
  • body-size-m: Renamed to spec-order name. Use `body-size-medium` instead.
  • body-size-s: Renamed to spec-order name. Use `body-size-small` instead.
  • body-size-xl: Renamed to spec-order name. Use `body-size-extra-large` instead.
  • body-size-xs: Renamed to spec-order name. Use `body-size-extra-small` instead.
  • body-size-xxl: Renamed to spec-order name. Use `body-size-2x-large` instead.
  • body-size-xxs: Renamed to spec-order name. Use `body-size-2x-small` instead.
  • body-size-xxxl: Renamed to spec-order name. Use `body-size-3x-large` instead.
  • code-size-l: Renamed to spec-order name. Use `code-size-large` instead.
  • code-size-m: Renamed to spec-order name. Use `code-size-medium` instead.
  • code-size-s: Renamed to spec-order name. Use `code-size-small` instead.
  • code-size-xl: Renamed to spec-order name. Use `code-size-extra-large` instead.
  • code-size-xs: Renamed to spec-order name. Use `code-size-extra-small` instead.
  • default-font-family: Renamed to spec-order name. Use `font-family-default` instead.
  • default-font-style: Renamed to spec-order name. Use `font-style-default` instead.
  • detail-margin-bottom-multiplier: Renamed to spec-order name. Use `detail-margin-multiplier-bottom` instead.
  • detail-margin-top-multiplier: Renamed to spec-order name. Use `detail-margin-multiplier-top` instead.
  • detail-size-l: Renamed to spec-order name. Use `detail-size-large` instead.
  • detail-size-m: Renamed to spec-order name. Use `detail-size-medium` instead.
  • detail-size-s: Renamed to spec-order name. Use `detail-size-small` instead.
  • detail-size-xl: Renamed to spec-order name. Use `detail-size-extra-large` instead.
  • detail-size-xs: Renamed to spec-order name. Use `detail-size-extra-small` instead.
  • heading-margin-bottom-multiplier: Renamed to spec-order name. Use `heading-margin-multiplier-bottom` instead.
  • heading-margin-top-multiplier: Renamed to spec-order name. Use `heading-margin-multiplier-top` instead.
  • heading-size-l: Renamed to spec-order name. Use `heading-size-large` instead.
  • heading-size-m: Renamed to spec-order name. Use `heading-size-medium` instead.
  • heading-size-s: Renamed to spec-order name. Use `heading-size-small` instead.
  • heading-size-xl: Renamed to spec-order name. Use `heading-size-extra-large` instead.
  • heading-size-xs: Renamed to spec-order name. Use `heading-size-extra-small` instead.
  • heading-size-xxl: Renamed to spec-order name. Use `heading-size-2x-large` instead.
  • heading-size-xxxl: Renamed to spec-order name. Use `heading-size-3x-large` instead.
  • line-height-font-size-100: Replaced by typography-scale composite. Use `typography-scale-100` instead.
  • line-height-font-size-1000: Replaced by typography-scale composite. Use `typography-scale-1000` instead.
  • line-height-font-size-1100: Replaced by typography-scale composite. Use `typography-scale-1100` instead.
  • line-height-font-size-1200: Replaced by typography-scale composite. Use `typography-scale-1200` instead.
  • line-height-font-size-1300: Replaced by typography-scale composite. Use `typography-scale-1300` instead.
  • line-height-font-size-1400: Replaced by typography-scale composite. Use `typography-scale-1400` instead.
  • line-height-font-size-1500: Replaced by typography-scale composite. Use `typography-scale-1500` instead.
  • line-height-font-size-200: Replaced by typography-scale composite. Use `typography-scale-200` instead.
  • line-height-font-size-25: Replaced by typography-scale composite. Use `typography-scale-25` instead.
  • line-height-font-size-300: Replaced by typography-scale composite. Use `typography-scale-300` instead.
  • line-height-font-size-400: Replaced by typography-scale composite. Use `typography-scale-400` instead.
  • line-height-font-size-50: Replaced by typography-scale composite. Use `typography-scale-50` instead.
  • line-height-font-size-500: Replaced by typography-scale composite. Use `typography-scale-500` instead.
  • line-height-font-size-600: Replaced by typography-scale composite. Use `typography-scale-600` instead.
  • line-height-font-size-700: Replaced by typography-scale composite. Use `typography-scale-700` instead.
  • line-height-font-size-75: Replaced by typography-scale composite. Use `typography-scale-75` instead.
  • line-height-font-size-800: Replaced by typography-scale composite. Use `typography-scale-800` instead.
  • line-height-font-size-900: Replaced by typography-scale composite. Use `typography-scale-900` instead.
  • medium-font-weight: Renamed to spec-order name. Use `font-weight-medium` instead.
  • icon-color-informative: Renamed to spec-order name. Use `informative-icon-color` instead.
  • icon-color-negative: Renamed to spec-order name. Use `negative-icon-color` instead.
  • icon-color-neutral: Renamed to spec-order name. Use `neutral-icon-color` instead.
  • icon-color-notice: Renamed to spec-order name. Use `notice-icon-color` instead.
  • icon-color-positive: Renamed to spec-order name. Use `positive-icon-color` instead.
  • base-padding-horizontal-uniform-2x-large: Renamed to spec-order name. Use `base-padding-horizontal-2x-large-uniform` instead.
  • base-padding-horizontal-uniform-2x-small: Renamed to spec-order name. Use `base-padding-horizontal-2x-small-uniform` instead.
  • base-padding-horizontal-uniform-extra-large: Renamed to spec-order name. Use `base-padding-horizontal-extra-large-uniform` instead.
  • base-padding-horizontal-uniform-extra-small: Renamed to spec-order name. Use `base-padding-horizontal-extra-small-uniform` instead.
  • base-padding-horizontal-uniform-large: Renamed to spec-order name. Use `base-padding-horizontal-large-uniform` instead.
  • base-padding-horizontal-uniform-medium: Renamed to spec-order name. Use `base-padding-horizontal-medium-uniform` instead.
  • base-padding-horizontal-uniform-small: Renamed to spec-order name. Use `base-padding-horizontal-small-uniform` instead.
  • color-control-track-width: Renamed to spec-order name. Use `control-color-track-width` instead.
  • list-item-padding-vertical-regular: Renamed to spec-order name. Use `list-item-padding-regular-vertical` instead.
  • side-focus-indicator: Renamed to spec-order name. Use `focus-indicator-side` instead.
  • card-default-width-extra-large: Renamed to spec-order name. Use `card-width-extra-large-default` instead.
  • card-default-width-extra-small: Renamed to spec-order name. Use `card-width-extra-small-default` instead.
  • card-default-width-large: Renamed to spec-order name. Use `card-width-large-default` instead.
  • card-default-width-medium: Renamed to spec-order name. Use `card-width-medium-default` instead.
  • card-default-width-small: Renamed to spec-order name. Use `card-width-small-default` instead.
  • coach-indicator-collapsed-ring-thickness: Renamed to spec-order name. Use `coach-indicator-ring-collapsed-thickness` instead.
  • coach-indicator-expanded-ring-thickness: Renamed to spec-order name. Use `coach-indicator-ring-expanded-thickness` instead.
  • color-handle-size-key-focus: Renamed to spec-order name. Use `color-handle-size-keyboard-focus` instead.
  • divider-horizontal-minimum-width: Renamed to spec-order name. Use `divider-minimum-width-horizontal` instead.
  • divider-vertical-minimum-height: Renamed to spec-order name. Use `divider-minimum-height-vertical` instead.
  • field-default-width-extra-large: Renamed to spec-order name. Use `field-width-extra-large-default` instead.
  • field-default-width-large: Renamed to spec-order name. Use `field-width-large-default` instead.
  • field-default-width-medium: Renamed to spec-order name. Use `field-width-medium-default` instead.
  • field-default-width-small: Renamed to spec-order name. Use `field-width-small-default` instead.
  • illustrated-message-horizontal-maximum-width: Renamed to spec-order name. Use `illustrated-message-maximum-width-horizontal` instead.
  • illustrated-message-large-body-font-size: Renamed to spec-order name. Use `illustrated-message-body-font-size-large` instead.
  • illustrated-message-large-title-font-size: Renamed to spec-order name. Use `illustrated-message-title-font-size-large` instead.
  • illustrated-message-medium-body-font-size: Renamed to spec-order name. Use `illustrated-message-body-font-size-medium` instead.
  • illustrated-message-medium-title-font-size: Renamed to spec-order name. Use `illustrated-message-title-font-size-medium` instead.
  • illustrated-message-small-body-font-size: Renamed to spec-order name. Use `illustrated-message-body-font-size-small` instead.
  • illustrated-message-small-title-font-size: Renamed to spec-order name. Use `illustrated-message-title-font-size-small` instead.
  • illustrated-message-vertical-maximum-width: Renamed to spec-order name. Use `illustrated-message-maximum-width-vertical` instead.
  • list-view-item-bottom-corner-radius: Renamed to spec-order name. Use `list-view-item-corner-radius-bottom` instead.
  • list-view-item-top-corner-radius: Renamed to spec-order name. Use `list-view-item-corner-radius-top` instead.
  • menu-item-section-divider-height: Renamed to spec-order name. Use `menu-item-divider-section-height` instead.
  • select-box-horizontal-minimum-height: Renamed to spec-order name. Use `select-box-minimum-height-horizontal` instead.
  • select-box-horizontal-minimum-width: Renamed to spec-order name. Use `select-box-minimum-width-horizontal` instead.
  • select-box-horizontal-width: Renamed to spec-order name. Use `select-box-width-horizontal` instead.
  • select-box-vertical-height: Renamed to spec-order name. Use `select-box-height-vertical` instead.
  • steplist-step-default-height-extra-large: Renamed to spec-order name. Use `steplist-step-height-extra-large-default` instead.
  • steplist-step-default-height-large: Renamed to spec-order name. Use `steplist-step-height-large-default` instead.
  • steplist-step-default-height-medium: Renamed to spec-order name. Use `steplist-step-height-medium-default` instead.
  • steplist-step-default-height-small: Renamed to spec-order name. Use `steplist-step-height-small-default` instead.
  • steplist-step-default-width-extra-large: Renamed to spec-order name. Use `steplist-step-width-extra-large-default` instead.
  • steplist-step-default-width-large: Renamed to spec-order name. Use `steplist-step-width-large-default` instead.
  • steplist-step-default-width-medium: Renamed to spec-order name. Use `steplist-step-width-medium-default` instead.
  • steplist-step-default-width-small: Renamed to spec-order name. Use `steplist-step-width-small-default` instead.
  • switch-handle-selected-size-extra-large: Renamed to spec-order name. Use `switch-handle-size-extra-large-selected` instead.
  • switch-handle-selected-size-large: Renamed to spec-order name. Use `switch-handle-size-large-selected` instead.
  • switch-handle-selected-size-medium: Renamed to spec-order name. Use `switch-handle-size-medium-selected` instead.
  • switch-handle-selected-size-small: Renamed to spec-order name. Use `switch-handle-size-small-selected` instead.
  • tab-item-compact-height-extra-large: Renamed to spec-order name. Use `tab-item-height-extra-large-compact` instead.
  • tab-item-compact-height-large: Renamed to spec-order name. Use `tab-item-height-large-compact` instead.
  • tab-item-compact-height-medium: Renamed to spec-order name. Use `tab-item-height-medium-compact` instead.
  • tab-item-compact-height-small: Renamed to spec-order name. Use `tab-item-height-small-compact` instead.
  • table-border-divider-width: Renamed to spec-order name. Use `table-divider-border-width` instead.
  • table-section-header-row-height-extra-large: Renamed to spec-order name. Use `table-header-section-row-height-extra-large` instead.
  • table-section-header-row-height-large: Renamed to spec-order name. Use `table-header-section-row-height-large` instead.
  • table-section-header-row-height-medium: Renamed to spec-order name. Use `table-header-section-row-height-medium` instead.
  • table-section-header-row-height-small: Renamed to spec-order name. Use `table-header-section-row-height-small` instead.
  • tag-field-default-width-large: Renamed to spec-order name. Use `tag-field-width-large-default` instead.
  • tag-field-default-width-medium: Renamed to spec-order name. Use `tag-field-width-medium-default` instead.
  • tag-field-default-width-small: Renamed to spec-order name. Use `tag-field-width-small-default` instead.
  • title-margin-bottom-multiplier: Renamed to spec-order name. Use `title-margin-multiplier-bottom` instead.
  • title-margin-top-multiplier: Renamed to spec-order name. Use `title-margin-multiplier-top` instead.
  • title-size-l: Renamed to spec-order name. Use `title-size-large` instead.
  • title-size-m: Renamed to spec-order name. Use `title-size-medium` instead.
  • title-size-s: Renamed to spec-order name. Use `title-size-small` instead.
  • title-size-xl: Renamed to spec-order name. Use `title-size-extra-large` instead.
  • title-size-xs: Renamed to spec-order name. Use `title-size-extra-small` instead.
  • title-size-xxl: Renamed to spec-order name. Use `title-size-2x-large` instead.
  • title-size-xxxl: Renamed to spec-order name. Use `title-size-3x-large` instead.
  • tree-view-disclosure-indicator-height: Renamed to spec-order name. Use `tree-view-indicator-disclosure-height` instead.
  • tree-view-disclosure-indicator-width: Renamed to spec-order name. Use `tree-view-indicator-disclosure-width` instead.
  • icon-color-blue-background: Renamed to spec-order name. Use `blue-icon-background-color` instead.
  • icon-color-brown-background: Renamed to spec-order name. Use `brown-icon-background-color` instead.
  • icon-color-celery-background: Renamed to spec-order name. Use `celery-icon-background-color` instead.
  • icon-color-chartreuse-background: Renamed to spec-order name. Use `chartreuse-icon-background-color` instead.
  • icon-color-cinnamon-background: Renamed to spec-order name. Use `cinnamon-icon-background-color` instead.
  • icon-color-cyan-background: Renamed to spec-order name. Use `cyan-icon-background-color` instead.
  • icon-color-disabled-primary: Renamed to spec-order name. Use `primary-icon-color-disabled` instead.
  • icon-color-fuchsia-background: Renamed to spec-order name. Use `fuchsia-icon-background-color` instead.
  • icon-color-green-background: Renamed to spec-order name. Use `green-icon-background-color` instead.
  • icon-color-indigo-background: Renamed to spec-order name. Use `indigo-icon-background-color` instead.
  • icon-color-inverse-background: Renamed to spec-order name. Use `inverse-icon-background-color` instead.
  • icon-color-magenta-background: Renamed to spec-order name. Use `magenta-icon-background-color` instead.
  • icon-color-orange-background: Renamed to spec-order name. Use `orange-icon-background-color` instead.
  • icon-color-pink-background: Renamed to spec-order name. Use `pink-icon-background-color` instead.
  • icon-color-primary-default: Renamed to spec-order name. Use `primary-icon-color-default` instead.
  • icon-color-primary-down: Renamed to spec-order name. Use `primary-icon-color-down` instead.
  • icon-color-primary-hover: Renamed to spec-order name. Use `primary-icon-color-hover` instead.
  • icon-color-purple-background: Renamed to spec-order name. Use `purple-icon-background-color` instead.
  • icon-color-red-background: Renamed to spec-order name. Use `red-icon-background-color` instead.
  • icon-color-seafoam-background: Renamed to spec-order name. Use `seafoam-icon-background-color` instead.
  • icon-color-silver-background: Renamed to spec-order name. Use `silver-icon-background-color` instead.
  • icon-color-turquoise-background: Renamed to spec-order name. Use `turquoise-icon-background-color` instead.
  • icon-color-yellow-background: Renamed to spec-order name. Use `yellow-icon-background-color` instead.
  • select-box-selected-border-color: Renamed to spec-order name. Use `select-box-border-color-selected` instead.
  • stack-item-background-color-key-focus: Renamed to spec-order name. Use `stack-item-background-color-keyboard-focus` instead.
  • stack-item-selected-background-color-default: Renamed to spec-order name. Use `stack-item-background-color-default-selected` instead.
  • stack-item-selected-background-color-down: Renamed to spec-order name. Use `stack-item-background-color-down-selected` instead.
  • stack-item-selected-background-color-hover: Renamed to spec-order name. Use `stack-item-background-color-hover-selected` instead.
  • stack-item-selected-background-color-key-focus: Renamed to spec-order name. Use `stack-item-background-selected-color-keyboard-focus` instead.
  • swatch-disabled-icon-border-color: Renamed to spec-order name. Use `swatch-icon-border-color-disabled` instead.
  • swatch-disabled-icon-border-opacity: Renamed to spec-order name. Use `swatch-icon-border-opacity-disabled` instead.
  • table-row-down-opacity: Renamed to spec-order name. Use `table-row-opacity-down` instead.
  • table-row-hover-color: Renamed to spec-order name. Use `table-row-color-hover` instead.
  • table-row-hover-opacity: Renamed to spec-order name. Use `table-row-opacity-hover` instead.
  • table-selected-row-background-color: Renamed to spec-order name. Use `table-row-background-color-selected` instead.
  • table-selected-row-background-opacity: Renamed to spec-order name. Use `table-row-background-opacity-selected` instead.
  • table-selected-row-background-opacity-hover: Renamed to spec-order name. Use `table-row-background-opacity-hover-selected` instead.
  • tree-view-selected-row-background-default: Renamed to spec-order name. Use `tree-view-row-background-default-selected` instead.
  • tree-view-selected-row-background-hover: Renamed to spec-order name. Use `tree-view-row-background-hover-selected` instead.
  • accent-background-color-key-focus: Renamed to spec-order name. Use `accent-background-color-keyboard-focus` instead.
  • accent-content-color-key-focus: Renamed to spec-order name. Use `accent-content-color-keyboard-focus` instead.
  • background-base-color: Renamed to spec-order name. Use `base-background-color` instead.
  • background-opacity-key-focus: Renamed to spec-order name. Use `background-opacity-keyboard-focus` instead.
  • disabled-background-color: Renamed to spec-order name. Use `background-color-disabled` instead.
  • disabled-border-color: Renamed to spec-order name. Use `border-color-disabled` instead.
  • disabled-content-color: Renamed to spec-order name. Use `content-color-disabled` instead.
  • informative-background-color-key-focus: Renamed to spec-order name. Use `informative-background-color-keyboard-focus` instead.
  • negative-background-color-key-focus: Renamed to spec-order name. Use `negative-background-color-keyboard-focus` instead.
  • negative-border-color-focus-hover: Renamed to spec-order name. Use `negative-border-color-hover-focus` instead.
  • negative-border-color-key-focus: Renamed to spec-order name. Use `negative-border-color-keyboard-focus` instead.
  • negative-content-color-key-focus: Renamed to spec-order name. Use `negative-content-color-keyboard-focus` instead.
  • neutral-background-color-key-focus: Renamed to spec-order name. Use `neutral-background-color-keyboard-focus` instead.
  • neutral-background-color-selected-default: Renamed to spec-order name. Use `neutral-background-color-default-selected` instead.
  • neutral-background-color-selected-down: Renamed to spec-order name. Use `neutral-background-color-down-selected` instead.
  • neutral-background-color-selected-hover: Renamed to spec-order name. Use `neutral-background-color-hover-selected` instead.
  • neutral-background-color-selected-key-focus: Renamed to spec-order name. Use `neutral-background-color-selected-keyboard-focus` instead.
  • neutral-content-color-focus-hover: Renamed to spec-order name. Use `neutral-content-color-hover-focus` instead.
  • neutral-content-color-key-focus: Renamed to spec-order name. Use `neutral-content-color-keyboard-focus` instead.
  • positive-background-color-key-focus: Renamed to spec-order name. Use `positive-background-color-keyboard-focus` instead.
  • static-black-track-indicator-color: Renamed to spec-order name. Use `static-track-black-indicator-color` instead.
  • static-white-track-indicator-color: Renamed to spec-order name. Use `static-track-white-indicator-color` instead.
  • slider-handle-border-width-extra-large-down
  • slider-handle-border-width-large-down
  • slider-handle-border-width-medium-down
  • slider-handle-border-width-small-down
Added (190)
  • body-size-2x-large
  • body-size-2x-small
  • body-size-3x-large
  • body-size-extra-large
  • body-size-extra-small
  • body-size-large
  • body-size-medium
  • body-size-small
  • code-size-extra-large
  • code-size-extra-small
  • code-size-large
  • code-size-medium
  • code-size-small
  • detail-margin-multiplier-bottom
  • detail-margin-multiplier-top
  • detail-size-extra-large
  • detail-size-extra-small
  • detail-size-large
  • detail-size-medium
  • detail-size-small
  • font-family-default
  • font-style-default
  • font-weight-medium
  • heading-margin-multiplier-bottom
  • heading-margin-multiplier-top
  • heading-size-2x-large
  • heading-size-3x-large
  • heading-size-extra-large
  • heading-size-extra-small
  • heading-size-large
  • heading-size-medium
  • heading-size-small
  • typography-scale-100
  • typography-scale-1000
  • typography-scale-1100
  • typography-scale-1200
  • typography-scale-1300
  • typography-scale-1400
  • typography-scale-1500
  • typography-scale-200
  • typography-scale-25
  • typography-scale-300
  • typography-scale-400
  • typography-scale-50
  • typography-scale-500
  • typography-scale-600
  • typography-scale-700
  • typography-scale-75
  • typography-scale-800
  • typography-scale-900
  • informative-icon-color
  • negative-icon-color
  • neutral-icon-color
  • notice-icon-color
  • positive-icon-color
  • base-padding-horizontal-2x-large-uniform
  • base-padding-horizontal-2x-small-uniform
  • base-padding-horizontal-extra-large-uniform
  • base-padding-horizontal-extra-small-uniform
  • base-padding-horizontal-large-uniform
  • base-padding-horizontal-medium-uniform
  • base-padding-horizontal-small-uniform
  • control-color-track-width
  • focus-indicator-side
  • list-item-padding-regular-vertical
  • card-width-extra-large-default
  • card-width-extra-small-default
  • card-width-large-default
  • card-width-medium-default
  • card-width-small-default
  • coach-indicator-ring-collapsed-thickness
  • coach-indicator-ring-expanded-thickness
  • color-handle-size-keyboard-focus
  • divider-minimum-height-vertical
  • divider-minimum-width-horizontal
  • field-width-extra-large-default
  • field-width-large-default
  • field-width-medium-default
  • field-width-small-default
  • illustrated-message-body-font-size-large
  • illustrated-message-body-font-size-medium
  • illustrated-message-body-font-size-small
  • illustrated-message-maximum-width-horizontal
  • illustrated-message-maximum-width-vertical
  • illustrated-message-title-font-size-large
  • illustrated-message-title-font-size-medium
  • illustrated-message-title-font-size-small
  • list-view-item-corner-radius-bottom
  • list-view-item-corner-radius-top
  • menu-item-divider-section-height
  • select-box-height-vertical
  • select-box-minimum-height-horizontal
  • select-box-minimum-width-horizontal
  • select-box-width-horizontal
  • steplist-step-height-extra-large-default
  • steplist-step-height-large-default
  • steplist-step-height-medium-default
  • steplist-step-height-small-default
  • steplist-step-width-extra-large-default
  • steplist-step-width-large-default
  • steplist-step-width-medium-default
  • steplist-step-width-small-default
  • switch-handle-size-extra-large-selected
  • switch-handle-size-large-selected
  • switch-handle-size-medium-selected
  • switch-handle-size-small-selected
  • tab-item-height-extra-large-compact
  • tab-item-height-large-compact
  • tab-item-height-medium-compact
  • tab-item-height-small-compact
  • table-divider-border-width
  • table-header-section-row-height-extra-large
  • table-header-section-row-height-large
  • table-header-section-row-height-medium
  • table-header-section-row-height-small
  • tag-field-width-large-default
  • tag-field-width-medium-default
  • tag-field-width-small-default
  • title-margin-multiplier-bottom
  • title-margin-multiplier-top
  • title-size-2x-large
  • title-size-3x-large
  • title-size-extra-large
  • title-size-extra-small
  • title-size-large
  • title-size-medium
  • title-size-small
  • tree-view-indicator-disclosure-height
  • tree-view-indicator-disclosure-width
  • blue-icon-background-color
  • brown-icon-background-color
  • celery-icon-background-color
  • chartreuse-icon-background-color
  • cinnamon-icon-background-color
  • cyan-icon-background-color
  • fuchsia-icon-background-color
  • green-icon-background-color
  • indigo-icon-background-color
  • inverse-icon-background-color
  • magenta-icon-background-color
  • orange-icon-background-color
  • pink-icon-background-color
  • primary-icon-color-default
  • primary-icon-color-disabled
  • primary-icon-color-down
  • primary-icon-color-hover
  • purple-icon-background-color
  • red-icon-background-color
  • seafoam-icon-background-color
  • silver-icon-background-color
  • turquoise-icon-background-color
  • yellow-icon-background-color
  • select-box-border-color-selected
  • stack-item-background-color-default-selected
  • stack-item-background-color-down-selected
  • stack-item-background-color-hover-selected
  • stack-item-background-color-keyboard-focus
  • stack-item-background-selected-color-keyboard-focus
  • swatch-icon-border-color-disabled
  • swatch-icon-border-opacity-disabled
  • table-row-background-color-selected
  • table-row-background-opacity-hover-selected
  • table-row-background-opacity-selected
  • table-row-color-hover
  • table-row-opacity-down
  • table-row-opacity-hover
  • tree-view-row-background-default-selected
  • tree-view-row-background-hover-selected
  • accent-background-color-keyboard-focus
  • accent-content-color-keyboard-focus
  • background-color-disabled
  • background-opacity-keyboard-focus
  • base-background-color
  • border-color-disabled
  • content-color-disabled
  • informative-background-color-keyboard-focus
  • negative-background-color-keyboard-focus
  • negative-border-color-hover-focus
  • negative-border-color-keyboard-focus
  • negative-content-color-keyboard-focus
  • neutral-background-color-default-selected
  • neutral-background-color-down-selected
  • neutral-background-color-hover-selected
  • neutral-background-color-keyboard-focus
  • neutral-background-color-selected-keyboard-focus
  • neutral-content-color-hover-focus
  • neutral-content-color-keyboard-focus
  • positive-background-color-keyboard-focus
  • static-track-black-indicator-color
  • static-track-white-indicator-color

Updated (73)

Added Properties (4)
  • slider-handle-border-width-down-extra-large
    • deprecated_comment: Renamed to spec-order name. Use slider-handle-border-width-extra-large-down instead.
    • renamed: slider-handle-border-width-extra-large-down
  • slider-handle-border-width-down-large
    • deprecated_comment: Renamed to spec-order name. Use slider-handle-border-width-large-down instead.
    • renamed: slider-handle-border-width-large-down
  • slider-handle-border-width-down-medium
    • deprecated_comment: Renamed to spec-order name. Use slider-handle-border-width-medium-down instead.
    • renamed: slider-handle-border-width-medium-down
  • slider-handle-border-width-down-small
    • deprecated_comment: Renamed to spec-order name. Use slider-handle-border-width-small-down instead.
    • renamed: slider-handle-border-width-small-down
Updated Properties (69)
  • accessory-item-padding-extra-large
    • uuid: f644cf28-8586-43d6-9831-bbf23d4e465a -> 66d85e7c-7723-421a-9380-7a7a0b085543
  • accessory-item-padding-large
    • uuid: 2a1b4c8d-46ca-4b7c-922f-6f117faba404 -> 108937f6-e700-4d65-8fd8-5767524fcefc
  • accessory-item-padding-medium
    • uuid: c97051d7-eccb-4d55-8487-7ffdec2b1c78 -> 52331aaa-5d1d-4c34-bbb4-6387a5a82985
  • base-gap-2x-large
    • uuid: f3078f76-5c45-4b40-8d3c-523afcc4d2af -> 13bd7c84-1ef7-4201-91c1-5f6cc58916cc
  • base-gap-extra-large
    • uuid: 42da5f00-7ba7-4a9a-8ab4-6f3552e22fdd -> 0397ef0f-2bb8-4f83-9a53-5b263d1e2017
  • base-gap-extra-small
    • uuid: 2fca8c2d-dad0-4441-8e52-e623d76ef701 -> 2d429c08-2c94-4460-8cd2-c93225430f60
  • base-gap-large
    • uuid: 2f10fab2-66e0-4007-9c01-9643d472ba3b -> 46bd3b44-223f-4c62-b75e-52beabbc6801
  • base-gap-medium
    • uuid: 9898011f-a47c-4d5d-a74e-70b5f8d0b91c -> 50498cd6-4c34-4f1d-a205-d6103be3cf1c
  • base-gap-small
    • uuid: 1247c1ab-9e31-482a-832c-d32911a1e698 -> e2a6f5b2-ba68-4bd5-8ffc-1ab24b4ab096
  • base-padding-horizontal-extra-large
    • uuid: 26cedd5b-5c67-4da7-974f-806b20064a5b -> 5e778dcd-b194-44b3-a645-593b4de9d493
  • base-padding-horizontal-extra-small
    • uuid: e1030243-729a-4afe-a6d5-47b8e620e2ce -> 5f923360-dba9-42e1-ab09-807f67a27800
  • base-padding-horizontal-large
    • uuid: ef179042-3ad8-4db5-8e23-983134f5906c -> 1a8a2717-da28-4b55-b559-ad711d19b519
  • base-padding-horizontal-medium
    • uuid: 4043f679-9ec2-4eef-b934-19f60d7e74f5 -> 8153eeeb-c768-4383-8f71-7f9c6239f260
  • base-padding-horizontal-small
    • uuid: 0732ae91-c85b-45ab-8a57-e21622768db3 -> f78c4ff6-801e-485d-851d-01c27ef081cf
  • base-padding-vertical-extra-large
    • uuid: 62ea5f0e-3cb5-4535-8cd1-a7f30ba932fc -> 86c226c6-7aba-46c0-8a97-1ee71438999a
  • base-padding-vertical-extra-small
    • uuid: e4437bc9-3acf-4bb5-9dab-39157a0d5e47 -> 7d3fbe67-314c-4059-8472-bb032aa0126a
  • base-padding-vertical-large
    • uuid: cc707192-e70f-4965-8582-55fa97d02184 -> 7f5af879-7e7f-467a-a9df-0665ee488fff
  • base-padding-vertical-medium
    • uuid: 5741f832-f012-45bc-9e87-6e07ab2cb87f -> 7ce7268e-d38b-4d1c-832c-a9661aa9971e
  • base-padding-vertical-small
    • uuid: 80b4ea6a-2f97-4d23-9256-61e30ed07f4d -> fb640641-2784-4e66-aa47-7c9a99d236be
  • container-padding-3x-large
    • uuid: e595caf6-37f9-4f84-b81b-dd44ed0d6431 -> 4d6b9cb5-104d-4ffd-91aa-8f65f4aa0a1e
  • focus-ring-gap
    • uuid: fb035d45-e63b-4cd4-b220-675a52e99399 -> b12f6ed5-b4dc-46f6-8845-e2880e029fd7
  • popover-gap
    • uuid: 6bae40ba-3b57-4e4b-a8a7-4044cd729068 -> 18f270ea-7706-4d5f-a267-1d0d500aed04
  • text-gap-medium
    • uuid: 62e8853d-9c4f-4e9d-be75-0020344d13ee -> fa51f95f-ec67-489e-98ac-1ebda2979d11
  • alert-banner-bottom-to-text
    • desktop.uuid: e19fdd96-44a4-407b-b2b1-01001684fc84 -> e626b615-c40f-451d-9270-56a4146068af
    • mobile.uuid: 5f2b2bc1-ebb0-46dd-a563-58df6307996d -> 84cafef4-b221-432f-aac3-6371a06c9292
    • uuid: 848a9c0d-eba9-4258-83fd-80e114fac05a -> f7a54a6c-fb66-4588-999f-69ebacb13ce6
  • alert-banner-top-to-text
    • desktop.uuid: 1d289972-d5ba-41e8-8935-e8c83afb15cf -> c75d4caa-4de9-408b-9e7c-57a4b6465246
    • mobile.uuid: 8db02117-b543-4b3e-b0ff-203e9a821708 -> 2d406c72-4bc1-4c33-b922-3847990b7b1c
    • uuid: db0461aa-d466-4a49-8f6d-f3b65659abb5 -> 94f4c0e8-e8c6-44de-b250-202cc7cd0bd6
  • alert-banner-top-to-workflow-icon
    • desktop.uuid: fbe047c4-0346-4b81-bdf6-6565cede7a28 -> 8ae47850-a2d5-405f-b43d-f0b2bbcaa1d2
    • mobile.uuid: 402c755b-322c-4ea0-856c-ca209bdaa8ec -> 43e52f29-312d-4a7a-955f-be6275aded66
    • uuid: 8ab5ed06-52be-4cbc-8922-35483e361488 -> f70c52fc-2ae4-4336-9ce9-fbab27890dc4
  • alert-dialog-description-font-size
    • desktop.uuid: eda300de-5f0a-42e9-9880-9244a45d4e7d -> 6a7869e4-4849-4548-971e-d7e53d932e47
    • mobile.uuid: e969f730-9eea-4a35-8981-2804d660c23e -> f421139e-abce-4aa4-8e8c-322488834d08
    • uuid: 6c94683e-1c66-4e07-84e4-7a8b6d7b069d -> 1ce35f33-d4d2-48c4-a2fe-31499018d25e
  • alert-dialog-title-font-size
    • desktop.uuid: 749fa425-de12-464d-a1e2-80eb135d3ea6 -> e901a17b-225c-4717-b379-e11ff3788a2b
    • mobile.uuid: c84328d2-578b-4a36-9065-6c6a9e1d311f -> 07bf9a86-e54a-453c-98c3-5d68c0542cfb
    • uuid: 5b046013-d264-4f71-b609-7dd2057571ff -> 5317e0ef-9a3c-4fa8-96c7-b3e50e983873
  • breadcrumbs-start-edge-to-text-large
    • desktop.uuid: 04141c6f-50ff-4301-a7b5-315bbd9cac18 -> 6b1d8b19-eb48-41e4-b7b9-1198ec1898d9
    • mobile.uuid: 1d7bd78d-4469-4385-89e7-fcd574cc6368 -> acf36334-82a3-48d2-ba6c-d0f907d03e70
    • uuid: 6833c05d-b5bd-49af-8dc7-8ef2ce52584a -> ae18252f-9de4-4f88-bc66-af17a5d5ef66
  • breadcrumbs-top-to-separator-large
    • desktop.uuid: 2e8091e4-f60b-438c-bcbb-111eb243900d -> 079336f1-e659-448e-a6a1-677b354d229b
    • mobile.uuid: 2e12202a-8099-4a4d-b06d-703deaf20862 -> f78cac80-f799-473d-af50-ccdcfed152f8
    • uuid: f5a2b688-0ddd-4423-a958-6ef4bad42809 -> 569d4ea7-b320-4389-97bf-2d562eec0fae
  • breadcrumbs-top-to-separator-medium
    • desktop.uuid: fdbf3b4b-7d6e-4464-8514-17c1b4790db6 -> 0a8d7b96-9a5b-4bd2-a8ab-25371a442ec5
    • mobile.uuid: fcbd2bcb-7f53-4219-9d6b-89c01fd50da7 -> a97218e0-3be8-4921-9dd0-55db618dfeca
    • uuid: e7f97e3d-129e-4971-bc78-5f184710d716 -> f90ed445-2d65-460c-8f25-db09483c7f19
  • card-minimum-width-default
    • uuid: 3a11949c-f1ac-490b-8416-f4883402d105 -> 3f6ed1f0-6279-4016-82b1-f430b02aef0a
  • coach-mark-body-font-size
    • desktop.uuid: 4b88a0d5-2d07-4e63-afa6-cdd611f0a8c1 -> 9e5c62cc-5148-460b-ad0e-acce095d01a9
    • mobile.uuid: 73959c3d-afc2-4f6e-bd34-0399bf3b5b73 -> 188f661c-f171-49f0-8636-8110cef47380
    • uuid: f4f305ae-e0da-48ec-9dab-c33cdd11b80f -> 5c9077c7-d22b-44f2-8ca1-d465f6709496
  • coach-mark-pagination-body-font-size
    • desktop.uuid: 06ae2458-8490-4741-8a02-97f60cc01592 -> 738f2bb4-c0a4-4ff3-9cbf-0e9cf64aa494
    • mobile.uuid: 4f8c99a5-0942-41b0-ac41-923ea9ca2bf2 -> f5ce6a29-d1fc-448a-bf92-c2bcefe99314
    • uuid: b8a50488-10c4-4b9e-8e3f-7cfdaea6b4a8 -> af155e3b-d9f8-447f-a248-8dca2d8ba57d
  • coach-mark-title-font-size
    • desktop.uuid: 5b132698-4ee2-40e4-83c0-9ad80f36f5fd -> e779f3fb-6271-4894-ab05-c6deda489aee
    • mobile.uuid: 45855bc5-3b86-49a9-b443-7be9aa763c4e -> 58b0ed64-f315-4370-b5a3-d39c8d9b5f0f
    • uuid: 5ede1ea6-2643-489b-bd30-7165f5afe323 -> 520b68ec-da9f-4536-ba37-442108c0c6a7
  • combo-box-visual-to-field-button
    • uuid: 6c3c7201-2f5b-455a-bcbf-5e3d783887bf -> f97f9bc6-588e-491f-9d40-30379c99d422
  • drop-zone-body-font-size
    • uuid: 644593be-82da-4ae4-ae57-fabebd4513ca -> 7fcf1ffa-fe06-4c36-b286-df15ee52cf02
  • drop-zone-cjk-title-font-size
    • uuid: 56fc89be-658e-4c5c-9b8e-7ac6f7d7db75 -> 2f58829f-72e2-4fa9-8062-14b036e684cb
  • drop-zone-title-font-size
    • uuid: 07564dd0-3628-42e1-8a29-253448a8c75f -> 907a9313-3552-4222-9491-9af5275f903d
  • illustrated-message-medium-body-font-size
    • desktop.uuid: ca0d9e22-35a8-4ae5-99ee-29cce3ffa0bd -> 4b753571-6d83-4109-aceb-3ce2e7181b47
    • mobile.uuid: 32b359dc-b489-4476-afbd-1c04e6b0ff0e -> fe99b175-3cb9-4710-bf74-be9db815e8c7
    • uuid: 22f5b08c-2b86-447d-be0b-ed03841dbcfb -> 5df8f0f1-dbd3-40f2-912d-70397d0b1ec6
  • illustrated-message-medium-cjk-title-font-size
    • desktop.uuid: ee763c7d-b98f-4f2e-9fc4-764cfa2ac53f -> 96dab7b2-9144-47f4-a4c0-cee33ef7a20e
    • mobile.uuid: 1cb0c913-f4ec-478c-b92d-4c9d78875362 -> 5ab2e551-af4f-409f-8e44-bb9a9e1e8197
    • uuid: d873db87-9e50-4aef-a9ee-b3b7da6bb44f -> b2eb3021-6e36-4a81-a606-c1a70c92521a
  • illustrated-message-medium-title-font-size
    • desktop.uuid: 8e2d1a48-937c-4493-9624-5ca8383f74bd -> 5355981d-d0b5-463a-aae4-897bd5de3df5
    • mobile.uuid: 65961091-abdb-4155-9887-4aebe857c4fd -> 0c9e6bbd-1891-4b23-854b-139e31af71f6
    • uuid: 5a575423-6129-4fcf-93f0-d3eb44096dd5 -> ea740bce-bf9d-4cc4-9ef4-01ed4c0116e9
  • meter-width
    • desktop.uuid: ceeda4da-026b-496c-8abd-7081aceae262 -> 764bc4d4-77fd-4969-b999-0dc9fc65baa2
    • mobile.uuid: dc5f4966-4ddd-4e9a-a748-370d8eaae568 -> 5d4d66fd-26f8-4451-acc3-5ff379ab58f6
    • uuid: 986cf4b8-bb3b-4752-83b9-3001d6d6ffac -> 69f4cd1f-226c-4d3f-9a56-325c302b9f70
  • opacity-checkerboard-square-size-medium
    • desktop.uuid: ead3f34f-55b1-4012-a4af-0f7fbf226020 -> f2e5d149-963d-4c3d-b5b4-895ee03aa2f3
    • mobile.uuid: cc6fdec6-c03a-4691-805f-b60d199bb60d -> 791767fb-64de-4730-a4b5-298485855063
    • uuid: a0410857-1be2-4bb8-9b31-a4db7f771485 -> 9e295c49-9846-4058-9fd4-38fa4b332da2
  • picker-end-edge-to-disclosure-icon-quiet
    • uuid: 03da68d8-cd87-4e29-9aaf-ab467594ec2b -> 6bd42b4b-1500-4f95-84f1-97b70ea4dea4
  • popover-edge-to-content-area
    • uuid: 2a3bd47e-fde5-41d3-a585-f970bdefaf07 -> 6ce746f0-6b97-43d9-bfba-868508188260
  • table-row-bottom-to-text-extra-large
    • desktop.uuid: 8b969d35-01ab-419f-b391-484aad88fd41 -> d44eaba1-f4d3-4679-b064-8bd443894205
    • mobile.uuid: f25c6bfd-0a0d-4fd1-ab7b-9cd1d13053e1 -> f3846c6e-5a2c-4d77-9b44-aa8fea4f639b
    • uuid: dfd0bc13-5c80-4156-bf21-ef87c7c6b29a -> a8719d41-ce0a-4f67-87e9-66c36fc97773
  • table-row-bottom-to-text-large
    • desktop.uuid: f14b75f3-cb07-48b3-8543-34d80747ff36 -> 64d2c387-4f2a-4424-bed1-635c940a3810
    • mobile.uuid: 0de2f0a5-b32a-4f7b-b46c-1a6c25abc1ec -> ac19db10-50bd-4a91-ad12-b961e8a79f87
    • uuid: dfe63537-564b-4f23-ac78-39a08adeaf0b -> 10a24976-96f3-4eb5-a9c6-ddeb88935102
  • table-row-bottom-to-text-medium
    • desktop.uuid: f14087ac-db72-43df-a8fa-9c9b03c6a1c9 -> c57dd709-8afd-4990-b30d-34feee97a039
    • mobile.uuid: 6ff9a81f-a2f8-4966-a48b-c8561aa4f833 -> 4762fd86-962c-4ecf-a3b9-e3ff7e63141a
    • uuid: 0a40f436-9f58-4c9d-9a63-77c61adba6e2 -> 8d32e762-bd9f-4ad3-9fab-8f56ef6d73ca
  • table-row-bottom-to-text-small
    • desktop.uuid: 56b58d2a-01dd-488b-b6e9-ff49555602b4 -> b9f8389d-c6bc-4efc-b4ae-95706c8fd1c1
    • mobile.uuid: d6100789-7076-403a-b878-7bb204093c52 -> 0e5f0c38-fd1c-49ba-9539-829cce85f24f
    • uuid: 6353bfab-c0fa-4cfd-bf93-11c01df2f236 -> 4d502c23-58eb-4881-b638-4de7ae3ab2d0
  • table-row-checkbox-to-top-extra-large
    • desktop.uuid: acd6ad6b-bab0-40fb-afbe-5df7eea7efb3 -> ae020335-ccd0-43fc-970d-80a80f9f17e8
    • mobile.uuid: fb02243f-0490-4eb2-aac2-fa364c6eab59 -> e99aa620-60f2-4531-94da-8a490a82c2a7
    • uuid: e9908164-5b47-4098-8de3-028cd93eaa0b -> 3a053667-264c-40a8-8f0b-2f3e439d3e10
  • table-row-checkbox-to-top-large
    • desktop.uuid: a8c2b073-495b-402b-b1dc-2337b0e42f37 -> 8eeaedce-17ff-4df7-b065-6c9e07581d03
    • mobile.uuid: a0fa4e03-c1de-400d-8629-0ae9ffb9b9d8 -> 1c732481-e6e5-400d-81d7-1aea1a312766
    • uuid: 9fd50cd5-077e-4d5a-82f5-0c6639f63e70 -> 203103a4-91e2-4d62-9b6e-3f25ccdc42a2
  • table-row-checkbox-to-top-medium
    • desktop.uuid: be965b15-08f8-43be-9953-52151d8c7670 -> 6545fb01-e698-456a-915a-f996510c8ebe
    • mobile.uuid: 2ae09505-d43f-4e2c-b8a6-014ccfef5c10 -> 0e193349-7dec-485f-9715-9c43e9645b23
    • uuid: 4ca4c4bf-85eb-41f7-9348-6408b408275e -> 49ba68c2-dc2d-44ff-832b-cd729f4c30d9
  • table-row-checkbox-to-top-small
    • desktop.uuid: 909ebf8a-eebd-41b6-8fac-8fe31d2bac00 -> 246cc81f-265b-464b-9db9-31aa874d4dc8
    • mobile.uuid: 365d9c3f-d287-4feb-b020-89434dd29378 -> 5b9f13c7-a504-4633-a79b-5c907b7d04b5
    • uuid: 300645bd-1253-44a2-970e-33a2a028eb4f -> d7d06d3b-8aed-45a6-bc4b-12737fa255a1
  • table-row-height-extra-large
    • desktop.uuid: d52d3141-27a5-40eb-800f-1a09acd42534 -> d46757e8-9c05-4573-aa8c-572a58187359
    • mobile.uuid: c2e3068b-c0be-4615-bbf7-c65e58ef126b -> 4395ec44-d328-4d2a-b230-3b459db9f134
    • uuid: 34dfc670-7333-40fc-96e0-93a466273634 -> 463dd43b-12be-490b-bf19-ad3c8d60edb0
  • table-row-height-large
    • desktop.uuid: d3d9b523-90dc-4532-9cf7-37b568bd6800 -> 4565ec71-a570-46e0-8bd1-6d9e5627489a
    • mobile.uuid: ff04cae7-7f96-4db2-bf64-948c22d104ff -> e3c51047-2016-460f-b7d5-57d25c1b0234
    • uuid: 9e54ecf6-8a66-468c-8c8c-cd79ae9a6ecd -> a31c5522-27fd-4819-aef1-5e1ffad819de
  • table-row-height-medium
    • desktop.uuid: 9d6dc5e8-d3f0-4f59-b062-756669ff7217 -> 169cb18c-82e1-42aa-9014-d1fc67af2434
    • mobile.uuid: 2cf7918c-f84a-4903-a6ba-b110807842ba -> d3dcca91-5f23-4ded-91a5-d46919f6a50c
    • uuid: e4365ada-fe16-4c16-af28-eb9bcbb15756 -> 9ead5e6c-86df-4edb-ade0-f83242a3d752
  • table-row-height-small
    • desktop.uuid: 10b892a0-3c97-4af6-8ecc-3359e8cd1302 -> 38b0b961-68d6-450e-9236-c874590fed8e
    • mobile.uuid: 77a26f7c-2f71-4021-a1f2-a2af7c69a111 -> b13e2baf-29cf-4207-b0b4-e124d4cead66
    • uuid: a9bf30e6-0ca8-44af-8f97-149917c9f8c2 -> 4dcb6515-0014-4b64-92e3-b82ddd02beda
  • table-row-top-to-text-extra-large
    • desktop.uuid: da7274c6-6f45-4087-b42f-dde7d3ac1af7 -> fda509a4-c480-4da6-aba0-5d5891b7885b
    • mobile.uuid: 40de40fd-4bae-4a49-8aec-38dad2a1c5fb -> 27fde1d4-1609-4c7d-96ab-9761a263670d
    • uuid: cf9418b9-a5ff-47ee-b19d-b933629f3072 -> 6b68469a-9e9f-4617-b6e8-19be396667bd
  • table-row-top-to-text-large
    • desktop.uuid: 0820aecf-0647-4e51-ae40-44130bc86013 -> e787e8d5-6616-4ac2-9f66-0730ea553dd6
    • mobile.uuid: 4d55e632-588b-4e82-90c0-4fa434998d15 -> 994c9965-7e94-47c9-8eae-1b816413a17e
    • uuid: de73e367-5c1a-4532-bd93-644f066fa2f3 -> 68b4fc7d-dd2b-4843-a14d-cf04e4507350
  • table-row-top-to-text-medium
    • desktop.uuid: ae401c94-c643-446f-a44e-38c9f3104fc6 -> b498ac45-90ed-46e6-b546-786b6f80d1a3
    • mobile.uuid: 0cd86854-57ca-4023-b544-8a4a76418164 -> e660c8f7-b2b8-452a-ab1c-e1ad23f76d7f
    • uuid: 6f81b550-82ce-436f-9e33-93a247eaae54 -> 769f1d38-5add-4b1e-a873-d945a48d0435
  • table-row-top-to-text-small
    • desktop.uuid: 52fb10e1-a45e-4b21-9563-b72a6cf8c7e0 -> 8bae28d9-5d3e-471b-86b2-04b52d7866ed
    • mobile.uuid: dfa553a2-b771-4a31-9294-3800d2126952 -> 019a1bf9-af62-4e80-a720-b31a8e33ec3c
    • uuid: c1be9ecb-be3e-4ed3-9e74-46d299b69fba -> 7fa3c40e-3930-4ba6-8557-37be129b33d1
  • table-thumbnail-to-top-minimum-extra-large
    • desktop.uuid: 0ae43893-e3ea-461f-a2fe-93239cb3a22a -> 2865ba4c-b57a-4c0c-96fc-995a860e82f3
    • mobile.uuid: 17051925-5eda-45a3-8d45-d329e88bf63a -> 9376730c-89bd-4352-8075-ce1fe8f1c91c
    • uuid: 65180f74-078a-48db-aea1-e095d37f9e00 -> b7e9ad2e-de55-4c51-8fee-35ccb5ba4570
  • table-thumbnail-to-top-minimum-large
    • desktop.uuid: 589d6f19-ec7f-4a4f-a622-40d18d7e71f5 -> a9fcb0d6-19a1-4618-a767-8d1c39a53388
    • mobile.uuid: 92ade1a0-ea78-4930-82e7-fedafce42aed -> 99adf6f1-f500-43ed-859f-80a5d130be7c
    • uuid: bea15b38-2401-4051-9c87-c0dc347e7d1d -> 656e7d10-8f6a-442b-a32f-46191846496d
  • table-thumbnail-to-top-minimum-medium
    • desktop.uuid: 42914d96-ee9f-4ed9-9c7a-9c8ccca68245 -> ef749294-5ce0-4a6a-a073-016f4997dc58
    • mobile.uuid: 2268750d-4c5f-46f1-bad7-dec21818bfe6 -> 88e3bbe7-c67c-4d1b-95d5-2d62003583cc
    • uuid: fa53e899-0a50-41a1-bf3b-ebb70df69dbd -> da3434b5-4771-487d-8aac-aa1b44f603f5
  • table-thumbnail-to-top-minimum-small
    • desktop.uuid: 96d7eb12-7e92-4ee8-988b-8e7e8a7de159 -> d3f03e18-4352-45e9-8013-25d7c0d550c2
    • mobile.uuid: 43955cdb-afaf-4e59-bb26-3063661141d7 -> 0178551a-4b5b-4a28-aacf-494165967678
    • uuid: 6db35635-76fd-4ef3-9a44-c0b6354550ca -> 136a761a-55ac-443e-a0d6-cecc29999575
  • tree-view-item-to-item-default
    • uuid: 7d44a2b5-0aa6-4770-81da-8dbd87013906 -> f50b9f04-6786-45bb-bbd5-bdfc7579ddf1
  • floating-action-button-drop-shadow-color
    • uuid: d66d3a56-1ba0-4ce7-a263-eb46a4d17af0 -> fcbb6fca-9623-4b0a-8eee-5ab8b32aa7fc
  • drop-shadow-color-100
    • dark.uuid: 8d7e0eb7-c3c7-485e-896c-d5d5107e3b8f -> a6cf4f28-4111-4321-a188-3202fe41a1bd
    • light.uuid: 5c0f0543-7e9b-43d6-9fea-c771b9b524c6 -> 42371de5-3ddc-412d-880d-4608a79dc72f
    • wireframe.uuid: 4110e60c-efd6-421d-9c5c-0356cfff8697 -> 356434bb-1dd8-4080-9da8-7b2f15bda44e
    • uuid: 92619056-db5a-45ab-ba0b-50e67cc497f6 -> 5ed20206-50a6-4c4d-b2e8-b7414525b425

This comment was automatically generated by the token diff tool. 🤖

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 8, 2026

🦋 Changeset detected

Latest commit: 2b22aa6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 8 packages
Name Type
@adobe/spectrum-tokens Minor
@adobe/design-data-spec Minor
@adobe/design-system-registry Minor
s2-tokens-viewer Patch
markdown-generator Patch
@adobe/spectrum-design-data-mcp Patch
token-csv-generator Patch
token-mapping-analyzer Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@GarthDB
Copy link
Copy Markdown
Member Author

GarthDB commented Apr 8, 2026

Run report for 2b22aa64

Total time: 2m 5s | Comparison time: 5m 22s | Estimated savings: 3m 17s (61.1% faster)

Action Time Status Info
🟩 SyncWorkspace 7.4ms Passed
🟩 SyncProject(componentSchemas) 0.4ms Passed
🟩 SyncProject(sdk) 0.6ms Passed
🟩 SyncProject(design-system-registry) 0.3ms Passed
🟩 SyncProject(designDataSpec) 0.8ms Passed
🟩 SyncProject(tokens) 0.6ms Passed
🟩 SyncProject(markdown-generator) 0.3ms Passed
🟩 SyncProject(viewer) 0.4ms Passed
🟩 SyncProject(site) 0.3ms Passed
🟩 RunTask(site:copySpec) 109ms Passed
🟩 SetupProto(0.51.4) 1.6s Passed
🟩 SetupToolchain(rust:1.85.0) 8.3s Passed
🟩 InstallWorkspaceDeps(rust:1.85.0, sdk) 903.3ms Passed
⬛️ SetupToolchain(node:20.17.0) 9.6s Skipped
🟩 InstallWorkspaceDeps(node:20.17.0) 22.7s Passed
🟩 RunTask(tokens:buildManifest) 641.3ms Passed
🟩 InstallProjectDeps(node:20.17.0, sdk) 23.3s Passed
🟩 RunTask(designDataSpec:check) 294.7ms Passed
🟩 RunTask(site:generateToolsPage) 1.4s Passed
🟩 RunTask(design-system-registry:test) 3.1s Passed
And 19 more...
Expanded report
Action Time Status Info
🟩 RunTask(design-system-registry:validate) 448ms Passed
🟩 RunTask(sdk:codegen) 264.3ms Passed
🟩 RunTask(sdk:codegen-check) 308.6ms Passed
🟩 RunTask(componentSchemas:test) 6s Passed
🟩 RunTask(sdk:lint) 49.2s Passed
🟩 RunTask(sdk:build) 1m 7s Passed
🟩 RunTask(tokens:verifyDesignDataSnapshot) 1.4s Passed
🟩 RunTask(tokens:validateDesignData) 1.6s Passed
🟩 RunTask(tokens:verifyLegacyRoundtrip) 928.8ms Passed
🟩 RunTask(sdk:test) 1m 14s Passed
🟩 RunTask(tokens:buildTokens) 1m 26s Passed
🟩 RunTask(tokens:build) 15.7ms Passed
🟩 RunTask(viewer:prepare) 151.8ms Passed
🟩 RunTask(viewer:export) 84ms Passed
🟩 RunTask(markdown-generator:generate) 393.1ms Passed
🟩 RunTask(site:copyContent) 79.9ms Passed
🟩 RunTask(tokens:test) 4.4s Passed
🟩 RunTask(site:build) 4.3s Passed
🟩 RunTask(site:export) 8.4ms Passed
Touched files
.changeset/proposal-009-typography-scale-composite.md
.changeset/proposal-010-composite-token-support.md
.changeset/registry-anatomy-variants-expansion.md
.gitignore
docs/proposals/001-typography-taxonomy.md
docs/proposals/002-component-property-axes.md
docs/proposals/003-numeric-scale-index.md
docs/proposals/004-drop-shadow-classification.md
docs/proposals/005-compound-states.md
docs/proposals/006-vocabulary-gaps.md
docs/proposals/008-ordinal-rank-field.md
docs/proposals/009-typography-scale-composite.md
docs/proposals/010-composite-token-support.md
packages/design-data-spec/conformance/invalid/SPEC-016/expected-errors.json
packages/design-data-spec/conformance/invalid/SPEC-016/tokens.tokens.json
packages/design-data-spec/conformance/valid/composite-drop-shadow.json
packages/design-data-spec/conformance/valid/composite-typography-scale.json
packages/design-data-spec/conformance/valid/composite-typography.json
packages/design-data-spec/fields/scaleIndex.json
packages/design-data-spec/rules/rules.yaml
packages/design-data-spec/schemas/field.schema.json
packages/design-data-spec/schemas/token.schema.json
packages/design-data-spec/schemas/value-types/drop-shadow.schema.json
packages/design-data-spec/schemas/value-types/typography-scale.schema.json
packages/design-data-spec/schemas/value-types/typography.schema.json
packages/design-data-spec/spec/token-format.md
packages/design-system-registry/registry/anatomy-terms.json
packages/design-system-registry/registry/sizes.json
packages/design-system-registry/registry/variants.json
packages/tokens/naming-exceptions.json
packages/tokens/schemas/token-types/typography-scale.json
packages/tokens/snapshots/validation-snapshot.json
packages/tokens/src/color-aliases.json
packages/tokens/src/color-component.json
packages/tokens/src/icons.json
packages/tokens/src/layout-component.json
packages/tokens/src/layout.json
packages/tokens/src/semantic-color-palette.json
packages/tokens/src/typography.json
packages/tokens/test/checkComponentProps.js
sdk/core/src/legacy.rs
sdk/core/src/migrate.rs
sdk/core/src/registry_data.rs
tools/token-mapping-analyzer/.gitignore
tools/token-mapping-analyzer/src/decomposer.js
tools/token-mapping-analyzer/src/registry-index.js
tools/token-mapping-analyzer/test/decomposer.test.js

GarthDB and others added 5 commits April 9, 2026 12:07
…lysis

Analyzes all 2,455 tokens against the new 13-field name object spec.
Decomposes each token into semantic fields, scores confidence, identifies
structural gaps, and generates reports.

Includes:
- Registry index loader with greedy multi-word term matching
- Token decomposer with compound property and known gap classification
- Gap analysis report generator
- Token rename generator for ordering mismatches
- Exception generator for spec-decision tokens
- AVA test suite

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 1 registry additions based on token-mapping-analyzer results:

sizes.json:
- Add tokenName field for legacy long-form serialization
- Add xxs (2x-small) and xxxs (3x-small) sizes
- Add aliases for xxl (2x-large) and xxxl (3x-large)

variants.json:
- Add color variants: brown, cinnamon, silver, turquoise
- Add emphasis variants: subtle, subdued
- Add context variants: static, inverse
- Add color modifiers: black, white

anatomy-terms.json:
- Add: title, description, row, step, counter, preview, tip,
  selection, media, ring

states.json:
- Add key-focus alias for keyboard-focus

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 2: deprecate tokens with non-standard field ordering and add
spec-compliant names. Each renamed token gets deprecated=true,
deprecated_comment, and renamed pointer to the new name.

Categories:
- key-focus → keyboard-focus vocabulary normalization (17 tokens)
- Size abbreviation → long form (body-size-l → body-size-large, etc.)
- State-first → state-last (disabled-background-color → background-color-disabled)
- Icon reordering (icon-color-blue-background → blue-icon-background-color)
- Component layout ordering (card-default-width-* → card-width-*-default)
- Structure/object ordering (background-base-color → base-background-color)

83 tokens skipped as needing spec decisions (dual-variant, static-color
compounds, component-typography patterns).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 3: document remaining 506 MEDIUM-confidence tokens with
categorized exceptions and 6 spec amendment proposals.

Proposals:
- 001: Typography taxonomy (script, family, emphasis fields)
- 002: Component property axes (style, staticColor, emphasis)
- 003: Numeric scale index field
- 004: Drop-shadow as structure
- 005: Compound states
- 006: Vocabulary gaps (registry additions)

naming-exceptions.json updated with 408 new entries (602 total),
each categorized and linked to its relevant proposal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Renamed tokens were copying UUIDs from their deprecated originals,
causing 176 SPEC-004 duplicate UUID violations. Regenerate unique
UUIDs for all renamed-to tokens (outer and inner set UUIDs) and
update the validation snapshot.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@GarthDB GarthDB force-pushed the feat/token-spec-gap-analysis branch from 52b2954 to 02c932b Compare April 9, 2026 18:34
GarthDB and others added 3 commits April 9, 2026 13:41
…yzer

Replace hardcoded REGISTRY_FILES and SERIALIZATION_ORDER with dynamic
field catalog from packages/design-data-spec/fields, aligning with #816.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Spec-order token names may have a variant prefix before the component
(e.g., blue-icon-background-color), so check that the component
appears in the name rather than requiring it at position 0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add scaleIndex as a formal field in the configurable field catalog with
a new "numeric" kind. The decomposer no longer flags numeric scale
indices as taxonomy gaps when the field is declared. Re-categorize 12
naming exceptions from numeric-scale-index to ordering-mismatch, and
regenerate the SDK codegen and validation snapshot.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@GarthDB GarthDB changed the title feat: token-to-spec gap analysis, registry expansion, and spec proposals feat: token-to-spec gap analysis, registry expansion, scaleIndex field, and spec proposals Apr 9, 2026
Distinguish small positional integers (1, 2, 3) from design system
scale values (25–1600). Tokens like background-layer-1-color and
gradient-stop-2-genai use ordinals for rank, not scale indices.
Re-categorize 8 exceptions from ordering-mismatch to ordinal-rank.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@NateBaldwinDesign
Copy link
Copy Markdown
Collaborator

Thanks for writing this up so clearly. The inventory + gap surfacing work is genuinely useful. I’m aligned with the direction (we do need standardization). Where I’m not aligned is merging this PR as a combined “solution.”

This PR bundles three different things that shouldn’t ship together

Right now this PR includes:

  1. A diagnostics/analyzer tool (useful)
  2. Spec + registry changes (policy decisions)
  3. Token renames (migration impact)

Those don’t belong in a single pull request. It makes the “analysis” feel like the “answer,” and we’re not at a point where we should be codifying taxonomy decisions this way.

Also: this PR explicitly calls out 176 renames as a breaking change. That’s a big impact on migration, and it shouldn’t be bundled into “analysis tooling.”

This duplicates (and cuts across) work already in flight

We already have a Foundations-led, phased initiative for semantic token refinement + taxonomy formalization with DACI ownership and a plan for how we make decisions with partner teams.

Within that initiative, we explicitly list these as out of scope:

  • schema/systems to enforce taxonomies in core data
  • token name generation scripts/functionality

That’s intentional: we’re still doing the work of defining the taxonomy (terms, categories, boundaries, and where “tokens vs guidance vs platform behavior” lines live). So even if parts of this PR are good ideas, merging them here creates a parallel decision path and bypasses the rigor we’re applying to make those decisions.

“Roundtrip rate” is mechanical correctness, not semantic correctness

Improving roundtrip/confidence tells us how well a name can be decomposed/serialized against a proposed field catalog. That’s useful as diagnostics, but it’s not proof the taxonomy model is right — especially when the input set (existing token names) is known to contain inconsistency and ambiguity.

Our taxonomy is meant to be a hierarchical classification system with mutually exclusive categories of terms, designed to be enforceable and stable over time. In the layout tokens phase, we also proved out that names alone don’t solve comprehension/usage and that semantics aren’t self-evident from strings. That’s why the work includes patterns/structures, guidance, validation, and education — not just ordering fields.

So “we can roundtrip more names” can’t be treated as “we solved taxonomy.” Taxonomy categories/terms need to go through the full design + cross-team alignment process before being formalized as schema.

Concrete modeling example: script / cjk is the wrong axis

The proposals around script / cjk are a clear example of why I’m concerned. That’s not a taxonomy identity problem — it’s a system variation problem. Language/script should be treated like a mode (a dimension), not baked into token classification.

The design-data spec already has a place for this: dimensions/modes are how the system handles variation (theme/scale/contrast), and it explicitly allows additional dimensions such as language. That’s the right place for script/language behavior.

Encoding language/script into classification is likely to create debt and force rework later.

Some “gap fixes” are really unresolved design system questions

A few examples from the PR description point to the same pattern:

  • Adding a numeric field like scaleIndex to eliminate gaps improves decomposition, but it also commits us to a modeling choice without showing it’s the right semantic representation long-term.
  • Proposals like “ordinal rank,” “emphasis,” etc. risk turning semantics into convenient buckets instead of asking whether the concept is actually ordinal, semantic, percentage-based, etc. (layers and gradients are classic cases where the wrong axis causes long-term confusion).

We already have evidence from partner discussions that you can’t reliably determine the “correct” taxonomy classification (or what should/should not be a token at all) by running an algorithm over existing token strings. A parser can extract patterns, but it can’t resolve ambiguous cases or the bigger boundary questions.

AI/process note (not an accusation — just reality)

It looks like AI tooling may have been heavily involved in producing parts of this work. I’m supportive of using AI to accelerate drafting/exploration, but in this problem space it can generate plausible structure that feels “done” while encoding wrong assumptions. We use AI too — and we’ve seen exactly why it needs strong guardrails here.

If we continue in this direction, AI output (and any automated classification output) should be treated as assistive: generate candidates, surface gaps, and help prioritize review — but not act as the authority for new fields, new vocabulary, or large-scale renames. That evaluation + cross-platform review work is already happening through the Foundations-led initiative with an explicit phased plan and DACI ownership. This PR should feed that process rather than establishing a parallel decision path.

What I’d suggest instead (so we keep what’s working well)

I don’t think we should merge this PR as one package. If we want to preserve value:

  1. Split out the analyzer as a diagnostics-only PR (no renames, no spec field additions, no registry expansions).
  2. Keep spec and registry changes as proposals and route them through the existing Foundations initiative + partner review process.
  3. Treat large-scale renames as a planned migration step under the initiative (with comms + timing + platform signoff), not bundled into analysis tooling.

To be explicit: I don’t support merging this PR as-is. Please split diagnostics from decisions, and route the taxonomy/spec changes through the Foundations initiative.

GarthDB and others added 2 commits April 28, 2026 17:20
Add a formal mechanism for composite tokens: a $valueType field that
declares the value-type schema a token conforms to. Composite value types
(typography, drop-shadow, typography-scale) are defined as JSON Schemas
under schemas/value-types/. Inline alias references ({token-name}) within
composite values follow the same resolution rules as top-level aliases.

Adds SPEC-014 (inline alias exists), SPEC-015 (inline alias type-
compatible), and SPEC-016 (value-type match) to rules.yaml. Includes
conformance fixtures for all three composite types plus a SPEC-016
violation case. No breaking changes — $valueType is optional.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…design-data-spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@GarthDB GarthDB force-pushed the feat/token-spec-gap-analysis branch from cf1d250 to 0fdee54 Compare April 28, 2026 23:25
GarthDB and others added 5 commits April 28, 2026 17:29
feat(monorepo): introduce diff architecture, tooling, and spec evolution

- Add high-performance diff system:
  - Introduce @adobe/optimized-diff (up to ~2.8x faster)
  - Integrate into diff-generator with full API compatibility
  - Add @adobe/spectrum-diff-core shared library
  - Implement semantic diff + query engines (spec + SDK + CLI)
- Expand tooling ecosystem:
  - Add token-changeset-generator, release-analyzer, changeset-linter
  - Add MCP servers (design data, S2 docs) and markdown generator
  - Add component-diff and spectrum-diff CLI tools
  - Add Figma export, registry, and design-data SDK/spec packages
- Establish design data specification:
  - Add cascade format, lifecycle model, taxonomy, and query/diff specs
  - Implement validation rules (SPEC-001–016) and conformance suites
  - Add migration, roundtrip verification, and UUID tooling
- Improve CI/CD and publishing:
  - Migrate to npm OIDC trusted publishing
  - Stabilize release workflows, diff actions, and large-output handling
  - Fix CI issues (EOF parsing, rate limits, empty diffs, caching)
- Enhance docs and site:
  - Build 11ty docs site with markdown generation and AI indexing
  - Publish full design data spec and S2 documentation
  - Improve navigation, styling, and deployment workflows
- Expand component schemas and tokens:
  - Add multiple component batches with breaking changes
  - Introduce semantic layout tokens and lifecycle metadata
  - Normalize naming to spec-order with taxonomy support
- Refactor monorepo and tooling:
  - Standardize Moon workspace, tasks, and package structure
  - Replace legacy tasks and remove obsolete code paths
  - Update dependencies, configs, and schema infrastructure
- Fixes and maintenance:
  - Resolve diff edge cases, YAML/frontmatter issues, and test flakiness
  - Clean temp files, improve performance thresholds, and stabilize tooling
Introduce a typography-scale composite value type that bundles font-size
and line-height for each typographic tier. Deprecates the 18 separate
line-height-font-size-* tokens (adding deprecated, deprecated_comment,
and renamed lifecycle fields pointing to the new composite names).

Adds the legacy token-types schema for typography-scale (desktop/mobile
scale-set shape) so the existing @adobe/spectrum-tokens build pipeline
continues to emit the correct legacy format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add 8 anatomy terms (field, fill, value, container, chevron, loupe, dot,
and remaining terms) and 5 semantic dialog variants (confirmation,
destructive, warning, error, information) to close vocabulary gaps
surfaced by the token decomposer. Mirrors updates into the embedded
registry in the Rust SDK.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Teach the migrator to treat typography-scale.json tokens as scale-sets
(desktop/mobile split) rather than flat tokens. Carry set_schema through
the cascade representation so the legacy emitter can reconstruct the
correct $schema URL (instead of defaulting to scale-set for all scale
dimensions). Update the token-mapping-analyzer decomposer to recognise
typography-scale as a known compound property and reduce unmatched
segment noise.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Teach the migrator to treat typography-scale.json tokens as scale-sets
(desktop/mobile split) rather than flat tokens. Carry set_schema through
the cascade representation so the legacy emitter can reconstruct the
correct $schema URL (instead of defaulting to scale-set for all scale
dimensions). Update the token-mapping-analyzer decomposer to recognise
typography-scale as a known compound property and reduce unmatched
segment noise.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@GarthDB GarthDB force-pushed the feat/token-spec-gap-analysis branch from cc2f2de to 57a63e5 Compare April 28, 2026 23:35
Resolves add/add conflicts in registry, tokens, and SDK files where beta
had the pre-PR-2 state. All resolutions keep the PR-2 changes (ours).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants