aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--todo.org4
1 files changed, 2 insertions, 2 deletions
diff --git a/todo.org b/todo.org
index a90fdde7..69d7189f 100644
--- a/todo.org
+++ b/todo.org
@@ -77,8 +77,8 @@ The v1 feature (ramp generation + background-contrast safety, with the worst-cas
** TODO [#B] theme-studio palette ramps + contrast safety v1 :feature:theme-studio:
The v1 build from [[file:docs/theme-studio-palette-ramps-spec.org][theme-studio-palette-ramps-spec.org]] (Ready, Codex-reviewed). Two coupled features: a ramp generator (one base color → harmonized tonal ramp) and background-contrast safety (worst-case floor over a face's foreground set + safe-lightness guidance). Phases land in spec order, each leaving the tree green and =make theme-studio-test= passing. Aesthetic and real-Emacs-fidelity sign-off lives under the Manual testing parent below.
-*** TODO [#B] Ramp generator core :solo:
-Phase 1. =ramp(baseHex, {n, stepL, chromaEase})= in app-core.js → ={steps: [{hex, clamped}], error?}=. Holds hue, steps OKLCH-L by =stepL=, eases chroma toward the extremes, gamut-clamps each step. Defaults n=2, stepL=0.08, chromaEase=0.5; clamp out-of-range knobs with a flag; malformed =baseHex= → ={steps: [], error: 'bad-hex'}= (not thrown). Node tests: Normal (mid base), Boundary (near-white/near-black base, n at 1 and 4), Error (bad hex, out-of-range knobs). No UI. Verify: =make theme-studio-test= green.
+*** 2026-06-09 Tue @ 18:40:20 -0500 Ramp generator core landed
+Phase 1 (commit =1d51a332=). =ramp(baseHex, {n, stepL, chromaEase})= in app-core.js → ={steps: [{hex, clamped, offset}], adjusted}= or ={steps: [], error: 'bad-hex'}=. Holds the OKLCH hue, steps lightness by =stepL=, quadratic chroma-ease toward the extremes, gamut-clamps each step; knobs clamp to range with the clamped knob named in =adjusted= (n=2/stepL=0.08/chromaEase=0.5 defaults). 10 node tests (mid/near-white/near-black bases, hue-hold, chroma ease, knob clamping, malformed hex), suite 55→65, =make theme-studio-test= green. The app-core integrity stripper now drops =import= lines too.
*** TODO [#B] Ramp UI in palette :solo:
Phase 2. Base swatch → preview ramp row (darkest→lightest, base marked, clamp badge per step) → add selected steps as named palette entries. Names derive from source swatch (=blue= → =blue+1=/=blue-1=); base preview-only by default; steps insert adjacent to source in =-n..+n= order. Collisions never silent: name collision flags + forces rename, hex collision flags as duplicate but allows add. Add a #ramptest hash-gate pinning generation + insertion + collision behavior. Depends on Phase 1. Verify: hash-gate green + headless screenshot read.
*** TODO [#B] Foreground-set + floor + L_max core :solo: