Dock — telling repos apart at a glance
The cards-mode dock groups rows by repo, but spends its whole colour budget on a per-branch rainbow and gives repo identity one 9.6px label that scrolls away. Shipped treatment A — repo colour moved onto a left-edge spine + a sticky tinted header (PR #1379). Calming the per-branch row rainbow was prototyped alongside but deliberately NOT shipped: branch colours stay, because they still tell branches apart within a repo.
The dock already groups rows by repo. But you can’t see the grouping: the repo colour is one 9.6px label that scrolls away, while every row label is painted a different branch hue — a rainbow that fights the grouping it sits inside.
The two colour systems
buildTerminalDisplayInfos hands every render site two OKLCH hues — one per
repo (repoColor), one per branch (branchColor, aliased
annotationColor). Cards mode spends them backwards: repo gets a single tiny
label, branch gets every row.
Today. Repo = the small coloured word on a grey band. The rows below are a per-branch rainbow; nothing on a row carries its repo, so once the header scrolls off you’ve lost the anchor.
Three repo treatments
Same dock, repo colour moved onto a surface with real mass — and pinned so it survives the scroll. These prototypes also calm the rows to neutral to show the repo hue uncontested — but that second half was not shipped (see The row rainbow below: branch colours stay). The three differ only in how loud the repo signal gets; they compose.
A · Spine + tinted header. A continuous repo-colour bar down the section’s left edge (persists below the header) and a faintly repo-tinted band — sticky in the real dock, so the label never leaves. Refined, low clutter. Recommended.
B · Avatar swatch. A filled repo-colour tile + initial in each header — the same vocabulary the rail-mode chips already use, so the two dock modes finally rhyme. A bright colour blob, but only at the header.
C · Bold band. The whole header filled with the repo colour, dark text. Maximum separation between repo zones — reads as hard section breaks. Heaviest; most colour on screen.
The row rainbow
The other half of the fix is the rows. Keep them branch-coloured and the repo treatment still fights the rainbow; calm them to neutral and repo owns the hue outright (branch stays distinguishable by the state pip and, if wanted, a faint dot). Same treatment A, both ways:
Rainbow kept. Branch hue on every label still pulls the eye off the repo spine.
Rows calmed. One hue per zone. The repo is the colour; the branch is the word.