Skip to content

fix(design-data): decompose typography component-scale fusion (284.9) - #1315

Merged
GarthDB merged 3 commits into
mainfrom
fix/decompose-typography-component-scale-284-9
Jul 30, 2026
Merged

fix(design-data): decompose typography component-scale fusion (284.9)#1315
GarthDB merged 3 commits into
mainfrom
fix/decompose-typography-component-scale-284-9

Conversation

@GarthDB

@GarthDB GarthDB commented Jul 30, 2026

Copy link
Copy Markdown
Member

Description

Finishes epic spectrum-design-data-284 (fused name.property decomposition): the last
genuine residue was the 15 component-{size}-{weight} typography tokens, which fused a
typography-role variant, the composite type-style property, and a t-shirt size into one
string. This PR also fixes two false positives in the tools/token-mapping-analyzer
residue detector and documents the opacity-checkerboard-square-{dark,light} property
terms that were flagged by it.

  • packages/design-data/tokens/typography.tokens.json: split component-l-bold etc.
    into variant:"component" + property:"typography" + size + existing weight.
    legacyKey is pinned throughout, so legacy output is unchanged.
  • packages/design-data/registry/variants.json: registered component under a new
    typography-role category (compact in-component scale, alongside body/detail/heading/title).
  • packages/design-data/registry/property-terms.json: registered typography
    (composite type-style property) and square-dark/square-light (opacity-checkerboard
    tile color, kept atomic — "dark"/"light" identify the tile's fixed relative lightness,
    not the surrounding colorScheme theme, so decomposing further would collide with
    colorScheme semantics).
  • sdk/core/src/registry_data.rs: regenerated from the registry JSON above.
  • tools/token-mapping-analyzer/src/decomposer.js: stop flagging content-color,
    square-dark, square-light, and row-height as unresolved fusion — they're
    registered atomic property terms whose segments happen to collide with an unrelated
    object/anatomy registry id, not real decomposition gaps.

Related Issue

Closes spectrum-design-data-284.9.

Motivation and Context

Last item in the 284 fusion-residue sweep — after this, every name.property in the
corpus is atomic, with fused segments moved to structured fields.

How Has This Been Tested?

  • cargo run -p design-data-cli -- migrate legacy-verify — legacy output OK, byte-identical.
  • cargo run -p design-data-cli -- migrate roundtrip-verify — roundtrip OK.
  • moon run design-data:validate sdk:test sdk:lint — all green.
  • moon run :test (JS/AVA) — all green except a pre-existing sdk-wasm:test parity
    failure (Dataset.embedded() query result .raw is a plain object, not a Map),
    confirmed to fail identically on main in an isolated worktree — unrelated to this change.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)

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.

GarthDB and others added 3 commits July 29, 2026 19:54
… spectrum-design-data-284.9)

- packages/design-data/tokens/typography.tokens.json: split component-{size}-{weight}
  into variant:"component" + property:"typography" + size + weight, legacyKey pinned.
- packages/design-data/registry/variants.json: register "component" under new
  typography-role category (compact in-component scale alongside body/detail/heading/title).
- packages/design-data/registry/property-terms.json: register "typography" (composite
  type-style property term).
- sdk/core/src/registry_data.rs: regenerated via moon run sdk:codegen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… fused

content-color, square-dark/square-light, and row-height each have a segment
that collides with an unrelated object/anatomy registry id, which tripped
the property-fusion detector's structural-hits check even though these are
already-decided atomic terms (bead 284.3/284.9 judgment calls). Add them to
the existing COMPOUND_PROPERTIES allowlist so they short-circuit before the
structural check, same mechanism already used for corner-radius/border-width.

Residue report drops from 36 flagged tokens to the 1 genuine remaining case
(stack-item-selected-background-color-highlight, blocked by legacy.rs's
component-field hoisting, not a detector gap).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… registry

opacity-checkerboard-square-{dark,light} tokens keep their atomic
property values (not split into anatomy:"square" + a color field) per
the dark/light-tile-identity vs. colorScheme-theme distinction, but
they were missing from property-terms.json entirely.

- **packages/design-data/registry/property-terms.json**: register
  square-dark/square-light with descriptions clarifying they identify
  the tile's fixed relative lightness, not the colorScheme theme.
- **sdk/core/src/registry_data.rs**: regenerated from the registry above.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 30, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9ea4ecc

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

This PR includes changesets to release 10 packages
Name Type
@adobe/spectrum-design-data Patch
@adobe/spectrum-component-api-schemas Patch
@adobe/design-system-registry Patch
@adobe/design-data-agent-mcp Patch
@adobe/design-data-mcp Patch
markdown-generator Patch
@adobe/token-corpus-migrate Patch
@adobe/token-naming-audit Patch
component-options-editor Patch
@adobe/spectrum-design-data-mcp 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

@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Run report for 9ea4ecce

Total time: 3m 19s | Comparison time: 5m 15s | Estimated savings: 1m 55s (36.6% faster)

Action Time Status Info
⬛️ SetupProto(0.57.4) 0ms Skipped
🟩 SyncWorkspace 11.1ms Passed
🟩 SyncProject(sdk) 2ms Passed
🟩 SyncProject(design-data) 1.3ms Passed
⬛️ SetupToolchain(node:20.17.0) 661.4ms Skipped
⬛️ SetupToolchain(rust:1.88.0) 918.7ms Skipped
🟩 SetupEnvironment(rust, sdk) 125ms Passed
⬛️ InstallDependencies(rust, sdk) 2.7ms Skipped
⬛️ SetupToolchain(pnpm:10.17.1) 589.5ms Skipped
⬛️ SetupToolchain(javascript) 0ms Skipped
🟩 SetupEnvironment(javascript) 0.9ms Passed
⬛️ InstallDependencies(javascript) 0.3ms Skipped
⬛️ SetupEnvironment(javascript, sdk) 1.3ms Skipped
🟩 RunTask(design-data:validate-registry) 275.5ms Passed
🟩 RunTask(sdk:fmt-check) 715.1ms Passed
🟩 InstallDependencies(javascript, sdk) 7.9s Passed
🟩 RunTask(sdk:codegen-check) 145.6ms Passed
🟩 RunTask(sdk:lint) 49.5s Passed
🟩 RunTask(sdk:build) 1m 45s Passed
🟩 RunTask(design-data:legacy-output) 1.1s Passed
And 4 more...
Expanded report
Action Time Status Info
🟩 RunTask(design-data:roundtrip-verify) 1.9s Passed
🟩 RunTask(design-data:validate-dataset) 6.1s Passed
🟩 RunTask(design-data:validate) 3s Passed
🟩 RunTask(sdk:test) 3m 10s Passed SLOW
Changed files
.changeset/decompose-typography-component-scale.md
packages/design-data/registry/property-terms.json
packages/design-data/registry/variants.json
packages/design-data/tokens/typography.tokens.json
sdk/core/src/registry_data.rs
tools/token-mapping-analyzer/src/decomposer.js

@github-actions

Copy link
Copy Markdown
Contributor

🎨 Token Changes Report

Tokens Changed (0)

Original Branch: main


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

@github-actions

Copy link
Copy Markdown
Contributor

🧩 Component Schema Changes Report

No component schema changes detected.

This comment was automatically generated by the component schema diff tool. 🤖

@GarthDB
GarthDB merged commit 3f5f00f into main Jul 30, 2026
10 checks passed
@GarthDB
GarthDB deleted the fix/decompose-typography-component-scale-284-9 branch July 30, 2026 03:09
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.

1 participant