Repository navigation
refactor(styles): replace bracket escapes with design tokens - #214
Merged
JakeGinnivan merged 3 commits intoOct 26, 2026
Merged
Conversation
Bracketed values bypass Panda's token system, so a downstream fork's theme can't reach them. Colours, borders, focus outlines and shadows now go through tokens that reference theme colours (borders.focus, focus-chrome, focus-admin, focus-on-dark, shadows.current-row, colors.tier.*), and px sizes use the size scale. Values with no token equivalent (calc, anchor(), %, em, vh) stay bracketed, and properties with no token category take plain CSS. circle-date.tsx had no importers and is removed rather than converted.
…teps Rounding to the nearest preset size moved the home, sponsors and agenda baselines (sponsor cards 120px -> 128px, hero art up to 28px taller). The size scale now carries the 4px-grid steps those pages were laid out at (sizes.30 = 7.5rem = 120px, and so on), so they stay tokens without moving. pnpm vr: 81/81 against the existing baselines.
The skip link's hand-written visually-hidden box becomes Panda's srOnly utility, with clip reset on focus. Inset utilities gain half (50%) and full (100%), replacing the last [50%] and [100%] escapes. spacing.px is dropped now that nothing uses it.
JakeGinnivan
deleted the
jakeginnivan/replace-bracket-escapes-with-tokens
branch
October 26, 2026 01:34
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
Bracket escapes (
w="[180px]",outline="[2px solid ...]") skip the token system, so a downstream fork's theme can't reach them. This replaces 185 of the 207 incore/websitewith design tokens.sizes.27.5= 110px) instead of rounding. Admin pages round to the nearest existing token.srOnlyinstead of a hand-written hidden box.calc(),anchor(),max(),emandchunits,dvh/vhfractions, andbrightness(). One is on the header logo line, which feat(blog): migrate every Medium post onto the site and retire blog.dddperth.com #209 also edits.hero/circle-date.tsx, which nothing imported.Evidence
core/website/app+panda.config.ts.After: 22.
0d48e2f), andreact-router buildsucceeds.pnpm vrpassed 81/81 against the existing baselines on the first two commits, with no baselines regenerated.pnpm vron the last commit (srOnly + insets), because Docker was down. I checked the generated CSS instead: it containstop: 50%,inset-inline-start: 50%,top: 100%, thesrOnlyclip rule, andclip: autoon focus.Merge Danger
Door: two-way
Pure style refactor; revert restores it.
Blast Radius: layout
On public pages, a token resolving to the wrong value would change the layout, which the VR gate catches. Admin pages aren't in the VR suite, so the ±2px rounding there is visually unverified. Forks get new token names and can theme them. The VR suite takes no focused screenshots, so check the skip link by pressing Tab on any page. #209 will conflict in
hero-panel.tsxandmdx-image.tsx.