Design language comparison
Contra vs ReadMe
Both Contra and ReadMe commit to a light-canvas approach, and they pair different display families (GT Standard M vs ui-sans-serif). Beyond surface, motion levels are both expressive.
Palette · side by side
Up to 8 dominant swatches eachSide A · light
Contra
Full Page
#14171f
foreground
#ffffff
background
#677084
foreground
#373f51
foreground
#d0d4dc
foreground
#000000
foreground
#9ba2b0
foreground
#e5e7eb
neutral
Side B · light
ReadMe
Full Page
#e1e4e8
foreground
#000000
foreground
#ffffff
background
#001361
accent
#fc6d26
accent
#0e2af5
accent
#1c1e23
foreground
#e24329
accent
Typography · side by side
Primary family + weight ladder + sampleSide A · light
Contra
Full Page
- Display
- GT Standard L
- Body
- GT Standard M
- Weights
- 400 · 500 · 600
Sample
The quick brown fox jumps over the lazy dog.
1234567890 — Body sample renders in the captured family if your browser has it; otherwise system fallback signals the weight ladder.
Side B · light
ReadMe
Full Page
- Display
- STKBureauSerif
- Body
- ui-sans-serif
- Mono
- Geist Mono
- Weights
- 400
Sample
The quick brown fox jumps over the lazy dog.
1234567890 — Body sample renders in the captured family if your browser has it; otherwise system fallback signals the weight ladder.
Spacing scale · side by side
Base unit + first 8 scale valuesSide A · light
Contra
Full Page
- Base unit
- 4 px
- Container max
- 1848 px
Side B · light
ReadMe
Full Page
- Base unit
- 4 px
- Container max
- 1120 px
Motion vocabulary · side by side
Level + durations + easingsSide A · light
Contra
Full Page
- Level
- expressive
- Libraries
- —
Durations
Easings
Side B · light
ReadMe
Full Page
- Level
- expressive
- Libraries
- Framer Motion
Durations
Easings
Palette & spacing overlap
Their palettes share 10% of swatches at the dominant tier — a quiet signal both teams drew from the same neutral library before applying brand accents. Their spacing scales overlap by 75% (2, 4, 6, 8, 10 px shared) — a rhythm any agent can transfer between the two systems with minimal recalibration.
Shared swatches (2)
Curator verdict
If you are building an interface that needs to reference both, Contra's restraint reads as the safer default and ReadMe's rhythm provides the accent moments — pair them at section-level, not at component-level.