wave: 0
depends: none
blocks: none
conflicts: none
priority: feature
Problem
Strike's TUI and web cockpit still use the Family-inspired soft-rounded bento chrome (rounded ╭╮ cards, pastel lavender accent, generous soft wash). It reads muddy and dated next to a sharper operational UI. The two surfaces already share semantic color roles (theme.Default() ↔ web/src/styles.css) but not a locked token document, and they do not share a sharp visual language.
North-star reference (look/feel, not a clone): vetool lobbies — live-floor / command+board, 1px rules, near-square corners, segmented controls, status as color, tight type, royal purple on a dark ground.
Keep: current navigation model (composer, panes, surfaces, keybinds), bento tiling (cards as regions), information architecture, accessibility (contrast, focus rings).
Change: chrome sharpness, royal-purple-first palette, colors used as information, shared token source, web flex that actually holds at real widths.
Scope
Coordinate children:
- Shared token contract (canonical hex + roles + sharp chrome language)
- TUI default theme + chrome (square/bordered, royal purple, status color)
- WebUI visual pass matching those tokens
- WebUI flex/layout validation (no overflow, real breakpoints)
- Cross-surface information color + nav polish
Out of scope: new idle animation, cloning VeTool copy/brand, changing keybind map, extracting a TUI kit go.mod.
Visual direction
- Royal purple is the primary accent (saturated, not washed lilac). Dark ground stays near-black-violet.
- Sharp chrome: square or 2px radius on web; TUI default
ChromeBordered with square ┌┐└┘ (keep ChromeSoft as an opt-in theme, not stock).
- Color as information: ready / working / attention / error / success / user / tool stay distinct roles — never one purple for everything.
- Bento stays as layout (tiles, splits, gutters) without soft Family rounding.
- Flexible navigation as today (Chat / Code / Team / Project / Ops on web; pane groups in TUI).
Acceptance criteria
- Stock TUI and stock WebUI look like one product: same hex roles, same sharpness, same status colors.
- A shared token file (or
docs/theme.md + machine-checked hex table) is the single source; TUI Default() and web CSS cannot drift without a failing test.
- Web surfaces flex without clipping at desktop and ~360px.
- Keymaps and host/protocol boundaries unchanged.
Verification
- Each child states its gate (A for docs, B for TUI/web).
- Web:
make web-check + exercise surfaces (or Playwright where present).
- TUI: generate + theme/ui tests +
make test && make vet && make build.
Children
| Wave |
Issue |
Title |
| 0 |
#{1233} |
docs: shared sharp royal-purple UI token contract |
| 1 |
#{1234} |
refactor(tui): sharp bordered chrome and royal-purple default |
| 1 |
#{1235} |
refactor(web): sharp royal-purple cockpit to match TUI tokens |
| 2 |
#{1236} |
fix(web): validate flex layout at desktop and narrow widths |
| 2 |
#{1237} |
refactor(ui): align TUI and web information colors |
wave: 0
depends: none
blocks: none
conflicts: none
priority: feature
Problem
Strike's TUI and web cockpit still use the Family-inspired soft-rounded bento chrome (rounded
╭╮cards, pastel lavender accent, generous soft wash). It reads muddy and dated next to a sharper operational UI. The two surfaces already share semantic color roles (theme.Default()↔web/src/styles.css) but not a locked token document, and they do not share a sharp visual language.North-star reference (look/feel, not a clone): vetool lobbies — live-floor / command+board, 1px rules, near-square corners, segmented controls, status as color, tight type, royal purple on a dark ground.
Keep: current navigation model (composer, panes, surfaces, keybinds), bento tiling (cards as regions), information architecture, accessibility (contrast, focus rings).
Change: chrome sharpness, royal-purple-first palette, colors used as information, shared token source, web flex that actually holds at real widths.
Scope
Coordinate children:
Out of scope: new idle animation, cloning VeTool copy/brand, changing keybind map, extracting a TUI kit go.mod.
Visual direction
ChromeBorderedwith square┌┐└┘(keepChromeSoftas an opt-in theme, not stock).Acceptance criteria
docs/theme.md+ machine-checked hex table) is the single source; TUIDefault()and web CSS cannot drift without a failing test.Verification
make web-check+ exercise surfaces (or Playwright where present).make test && make vet && make build.Children