Skip to content

EPIC: Sharp royal-purple TUI and WebUI #1231

Description

@jonathanung

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:

  1. Shared token contract (canonical hex + roles + sharp chrome language)
  2. TUI default theme + chrome (square/bordered, royal purple, status color)
  3. WebUI visual pass matching those tokens
  4. WebUI flex/layout validation (no overflow, real breakpoints)
  5. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestepicEpic tracking issue

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions