feat(ui): design tokens 4/5 — semantic border-radius scale#8102
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
metagraphed-ui | 21ee4ac | Commit Preview URL Branch Preview URL |
Jul 25 2026, 02:48 AM |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8102 +/- ##
=======================================
Coverage 97.71% 97.71%
=======================================
Files 282 282
Lines 27614 27614
Branches 10831 10831
=======================================
Hits 26984 26984
Misses 141 141
Partials 489 489 🚀 New features to boost your workflow:
|
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-25 03:00:24 UTC
Review summary Nits — 8 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Visual previewClick any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy · Diff highlights exactly what changed. Scroll previewA short scroll-through clip (desktop) — click either thumbnail to open the full animation. Evidence for scroll-linked behavior a single screenshot can't show. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
…m/rounded-lg eliminated) Sweeps all ~832 border-radius sites across both packages to the approved 5-step scale (rounded-full / rounded / rounded-md / rounded-xl / rounded-2xl), per the audited + approved table posted to #7843: - rounded-sm -> rounded (35 sites) - rounded-lg -> rounded-md (60 sites) - page-section.tsx's muted-tone rounded-2xl -> rounded-xl, matching <PageSection>'s "large content shell" tier alongside drawers/modals (it's a general page wrapper, not hero-specific); -health-page.tsx's sectionRing() active-state ring moves in lockstep to stay visually paired with the section it outlines - rounded-2xl confirmed confined to the homepage hero family and the documented .mg-card-glow/.mg-card-glow-accent detail-page KPI-panel pattern (#6398) -- no other sites found - 10 dense-grid rounded-[1px]/rounded-[2px] micro-radius sites (heatmaps, status mosaic, uptime bar) kept as a documented residual -- every named step is visually far larger and would change these grids Adds a warn-tier ESLint guardrail (both configs) flagging rounded-(sm|lg|3xl) and arbitrary rounded-[...], with messages that deliberately avoid spelling out the banned classes as contiguous tokens (a literal self-match false positive against the rule's own config file otherwise). Documents the approved table in apps/ui/CONTRIBUTING.md. Closes #7843.
bd87077 to
ad81072
Compare
CI's "Build packages/ui-kit (drift check)" caught the compiled
dist/{index.js,index.cjs} bundle drifting out of sync with the source
files touched by the #7843 radius sweep (page-section.tsx,
chart-skeleton.tsx, donut.tsx, stat-with-spark.tsx, treemap-mini.tsx,
methodology-callout.tsx, query-bar.tsx, ui/dialog.tsx, ui/sheet.tsx,
ui/command.tsx) -- packages/ui-kit/dist is a committed runtime bundle
(see packages/ui-kit/.gitignore) so apps/ui's Cloudflare Workers Builds
deploy never depends on rebuilding a sibling workspace package first.
Rebuilt via `npm run build --workspace=packages/ui-kit` and verified
`git diff --exit-code -- packages/ui-kit/dist` is clean afterward,
matching the CI check exactly.
Part of #7843.








Summary
Phase 1 audit + proposed table posted as a comment on #7843 (occurrence census across both packages, archetype→radius mapping with two justified adjustments and one documented exception carve-out). Phase 2 (this PR) executes the approved sweep:
rounded-sm→rounded(35 sites),rounded-lg→rounded-md(60 sites) — mechanical, exact-token renames viaperl -pi, verified with an occurrence-count check (0 remaining of either class) and a duplicate-collision check (norounded rounded/rounded-md rounded-mdartifacts).packages/ui-kit/src/components/metagraphed/page-section.tsx's muted-tonerounded-2xl→rounded-xl—<PageSection>is a general page-content wrapper (used ingaps.tsx,schemas.tsx, the health dashboard), not hero-specific, so it belongs in the "large surface" tier next to drawers/modals.-health-page.tsx'ssectionRing()active-state ring (which outlines whichever<PageSection>a deep-link scrolled to) moves torounded-xlin lockstep so the ring stays visually paired with its section.rounded-2xlis otherwise confined to the homepage hero family (hero-feature-row.tsx,-index-page.tsx) and the documented.mg-card-glow/.mg-card-glow-accentdetail-page KPI-panel pattern (accounts.$ss58.tsx and validators.$hotkey.tsx hardcode ~21 raw rgba(...) shadow colors instead of the design system's color-mix idiom #6398 — already an explicit ESLint exemption elsewhere in the same config, not new drift).rounded-[1px]/rounded-[2px]micro-radius sites (heatmaps, status mosaic, endpoint-uptime bar) as a documented residual rather than force-fitting them into the scale — every named step is visually far larger and would materially change these per-cell fills. Matches the existing residual-worklist convention the z-index rule already uses for the compare-drawers'z-[1]/z-[2]sites.no-restricted-syntaxrule to botheslint.config.tsfiles flaggingrounded-(sm|lg|3xl)and arbitraryrounded-[…]. Caught and fixed a real self-match false positive during development: the rule's own message text initially spelled outrounded-sm/rounded-[…]as literal examples, which matched the very selector it was documenting inside the config file itself — same root-cause class as the existing hex-color rule's GitHub-issue-reference false positive. Rewrote both messages to describe the violation without a literal contiguous match.apps/ui/CONTRIBUTING.md(rounded-full/rounded/rounded-md/rounded-xl/rounded-2xl, with the two exceptions above called out).Test plan
tsc --noEmitclean in both packageseslint .in both packages: 0 errors (388 warnings in apps/ui, 43 in ui-kit — 9 are the documented dense-grid residual, the rest pre-existing and unrelated)prettier --checkclean on all touched filesvitest run: 1464/1464 passing in apps/ui, 98/98 passing in ui-kit/subnetsrenders correctly with no console errors attributable to this change (one pre-existing, unrelated hydration warning aboutFinancialTrendCell's dynamictext-[10px]USD/pct timing, not touched here); confirmedrounded-mdcomputes to a real10pxborder-radius across 218 live elements on the page, proving the class swap compiles and applies correctly, not just present as dead text.Closes #7843.