From 088a06a51c9cda98cacbb92c5d9c8fc78ef8afde Mon Sep 17 00:00:00 2001 From: lerko96 Date: Sun, 12 Apr 2026 19:23:50 -0400 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20terminal-noir=20redesign=20?= =?UTF-8?q?=E2=80=94=20widget=20system=20+=20design=20token=20overhaul?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace cyan-green modern theme with terminal-noir aesthetic aligned to style-guide.md. Hard edges, monospace-first, linear transitions, no gradients. Introduce Widget component as the single repeatable section primitive: title bar with horizontal rule, optional badge/meta — all pages and sections now use this pattern (Glance-inspired data-driven layout). Design system changes (globals.css): - Palette: #0a0a0a bg, #111111 surface, #00cc44 status green, #cc2200 alert red - Drop Montserrat; Source Code Pro primary, system sans for prose only - Transitions: linear 120ms; no eased animations, no border-radius Component changes: - Nav: flat, border-bottom only, lowercase links - Hero: 56px square photo, status dot, @ email glyph - ProjectCard: flat bordered card, 2-col grid, no gradient tile - Skills: key-value rows with dot-separated values - Footer: minimal text links Pages: all sections wrapped in Widget; homelab uses gap-px grid for at-a-glance, services, and ADRs sections. Archive uses flat list layout. Data: remove gradient field from Project type; add optional year field --- src/app/archive/page.tsx | 94 ++++++++------ src/app/globals.css | 56 ++++----- src/app/homelab/page.tsx | 224 +++++++++++++++++---------------- src/app/layout.tsx | 14 +-- src/app/page.tsx | 22 ++-- src/components/Footer.tsx | 25 ++-- src/components/Hero.tsx | 107 +++++++++------- src/components/Nav.tsx | 57 ++++----- src/components/ProjectCard.tsx | 77 +++++------- src/components/Skills.tsx | 44 +++---- src/components/Widget.tsx | 39 ++++++ src/data/projects.ts | 14 +-- 12 files changed, 396 insertions(+), 377 deletions(-) create mode 100644 src/components/Widget.tsx diff --git a/src/app/archive/page.tsx b/src/app/archive/page.tsx index 9fd15070..d2e11e6b 100644 --- a/src/app/archive/page.tsx +++ b/src/app/archive/page.tsx @@ -1,4 +1,5 @@ import type { Metadata } from "next"; +import Widget from "@/components/Widget"; import { archiveProjects } from "@/data/projects"; export const metadata: Metadata = { @@ -9,51 +10,64 @@ export const metadata: Metadata = { export default function ArchivePage() { return ( <> -
-

- Archive -

-

+
+
+ + archive + + +

Earlier Work

-

- Experiments, browser extensions, and bootcamp projects. Kept here for context — not representative of current work. +

+ Experiments, browser extensions, and bootcamp projects. Kept here for context — not + representative of current work.

-
- {archiveProjects.map((project) => ( - -
-

- {project.title} -

-