Skip to main content Skip to docs navigation

Border Radius Tokens

Comprehensive guide to border radius tokens defining consistent corner rounding for UI elements throughout the design system.

This documentation is a work in progress. Some information may be incomplete, outdated, or differ from the current product behavior.

Overview

Border radius tokens define consistent corner rounding values for UI elements throughout the design system. They contribute to the visual style and brand personality while ensuring harmonious rounded corners across all components.

Architecture

Border radius tokens use a two-layer architecture where base radius values are defined in the Brand group and then applied through contextual and component-specific tokens in the App group.

How it works:

The system provides brand flexibility with application consistency:

  1. Base border radius (borderRadius.base.*) defines brand-specific rounding values
  2. Contextual border radius (borderRadius.context.*) references base values with semantic names
  3. Component border radius (borderRadius.[component].*) assigns specific rounding to UI elements

Benefits:

  • Adjust brand's corner style globally by changing base tokens
  • Consistent rounding across similar components
  • Semantic naming clarifies rounding intent
  • Easy to switch between sharp, rounded, or highly rounded styles

Border radius is a key brand identity element. Different brands can have dramatically different corner styles (sharp, subtle curves, or pill-shaped) while maintaining the same component structure.

Organization

Border radius tokens are organized into three categories:

Base Border Radius (Brand group): Brand-specific rounding values that define the visual style.

Contextual Border Radius (App group): Semantic radius scales referencing base values.

Component Border Radius (App group): Specific rounding values for individual UI components.

This organization allows brand customization while maintaining consistent application.

Base Border Radius

Base border radius tokens are defined in the Brand group and establish the brand's corner rounding style.

Token NameDefault ValuePurpose
borderRadius.base.xsmall2pxExtra subtle rounding
borderRadius.base.small4pxSubtle corner rounding
borderRadius.base.medium8pxStandard component rounding
borderRadius.base.large12pxProminent rounding
borderRadius.base.xlarge16pxExtra prominent rounding
borderRadius.base.2xlarge20pxVery rounded corners
borderRadius.base.3xlarge24pxHighly rounded corners
borderRadius.base.round256pxFully rounded (pill shape)

Brand Customization

Brands can override these values to achieve different visual styles:

Sharp Style (Minimal rounding):

{
  "borderRadius.base.small": "2px",
  "borderRadius.base.medium": "4px",
  "borderRadius.base.large": "6px"
}

Rounded Style (Moderate rounding):

{
  "borderRadius.base.small": "6px",
  "borderRadius.base.medium": "12px",
  "borderRadius.base.large": "16px"
}

Highly Rounded Style (Soft rounding):

{
  "borderRadius.base.small": "8px",
  "borderRadius.base.medium": "16px",
  "borderRadius.base.large": "24px"
}

Contextual Border Radius

Contextual border radius tokens reference base values and provide semantic naming.

Token NameReferencesPurpose
borderRadius.context.zero0No rounding, sharp corners
borderRadius.context.xsmallborderRadius.base.xsmallExtra subtle rounding
borderRadius.context.smallborderRadius.base.smallSubtle rounding for small elements
borderRadius.context.mediumborderRadius.base.mediumStandard component rounding
borderRadius.context.largeborderRadius.base.largeProminent rounding
borderRadius.context.xlargeborderRadius.base.xlargeExtra prominent rounding
borderRadius.context.2xlargeborderRadius.base.2xlargeVery rounded
borderRadius.context.3xlargeborderRadius.base.3xlargeHighly rounded
borderRadius.context.roundborderRadius.base.roundFully rounded (pill)

Precise Rounding Values

For elements that need exact rounding regardless of brand:

Token NameValuePurpose
borderRadius.context.round-84pxExact 8px circle radius
borderRadius.context.round-126pxExact 12px circle radius
borderRadius.context.round-168pxExact 16px circle radius
borderRadius.context.round-2010pxExact 20px circle radius
borderRadius.context.round-2412pxExact 24px circle radius
...continues through round-96Perfect circles for specific sizes

These tokens ensure elements with specific heights/widths can have perfectly circular corners.

Component Border Radius

Component-specific border radius tokens assign rounding to individual UI elements.

Buttons & Interactive Elements

Token NameReferencesApplied To
borderRadius.button.smallborderRadius.context.mediumSmall buttons
borderRadius.button.mediumborderRadius.context.mediumStandard buttons
borderRadius.button.largeborderRadius.context.mediumLarge buttons

Badges & Chips

Token NameReferencesApplied To
borderRadius.badge.smallborderRadius.context.round-20Small badges (pill)
borderRadius.badge.mediumborderRadius.context.round-24Medium badges (pill)
borderRadius.badge.largeborderRadius.context.round-28Large badges (pill)
borderRadius.chip.smallborderRadius.context.round-24Small chips (pill)
borderRadius.chip.mediumborderRadius.context.round-32Medium chips (pill)
borderRadius.chip.largeborderRadius.context.round-40Large chips (pill)

Form Inputs

Token NameReferencesApplied To
borderRadius.form-input.smallborderRadius.context.mediumSmall inputs
borderRadius.form-input.mediumborderRadius.context.mediumStandard inputs
borderRadius.form-input.largeborderRadius.context.mediumLarge inputs

Cards & Containers

Token NameReferencesApplied To
borderRadius.card.mainborderRadius.context.mediumCard containers
borderRadius.modal.mainborderRadius.context.mediumModal dialogs
borderRadius.section.mainborderRadius.context.largeSection containers
borderRadius.alert.mainborderRadius.context.mediumAlert banners
borderRadius.notification.mainborderRadius.context.mediumNotifications
Token NameReferencesApplied To
borderRadius.dropdown.mainborderRadius.context.mediumDropdown containers
borderRadius.dropdown.itemborderRadius.context.smallIndividual dropdown items
borderRadius.date-picker.mainborderRadius.context.mediumDate picker container
borderRadius.date-picker.dayborderRadius.context.smallDay cells

Tables & Data

Token NameReferencesApplied To
borderRadius.table.mainborderRadius.context.mediumTable containers

Pagination

Token NameReferencesApplied To
borderRadius.pagination.buttonborderRadius.context.mediumPagination buttons
borderRadius.pagination.dot-idleborderRadius.context.round-8Idle dot indicators
borderRadius.pagination.dot-activeborderRadius.context.round-8Active dot indicators

Indicators

Token NameReferencesApplied To
borderRadius.asset.indicatorborderRadius.context.zeroStatus indicators
borderRadius.tooltip.mainborderRadius.context.smallTooltip containers

Usage Guidelines

Choosing the Right Token

For components: Use component-specific tokens (borderRadius.button.*, borderRadius.card.*)

For pills/circles: Use precise round tokens (borderRadius.context.round-24)

For custom elements: Use contextual tokens (borderRadius.context.medium)

For sharp corners: Use borderRadius.context.zero

Design Principles

Consistency: Use the same rounding style for similar component types

Hierarchy: Larger elements can have more prominent rounding

Brand Alignment: Border radius is a key brand characteristic—choose wisely

Touch Targets: Ensure rounded buttons maintain minimum touch target size

Common Patterns

Standard Components: Use borderRadius.context.medium for most UI elements

Pills & Badges: Use precise round tokens for perfect circles

Cards: Use borderRadius.context.medium or borderRadius.context.large

Small Elements: Use borderRadius.context.small for compact components

Accessibility

  • Border radius doesn't directly impact accessibility
  • Ensure rounded corners don't reduce touch target size
  • Maintain sufficient contrast at corners (particularly with borders)
  • Test that rounded corners render clearly on all devices

Best Practices

Do:

  • Use component tokens for specific UI elements
  • Use contextual tokens for custom components
  • Maintain consistency across similar elements
  • Test rounding across different screen sizes
  • Use brand base tokens for global style changes

Don't:

  • Use arbitrary radius values—always reference tokens
  • Mix different rounding styles inconsistently
  • Use excessive rounding that distorts content
  • Forget that border radius affects visual weight
  • Apply rounding that interferes with legibility

Brand Customization Example

To create a new brand with softer rounding:

// brand-example.json
{
  "borderRadius": {
    "base": {
      "xsmall": {
        "$type": "borderRadius",
        "$value": "{dimension.base.4}"
      },
      "small": {
        "$type": "borderRadius",
        "$value": "{dimension.base.8}"
      },
      "medium": {
        "$type": "borderRadius",
        "$value": "{dimension.base.16}"
      },
      "large": {
        "$type": "borderRadius",
        "$value": "{dimension.base.20}"
      }
    }
  }
}

All components automatically adopt the new rounding style without individual updates.