Skip to content

Brand & design system

Status: Accepted

The visual language: logo, colour, type, and the tokens that carry them into the product. This section owns the requirements and cross-repo integration; the brand repo owns the detailed usage docs and the assets themselves.


Per the three-layer model, brand documentation lives in two places and does not duplicate:

Here (spec 60-brand/) brand repo .docs/
Binding rules as requirements (DES-R) Full logo usage, clear-space maths, colour pairings
How brand reaches the three surfaces The contact sheet, asset index
The accessibility contract
The token contract (in architecture) The token files themselves

If you’re applying the brand, read the brand repo’s docs. If you’re building a consumer of it — the web UI, the TUI — read here.

Two reasons it isn’t just “a logo folder”:

  1. It’s a build-time contract. The web UI consumes @lemonfiber/brand tokens at build time, structurally identical to the CLI consuming the stack manifest. A contract between two repos belongs in the canonical spec.
  2. It intersects accessibility. G3 requires WCAG AA; whether the palette meets AA is a checkable property of the tokens, not a matter of taste — so it’s specified, and tested.
Doc Covers
brand-rules.md The binding constraints — closed palette, amber-as-signal, mark integrity
surface-mapping.md How the brand reaches web, TUI and CLI — and what doesn’t apply where
accessibility.md The contrast contract, with computed per-pairing verdicts
trademark.md The forking & naming policy — fork the code, don’t wear the name

The token schema lives in 20-architecture/contracts/ with the other build-time contracts.

Brand requirements use DES-R## — the sixth namespace, alongside feature (A2-R4), governance (GOV-R), architecture (ARCH-R), per-repo (REPO-R) and quality (Q-R).

Brand is the most judgment-heavy area in the project — “is the lemon saturated enough?” has no requirement. So DES-R covers only the checkable constraints: palette closure, contrast, mark integrity, token guarantees. Aesthetic judgment stays judgment, and the governance note addresses how a visual repo cites the spec at all.

The palette is closed and the brand reaches only one surface fully. The web UI wears the full brand; the TUI gets a mapped-down subset; the CLI is nearly brand-free. Designing as if all three can carry the logo and the amber is the mistake this section exists to prevent — see surface-mapping.

This page lives in another repository Rendered from lemonfiber/spec at 1d10402, 2026-09-09. Read the source of this page