Skip to content

Release 20.0.0#921

Merged
georgewrmarshall merged 8 commits into
mainfrom
release/20.0.0
Feb 19, 2026
Merged

Release 20.0.0#921
georgewrmarshall merged 8 commits into
mainfrom
release/20.0.0

Conversation

@georgewrmarshall

@georgewrmarshall georgewrmarshall commented Feb 19, 2026

Copy link
Copy Markdown
Contributor

Release 20.0.0

This release includes updates to 4 packages with breaking changes, new features, and improvements.

Packages Being Released

Package Current Version New Version Type
@metamask/design-tokens 8.1.1 8.2.0 Minor
@metamask/design-system-react 0.7.0 0.8.0 Minor
@metamask/design-system-react-native 0.6.0 0.7.0 Minor
@metamask/design-system-shared 0.1.2 0.1.3 Patch

Highlights

🎨 Design Tokens (8.2.0)

  • Exported AnimationDuration enum for standardized animation timing values

⚛️ Design System React (0.8.0)

  • BREAKING:(possibly) Standardized enum values to kebab-case format
  • Added CorporateFare icon
  • Updated @metamask/utils peer dependency to 11.10.0

📱 Design System React Native (0.7.0)

  • BREAKING:(possibly) Standardized enum values to kebab-case format
  • Added CorporateFare icon
  • Added BottomSheetOverlay component for modal interactions
  • Fixed ``ButtonBase` sizing issues in flex layouts
  • Updated component styling to use tw.style() for better type safety

🔧 Other Packages

  • design-system-shared (0.1.3): Updated @metamask/utils dependency

Breaking Changes

Enum Value Format Change (React & React Native)

All component enum values (except icon names) now use kebab-case format at runtime:

// Code usage remains the same
<Button variant={ButtonVariant.Primary} />

// But the runtime value changed from 'Primary' to 'primary'
console.log(ButtonVariant.Primary); // 'primary' (was 'Primary')

Migration:

  • Most consumers: No changes needed - continue using enum constants (e.g., ButtonVariant.Primary)
  • Only if persisting/transmitting values: Update stored values from PascalCase to kebab-case (e.g., 'Primary''primary', 'TopRight''top-right')

Context: This prepares for migration from enums to string union types per ADR #127


Note

Medium Risk
Primarily a release/changelog version bump, but it ships a documented breaking change around enum runtime value formatting that could impact consumers persisting/transmitting enum values.

Overview
Bumps the monorepo release to 20.0.0 and increments package versions for @metamask/design-tokens (8.2.0), @metamask/design-system-react (0.8.0), @metamask/design-system-react-native (0.7.0), and @metamask/design-system-shared (0.1.3).

Updates changelogs to document the release highlights, including exporting the AnimationDuration enum, adding the CorporateFare icon, a breaking kebab-case standardization of non-icon enum runtime values, and React Native peer dependency alignment (notably @metamask/design-tokens to ^8.2.0).

Written by Cursor Bugbot for commit d4c08b9. This will update automatically on new commits. Configure here.

georgewrmarshall and others added 3 commits February 18, 2026 10:16
Updated all package changelogs to follow Keep a Changelog conventions:
- Categorized entries under Added/Changed/Fixed sections
- Removed "Uncategorized" sections
- Made entries consumer-focused with clear descriptions
- Removed dev-only changes (dependency bumps, tooling updates)
- Added migration guidance for breaking changes
- Provided context for new features and components

Packages updated:
- @metamask/design-tokens (8.2.0)
- @metamask/design-system-react (0.8.0)
- @metamask/design-system-react-native (0.7.0)
- @metamask/design-system-shared (0.1.3)
- @metamask/design-system-tailwind-preset (0.6.2)
- @metamask/design-system-twrnc-preset (0.3.1)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@georgewrmarshall georgewrmarshall requested a review from a team as a code owner February 19, 2026 01:53
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Preview

@georgewrmarshall georgewrmarshall left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Some questions

Comment thread packages/design-system-react-native/CHANGELOG.md Outdated
Comment thread packages/design-system-react-native/CHANGELOG.md Outdated
Comment thread packages/design-system-react/CHANGELOG.md Outdated
Comment thread packages/design-system-tailwind-preset/CHANGELOG.md Outdated
Comment thread packages/design-system-twrnc-preset/CHANGELOG.md Outdated
Comment thread packages/design-tokens/CHANGELOG.md Outdated
Comment thread packages/design-tokens/CHANGELOG.md Outdated
- Update CorporateFare icon description to specify stocks representation
- Add AnimationDuration enum export to design-tokens changelog
- Clarify maintenance-only changes in tailwind and twrnc presets
- Remove font weight reversion entry (changes cancelled out in same release)

Changes based on self-review feedback:
#921 (review)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Preview

brianacnguyen
brianacnguyen previously approved these changes Feb 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Preview

@georgewrmarshall georgewrmarshall enabled auto-merge (squash) February 19, 2026 18:51

@cursor cursor Bot 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Comment thread packages/design-system-react-native/CHANGELOG.md
- Revert design-system-tailwind-preset from 0.6.2 to 0.6.1
- Revert design-system-twrnc-preset from 0.3.1 to 0.3.0

These packages only had internal changes (test file cleanups, dev
dependencies) that don't affect published packages, so no version bump
is needed per semver best practices.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Preview

…tion

BottomSheetOverlay uses AnimationDuration enum which was only exported
in design-tokens@8.2.0. Updated peer dependency from ^8.1.0 to ^8.2.0
to prevent runtime import errors.

Fixes: #921 (comment)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Preview


- **BREAKING:** Standardized non-icon enum runtime values to use kebab-case format ([#894](https://github.com/MetaMask/metamask-design-system/pull/894))
- Enum values now use lowercase/kebab-case (e.g., `'primary'` instead of `'Primary'`, `'top-right'` instead of `'TopRight'`)
- **Migration likely not needed** - continue using enum constants (e.g., `ButtonVariant.Primary`)

@georgewrmarshall georgewrmarshall Feb 19, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Breaking change is well-documented with concrete examples. Note that migration is only needed if apps persist or transmit these values - most consumers using enum constants like ButtonVariant.Primary won't need any changes.

- Enum values now use lowercase/kebab-case (e.g., `'primary'` instead of `'Primary'`, `'top-right'` instead of `'TopRight'`)
- **Migration likely not needed** - continue using enum constants (e.g., `ButtonVariant.Primary`)
- **Migration needed** only if your app persists or transmits these enum values (localStorage, databases, APIs)
- This prepares for migration from enums to string union types per ADR #127

@georgewrmarshall georgewrmarshall Feb 19, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

ADR 127 reference provides important strategic context - this enum standardization prepares the codebase for a future migration from TypeScript enums to string union types.

"peerDependencies": {
"@metamask/design-system-twrnc-preset": "^0.3.0",
"@metamask/design-tokens": "^8.1.0",
"@metamask/design-tokens": "^8.2.0",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Critical dependency relationship: BottomSheetOverlay component uses AnimationDuration enum which was only exported starting in design-tokens 8.2.0. The peer dependency bump from ^8.1.0 to ^8.2.0 prevents runtime import errors.

## [8.2.0]

### Added

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This AnimationDuration export is used by the new BottomSheetOverlay component in design-system-react-native, which is why that package requires design-tokens 8.2.0 as a peer dependency.

@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Preview

@georgewrmarshall georgewrmarshall merged commit 4500419 into main Feb 19, 2026
43 checks passed
@georgewrmarshall georgewrmarshall deleted the release/20.0.0 branch February 19, 2026 20:11
georgewrmarshall added a commit that referenced this pull request Feb 20, 2026
Update yarn.lock to reflect the @metamask/design-tokens peer dependency
change from ^8.1.0 to ^8.2.0 in @metamask/design-system-react-native.

The original Release 20.0.0 merge (#921) updated the peer dependency but
did not update yarn.lock, causing the publish workflow to fail during the
yarn install --immutable check.

Fixes: https://github.com/MetaMask/metamask-design-system/actions/runs/22198282954

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
georgewrmarshall added a commit that referenced this pull request Feb 20, 2026
georgewrmarshall added a commit that referenced this pull request Feb 20, 2026
## Summary

Reverts the failed Release 20.0.0 (#921) to redo it properly with
complete changelogs and correct yarn.lock.

## Context

Release 20.0.0 was merged to main but the publish workflow failed due to
a yarn.lock issue:
- **Failed workflow:**
https://github.com/MetaMask/metamask-design-system/actions/runs/22198282954
- **Root cause:** yarn.lock not updated when peer dependency changed

After the release was merged, 7 additional PRs were merged to main:
1. Label component (#907)
2. HeaderBase component (#902)
3. Skeleton (#891)
4. Card (#923)
5. BottomSheetFooter (#899)
6. Toast (#892)
7. Input component (#909)

## Why Revert?

To maintain clean version history and proper changelogs:
- Release 20.0.0 was never published to NPM (latest is 19.0.0)
- The 7 PRs merged after are not documented in Release 20.0.0 changelog
- Reverting allows us to create a proper Release 20.0.0 that includes
ALL changes

## Changes

This PR reverts commit `45004196` which:
- Restores package versions to pre-release state (8.1.1, 0.7.0, 0.6.0,
etc.)
- Restores root package.json version from 20.0.0 to 19.0.0
- Removes Release 20.0.0 changelog entries

## Next Steps

After this is merged:
1. Create new `release/20.0.0` branch using standard release process
2. Include all changes (original + 7 PRs) in changelogs
3. **Run `yarn install` to update yarn.lock**
4. Merge new Release 20.0.0 PR
5. Publish workflow will succeed with correct lockfile

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
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