fix: critical UI issues from full-project audit#25
Conversation
- Fix sidebar overlapping main content (added padding to main area) - Add branded 404 page with navigation back to dashboard - Add /login → / redirect for users expecting a login route - Fix "1 minutes" grammar bug on Focus Timer recent sessions - Add consistent page titles for Focus, Stats, Settings pages - Fix dark mode color contrast to meet WCAG AA 4.5:1 ratio (--text-tertiary: #6E6990 → #9590AD, --text-muted: #4A4568 → #7E79A0) Supabase security and performance fixes were applied directly via SQL. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@claude review |
|
Claude finished @vayungodara's task in 1m 46s —— View job Code Review
Overall this is a solid cleanup PR. The grammar fix, metadata exports, redirect, and dark mode contrast improvements are all clean. A few real bugs to address below. 🔴 Bug —
|
Review fixes: - Sidebar: use marginLeft: 80 instead of paddingLeft override (was clobbering CSS module's 32px) - 404 page: extract to CSS module, use 100dvh, link to "/" not "/dashboard" - CI: add env vars to build job so Next.js build succeeds Pre-existing lint fixes (exposed by new CI): - ActivityComments: move fetchComments to click handler instead of useEffect - DailySummaryCard: rename useStreakFreeze → applyStreakFreeze (not a React hook) - XPBar: move xpChanged logic into fetch callback to avoid sync setState in effect Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@claude review |
|
Claude finished @vayungodara's task in 1m 52s —— View job Code Review
All issues from the previous review have been addressed. Here's the full picture: ✅ Previous issues — all fixed
One minor note
The sidebar collapsed ✅ Everything else looks good
This PR is ready to merge. |
Security: - Add user_id filter to focus_sessions query (defense in depth, not just RLS) Performance: - Clean up XPBar flash setTimeout on unmount via ref Architecture: - Change /login redirect from permanent (301) to temporary (302) - Remove dead metadata export from not-found.js (Next.js ignores it) - Move CI e2e env vars to job level so Playwright dev server inherits them Accessibility: - Add forced-colors media query so 404 heading is visible in High Contrast Mode - Add :focus-visible style on 404 CTA link for keyboard users - Use <main> landmark on 404 page for screen readers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
UI fixes (from full-project audit)
paddingLeft: 16to main content area so text is no longer clipped by the 72px collapsed sidebarapp/not-found.jswith gradient styling and navigation back to dashboard/login→/permanent redirect innext.config.mjsmetadataexports for Focus Timer, Stats, and Settings pages--text-tertiaryand--text-mutedto meet WCAG AA 4.5:1 ratioTech debt cleanup
Issues closed (already implemented)
/join/[code]Test plan
/nonexistent-pageand confirm branded 404 page appears/loginand confirm redirect to landing page🤖 Generated with Claude Code