Colours#
Moss green · primary colour#
Built around #2E6218, at a constant hue (102°). Too dark for dark mode (2.4:1), the source
colour gives way to primary-400 there.
links, dark modelinks, light modesource colourAmber · secondary colour#
Tags, badges, key figures; replaces the green on the Freelance block of the CV.
Tinted neutrals#
Greys pulled towards green (hue 100°): a pure grey next to green looks dirty.
background, light modebackground, dark modetext, light modeOff-palette#
Brick red (#E2A58C, stamp #8A3B22), the opposite of green, reserved for the “terracotta”
sticky notes of the jazz notebook.
Typography#
Archivo 900 · page title
Hierarchical reconciliation
Archivo 800 · headings
What got stuck
IBM Plex Sans 400 · body text
Forecasts produced series by series don't add up: the regions don't sum to the national total.
IBM Plex Mono 400 · dates, tags, code
8 October 2026 · 1,701 words · 0123456789
Caveat 700 · jazz notebook only
ii – V – I in F, to practise
Components#
Link, badge, button#
A link in the text, then a badge and a button:
New See the projectsCallout#
Key figures#
37
pull requests
+2.3%
regional MASE
Project card#
Code and table#
def balance(opening: Decimal, transactions: list[Decimal]) -> Decimal:
return opening + sum(transactions, Decimal(0))| Example | Value | Gap |
|---|---|---|
| Baseline | 1,000.00 | — |
| Variant | 1,023.00 | +2.3% |
