Release 27.0.0#1018
Conversation
📖 Storybook Preview |
|
|
||
| ### Typography: semantic bold is now semibold (600) | ||
|
|
||
| - `FontWeight.Bold` and the `Text` component now treat bold as weight 600 across both CSS and Tailwind enums; the Storybook font loader swapped the retired `Geist-Bold` assets for the new `Geist-SemiBold` files, and the design tokens now export `--font-weight-bold: 600`. |
There was a problem hiding this comment.
This migration note is intentionally explicit about keeping the font-bold enum utility name unchanged while redefining the semantic weight to 600, so consumers can update font assets without a broad API rename. That separation limits breakage to font configuration and token expectations.
| ## From version 0.12.0 to 0.13.0 | ||
|
|
||
| ### Typography: semantic bold is now semibold (600) | ||
|
|
There was a problem hiding this comment.
Documenting FontWeight.Bold at 600 clarifies that semantic bold now maps to the Geist-SemiBold assets, so teams know to update hardcoded font-weight: 700 references instead of relying on the old bold files. This ties back to the 0.13.0 changelog and the tokens migration steps, keeping the release note and migration guide in sync.
|
|
||
| ### Changed | ||
|
|
||
| - Added shared `BadgeWrapper` const objects and props (`BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, `BadgeWrapperPropsShared`) so React and React Native now consume a single source of truth for the ADR-0003/ADR-0004 types; both platform packages re-export the shared definitions so existing imports keep working even as the shared package remains the canonical source. See the [design-system-react migration guide](../design-system-react/MIGRATION.md#from-version-0120-to-0130) for additional guidance ([#1014](https://github.com/MetaMask/metamask-design-system/pull/1014)). |
There was a problem hiding this comment.
This changelog entry explains why BadgeWrapper definitions moved to @metamask/design-system-shared: it establishes one canonical const-object source for both web and native packages. Keeping re-exports in platform packages avoids import-path churn while still completing the ADR-0003/0004 type migration.
📖 Storybook Preview |
|
|
||
| ### Fixed | ||
|
|
||
| - Restored a visible keyboard focus outline for `Checkbox` keyboard users by making the hidden input a Tailwind `peer` and mirroring its `peer-focus-visible` state onto the visible container so Tab navigation shows a clear indicator ([#1008](https://github.com/MetaMask/metamask-design-system/pull/1008)). |
There was a problem hiding this comment.
Including this in the release changelog makes the focus-visible restoration discoverable for teams tracking accessibility regressions between versions. The note explains why the fix used peer-focus-visible wiring instead of visual-only style tweaks.
| ### Migration steps | ||
|
|
||
| - Replace `@font-face` declarations, font imports, and any asset references from `Geist-Bold`/`Geist-BoldItalic` to `Geist-SemiBold`/`Geist-SemiBoldItalic`, and set `font-weight: 600`. | ||
| - Update code or styles that assumed `fontWeights.bold === '700'` to read from `fontWeights.bold` directly so they automatically pick up the new value. |
There was a problem hiding this comment.
We explicitly tell consumers to read fontWeights.bold instead of hardcoding 700 so future token adjustments do not trigger another migration across product code. This keeps typography behavior driven by token contracts rather than literal values.
|
|
||
| ### BadgeWrapper types now use const-object + union definitions | ||
|
|
||
| - `BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, and `BadgeWrapperPropsShared` now come from const objects annotated `as const`, which produce string union types rather than TypeScript enums (ADR-0003/ADR-0004). The shared package defines the canonical values and the platform entry points keep re-exporting those names so React Native consumers use the same import paths they already rely on. |
There was a problem hiding this comment.
This section calls out the ADR-0003/0004 move so consumers understand the enum-to-string-union change is intentional for cross-platform type parity, not a refactor side effect. Re-exporting from platform packages keeps existing imports stable while shared becomes the canonical definition.
| }, | ||
| "peerDependencies": { | ||
| "@metamask/design-system-twrnc-preset": "^0.3.0", | ||
| "@metamask/design-system-twrnc-preset": "^0.4.0", |
There was a problem hiding this comment.
The peer dependency bump is intentional because React Native consumers need the 0.4.0 preset mapping where default-bold resolves to Geist-SemiBold assets. Keeping the older range would allow installs that still point at retired bold font names.
📖 Storybook Preview |
## Release 27.0.0 Release 27.0.0 updates the semibold typography tokens, ensures BadgeWrapper enumerations now reuse const-object + union typings, and syncs the Button migration guidance across changelogs and MIGRATION docs so every surface tells the same story. ### 📦 Package Versions - `@metamask/design-system-shared`: **0.6.0** - `@metamask/design-system-react`: **0.13.0** - `@metamask/design-system-react-native`: **0.13.0** ### 🔄 Shared Type Updates (0.6.0) #### Component Type Additions (#1014) - `BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, and `BadgeWrapperPropsShared` now derive from const-object + string-union definitions per ADR-0003/ADR-0004; React and React Native continue to re-export the same names, so import paths stay rooted at the platform entry points while the shared package hosts the canonical typings. - This keeps the type surface aligned between platforms and makes future shared-type updates easier to ship without duplicating runtime enums. ### 🌐 React Web Updates (0.13.0) #### Added - None. #### Changed - **BREAKING:** `FontWeight.Bold` and the `Text` component now map bold to weight 600; the Storybook font loader switched to the `Geist-SemiBold` assets and the tokens emit `--font-weight-bold: 600`, so update any hardcoded `font-weight: 700` references as documented in `MIGRATION.md#from-version-0120-to-0130` (#1017). - The Button migration guide now spells out the prop, variant, and size mappings for both web and mobile so the before/after story is easy to follow (`MIGRATION.md#button-component`, #999). #### Fixed - None. ### 📱 React Native Updates (0.13.0) #### Added - None. #### Changed - Shared Button migration guidance now lives in `MIGRATION.md#button-component` so React Native can mirror the same prop/variant/size story (#999). #### Fixed - None. ###⚠️ Breaking Changes #### Typography semantics (Both Platforms) **What Changed:** - `FontWeight.Bold` and `Text` now resolve to weight 600, and the tokens/storybook assets switched to `Geist-SemiBold` so the bold slot emits semibold at runtime. **Migration:** ```tsx // Before (v0.12.x) <Text weight={FontWeight.Bold}>...</Text> ``` ```tsx // After (v0.13.0) import { Text, FontWeight, } from '@metamask/design-system-react'; <Text weight={FontWeight.Bold}>...</Text> ``` (Consumers only need to update any `font-weight: 700` references or bundled `Geist-Bold` assets; the API surface stays the same.) **Impact:** - Affects any code that assumes `FontWeight.Bold` resolves to 700 or bundles the retired `Geist-Bold` files. See `MIGRATION.md#from-version-0120-to-0130`. #### BadgeWrapper typings (Both Platforms) **What Changed:** - `BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, and `BadgeWrapperPropsShared` now come from const objects + string unions defined in `@metamask/design-system-shared`. The platform bundles re-export the same names so existing imports keep working, but the type shape is now string-literal friendly per ADR-0003/ADR-0004. **Migration:** ```ts // Before (enum) import { BadgeWrapperPosition } from '@metamask/design-system-react'; const position: BadgeWrapperPosition = BadgeWrapperPosition.TopRight; ``` ```ts // After (const-object + union) import { BadgeWrapperPosition, } from '@metamask/design-system-react'; const position: (typeof BadgeWrapperPosition)[keyof typeof BadgeWrapperPosition] = 'top-right'; ``` **Impact:** - Ensures React and React Native share the same canonical definitions while preserving the original import paths; no import-path changes are required. ### ✅ Checklist - [x] Changelogs updated with human-readable descriptions - [ ] Changelog validation passed (`yarn changelog:validate`) - [x] Version bumps follow semantic versioning - [x] design-system-shared: patch (0.5.0 → 0.6.0) – shared type alignment for BadgeWrapper values - [x] design-system-react: minor (0.12.0 → 0.13.0) – semibold typography semantics and linked Button migration docs - [x] design-system-react-native: minor (0.12.0 → 0.13.0) – mirrors React’s semibold/type migration guidance - [x] Breaking changes documented with migration guidance - [x] Migration guides updated with before/after examples (if breaking changes) - [x] PR references included in changelog entries ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) - [ ] I've reviewed the [Release Workflow](./.cursor/rules/release-workflow.md) cursor rule - [ ] All tests pass (`yarn build && yarn test && yarn lint`) - [ ] Changelog validation passes (`yarn changelog:validate`) ## **Pre-merge reviewer checklist** - [ ] I've reviewed the [Reviewing Release PRs](./docs/reviewing-release-prs.md) guide - [ ] Package versions follow semantic versioning - [ ] Changelog entries are consumer-facing (not commit message regurgitation) - [ ] Breaking changes are documented in MIGRATION.md with examples - [ ] All unreleased changes are accounted for in changelogs <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Medium risk because this is a release/version bump that ships breaking typography weight changes and type-shape updates that can affect consumers’ styling and TypeScript usage. Repo changes are mostly metadata/docs, but downstream upgrades may require font asset and `font-weight` updates. > > **Overview** > **Release bump to `27.0.0`** with package version updates (`design-system-react`/`react-native` → `0.13.0`, `design-system-shared` → `0.6.0`, `design-tokens` → `8.3.0`, `design-system-twrnc-preset` → `0.4.0`). > > Documents and publishes the **typography semantic change** where `FontWeight.Bold`/`--font-weight-bold` now map to `600` and font mappings move from `Geist-Bold*` to `Geist-SemiBold*`, plus the **`BadgeWrapper` type migration** to `as const` + string-union definitions centralized in `design-system-shared`. Migration guides/changelogs are updated accordingly, and React Native peer deps are updated to require `@metamask/design-system-twrnc-preset@^0.4.0`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7ad09f1. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## Release 27.0.0 Release 27.0.0 updates the semibold typography tokens, ensures BadgeWrapper enumerations now reuse const-object + union typings, and syncs the Button migration guidance across changelogs and MIGRATION docs so every surface tells the same story. ### 📦 Package Versions - `@metamask/design-system-shared`: **0.6.0** - `@metamask/design-system-react`: **0.13.0** - `@metamask/design-system-react-native`: **0.13.0** ### 🔄 Shared Type Updates (0.6.0) #### Component Type Additions (#1014) - `BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, and `BadgeWrapperPropsShared` now derive from const-object + string-union definitions per ADR-0003/ADR-0004; React and React Native continue to re-export the same names, so import paths stay rooted at the platform entry points while the shared package hosts the canonical typings. - This keeps the type surface aligned between platforms and makes future shared-type updates easier to ship without duplicating runtime enums. ### 🌐 React Web Updates (0.13.0) #### Added - None. #### Changed - **BREAKING:** `FontWeight.Bold` and the `Text` component now map bold to weight 600; the Storybook font loader switched to the `Geist-SemiBold` assets and the tokens emit `--font-weight-bold: 600`, so update any hardcoded `font-weight: 700` references as documented in `MIGRATION.md#from-version-0120-to-0130` (#1017). - The Button migration guide now spells out the prop, variant, and size mappings for both web and mobile so the before/after story is easy to follow (`MIGRATION.md#button-component`, #999). #### Fixed - None. ### 📱 React Native Updates (0.13.0) #### Added - None. #### Changed - Shared Button migration guidance now lives in `MIGRATION.md#button-component` so React Native can mirror the same prop/variant/size story (#999). #### Fixed - None. ###⚠️ Breaking Changes #### Typography semantics (Both Platforms) **What Changed:** - `FontWeight.Bold` and `Text` now resolve to weight 600, and the tokens/storybook assets switched to `Geist-SemiBold` so the bold slot emits semibold at runtime. **Migration:** ```tsx // Before (v0.12.x) <Text weight={FontWeight.Bold}>...</Text> ``` ```tsx // After (v0.13.0) import { Text, FontWeight, } from '@metamask/design-system-react'; <Text weight={FontWeight.Bold}>...</Text> ``` (Consumers only need to update any `font-weight: 700` references or bundled `Geist-Bold` assets; the API surface stays the same.) **Impact:** - Affects any code that assumes `FontWeight.Bold` resolves to 700 or bundles the retired `Geist-Bold` files. See `MIGRATION.md#from-version-0120-to-0130`. #### BadgeWrapper typings (Both Platforms) **What Changed:** - `BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, and `BadgeWrapperPropsShared` now come from const objects + string unions defined in `@metamask/design-system-shared`. The platform bundles re-export the same names so existing imports keep working, but the type shape is now string-literal friendly per ADR-0003/ADR-0004. **Migration:** ```ts // Before (enum) import { BadgeWrapperPosition } from '@metamask/design-system-react'; const position: BadgeWrapperPosition = BadgeWrapperPosition.TopRight; ``` ```ts // After (const-object + union) import { BadgeWrapperPosition, } from '@metamask/design-system-react'; const position: (typeof BadgeWrapperPosition)[keyof typeof BadgeWrapperPosition] = 'top-right'; ``` **Impact:** - Ensures React and React Native share the same canonical definitions while preserving the original import paths; no import-path changes are required. ### ✅ Checklist - [x] Changelogs updated with human-readable descriptions - [ ] Changelog validation passed (`yarn changelog:validate`) - [x] Version bumps follow semantic versioning - [x] design-system-shared: patch (0.5.0 → 0.6.0) – shared type alignment for BadgeWrapper values - [x] design-system-react: minor (0.12.0 → 0.13.0) – semibold typography semantics and linked Button migration docs - [x] design-system-react-native: minor (0.12.0 → 0.13.0) – mirrors React’s semibold/type migration guidance - [x] Breaking changes documented with migration guidance - [x] Migration guides updated with before/after examples (if breaking changes) - [x] PR references included in changelog entries ## **Pre-merge author checklist** - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) - [ ] I've reviewed the [Release Workflow](./.cursor/rules/release-workflow.md) cursor rule - [ ] All tests pass (`yarn build && yarn test && yarn lint`) - [ ] Changelog validation passes (`yarn changelog:validate`) ## **Pre-merge reviewer checklist** - [ ] I've reviewed the [Reviewing Release PRs](./docs/reviewing-release-prs.md) guide - [ ] Package versions follow semantic versioning - [ ] Changelog entries are consumer-facing (not commit message regurgitation) - [ ] Breaking changes are documented in MIGRATION.md with examples - [ ] All unreleased changes are accounted for in changelogs <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Medium risk because this is a release/version bump that ships breaking typography weight changes and type-shape updates that can affect consumers’ styling and TypeScript usage. Repo changes are mostly metadata/docs, but downstream upgrades may require font asset and `font-weight` updates. > > **Overview** > **Release bump to `27.0.0`** with package version updates (`design-system-react`/`react-native` → `0.13.0`, `design-system-shared` → `0.6.0`, `design-tokens` → `8.3.0`, `design-system-twrnc-preset` → `0.4.0`). > > Documents and publishes the **typography semantic change** where `FontWeight.Bold`/`--font-weight-bold` now map to `600` and font mappings move from `Geist-Bold*` to `Geist-SemiBold*`, plus the **`BadgeWrapper` type migration** to `as const` + string-union definitions centralized in `design-system-shared`. Migration guides/changelogs are updated accordingly, and React Native peer deps are updated to require `@metamask/design-system-twrnc-preset@^0.4.0`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7ad09f1. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
Release 27.0.0 updates the semibold typography tokens, ensures BadgeWrapper enumerations now reuse const-object + union typings, and syncs the Button migration guidance across changelogs and MIGRATION docs so every surface tells the same story. - `@metamask/design-system-shared`: **0.6.0** - `@metamask/design-system-react`: **0.13.0** - `@metamask/design-system-react-native`: **0.13.0** - `BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, and `BadgeWrapperPropsShared` now derive from const-object + string-union definitions per ADR-0003/ADR-0004; React and React Native continue to re-export the same names, so import paths stay rooted at the platform entry points while the shared package hosts the canonical typings. - This keeps the type surface aligned between platforms and makes future shared-type updates easier to ship without duplicating runtime enums. - None. - **BREAKING:** `FontWeight.Bold` and the `Text` component now map bold to weight 600; the Storybook font loader switched to the `Geist-SemiBold` assets and the tokens emit `--font-weight-bold: 600`, so update any hardcoded `font-weight: 700` references as documented in `MIGRATION.md#from-version-0120-to-0130` (#1017). - The Button migration guide now spells out the prop, variant, and size mappings for both web and mobile so the before/after story is easy to follow (`MIGRATION.md#button-component`, #999). - None. - None. - Shared Button migration guidance now lives in `MIGRATION.md#button-component` so React Native can mirror the same prop/variant/size story (#999). - None. **What Changed:** - `FontWeight.Bold` and `Text` now resolve to weight 600, and the tokens/storybook assets switched to `Geist-SemiBold` so the bold slot emits semibold at runtime. **Migration:** ```tsx // Before (v0.12.x) <Text weight={FontWeight.Bold}>...</Text> ``` ```tsx // After (v0.13.0) import { Text, FontWeight, } from '@metamask/design-system-react'; <Text weight={FontWeight.Bold}>...</Text> ``` (Consumers only need to update any `font-weight: 700` references or bundled `Geist-Bold` assets; the API surface stays the same.) **Impact:** - Affects any code that assumes `FontWeight.Bold` resolves to 700 or bundles the retired `Geist-Bold` files. See `MIGRATION.md#from-version-0120-to-0130`. **What Changed:** - `BadgeWrapperPosition`, `BadgeWrapperPositionAnchorShape`, `BadgeWrapperCustomPosition`, and `BadgeWrapperPropsShared` now come from const objects + string unions defined in `@metamask/design-system-shared`. The platform bundles re-export the same names so existing imports keep working, but the type shape is now string-literal friendly per ADR-0003/ADR-0004. **Migration:** ```ts // Before (enum) import { BadgeWrapperPosition } from '@metamask/design-system-react'; const position: BadgeWrapperPosition = BadgeWrapperPosition.TopRight; ``` ```ts // After (const-object + union) import { BadgeWrapperPosition, } from '@metamask/design-system-react'; const position: (typeof BadgeWrapperPosition)[keyof typeof BadgeWrapperPosition] = 'top-right'; ``` **Impact:** - Ensures React and React Native share the same canonical definitions while preserving the original import paths; no import-path changes are required. - [x] Changelogs updated with human-readable descriptions - [ ] Changelog validation passed (`yarn changelog:validate`) - [x] Version bumps follow semantic versioning - [x] design-system-shared: patch (0.5.0 → 0.6.0) – shared type alignment for BadgeWrapper values - [x] design-system-react: minor (0.12.0 → 0.13.0) – semibold typography semantics and linked Button migration docs - [x] design-system-react-native: minor (0.12.0 → 0.13.0) – mirrors React’s semibold/type migration guidance - [x] Breaking changes documented with migration guidance - [x] Migration guides updated with before/after examples (if breaking changes) - [x] PR references included in changelog entries - [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) - [ ] I've reviewed the [Release Workflow](./.cursor/rules/release-workflow.md) cursor rule - [ ] All tests pass (`yarn build && yarn test && yarn lint`) - [ ] Changelog validation passes (`yarn changelog:validate`) - [ ] I've reviewed the [Reviewing Release PRs](./docs/reviewing-release-prs.md) guide - [ ] Package versions follow semantic versioning - [ ] Changelog entries are consumer-facing (not commit message regurgitation) - [ ] Breaking changes are documented in MIGRATION.md with examples - [ ] All unreleased changes are accounted for in changelogs <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Medium risk because this is a release/version bump that ships breaking typography weight changes and type-shape updates that can affect consumers’ styling and TypeScript usage. Repo changes are mostly metadata/docs, but downstream upgrades may require font asset and `font-weight` updates. > > **Overview** > **Release bump to `27.0.0`** with package version updates (`design-system-react`/`react-native` → `0.13.0`, `design-system-shared` → `0.6.0`, `design-tokens` → `8.3.0`, `design-system-twrnc-preset` → `0.4.0`). > > Documents and publishes the **typography semantic change** where `FontWeight.Bold`/`--font-weight-bold` now map to `600` and font mappings move from `Geist-Bold*` to `Geist-SemiBold*`, plus the **`BadgeWrapper` type migration** to `as const` + string-union definitions centralized in `design-system-shared`. Migration guides/changelogs are updated accordingly, and React Native peer deps are updated to require `@metamask/design-system-twrnc-preset@^0.4.0`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7ad09f1. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
Release 27.0.0
Release 27.0.0 updates the semibold typography tokens, ensures BadgeWrapper enumerations now reuse const-object + union typings, and syncs the Button migration guidance across changelogs and MIGRATION docs so every surface tells the same story.
📦 Package Versions
@metamask/design-system-shared: 0.6.0@metamask/design-system-react: 0.13.0@metamask/design-system-react-native: 0.13.0🔄 Shared Type Updates (0.6.0)
Component Type Additions (#1014)
BadgeWrapperPosition,BadgeWrapperPositionAnchorShape,BadgeWrapperCustomPosition, andBadgeWrapperPropsSharednow derive from const-object + string-union definitions per ADR-0003/ADR-0004; React and React Native continue to re-export the same names, so import paths stay rooted at the platform entry points while the shared package hosts the canonical typings.🌐 React Web Updates (0.13.0)
Added
Changed
FontWeight.Boldand theTextcomponent now map bold to weight 600; the Storybook font loader switched to theGeist-SemiBoldassets and the tokens emit--font-weight-bold: 600, so update any hardcodedfont-weight: 700references as documented inMIGRATION.md#from-version-0120-to-0130(chore: reapply semibold font weight updates with latest Expo font conventions #1017).MIGRATION.md#button-component, chore: [DSYS-616] create/update Button migration docs #999).Fixed
📱 React Native Updates (0.13.0)
Added
Changed
MIGRATION.md#button-componentso React Native can mirror the same prop/variant/size story (chore: [DSYS-616] create/update Button migration docs #999).Fixed
Typography semantics (Both Platforms)
What Changed:
FontWeight.BoldandTextnow resolve to weight 600, and the tokens/storybook assets switched toGeist-SemiBoldso the bold slot emits semibold at runtime.Migration:
(Consumers only need to update any
font-weight: 700references or bundledGeist-Boldassets; the API surface stays the same.)Impact:
FontWeight.Boldresolves to 700 or bundles the retiredGeist-Boldfiles. SeeMIGRATION.md#from-version-0120-to-0130.BadgeWrapper typings (Both Platforms)
What Changed:
BadgeWrapperPosition,BadgeWrapperPositionAnchorShape,BadgeWrapperCustomPosition, andBadgeWrapperPropsSharednow come from const objects + string unions defined in@metamask/design-system-shared. The platform bundles re-export the same names so existing imports keep working, but the type shape is now string-literal friendly per ADR-0003/ADR-0004.Migration:
Impact:
✅ Checklist
yarn changelog:validate)Pre-merge author checklist
yarn build && yarn test && yarn lint)yarn changelog:validate)Pre-merge reviewer checklist
Note
Low Risk
Primarily version bumps and documentation/changelog updates; functional code behavior is not changed in this diff beyond dependency version alignment.
Overview
Bumps the monorepo release to
27.0.0and increments package versions for@metamask/design-system-react/react-nativeto0.13.0,@metamask/design-system-sharedto0.6.0,@metamask/design-system-twrnc-presetto0.4.0, and@metamask/design-tokensto8.3.0.Updates changelogs and migration guides to document the release’s consumer-facing changes, including the semantic bold weight shift to
600/Geist-SemiBold, theBadgeWrappertype move to const-object + string-union definitions, and synchronized Button migration guidance. Also aligns React Native’s peer dependency on@metamask/design-system-twrnc-presetto^0.4.0(andyarn.lockaccordingly).Written by Cursor Bugbot for commit 6411f6d. This will update automatically on new commits. Configure here.