--canvasPrimary page background
Full-stack software developer
Portfolio 3.0 · interface specification
A living reference for the typography, color, layout, components, and rules that keep this portfolio coherent. Inspect it, copy it, or use the raw DESIGN.md with an engineering agent.
01 · Foundations
The palette stays out of the product's way. Each semantic token has a tuned dark counterpart rather than a mechanically inverted value.
--canvasPrimary page background
--surfaceQuiet media and data stages
--surface-strongRaised tonal separation
--inkPrimary text and controls
--mutedSupporting copy
--faintAA-compliant metadata and tertiary labels
--borderStructural hairlines
--signalLinks, focus, and active state
--signal-softSelected-state background
--signal-inverseSmall accent text on inverted ink surfaces
Small steps tighten interface details; fluid section space carries the editorial rhythm.
4px8px12px16px24px40px64pxclamp(6rem, 10vw, 9rem)02 · Typography
Geist handles editorial clarity. Geist Mono carries identity, technical metadata, and measured data. Decorative code and terminal styling are excluded.
clamp(3.4rem, 7vw, 6.3rem)Ideas become reliable products.
520 · −0.065emVan AJ Vanguardia
1rem / 1.65 · 42rem maxBuild the smallest coherent system that solves the user's problem, then validate the details that make it dependable in production.
.62–.72remTYPESCRIPT · ASP.NET CORE · CEB 10.3157° N
03 · Components
Components exist to preserve meaning, state, and accessibility. Most editorial content remains unboxed and gains structure from alignment.
Live controls
State language
03 · EXPERIENCE⌘ 3Persistent identity, section state, utilities, and direct contact.
A consistent return path on every focused route.
A restrained thesis with readable supporting context.
Text-first action reserved for meaningful navigation.
Comparable facts separated by rules instead of floating cards.
A quiet product-first surface for authentic screenshots.
Equal-size theme and sound controls with explicit labels.
A three-pixel Signal Blue outline visible across themes.
04 · Structure
Every route starts with orientation, develops one subject through evidence, and ends with a useful next step. These fragments are ready to copy.
:root {
--canvas: #fbfbfa;
--surface: #f1f2f2;
--surface-strong: #e7e9ea;
--ink: #121416;
--muted: #62686f;
--faint: #686e75;
--border: #dfe2e4;
--signal: #155eef;
--signal-soft: #e9efff;
--signal-inverse: #77a6ff;
--rail: 15.5rem;
--max: 74rem;
--text-max: 42rem;
--section-space: clamp(6rem, 10vw, 9rem);
}<section className="section" aria-labelledby="section-title">
<header className="section-heading">
<span className="section-index">01</span>
<h2 id="section-title">A clear product claim.</h2>
<p>Evidence and context, kept within a readable measure.</p>
</header>
{/* Product evidence, not decorative cards */}
</section>Fixed studio rail, full editorial canvas, asymmetric product storytelling.
Sticky top header, reduced columns, content order preserved.
Single-column narrative, 44px targets, intentional data scrolling.
05 · Operating rules