Skip to content

[WIP] v3 uplift - #3075

Open
abjt14 wants to merge 137 commits into
mainfrom
v3-uplift
Open

[WIP] v3 uplift#3075
abjt14 wants to merge 137 commits into
mainfrom
v3-uplift

Conversation

@abjt14

@abjt14 abjt14 commented Jul 21, 2026

Copy link
Copy Markdown

No description provided.

abjt14 added 29 commits July 16, 2026 08:14
…e transition

Phase 1 of a unified overlay motion system. A shared ScaleFade transition
(opacity 0→1 + scale 0.96→1, modeled on MUI's Grow) is wired as the default
TransitionComponent for MuiMenu and MuiPopover at 100ms, so all menus, selects
and popovers pop consistently instead of using MUI's default Grow. Timing lives
in a single motion-tokens module.

- src/utils/motion.ts: central duration/easing tokens (single source of truth)
- ScaleFade: MUI-compatible transition primitive (scale 0.96, not Grow's 0.75)
- theme: MuiMenu/MuiPopover transition defaults + global prefers-reduced-motion
- showcase: Select/Menu specimens in the Overlays section

Modals and drawers are intentionally untouched (deferred to later phases).
The outlined variant sets border:none at rest, but its :hover block only changed
background + re-asserted the box-shadow ring, so MUI's built-in
.MuiButton-outlinedPrimary:hover border leaked through on hover only. Force
border:none in the hover/focus block so the borderless pill stays borderless.
…radients

- figmaColors.ts: single source of truth for color tokens + the figVars var() accessor.

- theme.tsx: flatten tokens onto the MUI CssVars palette (P3 + sRGB fallback); emit P3 vars.

- colorToP3.ts: Display-P3 conversion for the @supports P3 override layer.

- gradients slot/type removed; the new branding uses the solid purple-1 token.
Sweep explicit color reads onto flattened figma tokens (bare sx strings / figVars) for P3.

Also swaps the brand gradient for the solid purple-1 token in the affected components.
Same token sweep across module components for Display-P3 with sRGB fallback.

Swaps the brand gradient for purple-1 in the E-Mode button, StakeActionBox and version badge.
Token sweep across layouts; swaps the newGradient banner for purple-1 in TopBarNotify.
Buttons, icon and toggle buttons scale to 0.99 on :active (not disabled) via a shared fragment.

MarketSwitcher's custom Box trigger gets the same press feedback inline.
DotsHorizontalIcon: currentColor meatball icon replacing the '...' text supply dropdown.

iconButtonSx (buttonStyles.ts): square icon-only button styling (min-width 0, 0.25rem pad).

Desktop table action buttons across the four dashboard lists set to size=small.
@abjt14 abjt14 self-assigned this Jul 21, 2026
Tapping the "Used as collateral" row on the dashboard card now opens the
collateral-change modal, not just the switch itself. Applied only when
the toggle is actionable, so a disabled control does not leave a row that
looks tappable and does nothing.

The switch stops its own click from bubbling. Both handlers call
openCollateralChange, which fires a trackEvent, so without that every tap
on the switch would have reported the modal open twice.

Isolated assets keep the switch as the only target: that variant renders
an IsolatedEnabledBadge beside it, and the badge is a tap-to-open tooltip
on every device, so a row-wide handler would swallow its tap.

No role or tabIndex on the row — the switch is already the keyboard path
for this action, and a focusable wrapper would add a second tab stop and
a second announcement for one control.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +14.8 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.69 KB (🟢 -4.35 KB) 1.43 MB
/404 2.1 KB (🟢 -754 B) 1.34 MB
/500 2.43 KB (🟢 -757 B) 1.34 MB
/bridge 37.87 KB (🟡 +137 B) 1.37 MB
/dashboard 81.65 KB (🟢 -3.96 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.75 KB) 1.35 MB
/governance 42.6 KB (🟢 -352 B) 1.38 MB
/governance/ipfs-preview 99.27 KB (🟢 -2.39 KB) 1.43 MB
/governance/v3/proposal 85.68 KB (🟢 -3.11 KB) 1.42 MB
/history 32.52 KB (🟢 -3.82 KB) 1.37 MB
/markets 52.79 KB (🟢 -2.13 KB) 1.39 MB
/reserve-overview 38.77 KB (🟢 -1.08 KB) 1.37 MB
/safety-module 55.13 KB (🟢 -1.34 KB) 1.39 MB
/sgho 92.21 KB (🟢 -830 B) 1.43 MB
/staking 31.23 KB (🟢 -2.26 KB) 1.37 MB
/v3-migration 48.46 KB (🟢 -4.22 KB) 1.38 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

… text

The reserve header's icon-and-text cluster is a flex item of a column
container with align-items: flex-start, so it is not stretched — its
width resolves against indefinite space and lands on max-content, i.e.
the full untruncated name. Nothing was ever over-constrained, so the
minWidth: 0 chain had nothing to shrink and the contract links ran off
the page. maxWidth: 100% pins it to the container; the existing minWidth
chain then resolves the overflow into the name, which already had noWrap
and a tooltip waiting.

The symbol beside it needed the same, and had two problems: flexShrink: 0
meant every pixel of shrink fell on the name while the symbol kept its
full width, and DarkTooltip renders its child inside a bare div, so the
div — not the Typography — is the flex item. Putting noWrap and
minWidth: 0 on the Typography was a level too deep to reach the shrink
chain. It now mirrors the name exactly: a clipping wrapper outside the
tooltip, ellipsis and tooltip inside.

Separately, the markets row's asset symbol was on subheader2 while the
USD sub-values beside it are on description — two points smaller and a
weight heavier for two lines that read as the same tier. It also carried
the same 3.625px band that came off ReserveSubheader earlier, which
staggered the two second lines by a pixel. Both gone.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +14.8 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.66 KB (🟢 -4.38 KB) 1.43 MB
/404 2.1 KB (🟢 -754 B) 1.34 MB
/500 2.43 KB (🟢 -757 B) 1.34 MB
/bridge 37.87 KB (🟡 +137 B) 1.37 MB
/dashboard 81.65 KB (🟢 -3.96 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.75 KB) 1.35 MB
/governance 42.6 KB (🟢 -352 B) 1.38 MB
/governance/ipfs-preview 99.27 KB (🟢 -2.39 KB) 1.43 MB
/governance/v3/proposal 85.68 KB (🟢 -3.11 KB) 1.42 MB
/history 32.52 KB (🟢 -3.82 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.78 KB (🟢 -1.07 KB) 1.37 MB
/safety-module 55.13 KB (🟢 -1.34 KB) 1.39 MB
/sgho 92.21 KB (🟢 -830 B) 1.43 MB
/staking 31.23 KB (🟢 -2.26 KB) 1.37 MB
/v3-migration 48.46 KB (🟢 -4.22 KB) 1.38 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

It sat directly against the voters list with no top margin, while the
Forum discussion button below it — the other full-width tertiary button
in the same sidebar — carries mt: 4. Match it.

The voters list keeps a few pixels of its own py gutter for the scroll
mask, so the two are equal by margin rather than pixel-identical.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +14.8 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.66 KB (🟢 -4.38 KB) 1.43 MB
/404 2.1 KB (🟢 -754 B) 1.34 MB
/500 2.43 KB (🟢 -757 B) 1.34 MB
/bridge 37.87 KB (🟡 +137 B) 1.37 MB
/dashboard 81.65 KB (🟢 -3.96 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.75 KB) 1.35 MB
/governance 42.6 KB (🟢 -352 B) 1.38 MB
/governance/ipfs-preview 99.27 KB (🟢 -2.39 KB) 1.43 MB
/governance/v3/proposal 85.68 KB (🟢 -3.11 KB) 1.42 MB
/history 32.52 KB (🟢 -3.82 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.78 KB (🟢 -1.07 KB) 1.37 MB
/safety-module 55.13 KB (🟢 -1.34 KB) 1.39 MB
/sgho 92.21 KB (🟢 -830 B) 1.43 MB
/staking 31.23 KB (🟢 -2.26 KB) 1.37 MB
/v3-migration 48.46 KB (🟢 -4.22 KB) 1.38 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

gap applies to both axes, so when the reserve overview's stats wrap the
new row inherited the 40px column spacing vertically. Split it the way
PageHeader already does — columnGap 2.5rem, rowGap 1rem — so the two
page-header families agree.

TopInfoPanel's own children wrapper has the same symmetric gap but every
consumer passes a single child, building its header through
titleComponent instead, so there is no gap to apply and it is left alone.

Worth noting pageBandSx exists because PageHeader and TopInfoPanel have
drifted before; it covers the band only, and the stats-row gaps are still
declared separately in both files.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +14.8 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.66 KB (🟢 -4.38 KB) 1.43 MB
/404 2.1 KB (🟢 -754 B) 1.34 MB
/500 2.43 KB (🟢 -757 B) 1.34 MB
/bridge 37.87 KB (🟡 +137 B) 1.37 MB
/dashboard 81.65 KB (🟢 -3.96 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.75 KB) 1.35 MB
/governance 42.6 KB (🟢 -352 B) 1.38 MB
/governance/ipfs-preview 99.27 KB (🟢 -2.39 KB) 1.43 MB
/governance/v3/proposal 85.68 KB (🟢 -3.11 KB) 1.42 MB
/history 32.52 KB (🟢 -3.82 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.81 KB (🟢 -1.05 KB) 1.37 MB
/safety-module 55.13 KB (🟢 -1.34 KB) 1.39 MB
/sgho 92.21 KB (🟢 -830 B) 1.43 MB
/staking 31.23 KB (🟢 -2.26 KB) 1.37 MB
/v3-migration 48.46 KB (🟢 -4.22 KB) 1.38 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

…re it

The button positions itself with transform: translateY(-130%), and the
theme gives every MuiIconButton a press rule that sets transform:
scale(0.99) on :active. transform is one property and the theme's
selector outranks the sx, so mousedown replaced the offset outright: the
button animated ~47px down, out from under the pointer, so mouseup landed
elsewhere and no click event reached onSwitchReserves. The jump and the
dead button were the same bug. Composing the two transforms in the active
rule keeps the offset through the press.

Also nudges the button and its progress ring up 6px, which is where they
should have been sitting between the two inputs.

Only the limit tab does this — the market tab's equivalent button needs
no transform, so it never collided.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +14.77 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.66 KB (🟢 -4.38 KB) 1.43 MB
/404 2.1 KB (🟢 -754 B) 1.34 MB
/500 2.43 KB (🟢 -757 B) 1.34 MB
/bridge 37.87 KB (🟡 +137 B) 1.37 MB
/dashboard 81.65 KB (🟢 -3.96 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.75 KB) 1.35 MB
/governance 42.6 KB (🟢 -352 B) 1.38 MB
/governance/ipfs-preview 99.27 KB (🟢 -2.39 KB) 1.43 MB
/governance/v3/proposal 85.68 KB (🟢 -3.11 KB) 1.42 MB
/history 32.52 KB (🟢 -3.82 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.81 KB (🟢 -1.05 KB) 1.37 MB
/safety-module 55.13 KB (🟢 -1.34 KB) 1.39 MB
/sgho 92.21 KB (🟢 -830 B) 1.43 MB
/staking 31.23 KB (🟢 -2.26 KB) 1.37 MB
/v3-migration 48.46 KB (🟢 -4.22 KB) 1.38 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

Square the proposal share buttons: below lg they drop their label but kept
MUI's 64px min-width and the theme's side padding, so they rendered as
rectangles with the icon off centre. iconButtonSx already existed for
this; the startIcon slot-margin reset it needs folds into the recipe,
which also deletes the second copy in AppHeader. No-op for the consumer
that passes its icon as a child.

Double the gap between a mobile card's two action buttons, 6px to 12px,
matching the staking panel. It was written three ways — mr on the first
child, ml on the second, and the loader's own mr — so it moves to one
mobileCardActionsSx next to the deposit-row recipes. The loader is the
reason: it holds Skeletons, so a tweak made while looking at a real card
would have missed it and the swap would visibly jump. justifyContent
space-between and alignItems center go with it; both children are
fullWidth with explicit heights, so neither had anything to do.

Stop AssetCategoryMultiSelect forcing its own trigger to full width below
sm. A shared control hardcoding one consumer's responsive width is the
wrong place for it, and it stretched the dashboard card headers. Consumers
can still opt in through its sx. This also drops a useMediaQuery, so the
button and its open menu no longer re-render on every 760px crossing.

Make the whole "Connect" row in the linked-addresses card one button. The
label was inert text beside an icon-only IconButton that had no accessible
name; folding it in gives the control a real one. The plus chip keeps its
overlay-hover tint, now fired from the row's hover.

Give the page header's title block flex: 1 at md so it absorbs the row's
free space. Both blocks were flex: 0 1 auto, so they shrank in proportion
to their natural widths and the description's dragged the stats narrow
enough to wrap. Keep min-width: auto — with a zero basis the block absorbs
no shrink, so that floor is the only thing holding the title column open
when the stats overflow.

Derive the dashboard tab switcher's bottom margin from the container's top
padding instead of restating the literal, which is the coupling that put
them out of step to begin with.

Colour mobile card captions fg-3 and their tooltip icons fg-4 from
ListMobileItem, via a row-caption hook on Row. That is a property of the
card context rather than of any caption, so it belongs to the container
rather than to thirty props. The icons keep their hover step, which a
blanket colour rule would have outranked.

Take the umbrella Stake button to 36px on mobile through an explicit size
prop rather than inferring it from fullWidth, matching how the same
problem was solved for FunSupplyButton.
@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +14.79 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.65 KB (🟢 -4.39 KB) 1.43 MB
/404 2.11 KB (🟢 -745 B) 1.34 MB
/500 2.44 KB (🟢 -748 B) 1.34 MB
/bridge 37.88 KB (🟡 +143 B) 1.37 MB
/dashboard 81.64 KB (🟢 -3.97 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.74 KB) 1.35 MB
/governance 42.67 KB (🟢 -281 B) 1.38 MB
/governance/ipfs-preview 99.29 KB (🟢 -2.37 KB) 1.43 MB
/governance/v3/proposal 85.71 KB (🟢 -3.08 KB) 1.42 MB
/history 32.52 KB (🟢 -3.81 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.82 KB (🟢 -1.04 KB) 1.37 MB
/safety-module 55.17 KB (🟢 -1.31 KB) 1.39 MB
/sgho 92.24 KB (🟢 -799 B) 1.43 MB
/staking 31.25 KB (🟢 -2.24 KB) 1.37 MB
/v3-migration 48.48 KB (🟢 -4.2 KB) 1.38 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

The header sentence compounded vault.targetRate monthly through
convertAprToApy before printing it, so it read 4.59% APY directly beside
a "Current APR" stat of 4.50% and a "Staking APR" of 4.50% in the card
below — the same rate shown three times in two different measures, which
reads as a discrepancy. Print the raw rate and label it APR so all three
agree.

The message id changes with the copy; the string was untranslated in
es/fr/el, so nothing is lost. Catalog holds at 991.
@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +14.79 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.65 KB (🟢 -4.39 KB) 1.43 MB
/404 2.11 KB (🟢 -745 B) 1.34 MB
/500 2.44 KB (🟢 -748 B) 1.34 MB
/bridge 37.88 KB (🟡 +143 B) 1.37 MB
/dashboard 81.64 KB (🟢 -3.97 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.74 KB) 1.35 MB
/governance 42.67 KB (🟢 -281 B) 1.38 MB
/governance/ipfs-preview 99.29 KB (🟢 -2.37 KB) 1.43 MB
/governance/v3/proposal 85.71 KB (🟢 -3.08 KB) 1.42 MB
/history 32.52 KB (🟢 -3.81 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.82 KB (🟢 -1.04 KB) 1.37 MB
/safety-module 55.17 KB (🟢 -1.31 KB) 1.39 MB
/sgho 92.23 KB (🟢 -806 B) 1.43 MB
/staking 31.25 KB (🟢 -2.24 KB) 1.37 MB
/v3-migration 48.48 KB (🟢 -4.2 KB) 1.38 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

The sheet drew a 36x4 drag handle but used a plain Drawer, which has no
gesture handling — so the affordance was decorative and the gesture
silently failed. That mattered more than it looks: 474b9f9 removed the
sheet's close button on the reasoning that swipe-down covered dismissal,
leaving backdrop tap and selecting a market as the only ways out.

SwipeableDrawer is the drop-in. disableSwipeToOpen because this sheet
opens from its trigger, never from an edge swipe — without it, swiping up
from the bottom of any page would summon the market picker.

No keepMounted: MUI recommends it to make swipe-to-open feel instant,
which is exactly what we disable, and it would hold ~26 market rows and
their token icons in the DOM for the life of the page.
@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

This PR introduced no changes to the JavaScript bundle! 🙌

Safari zooms the page when a focused input renders below 16px, and this
field was a flat 0.875rem — the only search input in the app not going
through SearchInput, which already handles this.

Keyed on pointer rather than viewport width. The component's own isMobile
is breakpoints.down('sm'), i.e. under 760px, which catches phones and no
tablet: iPad portrait is 768, iPad Pro landscape 1366, and both zoom. No
width threshold separates a tablet from a laptop because they overlap.
Width also fires the wrong way, giving 16px to a narrowed desktop window
that has no zoom behaviour at all.

Doing it in CSS also avoids another useMediaQuery subscription and its
re-render on every 760px crossing.
@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +17.73 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.65 KB (🟢 -4.39 KB) 1.43 MB
/404 2.11 KB (🟢 -745 B) 1.34 MB
/500 2.44 KB (🟢 -748 B) 1.34 MB
/bridge 37.88 KB (🟡 +144 B) 1.38 MB
/dashboard 81.64 KB (🟢 -3.97 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.74 KB) 1.35 MB
/governance 42.67 KB (🟢 -281 B) 1.38 MB
/governance/ipfs-preview 99.29 KB (🟢 -2.37 KB) 1.44 MB
/governance/v3/proposal 85.71 KB (🟢 -3.08 KB) 1.42 MB
/history 32.52 KB (🟢 -3.81 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.82 KB (🟢 -1.04 KB) 1.38 MB
/safety-module 55.17 KB (🟢 -1.31 KB) 1.39 MB
/sgho 92.23 KB (🟢 -806 B) 1.43 MB
/staking 31.25 KB (🟢 -2.24 KB) 1.37 MB
/v3-migration 48.48 KB (🟢 -4.19 KB) 1.39 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

The radio and the amount both centred against the whole label, so on the
combined AAVE + stkAAVE + aAAVE row — the only one that wraps — they sat
between its two lines.

The amount takes align="flex-start". The radio needs more than that:
switching FormControlLabel to flex-start puts the radio's box top at the
label's top, but the control is 36px (an 18px icon inside SwitchBase's
unconditional 9px padding, which size="small" does not shrink once the
theme substitutes a fixed icon) against a 20px text line, so the glyph
would sit 8px low. The label carries that 8px as a top margin instead,
which centres the first line on the glyph. The single-token rows render
identically — centring a 20px label in a 36px box already put its top at
8px.

Also stops the wrap splitting a token from its icon. The icon, the label
and the "+" were three sibling flex items, so each was its own break
opportunity and aAAVE's icon stayed behind on the first line. Each
icon+label pair is now one item; the "+" still breaks freely.
@github-actions

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.34 MB (🟡 +17.74 KB)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Sixteen Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 91.65 KB (🟢 -4.39 KB) 1.43 MB
/404 2.11 KB (🟢 -745 B) 1.34 MB
/500 2.44 KB (🟢 -748 B) 1.34 MB
/bridge 37.88 KB (🟡 +144 B) 1.38 MB
/dashboard 81.64 KB (🟢 -3.97 KB) 1.42 MB
/faucet 11.31 KB (🟢 -3.74 KB) 1.35 MB
/governance 42.67 KB (🟢 -281 B) 1.38 MB
/governance/ipfs-preview 99.29 KB (🟢 -2.37 KB) 1.44 MB
/governance/v3/proposal 85.71 KB (🟢 -3.08 KB) 1.42 MB
/history 32.52 KB (🟢 -3.81 KB) 1.37 MB
/markets 52.76 KB (🟢 -2.16 KB) 1.39 MB
/reserve-overview 38.82 KB (🟢 -1.04 KB) 1.38 MB
/safety-module 55.17 KB (🟢 -1.31 KB) 1.39 MB
/sgho 92.23 KB (🟢 -806 B) 1.43 MB
/staking 31.25 KB (🟢 -2.24 KB) 1.37 MB
/v3-migration 48.48 KB (🟢 -4.19 KB) 1.39 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

@github-actions

Copy link
Copy Markdown

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.

1 participant