Release 26.0.0#1004
Conversation
📖 Storybook Preview |
|
|
||
| ### Changed | ||
|
|
||
| - **BREAKING:** Simplified `TextButton` to a text-only control and removed `size`/`TextButtonSize`, inverse/disabled props, and icon/accessory props ([#1001](https://github.com/MetaMask/metamask-design-system/pull/1001)) |
There was a problem hiding this comment.
Marked as breaking because TextButton removes multiple props and the TextButtonSize export; the changelog links directly to the MIGRATION section with the recommended replacement patterns.
|
|
||
| - **BREAKING:** Simplified `TextButton` to a text-only control and removed `size`/`TextButtonSize`, inverse/disabled props, and icon/accessory props ([#1001](https://github.com/MetaMask/metamask-design-system/pull/1001)) | ||
| - See [Migration Guide](./MIGRATION.md#from-version-0110-to-0120) | ||
| - **BREAKING:** Removed `TextFieldSize` and the `size` prop; `TextField` is now a single fixed-height (48px) row ([#1000](https://github.com/MetaMask/metamask-design-system/pull/1000)) |
There was a problem hiding this comment.
TextField is treated as breaking because TextFieldSize and the size prop are removed; fixing the control to a single 48px row reduces platform alignment drift and matches the mobile spec.
|
|
||
| ### Fixed | ||
|
|
||
| - Improved `Input` single-line typography alignment (including iOS placeholder behavior) ([#1000](https://github.com/MetaMask/metamask-design-system/pull/1000)) |
There was a problem hiding this comment.
Input is called out as a fix because it does not change the public API for 0.12.0, but it can affect visual baselines, especially on iOS placeholder alignment.
|
|
||
| ### Changed | ||
|
|
||
| - Updated `TextButton` hover/pressed styles to be text-only (no background fill) ([#1001](https://github.com/MetaMask/metamask-design-system/pull/1001)) |
There was a problem hiding this comment.
React TextButton change is intentionally scoped to interaction styling (no API change); removing background fills makes it behave like a text link while keeping existing props stable.
|
|
||
| ### Added | ||
|
|
||
| - Added shared `BannerAlertSeverity` and `BannerAlertPropsShared` types for cross-package reuse ([#975](https://github.com/MetaMask/metamask-design-system/pull/975)) |
There was a problem hiding this comment.
Shared types are surfaced as const objects with derived union types so consumers get stable runtime constants plus type-safe string values across both React and React Native.
| @@ -12,7 +12,6 @@ This guide provides detailed instructions for migrating your project from one ve | |||
| - [Version Updates](#version-updates) | |||
There was a problem hiding this comment.
The Version Updates TOC is kept to a single 0.11.0 to 0.12.0 entry so changelog anchors stay unambiguous when linking reviewers and consumers to breaking-change guidance.
|
|
||
| `TextButton` is intended for inline links without icons. If you relied on start or end icons or accessories, migrate to [`Button`](./src/components/Button/README.md) with `variant={ButtonVariant.Tertiary}`, which supports those props. For disabled or inverse patterns previously handled by `isDisabled` or `isInverse`, use conditional styling, [`Text`](./src/components/Text/README.md) when you need full control over color and press behavior, or `Button` tertiary when that component’s props match your needs. | ||
|
|
||
| ### TextField |
There was a problem hiding this comment.
TextField breaking guidance is grouped under the same 0.11.0 to 0.12.0 section as TextButton so the changelog migration link covers both RN breaking changes.
📖 Storybook Preview |
| - [Version Updates](#version-updates) | ||
| - [From version 0.11.0 to 0.12.0](#from-version-0110-to-0120) | ||
| - [From version 0.10.0 to 0.11.0](#from-version-0100-to-0110) | ||
| - [From version 0.11.0 to 0.12.0](#from-version-0110-to-0120) |
There was a problem hiding this comment.
Removing duplicate entry
## Release 26.0.0 This release adds new BannerAlert components, introduces `KeyValueRow` for React Native, includes breaking simplifications to React Native `TextButton` and `TextField`, and continues ADR-0003/0004 shared type migrations. ### 📦 Package Versions - `@metamask/design-system-shared`: **0.5.0** - `@metamask/design-system-react`: **0.12.0** - `@metamask/design-system-react-native`: **0.12.0** ### 🔄 Shared Type Updates (0.5.0) #### Component Type Additions (#975, #997) **What Changed:** - Added `BannerAlertSeverity` const object + `BannerAlertPropsShared` - Added `AvatarNetworkPropsShared` type (ADR-0004) **Impact:** - Enables consistent cross-platform `BannerAlert` severity/types - Continues ADR-0003/ADR-0004 const-object + string-union + shared types adoption ### 🌐 React Web Updates (0.12.0) #### Added - Added `BannerAlert` component (#975) #### Changed - Updated `TextButton` hover/pressed styles to be text-only (no background fill) (#1001) - Updated `Candlestick` icon asset with smaller size variant (#998) ### 📱 React Native Updates (0.12.0) #### Added - Added `BannerAlert` component (#966) - Added `KeyValueRow` component (#959) #### Changed - **BREAKING:** Simplified `TextButton` to a text-only control and removed `size`/`TextButtonSize`, inverse/disabled props, and icon/accessory props (#1001) - Migration: `./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120` - **BREAKING:** Removed `TextFieldSize` and the `size` prop; `TextField` is now a single fixed-height (48px) row (#1000) - Migration: `./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120` - Updated `Candlestick` icon asset with smaller size variant (#998) #### Fixed - Improved `Input` single-line typography alignment (including iOS placeholder behavior) (#1000) ###⚠️ Breaking Changes #### TextButton API (React Native) **What Changed:** - Removed `size`/`TextButtonSize`, `isDisabled`, `isInverse`, and start/end icon & accessory props - `TextButton` now aligns with `Text` typography and press handlers (`variant`, `fontWeight`, `onPress`, etc.) **Migration:** See `./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120`. **Impact:** - Affects all React Native `TextButton` usages relying on the removed props #### TextField Size API (React Native) **What Changed:** - Removed `TextFieldSize` and the `size` prop - `TextField` is now a single fixed-height (48px) row **Migration:** See `./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120`. **Impact:** - Affects all React Native `TextField` usages passing `size` / importing `TextFieldSize` ### ✅ Checklist - [x] Changelogs updated with human-readable descriptions - [x] Changelog validation passed (`yarn changelog:validate`) - [x] Version bumps follow semantic versioning - [x] design-system-shared: minor (0.4.0 → 0.5.0) - new shared types - [x] design-system-react: minor (0.11.0 → 0.12.0) - new component + non-breaking changes - [x] design-system-react-native: minor (0.11.0 → 0.12.0) - new components + breaking API changes (pre-1.0) - [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) - [x] I've reviewed the [Release Workflow](./.cursor/rules/release-workflow.md) cursor rule - [x] All tests pass (`yarn build && yarn test && yarn lint`) - [x] 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** > Mostly a version/changelog release PR, but includes documented **breaking** React Native API removals for `TextButton` and `TextField` that can break downstream consumers on upgrade. > > **Overview** > Bumps the monorepo version to `26.0.0` and releases `@metamask/design-system-react`/`@metamask/design-system-react-native` to `0.12.0` and `@metamask/design-system-shared` to `0.5.0`. > > Updates changelogs and the React Native migration guide to reflect new `BannerAlert` (web + RN) and `KeyValueRow` (RN), shared type additions (`BannerAlertSeverity`/`BannerAlertPropsShared`, `AvatarNetworkPropsShared`), and **breaking** RN API changes removing `TextButton` sizing/icons/disabled/inverse props and removing `TextField` sizing (`TextFieldSize`/`size`) in favor of a fixed-height row. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5ead00c. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
Release 26.0.0
This release adds new BannerAlert components, introduces
KeyValueRowfor React Native, includes breaking simplifications to React NativeTextButtonandTextField, and continues ADR-0003/0004 shared type migrations.📦 Package Versions
@metamask/design-system-shared: 0.5.0@metamask/design-system-react: 0.12.0@metamask/design-system-react-native: 0.12.0🔄 Shared Type Updates (0.5.0)
Component Type Additions (#975, #997)
What Changed:
BannerAlertSeverityconst object +BannerAlertPropsSharedAvatarNetworkPropsSharedtype (ADR-0004)Impact:
BannerAlertseverity/types🌐 React Web Updates (0.12.0)
Added
BannerAlertcomponent (feat: add BannerAlert React and shared types #975)Changed
TextButtonhover/pressed styles to be text-only (no background fill) (refactor: Simplified TextButton and removed start and end accessory #1001)Candlestickicon asset with smaller size variant (chore: Update candlestick icon with smaller size variant #998)📱 React Native Updates (0.12.0)
Added
BannerAlertcomponent (feat: add BannerAlert React Native and shared types #966)KeyValueRowcomponent (feat:KeyValueRowcomponent #959)Changed
TextButtonto a text-only control and removedsize/TextButtonSize, inverse/disabled props, and icon/accessory props (refactor: Simplified TextButton and removed start and end accessory #1001)./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120TextFieldSizeand thesizeprop;TextFieldis now a single fixed-height (48px) row (refactor: updated Input and TextField to align with mobile fixes #1000)./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120Candlestickicon asset with smaller size variant (chore: Update candlestick icon with smaller size variant #998)Fixed
Inputsingle-line typography alignment (including iOS placeholder behavior) (refactor: updated Input and TextField to align with mobile fixes #1000)TextButton API (React Native)
What Changed:
size/TextButtonSize,isDisabled,isInverse, and start/end icon & accessory propsTextButtonnow aligns withTexttypography and press handlers (variant,fontWeight,onPress, etc.)Migration:
See
./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120.Impact:
TextButtonusages relying on the removed propsTextField Size API (React Native)
What Changed:
TextFieldSizeand thesizepropTextFieldis now a single fixed-height (48px) rowMigration:
See
./packages/design-system-react-native/MIGRATION.md#from-version-0110-to-0120.Impact:
TextFieldusages passingsize/ importingTextFieldSize✅ Checklist
yarn changelog:validate)Pre-merge author checklist
yarn build && yarn test && yarn lint)yarn changelog:validate)Pre-merge reviewer checklist
Note
Medium Risk
Mostly a version/changelog release PR, but includes documented breaking React Native API removals for
TextButtonandTextFieldthat can break downstream consumers on upgrade.Overview
Bumps the monorepo version to
26.0.0and releases@metamask/design-system-react/@metamask/design-system-react-nativeto0.12.0and@metamask/design-system-sharedto0.5.0.Updates changelogs and the React Native migration guide to reflect new
BannerAlert(web + RN) andKeyValueRow(RN), shared type additions (BannerAlertSeverity/BannerAlertPropsShared,AvatarNetworkPropsShared), and breaking RN API changes removingTextButtonsizing/icons/disabled/inverse props and removingTextFieldsizing (TextFieldSize/size) in favor of a fixed-height row.Written by Cursor Bugbot for commit 5ead00c. This will update automatically on new commits. Configure here.