Skip to content

feat(tokens): add static + theme-aware transparency tokens, deprecate legacy - #1382

Draft
GarthDB wants to merge 6 commits into
mainfrom
fix/8rty-transparency-tokens
Draft

GarthDB wants to merge 6 commits into
mainfrom
fix/8rty-transparency-tokens

Conversation

@GarthDB

@GarthDB GarthDB commented Aug 27, 2026

Copy link
Copy Markdown
Member

Description

Adds the two remaining transparency-token families from the AI Branding proposal and
deprecates the legacy transparency tokens they replace, finishing the work started in
#1348 (opacity scale, #1344 only).

  • transparent-static-white-* / transparent-static-black-* — 36 tokens, fixed values
    across all color schemes, aligned to the 18-step opacity foundation scale.
  • transparent-neutral-* / transparent-neutral-inverse-* — 72 tokens (18 steps ×
    light/dark/wireframe), theme-aware so consumers don't have to manually pick
    transparent-white vs. transparent-black per theme.
  • Deprecates the legacy transparent-white-*, transparent-black-*, white, and
    black tokens (lifecycle.deprecatedIn: 15.3.0) in favor of the new
    transparent-static-* families.
  • Registers the 4 new colorFamily registry values and regenerates the legacy
    packages/tokens/src/color-palette.json output + Rust registry codegen.

Related Issue

Closes #1345, #1346, #1347.

Motivation and Context

Bead spectrum-design-data-8rty tracked all of #1344–#1347; #1348 only shipped the
opacity scale (#1344). This PR completes the remaining transparency scope needed for
the AI Branding effort.

How Has This Been Tested?

  • moon run design-data:validate — schema + registry validation passes (pre-existing
    unrelated warnings on table/switch/tag-field components only).
  • moon run design-data:legacy-output — regenerated packages/tokens/src/color-palette.json;
    diff shows exactly the new tokens plus deprecated: true on the 28 legacy entries.
  • moon run design-data:roundtrip-verify and moon run tokens:test (27 tests, incl.
    legacy-output/roundtrip/snapshot checks) — all pass.
  • moon run sdk:test — 1324 Rust tests pass (token data embedded at compile time).
  • node tools/changeset-linter/src/cli.js check --fail-on-warnings — passes.

Screenshots (if appropriate):

N/A — token data only.

Types of changes

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

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 5 commits August 26, 2026 14:18
TokenGraph.platform_extensions (added in #1380) had no public getter and
was invisible in describe/primer output. Component-side consumers already
read graph.components directly, so only the platform-extension side needed
surfacing.

- sdk/core/src/graph.rs: add TokenGraph::platform_extensions() getter.
- sdk/core/src/primer.rs: add platformExtensions: Vec<String> to PrimerData,
  built as "{platform}:{extends}" strings mirroring the existing components
  field; add a unit test.
- sdk/cli/src/main.rs: print the platform-extension count in `primer`'s
  pretty output (JSON output picks it up automatically).

Closes spectrum-design-data-h890.22.3.
Review on #1381 found it unused, including by the PR's own primer code,
which reads graph.platform_extensions directly. The field is already pub;
add a getter back if/when a consumer outside this crate needs one.
run_primer never called manifest::apply_configured, so a configured
platform manifest's extensions.components/platformExtensions never
surfaced in `design-data primer` output — the primer JSON stayed at
platformExtensions: [] even with the manifest wired (bead .22.4).
Wire it in, mirroring the same cascade run_query/run_resolve apply.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… legacy (#1345-#1347)

- Add transparent-static-white-*/transparent-static-black-* (36 tokens, aligned
  to the opacity foundation scale) and theme-aware transparent-neutral-*/
  transparent-neutral-inverse-* (72 tokens, light/dark/wireframe).
- Register the 4 new colorFamily values in registry/color-families.json.
- Deprecate legacy transparent-white-*, transparent-black-*, white, and black
  tokens in favor of the new transparent-static-* families.
- Regenerate legacy output and Rust registry codegen.

Closes #1345, #1346, #1347.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Aug 27, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e56f303

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

This PR includes changesets to release 12 packages
Name Type
@adobe/design-data-tui Patch
@adobe/design-data-wasm Patch
@adobe/spectrum-tokens Minor
s2-tokens-viewer Patch
@adobe/design-data-agent-mcp Patch
@adobe/design-data-mcp Patch
@adobe/design-data Patch
@adobe/token-naming-audit Patch
@adobe/token-names Patch
markdown-generator Patch
@adobe/spectrum-design-data-mcp 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

@github-actions

Copy link
Copy Markdown
Contributor

🎨 Token Changes Report

Tokens Changed (100)

Original Branch: main

Newly Deprecated (28) - `black` - `transparent-black-100` - `transparent-black-1000` - `transparent-black-200` - `transparent-black-25` - `transparent-black-300` - `transparent-black-400` - `transparent-black-50` - `transparent-black-500` - `transparent-black-600` - `transparent-black-700` - `transparent-black-75` - `transparent-black-800` - `transparent-black-900` - `transparent-white-100` - `transparent-white-1000` - `transparent-white-200` - `transparent-white-25` - `transparent-white-300` - `transparent-white-400` - `transparent-white-50` - `transparent-white-500` - `transparent-white-600` - `transparent-white-700` - `transparent-white-75` - `transparent-white-800` - `transparent-white-900` - `white`
Added (72) - `transparent-neutral-0` - `transparent-neutral-100` - `transparent-neutral-1000` - `transparent-neutral-125` - `transparent-neutral-150` - `transparent-neutral-200` - `transparent-neutral-300` - `transparent-neutral-350` - `transparent-neutral-400` - `transparent-neutral-50` - `transparent-neutral-500` - `transparent-neutral-600` - `transparent-neutral-700` - `transparent-neutral-75` - `transparent-neutral-750` - `transparent-neutral-800` - `transparent-neutral-900` - `transparent-neutral-950` - `transparent-neutral-inverse-0` - `transparent-neutral-inverse-100` - `transparent-neutral-inverse-1000` - `transparent-neutral-inverse-125` - `transparent-neutral-inverse-150` - `transparent-neutral-inverse-200` - `transparent-neutral-inverse-300` - `transparent-neutral-inverse-350` - `transparent-neutral-inverse-400` - `transparent-neutral-inverse-50` - `transparent-neutral-inverse-500` - `transparent-neutral-inverse-600` - `transparent-neutral-inverse-700` - `transparent-neutral-inverse-75` - `transparent-neutral-inverse-750` - `transparent-neutral-inverse-800` - `transparent-neutral-inverse-900` - `transparent-neutral-inverse-950` - `transparent-static-black-0` - `transparent-static-black-100` - `transparent-static-black-1000` - `transparent-static-black-125` - `transparent-static-black-150` - `transparent-static-black-200` - `transparent-static-black-300` - `transparent-static-black-350` - `transparent-static-black-400` - `transparent-static-black-50` - `transparent-static-black-500` - `transparent-static-black-600` - `transparent-static-black-700` - `transparent-static-black-75` - `transparent-static-black-750` - `transparent-static-black-800` - `transparent-static-black-900` - `transparent-static-black-950` - `transparent-static-white-0` - `transparent-static-white-100` - `transparent-static-white-1000` - `transparent-static-white-125` - `transparent-static-white-150` - `transparent-static-white-200` - `transparent-static-white-300` - `transparent-static-white-350` - `transparent-static-white-400` - `transparent-static-white-50` - `transparent-static-white-500` - `transparent-static-white-600` - `transparent-static-white-700` - `transparent-static-white-75` - `transparent-static-white-750` - `transparent-static-white-800` - `transparent-static-white-900` - `transparent-static-white-950`

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. 🤖

@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Run report for e56f3035

Total time: 3m 8s | Comparison time: 8m 56s | Estimated savings: 5m 48s (64.9% faster)

Action Time Status Info
⬛️ SetupProto(0.57.4) 0ms Skipped
🟩 SyncWorkspace 11.2ms Passed
🟩 SyncProject(sdk) 0.6ms Passed
🟩 SyncProject(design-data) 1.2ms Passed
🟩 SyncProject(tokens) 1.4ms Passed
⬛️ SetupToolchain(node:20.17.0) 13.9ms Skipped
⬛️ SetupToolchain(pnpm:10.17.1) 2.2ms Skipped
⬛️ SetupToolchain(javascript) 0ms Skipped
🟩 SetupEnvironment(javascript) 0.7ms Passed
⬛️ SetupEnvironment(javascript, sdk) 0.7ms Skipped
⬛️ InstallDependencies(javascript) 0.1ms Skipped
🟩 RunTask(design-data:validate-registry) 231.2ms Passed
⬛️ SetupToolchain(rust:1.88.0) 624.9ms Skipped
🟩 SetupEnvironment(rust, sdk) 418.5ms Passed
⬛️ InstallDependencies(rust, sdk) 10.1ms Skipped
🟩 RunTask(sdk:fmt-check) 1.7s Passed
🟩 InstallDependencies(javascript, sdk) 5.8s Passed
🟩 RunTask(sdk:codegen-check) 73.6ms Passed
🟩 RunTask(sdk:lint) 57s Passed
🟩 RunTask(tokens:buildTokens) 1m 19s Passed
And 12 more...
Expanded report
Action Time Status Info
🟩 RunTask(sdk:build) 1m 49s Passed
🟩 RunTask(tokens:verifyLegacyOutput) 1.3s Passed
🟩 RunTask(design-data:legacy-output) 1.3s Passed
🟩 RunTask(tokens:verifyLegacyRoundtrip) 1.9s Passed
🟩 RunTask(tokens:validateDesignData) 1.5s Passed
🟩 RunTask(design-data:roundtrip-verify) 2s Passed
🟩 RunTask(tokens:verifyDesignDataSnapshot) 1.5s Passed
🟩 RunTask(tokens:test) 11.2s Passed
🟩 RunTask(design-data:validate-dataset) 30.8s Passed
🟩 RunTask(sdk:test-doc) 1m 55s Passed
🟩 RunTask(design-data:validate) 26.1s Passed
🟩 RunTask(sdk:test) 3m 2s Passed SLOW
Changed files
.changeset/primer-applies-configured-manifest.md
.changeset/transparency-tokens.md
packages/design-data/registry/color-families.json
packages/design-data/tokens/color-palette.tokens.json
packages/tokens/src/color-palette.json
sdk/cli/src/main.rs
sdk/core/src/registry_data.rs

@GarthDB
GarthDB marked this pull request as draft August 27, 2026 16:52

This branch has not been deployed

No deployments
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.

New static transparency tokens

1 participant