DESIGN.md · Analysis

Christopher Indrawan

topengdev.com · 5 Jul 2026 · 45 colors · Source Serif 4, Space Grotesk

Christopher Indrawan

A senior fullstack engineer's portfolio showcasing production-grade software architecture and fintech expertise through a warm, paper-textured design system emphasizing clarity and technical precision.

Colors

surface#f5f1e5
surface-dim#eddfd3
surface-bright#faf7ec
surface-container-lowest#faf7ec
surface-container-low#f5f1e5
surface-container#e9ecdd
surface-container-high#e7dfd1
surface-container-highest#eddfd3
on-surface#1b1813
on-surface-variant#514b40
inverse-surface#1b1813
inverse-on-surface#f5f1e5
surface-tint#4a7c6f
primary#4a7c6f
on-primary#f5f1e5
primary-container#3a6356
on-primary-container#faf7ec
inverse-primary#8c8676
secondary#514b40
on-secondary#f5f1e5
secondary-container#8c8676
on-secondary-container#faf7ec
tertiary#e7dfd1
on-tertiary#1b1813
tertiary-container#eddfd3
on-tertiary-container#514b40
error#c5192d
on-error#f5f1e5
error-container#8b0000
on-error-container#faf7ec
primary-fixed#3a6356
primary-fixed-dim#4a7c6f
on-primary-fixed#faf7ec
on-primary-fixed-variant#f5f1e5
secondary-fixed#8c8676
secondary-fixed-dim#514b40
on-secondary-fixed#faf7ec
on-secondary-fixed-variant#f5f1e5
tertiary-fixed#eddfd3
tertiary-fixed-dim#e7dfd1
on-tertiary-fixed#1b1813
on-tertiary-fixed-variant#514b40
background#f5f1e5
on-background#1b1813
surface-variant#e9ecdd

Typography

display
fontFamily: Source Serif 4 · fontSize: 84px · fontWeight: 500 · lineHeight: 80px · letterSpacing: -0.035em
headline-lg
fontFamily: Source Serif 4 · fontSize: 52px · fontWeight: 500 · lineHeight: 56px · letterSpacing: -0.03em
headline-md
fontFamily: Source Serif 4 · fontSize: 40px · fontWeight: 500 · lineHeight: 44px · letterSpacing: -0.025em
title-lg
fontFamily: Source Serif 4 · fontSize: 28px · fontWeight: 500 · lineHeight: 32px · letterSpacing: -0.02em
body-lg
fontFamily: Space Grotesk · fontSize: 18px · fontWeight: 500 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Space Grotesk · fontSize: 16px · fontWeight: 500 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Space Grotesk · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Space Grotesk · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.05em
mono-sm
fontFamily: JetBrains Mono · fontSize: 13px · fontWeight: 400 · lineHeight: 20px · letterSpacing: 0em
pixel-accent
fontFamily: Pixelify Sans · fontSize: 18px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em

Design guidance

Overview

Christopher Indrawan's portfolio embodies **Warm Minimalism with Technical Precision**—a design philosophy that marries the tactile warmth of paper textures (#f5f1e5 surface, #faf7ec raised) with the clarity demanded by production engineering. The aesthetic rejects cold, corporate sterility in favor of an approachable, human-scaled interface that communicates expertise without arrogance. The brand serves senior engineers, CTOs, and technical founders who value substance over flash: every pixel choice reflects architectural thinking. The voice is direct, measured, and evidence-based—no hyperbole, no jargon for its own sake. Example: "I architect and ship production software end to end" (not "I build amazing things"). The teal accent (#4a7c6f) appears sparingly on CTAs and key metrics, functioning as a visual anchor that draws the eye to action without dominating the composition.

Colors

The color system centers on a warm, paper-like foundation (surface #f5f1e5, surface-raised #faf7ec) that evokes the tactile quality of high-end printed materials—a deliberate choice to ground the digital experience in physical authenticity. The primary accent, teal (#4a7c6f), is deployed exclusively on interactive elements (buttons, hover states, accent text like the pixelated 'Engineer' word) and data highlights (the '3+' years metric). This restraint ensures the accent retains its signal strength: when teal appears, it commands attention. The ink stack (on-surface #1b1813, on-surface-variant #514b40, on-surface-faint #8c8676) provides semantic hierarchy—darkest for primary content, softer for secondary labels and metadata. Borders use a transparent ink overlay (outline #1b18131f, outline

Typography

The type system pairs Source Serif 4 (display, headlines) with Space Grotesk (body, UI labels) and JetBrains Mono (code snippets, metadata). This combination signals both editorial authority (serif for headlines at 84px / 52px / 40px with tight -0.035em to -0.02em letter-spacing) and technical credibility (monospace for the terminal-style 'whoami' block). Body copy in Space Grotesk at 18px / 16px with 500 weight maintains warmth while preserving readability at small sizes. The display scale uses a fluid clamp() function (3rem to 10.5rem depending on viewport) to ensure the hero 'Fullstack Engineer' headline scales elegantly from mobile to desktop without jarring jumps. Accent typography uses Pixelify Sans at 18px for the word 'Engineer' to introduce a playful, retro-technical note that bre

Layout

The layout employs a 12-column grid with 24px gutters (--spacing: 0.25rem base unit, scaled to 24px for section padding). The container max-width is 1440px, allowing breathing room on ultra-wide displays while maintaining focus on content. Page rhythm is driven by full-height sections (min-h-[100svh]) that anchor the viewport, creating a deliberate scroll cadence: hero section, positioning section (rounded-t-[2.75rem] with -mt-[7vh] overlap), work grid, experience timeline. Whitespace is semantic: lg spacing (40px) separates major sections, md spacing (24px) groups related content, sm spacing (12px) tightens UI components. The grid background (84px × 84px repeating lines at rgba(27, 24, 19, 0.06)) provides a subtle texture that reinforces the paper aesthetic without overwhelming content. R

Elevation & Depth

Depth is conveyed through layered shadows and subtle background shifts rather than aggressive z-index stacking. Level 1 (Base): The grid background (background-image with radial-gradient mask) and paper-noise SVG filter (mix-blend-mode: multiply, opacity: 0.55) establish a textured foundation. Level 2 (Cards): box-shadow: 0 8px 24px rgba(27, 24, 19, 0.1) with rounded-[1.75rem] borders at 1px solid rgba(27, 24, 19, 0.12) creates a subtle lift. On hover, cards translate -4px (transform: translateY(-4px)) and shadow expands to 0 12px 32px rgba(27, 24, 19, 0.15), reinforcing interactivity. Level 3

Shapes

The shape language follows **Architectural Softness**—sharp enough to signal precision, rounded enough to feel approachable. Buttons use rounded-full (9999px) to create pill-shaped CTAs that feel modern and clickable; the primary 'See the work' button at 44px height with 12px 28px padding provides ample touch targets. Cards use rounded-[1.75rem] (28px) for the main work showcase and rounded-[1.5rem] (24px) for secondary cards, creating a visual hierarchy through radius scale. Input fields and tags use rounded-md (6px) or rounded-DEFAULT (4px) to signal utility rather than prominence. The grid

Components

Action Elements Buttons are the primary call-to-action mechanism. The primary button uses background: {colors.primary} (#4a7c6f), text: {colors.on-primary} (#f5f1e5), rounded-full, and padding 12px 28px for a 44px height. On hover, background shifts to {colors.primary-container} (#3a6356) with a 150ms transition. The secondary button uses a transparent background with a 1px border (border-color: {colors.outline-variant}) and text-color: {colors.on-surface-variant}; on hover, it fills with {colors.surface-container-high} and the border becomes {colors.primary}, creating a "reveal" effect. Links use text-decoration: underline with text-decoration-color: {colors.outline-variant} and text-underline-offset: 4px; on hover, both text and underline shift to {colors.primary}. All button and lin

Do's and Don'ts

**Do**

  • Do use the teal accent (#4a7c6f) exclusively on interactive elements and key metrics—never as a background or filler color.
  • Do maintain the warm paper aesthetic by using surface colors (#f5f1e5, #faf7ec) as primary backgrounds and reserving sage/taupe for secondary sections.
  • Do apply transitions with cubic-bezier(0.4, 0, 0.2, 1) over 150ms for all interactive state changes to reinforce precision engineering.
  • Do use Source Serif 4 for headlines (display, headline-lg, headline-md) and Space Grotesk for body/UI to signal both authority and technical credibility.
  • Do employ the full 12-column grid with 24px gutters and maintain the 1440px container max-width for consistent rhythm across viewports.
  • Do use the transparent ink overlay (outline: #1b18131f, outline-variant: #1b18130f) for borders instead of hard grays to preserve the paper aesthetic.

**Don't**

  • Don't use the primary teal (#4a7c6f) for body text, backgrounds, or non-interactive elements—reserve it for CTAs and accents only.
  • Don't apply shadows larger than 0 16px 40px rgba(27, 24, 19, 0.12) or use multiple shadow layers; the system uses single, clean shadows for clarity.
  • Don't mix serif and sans-serif fonts within a single headline or body paragraph; maintain the Source Serif 4 (display) + Space Grotesk (body) pairing.
  • Don't use rounded-full for anything other than buttons and badges; cards and inputs use rounded-[1.75rem] or smaller to maintain visual hierarchy.
  • Don't apply animations longer than 500ms for card hovers or 300ms for color transitions; the system prioritizes snappy, responsive feedback.
  • Don't introduce new colors outside the defined palette; if a new accent is needed, derive it from the primary/secondary/tertiary stack rather than inventing ad-hoc hexes.