Foundations

Foundations

The package has 373 tokens in three layers: 126 primitives, 141 semantic tokens and 106 component tokens. These pages show the semantic layer in the base theme, which is the one you write CSS against.

Foundation pages

Other tokens

The semantic tokens that don’t need a page of their own. None of them change between light and dark.

Radius

Corner rounding by role: components, interactive controls, images and pills.

TokenValueUsed by
--border-radius-component8pxAlert, Card, Dialog, Menu and 4 more
--border-radius-interactive4pxAlert, Dialog, Drawer, Menu and 11 more
--border-radius-image0.75remCard
--border-radius-pill9999pxAvatar, Badge, Button, Input and 2 more

Border width

The default border and the border on interactive controls.

TokenValueUsed by
--border-width-interactive1pxMenu, NavigationMenu, Button, Checkbox and 4 more
--border-width-default1pxAlert, Card, Dialog, Drawer and 12 more

Shadow

Elevation by component: cards, dropdowns, dialogs and toasts.

TokenValueUsed by
--shadow-card0 1px 2px 0 rgba(0,0,0,0.05)—
--shadow-card-hover0 1px 3px 0 rgba(0,0,0,0.10), 0 1px 2px -1px rgba(0,0,0,0.10)Card
--shadow-dropdown0 4px 6px -1px rgba(0,0,0,0.10), 0 2px 4px -2px rgba(0,0,0,0.10)Menu, NavigationMenu, Select
--shadow-dialog0 4px 6px -1px rgba(0,0,0,0.10), 0 2px 4px -2px rgba(0,0,0,0.10)Drawer
--shadow-toast0 10px 15px -3px rgba(0,0,0,0.10), 0 4px 6px -4px rgba(0,0,0,0.10)Toast, Tooltip

Size

The focus ring, icon sizes, the default dialog width and the container widths for text, media and pages.

TokenValueUsed by
--focus-ring-width2pxAlert, Card, Dialog, Drawer and 18 more
--focus-ring-offset4pxAlert, Card, Dialog, Drawer and 19 more
--size-icon-xs12pxLink
--size-icon-sm16pxMenu, NavigationMenu, SideNav, Spinner
--size-icon-md20pxAlert, Toast, Accordion, Spinner
--size-icon-lg24pxSpinner
--size-icon-xl32px—
--size-dialog-default560px—
--size-container-text45rem—
--size-container-media60rem—
--size-container-wide80rem—
--size-container-page90rem—
--size-container-site90vw—

Opacity

The overlay behind a dialog, and disabled controls.

TokenValueUsed by
--opacity-overlay0.3—
--opacity-disabled0.1Menu, Accordion, Pagination, Tabs and 7 more

Z-index

Stacking order, lowest to highest. The skip link sits above everything.

TokenValueUsed by
--z-sticky100—
--z-dropdown200NavigationMenu
--z-overlay300—
--z-modal400—
--z-toast500Toast
--z-tooltip600Tooltip
--z-skip-link700SkipLink

How the tokens are layered

Primitives are raw values: a gray ramp, a 4px spacing step. Components never use them; the linter fails the build if one does. Semantic tokens name a role, like --color-text-secondary or --space-element-gap, and point at a primitive. A brand or dark mode changes what they point at. Component tokens name one component’s decisions, like --button-padding-x, and are listed on each component’s page.

Every token, primitives included, with all four resolved values, is in tokens.json.