6px grid as the single spatial canon + Brand intent in the Design Lock#4
Open
indexzigu wants to merge 3 commits into
Open
6px grid as the single spatial canon + Brand intent in the Design Lock#4indexzigu wants to merge 3 commits into
indexzigu wants to merge 3 commits into
Conversation
|
@zigoo1218-max is attempting to deploy a commit to the bitjaru Team on Vercel. A member of the Team first needs to authorize it. |
d9c4095 to
2d3f606
Compare
…ed intent Grid: 6px is confirmed as the single spatial canon (was a live 8px-vs-6px contradiction between Golden Rule 5 / Quality Gate / VISUAL-CRAFT CR-1 and .cursorrules / ss-page). Golden Rule 5 now reads "all spacing = multiples of 6px" with desktop gap-6/gap-9; hero padding p-8 -> p-9 in docs and shipped components; /ss-dial density ramp becomes a clean 36/24/18/12px ladder. A11y floors untouched (>=44px targets, >=8px between adjacent touch targets is a WCAG spacing floor, not the layout grid). Lock: Brand intent added to the Design Lock (concept ported from google-labs-code/design.md) — Reference / Implied traits / Never / Feeling. One concrete reference must be anchored by its 3 implied traits + 3 negative constraints; a bare reference or bare adjectives are both forbidden. /ss-setup captures it; /ss-page and /ss-component read the lock FIRST and obey its "Never" constraints; ss-page's post-gen checklist verifies it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ged-rule gate Second tranche of v2.9.0 (unreleased — folded into the same 2.9.0 CHANGELOG entry and version.json). ss-setup: the wizard's lock template had drifted from the engine's Design Lock (CLAUDE.md). Step 1 now also asks the surface (mobile app vs desktop/web B2B — it decides the type scale, Golden Rule 16); Step 3's Brand-intent confirmation also proposes the Mood (4 axes: edges · feel · density · tone, defaults from the chosen skin) and derives the Motion seed from Tone; the written lock gains Surface / Mood / Type scale fields and renames Type → Font, matching CLAUDE.md's lock template. ss-lint: new check 9 — WCAG token contrast. Bundled deterministic checker (scripts/contrast_check.py, Python stdlib only): parses :root/.dark custom properties (hex/rgb()/hsl()/oklch()), resolves var() chains, and checks the standard token pairs in BOTH scopes (body/muted text >=4.5:1, brand UI >=3:1, button labels >=4.5:1). Agents run it instead of computing WCAG luminance by mental arithmetic — the gamma math is exactly where LLMs slip. Alpha / color-mix() values report as SKIP, never as silent passes; --self-test verifies the math. ss-update: changed-rule gate. Update copy no longer claims rules never change — rarely a rule VALUE is corrected (this release's 8px → 6px grid fix); the DESIGN-LANGUAGE step now diffs the Golden Rules and enforcement values specifically and surfaces each CHANGED rule as its own old → new warning line with a per-item OK, never bundled into a blanket "Y". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tokens Third tranche of v2.9.0 (unreleased — folded into the same entry). The new /ss-lint contrast check was run against the engine's own seven skins and found real failures; this makes the engine eat its own dog food. Labels tokenized: button.tsx (default + destructive), confirm-modal.tsx, chart-card.tsx's period toggle, and ranked-list.tsx render text-brand-foreground / text-destructive-foreground instead of hardcoded text-white; DESIGN-LANGUAGE's nine "bg-brand + text-white" prescriptions follow. Fixes a shipped bug: vercel's dark brand is white, so brand buttons rendered white-on-white (1.0:1). Skins already carried scope-adaptive foreground inks — the hardcode ignored them. (badge.tsx's destructive variant keeps text-white deliberately: its dark:bg-destructive/60 alpha surface favors white, ~5.8:1.) Checker pairs corrected to what components actually render: brand-foreground (legacy fallback: literal white) on brand, primary-foreground on primary (badge/tooltip/checkbox), destructive labels — never primary-foreground on brand, which nothing renders. Skins: every skin gains --brand-foreground (+ @theme mapping) — white on dark brands, the skin's ink on light ones (linear/notion/toss/vercel dark, raycast). Muted text nudged to >=4.5:1 (linear light 8a8f98->70757f, notion dark 7a7672->908c88, toss dark 808080->868686, vercel dark 777777->7f7f7f). Light destructive darkened to hold white labels (notion dd5b00->c65200 + warning; stripe ea2261->e41657; vercel ff5b4f->dc2626; alert-badge follows). Arc's single pink sat under every floor (2.94:1 even as plain text) -> brand/primary/destructive/alert-badge FF5E7E->e11d48 (rose-600); raycast keeps its pink, labels flip to dark ink. Chart/gradient palettes untouched (data-viz, not text-bearing). /ss-update: offers an ADDITIVE --brand-foreground append (contrast-picked value) when updated components reference it and the project theme lacks it — the only permitted theme.css touch, with the user's OK. Result: all seven skins 0 FAIL in both scopes (notion's three alpha-compositing SKIPs verified by hand at 19.4:1). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2ef1897 to
9466013
Compare
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.
Summary
Ports 6px grid unification + Brand intent lock + WCAG tooling to upstream styleseed.
Note on versioning: The PR omits VERSION / CHANGELOG / version.json changes. This follows standard open-source practice — the maintainer assigns the release number when merging, not the contributor. The content is ready for release; the version is the maintainer's call.
What
Commit 1 — 6px grid canon + Brand intent
gap-6/gap-9; Quality Gate checks "6px rhythm" (CLAUDE.md + AGENTS.md){3…96}, form ladder (CR-3), card padding tiers (CR-4/CC-7), icon↔label gap (CC-5), field rhythm (CC-8), and grid gutters (CR-10) — all restated on the 6px systemp-8→p-9in docs and in the shippedhero-card.tsx/donut-chart-card.tsx;/ss-dialdensity ramp becomes a clean 36/24/18/12px ladderReference/Implied traits/Never/Feeling— one concrete reference anchored by the 3 traits it implies; a bare reference or bare adjectives are both forbidden./ss-setupcaptures it;/ss-pageand/ss-componentread the lock first and obey itCommit 2 — setup-lock parity + tooling
/ss-setupcatches up with the engine lock template (asks the surface, proposes the Mood 4-axes, derives the Motion seed; lock gains Surface/Mood/Type scale)/ss-lintgains a deterministic WCAG token-contrast check (bundled stdlib-onlycontrast_check.py)/ss-updategains a changed-rule gate: a rule whose value changed (like 8px→6px) is surfaced old→new with a per-item confirm, never bundled into a blanket yesCommit 3 — skins pass their own floors
Testing
Verified:
/ss-*skills and gate structure preserved🤖 Generated with Claude Code