Shape

Border radius tokens for consistent component rounding, from sharp corners to full pills.

Overview

The radius scale uses a semantic naming system: inner → element → container → page. Each level fits a specific context. Themes can multiply the entire scale via a radius multiplier, with --radius-none and --radius-full as fixed anchors.

Radius Scale

TokenValueExample
--radius-none0px
--radius-inner8px
--radius-element12px
--radius-container16px
--radius-page32px
--radius-chat28px
--radius-full9999px

Concentric Radius

When a rounded container has padding, inner elements need a smaller radius to appear concentric. Components like Card handle this automatically; the inner radius is computed as max(0, outerRadius - padding).
Concentric radius formula
css
/* Automatic in XDS Card */
--card-concentric-radius: max(0px, calc(var(--_card-radius) - var(--card-padding)));

Best Practices

GuidancePractices
DoUse --radius-element for interactive controls (buttons, inputs, selectors).
DoUse --radius-container for content containers (cards, panels, dialogs).
DoUse --radius-full for pill shapes (badges, tags, avatar status dots).
Don'tUse --radius-page for small elements; it's meant for page-level containers.
Don'tHardcode radius values; they won't scale with theme radius multipliers.