Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions docs/customization/themes.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ text, tool rows, borders, status and accents.

| Theme id | Name | Description |
|----------|------|-------------|
| `dark` | Dark | The default. Gray chrome on the host terminal background; the Cortex violet marks the focused selection. |
| `dark` | Dark | The default. Gray chrome on the host terminal background; the Cortex banner green marks the focused selection. |
| `light` | Light | Light background with dark text. |
| `ocean_dark` | Ocean Dark | Deep blue and cyan. Also accepted as `ocean`. |
| `monokai` | Monokai | Classic code-editor colours. |
Expand Down Expand Up @@ -38,24 +38,26 @@ For reference — these are the colours the demo recording on the

| Role | Colour |
|------|--------|
| Selection accent (`>` caret + focused label; focused composer `>`) | `#A78BFA` |
| Selection accent (`>` caret + focused label; focused composer `>`) | `#1F4945` |
| Background | terminal default (`Color::Reset` — never painted) |
| Charcoal panel (tips / info) | `#141414` |
| Past user turn bar | `#1C1C1C` |
| Selection bar | `#262626` (violet caret + label, dim description, never inverted — never a violet wash) |
| Selection bar | `#262626` (focused green glyphs have a `#F5F5F5` backing for contrast; descriptions stay dim) |
| Hairline (above / below the prompt, around search fields) | `#3A3A3A` |
| Focused border | `#525252` (gray — the accent never outlines a box) |
| Text | `#F5F5F5` |
| Dim text (placeholders, hints, descriptions) | `#6B7280` |
| Muted text | `#4B5563` |
| Success `✓` and diff additions `+N` | `#4ADE80` (the only green) |
| Success `✓` and diff additions `+N` | `#4ADE80` (bright semantic green) |
| Warning (`warn` in diagnostics) | `#FFC857` |
| Error (`error`, `× Stopped`, quota, failed MCP `x`) | `#F87171` |
| Thinking status | `#C9A95C` (the only gold) |

The footer is gray: the model on the left (`Cortex Mini 1 · Agent · 92%
context`), one shortcut hint on the right (`shift+tab to cycle modes`).

The accent is the dominant background pixel of the supplied banner: RGB `(31, 73, 69)` (`#1F4945`). Focused green glyphs use a near-white backing rather than disappearing on black. Success and diff colours are unchanged.

## Related display settings

```toml
Expand Down
22 changes: 12 additions & 10 deletions docs/media/tui-lock-v2/SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Brand rule: the only product name on any pixel or in this document is **Cortex**
"bar_user": "#1C1C1C",
"bar_hover": "#1A1A1A",
"bar_selected": "#262626",
"accent": "#A78BFA",
"accent": "#1F4945",
"success": "#4ADE80",
"warning": "#FFC857",
"error": "#F87171"
Expand All @@ -44,9 +44,9 @@ Brand rule: the only product name on any pixel or in this document is **Cortex**
"success": "ONLY `✓` and diff `+N` / `+` lines",
"warning": "ONLY warnings: diagnostics `warn`, context counter ≥ 90 %",
"error": "ONLY errors: `×` titles, diagnostics `error`, diff `−N` / `-` lines, failed exit codes, exhausted quota bar",
"hairline": "always gray — never violet, never coloured",
"hairline": "always gray — never banner green, never coloured",
"bg": "inky #000 — the TUI paints the whole alternate screen; no wash, no frame",
"retired": ["thinking gold #C9A95C", "mint #00F5D4", "cyan #7DD3FC", "violet wash #221A38 as a default bar"]
"retired": ["thinking gold #C9A95C", "mint #00F5D4", "cyan #7DD3FC", "retired violet wash #221A38 as a default bar"]
},
"font": {
"family": "IBM Plex Mono",
Expand Down Expand Up @@ -102,7 +102,7 @@ Header-left is intentionally empty on launch. It never paints a shell echo
## 3. Component recipes

Legend for recipes: `T` text `#F5F5F5` · `D` dim `#6B7280` · `M` muted `#4B5563` ·
`H` hairline `#3A3A3A` · `V` accent `#A78BFA` · `G` success · `A` warning · `R` error.
`H` hairline `#3A3A3A` · `V` accent `#1F4945` · `G` success · `A` warning · `R` error.

### 3.1 Header

Expand All @@ -118,7 +118,7 @@ Legend for recipes: `T` text `#F5F5F5` · `D` dim `#6B7280` · `M` muted `#4B556
```
> hey 12:49 AM ← bar #1C1C1C, cols 1..118
```
- `>` and text `T` (never violet — history is not focus). Timestamp `D`, right-aligned inside the bar.
- `>` and text `T` (never banner green — history is not focus). Timestamp `D`, right-aligned inside the bar.
- 12-hour clock `hh:mm AM`. Hidden when `Show timestamps = off`, in compact mode, and at < 80 cols.
- One blank row after the bar. `&` and `!` and `/btw` prefixes stay as typed.

Expand Down Expand Up @@ -219,7 +219,7 @@ Stacked directly above the composer's top hairline, newest/first row on top, ful
> /model Choose the model for this session ← focused: bar #262626, `>` V, name T, desc D
/mode Switch between Agent, Plan and Ask ← plain
/permissions Set the approval policy for edits and commands
/plan Draft a plan before writing any code ← hover: bar #1A1A1A, no violet
/plan Draft a plan before writing any code ← hover: bar #1A1A1A, no banner green
… 87 more — keep typing to filter ← trailer M
```
- Marker col 3, name col 5, description at `5 + name_w` where `name_w ≥ longest name + 2`.
Expand Down Expand Up @@ -280,7 +280,7 @@ Composer loses focus (`>` `D`, placeholder `Choose an option above`). Hover row
"Git": [["Co-author","on"],["Auto commit","off"],["Sign commits","off"]],
"Cloud": [["Cloud sync","off"],["Auto save","on"],["Session history","on"]],
"Privacy": [["Telemetry","off"],["Analytics","off"]],
"Theme submenu": [["Cortex Night","Default inky chrome · violet on focus only","current"],["Cortex Day","Light chrome for bright rooms"],["Ocean Dark","Deep blue and cyan accents"],["Monokai","Classic code-editor colors"]]
"Theme submenu": [["Cortex Night","Default inky chrome · banner green on focus only","current"],["Cortex Day","Light chrome for bright rooms"],["Ocean Dark","Deep blue and cyan accents"],["Monokai","Classic code-editor colors"]]
}
```

Expand Down Expand Up @@ -326,17 +326,17 @@ Narrow: no bars, `used / total pct%`.
"row (settings, slash, model, effort, radios, pickers)": {
"idle": { "bar": "none", "marker": "none / ▸ dim", "label": "text" },
"hover": { "bar": "#1A1A1A", "marker": "unchanged", "label": "text", "accent": false },
"focus": { "bar": "#262626", "marker": "> or ▸ in #A78BFA", "label": "text (Bold in settings)", "accent": true },
"focus": { "bar": "#262626", "marker": "> or ▸ in #1F4945", "label": "text (Bold in settings)", "accent": true },
"focus+hover": "focus wins"
},
"composer": {
"idle": { "hairline": "#3A3A3A", "caret_sigil": "#6B7280" },
"hover": { "hairline": "#525252", "caret_sigil": "unchanged" },
"focus": { "hairline": "#3A3A3A", "caret_sigil": "#A78BFA", "caret": "2 px bar, blinking" }
"focus": { "hairline": "#3A3A3A", "caret_sigil": "#1F4945", "caret": "2 px bar, blinking" }
},
"footer chunk / banner button / chip": {
"hover": { "underline": true, "text": "#F5F5F5", "bar": "#1A1A1A" },
"focus": { "text": "#A78BFA", "bar": "#262626" }
"focus": { "text": "#1F4945", "bar": "#262626" }
},
"typed slash match": { "accent": true, "note": "matched characters in the palette and the command token in the composer" }
}
Expand Down Expand Up @@ -474,3 +474,5 @@ Narrow (40×12) set: `welcome-cortex`, `welcome-agent`, `first-run-tips`, `sessi
approval / plan / clear / question prompts render inline (§3.10) using the same recipe.
- Settings hub (7 rows) is replaced by the categorised modal (§3.11); `/settings` and F2 open it.
- Every changed surface needs a unit test plus a headless snapshot; the `txt/` grids in this pack are the expected buffers.

Banner accent update: focused `#1F4945` glyphs use `#F5F5F5` backing for readable contrast. The surrounding selection row remains `#262626`; semantic success and diff green stay `#4ADE80`. Existing image exports predate this palette update; the renderer uses the updated palette.
8 changes: 4 additions & 4 deletions docs/media/tui-lock-v2/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Regenerate: `python3 tools/render_lock_v2.py --index` (fetches IBM Plex Mono on
| `session-worked` | `Worked for Xs` after a reply | [120x40](120x40/session-worked.png) | — |
| `session-optin` | `Help improve Cortex` banner — Opt out | Opt in | [120x40](120x40/session-optin.png) | [40x12](40x12/session-optin.png) |
| `session-optin-hover` | Banner with the mouse over `[Opt in]` | [120x40](120x40/session-optin-hover.png) | — |
| `composer-empty` | Empty composer — caret before the placeholder, violet `>` | [120x40](120x40/composer-empty.png) | [40x12](40x12/composer-empty.png) |
| `composer-empty` | Empty composer — caret before the placeholder, banner green `>` | [120x40](120x40/composer-empty.png) | [40x12](40x12/composer-empty.png) |
| `composer-typing` | Mid-type, caret on | [120x40](120x40/composer-typing.png) | [40x12](40x12/composer-typing.png) |
| `composer-typing-blink` | Mid-type, caret off (blink phase) | [120x40](120x40/composer-typing-blink.png) | — |
| `composer-hover` | Mouse over the composer — hairline lifts to #525252 | [120x40](120x40/composer-hover.png) | [40x12](40x12/composer-hover.png) |
Expand All @@ -43,7 +43,7 @@ Regenerate: `python3 tools/render_lock_v2.py --index` (fetches IBM Plex Mono on
| Board | State | Wide | Narrow |
|---|---|---|---|
| `slash-palette` | `/` palette — focused row + hover row + `… more` trailer | [120x40](120x40/slash-palette.png) | [40x12](40x12/slash-palette.png) |
| `slash-model-typed` | `/mod` typed — violet matched chars, ghost completion | [120x40](120x40/slash-model-typed.png) | [40x12](40x12/slash-model-typed.png) |
| `slash-model-typed` | `/mod` typed — banner green matched chars, ghost completion | [120x40](120x40/slash-model-typed.png) | [40x12](40x12/slash-model-typed.png) |
| `model-list` | `/model` — Cortex Mini 1 · Cortex 1 · Cortex Max 1 | [120x40](120x40/model-list.png) | [40x12](40x12/model-list.png) |
| `model-list-hover` | Model list with mouse over row 3 | [120x40](120x40/model-list-hover.png) | — |
| `model-effort-high` | Effort radios — High focused | [120x40](120x40/model-effort-high.png) | [40x12](40x12/model-effort-high.png) |
Expand All @@ -58,7 +58,7 @@ Regenerate: `python3 tools/render_lock_v2.py --index` (fetches IBM Plex Mono on
| `settings-appearance` | Settings modal — Appearance, Compact mode focused | [120x40](120x40/settings-appearance.png) | [40x12](40x12/settings-appearance.png) |
| `settings-mouse` | Settings scrolled to Mouse / Behavior | [120x40](120x40/settings-mouse.png) | [40x12](40x12/settings-mouse.png) |
| `settings-row-hover` | Keyboard focus on Compact mode, mouse over Show timestamps | [120x40](120x40/settings-row-hover.png) | [40x12](40x12/settings-row-hover.png) |
| `settings-search` | `/ scro` search — filtered rows, violet match | [120x40](120x40/settings-search.png) | — |
| `settings-search` | `/ scro` search — filtered rows, banner green match | [120x40](120x40/settings-search.png) | — |
| `settings-theme-submenu` | Theme submenu — Cortex Night / Cortex Day / Ocean Dark / Monokai | [120x40](120x40/settings-theme-submenu.png) | [40x12](40x12/settings-theme-submenu.png) |

## E. Modes / tools / errors
Expand Down Expand Up @@ -99,7 +99,7 @@ Regenerate: `python3 tools/render_lock_v2.py --index` (fetches IBM Plex Mono on
| `clear-confirm` | `/clear` confirm radios | [120x40](120x40/clear-confirm.png) | — |
| `plan-confirm` | `Implement this plan?` radios | [120x40](120x40/plan-confirm.png) | — |
| `queue` | Follow-up queue while a step runs | [120x40](120x40/queue.png) | — |
| `files-picker` | `@` file picker — violet matched chars, hover row | [120x40](120x40/files-picker.png) | — |
| `files-picker` | `@` file picker — banner green matched chars, hover row | [120x40](120x40/files-picker.png) | — |
| `jobs` | `/jobs` — cloud agent, subagent, queued | [120x40](120x40/jobs.png) | — |
| `skills` | `/skills` — search field + skill rows | [120x40](120x40/skills.png) | — |
| `todos` | Working 2/5 checklist — ✓ done · › current · ○ pending | [120x40](120x40/todos.png) | — |
Expand Down
Loading
Loading