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
+33
View File
@@ -1240,3 +1240,36 @@ deletion on drop); internal move/copy drag unchanged.
Both docs of record: `docs/product/removal-and-prune.md` §Fork R-C/R-D/R-E and
CONTEXT.md §Prune (Settled forks).
---
# Phase L — Look-and-feel (system-wide visual design language)
> Separate phase namespace. Namespaced **`L` (Look-and-feel)**, orthogonal to and ungated
> by the M/D/B/R/V/S pillars. Authoritative spec: **CONTEXT.md §Phase L**. Product
> framing + settled decisions (DS-1/DS-2/DS-3): `docs/product/visual-design-language.md`.
## L1 — shared LICE drawing kit (the foundation)
**Goal:** Stand up the shared LICE-based drawing kit that every Phase L surface (L2 dock
panel, L3 VST editor) consumes — palette/theme module, pure component geometry/hit-test
helpers, LICE draw shell, and retirement of the GDI `DrawText` path in `bank_panel`.
CONTEXT.md §Phase L (Kit architecture). DS-1 (LICE + WDL, no external frameworks) and
DS-2 (Direction B Neon Console + Direction C spectral) are the governing settled decisions.
**Verify:** CTest green (`theme_tests`, `component_geometry_tests`). Each text-on-surface
pair in the palette clears its WCAG floor (tested). `bank_panel` text routes through
cached-font `text()` — GDI `DrawText` path retired. Double-buffer discipline preserved.
- [x] **`theme`/palette module** (`src/theme.{h,cpp}`): role→color mapping via one
constants block (Direction B Neon Console + Direction C spectral, DS-2); WCAG
contrast-floor helpers + tests; interaction-state color model; spectral ramp. Pure;
no LICE types. New CTest target `theme_tests`.
- [x] **`component_geometry` module** (`src/component_geometry.{h,cpp}`): button/slider/
list-row geometry + hover hit-test. Pure; no LICE or REAPER types. New CTest target
`component_geometry_tests`.
- [x] **`draw_kit` shell** (`src/draw_kit.{h,cpp}`): LICE draw layer — `fillSurface`
(micro-gradient + inner highlight/shadow), `drawButton`/`drawSlider`/`drawListRow`/
`drawWaveform`, cached-font `text()` over four `LICE_CachedFont`s (kit-owned lifecycle),
full interaction-state model, double-buffer preserved.
- [x] **GDI `DrawText` retirement in `bank_panel`**: all panel text now routes through the
kit's cached-font `text()`; raw GDI `DrawText` path retired (the single biggest
"temple os → modern" lever).