redesign: editorial broadsheet layout for authenticated app - #19
Conversation
Replace the dark sidebar with a light horizontal top navbar that matches the landing page. Cards become ruled sections with eyebrow-style titles. Content flows in a centered ~720px column with generous serif typography, faint guilloche watermarks, and underline-only form inputs. - Navbar now renders for authenticated users (nav links + avatar) - AppShell simplified to a thin content wrapper (no sidebar/overlay) - Footer visible for authenticated users - dash-card: transparent bg, bottom rules, uppercase eyebrow titles - profile-card: larger serif name, full-width banner - Buttons restyled to solid navy primary / subtle border secondary - Mobile: hamburger dropdown replaces slide-in sidebar Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughRemoved the left sidebar layout and related state/UI, introduced an authenticated top navigation and responsive dropdown, refactored dashboard/card/profile/button styles in CSS, and removed sidebar-related markup and mobile header from the shell. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The footer was hidden on pathname "/" to avoid duplicating the landing page's inline footer. Now it checks auth state — only hides when unauthenticated (landing page), shows when authenticated (profile page). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
src/app/globals.css (1)
2803-2806: Minor: Empty CSS rule.The
.dashboard__body--singleclass is now a no-op comment. Consider removing this class from the codebase entirely if it's no longer needed, or document why it's kept for future use.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/app/globals.css` around lines 2803 - 2806, The .dashboard__body--single CSS rule is an empty no-op and should be removed or documented; either delete the .dashboard__body--single block from globals.css to clean up dead CSS, or add a brief comment above the selector explaining why it must remain for compatibility (e.g., retained for legacy markup or third-party integrations) so future readers know its intent; locate the selector ".dashboard__body--single" in globals.css and apply one of these fixes.src/components/layout/navbar.tsx (1)
49-55: Minor: Redundant ternary in navClasses.Line 51 can be simplified since
isAuthenticated ? "navbar--default" : (isTransparent ? "navbar--transparent" : "navbar--default")always results in"navbar--default"when authenticated.♻️ Optional simplification
const navClasses = [ "navbar", - isAuthenticated ? "navbar--default" : (isTransparent ? "navbar--transparent" : "navbar--default"), + isTransparent ? "navbar--transparent" : "navbar--default", scrolled ? "navbar--scrolled" : "", ]Since
isTransparentis alreadyfalsewhen authenticated (line 47), this produces the same result with cleaner logic.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/components/layout/navbar.tsx` around lines 49 - 55, The navClasses construction uses a redundant nested ternary; replace the nested expression in the array with a single check on isTransparent (e.g., use isTransparent ? "navbar--transparent" : "navbar--default") since isTransparent is false when isAuthenticated, and keep the existing scrolled entry and .filter(Boolean). Update the expression referenced as navClasses (which currently reads the ternary using isAuthenticated and isTransparent) to the simplified form to improve readability.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/app/globals.css`:
- Around line 2579-2591: The CSS rule .dashboard__topbar::before references a
missing asset '/assets/guilloche_02.svg' causing 404s; fix by either adding the
missing SVG file named guilloche_02.svg into the public/assets (or assets)
directory so the background URL resolves, or remove/replace the background
property in the .dashboard__topbar::before rule to a valid asset or none (e.g.,
delete the background/background-size lines or point to an existing SVG) so the
pseudo-element no longer requests the non-existent file.
---
Nitpick comments:
In `@src/app/globals.css`:
- Around line 2803-2806: The .dashboard__body--single CSS rule is an empty no-op
and should be removed or documented; either delete the .dashboard__body--single
block from globals.css to clean up dead CSS, or add a brief comment above the
selector explaining why it must remain for compatibility (e.g., retained for
legacy markup or third-party integrations) so future readers know its intent;
locate the selector ".dashboard__body--single" in globals.css and apply one of
these fixes.
In `@src/components/layout/navbar.tsx`:
- Around line 49-55: The navClasses construction uses a redundant nested
ternary; replace the nested expression in the array with a single check on
isTransparent (e.g., use isTransparent ? "navbar--transparent" :
"navbar--default") since isTransparent is false when isAuthenticated, and keep
the existing scrolled entry and .filter(Boolean). Update the expression
referenced as navClasses (which currently reads the ternary using
isAuthenticated and isTransparent) to the simplified form to improve
readability.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 6b330237-bf59-480d-a678-afc7ad394f6d
📒 Files selected for processing (9)
src/app/globals.csssrc/app/settings/my-data/page.tsxsrc/app/settings/page.tsxsrc/app/settings/wallet/page.tsxsrc/components/landing/home-client.tsxsrc/components/layout/app-shell.tsxsrc/components/layout/footer.tsxsrc/components/layout/navbar.tsxsrc/components/ui/button.tsx
💤 Files with no reviewable changes (2)
- src/components/layout/footer.tsx
- src/components/layout/app-shell.tsx
| .dashboard__topbar::before { | ||
| content: ''; | ||
| position: absolute; | ||
| top: 50%; | ||
| right: -40px; | ||
| transform: translateY(-50%); | ||
| width: 200px; | ||
| height: 200px; | ||
| background: url('/assets/guilloche_02.svg') no-repeat center; | ||
| background-size: contain; | ||
| opacity: 0.04; | ||
| pointer-events: none; | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if the guilloche SVG asset exists
fd "guilloche" public/assets 2>/dev/null || fd "guilloche" public 2>/dev/null || echo "Asset not found in public directory"
# Also check if any guilloche assets exist anywhere
fd -e svg "guilloche" .Repository: hypercerts-org/certified-app
Length of output: 54
The guilloche SVG asset referenced in the CSS does not exist.
The .dashboard__topbar::before pseudo-element references /assets/guilloche_02.svg (line 2588), but this asset is not present in the repository. The browser will encounter a 404 error and the watermark visual effect will not display. Either add the missing guilloche_02.svg file to the public/assets/ directory or remove the background URL reference from the CSS.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/app/globals.css` around lines 2579 - 2591, The CSS rule
.dashboard__topbar::before references a missing asset '/assets/guilloche_02.svg'
causing 404s; fix by either adding the missing SVG file named guilloche_02.svg
into the public/assets (or assets) directory so the background URL resolves, or
remove/replace the background property in the .dashboard__topbar::before rule to
a valid asset or none (e.g., delete the background/background-size lines or
point to an existing SVG) so the pseudo-element no longer requests the
non-existent file.
Summary
Files changed
globals.css— Major CSS overhaul (deleted sidebar/mobile-header, rewrote dashboard/dash-card/app-shell)navbar.tsx— Renders for authenticated users with nav links + avatarapp-shell.tsx— Simplified to thin content wrapperfooter.tsx— Removed auth guardhome-client.tsx— Removed aside column and SignInPreviewCardbutton.tsx— Restyled primary/secondary variantsmt-4spacingTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Style
Content