DESIGN.md · Analysis

Paul Hartmann

paulhartmann.dev · 7 Sept 2026 · 47 colors · "Arial Narrow", "Helvetica Neue", Arial, sans-serif, Inter, "Helvetica Neue", Arial, sans-serif

Paul Hartmann

Independent full-stack engineer building precise, scalable digital products. A design system rooted in architectural minimalism and high-contrast clarity.

Colors

surface#000000
surface-dim#0a0a0a
surface-bright#1a1a1a
surface-container-lowest#050505
surface-container-low#0a0a0a
surface-container#101010
surface-container-high#1a1a1a
surface-container-highest#2d2d2d
on-surface#ffffff
on-surface-variant#b3b3b3
inverse-surface#ffffff
inverse-on-surface#000000
outline#505050
outline-variant#343434
surface-tint#ffffff
primary#ffffff
on-primary#000000
primary-container#e9ecef
on-primary-container#1a1a1a
inverse-primary#000000
secondary#737373
on-secondary#ffffff
secondary-container#505050
on-secondary-container#ffffff
tertiary#b3b3b3
on-tertiary#000000
tertiary-container#d0d0d0
on-tertiary-container#1a1a1a
error#ff6b6b
on-error#ffffff
error-container#8b0000
on-error-container#ffffff
primary-fixed#e9ecef
primary-fixed-dim#d0d0d0
on-primary-fixed#000000
on-primary-fixed-variant#1a1a1a
secondary-fixed#737373
secondary-fixed-dim#505050
on-secondary-fixed#ffffff
on-secondary-fixed-variant#e9ecef
tertiary-fixed#b3b3b3
tertiary-fixed-dim#737373
on-tertiary-fixed#000000
on-tertiary-fixed-variant#1a1a1a
background#000000
on-background#ffffff
surface-variant#1a1a1a

Typography

display
fontFamily: "Arial Narrow", "Helvetica Neue", Arial, sans-serif · fontSize: 166px · fontWeight: 800 · lineHeight: 0.78 · letterSpacing: -0.075em
headline-lg
fontFamily: "Arial Narrow", "Helvetica Neue", Arial, sans-serif · fontSize: 104px · fontWeight: 700 · lineHeight: 0.92 · letterSpacing: -0.06em
headline-md
fontFamily: "Arial Narrow", "Helvetica Neue", Arial, sans-serif · fontSize: 60px · fontWeight: 700 · lineHeight: 1.06 · letterSpacing: -0.05em
title-lg
fontFamily: Inter, "Helvetica Neue", Arial, sans-serif · fontSize: 48px · fontWeight: 600 · lineHeight: 1 · letterSpacing: -0.05em
body-lg
fontFamily: Inter, "Helvetica Neue", Arial, sans-serif · fontSize: 20px · fontWeight: 400 · lineHeight: 1.5 · letterSpacing: 0em
body-md
fontFamily: Inter, "Helvetica Neue", Arial, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 1.5 · letterSpacing: 0em
label-md
fontFamily: "SFMono-Regular", Consolas, "Liberation Mono", monospace · fontSize: 12px · fontWeight: 600 · lineHeight: 1 · letterSpacing: 0.08em
label-sm
fontFamily: "SFMono-Regular", Consolas, "Liberation Mono", monospace · fontSize: 12px · fontWeight: 500 · lineHeight: 1.3 · letterSpacing: 0.08em

Design guidance

Overview

Paul Hartmann is an independent full-stack engineer building precise, scalable digital products for founders and focused teams. The design system embodies **Architectural Minimalism**—a philosophy that strips away ornamental complexity in favor of stark, high-contrast clarity. The aesthetic is unapologetically monochromatic: pure black (#000000) canvas, pure white (#ffffff) accents, and a carefully calibrated grayscale palette (muted #b3b3b3, dim #737373, divider #1a1a1a). The UI evokes a sense of technical precision and inevitability; every pixel serves a function, every interaction feels decisive. The brand personality is direct, pragmatic, and systems-oriented—no breathless marketing language, no soft edges. Example sentence in voice: "Strategy, interface, engineering, and launch in one precise practice."

Colors

The color system operates on a principle of **maximum contrast and functional clarity**. Primary (#ffffff) is the signature accent—used exclusively on call-to-action buttons, interactive elements, and focus states. It commands attention through its stark opposition to the black canvas. On-primary (#000000) ensures text and icons remain legible at all scales. The surface stack descends from pure black (#000000) through carefully spaced grays: surface-container-lowest (#050505), surface-container (#101010), surface-container-high (#1a1a1a), and surface-container-highest (#2d2d2d). This granular stack enables subtle depth without introducing color. Secondary (#737373) and tertiary (#b3b3b3) are supporting neutrals used for secondary text, disabled states, and subtle UI elements. Outline (#505

Typography

The type system pairs two distinct families to reinforce hierarchy and function. Display and headline levels use **Arial Narrow** (fontWeight 700–800, letterSpacing -0.06em to -0.075em) for maximum impact and architectural presence. Body and label text use **Inter** (fontWeight 400–600) for legibility and approachability. The display tier (166px, lineHeight 0.78) is reserved for hero statements and section titles; headline-lg (104px, lineHeight 0.92) anchors major sections; headline-md (60px, lineHeight 1.06) supports subsections. Body-lg (20px, lineHeight 1.5) and body-md (16px, lineHeight 1.5) handle descriptive copy with generous line-height for readability on dark backgrounds. Label-md (12px, letterSpacing 0.08em, fontFamily monospace) is applied to navigation, metadata, and UI labels—

Layout

The layout system uses a **12-column fluid grid** with a maximum container width of 1280px. Horizontal padding (--page) scales fluidly: clamp(20px, 5.55vw, 80px), ensuring responsive breathing room from mobile to desktop. The gutter between grid columns is fixed at 24px. Section spacing follows a semantic scale: xs (8px), sm (12px), md (24px), lg (40px), xl (64px), xxl (96px). Major section breaks use lg or xl spacing (40px–64px) to create rhythm and visual rest. The hero section occupies 100svh with 144px top padding and 48px bottom padding, establishing a generous entry point. Work cards flex at 72vw (clamped to 880px max) within a horizontal scroll rail, creating a carousel effect. The split layout (about section) uses a 5-column media block paired with a 6-column copy block, maintainin

Elevation & Depth

Depth in this system is achieved through **stark contrast and geometric precision** rather than soft shadows. The design employs three elevation levels: Level 1 (Base) is the pure black background (#000000) with no embellishment. Level 2 (Standard Cards) introduces subtle inset shadows and borders: box-shadow: inset 42px -28px 0 #101010, inset -28px 22px 0 #222222 creates a geometric, faceted appearance reminiscent of architectural models. Level 3 (Modals and Overlays) uses a fixed header with backdrop-filter: blur(16px) and background: rgba(0, 0, 0, 0.88), creating a frosted-glass effect with

Shapes

The shape philosophy is **Architectural Sharpness**—a commitment to 0px or minimal border-radius that reinforces precision and technical rigor. Buttons, cards, and inputs use 0px border-radius by default, creating sharp, rectilinear forms. The sole exception is the full-circle avatar and icon buttons (border-radius: 50%), which provide visual relief and signal interactivity. Input fields use 4px border-radius for subtle softening without compromising the austere aesthetic. This sharpness extends to all UI elements: work cards have 0px radius, the header has 0px radius, and even the menu overla

Components

Action Elements Buttons follow a unified interaction model: all buttons use 52px minimum height, 1px solid borders, and 0px border-radius. Primary buttons (button-primary) have backgroundColor: {colors.primary}, textColor: {colors.on-primary}, and apply a 0.25s transition on hover with transform: translateY(-3px) for subtle lift. Secondary buttons (button-secondary) use transparent background with a white border, inverting on hover. Ghost buttons (button-ghost) are identical to secondary but with explicit gap: 20px for icon spacing. All buttons use label-md typography (12px, 0.08em letter-spacing, monospace) for consistency. Hover states apply a 0.25s cubic-bezier(0.22, 1, 0.36, 1) easing curve for snappy, intentional feedback.

Containers & Surfaces Cards (card-work) have backgrou

Do's and Don'ts

**Do**

  • Do use pure white (#ffffff) and pure black (#000000) as the primary contrast pair—they are the brand's signature and must never be diluted or substituted.
  • Do apply negative letter-spacing (-0.04em to -0.075em) to all display and headline text to tighten word spacing and reinforce architectural precision.
  • Do use 0px border-radius on buttons, cards, and inputs to maintain the sharp, technical aesthetic—exceptions are full-circle elements (50%) for semantic clarity.
  • Do apply cubic-bezier(0.22, 1, 0.36, 1) easing to all transitions (0.25s–0.45s) for snappy, intentional motion that feels engineered.
  • Do use the monospace font family (SFMono-Regular, Consolas, Liberation Mono) exclusively for labels, metadata, and UI text to reinforce technical identity.
  • Do maintain the 8px unit grid for all spacing decisions—no arbitrary padding or margins outside the defined scale.

**Don't**

  • Don't introduce color beyond the defined palette—no gradients, no accent colors, no brand-new hues. The system is intentionally monochromatic.
  • Don't use border-radius > 4px on interactive elements (buttons, inputs, cards)—this dilutes the architectural sharpness and feels inconsistent with the brand.
  • Don't apply box-shadow: 0 0 0 0 or soft drop shadows—use inset shadows and stark contrast instead. Shadows must be purposeful and geometric.
  • Don't use transparency (rgba) for backgrounds except in the header (rgba(0, 0, 0, 0.88)) and overlay states—solid colors are more legible and intentional.
  • Don't mix typefaces within a single text block—display uses Arial Narrow, body uses Inter, labels use monospace. No exceptions.
  • Don't animate opacity alone—pair it with transform (translateY, scale, translateX) for motion that feels engineered and deliberate.