docs(skill): cover palette work in ui-kit-verification - #1268
Merged
Conversation
The skill covered API-surface changes, where typechecking finds the breakages. It said nothing about palette changes, where types and the test suites prove almost nothing because no test asserts on a colour nobody wrote an assertion for. Adds what a Glaze bump / seed retune / axis migration actually needs, all of it learned the hard way on #1267 and its cloud counterpart: - Dump every token in ALL FOUR scheme variants and diff, via a throwaway vitest spec (tasty needs a DOM). Convert to RGB before diffing, since Glaze 0.x emits `okhsl()` and 1.x defaults to `oklch()` and a textual diff is useless across that. - Light mode alone misleads: text tokens carry `contrast: ['AA','AAA']` and the solver, not the authored tone, fixes their value — so a delta change reads as a no-op in light while moving the HC variants. An overshooting relative tone is often deliberate; it is what drives a token to the absolute extremes in high contrast. - Long-lived branches publish canaries that predate an API `main` shipped and cloud already adopted. Fix at the source (merge main, republish), do not patch cloud call sites or downgrade the pin. A Glaze major is not a dependency bump — 1.x dropped `lightness`, so upgrade and migration are one change. - Cloud replicates the recipe in five places, not one; `app-theme-tokens.spec` is a smoke test over a subset, not proof. Plus the two cloud traps: APM per-hue saturation factors that a pastel palette can drop, and the baked e2e colour baselines. - Splitting a palette PR: the intuitive cut is often wrong (dropping pastel while leaving the seed moved accents further from main than keeping it). Widened the description so palette/Glaze phrasing triggers it, and bumped to 1.1.0.
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
📦 NPM canary releaseDeployed canary version 0.0.0-canary-5edde72. |
Contributor
🧪 Storybook is successfully deployed!
|
Contributor
🏋️ Size limit report
Click here if you want to find out what is changed in this build |
tenphi
added a commit
that referenced
this pull request
Jul 30, 2026
Rebuilds the redesign branch on top of main now that the non-visual half has landed (#1267, #1268, released as 0.150.0). The branch's previous 22 commits were the OKHST/tone migration plus the fixes riding on it — all of which are now IN main via #1267. Replaying them would have meant resolving `palette.ts` against itself 15 times for a known 5-line end state, so the branch is reconstructed on main instead of rebased commit-by-commit. Verified the result: the tree differs from the old branch tip only where main moved ahead (`#pink`, the CopySnippet serif font map), and both of those survive. What remains — the actual redesign: - `SEED_SATURATION` 80 -> 100 with `{ pastel: true }` on the default and special theme seeds. The two are coupled: raising the seed without pastel over-saturates, enabling pastel without raising it washes the palette out. Plus two component changes that were on the branch and are unrelated to colour: - `DialogTrigger`: `mobileType` now falls back to `'modal'` for `'popover'` rather than reusing `type`, so a popover gets a sheet on mobile. - `FilterPicker`: drop `isDismissable={false}` so the picker closes on outside press like the other overlays. This IS a visual change and every token moves. Per-channel RGB delta vs main, all 156 tokens x 4 scheme variants: core surfaces/text mean ~5 (max 43), accent mean ~28 (max 60), accent-disabled mean ~8 (max 17). Accent carries the bulk, which is the intent — that is where the per-hue chroma inconsistency showed. Verified: build clean, 997 tests pass, oxlint + prettier clean, size-limit passes (451.35 kB / 460 kB).
tenphi
added a commit
that referenced
this pull request
Jul 30, 2026
Rebuilds the redesign branch on top of main now that the non-visual half has landed (#1267, #1268, released as 0.150.0). The branch's previous 22 commits were the OKHST/tone migration plus the fixes riding on it — all now IN main via #1267. Replaying them would have meant resolving `palette.ts` against itself 15 times for a 3-line end state, so the branch is reconstructed on main rather than rebased commit-by-commit. The whole change is now: - `SEED_SATURATION` 80 -> 100 with `{ pastel: true }` on the default and special theme seeds. The two are coupled: raising the seed without pastel over-saturates, enabling pastel without raising it washes the palette out. This IS a visual change and every token moves. Per-channel RGB delta vs main, all 156 tokens x 4 scheme variants: core surfaces/text mean ~5 (max 43), accent mean ~28 (max 60), accent-disabled mean ~8 (max 17). Accent carries the bulk, which is the intent — that is where the per-hue chroma inconsistency showed. Verified: build clean, 997 tests pass, oxlint + prettier clean, size-limit passes (451.35 kB / 460 kB).
tenphi
added a commit
that referenced
this pull request
Jul 31, 2026
Rebuilds the redesign branch on top of main now that the non-visual half has landed (#1267, #1268, released as 0.150.0). The branch's previous 22 commits were the OKHST/tone migration plus the fixes riding on it — all now IN main via #1267. Replaying them would have meant resolving `palette.ts` against itself 15 times for a 3-line end state, so the branch is reconstructed on main rather than rebased commit-by-commit. The whole change is now: - `SEED_SATURATION` 80 -> 100 with `{ pastel: true }` on the default and special theme seeds. The two are coupled: raising the seed without pastel over-saturates, enabling pastel without raising it washes the palette out. This IS a visual change and every token moves. Per-channel RGB delta vs main, all 156 tokens x 4 scheme variants: core surfaces/text mean ~5 (max 43), accent mean ~28 (max 60), accent-disabled mean ~8 (max 17). Accent carries the bulk, which is the intent — that is where the per-hue chroma inconsistency showed. Verified: build clean, 997 tests pass, oxlint + prettier clean, size-limit passes (451.35 kB / 460 kB).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
ui-kit-verificationskill covered API-surface changes, where typechecking finds the breakages. It said nothing about palette changes, where types and the test suites prove almost nothing — no test asserts on a colour nobody wrote an assertion for.This adds what a Glaze bump / seed retune / axis migration actually needs. All of it was learned the hard way while doing exactly that on #1267 and its cloud counterpart, and every item below corresponds to a mistake that was actually made and caught:
okhsl()and 1.x defaults tooklch(), so a textual diff across the bump is useless.contrast: ['AA','AAA']and the solver, not the authored tone, fixes their value — so changing a delta reads as a no-op in light while moving the@hcvariants. An overshooting relative tone is often deliberate: it is what drives a token to the absolute extremes in high contrast. This one nearly cost real HC contrast on a "consistency cleanup".mainshipped and cloud already adopted. Fix at the source (mergemain, republish); don't patch cloud call sites or downgrade the pin. And a Glaze major is not a dependency bump — 1.x droppedlightness, so the upgrade and the migration are one inseparable change.app-theme-tokens.spec.tsis a smoke test over a subset of tokens with a ±2 tolerance, not proof. Plus the two cloud-specific traps: the APM per-hue saturation factors that a pastel palette can legitimately drop, and the baked e2e colour baselines.pastelwhile leaving the seed at its pastel value moved accents further frommainthan keeping pastel did; seed andpastelmove together or not at all.Also widened the
descriptionso palette/Glaze phrasing triggers the skill, and bumped it to1.1.0.Docs only — no
src/changes. Verified 997 tests pass and prettier is clean on the file.🤖 Generated with Claude Code
Note
Low Risk
Documentation-only updates to a Claude skill file; no runtime or application code changes.
Overview
Extends the
ui-kit-verificationskill beyond API migrations with a Palette and token changes section for Glaze bumps, seed retunes, and axis migrations where types and tests rarely catch colour drift.The new guidance covers token dump/diff across all four scheme variants (RGB deltas when formats change), HC/light-mode pitfalls, refreshing stale canaries on long-lived ui-kit branches, keeping cloud’s mirrored palette recipe files in sync, and empirically validating palette PR splits. The skill description now mentions Glaze/palette triggers and metadata is bumped to 1.1.0.
Minor formatting-only edits elsewhere in the doc (italics, table alignment, one wrapped
expect).Reviewed by Cursor Bugbot for commit bf9950b. Bugbot is set up for automated code reviews on this repo. Configure here.