refactor(web): simplify global styling - #6381
Conversation
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Approved ed080cc Mechanical CSS refactoring that moves global styles into component-level Tailwind utilities and standardizes Button component usage. Same visual behavior, reorganized code structure. Tests verify the new component contracts. You can customize Macroscope's approvability policy. Learn more. |
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate de22137
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate a44720b
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 8e3066e
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 8925f19
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate d471299
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 578bf5b
Dismissing prior approval to re-evaluate 56dfc6f
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 69ea104
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 583affc
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 583affc. Configure here.
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 5f81f7a
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
…tency Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate e0cd878
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 1170852
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> # Conflicts: # apps/web/src/components/RightPanelTabs.tsx # apps/web/src/routes/_chat.pull-requests.tsx
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate 3482c11
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Dismissing prior approval to re-evaluate ed080cc

problem
shared controls and global styles had drifted away from the project’s component and tailwind conventions. component-owned geometry lived in
index.css, dark token overrides used separate selectors, and repeated compact, glass, and search controls rebuilt primitive behavior with large call-site class strings.fix
control consistency
InputGrouporInputButton,Input,SelectTrigger, andToggle--control-radiusinInputGroupcanonical tailwind cleanup
@variant dark@utility.sidebar-brand*and duplicated chat/settings/pull-request scroll-fade selectorsScrollArea scrollFadefor base-ui-owned viewportsapps/web/src/index.cssis 397 lines and 11,229 bytes smaller than the latest mergedmain.verification
git diff --checkpassedoxfmtstdin modescreenshots
theme search before, light
theme search after, light
theme search after, dark
chat shell after cleanup, light
chat shell after cleanup, dark
settings after cleanup, light
settings after cleanup, dark
pull-request shell after cleanup, light
pull-request shell after cleanup, dark
shared model-picker scroll fade, light
shared model-picker scroll fade, dark
agent
gpt-5.6-sol via hermes agent
request provenance
Note
Low Risk
Broad but presentation-only: styling and component API extensions with tests updated; no auth, data, or business-logic changes.
Overview
Aligns the web app with shared UI primitives and Tailwind-first styling instead of one-off CSS and ad hoc control classes.
Shared control contract —
Buttongainscompact,icon-micro,ghost-muted, andglassvariants;Input,SelectTrigger, andTogglegaincompact. Dozens of raw<button>/<input>usages across chat, settings, PR flows, sidebars, and toasts are switched to these primitives, trimming repeated height, radius, and hover/focus strings.Global CSS → components — Workspace topbars, subheaders, composer insets, and chat markdown chrome move from
index.cssclasses (e.g.workspace-topbar,surface-subheader,chat-markdown-*) to static Tailwind at call sites. Scroll fades consolidate ontopbar-scroll-fadeand a newgetVirtualizedScrollFadeClassNamefor branch/model pickers. Glass surfaces usesurface-glass/variant="glass"instead ofchat-composer-glass.Polish — Dropdowns/comboboxes/menus get consistent shadow tokens;
InputGroupuses--control-radius; sidebar brand visibility is driven fromSidebarChrome(md:flex); diff code view sets--code-background; skeleton respectsmotion-reduce.Reviewed by Cursor Bugbot for commit ed080cc. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Simplify global styling with new utility classes and shared Button variants across the web app
compact,icon-microsizes andghost-muted,glassvariants to button.tsx, andcompactsize to input.tsx, select.tsx, and toggle.tsx, giving components a consistent small-control geometry token.<button>elements across settings panels, sidebars, chat, diffs, and PR views with the sharedButtoncomponent using the new size/variant props, removing bespoke inline sizing classes.@variant dark/@variant lightblocks instead of.darkclass selectors, and introduces@utilitydefinitions forsurface-glass,dialog-glass,dropdown-glass,topbar-scroll-fade, andvirtualized-scroll-fade, replacing the legacy class-based equivalents.getVirtualizedScrollFadeClassNameutility to scroll-area.tsx and migrates scroll-fade class references fromchat-timeline-scroll-fade/settings-page-scroll-fadetotopbar-scroll-fade/[data-settings-page-scroll].workspace-topbar,pull-requests-scroll-fade,surface-subheader,chat-composer-glass) will lose those styles and must adopt the new utilities or variant blocks.Macroscope summarized ed080cc.