088a06a51c9cda98cacbb92c5d9c8fc78ef8afde
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
lerko96 portfolio
Personal portfolio site. Live at lerkolabs.com — self-hosted, deployed and maintained through my own operation.
Source lives on my Gitea at gitea.lerkolabs.com. GitHub is a backup mirror, not the primary.
Stack: Next.js 16 · React 19 · TypeScript · Tailwind v4
Branches
dev— source code, all work happens heremaster— built output only; what GitHub Pages serves for the backup mirror. don't touch this manually.
Commands
npm run dev # dev server at localhost:3000
npm run build # static export into out/
npm run deploy # build + push out/ to master (GitHub mirror)
How it deploys
npm run deploy runs predeploy (build) then pushes the out/ directory to master via gh-pages. That's what feeds the GitHub Pages backup at lerko96.com.
postbuild drops out/.nojekyll so GitHub Pages doesn't ignore _next/ assets.
Custom domain is in public/CNAME — gets copied into out/ on build.
Project layout
src/
app/
layout.tsx # root layout, fonts, ThemeProvider
page.tsx # home: hero, skills, project cards
homelab/page.tsx # homelab page: VLANs, services, ADRs
archive/page.tsx # older projects grid
globals.css # full design system (Tailwind v4 CSS-first, all tokens here)
components/ # Nav, Footer, Hero, ThemeScript, etc.
context/
ThemeContext.tsx # dark mode provider + useTheme hook
data/
projects.ts # all projects, featured + archive split
services.ts # homelab services with categories
public/
CNAME # www.lerko96.com
Tailwind v4 is CSS-first — no
tailwind.config.ts. All custom tokens live inglobals.cssunder@theme {}.
Description
Languages
TypeScript
93.8%
CSS
4.9%
JavaScript
1.2%
Dockerfile
0.1%