A full alignment pass across all eighteen design pages and the GitHub-facing surfaces — checking that every page, color, component, and line speaks in the one voice the brand evolved into: modern, warm, and plant-forward, with Sprout center stage.
This page is both the record of what changed and the reference for how to keep it consistent. The reasoning behind the not-taken routes is distilled in _archive/roads-not-taken.md; every pre-alignment original is recoverable from Git history.
The one standard
The canon every surface is measured against. When in doubt, this wins.
VOICE
Write as Sprout — first person, on plant-facing surfaces. Fact, then feeling. One short, glanceable line. Calm under fault. No baby-talk, no emoji, no guilt, no invented numbers. Tooling & process copy stays plain and warm — not first person.
THE LIVING MARK
One mark — two leaves on a stem. Static when it must be, alive when it can. Sway (idle) · breathe (thriving) · droop (thirsty) · bob (greeting). Honors reduced-motion.
COLOR & SOIL MODE
Consume tokens, never redefine. Leaf #34A853, the seven --band-* meaning colors. Soil (dark) mode is the refined cool green-charcoal — never the old warm-olive.
TYPE
Baloo 2 for display & Sprout's voice · Hanken Grotesk for UI & body · JetBrains Mono for every number and datum, always.
CHARACTER & THE BOUNDARY
Raw + band are the reading; any 0–100 is a labelled relative index, never VWC. Mood follows the band, never the index. Character layers beside the instrument — never inside the numbers.
THE SIGN-OFF
tend well.
What changed — soil mode, brought to v3
The biggest drift was the dark theme. The v2-era pages still used the original warm-olive soil mode and the old acid green; v3 / ADR-0008 refined those neutrals to a cool green-charcoal and softened the green, but the early pages predated it. This pass folds the refinement into every live page so soil mode reads the same everywhere.
Old (warm-olive) → New (cool green-charcoal)
#0E140B→#0C1311
#1B2417→#18231F
#283322→#29372F
#9EE04A→#93DD6A
#EAF2E0→#E9F1EB
#7C8A72→#8B9B90
Changelog · 14 pages aligned · ~725 token swaps
Same change on every row: warm-olive → cool green-charcoal soil neutrals, acid green → refined green, warm cream text → cool sage-white. Light mode and all --st-* / --band-* meaning colors untouched.
{{ row.file }}{{ row.swaps }} swaps
Preserved as history — left unaligned on purpose
Plant Design System — direction A (lush botanical). A rejected exploration; aligning it would erase the record of why we chose Plant's POV.
Personality Directions — the five-way shortlist, including the cut options. Same reason: it documents the decision.
v3 Personality Layer — it is the before/after record of this exact warm→cool change; its "before" swatches must stay warm.
Already on-standard (checked, no change)
Voice across surfaces — first-person on plant-facing pages; the GitHub issue forms / PR / CONTRIBUTING were voiced plain in the batch-2 pass.
Type & the mark — Baloo 2 / Hanken / JetBrains Mono and the two-leaf mark are consistent on every page.
Sign-off — "tend well." closes the pages that should close.
Resolved this pass: BRAND.md's token table now reads #0C1311 for dark --bg — matching sprout-tokens.css, the source it quotes (which was already on v3). Corrected canonical is proxy-ready.
How to apply this — the short version
If you're making or touching a Sprout surface, this is the checklist that keeps it one voice:
→Speak as the plant on plant-facing copy; plain & warm everywhere else.
→Pull colors from the tokens; for dark, use the cool green-charcoal set.
→Let the mark be alive; pick motion by mood; honor reduced-motion.
→Numbers are mono and exact; mood follows the band, not the index.
→Keep character beside the instrument, never inside the readouts.
→Close with tend well. — and no emoji in product copy.