Skip to content

feat: bento grid redesign + terminal-style footer#4

Merged
anhvuFE merged 2 commits into
mainfrom
feat/bento-redesign
May 4, 2026
Merged

feat: bento grid redesign + terminal-style footer#4
anhvuFE merged 2 commits into
mainfrom
feat/bento-redesign

Conversation

@anhvuFE
Copy link
Copy Markdown
Owner

@anhvuFE anhvuFE commented May 4, 2026

Summary

Major UX redesign — the portfolio is now a single-screen bento grid instead of 7 stacked sections, paired with a terminal-themed footer.

1. feat(bento): redesign portfolio with bento grid + drawer pattern

  • 7 sections collapsed into a bento grid (Hero + Grid + Footer)
  • Each card shows a preview; click opens a drawer with the full content
    • Desktop: right-anchored drawer (~1100px wide)
    • Mobile: bottom-anchored sheet (~92vh)
  • New components under `src/components/bento/`: BentoCard, BentoGrid, SectionDrawer, previews
  • 7 cards: About, GitHub (live calendar), Skills (3x3 = 9 icons), Experience, Certs, Services, Contact (full-width CTA)
  • Section components are lazy-loaded into the drawer
  • Header nav drives URL hash (`#about`, `#skills`, …); BentoGrid listens for `hashchange` and opens the matching drawer

2. feat(footer): redesign as a terminal window

  • Old 3-column corporate layout removed (duplicate with header nav + bento drawers)
  • Faux terminal: macOS title bar, 4 zsh-styled prompts, blinking cursor, monospace stack

Bundle impact

  • main: 343 KB → 215 KB gzipped (-128 KB / -37%) thanks to lazy drawer chunks
  • Build: ✅ Compiled successfully (no warnings)
  • Type check: ✅ Pass

Test plan

  • `npm install && npm run dev` — page loads with hero + bento + terminal footer
  • Click each bento card → matching drawer opens
  • Header nav clicks → corresponding drawer opens, URL hash updates
  • Closing drawer (X / backdrop / ESC) clears the hash
  • Direct URL `localhost:3000/portfolio#about` opens About drawer on load
  • Mobile: bento stacks 1 column, drawer anchors bottom
  • GitHub preview shows real contribution data
  • Footer terminal: blinking cursor, color-coded prompts, links open in new tab

anhvuFE added 2 commits May 3, 2026 17:40
Replace the long vertical scroll of 7 sections with a single bento
grid screen. Each card shows a preview; clicking opens a drawer
with the full section content (right anchor on desktop, bottom on
mobile).

- new components: BentoCard, BentoGrid, SectionDrawer, previews
  - 7 cards: About, GitHub, Skills (2x2), Experience, Certs,
    Services, Contact (full-width CTA)
  - GitHub preview uses real react-github-calendar data, not
    randomized squares
  - Skills preview shows 9 tech icons in a 3x3 grid
- App.tsx: collapse the 7 sections into <Hero> + <BentoGrid> +
  <Footer>; section components are lazy-loaded into the drawer
- Header.tsx: nav clicks now drive URL hash (#about, #skills, ...)
  which BentoGrid listens to and opens the matching drawer; active
  state tracks the hash
- main bundle: 343KB -> 215KB gzipped (-128KB) thanks to lazy
  drawer chunks
Drop the old 3-column corporate layout (brand / quick-links /
contact-info) — the quick links and contact info are already
reachable via the header nav and the bento drawers, so they were
duplicate noise.

The new footer is a faux terminal:
- macOS-style title bar with red/yellow/amber dots and a
  "vuxuananh@portfolio: ~" title
- four "commands" (whoami, cat /status, ls ~/contact,
  echo $LOCATION) with their outputs in zsh-like colors
- contact links inline as clickable terminal output
- blinking cursor on the active prompt line
- monospace stack (Fira Code / JetBrains Mono / Menlo)
- below the window: two `// comment`-style credit lines
@anhvuFE anhvuFE merged commit a8bc771 into main May 4, 2026
1 check passed
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.

1 participant