Skip to content

Redesign: dark terminal → light editorial portfolio#6

Merged
AltanEsmer merged 9 commits into
mainfrom
redesign/editorial-light
Jun 13, 2026
Merged

Redesign: dark terminal → light editorial portfolio#6
AltanEsmer merged 9 commits into
mainfrom
redesign/editorial-light

Conversation

@AltanEsmer

Copy link
Copy Markdown
Owner

Summary

Implements the Claude Design handoff (Altan Esmer Portfolio.dc.html), a full reversal of the site's aesthetic: out goes the dark navy "terminal-hacker" theme — monospace everywhere, iridescent gradients, two WebGL 3D scenes, custom cursor, film-grain, neon glows, and fake-CLI copy. In comes a simple, clean, professional editorial design where content and typography do the work.

The site stays Next.js 14 App Router + Tailwind + static export to GitHub Pages. The MDX content pipeline is unchanged and remains the source of truth.

Design system

  • Canvas warm off-white #faf8f4, ink #1c1a17
  • One primary accent — blue #2563eb (links, primary buttons)
  • One secondary accent — amber #d97706, used only as punctuation (kickers, active-nav underline, availability, timeline years, post tags)
  • Type: Newsreader (serif headings) · IBM Plex Sans (body/UI) · IBM Plex Mono (code only)
  • Quiet bordered cards, soft shadows, no glows; gentle fade-up reveals that respect prefers-reduced-motion

What changed

  • Foundation: rewrote tailwind.config.ts + globals.css to the light token system; swapped fonts; dropped <Cursor> and Lenis <SmoothScrollProvider> from the layout; added shared UI primitives (Reveal, Button, ProjectCard, Tag, Kicker, ArticleNav).
  • Pages: rebuilt Home, Work index (with category filter chips), case-study detail, Blog index + post, About (text timeline), and a new /contact page (clean form with live validation + success state — replaces /hire).
  • Cleanup: removed three/@react-three/*, lenis, framer-motion, lucide-react, and the old @fontsource families; deleted the 3D scenes, cursor, smooth-scroll, old bento cards, and projects-static.
  • MDX fix: added remark-frontmatter so YAML frontmatter no longer renders into article bodies; added optional category/role frontmatter for the five projects.

Verification

  • npm run build — static export succeeds, all 14 pages prerendered; First Load JS down to ~104 kB (three.js + framer-motion removed)
  • npm run lint — clean · npx tsc --noEmit — clean (CI parity)
  • Walked every route in the browser preview (desktop + mobile): light canvas, serif headings, blue/amber accents, sticky blurred header, active-nav amber underline, card hover lift, working category filter, contact form validation + success state, fade-up reveals, and prev/next article nav — all confirmed.

🤖 Generated with Claude Code

AltanEsmer and others added 9 commits June 13, 2026 11:12
Replace the dark terminal/iridescent theme with the warm off-white
editorial system from the Claude Design handoff:

- Fonts: drop Inter/Space Grotesk/JetBrains Mono; add Newsreader
  (serif headings), IBM Plex Sans (body/UI), IBM Plex Mono (code only)
- Remove three/@react-three/* and lenis dependencies
- tailwind.config.ts: light palette tokens, serif/sans/mono families,
  soft shadow tokens
- globals.css: rewrite to light tokens, editorial prose, scroll reveal,
  reusable button/card/tag/nav classes; strip cursor/grain/iridescent
- layout.tsx: drop custom Cursor and Lenis SmoothScrollProvider, add Footer
- content.ts: extend Frontmatter with optional category/role + getYear()
- Add shared UI primitives (Reveal, ProjectCard, Tag, Kicker, Button)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Nav: sticky blurred header, serif "Altan Esmer | Software Engineer"
  wordmark, Work/Writing/About links with active amber underline
  (usePathname), and a blue "Get in touch" CTA → /contact
- Footer: name + blurb + open-to-work pill, Pages + Elsewhere link
  columns, and a quiet colophon line

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Hero: availability badge, serif headline, two CTAs, and a quiet
  profile card (no terminal, no 3D icosahedron)
- Featured projects grid driven by frontmatter `featured`
- Short About blurb + "More about me" link
- Skills as four clean grouped columns (no 3D constellation)
- "Have a project in mind?" contact CTA card

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- "Work" index: amber kicker, serif H1, intro, and a clean
  auto-fit grid of bordered project cards
- Client-side category filter chips (All/Web/Mobile/Desktop/Tools)
  driven by frontmatter `category`; active chip in primary blue

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Case study: 760px article with back link, amber category · year ·
  role meta, serif title, blurb, tags, preview placeholder, MDX body,
  and prev/next navigation (shared ArticleNav)
- Add category/role/featured to the five project MDX frontmatters

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Blog index: 780px list with date · read time · amber tag, serif
  titles, and one-line descriptions
- Blog post: 720px article matching the case-study reading layout,
  with shared prev/next ArticleNav

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Fuller bio, portrait placeholder, and a calm text-based
  education/experience timeline (blue dots, amber years) —
  replaces the old neon-rail treatment

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- New /contact route: clean form (name/email/optional budget/message)
  with live validation + success state, plus an aside with direct
  email and an open-to-work card. No terminal styling or fake CLI.
- Remove the old /hire page (replaced by /contact)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Delete unused 3D scenes, custom cursor, Lenis smooth-scroll,
  old bento ProjectCard/MdxProjectCard, ProjectNavigation,
  MotionSection, RevealOnScroll, and the old contact section
- Delete projects-static.ts + projects.generated.json (fed the
  old bento grid; content is now sourced from MDX)
- Reveal: swap framer-motion for a tiny IntersectionObserver that
  toggles .reveal/.reveal.in (fixes the opacity-stuck bug and drops
  framer-motion); respects prefers-reduced-motion with a fallback
- Drop framer-motion + lucide-react; add remark-frontmatter
- next.config: add remark-frontmatter so YAML no longer renders into
  article bodies; drop stale transpilePackages: ['three']

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@AltanEsmer AltanEsmer merged commit 60f1083 into main Jun 13, 2026
2 checks passed
@AltanEsmer AltanEsmer deleted the redesign/editorial-light branch June 13, 2026 09:37
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