Skip to content

fix: align ButtonIcon sizes to Md in header components#43523

Draft
georgewrmarshall wants to merge 10 commits into
mainfrom
button-icon-size-alignemnt-followup
Draft

fix: align ButtonIcon sizes to Md in header components#43523
georgewrmarshall wants to merge 10 commits into
mainfrom
button-icon-size-alignemnt-followup

Conversation

@georgewrmarshall

@georgewrmarshall georgewrmarshall commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Description

Follow-up to #43516 which aligned the core ButtonIcon component dimensions with the MetaMask Design System React spec. This PR updates all page-level header usages of ButtonIcon that were still using ButtonIconSize.Sm instead of the correct ButtonIconSize.Md.

Legacy — Extension & Mobile component-library (before #43516):

ButtonIconSize Button container Icon size
Sm 24×24px 16×16px
Md 28×28px 20×20px
Lg 32×32px 24×24px

Design system (React & React Native — target values):

ButtonIconSize Button container Icon size
Sm 24×24px 20×20px
Md 32×32px 24×24px
Lg 40×40px 32×32px

Files updated (ButtonIconSize.SmButtonIconSize.Md in header startAccessory/endAccessory):

  • ui/components/component-library/modal-header/deprecated/modal-header.tsx — back + close
  • ui/components/component-library/header-base/header-base.stories.tsx — back + close (story examples)
  • ui/components/multichain/pages/page/page.stories.tsx — back (story examples)
  • ui/components/multichain/pages/gator-permissions/gator-permissions-page.tsx — back
  • ui/components/multichain/pages/gator-permissions/review-permissions/review-gator-permissions-page.tsx — back
  • ui/components/multichain/pages/gator-permissions/token-transfer/token-transfer-page.tsx — back
  • ui/components/app/assets/nfts/nft-details/nft-full-image.tsx — close
  • ui/pages/batch-sell/batch-sell-page.tsx — back
  • ui/pages/bridge/index.tsx — back + settings
  • ui/pages/bridge/transaction-details/transaction-details.tsx — back
  • ui/pages/settings/shared/settings-header.tsx — back
  • ui/pages/token-management/token-management.tsx — back

Note: ButtonIconSize.Sm intentionally retained in non-header contexts (text fields, search inputs, banners) where the smaller size is appropriate.

Changelog

CHANGELOG entry: null

Related issues

Fixes:

Manual testing steps

  1. Navigate to each updated page (Bridge, Settings, Token Management, Batch Sell, NFT details, Gator permissions)
  2. Verify the back/close button in the header renders at 32×32px container with 24×24px icon, consistent with the design system spec

Screenshots/Recordings

Before

before720.mov

After

after720.mov

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

@github-actions

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@mm-token-exchange-service mm-token-exchange-service Bot added the team-design-system All issues relating to design system in Extension label Jun 12, 2026
@mm-token-exchange-service

mm-token-exchange-service Bot commented Jun 12, 2026

Copy link
Copy Markdown

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (1 files, +1 -1)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 components/
          • 📁 send/
            • 📁 header/
              • 📄 header.tsx +1 -1

👨‍🔧 @MetaMask/core-extension-ux (13 files, +123 -21)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 global-menu-drawer/
          • 📄 global-menu-drawer.tsx +1 -1
        • 📁 pages/
          • 📁 gator-permissions/
            • 📁 __snapshots__/
              • 📄 gator-permissions-page.test.tsx.snap +2 -2
            • 📁 review-permissions/
              • 📁 __snapshots__/
                • 📄 review-gator-permissions-page.test.tsx.snap +2 -2
                • 📄 review-gator-permissions-page.stories.tsx +34 -0
                • 📄 review-gator-permissions-page.tsx +1 -1
            • 📁 token-transfer/
              • 📁 __snapshots__/
                • 📄 token-transfer-page.test.tsx.snap +2 -2
                • 📄 token-transfer-page.stories.tsx +34 -0
                • 📄 token-transfer-page.tsx +1 -1
              • 📄 gator-permissions-page.stories.tsx +34 -0
              • 📄 gator-permissions-page.tsx +1 -1
          • 📁 page/
            • 📁 components/
              • 📁 header/
                • 📄 header.stories.tsx +6 -6
              • 📄 page.stories.tsx +4 -4
    • 📁 pages/
      • 📁 settings/
        • 📁 shared/
          • 📄 settings-header.tsx +1 -1

🫰 @MetaMask/core-platform (1 files, +1 -1)
  • 📁 ui/
    • 📁 pages/
      • 📁 snaps/
        • 📁 snaps-list/
          • 📄 snap-list.js +1 -1

🎨 @MetaMask/design-system-engineers (2 files, +14 -14)
  • 📁 ui/
    • 📁 components/
      • 📁 component-library/
        • 📁 header-base/
          • 📄 header-base.stories.tsx +12 -12
        • 📁 modal-header/
          • 📁 deprecated/
            • 📄 modal-header.tsx +2 -2

💎 @MetaMask/metamask-assets (5 files, +9 -9)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 assets/
          • 📁 nfts/
            • 📁 nft-details/
              • 📁 __snapshots__/
                • 📄 nft-details.test.js.snap +4 -4
                • 📄 nft-full-image.test.js.snap +2 -2
                • 📄 nft-details.tsx +1 -1
                • 📄 nft-full-image.tsx +1 -1
            • 📁 nft-options/
              • 📄 nft-options.tsx +1 -1

📜 @MetaMask/policy-reviewers (2 files, +7 -7)
  • 📁 lavamoat/
    • 📁 build-system/
      • 📄 policy.json +5 -5
    • 📁 webpack/
      • 📁 build/
        • 📄 policy.json +2 -2

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🔄 @MetaMask/swaps-engineers (4 files, +41 -7)
  • 📁 ui/
    • 📁 pages/
      • 📁 bridge/
        • 📁 __snapshots__/
          • 📄 index.test.tsx.snap +4 -4
        • 📁 transaction-details/
          • 📄 transaction-details.stories.tsx +34 -0
          • 📄 transaction-details.tsx +1 -1
          • 📄 index.tsx +2 -2

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.

Before / After

Captured using MetaMask Extension Storybook. Before = hosted main · After = this PR branch. Pink border highlights the component root.

Before
Before

After
After

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.

Before / After

Captured using MetaMask Extension Storybook. Before = hosted main · After = this PR branch. Pink border highlights the component root.

Before
Before

After
After

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.

Before / After

Captured using MetaMask Extension Storybook. Before = hosted main · After = this PR branch. Pink border highlights the component root.

Before
Before

After
After

@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [2632b28] [reused from 062edfc]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 6 warn · 🔴 0 fail)

Baseline (latest main): c649761 | Date: 6/12/2026 | Pipeline: 27444784221 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: +11%
  • loadNewAccount/total: +11%
  • confirmTx/inp: -10%
  • bridgeUserActions/bridge_load_page: -12%
  • bridgeUserActions/tbt: +11%
  • bridgeUserActions/inp: -33%
  • loadNewAccount/load_new_account: +45%
  • loadNewAccount/total: +45%
  • loadNewAccount/inp: +54%
  • loadNewAccount/lcp: +1162%
  • confirmTx/confirm_tx: +12%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +12%
  • confirmTx/inp: +20%
  • confirmTx/lcp: +1072%
  • bridgeUserActions/bridge_load_page: +54%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/fcp: -45%
  • bridgeUserActions/lcp: +1151%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 confirmTx/FCP: p75 1.8s
Startup Benchmarks · Samples: 100

⚠️ Missing data: firefox/webpack/startupPowerUserHome

Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/inp: +56%
  • startupPowerUserHome/domInteractive: +10%
  • startupPowerUserHome/numNetworkReqs: +11%
  • startupStandardHome/uiStartup: -18%
  • startupStandardHome/load: -18%
  • startupStandardHome/domContentLoaded: -18%
  • startupStandardHome/backgroundConnect: -16%
  • startupStandardHome/firstReactRender: -19%
  • startupStandardHome/loadScripts: -18%
  • startupStandardHome/setupStore: -17%
  • startupStandardHome/lcp: -18%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 480ms
User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyTransactions

Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -96%
  • onboardingImportWallet/longTaskCount: -77%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -88%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -84%
  • onboardingNewWallet/skipBackupToMetricsScreen: +13%
  • onboardingNewWallet/doneButtonToAssetList: -31%
  • onboardingNewWallet/longTaskTotalDuration: -32%
  • onboardingNewWallet/longTaskMaxDuration: -30%
  • onboardingNewWallet/tbt: -67%
  • onboardingNewWallet/total: -27%
  • solanaAssetDetails/assetClickToPriceChart: -46%
  • solanaAssetDetails/longTaskCount: +150%
  • solanaAssetDetails/longTaskTotalDuration: +159%
  • solanaAssetDetails/longTaskMaxDuration: +159%
  • solanaAssetDetails/tbt: +168%
  • solanaAssetDetails/total: -46%
  • solanaAssetDetails/lcp: -13%
  • solanaAssetDetails/cls: -89%
  • importSrpHome/loginToHomeScreen: -23%
  • importSrpHome/openAccountMenuAfterLogin: +42%
  • importSrpHome/homeAfterImportWithNewWallet: -37%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -35%
  • importSrpHome/longTaskMaxDuration: -28%
  • importSrpHome/tbt: -40%
  • importSrpHome/total: -35%
  • importSrpHome/inp: -25%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: 20 Bytes (0%)

@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [534aefc]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 9 warn · 🔴 1 fail)

Baseline (latest main): c649761 | Date: 6/12/2026 | Pipeline: 27446361468 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
🔴 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • bridgeUserActions/bridge_load_asset_picker: -13%
  • bridgeUserActions/tbt: -20%
  • bridgeUserActions/inp: +19%
  • loadNewAccount/load_new_account: +550%
  • loadNewAccount/total: +550%
  • loadNewAccount/inp: -13%
  • loadNewAccount/lcp: +1119%
  • confirmTx/confirm_tx: +13%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +13%
  • confirmTx/fcp: +13%
  • confirmTx/lcp: +1126%
  • bridgeUserActions/bridge_load_page: +87%
  • bridgeUserActions/bridge_load_asset_picker: +70%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +185%
  • bridgeUserActions/inp: -25%
  • bridgeUserActions/fcp: +12%
  • bridgeUserActions/lcp: +1225%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 loadNewAccount/FCP: p75 1.8s
  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 bridgeUserActions/FCP: p75 1.9s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/firstPaint: +17%
  • startupStandardHome/lcp: +18%
  • startupPowerUserHome/setupStore: +10%
  • startupPowerUserHome/numNetworkReqs: +14%
  • startupStandardHome/domInteractive: +17%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/fcp: +17%
  • startupPowerUserHome/backgroundConnect: -52%
  • startupPowerUserHome/setupStore: +25%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 496ms
  • 🟡 startupPowerUserHome/LCP: p75 2.7s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -28%
  • onboardingImportWallet/confirmSrpToPwForm: -31%
  • onboardingImportWallet/pwFormToMetricsScreen: -29%
  • onboardingImportWallet/metricsToWalletReadyScreen: -30%
  • onboardingImportWallet/doneButtonToHomeScreen: -87%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -100%
  • onboardingImportWallet/longTaskTotalDuration: -100%
  • onboardingImportWallet/longTaskMaxDuration: -100%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/doneButtonToAssetList: -32%
  • onboardingNewWallet/longTaskCount: -55%
  • onboardingNewWallet/longTaskTotalDuration: -59%
  • onboardingNewWallet/longTaskMaxDuration: -31%
  • onboardingNewWallet/tbt: -68%
  • onboardingNewWallet/total: -27%
  • solanaAssetDetails/assetClickToPriceChart: -42%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -42%
  • solanaAssetDetails/cls: -89%
  • importSrpHome/loginToHomeScreen: -23%
  • importSrpHome/openAccountMenuAfterLogin: +43%
  • importSrpHome/homeAfterImportWithNewWallet: -40%
  • importSrpHome/longTaskCount: -22%
  • importSrpHome/longTaskTotalDuration: -33%
  • importSrpHome/longTaskMaxDuration: -19%
  • importSrpHome/tbt: -37%
  • importSrpHome/total: -36%
  • importSrpHome/inp: -31%
  • sendTransactions/openSendPageFromHome: +90%
  • sendTransactions/selectTokenToSendFormLoaded: +54%
  • sendTransactions/inp: -39%
  • sendTransactions/cls: -88%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: 20 Bytes (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.

After (new story)

New story added for visual regression — no hosted baseline exists. Pink border highlights the component root.

After

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.

After (new open-state story)

New OpenState story added to capture the drawer header with close button visible. No hosted baseline exists for this variant. Pink border highlights the component root.

After

iconName={IconName.ArrowLeft}
ariaLabel={t('back')}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}

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.

Revert this

color={IconColor.iconDefault}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
ariaLabel={t('back')}

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.

ImageImage

color={IconColor.iconAlternative}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
ariaLabel={t('back')}

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.

Image

className="customize-nonce-modal__close"
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
ariaLabel={t('close')}

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.

Image Image

marginRight={1}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
ariaLabel={t('back')}

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.

Image

@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [3af1cfe]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 7 warn · 🔴 2 fail)

Baseline (latest main): 5682526 | Date: 6/13/2026 | Pipeline: 27455604994 | Baseline logs

Metricschrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 inp(p95) [CI log]🔴 load_new_account(p95) [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 2 failures)

Interaction Benchmarks · Samples: 5 🔴 1
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🔴 [CI log]
🔴 load_new_account
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 bridge_search_token

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/inp: +37%
  • loadNewAccount/fcp: +20%
  • loadNewAccount/lcp: +12%
  • bridgeUserActions/bridge_load_page: -11%
  • bridgeUserActions/tbt: -11%
  • bridgeUserActions/inp: -24%
  • loadNewAccount/load_new_account: +744%
  • loadNewAccount/total: +744%
  • loadNewAccount/lcp: +1042%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/fcp: -46%
  • confirmTx/lcp: +1078%
  • bridgeUserActions/bridge_load_page: +75%
  • bridgeUserActions/bridge_load_asset_picker: +77%
  • bridgeUserActions/bridge_search_token: +235%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +195%
  • bridgeUserActions/inp: +21%
  • bridgeUserActions/lcp: +1152%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.1s
  • 🟡 confirmTx/FCP: p75 1.8s
  • 🟡 loadNewAccount/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupPowerUserHome/backgroundConnect: +10%
  • startupPowerUserHome/numNetworkReqs: -30%
  • startupPowerUserHome/uiStartup: -14%
  • startupPowerUserHome/load: -23%
  • startupPowerUserHome/domContentLoaded: -23%
  • startupPowerUserHome/domInteractive: -35%
  • startupPowerUserHome/backgroundConnect: -43%
  • startupPowerUserHome/firstReactRender: -29%
  • startupPowerUserHome/loadScripts: -23%
  • startupPowerUserHome/inp: -28%
  • startupPowerUserHome/fcp: -25%
  • startupPowerUserHome/lcp: -17%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 504ms
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/doneButtonToHomeScreen: -87%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -97%
  • onboardingImportWallet/longTaskCount: -77%
  • onboardingImportWallet/longTaskTotalDuration: -93%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/doneButtonToAssetList: -26%
  • onboardingNewWallet/longTaskTotalDuration: -44%
  • onboardingNewWallet/longTaskMaxDuration: -25%
  • onboardingNewWallet/tbt: -59%
  • onboardingNewWallet/total: -21%
  • solanaAssetDetails/assetClickToPriceChart: -44%
  • solanaAssetDetails/longTaskCount: +400%
  • solanaAssetDetails/longTaskTotalDuration: +420%
  • solanaAssetDetails/longTaskMaxDuration: +420%
  • solanaAssetDetails/tbt: +442%
  • solanaAssetDetails/total: -44%
  • solanaAssetDetails/inp: -31%
  • solanaAssetDetails/cls: -89%
  • importSrpHome/loginToHomeScreen: -28%
  • importSrpHome/openAccountMenuAfterLogin: +26%
  • importSrpHome/homeAfterImportWithNewWallet: -35%
  • importSrpHome/longTaskCount: -22%
  • importSrpHome/longTaskTotalDuration: -34%
  • importSrpHome/longTaskMaxDuration: -29%
  • importSrpHome/tbt: -36%
  • importSrpHome/total: -33%
  • sendTransactions/selectTokenToSendFormLoaded: +12%
  • sendTransactions/longTaskTotalDuration: +17%
  • sendTransactions/tbt: +39%
  • sendTransactions/inp: -37%
  • sendTransactions/cls: -89%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 232ms
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: -26%
  • dappPageLoad/domContentLoaded: -21%
  • dappPageLoad/firstPaint: -14%
  • dappPageLoad/firstContentfulPaint: -14%
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: -22 Bytes (0%)

onClick={() => navigate(PREVIOUS_ROUTE)}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
/>

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.

Image

onClick={() => navigate(PREVIOUS_ROUTE)}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
/>

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.

Image

onClick={handleBack}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
/>

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.

Image

iconName={IconName.ArrowLeft}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
ariaLabel={t('back')}

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.

Image

Comment thread ui/pages/bridge/index.tsx
iconName={IconName.Setting}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
ariaLabel={t('settings')}

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.

Image

ariaLabel={t('back')}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
onClick={onClose}

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.

Image

iconName={IconName.ArrowLeft}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
ariaLabel={t('back')}

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.

Image

ariaLabel={t('back')}
size={ButtonIconSize.Sm}
size={ButtonIconSize.Md}
data-testid="token-management-header-back-button"

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.

Image

HowardBraham and others added 2 commits June 14, 2026 21:16
## **Description**

- Update `tsx` from `4.21.0` to `4.22.4`, which updates the vulnerable
`esbuild` from `0.27.7` to `0.28.0`
- Resolution to pin `esbuild` one patch version higher, to `0.28.1`
- **IMPORTANT:** This could cause `storybook` to break, as we're on a
very old version of `storybook`, and we're forcing its `esbuild` from
`0.18.20` to `0.28.1`. But a smoke test seemed to be okay, and its
passing tests.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes:  #43521

<!--## **Manual testing steps**
## **Screenshots/Recordings**
## **Pre-merge author checklist**
## **Pre-merge reviewer checklist**-->

---------

Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
@georgewrmarshall georgewrmarshall marked this pull request as ready for review June 15, 2026 04:16
@georgewrmarshall georgewrmarshall requested review from a team as code owners June 15, 2026 04:16
@georgewrmarshall georgewrmarshall marked this pull request as draft June 15, 2026 04:17
@mm-token-exchange-service

Copy link
Copy Markdown
Builds ready [9bad218]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 18 pass · 🟡 6 warn · 🔴 1 fail)

Baseline (latest main): 5682526 | Date: 6/13/2026 | Pipeline: 27523637957 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: +79%
  • loadNewAccount/total: +79%
  • confirmTx/inp: -10%
  • bridgeUserActions/bridge_load_page: -14%
  • bridgeUserActions/inp: -32%
  • loadNewAccount/inp: -22%
  • loadNewAccount/fcp: -70%
  • loadNewAccount/lcp: +806%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -30%
  • confirmTx/fcp: -63%
  • confirmTx/lcp: +888%
  • bridgeUserActions/bridge_load_page: +21%
  • bridgeUserActions/bridge_load_asset_picker: +42%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/inp: +29%
  • bridgeUserActions/fcp: -74%
  • bridgeUserActions/lcp: +879%
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupPowerUserHome/numNetworkReqs: -32%
  • startupPowerUserHome/inp: +16%
  • startupPowerUserHome/backgroundConnect: -10%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 568ms
  • 🟡 startupPowerUserHome/LCP: p75 3.1s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/doneButtonToHomeScreen: -87%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -55%
  • onboardingImportWallet/longTaskTotalDuration: -87%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/skipBackupToMetricsScreen: +13%
  • onboardingNewWallet/doneButtonToAssetList: -27%
  • onboardingNewWallet/longTaskTotalDuration: -32%
  • onboardingNewWallet/longTaskMaxDuration: -16%
  • onboardingNewWallet/tbt: -46%
  • onboardingNewWallet/total: -23%
  • solanaAssetDetails/assetClickToPriceChart: -45%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -45%
  • solanaAssetDetails/cls: -89%
  • importSrpHome/loginToHomeScreen: -29%
  • importSrpHome/openAccountMenuAfterLogin: +24%
  • importSrpHome/homeAfterImportWithNewWallet: -34%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -32%
  • importSrpHome/longTaskMaxDuration: -15%
  • importSrpHome/tbt: -33%
  • importSrpHome/total: -31%
  • importSrpHome/inp: -19%
  • importSrpHome/lcp: +12%
  • sendTransactions/selectTokenToSendFormLoaded: +49%
  • sendTransactions/longTaskMaxDuration: -10%
  • sendTransactions/inp: -30%
  • sendTransactions/cls: -89%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 5 Bytes (0%)
  • common: -22 Bytes (0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low size-M team-design-system All issues relating to design system in Extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants