Skip to content

Move design tokens to Tokens Studio and document contributor workflow - #285

Merged
coldlink merged 3 commits into
mainfrom
mm/tokens-studio
Oct 21, 2026
Merged

coldlink merged 3 commits into
mainfrom
mm/tokens-studio

Conversation

@coldlink

@coldlink coldlink commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

What does this change?

Makes Tokens Studio the source of truth for the shared base, semantic, and verified component tokens used by Style Dictionary. The token build now reads the consolidated Tokens Studio exports, and the generated CSS and TypeScript outputs are updated to match.

The old Figma variable token fetching scripts are removed.

Explains that some component DTCG tokens remain local (e.g. for non-design system shareable components, and unverified design system components).

Renames the Style Dictionary guide to Design Tokens and documents token ownership and the current workflow. It clarifies which token changes need to go through the design systems team, which component tokens contributors can maintain locally, and how to build and review generated outputs. The component creation guidance is updated to follow the same workflow.

How has this change been tested?

  • Ran pnpm run build-styled to generate token outputs.
  • Built Storybook successfully after updating the documentation.
  • Used chromatic to check visual diffs
  • Released canary and tested in a newsletters with no visual changes or linting/tsc errors!

How can we measure success?

  • The build continues to generate usable CSS and typed TypeScript tokens from the Tokens Studio exports.
  • Consumers see no changes with the new set of tokens
  • Contributors can follow the documented workflow to update local component tokens and generated outputs.
  • The design systems team can pull shared token changes from Tokens Studio and regenerate the outputs

Have we considered potential risks?

  • The updated tokens produce generated CSS and TypeScript changes, so those diffs should be reviewed for unintended token or visual changes, I've used automated checks and they should be equivalent!
  • Pulling shared tokens is still manual - updated to be automated.

@coldlink coldlink added feature Departmental tracking: work on a new feature run_chromatic Run the chromatic/storybook action. labels Oct 15, 2026
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Dependency Compatibility Matrix

React Emotion TypeScript RAC Typecheck Unit E2E Build Overall
17 11.11.4 5.0.4 1.14.0 ok ok ok ok ✅
17 11.11.4 5.0.4 1.21.1 ok ok ok ok ✅
17 11.11.4 5.9.3 1.14.0 ok ok ok ok ✅
17 11.11.4 5.9.3 1.21.1 ok ok ok ok ✅
17 11.11.4 6.0.2 1.14.0 ok ok ok ok ✅
17 11.11.4 6.0.2 1.21.1 ok ok ok ok ✅
17 11.14.0 5.0.4 1.14.0 ok ok ok ok ✅
17 11.14.0 5.0.4 1.21.1 ok ok ok ok ✅
17 11.14.0 5.9.3 1.14.0 ok ok ok ok ✅
17 11.14.0 5.9.3 1.21.1 ok ok ok ok ✅
17 11.14.0 6.0.2 1.14.0 ok ok ok ok ✅
17 11.14.0 6.0.2 1.21.1 ok ok ok ok ✅
18 11.11.4 5.0.4 1.14.0 ok ok ok ok ✅
18 11.11.4 5.0.4 1.21.1 ok ok ok ok ✅
18 11.11.4 5.9.3 1.14.0 ok ok ok ok ✅
18 11.11.4 5.9.3 1.21.1 ok ok ok ok ✅
18 11.11.4 6.0.2 1.14.0 ok ok ok ok ✅
18 11.11.4 6.0.2 1.21.1 ok ok ok ok ✅
18 11.14.0 5.0.4 1.14.0 ok ok ok ok ✅
18 11.14.0 5.0.4 1.21.1 ok ok ok ok ✅
18 11.14.0 5.9.3 1.14.0 ok ok ok ok ✅
18 11.14.0 5.9.3 1.21.1 ok ok ok ok ✅
18 11.14.0 6.0.2 1.14.0 ok ok ok ok ✅
18 11.14.0 6.0.2 1.21.1 ok ok ok ok ✅
19 11.14.0 5.0.4 1.14.0 ok ok ok ok ✅
19 11.14.0 5.0.4 1.21.1 ok ok ok ok ✅
19 11.14.0 5.9.3 1.14.0 ok ok ok ok ✅
19 11.14.0 5.9.3 1.21.1 ok ok ok ok ✅
19 11.14.0 6.0.2 1.14.0 ok ok ok ok ✅
19 11.14.0 6.0.2 1.21.1 ok ok ok ok ✅

Columns show granular outcomes for each dependency set: ok = passed, fail = failed, skip = upstream failure prevented running later stages. Overall: ✅ all passed, ⚠️ only skips (no hard fails), ❌ at least one fail.
Last updated: 2026-10-20T08:35:25.764Z (commit c9f68bb)

@coldlink
coldlink force-pushed the mm/tokens-studio branch 6 times, most recently from 2251355 to 7c2f7e7 Compare October 19, 2026 13:48
@coldlink
coldlink changed the base branch from main to mm/docs-changes October 19, 2026 13:49
@coldlink
coldlink force-pushed the mm/tokens-studio branch 2 times, most recently from 3e6f72f to b4f5d0d Compare October 19, 2026 14:33
@coldlink coldlink changed the title Migrate tokens to Tokens Studio Move design tokens to Tokens Studio and document contributor workflow Oct 19, 2026
@coldlink
coldlink marked this pull request as ready for review October 19, 2026 14:39
@coldlink
coldlink requested a review from a team as a code owner October 19, 2026 14:39
@coldlink
coldlink requested a balanced review from Copilot October 19, 2026 14:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

One critical breakpoint-selection regression and six moderate theme-override regressions remain unresolved.

7 open issues
What changed in this PR

Migrates shared design tokens to Tokens Studio while retaining local component tokens and documenting contributor ownership and workflows.

Changes:

  • Updates token generation and regenerates CSS and TypeScript outputs.
  • Replaces legacy token sources and Figma workflow documentation.
  • Updates component scaffolding guidance and Storybook token ordering.
File Description
src/​util/​storybook/​sort.ts Adds numeric token sorting.
src/​templates/​design-tokens/​templateComponent.json Uses semantic text colour.
src/​styleD/​tokens/​component/​userFeedbackSummary.json Removes migrated local source.
src/​styleD/​tokens/​component/​typography.json Removes migrated local source.
src/​styleD/​tokens/​component/​topBarItem.json Removes migrated local source.
src/​styleD/​tokens/​component/​topBar.json Removes migrated local source.
src/​styleD/​tokens/​component/​tooltip.json Removes migrated local source.
src/​styleD/​tokens/​component/​textListInput.json Removes migrated local source.
src/​styleD/​tokens/​component/​textInput.json Removes migrated local source.
src/​styleD/​tokens/​component/​textArea.json Removes migrated local source.
src/​styleD/​tokens/​component/​templateComponent.json Adds local scaffold tokens.
src/​styleD/​tokens/​component/​tagPicker.json Updates token representation.
src/​styleD/​tokens/​component/​searchInput.json Removes migrated local source.
src/​styleD/​tokens/​component/​pickerIframeModel.json Adds reformatted local iframe tokens.
src/​styleD/​tokens/​component/​pickerIframeModal.json Removes previous iframe token source.
src/​styleD/​tokens/​component/​link.json Removes migrated local source.
src/​styleD/​tokens/​component/​layout.json Removes migrated local source.
src/​styleD/​tokens/​component/​intendedAudienceSignifier.json Updates token types and dimensions.
src/​styleD/​tokens/​component/​inlineMessage.json Removes migrated local source.
src/​styleD/​tokens/​component/​icon.json Removes migrated local source.
src/​styleD/​tokens/​component/​htmlPreviewLoader.json Updates dimension representation.
src/​styleD/​tokens/​component/​grid.json Removes migrated local source.
src/​styleD/​tokens/​component/​form.json Removes migrated local source.
src/​styleD/​tokens/​component/​favicon.json Removes migrated local source.
src/​styleD/​tokens/​component/​buttonGroup.json Removes migrated local source.
src/​styleD/​tokens/​component/​autocomplete.json Removes migrated local source.
src/​styleD/​tokens/​component/​alertBanner.json Removes migrated local source.
src/​styleD/​stories/​semantic/​TypographyPresets.tsx Sorts presets by family and size.
src/​styleD/​stories/​semantic/​Spacing.tsx Sorts spacing numerically.
src/​styleD/​stories/​semantic/​Sizing.tsx Sorts sizing numerically.
src/​styleD/​stories/​base/​Spacing.tsx Sorts spacing numerically.
src/​styleD/​stories/​base/​Sizing.tsx Sorts sizing numerically.
src/​styleD/​stories/​base/​Colors.stories.tsx Excludes the transparent palette entry.
src/​styleD/​config.js Adds TypeScript dimension transformation.
src/​styleD/​build/​typescript/​semantic/​spacing.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​semantic/​sizing.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​semantic/​shadow.ts Normalizes zero-length units.
src/​styleD/​build/​typescript/​semantic/​radius.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​semantic/​grid.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​semantic/​breakpoints.ts Reorders breakpoint exports. Critical, 3 votes (line 6): getActiveBreakpoint now selects the final sm entry at larger widths. Sort by numeric minimum before selecting.
src/​styleD/​build/​typescript/​component/​userMenu.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​userFeedbackSummary.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​tooltip.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​toggleSwitch.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​toast.ts Updates ordering and shadow serialization.
src/​styleD/​build/​typescript/​component/​tile.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​textListInput.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​textInput.ts Updates ordering and padding types. Moderate, 3 votes (line 34): Numeric vertical padding rejects CSS-length theme overrides and renders nonzero overrides without units. Preserve dimension strings and regenerate.
src/​styleD/​build/​typescript/​component/​textArea.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​templateComponent.ts Updates scaffold colours.
src/​styleD/​build/​typescript/​component/​tagTable.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​tagPicker.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​tabs.ts Updates ordering and padding types. Moderate, 3 votes (line 33): Numeric vertical padding rejects CSS-length theme overrides and renders nonzero overrides without units. Preserve dimension strings and regenerate.
src/​styleD/​build/​typescript/​component/​table.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​sidebarStepperNavigation.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​select.ts Updates ordering and offset type. Moderate, 3 votes (line 55): Numeric outlineOffset rejects CSS-length theme overrides and produces invalid unitless nonzero CSS. Preserve a unit-bearing dimension and regenerate.
src/​styleD/​build/​typescript/​component/​searchInput.ts Updates ordering and padding types. Moderate, 3 votes (line 35): Numeric vertical padding rejects CSS-length theme overrides and renders nonzero overrides without units. Preserve dimension strings and regenerate.
src/​styleD/​build/​typescript/​component/​radioGroup.ts Updates ordering and scale type.
src/​styleD/​build/​typescript/​component/​pickerIframeModal.ts Normalizes zero-length units.
src/​styleD/​build/​typescript/​component/​pagination.ts Updates ordering and zero-value types. Moderate, 3 votes (line 49): Numeric item.paddingY rejects CSS-length theme overrides and produces invalid unitless nonzero padding. Preserve a dimension string and regenerate.
src/​styleD/​build/​typescript/​component/​modal.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​link.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​layout.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​intendedAudienceSignifier.ts Updates ordering and line-height type.
src/​styleD/​build/​typescript/​component/​inlineMessage.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​icon.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​htmlPreviewLoader.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​grid.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​form.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​favicon.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​byline.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​buttonGroup.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​autocomplete.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​component/​alertBanner.ts Updates ordering and numeric types. Moderate, 3 votes (line 38): Numeric vertical padding rejects CSS-length theme overrides and renders nonzero overrides without units. Preserve unit-bearing dimensions and regenerate.
src/​styleD/​build/​typescript/​base/​typography.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​base/​spacing.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​base/​sizing.ts Reorders generated tokens.
src/​styleD/​build/​typescript/​base/​radius.ts Reorders generated tokens.
src/​styleD/​build/​css/​semantic/​spacing.css Reorders generated properties.
src/​styleD/​build/​css/​semantic/​sizing.css Reorders generated properties.
src/​styleD/​build/​css/​semantic/​shadow.css Normalizes zero-length units.
src/​styleD/​build/​css/​semantic/​radius.css Reorders generated properties.
src/​styleD/​build/​css/​semantic/​grid.css Reorders generated properties.
src/​styleD/​build/​css/​semantic/​breakpoints.css Reorders generated properties.
src/​styleD/​build/​css/​component/​userMenu.css Reorders generated properties.
src/​styleD/​build/​css/​component/​userFeedbackSummary.css Reorders generated properties.
src/​styleD/​build/​css/​component/​tooltip.css Reorders generated properties.
src/​styleD/​build/​css/​component/​toggleSwitch.css Reorders generated properties.
src/​styleD/​build/​css/​component/​toast.css Updates ordering and shadow serialization.
src/​styleD/​build/​css/​component/​textListInput.css Reorders generated properties.
src/​styleD/​build/​css/​component/​textInput.css Reorders generated properties.
src/​styleD/​build/​css/​component/​textArea.css Reorders generated properties.
src/​styleD/​build/​css/​component/​templateComponent.css Updates scaffold colours.
src/​styleD/​build/​css/​component/​tagTable.css Reorders generated properties.
src/​styleD/​build/​css/​component/​tagPicker.css Reorders generated properties.
src/​styleD/​build/​css/​component/​tabs.css Reorders generated properties.
src/​styleD/​build/​css/​component/​table.css Reorders generated properties.
src/​styleD/​build/​css/​component/​sidebarStepperNavigation.css Reorders generated properties.
src/​styleD/​build/​css/​component/​select.css Updates ordering and shadow serialization.
src/​styleD/​build/​css/​component/​searchInput.css Reorders generated properties.
src/​styleD/​build/​css/​component/​pickerIframeModal.css Normalizes zero-length units.
src/​styleD/​build/​css/​component/​pagination.css Reorders generated properties.
src/​styleD/​build/​css/​component/​modal.css Reorders generated properties.
src/​styleD/​build/​css/​component/​link.css Reorders generated properties.
src/​styleD/​build/​css/​component/​layout.css Reorders generated properties.
src/​styleD/​build/​css/​component/​intendedAudienceSignifier.css Reorders generated properties.
src/​styleD/​build/​css/​component/​inlineMessage.css Reorders generated properties.
src/​styleD/​build/​css/​component/​icon.css Reorders generated properties.
src/​styleD/​build/​css/​component/​htmlPreviewLoader.css Reorders generated properties.
src/​styleD/​build/​css/​component/​grid.css Reorders generated properties.
src/​styleD/​build/​css/​component/​form.css Reorders generated properties.
src/​styleD/​build/​css/​component/​favicon.css Reorders generated properties.
src/​styleD/​build/​css/​component/​byline.css Reorders generated properties.
src/​styleD/​build/​css/​component/​buttonGroup.css Reorders generated properties.
src/​styleD/​build/​css/​component/​autocomplete.css Reorders generated properties.
src/​styleD/​build/​css/​component/​alertBanner.css Reorders generated properties.
src/​styleD/​build/​css/​base/​spacing.css Reorders generated properties.
src/​styleD/​build/​css/​base/​sizing.css Reorders generated properties.
src/​styleD/​build/​css/​base/​radius.css Reorders generated properties.
scripts/​figma/​README.md Removes obsolete fetching instructions.
scripts/​create-component.ts Updates the token ownership checklist.
README.md Documents the Tokens Studio workflow.
package.json Cleans token outputs before generation.
docs/​storybook/​StyleDictionary.mdx Removes the superseded guide.
docs/​storybook/​DesignTokens.mdx Adds token usage, ownership, and workflow guidance.
CONTRIBUTING.md Documents contributor token responsibilities.
.studio.json Configures Tokens Studio exports.
.agents/​skills/​create-component/​SKILL.md Aligns component-creation guidance.

Review effort: Balanced

Comment thread src/styleD/build/typescript/semantic/breakpoints.ts
Comment thread src/styleD/build/typescript/component/alertBanner.ts Outdated
Comment thread src/styleD/build/typescript/component/pagination.ts Outdated
Comment thread src/styleD/build/typescript/component/searchInput.ts Outdated
Comment thread src/styleD/build/typescript/component/select.ts Outdated
Comment thread src/styleD/build/typescript/component/tabs.ts Outdated
Comment thread src/styleD/build/typescript/component/textInput.ts Outdated
@coldlink
coldlink force-pushed the mm/tokens-studio branch 2 times, most recently from d7bc29e to 810b80e Compare October 19, 2026 15:01
@coldlink
coldlink requested a balanced review from Copilot October 19, 2026 15:02
Base automatically changed from mm/docs-changes to main October 19, 2026 15:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread src/styleD/build/typescript/component/alertBanner.ts Outdated
@coldlink coldlink added the 🐥 Canaries Release a canary version of `@guardian/stand` label Oct 19, 2026
@github-actions

Copy link
Copy Markdown

Note

The following canaries were published to NPM:

🐥

@github-actions github-actions Bot removed the 🐥 Canaries Release a canary version of `@guardian/stand` label Oct 19, 2026

@jamesmockett jamesmockett left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've skipped over most of the changes in /src (as it's mainly automated tokens updates and build artefacts), but the remaining changes and documentation updates look good ✨

@coldlink
coldlink merged commit 8d6badf into main Oct 21, 2026
51 checks passed
@coldlink
coldlink deleted the mm/tokens-studio branch October 21, 2026 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Departmental tracking: work on a new feature run_chromatic Run the chromatic/storybook action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants