Refined minimalism. A serif for personality, mono for system, sans for prose. One warm accent, used with restraint. Whitespace earns its keep.
Mostly grayscale on warm off-white. The amber accent is rare on purpose — use it for one thing per view: a hover state, a single mark, a callout.
4px base scale. Most components use s-3 through s-7. Section gaps use s-8 or s-9.
Three families. Instrument Serif for display headings — adds warmth and editorial personality. Geist for prose and UI — modern, neutral, highly legible. JetBrains Mono for system text — labels, dates, metadata, tech tags.
Page anchor. Use sparingly — one per major section. The trailing rule pulls the eye across.
Pill buttons. Outlined for secondary actions, solid for primary CTAs. Mono label gives them a technical feel.
Inline links blend in until hovered, then go amber with an underline. Arrow links signal "go somewhere" — the arrow drifts on hover.
Tech stack chips for project cards. Mono, lowercase, hairline border.
List-style cards over grid-style cards. Year on the left, title in serif, mono tags below. Hover slides the card right and shifts the title to amber.
Hairline border, soft elevated background, slight border-radius. Use for screenshots and product shots inside case studies.
A few rules I'm holding myself to.
Amber appears at most once per screen. The period after the name. A hover state. A single mark. If everything's accented, nothing is.
Don't mix roles. Don't put body copy in serif. Don't put dates in sans. Each font signals what kind of information it is.
If something needs separation, try more space first. Lines and borders are a last resort. The eye finds rhythm in whitespace.
Dates, years, locations float to the right. Titles and content anchor left. The eye sweeps and lands without working.
Resting states are quiet. Hover states do the work — color shift, a small slide, the arrow drifting. Reward the cursor.
/* Drop into your global stylesheet */ :root { /* color */ --bg: #fafaf7; --bg-elev: #ffffff; --ink: #161513; --ink-2: #3d3a36; --muted: #8a847d; --rule: #e8e4dd; --accent: #b45309; --accent-soft: #fef3c7; /* type */ --font-serif: 'Instrument Serif', Georgia, serif; --font-sans: 'Geist', -apple-system, sans-serif; --font-mono: 'JetBrains Mono', ui-monospace, monospace; /* spacing (4px base) */ --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px; /* layout */ --max-w: 1040px; --max-w-read: 720px; --radius-pill: 999px; --radius-card: 4px; } /* Google Fonts link to add to <head> */ <link href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">