Releases: MetaMask/metamask-design-system
Releases · MetaMask/metamask-design-system
35.0.0
@metamask/design-system-react 0.18.0
Changed
- BREAKING: Updated
IconName,IconColor, andIconSizeexports to use const-object + string-union types instead of local enums; existing imports from@metamask/design-system-reactcontinue to work, but enum-specific type assumptions may need updating (#1042, #1101)- See Migration Guide
- BREAKING: Updated
Boxtype exports (BoxFlexDirection,BoxFlexWrap,BoxAlignItems,BoxJustifyContent,BoxBackgroundColor,BoxBorderColor,BoxSpacing,BoxBorderWidth) to use const-object + string-union types, and removed stale Box color entries that no longer map to design tokens (#1026)- Removed
BoxBackgroundColor.WarningAlternative,BoxBackgroundColor.SuccessAlternative,BoxBorderColor.WarningAlternative,BoxBorderColor.SuccessAlternative, andBoxBorderColor.InfoAlternative - See Migration Guide
- Removed
- Updated
ButtonTertiaryto use the default text color for more consistent contrast across states (#1099)
@metamask/design-system-react-native 0.20.0
Added
- Added
TitleStandardfor mobile title layouts with optional top and bottom accessory rows (#1051) - Added
TitleSubpagefor subpage headers with avatar, title, subtitle, amount, and bottom-label layouts (#1059) - Added
Tagfor compact severity-based metadata labels with optional icons or custom accessories (#1053)
Changed
Boxnow forwards refs to the underlyingView, which makes imperative measurement and focus flows easier to integrate (#1102)- Updated
ButtonTertiaryto use the default text color for more consistent contrast across states (#1099) - BREAKING: Updated
IconName,IconColor, andIconSizeexports to use const-object + string-union types instead of local enums; existing imports from@metamask/design-system-react-nativecontinue to work, but enum-specific type assumptions may need updating (#1042)- See Migration Guide
- BREAKING: Updated
Boxtype exports (BoxFlexDirection,BoxFlexWrap,BoxAlignItems,BoxJustifyContent,BoxBackgroundColor,BoxBorderColor,BoxSpacing,BoxBorderWidth) to use const-object + string-union types, and removed stale Box color entries that no longer map to design tokens (#1026)- Removed
BoxBackgroundColor.WarningAlternative,BoxBackgroundColor.SuccessAlternative,BoxBorderColor.WarningAlternative,BoxBorderColor.SuccessAlternative, andBoxBorderColor.InfoAlternative - See Migration Guide
- Removed
@metamask/design-system-shared 0.13.0
Added
- Added
TitleStandardPropsSharedandTitleSubpagePropsSharedfor shared header composition across platform packages (#1051, #1059) - Added
TagSeverityandTagPropsSharedfor shared Tag contracts consumed by platform packages (#1053)
Changed
- BREAKING: Updated shared
Boxexports (BoxFlexDirection,BoxFlexWrap,BoxAlignItems,BoxJustifyContent,BoxBackgroundColor,BoxBorderColor,BoxSpacing,BoxBorderWidth,BoxPropsShared) from enums to const objects with derived string unions (#1026)- Removed
BoxBackgroundColor.WarningAlternative,BoxBackgroundColor.SuccessAlternative,BoxBorderColor.WarningAlternative,BoxBorderColor.SuccessAlternative, andBoxBorderColor.InfoAlternative - See Migration Guide
- Removed
- BREAKING: Updated shared
Iconexports (IconName,IconColor,IconSize,IconPropsShared) to use const objects with derived string unions and made@metamask/design-system-sharedthe source of truth for icon names and assets across React and React Native (#1042)- See Migration Guide
34.0.0
@metamask/design-system-react 0.17.1
Changed
- Expanded the
reactandreact-dompeer dependency ranges to support React 19 consumers. (#1089)
@metamask/design-system-react-native 0.19.0
Added
- Added
TitleHubfor stacked title, amount, and bottom-label layouts with optional accessory slots. (#1052)
Changed
- BREAKING: Raised the minimum supported peer dependency versions to React Native
>=0.76.0,react-native-gesture-handler >=2.25.0,react-native-reanimated >=3.17.0, andreact-native-safe-area-context >=5.0.0to align the package with the React Native 0.76 and Storybook 10 stack. (#844) - BREAKING:
HeaderRootnow renderstitleAccessoryonly whentitleis present; usechildrenfor fully custom accessory-only title rows. See Migration Guide. (#1076) - BREAKING:
IconPropsnow align with the underlying SVG component props instead ofViewProps; moveView-specific props to a wrapper view if TypeScript flags them after upgrading. See Migration Guide. (#1090)
@metamask/design-system-shared 0.12.0
Added
- Added
TitleHubPropsSharedandCheckboxPropsSharedfor shared cross-platform component contracts. (#1052, #1040)
Changed
- Expanded the
reactpeer dependency range to support React 19 consumers. (#1089)
Removed
- BREAKING: Removed
isReactNodeRenderablefrom the public API; replace imports with plain truthy checks instead. See Migration Guide. (#1076)
@metamask/design-system-twrnc-preset 0.4.2
Changed
- Expanded the
reactpeer dependency range to>=18.2.0, allowing the preset to install alongside newer React Native 0.76 and React 19 app stacks. (#844)
33.0.0
@metamask/design-system-react 0.17.0
Changed
- Updated
AvatarFavicontype internals to use ADR-0003/ADR-0004 shared types; imports from@metamask/design-system-reactare unchanged (#1062) - BREAKING: Migrated
Texttypography types (TextVariant,TextColor,FontWeight,FontStyle,FontFamily) to@metamask/design-system-shared; all imports through@metamask/design-system-reactcontinue to work without change (#1047)FontWeight,FontStyle, andFontFamilyunderlying string values changed to semantic identifiers (e.g.FontWeight.Boldwas'font-bold', now'bold'); idiomatic usage is unaffected- Projects scanning
node_modulesfor Tailwind class names must also scan@metamask/design-system-shared - See Migration Guide
@metamask/design-system-react-native 0.18.0
Added
- Added
IconAlertcomponent for mapping a severity (info,success,warning,error) to a fixed icon glyph and theme color (#1060)
Changed
- Updated
AvatarFavicontype internals to use ADR-0003/ADR-0004 shared types; imports from@metamask/design-system-react-nativeare unchanged (#1062)
@metamask/design-system-shared 0.11.0
Added
32.0.0
@metamask/design-system-react-native 0.17.0
Changed
- BREAKING: Migrated
Texttypography types (TextVariant,TextColor,FontWeight,FontStyle,FontFamily) to@metamask/design-system-shared; all imports through@metamask/design-system-react-nativecontinue to work without change (#1047)FontWeightunderlying 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
@metamask/design-system-shared 0.10.0
Added
- Added
TextVariant,TextColor,FontWeight,FontStyle,FontFamily, andTextPropsSharedshared types for cross-platform use (#1047)
31.0.0
@metamask/design-system-react 0.16.0
Changed
- Updated
BadgeNetworktype internals; imports from@metamask/design-system-reactare unchanged (#1021)
@metamask/design-system-react-native 0.16.0
Added
- Added
HeaderSearchcomponent for in-screen and inline search experiences (#1031) - Added
KeyValueColumncomponent for vertically-stacked key/value layouts (#1046)
Changed
- BREAKING: Renamed
BoxHorizontaltoBoxRowandBoxVerticaltoBoxColumn(#1050)- See Migration Guide
- BREAKING: Refactored
KeyValueRowAPI — removed the legacy stub-based composition (KeyValueRowStubs,field/valueobjects); usekeyLabel,value,variant, and accessory props directly (#1023)- See Migration Guide
- Updated
BadgeNetworktype internals; imports from@metamask/design-system-react-nativeare unchanged (#1021)
@metamask/design-system-shared 0.9.0
Added
- Added
BadgeNetworkPropsSharedshared type for cross-platform use (#1021) - Added
HeaderSearchVariant,HeaderSearchPropsShared,HeaderSearchInlinePropsShared, andHeaderSearchScreenPropsSharedshared types for cross-platform use (#1031) - Added
KeyValueRowVariantconst object (Summary,Input) andKeyValueRowPropsSharedshared type for cross-platform use (#1023) - Added
KeyValueColumnPropsSharedshared type for cross-platform use (#1046)
Changed
- BREAKING: Renamed
BoxHorizontalPropsSharedtoBoxRowPropsSharedandBoxVerticalPropsSharedtoBoxColumnPropsShared(#1050)- See Migration Guide
30.0.0
@metamask/design-system-react 0.15.0
Added
- Added
NoPhotographyicon (#1056)
Changed
- BREAKING: Updated
AvatarTokenandAvatarAccountexports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected (#1009, #1015)
@metamask/design-system-react-native 0.15.0
Added
- Added
NoPhotographyicon (#1056)
Changed
- BREAKING: Updated
IconSizeunderlying string values to semantic t-shirt size tokens; normal use is unaffected (#1049) - BREAKING: Updated
AvatarTokenandAvatarAccountexports to use shared const-object + string-union types (ADR-0003/ADR-0004); normal use is unaffected (#1009, #1015)
@metamask/design-system-shared 0.8.0
Added
29.0.0
@metamask/design-system-react 0.14.0
Changed
- BREAKING: Updated
AvatarBaseexports to consume shared const-object + string-union types rather than local enums, aligning React with shared cross-platform type contracts (#1005).- No migration required for typical usage; continue importing from
@metamask/design-system-reactas before. - Runtime values remain stable while type definitions follow ADR-0003/ADR-0004.
- No migration required for typical usage; continue importing from
- Updated
@metamask/utilspeer dependency to^11.11.0(#1033). - Expanded
BannerBasemigration documentation to improve upgrade guidance for consumers moving between recent releases (#1011).
@metamask/design-system-react-native 0.14.0
Added
- Added
HeaderRootas a new root primitive for React Native header composition (#1029). - Added
HeaderStandardfor standardized title + action header layouts in mobile screens (#1028, #1030). - Added
TextFieldSearchfor search-style text input flows on mobile (#1027). - Added
BoxHorizontalandBoxVerticalutility components for common directional layout composition (#1003).
Changed
- BREAKING: Replaced BottomSheet
shouldNavigateBackwith an optionalgoBackcallback for explicit navigation handling in host apps (#1024).- Remove
shouldNavigateBackusage and passgoBackwhen you want the sheet close action to navigate back. - See Migration Guide.
- Remove
- Added
panGestureHandlerPropssupport toBottomSheetso integrators can customize gesture-handler behavior (#1016). - Migrated React Native package exports from default exports to named exports for more consistent import ergonomics across the library (#1032).
- BREAKING: Updated
AvatarBaseexports to use shared const-object + string-union types instead of local enums (#1005).- No migration required for typical usage; continue importing from
@metamask/design-system-react-nativeas before. - Runtime values remain stable while type definitions follow ADR-0003/ADR-0004.
- No migration required for typical usage; continue importing from
- Updated
@metamask/utilspeer dependency to^11.11.0(#1033). - Expanded
BannerBasemigration documentation to improve upgrade guidance for consumers (#1011).
Fixed
- Updated
BottomSheetHeaderaction button size tomdfor consistent sizing and visual alignment (#1012).
@metamask/design-system-shared 0.7.0
Added
- Added shared types used by new React Native header components, including
HeaderRootcontracts consumed by@metamask/design-system-react-native(#1029). - Added shared
BoxHorizontalandBoxVerticalutility component contracts for cross-platform layout primitives (#1003).
Changed
28.0.0
27.0.0
@metamask/design-system-react 0.13.0
Changed
FontWeight.Boldand theTextcomponent now treat the semantic bold slot as weight 600; Storybook moved to theGeist-SemiBoldassets and the tokens now emit--font-weight-bold: 600, so update any hardcodedfont-weight: 700references as outlined in MIGRATION.md#from-version-0120-to-0130 (#1017).BadgeWrapperPosition,BadgeWrapperPositionAnchorShape,BadgeWrapperCustomPosition, andBadgeWrapperPropsSharednow derive from const objects withas const/string-union typings per ADR-0003 and ADR-0004, so the same values are available to both React and React Native while your import statements continue to reference@metamask/design-system-react(or the platform-specific entry point) as before (#1014; see https://github.com/MetaMask/decisions/blob/main/decisions/design-system/0003-enum-to-string-union-migration.md and MIGRATION.md#from-version-0120-to-0130).- Documented the Button migration path that walks through prop, variant, and size mappings for both web and mobile, linking directly to MIGRATION.md#button-component so the release note, changelog, and migration guide share the same reference (#999).
Fixed
- Restored a visible keyboard focus outline for
Checkboxkeyboard users by making the hidden input a Tailwindpeerand mirroring itspeer-focus-visiblestate onto the visible container so Tab navigation shows a clear indicator (#1008).
@metamask/design-system-react-native 0.13.0
Changed
FontWeight.Boldand the React NativeTextcomponent now describe bold as weight 600; the Storybook mobileFontLoaderand@metamask/design-system-twrnc-presetnow reference theGeist-SemiBold/Geist-SemiBoldItalicassets, so update any custom font registrations that previously assumed weight 700 as explained in the migration guide (#1017).BadgeWrapperPosition,BadgeWrapperPositionAnchorShape,BadgeWrapperCustomPosition, andBadgeWrapperPropsSharednow derive from const objects annotatedas const, producing string-union typings per ADR-0003/ADR-0004; the React Native entry point still exports the same names, so your imports stay on@metamask/design-system-react-nativewhile the shared package hosts the canonical definitions (#1014; see https://github.com/MetaMask/decisions/blob/main/decisions/design-system/0003-enum-to-string-union-migration.md and https://github.com/MetaMask/decisions/blob/main/decisions/design-system/0004-centralized-types-architecture.md).- Documented the Button migration instructions (prop, variant, and size mappings) in MIGRATION.md#button-component so both web and native developers follow the same before/after story (#999).
@metamask/design-system-shared 0.6.0
Changed
- Added shared
BadgeWrapperconst 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 for additional guidance (#1014).
@metamask/design-system-twrnc-preset 0.4.0
Changed
- The
default-boldanddefault-bold-italicfont mappings now resolve toGeist-SemiBold/Geist-SemiBoldItalic, aligning the preset with the new semibold typography tokens and font assets introduced in this release (#1017; see@metamask/design-tokensrelease notes for details). Update any customtwclassnames or font bundles that referenced the oldGeist-Bold/Geist-BoldItalicnames so Metro/Expo resolve the semibold files.
@metamask/design-tokens 8.3.0
Changed
fontWeights.boldand the--font-weight-boldCSS variable now return600, and the Storybook font loaders/@font-facedeclarations consume the newGeist-SemiBold/Geist-SemiBoldItalicassets instead of the retired bold files (#1017). Thedesign-system-twrnc-presetmapping fordefault-bold/default-bold-italicnow resolves to those semibold PostScript names, so custom Tailwind classnames should align with the new fonts. Update@font-facedeclarations, font bundles, andfont-weight: 700styles to point at the semibold files, include the semibold assets fromapps/storybook-react-native/fonts/Geistandapps/storybook-react/fonts/Geistwhen you bundle fonts manually, and run the migration guide to verifyfontWeights.boldreferences propagate through CSS, JS, and Tailwind configurations.
26.0.0
@metamask/design-system-react 0.12.0
Added
- Added
BannerAlertcomponent (#975)
Changed
- Updated
TextButtonhover/pressed styles to be text-only (no background fill) (#1001) - Updated
Candlestickicon asset with smaller size variant (#998)
@metamask/design-system-react-native 0.12.0
Added
Changed
- BREAKING: Simplified
TextButtonto a text-only control and removedsize/TextButtonSize, inverse/disabled props, and icon/accessory props (#1001)- See Migration Guide
- BREAKING: Removed
TextFieldSizeand thesizeprop;TextFieldis now a single fixed-height (48px) row (#1000)- See Migration Guide
- Updated
Candlestickicon asset with smaller size variant (#998)
Fixed
- Improved
Inputsingle-line typography alignment (including iOS placeholder behavior) (#1000)