Align FX token contract with Figma - #35
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
| focus_ring_legacy: { | ||
| kind: 'direct', | ||
| ref: { family: 'accent', id: 'brand', opacity_stop: 40 }, | ||
| ref: { family: 'accent', id: 'brand' }, | ||
| }, |
There was a problem hiding this comment.
🔴 Legacy --fx-focus-ring lost opacity_stop during deprecation window, changing alpha from 0.4 to 1.0
The deprecated --fx-focus-ring token's value changed from semi-transparent (alpha=0.4) to fully opaque (alpha=1.0) during its deprecation grace period. The old config at packages/tokens/config/tokens.config.ts:625 (pre-PR) had ref: { family: 'accent', id: 'brand', opacity_stop: 40 }, producing CSS like oklch(0.603 0.218 257.4 / 0.4). The new focus_ring_legacy at line 680 drops opacity_stop, producing oklch(0.603 0.218 257.4) (alpha=1). Any consumer relying on --fx-focus-ring during the grace period (before removed_in: '0.3.0') will see their focus rings go from 40% transparent to fully opaque — a visually breaking change that defeats the purpose of the deprecation window.
| focus_ring_legacy: { | |
| kind: 'direct', | |
| ref: { family: 'accent', id: 'brand', opacity_stop: 40 }, | |
| ref: { family: 'accent', id: 'brand' }, | |
| }, | |
| focus_ring_legacy: { | |
| kind: 'direct', | |
| ref: { family: 'accent', id: 'brand', opacity_stop: 40 }, | |
| }, |
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
static-skeleton-midas an auditable system-mid-gray primitive, then derives skeleton and shadow values from small opacity recipes instead of collapsed hardcoded FX cells.--fx-glow-success,--fx-glow-info,--fx-focus-ring, and--fx-skeletonthrough the 0.2.x deprecation window with 0.3.0 removal metadata.Review & Testing Checklist for Human
--fx-focus-ringlegacy mapping to Brand is acceptable for existing consumers.Notes
Local checks run:
pnpm --dir /home/ubuntu/repos/labui --filter @lab-ui/tokens lintpnpm --dir /home/ubuntu/repos/labui --filter @lab-ui/tokens testpnpm --dir /home/ubuntu/repos/labui buildpnpm --dir /home/ubuntu/repos/labui lintCI initially failed because
packages/tokens/docs/test-catalog.mdwas stale after adding the FX contract test; the catalog is now regenerated and committed.Link to Devin session: https://app.devin.ai/sessions/658befcbfc6d43678af8c40886b974df
Requested by: @lemone112