Skip to content

Release 32.0.0#1063

Merged
georgewrmarshall merged 5 commits intomainfrom
release/32.0.0
Apr 9, 2026
Merged

Release 32.0.0#1063
georgewrmarshall merged 5 commits intomainfrom
release/32.0.0

Conversation

@georgewrmarshall
Copy link
Copy Markdown
Contributor

@georgewrmarshall georgewrmarshall commented Apr 9, 2026

Release 32.0.0

This release migrates Text typography types to @metamask/design-system-shared, continuing the ADR-0003/0004 const-object + string-union pattern adoption.

📦 Package Versions

  • @metamask/design-system-shared: 0.10.0
  • @metamask/design-system-react-native: 0.17.0

🔄 Shared Type Updates (0.10.0)

Text typography types added (#1047)

What Changed:

  • Added TextVariant, TextColor, and TextPropsShared shared types for cross-platform use

Impact:

  • Enables consistent Text type definitions across React and React Native
  • Continues ADR-0003/0004 const-object + string-union pattern adoption

📱 React Native Updates (0.17.0)

Changed

  • BREAKING: Migrated Text typography types (TextVariant, TextColor, FontWeight, FontStyle, FontFamily) to @metamask/design-system-shared; all imports through @metamask/design-system-react-native continue to work without change (#1047)
    • FontWeight underlying string values changed from numeric strings ('600', '500', '400') to semantic identifiers ('bold', 'medium', 'regular'); idiomatic usage (e.g. FontWeight.Bold) is unaffected

⚠️ Breaking Changes

FontWeight string values changed (React Native Only)

What Changed:

  • FontWeight was previously a TypeScript enum with numeric string values; it is now a const object with semantic string values
Key Before (0.16.0) After (0.17.0)
FontWeight.Bold '600' 'bold'
FontWeight.Medium '500' 'medium'
FontWeight.Regular '400' 'regular'

Migration:

// ❌ Rare: comparing against raw numeric string
if (fontWeight === '600') { ... }

// ✅ Use const member (works in both 0.16.0 and 0.17.0)
if (fontWeight === FontWeight.Bold) { ... }

Impact:

  • Only affects code that compared against raw FontWeight numeric string values directly
  • Idiomatic usage (fontWeight={FontWeight.Bold}) is unaffected

See migration guide for complete instructions:

✅ Checklist

  • Changelogs updated with human-readable descriptions
  • Changelog validation passed (yarn changelog:validate)
  • Version bumps follow semantic versioning
    • design-system-shared: minor (0.9.0 → 0.10.0) - new Text shared types added
    • design-system-react-native: minor (0.16.0 → 0.17.0) - breaking FontWeight value change
  • Breaking changes documented with migration guidance
  • Migration guides updated with before/after examples
  • PR references included in changelog entries

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've reviewed the Reviewing Release PRs 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

Note

Medium Risk
Medium risk because this is a release bump that documents a breaking underlying FontWeight runtime string-value change; consumers comparing raw string values may break even though import paths remain stable.

Overview
Bumps the monorepo to 32.0.0 and releases @metamask/design-system-react-native 0.17.0 and @metamask/design-system-shared 0.10.0.

Updates changelogs to reflect moving Text typography types (TextVariant, TextColor, FontWeight, FontStyle, FontFamily, TextPropsShared) into @metamask/design-system-shared, including a breaking note that FontWeight raw string values change from numeric strings to semantic identifiers.

Adds a release-workflow step to run yarn changelog:validate after editing changelogs.

Reviewed by Cursor Bugbot for commit a05e001. Bugbot is set up for automated code reviews on this repo. Configure here.

@georgewrmarshall georgewrmarshall requested a review from a team as a code owner April 9, 2026 22:58
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

📖 Storybook Preview


### Changed

- **BREAKING:** Migrated `Text` typography types (`TextVariant`, `TextColor`, `FontWeight`, `FontStyle`, `FontFamily`) to `@metamask/design-system-shared`; all imports through `@metamask/design-system-react-native` continue to work without change ([#1047](https://github.com/MetaMask/metamask-design-system/pull/1047))
Copy link
Copy Markdown
Contributor Author

@georgewrmarshall georgewrmarshall Apr 9, 2026

Choose a reason for hiding this comment

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

Although the runtime imports are backwards-compatible, the underlying FontWeight string values changed (e.g. '600''bold'), which is a breaking change for any consumer comparing against raw values. The sub-bullets clarify the scope: idiomatic enum usage is unaffected, but raw-string comparisons will break.


- **BREAKING:** Migrated `Text` typography types (`TextVariant`, `TextColor`, `FontWeight`, `FontStyle`, `FontFamily`) to `@metamask/design-system-shared`; all imports through `@metamask/design-system-react-native` continue to work without change ([#1047](https://github.com/MetaMask/metamask-design-system/pull/1047))
- `FontWeight` underlying string values changed from numeric strings (`'600'`, `'500'`, `'400'`) to semantic identifiers (`'bold'`, `'medium'`, `'regular'`); idiomatic usage (e.g. `FontWeight.Bold`) is unaffected
- See [Migration Guide](./MIGRATION.md#from-version-0160-to-0170)
Copy link
Copy Markdown
Contributor Author

@georgewrmarshall georgewrmarshall Apr 9, 2026

Choose a reason for hiding this comment

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

Consumers who scan node_modules/@metamask/design-system-react-native for Tailwind class names (e.g. to pick up TextColor values) must also scan @metamask/design-system-shared after this release, since the string values now live in the shared package's compiled output. This is documented in the linked migration guide.

After editing, validate format:

```bash
yarn changelog:validate
Copy link
Copy Markdown
Contributor Author

@georgewrmarshall georgewrmarshall Apr 9, 2026

Choose a reason for hiding this comment

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

yarn changelog:validate catches formatting issues (wrong section names, missing version links, malformed entries) before you invest time writing MIGRATION.md. Discovering a format error after completing Steps 4–5 means backtracking; catching it here keeps the workflow linear.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

📖 Storybook Preview


### Added

- Added `TextVariant`, `TextColor`, `FontWeight`, `FontStyle`, `FontFamily`, and `TextPropsShared` shared types for cross-platform use ([#1047](https://github.com/MetaMask/metamask-design-system/pull/1047))
Copy link
Copy Markdown
Contributor Author

@georgewrmarshall georgewrmarshall Apr 9, 2026

Choose a reason for hiding this comment

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

The shared package gains six new exports (TextVariant, TextColor, FontWeight, FontStyle, FontFamily, TextPropsShared) that did not exist before — purely additive. The breaking FontWeight value change belongs to design-system-react-native, not here, because it's that package's concrete implementation that changed behaviour.

@georgewrmarshall georgewrmarshall merged commit 133434e into main Apr 9, 2026
44 checks passed
@georgewrmarshall georgewrmarshall deleted the release/32.0.0 branch April 9, 2026 23:18
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.

2 participants