Skip to content

[WIP] V3 uplift#3075

Draft
abjt14 wants to merge 38 commits into
mainfrom
v3-uplift
Draft

[WIP] V3 uplift#3075
abjt14 wants to merge 38 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
@vercel

vercel Bot commented Jul 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
interface Ready Ready Preview, Comment Jul 23, 2026 10:48am

Request Review

@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! 🙌

…pacing

Drop unused palette extensions (background.surface2/header/disabled,
other.standardInputLine, highlight token), point success.main at
data-green, and add a dedicated per-size border radius for buttons plus
a dark-mode "bone" hover color where fg-1/fg-max collided. Also swaps
the heroicons chevron for a local ChevronDownIcon, tightens header/
settings menu spacing, and fixes the TopInfoPanel gradient layering.
@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! 🙌

@github-actions

Copy link
Copy Markdown

Label/icon stay full-strength; the fill (+ box-shadow) drop to 50% via an opacity-faded ::before.

Opacity is used so the faded fill keeps its Display-P3 color (color-mix would drop to sRGB).

Applied to contained-primary and outlined-primary (pill) via a shared disabledFade helper.
@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! 🙌

@github-actions

Copy link
Copy Markdown

abjt14 added 3 commits July 22, 2026 11:47
…'s prior disabled

Contained keeps the opacity-faded ::before (bg at 50%, crisp label).

Outlined reverts to its prior disabled look: fg-3 label + figSurfaceShadow ring.
Both the desktop row and mobile-card Borrow buttons switch from contained to outlined.
Theme:
- Own the menu paper surface, 8px offset and 0.38rem list inset in MuiMenu.styleOverrides so
  Selects (which drop PaperProps) match the other dropdowns; concentric, pseudo-inset row
  highlight with a 1px gap so hover isn't interrupted between rows.
- Select trigger uses the outlined-button surface (fill + ring), dropping the animated/blueish
  notched border; neutral selected-option highlight; hairline focus outline.
- Disable the MUI ripple globally on MuiButtonBase; iconButtonSx squares via aspect-ratio.
- Add ChevronRightIcon (currentColor).

Settings menu and header:
- Drop the "Global settings" header, add dividers, rename to Test/Dark Mode and Watch Wallet,
  grey the current-language value with the new chevron, uniform 2rem rows.
- Bridge/Swap header actions collapse to square icon-only buttons on mobile; the instance
  selector no longer scales on press.

Segmented toggle:
- Remove the legacy hardcoded-dark StyledToggleGroup/Button; keep only the theme-aware TxModal
  variants (medium size, bg-4 active pill, group ring) and migrate the four page tab-toggles
  and VotersListModal onto them.
@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! 🙌

abjt14 added 3 commits July 23, 2026 08:26
Resolved conflicts:
- Deleted ProposalLifecycle.tsx / ProposalLifecycleCache.tsx (superseded by main's ProposalTimeline.tsx); the v3 token restyle for those is re-applied separately.
- Regenerated locale catalogs as the union of the v3 label renames and main's new governance strings.
Re-apply v3 token conventions to main's new ProposalTimeline.tsx (the
replacement for the deleted ProposalLifecycle/ProposalLifecycleCache):
theme.palette.* -> theme.vars.palette.*, text.disabled -> figVars fg-4,
and text.{primary,secondary,muted} props -> fg-{1,2,3}. Standard MUI
palette strings (warning.main, divider) left as-is.
A custom .babelrc (for @lingui/macro) disables SWC, so Next 15's automatic
@mui/icons-material barrel optimization doesn't run. Barrel imports pulled the
full icon set (>500KB) into the graph, causing a Babel deopt and slow dev
compiles (AppFooter, in MainLayout, taxed every route). Switch the 8 barrel
imports to per-icon path imports, matching the repo's existing convention.
@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.33 MB (🟡 +11.81 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!

New Pages Added

The following pages were added to the bundle from the code in this PR:

Page Size (compressed) First Load
/dev/components 899 B 1.33 MB
/dev/components/[section] 929 B 1.33 MB

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
/ 95.81 KB (🟢 -125 B) 1.43 MB
/404 2.06 KB (🟢 -797 B) 1.34 MB
/500 2.4 KB (🟢 -784 B) 1.34 MB
/bridge 37.45 KB (🟢 -297 B) 1.37 MB
/dashboard 85.96 KB (🟡 +464 B) 1.42 MB
/faucet 15.19 KB (🟡 +142 B) 1.35 MB
/governance 40.5 KB (🟢 -2.44 KB) 1.37 MB
/governance/ipfs-preview 101.11 KB (🟢 -562 B) 1.43 MB
/governance/v3/proposal 88.12 KB (🟢 -693 B) 1.42 MB
/history 35.28 KB (🟢 -1.06 KB) 1.37 MB
/markets 54.05 KB (🟢 -779 B) 1.39 MB
/reserve-overview 38.38 KB (🟢 -1.48 KB) 1.37 MB
/safety-module 54.96 KB (🟢 -1.4 KB) 1.39 MB
/sgho 90.69 KB (🟢 -2.22 KB) 1.42 MB
/staking 32.28 KB (🟢 -1.2 KB) 1.37 MB
/v3-migration 52.29 KB (🟢 -283 B) 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.

Design-system uplift for the dev/components showcase and shared MUI theme:

- Slider retargeted to the Switch palette (purple-1 track, fg-3 rail, white thumb)
- Checkbox: bg-2 fill + inset fg-5->fg-4 ring; Radio newly themed as a checkbox twin
  (one shared selection-control recipe so the two never drift)
- Select trigger hover transition (was instant); menu-item keyboard focus now shares
  the hover highlight
- Toggle group: bg-5 fill + inset hairline
- Frosted tooltip surface (ContentWithTooltip); info-tooltip icon uses on-theme
  neutrals instead of blue
- Contained-button hover now follows the nearest color scheme (fixes the showcase's
  local light/dark toggle) via a new per-scheme fg-max-hover token
- dev/components: mobile-ready layout (drawer nav + responsive), full input-variant
  coverage incl. Radio, button end-icon + color rows, Menu open-state active fill

Also carries the in-progress typography-variant consolidation (24 -> 17 variants,
swept across ~114 files) - entangled with the theme.tsx/figmaColors.ts changes above,
so committed together.
@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.33 MB (🟡 +12.27 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!

New Pages Added

The following pages were added to the bundle from the code in this PR:

Page Size (compressed) First Load
/dev/components 896 B 1.34 MB
/dev/components/[section] 949 B 1.34 MB

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
/ 96.26 KB (🟡 +336 B) 1.43 MB
/404 2.06 KB (🟢 -798 B) 1.34 MB
/500 2.4 KB (🟢 -786 B) 1.34 MB
/bridge 37.43 KB (🟢 -315 B) 1.37 MB
/dashboard 85.99 KB (🟡 +498 B) 1.42 MB
/faucet 15.19 KB (🟡 +136 B) 1.35 MB
/governance 40.92 KB (🟢 -2.02 KB) 1.37 MB
/governance/ipfs-preview 101.11 KB (🟢 -559 B) 1.43 MB
/governance/v3/proposal 88.12 KB (🟢 -687 B) 1.42 MB
/history 35.68 KB (🟢 -675 B) 1.37 MB
/markets 54.49 KB (🟢 -335 B) 1.39 MB
/reserve-overview 38.39 KB (🟢 -1.47 KB) 1.37 MB
/safety-module 54.97 KB (🟢 -1.4 KB) 1.39 MB
/sgho 90.68 KB (🟢 -2.23 KB) 1.42 MB
/staking 32.71 KB (🟢 -798 B) 1.37 MB
/v3-migration 52.26 KB (🟢 -312 B) 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.

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