Skip to content

Shape & depth

Corner radius, border width, scale, shadows, layers, and opacity.

Shape

Corner radius

5 tokens
  • dimension.radius.small

    --semantic-dimension-radius-small

    Use for intentionally subtle corner rounding where the default radius is too pronounced.

    Value
    0.1875rem · 3px dimension.radius.100
  • dimension.radius.default

    --semantic-dimension-radius-default

    Use for borders and container corners by default; choose another radius token only when the component has a specific shape requirement.

    Value
    0.375rem · 6px dimension.radius.200
  • dimension.radius.medium

    --semantic-dimension-radius-medium

    Use when a T-shirt-sized radius scale is explicitly required and a medium radius fits the component.

    Value
    0.375rem · 6px dimension.radius.200
  • dimension.radius.large

    --semantic-dimension-radius-large

    Use for intentionally prominent corner rounding where the default radius is not strong enough.

    Value
    0.75rem · 12px dimension.radius.300
  • dimension.radius.full

    --semantic-dimension-radius-full

    Use for pills and circular shapes that require complete roundness regardless of element size.

    Value
    100rem · 1600px dimension.radius.full

Border width

5 tokens
  • dimension.borderWidth.small

    --semantic-dimension-border-width-small

    Use for subtle 1px borders that need less visual emphasis than the default.

  • dimension.borderWidth.default

    --semantic-dimension-border-width-default

    Use as the default 2px border width. Choose a T-shirt size only when the default is not appropriate.

  • dimension.borderWidth.focusRing

    --semantic-dimension-border-width-focus-ring

    Use for the width of the keyboard-focus ring, whether it is drawn outside a control or inset within it.

  • dimension.borderWidth.medium

    --semantic-dimension-border-width-medium

    Use for the default 2px border treatment.

  • dimension.borderWidth.large

    --semantic-dimension-border-width-large

    Use for prominent borders that need the strongest visual emphasis.

Scale

3 tokens

Depth

Shadows

2 tokens
  • shadow.popup

    --semantic-shadow-popup

    Use to separate floating panels such as dropdowns from the surface beneath them.

    Value
    2px 2px 8px 0px rgb(0% 0% 0% / 0.15)
  • shadow.sticky

    --semantic-shadow-sticky

    Use under sticky elements, such as a pinned toolbar or table of contents, while content scrolls beneath them. Fade it in as content starts to pass underneath.

    Value
    0px 4px 8px 0px rgb(0% 0% 0% / 0.15)

Layers

5 tokens
  • number.layer.background

    --semantic-number-layer-background

    Use for decorative content placed behind other content within an isolated component or application stacking context.

  • number.layer.raised

    --semantic-number-layer-raised

    Use to lift an element above its siblings within the same stacking context, such as a control overlapping a field or text above a decorative bleed.

  • number.layer.floating

    --semantic-number-layer-floating

    Use for panels anchored in the page that scroll with it, such as a compact table of contents opened in place. They stay below sticky page chrome.

  • number.layer.sticky

    --semantic-number-layer-sticky

    Use for sticky or fixed page chrome that content scrolls under, such as a sticky header or a fixed side navigation.

  • number.layer.overlay

    --semantic-number-layer-overlay

    Use when a host application needs an explicit overlay layer above its content, such as a skip link. Keep document-ordered portal families, including Base UI nested popups, on a consistent automatic layer instead of assigning this value to individual parts.

Opacity

5 tokens
  • number.opacity.disabled

    --semantic-number-opacity-disabled

    Use as the opacity for disabled elements that remain visible but unavailable for interaction.

  • number.opacity.hidden

    --semantic-number-opacity-hidden

    Use for the transparent end of a fade, such as a popup before it opens or after it closes.

  • number.opacity.stale

    --semantic-number-opacity-stale

    Use for content shown while its replacement loads, such as the previous page during navigation. Do not use for disabled elements; use disabled.

  • number.opacity.pulse

    --semantic-number-opacity-pulse

    Use for the dim end of a loading pulse, such as a skeleton, alternating with visible over transition.pulse. Do not use for disabled elements.

  • number.opacity.visible

    --semantic-number-opacity-visible

    Use for the fully opaque end of a fade, such as an open popup.