Radii

The corner-radius scale, from a hairline 2px to a full pill.

Radius tokens round corners consistently across the system, from a barely-there 2xs to the full pill / circle. On the web, @reva/ui derives its rounded-* utilities from a single --radius base so the whole ladder can scale together (and bump under the squircle progressive-enhancement).

2xs
2px
xs
4px
sm
6px
md
8px
lg
12px
xl
16px
2xl
20px
3xl
24px
4xl
32px
5xl
40px
6xl
48px
7xl
56px
TokenValuePixelsDescription
2xs0.125rem2px2x extra small radius (2px)
xs0.25rem4pxExtra small radius (4px)
sm0.375rem6pxSmall radius (6px)
md0.5rem8pxMedium radius (8px)
lg0.75rem12pxLarge radius (12px)
xl1rem16pxExtra large radius (16px)
2xl1.25rem20px2x large radius (20px)
3xl1.5rem24px3x large radius (24px)
4xl2rem32px4x large radius (32px)
5xl2.5rem40px5x large radius (40px)
6xl3rem48px6x large radius (48px)
7xl3.5rem56px7x large radius (56px)
full9999px9999pxFull pill / circle radius

Squircle corners

Every rung above resolves from one line — calc(var(--radius) * var(--radius-scale) * k): a single --radius base, a per-rung multiplier k, and one shared --radius-scale. That shared scale is the hook.

Where the browser supports CSS corner-shape, @reva/ui paints superellipse — "squircle" — corners and bumps --radius-scale to 1.75, re-scaling the entire ladder from a single declaration with zero per-component edits. The bump isn't arbitrary: a squircle of radius R hugs the corner more tightly than a round corner of the same R, so scaling up preserves the visual weight you designed for — softer silhouette, same presence. Browsers without support ignore the block entirely and render today's exact border-radius, pixel-for-pixel; rounded-full always stays a true circle or pill.

Round
border-radius · ×1
Squircle
corner-shape · ×1.75

Same box, same rung — only --radius-scale (×1 vs ×1.75) and corner-shape set them apart.

On this page