Design System
A small working design system for my portfolio – starting from foundations (tokens), through utilities, and eventually into components.
Typography
Usage-agnostic type scale
Font size
| Token | Value |
|---|---|
| font-size.xxxs | 12px |
| font-size.xxs | 13px |
| font-size.xs | 14px |
| font-size.sm | 16px |
| font-size.md | 20px |
| font-size.lg | 24px |
| font-size.xl | 32px |
| font-size.2xl | 40px |
| font-size.3xl | 48px |
Line height
| Token | Value |
|---|---|
| line-height.none | 1 |
| line-height.compact | 1.1 |
| line-height.tight | 1.2 |
| line-height.snug | 1.4 |
| line-height.relaxed | 1.5 |
| line-height.loose | 1.7 |
Tracking
| Token | Value |
|---|---|
| tracking.tight | -0.03em |
| tracking.normal | 0em |
| tracking.expanded | 0.02em |
Font weight
| Token | Value |
|---|---|
| font-weight.regular | 400 |
| font-weight.medium | 500 |
Color & Radius
Foundational visuals
Color
| Token | Warm | Cool |
|---|---|---|
| color-0 | #100F0C | #0a0a0a |
| color-10 | #191813 | #141414 |
| color-20 | #23221B | #1f1f1f |
| color-30 | #23251E | #262626 |
| color-40 | #2E3027 | #333333 |
| color-50 | #424539 | #484848 |
| color-60 | #555A4B | #5c5c5c |
| color-80 | #C5BFAB | #a3a3a3 |
| color-90 | #F3F0E9 | #e5e5e5 |
| color-100 | #FFFFFF | #ffffff |
Radius
| Token | Value | Preview |
|---|---|---|
| radius.sm | 8px | |
| radius.md | 12px | |
| radius.lg | 20px | |
| radius.full | 9999px |
Theming
Dynamic tokens for color scheme switching
Theme-aware tokens
| Token | Warm | Cool | Role |
|---|---|---|---|
| color-0-rgb | 16, 15, 12 | 10, 10, 10 | RGB for gradient opacity |
| color-20-rgb | 35, 34, 27 | 31, 31, 31 | RGB for gradient opacity |
| color-60-rgb | 85, 90, 75 | 92, 92, 92 | RGB for hover opacity |
| color-blend | #43402C | #3a3a3a | Illustration color overlay |
| color-accent | #84873d | #6b6b6b | Button fill (e.g. Water button) |
| image-filter | none | grayscale(100%) | Theme-based image filter |
Spacing & Layout
Structure + rhythm
Spacing
| Token | Value | Preview |
|---|---|---|
| space.xs | 4px | |
| space.sm | 8px | |
| space.md | 12px | |
| space.lg | 20px | |
| space.xl | 24px | |
| space.2xl | 32px | |
| space.3xl | 40px |
Layout
| Token | Value |
|---|---|
| size.container | 1352px |
| space.gutter | 20px |
| grid.columns | 12 |
| grid.gutter | 20px |
| grid.margin | 40px |
| container.max-width | 1352px |
| container.padding.x | 40px |