- Library
- Use
- Changelog
Changelog
Built from the changelog entries written in each pull request and from the commit history. Each change says what it means for you; each release has an announcement you can paste into Slack or an email. For the token-by-token history, compare and revert, open Versions in the Studio.
Updated Oct 17, 2026
- New adds an option, nothing breaks
- Fix matches the spec again
- Docs guidance only
- Internal changes nothing you see
-
Unreleased (current version 0.1.0, no release tagged yet)
- 24 New
- 13 Fix
- 2 Docs
- 10 Internal
- New
bridge audit counts every visible UI instance: router links outside a DS component's `render` prop (react-router, ra-core `LinkBase`, next/link), anchors with `href`, images and chart libraries (recharts, Nivo, Chart.js..., foreign with no DS equivalent). Providers and other non-visual parts no longer count as DS instances.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/core, @bridge-ds/eslint-plugin - New
Packages are publishable under the `@bridge-ds` npm scope (renamed from `@demo-ds` and `@bridge`). Each ships built ES modules, type declarations and, for React, one `styles.css`; the monorepo keeps resolving TypeScript sources through the `source` export condition. `@bridge-ds/core` adds branch preview helpers (`previewUrl`, `snapshotUrl`, `previewComment`) and a `previews` section in `bridge.config.json`. `@bridge-ds/react` adds an opt-in staging token override: `ThemeProvider` `tokenOverride` loads an allowlisted `tokens.css` from `?bridge-tokens=`, off by default and refused in production builds unless enabled.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/tokens, @bridge-ds/core, @bridge-ds/react - New
Measure design system adoption in product code. `@bridge-ds/core/audit` finds hardcoded colors, lengths, radii, shadows, durations, z-index and fonts in CSS, SCSS, style/sx/styled/theme objects, CSS-in-JS and Tailwind classes, suggests the closest token (deltaE in OKLab across every mode, nearest scale step), and counts DS components against foreign UI libraries, native elements and re-created components. `bridge audit <path>` reports token and component adoption as JSON (versioned schema) and Markdown, compares with a baseline, fails CI under a threshold, and `--fix --write` replaces exact CSS matches with `var(--token)`. The MCP server adds `bridge_audit` and the `migrate-file-to-ds` prompt. New `@bridge-ds/stylelint-plugin` (`bridge/use-tokens`) and `@bridge-ds/eslint-plugin` (`no-hardcoded-style-values`, `prefer-ds-components`).
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/core, @bridge-ds/cli, @bridge-ds/mcp, @bridge-ds/stylelint-plugin, @bridge-ds/eslint-plugin - New
One `bridge.config.json` and one schema (`packages/core/bridge.config.schema.json`) for the Figma plugin, the docs site, the CLI and the MCP server: tiers, ordered layers with mode placeholders, modes with parity, contrast, components, docs, changesets and governance (protected branches, branch prefix, labels, guardrails, design and tech owners). The MCP server now runs on `@bridge-ds/core` (layered token sets, minimal-diff edits, contrast, diff, PR body, GitHub client, local git writer) and every surface shares one risk classifier: a token added, changed, renamed or removed is Tier 3 (renames and removals major), a description-only edit is Tier 1 patch.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/core, @bridge-ds/mcp - New
History and rollback. `bridge_get_history` and `bridge_get_token_history` read what changed in the tokens (versions, merged PRs and commits, who, when, why, tier, breaking), and `bridge_plan_revert` and `bridge_propose_revert` undo a change against the current base branch, with conflicts shown when a token changed again later, or restore one token to an older value. The CLI adds `bridge history [token]` and `bridge revert <pr|commit> [--dry-run]`. Built on the new history model and revert planner in `@bridge-ds/core`.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/mcp, @bridge-ds/cli - New
Bridge MCP server and CLI. `@bridge-ds/mcp` connects Claude Code, Claude Desktop or any MCP client to a DTCG design system repo (local folder or GitHub): 15 tools to read tokens per mode, search, validate, check contrast, read components and docs, propose token changes as branches or draft PRs (never on main), review PRs and scaffold components, plus resources and prompts. `@bridge-ds/cli` adds `bridge init`, `check`, `tokens`, `diff`, `propose` and `mcp`.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/mcp, @bridge-ds/cli - New
Owner override for solo maintainers and small teams. `governance.override` in `bridge.config.json` (`allowed`, `requireReason`, `minReasonLength`; absent by default) lets listed logins merge from Reviews when the only thing missing is approvals. It is never offered while CI fails or runs, when changes are requested, or on a draft. Bridge checks the token has write access, asks for a reason in a confirmation dialog, posts a `**Bridge owner override**` comment with the login, reason and missing approvals, then merges with the method the repo allows. If GitHub refuses, its message is shown and the comment is marked not merged.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/core, @bridge-ds/docs-site - New
Actions: Button gains `danger` variant, `lg` size, `iconStart`, `iconEnd`, `fullWidth` and `render` (a link stays a link); loading keeps focus. New IconButton, ButtonGroup (spaced or attached) and Link (inline, standalone, subtle, external).
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react - New
Data display: Card restyled as a flat plate with an `interactive` option and padding sizes; Badge gains `appearance` (subtle, now the default, or solid), a dot, icons and sizes (existing solid badges must pass `appearance="solid"` to keep their look); new Avatar and AvatarGroup, Table (sortable headers with aria-sort, selectable rows, sticky header, focusable scroll region, useTableSort), Accordion, Tag (removable, toggleable), Divider and Kbd. Adds avatar, tag, kbd, divider and accordion component tokens.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react, @bridge-ds/tokens - New
Feedback: Alert (five tones, actions, dismiss, correct live region), Toast (ToastProvider and useToast with success, error, warning, info, promise, update and close), Progress (linear and circular, determinate and indeterminate), Skeleton, EmptyState, plus Spinner stories and guidance. Adds alert and skeleton component tokens.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react, @bridge-ds/tokens - New
Forms: Field (label, description, error wired by Base UI Field) and Input rebuilt on it (prefix, suffix, sizes; label, hint and error props kept). New Textarea (autosize, character count), Select (groups, descriptions), Combobox (filtering, async loading and empty states, multiple with chips), Checkbox (indeterminate, parent), CheckboxGroup, RadioGroup, Switch, Slider (single and range), NumberField (steppers, units) and Form (server errors with a focusable error summary, FormActions footer).
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react - New
Base UI foundation: components now wrap `@base-ui/react` for behavior and accessibility. Adds `ThemeProvider` (theme, brand and density scope, passed to portaled overlays), `Icon` (Lucide with token sizes), `VisuallyHidden`, and global base styles at `@bridge-ds/react/styles.css`.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react - New
Layout utilities: Stack, Inline, Grid (fixed columns or auto-fit by minimum item width) and Container (token widths and gutters). Gaps only accept space-scale keys.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react - New
Navigation: Tabs (underline with a sliding signal indicator, contained, icons, counts, vertical), Breadcrumb (aria-current, collapsing middle levels), Pagination (full and compact, getPageItems helper) and SidebarNav (sections, collapsible groups, counts, current page mark).
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react - New
Overlays: Dialog (sizes, scrolling body, footer, close last in focus order), AlertDialog (destructive confirmations, async confirm), Drawer (start, end, bottom with swipe), Popover, Tooltip with TooltipProvider, Menu (icons, shortcuts, groups, submenus, checkbox and radio items, danger items). Every popup carries the theme, brand and density scope. Adds menu and drawer component tokens.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/react, @bridge-ds/tokens - New
Bridge token system v1. Adds a brand mapping layer (`bridge` default, `ocean` alternate) between primitives and semantic tokens, a component tier (button, input, checkbox, switch, slider, card, popup, dialog, tooltip, toast, table, tabs, progress, nav), comfortable and compact density, motion durations and easings with a reduced-motion override, layers (z-index), icon sizes, breakpoints, a 1.2 type scale from 14px with tracking tokens, and self-hosted IBM Plex Sans and Mono (`@bridge-ds/tokens/fonts.css`). Primitives are regenerated in OKLCH on one lightness ladder. The build now writes `dist/resolved.json` and fails when any pair in `contrast.checks.json` drops below its WCAG minimum in any brand and theme. Fixes `color.border.strong` against `color.surface.default` (now at least 3:1 in both themes).
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/tokens - New
Visual impact analysis for design system changes. `@bridge-ds/core` gains a usage index (CSS variables each component reads, components it renders). New `@bridge-ds/visual` builds Storybook and the admin app at two refs, screenshots the impacted stories (every brand and theme) and the admin screens (every tenant and theme) deterministically, and pixel-diffs them into before, after, diff and composite images plus a JSON manifest. `bridge impact` and the `bridge_visual_impact` MCP tool run it; a workflow posts the result on pull requests.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/core, @bridge-ds/visual, @bridge-ds/mcp, @bridge-ds/cli - Fix
Add `tokenUsage()`: one definition of a token in use. A token is in use when a component stylesheet or a global stylesheet (base styles, app shell) reads its variable, or when a token in use aliases it. Bridge uses it for the Overview counts and the token explorer's Unused flag.
What changes for you: No action needed. A fix or a detail now matches the spec.
- Fix
Add usage guidance files for Button, Input, Badge and Card, plus the list of color pairs to check for contrast. They feed the new documentation site; no visual or API change.
What changes for you: Nothing changes in your designs. Usage guidance, contrast checks and this changelog now live on the documentation site.
changeset, patch @bridge-ds/tokens, @bridge-ds/react - New
test change bg (from Figma via DS Bridge).
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/tokens - Fix
Published Figma Community id in the manifest, and a Community listing that matches the submitted description.
What changes for you: No action needed. A fix or a detail now matches the spec.
changeset, patch @bridge-ds/figma-plugin - New
Initial foundation: DTCG 2025.10 primitives and light/dark semantic tokens built to CSS variables, plus Button, Input, Badge and Card consuming tokens only.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/tokens, @bridge-ds/react - Fix
Library foundation pages (Color, Typography, Spacing, Radius and borders, Elevation) open each token group with a specimen of the real tokens in context, light and dark side by side, then a light list: dual swatch, the token name once, a one-line role, a muted alias line and a neutral usage chip. A page-level "Copy as" switch (CSS, JS, Figma) sets what a click on a name copies, and a row opens the token explorer's detail panel in read mode. Usage comes from the shared `tokenUsage()` definition, so the page background no longer reads as unused. Links in the app chrome are ink with a quiet underline; orange stays the signal for focus and the current place.
What changes for you: No action needed. A fix or a detail now matches the spec.
- Fix
Branch previews: `previews.production` in `bridge.config.json` holds the production URL of each app (docs, Storybook, admin demo), and `appUrl()` picks the branch preview on a feature branch and the production URL on the default branch or in a local build. The docs site links its Storybook through it.
What changes for you: No action needed. A fix or a detail now matches the spec.
- New
Publishable under the @bridge-ds scope: a `source` export condition for the monorepo, built `dist` with types, publish fields, and part of `npm run build:packages`. @bridge-ds/core also ships its `./audit` and `./node` entries.
What changes for you: New option available. Nothing breaks; use it when it helps.
changeset, minor @bridge-ds/visual, @bridge-ds/mcp, @bridge-ds/cli, @bridge-ds/stylelint-plugin, @bridge-ds/eslint-plugin - Internal
Changeset for the published plugin id (missed in #9)
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Internal
Changeset for the foundation pages, ignore their QA screens
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Fix
Links are ink, orange stays the signal (docs-site)
What changes for you: No action needed. Something now looks or behaves as specified.
- New
Specimen first foundation pages (docs-site)
What changes for you: New option available. Nothing breaks; use it when it helps.
- New
Token detail drawer outside the explorer (docs-site)
What changes for you: New option available. Nothing breaks; use it when it helps.
- New
Token rows for the Library foundation pages (docs-site)
What changes for you: New option available. Nothing breaks; use it when it helps.
- Internal
Share explorer data between the explorer and other pages (docs-site)
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Fix
Published plugin id, accurate Community listing (figma-plugin)
What changes for you: No action needed. Something now looks or behaves as specified.
- Internal
Regenerate gallery 3 without the draft tray or right crop (figma-plugin)
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Internal
Regenerate gallery 2 with the Merged badge (figma-plugin)
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Fix
Show merged and closed pull requests as such in Reviews (docs-site)
What changes for you: No action needed. Something now looks or behaves as specified.
- Fix
Diff Vercel previews against the merge-base with main on branches (ci)
What changes for you: No action needed. Something now looks or behaves as specified.
- Docs
Figma Community publish kit (figma-plugin)
What changes for you: Nothing changes in Figma or in the product. Guidance got clearer.
- Internal
Fill Vercel preview and production URLs (previews)
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Internal
Rename scope in changeset merged from #4
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Internal
Docs-site: keep the page header on focus loads, full alias chips, sentence case labels
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Docs
Sidebar group labels are the one uppercase exception (docs-site)
What changes for you: Nothing changes in Figma or in the product. Guidance got clearer.
- Fix
One "in use" definition, counting base styles and aliases (core,docs)
What changes for you: No action needed. Something now looks or behaves as specified.
- Fix
"/" opens the site search everywhere, "F" searches the token explorer (docs)
What changes for you: No action needed. Something now looks or behaves as specified.
- New
Audited owner override for missing approvals (reviews)
What changes for you: New option available. Nothing breaks; use it when it helps.
- Fix
Quote step name containing a colon so the CI workflow parses (ci)
What changes for you: No action needed. Something now looks or behaves as specified.
- Internal
Test change bg
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
- Fix
Use automatic JSX runtime in Vite config (storybook)
What changes for you: No action needed. Something now looks or behaves as specified.
- Internal
Initial design system foundation
What changes for you: Nothing changes in Figma or in the product. Internal tooling only.
Announcement
Ready to paste into Slack, Teams or an email.
Design system update coming in the next release: - New: bridge audit counts every visible UI instance: router links outside a DS component's `render` prop (react-router, ra-core `LinkBase`, next/link), anchors with `href`, images and chart libraries (recharts, Nivo, Chart.js..., foreign with no DS equivalent). Providers and other non-visual parts no longer count as DS instances. - New: Packages are publishable under the `@bridge-ds` npm scope (renamed from `@demo-ds` and `@bridge`). Each ships built ES modules, type declarations and, for React, one `styles.css`; the monorepo keeps resolving TypeScript sources through the `source` export condition. `@bridge-ds/core` adds branch preview helpers (`previewUrl`, `snapshotUrl`, `previewComment`) and a `previews` section in `bridge.config.json`. `@bridge-ds/react` adds an opt-in staging token override: `ThemeProvider` `tokenOverride` loads an allowlisted `tokens.css` from `?bridge-tokens=`, off by default and refused in production builds unless enabled. - New: Measure design system adoption in product code. `@bridge-ds/core/audit` finds hardcoded colors, lengths, radii, shadows, durations, z-index and fonts in CSS, SCSS, style/sx/styled/theme objects, CSS-in-JS and Tailwind classes, suggests the closest token (deltaE in OKLab across every mode, nearest scale step), and counts DS components against foreign UI libraries, native elements and re-created components. `bridge audit <path>` reports token and component adoption as JSON (versioned schema) and Markdown, compares with a baseline, fails CI under a threshold, and `--fix --write` replaces exact CSS matches with `var(--token)`. The MCP server adds `bridge_audit` and the `migrate-file-to-ds` prompt. New `@bridge-ds/stylelint-plugin` (`bridge/use-tokens`) and `@bridge-ds/eslint-plugin` (`no-hardcoded-style-values`, `prefer-ds-components`). - New: One `bridge.config.json` and one schema (`packages/core/bridge.config.schema.json`) for the Figma plugin, the docs site, the CLI and the MCP server: tiers, ordered layers with mode placeholders, modes with parity, contrast, components, docs, changesets and governance (protected branches, branch prefix, labels, guardrails, design and tech owners). The MCP server now runs on `@bridge-ds/core` (layered token sets, minimal-diff edits, contrast, diff, PR body, GitHub client, local git writer) and every surface shares one risk classifier: a token added, changed, renamed or removed is Tier 3 (renames and removals major), a description-only edit is Tier 1 patch. - New: History and rollback. `bridge_get_history` and `bridge_get_token_history` read what changed in the tokens (versions, merged PRs and commits, who, when, why, tier, breaking), and `bridge_plan_revert` and `bridge_propose_revert` undo a change against the current base branch, with conflicts shown when a token changed again later, or restore one token to an older value. The CLI adds `bridge history [token]` and `bridge revert <pr|commit> [--dry-run]`. Built on the new history model and revert planner in `@bridge-ds/core`. - New: Bridge MCP server and CLI. `@bridge-ds/mcp` connects Claude Code, Claude Desktop or any MCP client to a DTCG design system repo (local folder or GitHub): 15 tools to read tokens per mode, search, validate, check contrast, read components and docs, propose token changes as branches or draft PRs (never on main), review PRs and scaffold components, plus resources and prompts. `@bridge-ds/cli` adds `bridge init`, `check`, `tokens`, `diff`, `propose` and `mcp`. - New: Owner override for solo maintainers and small teams. `governance.override` in `bridge.config.json` (`allowed`, `requireReason`, `minReasonLength`; absent by default) lets listed logins merge from Reviews when the only thing missing is approvals. It is never offered while CI fails or runs, when changes are requested, or on a draft. Bridge checks the token has write access, asks for a reason in a confirmation dialog, posts a `**Bridge owner override**` comment with the login, reason and missing approvals, then merges with the method the repo allows. If GitHub refuses, its message is shown and the comment is marked not merged. - New: Actions: Button gains `danger` variant, `lg` size, `iconStart`, `iconEnd`, `fullWidth` and `render` (a link stays a link); loading keeps focus. New IconButton, ButtonGroup (spaced or attached) and Link (inline, standalone, subtle, external). Nothing breaks. Figma variables and the docs update automatically after merge. Full changelog: /changelog/