Radius

How corner radius is chosen for standalone and nested elements.

Corner radius communicates approachability and helps group related content. We keep a small, deliberate scale rather than arbitrary values, and we derive nested radii mathematically so parent and child corners stay visually aligned.

Standalone elements

The default radius for elements that aren't nested inside another rounded container is 8px.

4px — small
8px — default
12–16px — large
ScaleRadiusApplies to
Small4pxCompact elements: chips, tags, small buttons.
Default8pxButtons, inputs, cards, panels that are not nested.
Large12–16pxLarge surfaces: hero panels, feature cards.

Purpose: ensures visual consistency and approachability across the UI.

Nested elements

When a rounded container wraps another rounded element, the parent's radius should be derived from the child's radius and the padding between them, so the two curves stay concentric:

Parent Radius = Child Radius + Padding

Applies to: containers wrapping content with rounded corners — cards with inner elements, dialogs, panels.

Example: child radius 4px + padding 8px → parent radius 12px.

child: 4px

Parent radius (12px) = child radius (4px) + padding (8px).

Purpose: aligns parent and child corners for a seamless, visually balanced design.

Implementation notes

  • Use design tokens or CSS variables wherever possible instead of hardcoding values:

    --parent-radius: calc(var(--child-radius) + var(--padding));