@expresearch/exp-sans
v1.1.3
Published
Brand typeface for EXP Research. A derivative of Nimbus Sans L, mutated with grotesque personality.
Downloads
606
Readme
EXP Sans
The brand typeface for House of EXP. A derivative of Nimbus Sans L, mutated with grotesque personality.
Status: WIP - Regular, Italic, and Bold v1.002 ready for visual review.
Quick Start
make setup # Download base font, create .venv, install deps
make build # Generate Regular, Italic, and Bold in all four formats
make test # Validate structure and metrics
make clean # Remove generated outputProject Structure
sources/ # UFO master files (gitignored base font + committed mutations)
scripts/mutations/ # Python mutation scripts (sequential, replayable)
build/ # Build pipeline scripts
output/ # Generated font files (gitignored)
tests/ # Structural and metric validation
okf/ # Project knowledge (decisions, usage, implementation)
docs/adr/ # Architecture Decision RecordsConsuming the Font
npm install @expresearch/exp-sans@import '@expresearch/exp-sans/exp-sans.css';
body {
font-family: 'EXP Sans', sans-serif;
}
strong { font-weight: 700; }
em { font-style: italic; }Agent Workflow
Terminology: Read CONTEXT.md first. It defines the domain language: base, mutation, master, character set vs glyph inventory, and testing layers.
Design decisions: See docs/adr/ for hard-to-reverse choices and their rationale.
Mutation convention:
- One mutation = one Python script in
scripts/mutations/ - Sequential numbering:
0001-keep-nimbus-double-story-a.py - Each commit = script + UFO changes + OKF log entry + passing tests
- Trunk-based on
main, linear history
Glyph shape changes: Via defcon scripts (path topology is fragile, needs validation).
Metrics/kerning: Direct XML editing in UFO plist files.
Design Direction
EXP Sans targets a hybrid direction: Swiss skeleton, grotesque personality.
- Base: Nimbus Sans L (Helvetica-derived, neutral canvas)
- Styles: Regular source master, 12° Italic derivative, 700 Bold derivative
- Terminals: Flat on verticals, angled on curves
- Glyph mutations: Open
e, softenedg/f, curvedl, splayedR, wedgeG, sweepingQ(theakeeps its Nimbus double-story form) - Proportions: Nimbus Sans L foundation with concentrated asymmetry
- Stroke contrast: Low (grotesque tradition)
- Inspirations: AutoSpawn (fork-and-mutate approach), Work Sans (quirky details), TeX Gyre Heros (glyph smoothness), Young Serif (restrained rounded generosity, no copied outlines)
See docs/adr/0003-hybrid-direction.md for the full rationale.
License
OFL 1.1 with Reserved Font Name "EXP Sans". See LICENSE.
Further Reading
- CONTEXT.md — Domain terminology and project glossary
- okf/project.md — Project overview and scope
- okf/usage.md — Where EXP Sans is used
- okf/implementation.md — Build pipeline and tooling
- docs/adr/ — Architecture Decision Records
