Repository navigation
feat(dashboard): grid wallpaper on all standalone screens + fluid 4K layout - #4158
Conversation
…layout The graph-paper grid (body::before) was hidden on every non-dashboard screen: their full-screen wrappers used `min-h-screen … bg-bg`, and `bg-bg` is the same opaque fill as <body>, so it painted over the grid. Make those wrappers transparent so the shared wallpaper shows through on login, forgot-password, callback, maintenance, offline, status, terms, privacy, onboarding and ErrorPageScaffold (400/401). Closes design.md D4 (extended from login-only to every standalone screen). Also raise the dashboard content shell from max-w-7xl (1280px) to a fluid max-w-[3840px]: content now follows the viewport up to ~4K and only centers (side gutters) beyond it, instead of leaving wide empty margins on large monitors (design.md D8). Deliberately-narrow pages (wizards, context prose) keep their own caps. Guarded by tests/unit/design-grid-background.test.ts (Phase 5: +2 tests).
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Code Review
This pull request implements Phase 5 of the design system standardization, making all standalone full-screen pages (such as login, onboarding, error, and legal pages) transparent so that the global grid background shows through. It also expands the dashboard content shell to be fluid up to a 4K resolution cap (max-w-[3840px]) and adds corresponding unit tests. The reviewer provided valuable feedback pointing out that the regular expression in the new unit tests is fragile because it only matches double-quoted strings, suggesting a more robust pattern to cover single quotes and template literals.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| !/min-h-screen[^"]*\bbg-bg(?![\w-])/.test(src) && | ||
| !/\bbg-bg(?![\w-])[^"]*min-h-screen/.test(src), |
There was a problem hiding this comment.
The current regular expression is a bit fragile as it only checks for bg-bg within double-quoted strings (due to [^"]*). This means it would not detect a regression if the bg-bgclass were added back inside aclassName using single quotes ('...') or template literals (`` ...``), which are present in the codebase (e.g.,login/page.tsx`). This could lead to the test passing incorrectly.
A more robust approach would be to check for co-occurrence on the same line, which is less dependent on the quote style. While this has a small risk of false positives if the classes appear in different attributes on the same line, it provides better coverage for different string types used for className.
!/((min-h-screen[^
]*\bbg-bg(?![
-]))|(\bbg-bg(?![
-])[^
]*min-h-screen))/.test(src),…layout (cheaper-inference#4158) Integrated into release/v3.8.29
What & why
Continuation of the shared visual-identity work (design.md). Two owner-requested adjustments:
1. The grid was missing on the login screen — and on every other standalone screen
The graph-paper grid is a global
body::beforelayer. It shows on the dashboard becauseDashboardLayout's shell is transparent. But the standalone pages (login, etc.) wrap themselves inmin-h-screen … bg-bg, andbg-bgis the same opaque fill as<body>(#f9f9fb/#0b0e14) — so it painted right over the grid. The audit found this affected 10 screens, not just login.Fix = make those full-screen wrappers transparent (remove only the
bg-bgtoken; the body already paints the identical base color, so nothing changes visually except the grid now shows through):login,forgot-password,callback,maintenance,offline,status,terms,privacy,onboarding, andErrorPageScaffold(covers400/401).Closes design.md D4 (extended from login-only to every standalone screen).
2. Layout follows the resolution up to ~4K before centering
The dashboard content shell was capped at
max-w-7xl(1280px) +mx-auto, so on large monitors it centered with wide empty side gutters. Raised to a fluidmax-w-[3840px](true 4K): content now follows the viewport up to ~4K and only centers beyond it (DashboardLayout.tsx). This is the single global lever — it covers all 44 dashboard screens.Deliberately-narrow pages keep their own caps by design (
ProviderOnboardingWizardmax-w-5xl,Rtk/CavemanContextPageClientmax-w-6xl) — stretching a wizard/prose to 4K reads badly.This is design.md D8.
Tests
Extended
tests/unit/design-grid-background.test.ts(Phase 5, +2 tests):bg-bgover the grid (static guard across all 10 screens;(?![\w-])keepsbg-bg-alt/bg-bg-mainfrom matching);max-w-[3840px], nomax-w-7xl).15/15 green. Also verified: ESLint (changed files) clean,
typecheck:coreclean,rtl-logical-classes(scans DashboardLayout) 15/15.Risk
Class-string only — no logic, no imports, no new deps. Removing
bg-bgfrom a wrapper whose body already has the same fill is visually a no-op except the grid becomes visible; theme switching still flows from<body>'s--color-bg.