docs: archive Phase L L1 to COMPLETED; reconcile CLAUDE.md + PLAN.md

This commit is contained in:
2026-07-26 20:31:19 -04:00
parent 42435c989b
commit 2755c143d7
3 changed files with 43 additions and 43 deletions
+4 -42
View File
@@ -284,6 +284,10 @@ build:** the `IReaperUIEmbedInterface` contract + embed message/lifecycle agains
> directions: `docs/product/visual-design-language.md`. When a point lands, doc-keeper
> moves it to `COMPLETED.md`.
>
> **L1 (shared LICE drawing kit — the foundation) has landed** — `theme`/palette module,
> `component_geometry` geometry/hit-test helpers, `draw_kit` shell, and GDI `DrawText`
> retirement in `bank_panel`. See `COMPLETED.md`. **L2 and L3 remain.**
>
> **This section is self-contained for a team without Phase S context.** Where a point
> touches a Phase S surface (the VST editor, the embed strip, the keyboard strip), the
> gate is stated explicitly so the team does not chase files that are not on dev yet.
@@ -304,48 +308,6 @@ build:** the `IReaperUIEmbedInterface` contract + embed message/lifecycle agains
> out the full button inventory (including M11's action-button additions) intuitively,
> uncluttered, and useful — then applies the kit. Sequenced after M11 merges.
## L1 — shared LICE drawing kit (the foundation)
**Goal:** One shared **LICE-based design kit** — a role-based palette + a type scale + a
component-draw layer — that every surface (the bank panel now, the VST editor + embed
strip later) draws through, replacing flat `LICE_FillRect` blocks and raw-GDI `DrawTextA`
with a modern dark look: gradient surfaces (`LICE_GradRect`), anti-aliased rounded controls
(`LICE_RoundRect`/`LICE_Line`), cached anti-aliased text (`LICE_CachedFont`), and a full
interaction-state model (rest/hover/active/pressed/dragging/focus/disabled) the current
drawing lacks entirely. The B+spectral palette constants (DS-2) live in one constants block.
No new dependency — LICE is the toolkit; WDL/vwnd reuse is assessed at build time per DS-1
("don't reinvent the wheel"). CONTEXT.md §Phase L (design-system spec). Product framing +
palette + directions + forks: `docs/product/visual-design-language.md`. **Verify LICE
gradient/AA/font surfaces and the `LICE_CachedFont``HFONT` lifecycle against
`vendor/WDL/WDL/lice/lice.h` + `lice_text.h` before use.**
**Verify:** CTest green on the pure layer (the theme/palette contrast-floor tests + the
component geometry/hit-test helpers); in-DAW, the kit renders a modern dark button/row/
surface with AA cached-font text and working hover/pressed states, drawn double-buffered
with no flicker.
**Depends on:** the existing `bank_panel` LICE surface (the first consumer). Nothing in
Phase S — L1 stands alone on the extension side.
- [ ] Pure `theme`/palette layer: role→color mapping (`bg/base`, `bg/panel`, `bg/cell`,
`text/primary`, `text/dim`, `accent`, `accent/hot`, `warn`) selected via **one direction
constants block** carrying the settled **B (Neon Console) + C spectral** values (DS-2),
so the direction is a single-file change. Unit-test that each text-on-surface pair clears
its WCAG floor (AA 4.5:1 body / 3:1 large + state indicators) — the "punch to the floor,
not past it" rule made testable. No LICE/host types.
- [ ] Pure component **geometry/hit-test** helpers where not already owned: button rect,
slider track/handle geometry, list-row rect + hover hit-test (mirror of
`mode_switch`/`bank_grid`/`editor_geometry` — no LICE, no host types, CTest-covered).
- [ ] Shell **draw kit** (LICE): `fillSurface` (micro-gradient + 1px inner highlight/shadow
— the vwnd trick that kills the flat look), `drawButton`/`drawSlider`/`drawListRow`/
`drawWaveform`/segmented-switch/tab draw, and a shared `text()` over a cached
`LICE_CachedFont` set (title/label/value-mono/micro). Owns the cached-font lifecycle.
Honors the interaction state model (rest/hover/active/pressed/dragging/focus/disabled).
Double-buffered draw preserved (draw to `LICE_SysBitmap`, single `BitBlt`) — the
"zero-jank" half of "speed is the selling point." **DS-1: assess WDL/vwnd reuse here at
build time** — reuse a vwnd piece (e.g. its scroll listbox) where genuinely cheaper than
LICE, else draw on LICE; keep hit-test geometry in the pure layer either way.
- [ ] Retire the raw GDI `DrawText` path in `bank_panel` in favor of the kit's cached-font
`text()` — the single biggest "temple os → modern" lever. (The VST-editor/embed-strip GDI
retirement is L3, gated on Phase S — see below.)
## L2 — dock-panel layout redesign (extension-side; DS-3: thorough, not a re-skin)
**Goal:** Redesign the docked `bank_panel` **layout** to house the *full* button/affordance
inventory — including the buttons **M11 adds** — intuitively, uncluttered, and useful, then