docs(spec): propose optional palette generation - #5800
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
bc4c5a7 to
adfbbf8
Compare
0566355 to
00f9597
Compare
adfbbf8 to
dddeed2
Compare
dddeed2 to
7f0f5bb
Compare
|
Thanks—this is directionally right, but before I can make the OQ2 algorithm decision, I think AST-008 needs to capture several authoring requirements demonstrated by our existing themes and palette work. Without these requirements, we could produce a reproducible OKLCH-versus-HCT comparison that still evaluates the wrong product. Author controlsThe generation request should support:
A seed should influence generation without implying exact preservation. An anchor should create an explicit constraint. Light and dark modesA light palette must not automatically serve as the dark palette. Requests should explicitly support:
The existing experimental dark treatment—85% chroma with a +5 tone lift through T80, tapering to zero by T95—is useful comparison evidence, but it should not become the final rule without evaluation. The current Coordinated palette evaluationThe decision packet should evaluate complete color-family sets, not only isolated ramps. Equal numeric settings do not make every hue feel equally strong. Known Astryx regression cases should be mandatory fixtures:
The approved Neutral blue work—including the hue-locked OKLCH H255 experiment—should be included as historical evidence. Existing themes should also form a reference corpus covering restrained, balanced, expressive, and dark-only treatments. Constraint and failure behaviorThe spec should distinguish hard constraints from preferences:
ScopeI do not think the production generator needs to be included in this PR. Version-pinned experimental generators are needed for the decision packet; the canonical library and CLI should follow after the recipe is selected and frozen. The generator should output opaque palette colors. Transparency, semantic-token mapping, component usage, and contextual accessibility remain adoption concerns. A palette alone cannot be labeled accessible. Rules such as avoiding pure-white body text on very dark backgrounds belong in dark-mode adoption guidance and rendered component evidence, not in the palette-generation math. Could we add these requirements before asking for the final OKLCH-versus-HCT decision? The decision is really about the complete Astryx generation recipe, not only the underlying color-space name. |
Why
Theme authors need a reproducible way to explore complete tonal ramps without treating generated color as approved theme output. Existing Core, Color Studio, preview, and package-local generators have different purposes and algorithms, so none can become a canonical contract by accident.
What
mainfrom docs(knowledge): add package-local theme records #5792.theme:<name>record with authorized exact-head approval under repository knowledge policy; record frontmatter never grants authority.generateTonalPalette(request)library operation is canonical; a thin CLI is the primary human workflow. Both use identical normalized requests and produce byte-identical receipts and artifacts without duplicated algorithm code.srgboption, matching current fix(theme-neutral): remap colors to the approved palette #5628/feat(theme): add approved tonal palette metadata #5668 artifact evidence without inferring a generator color space. Wider-gamut options remain future additive named/versioned spec work; v1 requires no P3 auxiliary output.Generation remains independent from
localTokensand any newdefineThemefield. This PR does not approve #5668 or #5628 and carries no Changeset.Risk
Knowledge only. AST-008 remains
draft/proposed; it does not authorize implementation, adopt a theme palette, select the initial algorithm recommendation/default, change theme output, or add runtime/package bytes.Validation
npx --yes pnpm@11.10.0 check:knowledge -- --base origin/mainnpx --yes pnpm@11.10.0 check:repoRemaining review question