Releases: MetaMask/metamask-design-system
Releases · MetaMask/metamask-design-system
44.0.0
@metamask/design-system-react 0.26.0
Added
- Added
Tagcomponent for categorization and filtering labels (#1211) - Added
Toastcomponent withToasterprovider and imperativetoast()API for non-blocking notifications (#1190)
Changed
- BREAKING:
TextButtonAPI aligned with React Native —size/TextButtonSizereplaced byvariant/TextVariant;isInverse,isDisabled,textProps, start/end icons, and accessory slots removed;asChildadded for semantic link composition (#1224)- See Migration Guide
- BREAKING:
AvatarIconSeverity.Errorrenamed toAvatarIconSeverity.Danger; severity vocabulary standardized to useDangerfor destructive/critical states andNeutralfor default states (#1159)- See Migration Guide
Fixed
- Fixed
Toastto supporttoast()calls made beforeToastermounts (#1217)
@metamask/design-system-react-native 0.29.0
Added
- Added
ListItemcomponent for list row layouts (#1203)
Changed
- BREAKING:
AvatarIconSeverity.Error,IconAlertSeverity.Error, andTagSeverity.Errorrenamed to.Danger; severity vocabulary standardized to useDangerfor destructive/critical states andNeutralfor default states (#1159)- See Migration Guide
@metamask/design-system-shared 0.22.0
Added
- Added
ListItemPropsSharedand related shared types for cross-platformListItemsupport (#1203) - Added
ToastPropsShared,ToastSeverity, andToastanimation constants to shared package, consolidating the Toast type definitions used by React and React Native (#1190) - Added
TextButtonPropsSharedto alignTextButtonAPI across React and React Native (#1224) - Added
AvatarNetworkSizeas a named export from the shared package (#1225)
Changed
- BREAKING:
AvatarIconSeverity.Error,IconAlertSeverity.Error, andTagSeverity.Errorrenamed to.Danger; severity vocabulary standardized to useDangerfor destructive/critical states (#1159)
43.0.0
@metamask/design-system-react 0.25.0
Added
- Added
Popoverfor anchored overlays such as menus, tooltips, and dialogs (#1153) - Added
TextAreafor controlled multiline text entry (#1036) - Added
TextFieldSearchfor controlled search-field flows on top ofTextField(#1171) - Added
FormTextFieldfor labeled form controls built fromLabel,TextField, andHelpText(#1197)
Changed
- BREAKING: Dropped Node.js 18 support for the release line; consumers must run Node 20 or newer (#1206)
- Updated avatar fallback handling so
AvatarToken,AvatarNetwork, andAvatarFaviconresolve consistently when the requested image is unavailable (#1212)
@metamask/design-system-react-native 0.28.0
Added
- Added
Contentfor composing scrollable and padded content sections on React Native screens; it is closely related to the upcomingListItemwork (#1192)
Changed
- BREAKING: Dropped Node.js 18 support for the release line; consumers must run Node 20 or newer (#1206)
- Added default padding and
isInteractivesupport toSectionHeaderso section rows match the new mobile layout patterns (#1210) - BREAKING: Flattened
TextAreaso it renders the rootTextInputdirectly; passTextInputprops onTextArea, use the componentreffor the input, and stop relying oninputPropsorinputElement(#1205) - Updated avatar fallback handling so
AvatarToken,AvatarNetwork, andAvatarFaviconresolve consistently when the requested image is unavailable (#1212)
@metamask/design-system-shared 0.21.0
Added
- Added
ContentPropsSharedandContentVerticalAlignmentso React Native can compose list-style rows and related layout patterns (#1192)
Changed
- BREAKING: Dropped Node.js 18 support for the release line; no public API changes were needed in
@metamask/design-system-shared, but consumers must run on Node 20 or newer (#1206) - BREAKING: Updated
TextAreaPropsSharedto removeinputElementso React NativeTextAreacan render the rootTextInputdirectly (#1205)
@metamask/design-system-tailwind-preset 0.9.0
Changed
- BREAKING: Dropped Node.js 18 support for the release line; no Tailwind preset behavior changed, but consumers must run on Node 20 or newer (#1206)
@metamask/design-system-twrnc-preset 0.5.0
Changed
- BREAKING: Dropped Node.js 18 support for the release line; no TWRNC preset behavior changed, but consumers must run on Node 20 or newer (#1206)
@metamask/design-tokens 8.5.0
Changed
- BREAKING: Dropped Node.js 18 support for the release line; the emitted token values and CSS output are unchanged, but consumers must run on Node 20 or newer (#1206)
42.0.0
@metamask/design-system-react 0.24.0
Added
- Added
TextFieldfor labeled text entry with optional helper and validation text, exposingTextFieldSizeandTextFieldType(#1170) - Added
FlashFilledicon (filled lightning bolt) toIconName(#1191)
@metamask/design-system-react-native 0.27.0
Added
- Added
FlashFilledicon (filled lightning bolt) toIconName(#1191) - Added
SelectButtonSizesoSelectButtonexposes a semantic size type (#1177)
Changed
- BREAKING: Removed
panGestureHandlerPropsfromBottomSheetandBottomSheetDialogfollowing the migration to thereact-native-gesture-handlerv2GestureDetector/Gesture.Pan()API (#1165)- See Migration Guide
- BREAKING: Removed the variant-based title API from
HeaderBaseandBottomSheetHeader(#1103)- Removed
variant,HeaderBaseVariant, andBottomSheetHeaderVariant, plusHeaderBase'stitleTestID - String titles now render with a centered
HeadingSmtreatment; pass customchildrenfor bespoke title layouts and usetextProps.testIDin place oftitleTestID - See Migration Guide
- Removed
- Reduced the default
SegmentGroupsegment spacing fromgap-3togap-1for tighter grouped segments (#1194)
Fixed
- Fixed a
HeaderStandardAnimatedruntime crash under React Native Reanimated 4 by inlining the scroll-handler worklet (#1185) - Fixed React Native Web rendering for
BottomSheet,BottomSheetOverlay,Icon, and the animatedButtonAnimatedandSpinnercomponents (#1187)
@metamask/design-system-shared 0.20.0
Added
- Added
FlashFilledicon (filled lightning bolt) toIconName, keeping the centralized icon set aligned across React and React Native (#1191) - Added
SelectButtonSizesoSelectButtonexposes a semantic size type shared across platforms (#1177) - Added
TextFieldPropsSharedfor the cross-platform text field input contract (#1170)
41.0.0
@metamask/design-system-react 0.23.1
Changed
- Updated the
Telegramicon asset to match the official Telegram logo (#1176)
@metamask/design-system-react-native 0.26.0
Added
- Added
TitleAlertfor alert-style headings with a severity icon, title row, and optional description in modals, bottom sheets, and other compact surfaces (#1131) - Added
SectionHeaderfor section titles with optional start and end accessories, icon shortcuts, and an inline title accessory (#1175) - Added
SectionDivideras a horizontal rule with a muted top border and default vertical spacing for separating screen sections (#1174)
Changed
- Updated the
Telegramicon asset to match the official Telegram logo (#1176)
@metamask/design-system-shared 0.19.0
Added
- Exported
TitleAlertPropsSharedfor cross-platform alert title layouts (#1131) - Exported
SectionHeaderPropsSharedfor cross-platform section heading layouts (#1175)
Changed
- Updated the shared
Telegramicon asset to match the official Telegram logo so React and React Native stay aligned (#1176)
40.0.0
@metamask/design-system-react 0.23.0
Added
- Added
PopoverHeaderfor popover title rows and trailing actions, aligned with MetaMask extension screen patterns (#1158) - Added
ModalHeaderfor modal title rows and accessory slots, aligned with MetaMask extension screen patterns (#1144) - Added
Labelfor accessible captions paired with form controls (#1152) - Added
SensitiveTextfor masking and revealing sensitive strings (addresses, secrets, recovery phrases) with configurable visible length (#1164) - Added
HelpTextfor helper, success, warning, and error copy beneath inputs and other controls (#1169)
Changed
ButtonBasenow derives label typography, start and end icon sizes, and internal spacing from thesizeprop for every supportedButtonBaseSize, keeping defaults aligned without manual per-size tuning (#1150)- If you wrap
ButtonBaseand override label, icon, or spacing, see Migration guide.
- If you wrap
BannerBaseclose control behavior is simplified and aligned with the shared dismiss contract (#1166)
@metamask/design-system-react-native 0.25.0
Added
- Added
SelectButton,SegmentButton, andSegmentGroupfor option rows, single-choice segments, and grouped segment controls (#1172) - Added
SensitiveTextfor masking and revealing sensitive strings, matching the cross-platform contract used on web (#1164) - Added
HeaderStandardAnimatedanduseHeaderStandardAnimatedfor standard headers with coordinated scroll-driven motion (#1151) - Added
TextAreafor multi-line text entry (#1141)
Changed
ButtonBasenow derives label typography, start and end icon sizes, and internal spacing from thesizeprop for every supportedButtonBaseSize, keeping defaults aligned without manual per-size tuning (#1150)- If you wrap
ButtonBaseand override label, icon, or spacing, see Migration guide.
- If you wrap
BannerBaseclose control behavior is simplified and aligned with the shared dismiss contract (#1166)
@metamask/design-system-shared 0.18.0
Added
- Exported
SelectButtonprop and variant types (SelectButtonPropsShared,SelectButtonVariant,SelectButtonEndArrow),SegmentGroupPropsShared, andSegmentGroupContextso mobile and web packages share one segment and select contract (#1172) - Exported
SensitiveTextLength,SensitiveTextPropsShared, and related types for cross-platform masking and reveal behavior (#1164) - Exported
HelpTextSeverity,HelpTextPropsShared, and related types for cross-platform helper and validation text (#1169) - Exported
TextAreaPropsSharedfor cross-platform multi-line input wrappers (#1141)
39.0.0
@metamask/design-system-react 0.22.0
Added
- Added
ModalanduseModalContextfor composing modal dialogs with focus management and the same layout patterns used in the MetaMask extension migration (#1136) - Added
ModalContent(withModalContentSizeandMODAL_CONTENT_IGNORE_OUTSIDE_CLICK_ATTR) for sized modal bodies, entrance motion, and outside-click handling aligned with that migration (#1139) - Added
Skeletonfor loading placeholders (#1146) - Added
HeaderBasefor flexible header layouts when migrating extension screens into the design system (#1142) - Added
ListArrow,Musd, andMusdFilledicons; refreshedCandlestick; and addedGroup,PieChart, andPredictionsicons (#1157, #1161, #1162, #1163)
@metamask/design-system-react-native 0.24.0
Added
- Added
ListArrow,Musd, andMusdFilledicons; refreshedCandlestick; and addedGroup,PieChart, andPredictionsicons (same names as in@metamask/design-system-react) (#1157, #1161, #1162, #1163)
Changed
- BREAKING: Tightened the
ToastAPI shipped withToasterin 0.23.0 (#1143)toast.show→toast(...);toast.hide→toast.dismiss()iconPropsrenamed toiconAlertPropsToastSeverity.Inforemoved; useDefault,Success,Warning, orDangerhasNoTimeoutis optional and defaults to auto-dismiss unless set totrue- Close control is always shown on the toast surface
- See Migration Guide
- Expanded
HeaderBasemigration guidance for apps moving off the mobile component library (#1100)
@metamask/design-system-shared 0.17.0
Added
- Added
ListArrow,Musd, andMusdFilledto the shared icon exports; refreshedCandlestick; and addedGroup,PieChart, andPredictionsso React and React Native stay aligned onIconName(#1157, #1161, #1162, #1163)
@metamask/design-system-tailwind-preset 0.8.0
Added
38.0.0
@metamask/design-system-react 0.21.0
Added
- Added
Mergeto the icon set so it can be used anywhereIconNameis supported in@metamask/design-system-react(#1155) - Added
ModalOverlay,ModalBody,ModalFocus, andModalFooterto help Extension consumers migrate modal building blocks into@metamask/design-system-react(#1120, #1121, #1128, #1132)
Changed
- Updated
Inputto use the shared cross-platform API. Consumers should pass a controlledvalue, useisReadOnlyas the readonly prop name, and stop relying ondefaultValueas part of the public component contract (#1043) - Updated
AvatarGroupto use shared cross-platform size and variant contracts, keeping React and React Native aligned on the same public API names and values (#1067)
@metamask/design-system-react-native 0.23.0
Added
- Added
Mergeto the icon set so it can be used anywhereIconNameis supported in@metamask/design-system-react-native(#1155)
Changed
- BREAKING: Redesigned
Toastto use a single mounted<Toast />plus staticToast.show(...)andToast.hide()methods for application usage (#1104)- Removed
ToastContext,ToastContextWrapper, andToastContextParamsfrom the public export surface - Renamed
ToastVariantstoToastVariant, changed icon-only close buttons toToastCloseButtonVariant.Icon, and renamedcustomBottomOffsettobottomOffset Toast.show()andToast.hide()now throw a descriptive error if called before<Toast />mounts- See Migration Guide
- Removed
- Updated
Inputto use the shared cross-platform API. Consumers should pass a controlledvalue, replaceisReadonlywithisReadOnly, and use the shared state-style behavior expected by wrappers likeTextField(#1043) - Updated
AvatarGroupto use shared cross-platform size and variant contracts, keeping React and React Native aligned on the same public API names and values (#1067)
@metamask/design-system-shared 0.16.0
Added
- Added
Mergeto the shared icon exports so React and React Native consumers can access it through their existingIconNameAPIs (#1155) - Added shared
Inputcontracts for a controlledvalue,isReadOnly, andisStateStylesDisabled, making it easier to build cross-platform wrappers against one public input API (#1043) - Added shared
AvatarGroupsize, variant, and prop contracts for consumers building cross-platform abstractions on top of@metamask/design-system-shared(#1067)
@metamask/design-system-tailwind-preset 0.7.0
Added
- Added a
fade-inanimation utility so consumers can useanimate-fade-infor simple opacity entrance transitions, including the newModalOverlayweb migration path (#1120)
Changed
- Clarified the migration path for consumers moving to Tailwind CSS v4. Existing Tailwind v3 projects can keep using this preset, while Tailwind v4 projects should move to
@metamask/design-tokens/tailwind/theme.cssinstead (#1117)
@metamask/design-tokens 8.4.0
Added
- Added
@metamask/design-tokens/tailwind/theme.cssfor Tailwind CSS v4, giving consumers a single import for MetaMask token variables, theme values, typography utilities, font utilities, and shadow utilities. See the migration guide for upgrade steps (#1117)
37.0.0
@metamask/design-system-react 0.20.0
Changed
- BREAKING: Updated
Button,ButtonBase, andButtonHerosize and variant exports to use shared const-object + string-union types rather than platform-local enum-based definitions, aligning React with the shared cross-platform type contracts (#1034)- 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
- BREAKING: Updated
ButtonIconSizeandButtonIconVariantto use shared const-object + string-union types rather than platform-local enum-based definitions, aligning React with the shared cross-platform type contracts (#1038)- 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 Figma Code Connect to the live
MMDS Componentsfile and alignedButtonIconandTextButtonmappings with the current component APIs shown in Dev Mode (#1109) - Expanded the
TextButtonmigration guide for extension consumers replacingButtonLinkandButtonVariant.Linkwith the current design-system APIs (#1098)
@metamask/design-system-react-native 0.22.0
Changed
- BREAKING: Updated
Button,ButtonBase, andButtonHerosize and variant exports to use shared const-object + string-union types rather than platform-local enum-based definitions, aligning React Native with the shared cross-platform type contracts (#1034)- 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
- BREAKING: Updated
ButtonIconSizeandButtonIconVariantto use shared const-object + string-union types rather than platform-local enum-based definitions, aligning React Native with the shared cross-platform type contracts (#1038)- 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
- BREAKING:
TextFieldandTextFieldSearchnow use a rootBox/View, require nativeTextInputprops underinputProps, renameisReadonlytoisReadOnly, and useinputReffor the inner input ref. See Migration Guide (#1081) - Updated Figma Code Connect to the live
MMDS Componentsfile and alignedButtonIconandTextButtonmappings with the current component APIs shown in Dev Mode (#1109)
@metamask/design-system-shared 0.15.0
Added
- Added shared
ButtonBaseSize,ButtonSize,ButtonHeroSize,ButtonVariant,ButtonBasePropsShared, andButtonPropsSharedexports so React and React Native button APIs can share one cross-platform type contract (#1034) - Added shared
ButtonIconSize,ButtonIconVariant, andButtonIconPropsSharedexports so React and React NativeButtonIconAPIs can share one cross-platform type contract (#1038) - Added shared
TextFieldPropsSharedfor the controlled text-field contract used byTextFieldandTextFieldSearchacross platform packages (#1081)
36.0.0
@metamask/design-system-react 0.19.0
Added
- Added
Telegramto theIconNameset for use anywhere the React package accepts design system icons (#1122)
Changed
- BREAKING: Updated
AvatarIconexports to use shared const-object + string-union types rather than local enum-based definitions, aligning React with the shared cross-platform type contracts (#996)- 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
@metamask/design-system-react-native 0.21.0
Added
- Added
Telegramto theIconNameset for use anywhere the React Native package accepts design system icons (#1122)
Changed
- BREAKING: Updated
AvatarIconexports to use shared const-object + string-union types rather than local enum-based definitions, aligning React Native with the shared cross-platform type contracts (#996)- 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
@metamask/design-system-shared 0.14.0
Added
- Added
Telegramto the shared icon exports so both platform packages can consume it through their existingIconNameAPIs (#1122) - Added shared
BadgeIconPropsSharedtypes soBadgeIconnow uses one cross-platform prop contract in React and React Native (#1010) - Added shared
AvatarIconcontracts, includingAvatarIconPropsShared,AvatarIconSize, andAvatarIconSeverity, so both platform packages consume the same canonical type definitions (#996)
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