One source for how anything steerlab makes should look: research notes, the research page, the README, the web demo, images, diagrams and 3D scenes. Read it before designing; update it when a decision changes.
steerlab is a control desk. It turns a model’s insides into something you can watch, push with a fader, and measure. Every visual choice comes from that idea or from steerlab’s own data, never from another lab’s look.
Principles:
results/.
Illustration explains a mechanism, it never decorates.| Token | Light | Dark | Meaning and use |
|---|---|---|---|
--canvas |
#ffffff |
#121516 |
Page background. Light is the default; dark only from the reader’s switch, never the system setting |
--ink |
#1d272a |
#e8ecec |
Text |
--ink-soft |
#586468 |
#a7b1b3 |
Secondary text, captions |
--ink-faint |
#8a9497 |
#7b8689 |
Labels, meta |
--rule |
#e3e7e8 |
#2a3133 |
Hairlines, borders |
--panel |
#f5f6f4 |
#1b2022 |
Code blocks only (no boxed prose) |
--accent steer orange |
#c9561c |
#e07a3f |
What steering does: steered data, the direction arrow, headline numbers |
--accent-soft |
#f8e6dc |
#3a2419 |
Highlighted table row, emphasised words in quoted replies |
--control fader blue |
#4a86e8 |
#6f9ff0 |
Controls and settings: faders, sliders, channel tags, the steering layer in art |
--ground Ember |
#15110e |
#15110e |
Art, 3D scenes, the web demo (its own palette) |
Art palette on the Ember ground: stream greys #6f675f → #a39a90, steered #f2b48e → #e07a3f → #c9561c,
control #4a86e8, text #d9d2ca. Never use orange for decoration or blue for data.
| Role | Face | Use |
|---|---|---|
| Display | Bricolage Grotesque 700 (650 for small labels) | Titles (44px, −0.025em), section headings (32 / 22px), card titles, figure labels |
| Body | Source Serif 4 400, 17px / 1.65, 18px between paragraphs | Reading text, summaries (dek 19px), quotes (italic) |
| Mono | JetBrains Mono | Eyebrows, meta labels, table headers, channel tags, fader values, code |
| Chalk | Kalam 400, inside a figure only | The chalkboard figure that works maths out by hand (sandbagging episode 1), on its own board palette like the hand-drawn diagrams |
Load from Google Fonts with display=swap. Curly quotes and apostrophes in text. Numbers in tables are tabular.
experiments/<name>/report/): one ~680px column centred; contents rail fixed at the window’s left
edge (13px, current section underlined in ink), hidden below 1180px. Order: eyebrow → title → one-sentence dek →
hero (16:9, square corners) → meta row (author first) → In short (rules in
SEO.md) → key results (a plain list) → numbered sections (Introduction, Setup, How the study
was run, Results, What this does not show, Reproduce it, What’s next,
Questions and answers, Appendix with “How to cite”).experiments/index.html): one row per note, newest first: a category chip, the title, one line,
author and date on the left; the note’s 3:2 cover on the right; hairline rules between rows.--accent-soft.language-python,
language-bash) get syntax colours from highlight.js (pinned, cdnjs). Syntax colours are code-only tokens
(--code-*), never used outside a code block.gpt-image-2
(1536×1024, quality high), on warm off-white paper, detailed and crafted, never cartoonish (no faces, no mascots).
Each note gets its own medium chosen to fit its idea (an isometric miniature, an etching, a specimen plate, a print);
the picture must say what the note is about at a glance (for a language note, show the language; for a model,
show its layers or neurons). Save the hero as JPEG at 1600px and the thumbnail at 720px in experiments/shared/thumbs/.experiments/shared/make_art.py draws a flow field from an experiment’s saved direction: streamlines
run straight to the steering layer (a blue rule) and then follow the direction. Used inside a note as the
“drawn from the data” figure, not as its cover.gpt-image-2 using this style line, and check every label’s spelling:
“Precise technical illustration, like an engineering cutaway on a control desk screen: very dark warm charcoal
background (#15110E), thin light warm-grey line work (#D9D2CA), steer orange (#C9561C) only for the steering vector
and what it changes, one accent of fader blue (#4A86E8) for the control. Clean, calm, generous space, slight glow on
the orange. Labels in a clean sans-serif, spelled exactly as given, nothing else written.”
Save as JPEG at 1600px (about 150 to 350 KB)..excalidraw source next to the PNGs..pipeline): every step looks the same. No step is singled out in orange; orange marks
only what steering does (removed from the last step 2026-10-27).docs/assets/logo.png: the stream mark (parallel lines, one nudged off course by an arrow), orange on a dark rounded
tile with transparent corners. Use it at 64px or more; do not recolour it or put it on orange.
SEO.md; this file keeps only
where those parts sit on the page.