Polish UI/UX: visual hierarchy, mobile nav, accessibility by tntrock · Pull Request #2 · tntrock/Allen-Portfolio · GitHub
Skip to content

Polish UI/UX: visual hierarchy, mobile nav, accessibility - #2

Merged
tntrock merged 1 commit into
rewrite/content-driven-i18nfrom
polish/ui-ux
Sep 2, 2026
Merged

Polish UI/UX: visual hierarchy, mobile nav, accessibility#2
tntrock merged 1 commit into
rewrite/content-driven-i18nfrom
polish/ui-ux

Conversation

@tntrock

@tntrock tntrock commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

Stacked on top of #1 (rewrite/content-driven-i18n) since it builds on that
branch's component architecture. Content is untouched -- every change here
is visual, structural, or an accessibility affordance.

  • Deeper near-black background with a subtle glow, refined card/border/accent
    design tokens, real focus-visible ring, prefers-reduced-motion support
  • Fixed a real bug: Geist Sans/Mono were loaded via next/font but body
    hardcoded font-family: Arial, so the loaded font never actually rendered
  • Cards get elevation (shadow + softer border) and an interactive hover/
    focus-lift variant; badges now use the (previously unused) mono font
  • Container widened max-w-3xl -> max-w-4xl to reduce dead margins on
    desktop
  • Fixed a heading-hierarchy bug: the projects list skipped h1 -> h3 on
    each card, and the project detail page had no h1 at all
  • Navbar: mobile hamburger menu below sm (previously no small-screen
    handling), aria-current on nav links, aria-label on the nav landmark
  • Skip-to-content link (visible on keyboard focus)
  • A handful of new aria-only strings in messages/{zh,en}.json for the
    above (skip link, menu open/close, nav landmark label) -- no visible page
    copy changed

Test plan

  • npm run build -- Turbopack production build succeeds, all pages
    statically prerendered
  • npm run lint -- no errors
  • Screenshot diff (desktop + mobile) of home / projects / project detail
    / about before and after
  • Verified interactively: mobile hamburger menu opens/closes, skip link
    appears and is styled correctly on keyboard Tab focus
  • Manual review of the new visual direction (darker theme, mono accents)

🤖 Generated with Claude Code

Content is untouched - every change here is visual, structural, or an
accessibility affordance built on top of the existing copy.

- globals.css: deeper near-black background with a subtle radial glow,
  refined card/border/accent tokens, and a real focus-visible ring +
  prefers-reduced-motion rule. Also fixes a real bug: next/font loads
  Geist Sans/Mono onto <html> but body hardcoded font-family: Arial, so
  the loaded font was never actually rendering - now wired through
  --font-sans/--font-mono so Tailwind's font-mono utility works too
- ui/Card, ui/Badge: elevated surface (shadow, refined border), badges
  now use the (previously unused) mono font for a more technical feel,
  Card gained an `interactive` variant for hover/focus lift on clickable
  cards (motion-safe only)
- ui/Container: max-w-3xl -> max-w-4xl to reduce the large dead margins
  at desktop widths
- ui/ProjectCard, projects pages: fixed a heading-hierarchy bug - the
  projects list skipped from h1 straight to h3 on each card, and the
  project detail page had no h1 at all. ProjectSummaryCard now takes a
  titleAs prop (h2 on the list, h3 when nested under Home's h2 section)
  and ProjectDetail's title is now the page's h1, with case-study
  section labels promoted to h3
- components/Navbar: mobile hamburger menu below sm (previous layout had
  no small-screen handling and would cramp/overflow on narrow phones),
  aria-current on nav links, aria-label on the nav landmark
- app/[locale]/layout.tsx: skip-to-content link (visible on keyboard
  focus) targeting a focusable #main-content landmark
- messages/{zh,en}.json: added a handful of aria-only strings needed for
  the above (skip link text, menu open/close labels, nav landmark label)
  - no visible page copy was added or changed

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DMHdXkgYMvbQAvu37Tdp9D
@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

@tntrock
tntrock merged commit a3d2c21 into rewrite/content-driven-i18n Sep 2, 2026
2 checks passed
@tntrock tntrock mentioned this pull request Sep 2, 2026
1 task
@tntrock
tntrock deleted the polish/ui-ux branch September 2, 2026 16:25
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.

2 participants