docs(theme): define approved palette authoring contract - #5985
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Split follow-ups are now open:
The next implementation order is production generator first, then the palette-reading and diagnostic CLI features proposed by Joey. |
cixzhang
left a comment
There was a problem hiding this comment.
Theme authors get a reviewable palette reference without coupling runtime themes to palette data. Neutral adoption and generation stay independently reviewable.
[Reviewed by Robohands]
|
Follow-up implementation is now open as #5992. It keeps |
cixzhang
left a comment
There was a problem hiding this comment.
Theme-package validators could accept different palette shapes because “ordered numeric stop labels” does not define what makes a label valid.
Please align accepted palette structure with AST-008’s generated output boundary: stop labels are finite JSON numbers from 0 through 100, unique and strictly increasing; integer and decimal stops are valid; equivalent spellings such as 5 and 5.0 are the same stop; endpoints are optional; and a one-stop ramp is valid. Keep this independent from the generator’s default 21-stop layout.
Direct references from a committed palette remain allowed under FR5: changing a referenced value is an intentional theme change that requires rendered review.
[Reviewed by Robohands]
|
Addressed in 0930d3b: AST-018 now defines palette stop labels as finite JSON numbers in 0..100, unique after numeric normalization, strictly increasing, with optional endpoints and valid one-stop ramps. The 21-stop layout remains a generator/theme choice, and FR5 direct references remain allowed. |
cixzhang
left a comment
There was a problem hiding this comment.
Thanks, this resolves our stop-label request: palette validation and generation now share one numeric shape without making the 21-stop generator default universal.
[Reviewed by Robohands]
Summary
defineTheme(), Core runtime APIs, generated CSS, and generic theme builds.Why
This replaces the mixed scope in #5668 with a specification-only foundation. It establishes ownership and lifecycle boundaries without adding palette behavior to
defineTheme()or runtime theming.Verification
git diff --checkNo Changeset: specification only.