Decisions › D11
A skin is a file of tokens, with one great default and the rest a pick away
Context
Zach asked on 22 October for about eight styles, light and dark: Claude, Obsidian, Notion, Terminal, Foxglove, stock shadcn, an unstyled one to bring your own tokens, and some of the orchestrator's own picks. Eleven were built. The question that stayed was which one is the default.
The decision
A skin is one CSS file that declares only token values, in a light and a dark selector, and nothing else. Every renderer reads colours, fonts and sizes through the 39 base tokens, so a skin never needs a selector of its own, and no colour literal may appear outside the tokens and the skins. A skin is picked up only after it passes the gates in both modes.
The default changed twice in two days. Round 2 started with Claude. On 23 October Zach asked for two defaults, Bare Metal (from the high-contrast skin) and Pretty (Notion). Later the same day, in round 3.5, he asked for stock shadcn for now: it became the default, Pretty is second, the Bare Metal family is grouped, and the rest sit under “More skins”.
Why
“Ultaietly I guess people should be able to mabye pcik their own skin? hmmm mabye but it should also ben done with a great edfault skin...”
Zach Yamaoka, notes, 22 Oct 2026
“I do like how it kinda gives that "bare" metal field almost like in a temrinal but stell readable”
Zach Yamaoka, notes, 23 Oct 2026
“why I like high constrast is its basically just like 1 step above unstyled...”
Zach Yamaoka, notes, 23 Oct 2026
“Or perhaps lets call it (Bare Metal theme and Pretty Theme)”
Zach Yamaoka, notes, 23 Oct 2026
“Lets please just use stock shadcn for now”
Zach Yamaoka, 23 Oct 2026
“what matters is the location of things”
Zach Yamaoka, 23 Oct 2026
Options considered
The default over time. The skin set itself is listed in the round-2 brief.
| When | Default | Status |
|---|---|---|
| 22 Oct, round 2 | Claude (warm neutrals, serif display) | Replaced |
| 23 Oct, round 3 | Bare Metal and Pretty as the two defaults | Replaced as the default; both stay |
| 23 Oct, round 3.5 | Stock shadcn/ui, Pretty second, Bare Metal grouped, eight others under More skins | Current |
Consequences
- Bring your own: copy the unstyled skin, rename its two selectors, replace the values a brand owns, and flip one line in the manifest.
- Bare Metal started as one step above unstyled: straight to the point, almost like a terminal but still readable. Five variants followed (Ink, Phosphor, Operator Grey, Paper, Top).
- Why stock shadcn won the default is only in those two quoted lines: no note or doc explains it further.
Evidence
- Round 2: the panel on the real rackReport, 2026-10-22. Evidence for this decision.
- Bring your own tokens: writing a skinContract doc, 2026-10-22. A skin is one file of token declarations; the 39 base tokens, the gates a skin must pass, and a 20-line example.
- Round 2 seams: tokens, skins and structuresContract doc, 2026-10-22. The contract for skins, structures, the row object and page state, with the decisions taken in rounds 3 and 3.5.
- Round 2 briefContract doc, 2026-10-22. Zach's round-2 feedback as five structure proposals and eleven skins.
- Round 3 briefContract doc, 2026-10-23. What was settled in round 3 (resizable panes, warning colours reserved, quieter utilities) and the three sets of proposals.
Commits in the app's repository (private):
ec366152026-10-22 Skins: Obsidian, Notion, shadcn/ui, Linearc732bf12026-10-22 Skins: macOS, Unstyled, High contrastefc6e3d2026-10-23 Skin picker: the five Bare Metal variants7212d1f2026-10-23 Stock shadcn is the default skin