Skip to main content

Sidebar

The side navigation of an app, open while people work.

In Multi-brand

See it live​

Start Storybook to see it live: npm run storybook

When to use it​

In Multi-brand: Account area navigation.

  • Use it when: Apps with several sections people move between all session.
  • Not when: A website's main navigation (navigation menu), or a few sections that fit in tabs.

Instead:

Variants​

What each variant is for in any design system, then what Multi-brand decided and why. Each sample is the live story with that variant set.

defaultvariantUsed in Multi-brand
Start Storybook to see it live

What it is for

Menu items with no border; hover shows the item.

✓Most apps: quiet next to the content.
✕Items that need extra separation.

In Multi-brand

Account-area menu items, the same in every brand.

outlinevariantNot used in Multi-brand
Start Storybook to see it live

What it is for

Menu items with a border.

✓Items that need extra separation from a busy background.
✕A quiet sidebar next to dense content.

In Multi-brand

Brands change color and corners, not the structure of the menu.

defaultsizeUsed in Multi-brand
Start Storybook to see it live

What it is for

The normal row height.

✓Most menu items.
✕Very long lists.

In Multi-brand

Every account-area menu item.

smsizeNot used in Multi-brand
Start Storybook to see it live

What it is for

A smaller row.

✓Long or secondary lists.
✕Touch screens.

In Multi-brand

One density across brands.

lgsizeNot used in Multi-brand
Start Storybook to see it live

What it is for

A taller row with room for an icon and two lines.

✓A workspace or account switcher at the top.
✕Ordinary menu items.

In Multi-brand

One density across brands.

Why it works this way​

Sidebar looks the way it does because of 2 answers about this product. Each card is one answer, in three steps: the answer, what it decided for Sidebar, and what would move if it changed.

How are brands handled?theming.definition
1The answer
Brands as modes

Brands are theme modes over shared semantics.

2So Sidebar
  • ✓uses default: Account-area menu items, the same in every brand.
  • –does not use outline: Brands change color and corners, not the structure of the menu.
It also shapes Empty: default Item: muted Toggle: outline
3If it changed
2
Sidebar decisions would reopen

No other answer follows from it.

How many densities exist?spacing.count
1The answer
One

One density across brands.

2So Sidebar
  • ✓uses default: Every account-area menu item.
  • –does not use sm: One density across brands.
  • –does not use lg: One density across brands.
It also shapes Item: sm Toggle: lg
3If it changed
3
Sidebar decisions would reopen

No other answer follows from it.

Words​

  • Shared structure: object, state, next step.
  • Brand tone lives in headlines and marketing copy, not in errors.
  • Errors and confirmations read the same in every brand.
  • Use: Get started, Plan, Order. Avoid: Brand-specific words in errors, Jargon.

The labels components use, from the voice tokens:

  • content.action.commit: Save
  • content.action.cancel: Cancel
  • content.action.destroy: Remove
  • content.action.retry: Try again
  • content.action.empty-action: Get started

See Voice and tone for the whole voice.

Accessibility and keyboard​

Test before you ship:

  • It is a navigation landmark; the current section is marked; collapsing keeps names for icons. undefined

Use it in code​

npx open-ds add sidebar

The component reads only component keys and semantic tokens, so it follows the brand and mode on <html>.

Tokens it reads​

Sidebar reads 113 tokens of its own, each an alias of a semantic token. Each row is one part: its own token, the semantic it aliases, and the value it ends at. Change a semantic and every component that reads it follows; override one of Sidebar's tokens to change Sidebar alone.

Changes with theme

Multi-brand decides what changes when you switch theme. Here a switch changes colors, type and shape, so the marked rows differ between its brands and between light and dark; everything else holds steady.

PartIts token and the semantic it aliasesValue
Wrapper
Fill
Changes with theme
component.sidebar.wrapper.backgroundcolor.surface.defaultvar(--sidebar-wrapper-background)Aster Lightslate-deep.light.0:#FFFFFFAster Darkslate-deep.dark.50:#0F172ABirch Lightslate-deep.light.0:#FFFFFFBirch Darkslate-deep.dark.50:#0F172ACoral Lightslate-deep.light.0:#FFFFFFCoral Darkslate-deep.dark.50:#0F172A
Sidebar
Fill
Changes with theme
component.sidebar.backgroundcolor.surface.defaultvar(--sidebar-background)Aster Lightslate-deep.light.0:#FFFFFFAster Darkslate-deep.dark.50:#0F172ABirch Lightslate-deep.light.0:#FFFFFFBirch Darkslate-deep.dark.50:#0F172ACoral Lightslate-deep.light.0:#FFFFFFCoral Darkslate-deep.dark.50:#0F172A
Text
Changes with theme
component.sidebar.labelcolor.text.primaryvar(--sidebar-label)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Paddingcomponent.sidebar.paddingcomponent-spacing-map.x2var(--sidebar-padding)space.8:0.5rem
Background hover
Changes with theme
on hover
component.sidebar.background-hovercolor.surface.defaultvar(--sidebar-background-hover)Aster Lightslate-deep.light.0:#FFFFFFAster Darkslate-deep.dark.50:#0F172ABirch Lightslate-deep.light.0:#FFFFFFBirch Darkslate-deep.dark.50:#0F172ACoral Lightslate-deep.light.0:#FFFFFFCoral Darkslate-deep.dark.50:#0F172A
Corner
Changes with theme
component.sidebar.radiusradius.controlvar(--sidebar-radius)Aster Lightradius.4:0.25remAster Darkradius.4:0.25remBirch Lightradius.12:0.75remBirch Darkradius.12:0.75remCoral Lightradius.999:9999pxCoral Darkradius.999:9999px
Text sizecomponent.sidebar.font-sizetype.body.font-sizevar(--sidebar-font-size)font.size.16:1rem
Focus ring
Changes with theme
component.sidebar.focus-ringcolor.border.focusvar(--sidebar-focus-ring)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Padding rightcomponent.sidebar.padding-rightcomponent-spacing-map.x8var(--sidebar-padding-right)space.48:3rem
Sizecomponent.sidebar.sizesize.control.defaultvar(--sidebar-size)size.44:2.75rem
Background hover 2
Changes with theme
on hover
component.sidebar.background-hover-2color.surface.sunkenvar(--sidebar-background-hover-2)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Label hover
Changes with theme
on hover
component.sidebar.label-hovercolor.text.primaryvar(--sidebar-label-hover)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Background active
Changes with theme
component.sidebar.background-activecolor.surface.sunkenvar(--sidebar-background-active)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Label active
Changes with theme
component.sidebar.label-activecolor.text.primaryvar(--sidebar-label-active)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Disabled opacity disabled
when disabled
component.sidebar.disabled-opacity-disabledopacity.disabledvar(--sidebar-disabled-opacity-disabled)opacity.40:0.4
Background 2
Changes with theme
component.sidebar.background-2color.surface.sunkenvar(--sidebar-background-2)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Weightcomponent.sidebar.font-weighttype.label.font-weightvar(--sidebar-font-weight)font.weight.600:600
Focuscomponent.sidebar.focusborder-width.focusvar(--sidebar-focus)border-width.2:2px
Background open hover
Changes with theme
when open, on hover
component.sidebar.background-open-hovercolor.surface.sunkenvar(--sidebar-background-open-hover)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Label open hover
Changes with theme
when open, on hover
component.sidebar.label-open-hovercolor.text.primaryvar(--sidebar-label-open-hover)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Icon sizecomponent.sidebar.icon-sizesize.iconvar(--sidebar-icon-size)size.16:1rem
Focus ring focus
Changes with theme
on focus
component.sidebar.focus-ring-focuscolor.border.focusvar(--sidebar-focus-ring-focus)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Focus ring offset focus
Changes with theme
on focus
component.sidebar.focus-ring-offset-focuscolor.surface.canvasvar(--sidebar-focus-ring-offset-focus)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Heightcomponent.sidebar.heightsize.iconvar(--sidebar-height)size.16:1rem
Font size 2component.sidebar.font-size-2type.caption.font-sizevar(--sidebar-font-size-2)font.size.13:0.8125rem
Gap
Speedcomponent.sidebar.gap.durationmotion.duration.feedbackvar(--sidebar-gap-duration)duration.moderate:200ms
Valuecomponent.sidebar.gapspace.gap.defaultvar(--sidebar-gap)space.12:0.75rem
Container
Speedcomponent.sidebar.container.durationmotion.duration.feedbackvar(--sidebar-container-duration)duration.moderate:200ms
Inner
Fill
Changes with theme
component.sidebar.inner.backgroundcolor.surface.defaultvar(--sidebar-inner-background)Aster Lightslate-deep.light.0:#FFFFFFAster Darkslate-deep.dark.50:#0F172ABirch Lightslate-deep.light.0:#FFFFFFBirch Darkslate-deep.dark.50:#0F172ACoral Lightslate-deep.light.0:#FFFFFFCoral Darkslate-deep.dark.50:#0F172A
Corner
Changes with theme
component.sidebar.inner.radiusradius.containervar(--sidebar-inner-radius)Aster Lightradius.8:0.5remAster Darkradius.8:0.5remBirch Lightradius.16:1remBirch Darkradius.16:1remCoral Lightradius.20:1.25remCoral Darkradius.20:1.25rem
Border
Changes with theme
component.sidebar.inner.bordercolor.border.defaultvar(--sidebar-inner-border)Aster Lightslate-deep.light.200:#E2E8F0Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.200:#E2E8F0Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.200:#E2E8F0Coral Darkslate-deep.dark.100:#1E293B
Shadow
Changes with theme
component.sidebar.inner.shadowelevation.cardvar(--sidebar-inner-shadow)Aster Lightshadow.cardAster Darkshadow.card-darkBirch Lightshadow.cardBirch Darkshadow.card-darkCoral Lightshadow.cardCoral Darkshadow.card-dark
Rail
Background hover
Changes with theme
on hover
component.sidebar.rail.background-hovercolor.border.defaultvar(--sidebar-rail-background-hover)Aster Lightslate-deep.light.200:#E2E8F0Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.200:#E2E8F0Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.200:#E2E8F0Coral Darkslate-deep.dark.100:#1E293B
Inset
Fill
Changes with theme
component.sidebar.inset.backgroundcolor.surface.canvasvar(--sidebar-inset-background)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Corner
Changes with theme
component.sidebar.inset.radiusradius.containervar(--sidebar-inset-radius)Aster Lightradius.8:0.5remAster Darkradius.8:0.5remBirch Lightradius.16:1remBirch Darkradius.16:1remCoral Lightradius.20:1.25remCoral Darkradius.20:1.25rem
Shadow
Changes with theme
component.sidebar.inset.shadowelevation.cardvar(--sidebar-inset-shadow)Aster Lightshadow.cardAster Darkshadow.card-darkBirch Lightshadow.cardBirch Darkshadow.card-darkCoral Lightshadow.cardCoral Darkshadow.card-dark
Input
Heightcomponent.sidebar.input.heightsize.control.defaultvar(--sidebar-input-height)size.44:2.75rem
Fill
Changes with theme
component.sidebar.input.backgroundcolor.surface.canvasvar(--sidebar-input-background)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Header
Gapcomponent.sidebar.header.gapspace.gap.defaultvar(--sidebar-header-gap)space.12:0.75rem
Paddingcomponent.sidebar.header.paddingcomponent-spacing-map.x2var(--sidebar-header-padding)space.8:0.5rem
Footer
Gapcomponent.sidebar.footer.gapspace.gap.defaultvar(--sidebar-footer-gap)space.12:0.75rem
Paddingcomponent.sidebar.footer.paddingcomponent-spacing-map.x2var(--sidebar-footer-padding)space.8:0.5rem
Separator
Fill
Changes with theme
component.sidebar.separator.backgroundcolor.border.defaultvar(--sidebar-separator-background)Aster Lightslate-deep.light.200:#E2E8F0Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.200:#E2E8F0Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.200:#E2E8F0Coral Darkslate-deep.dark.100:#1E293B
Content
Gapcomponent.sidebar.content.gapspace.gap.defaultvar(--sidebar-content-gap)space.12:0.75rem
Group
Paddingcomponent.sidebar.group.paddingcomponent-spacing-map.x2var(--sidebar-group-padding)space.8:0.5rem
Label heightcomponent.sidebar.group.label.heightsize.control.defaultvar(--sidebar-group-label-height)size.44:2.75rem
Label radius
Changes with theme
component.sidebar.group.label.radiusradius.controlvar(--sidebar-group-label-radius)Aster Lightradius.4:0.25remAster Darkradius.4:0.25remBirch Lightradius.12:0.75remBirch Darkradius.12:0.75remCoral Lightradius.999:9999pxCoral Darkradius.999:9999px
Label padding xcomponent.sidebar.group.label.padding-xcomponent-spacing-map.x2var(--sidebar-group-label-padding-x)space.8:0.5rem
Label font sizecomponent.sidebar.group.label.font-sizetype.caption.font-sizevar(--sidebar-group-label-font-size)font.size.13:0.8125rem
Label font weightcomponent.sidebar.group.label.font-weighttype.label.font-weightvar(--sidebar-group-label-font-weight)font.weight.600:600
Label label
Changes with theme
component.sidebar.group.label.labelcolor.text.primaryvar(--sidebar-group-label-label)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Label focus ring
Changes with theme
component.sidebar.group.label.focus-ringcolor.border.focusvar(--sidebar-group-label-focus-ring)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Label durationcomponent.sidebar.group.label.durationmotion.duration.feedbackvar(--sidebar-group-label-duration)duration.moderate:200ms
Label icon sizecomponent.sidebar.group.label.icon-sizesize.iconvar(--sidebar-group-label-icon-size)size.16:1rem
Label focus
on focus
component.sidebar.group.label.focusborder-width.focusvar(--sidebar-group-label-focus)border-width.2:2px
Label focus ring focus
Changes with theme
on focus
component.sidebar.group.label.focus-ring-focuscolor.border.focusvar(--sidebar-group-label-focus-ring-focus)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Label focus ring offset focus
Changes with theme
on focus
component.sidebar.group.label.focus-ring-offset-focuscolor.surface.canvasvar(--sidebar-group-label-focus-ring-offset-focus)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Action radius
Changes with theme
component.sidebar.group.action.radiusradius.controlvar(--sidebar-group-action-radius)Aster Lightradius.4:0.25remAster Darkradius.4:0.25remBirch Lightradius.12:0.75remBirch Darkradius.12:0.75remCoral Lightradius.999:9999pxCoral Darkradius.999:9999px
Action label
Changes with theme
component.sidebar.group.action.labelcolor.text.primaryvar(--sidebar-group-action-label)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Action focus ring
Changes with theme
component.sidebar.group.action.focus-ringcolor.border.focusvar(--sidebar-group-action-focus-ring)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Action background hover
Changes with theme
on hover
component.sidebar.group.action.background-hovercolor.surface.sunkenvar(--sidebar-group-action-background-hover)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Action label hover
Changes with theme
on hover
component.sidebar.group.action.label-hovercolor.text.primaryvar(--sidebar-group-action-label-hover)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Action icon sizecomponent.sidebar.group.action.icon-sizesize.iconvar(--sidebar-group-action-icon-size)size.16:1rem
Action focus
on focus
component.sidebar.group.action.focusborder-width.focusvar(--sidebar-group-action-focus)border-width.2:2px
Action focus ring focus
Changes with theme
on focus
component.sidebar.group.action.focus-ring-focuscolor.border.focusvar(--sidebar-group-action-focus-ring-focus)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Action focus ring offset focus
Changes with theme
on focus
component.sidebar.group.action.focus-ring-offset-focuscolor.surface.canvasvar(--sidebar-group-action-focus-ring-offset-focus)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Content font sizecomponent.sidebar.group.content.font-sizetype.body.font-sizevar(--sidebar-group-content-font-size)font.size.16:1rem
Menu
Gapcomponent.sidebar.menu.gapspace.gap.tightvar(--sidebar-menu-gap)space.8:0.5rem
Action radius
Changes with theme
component.sidebar.menu.action.radiusradius.controlvar(--sidebar-menu-action-radius)Aster Lightradius.4:0.25remAster Darkradius.4:0.25remBirch Lightradius.12:0.75remBirch Darkradius.12:0.75remCoral Lightradius.999:9999pxCoral Darkradius.999:9999px
Action label
Changes with theme
component.sidebar.menu.action.labelcolor.text.primaryvar(--sidebar-menu-action-label)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Action focus ring
Changes with theme
component.sidebar.menu.action.focus-ringcolor.border.focusvar(--sidebar-menu-action-focus-ring)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Action background hover
Changes with theme
on hover
component.sidebar.menu.action.background-hovercolor.surface.sunkenvar(--sidebar-menu-action-background-hover)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Action label hover
Changes with theme
on hover
component.sidebar.menu.action.label-hovercolor.text.primaryvar(--sidebar-menu-action-label-hover)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Action icon sizecomponent.sidebar.menu.action.icon-sizesize.iconvar(--sidebar-menu-action-icon-size)size.16:1rem
Action focus
on focus
component.sidebar.menu.action.focusborder-width.focusvar(--sidebar-menu-action-focus)border-width.2:2px
Action focus ring focus
Changes with theme
on focus
component.sidebar.menu.action.focus-ring-focuscolor.border.focusvar(--sidebar-menu-action-focus-ring-focus)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Action focus ring offset focus
Changes with theme
on focus
component.sidebar.menu.action.focus-ring-offset-focuscolor.surface.canvasvar(--sidebar-menu-action-focus-ring-offset-focus)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Badge radius
Changes with theme
component.sidebar.menu.badge.radiusradius.controlvar(--sidebar-menu-badge-radius)Aster Lightradius.4:0.25remAster Darkradius.4:0.25remBirch Lightradius.12:0.75remBirch Darkradius.12:0.75remCoral Lightradius.999:9999pxCoral Darkradius.999:9999px
Badge padding xcomponent.sidebar.menu.badge.padding-xcomponent-spacing-map.x1var(--sidebar-menu-badge-padding-x)space.4:0.25rem
Badge font sizecomponent.sidebar.menu.badge.font-sizetype.caption.font-sizevar(--sidebar-menu-badge-font-size)font.size.13:0.8125rem
Badge font weightcomponent.sidebar.menu.badge.font-weighttype.label.font-weightvar(--sidebar-menu-badge-font-weight)font.weight.600:600
Badge label
Changes with theme
component.sidebar.menu.badge.labelcolor.text.primaryvar(--sidebar-menu-badge-label)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Skeleton heightcomponent.sidebar.menu.skeleton.heightsize.control.defaultvar(--sidebar-menu-skeleton-height)size.44:2.75rem
Skeleton gapcomponent.sidebar.menu.skeleton.gapspace.gap.defaultvar(--sidebar-menu-skeleton-gap)space.12:0.75rem
Skeleton radius
Changes with theme
component.sidebar.menu.skeleton.radiusradius.controlvar(--sidebar-menu-skeleton-radius)Aster Lightradius.4:0.25remAster Darkradius.4:0.25remBirch Lightradius.12:0.75remBirch Darkradius.12:0.75remCoral Lightradius.999:9999pxCoral Darkradius.999:9999px
Skeleton padding xcomponent.sidebar.menu.skeleton.padding-xcomponent-spacing-map.x2var(--sidebar-menu-skeleton-padding-x)space.8:0.5rem
Sub gapcomponent.sidebar.menu.sub.gapspace.gap.tightvar(--sidebar-menu-sub-gap)space.8:0.5rem
Sub border
Changes with theme
component.sidebar.menu.sub.bordercolor.border.defaultvar(--sidebar-menu-sub-border)Aster Lightslate-deep.light.200:#E2E8F0Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.200:#E2E8F0Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.200:#E2E8F0Coral Darkslate-deep.dark.100:#1E293B
Sub padding xcomponent.sidebar.menu.sub.padding-xcomponent-spacing-map.x3var(--sidebar-menu-sub-padding-x)space.20:1.25rem
Sub padding ycomponent.sidebar.menu.sub.padding-ycomponent-spacing-map.hairlinevar(--sidebar-menu-sub-padding-y)space.2:0.125rem
Sub button gapcomponent.sidebar.menu.sub.button.gapspace.gap.defaultvar(--sidebar-menu-sub-button-gap)space.12:0.75rem
Sub button radius
Changes with theme
component.sidebar.menu.sub.button.radiusradius.controlvar(--sidebar-menu-sub-button-radius)Aster Lightradius.4:0.25remAster Darkradius.4:0.25remBirch Lightradius.12:0.75remBirch Darkradius.12:0.75remCoral Lightradius.999:9999pxCoral Darkradius.999:9999px
Sub button padding xcomponent.sidebar.menu.sub.button.padding-xcomponent-spacing-map.x2var(--sidebar-menu-sub-button-padding-x)space.8:0.5rem
Sub button label
Changes with theme
component.sidebar.menu.sub.button.labelcolor.text.primaryvar(--sidebar-menu-sub-button-label)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Sub button focus ring
Changes with theme
component.sidebar.menu.sub.button.focus-ringcolor.border.focusvar(--sidebar-menu-sub-button-focus-ring)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Sub button background hover
Changes with theme
on hover
component.sidebar.menu.sub.button.background-hovercolor.surface.sunkenvar(--sidebar-menu-sub-button-background-hover)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Sub button label hover
Changes with theme
on hover
component.sidebar.menu.sub.button.label-hovercolor.text.primaryvar(--sidebar-menu-sub-button-label-hover)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Sub button background active
Changes with theme
component.sidebar.menu.sub.button.background-activecolor.surface.sunkenvar(--sidebar-menu-sub-button-background-active)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Sub button label active
Changes with theme
component.sidebar.menu.sub.button.label-activecolor.text.primaryvar(--sidebar-menu-sub-button-label-active)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Sub button disabled opacity disabled
when disabled
component.sidebar.menu.sub.button.disabled-opacity-disabledopacity.disabledvar(--sidebar-menu-sub-button-disabled-opacity-disabled)opacity.40:0.4
Sub button icon sizecomponent.sidebar.menu.sub.button.icon-sizesize.iconvar(--sidebar-menu-sub-button-icon-size)size.16:1rem
Sub button focus
on focus
component.sidebar.menu.sub.button.focusborder-width.focusvar(--sidebar-menu-sub-button-focus)border-width.2:2px
Sub button focus ring focus
Changes with theme
on focus
component.sidebar.menu.sub.button.focus-ring-focuscolor.border.focusvar(--sidebar-menu-sub-button-focus-ring-focus)Aster Lightteal.light.600:#0F766EAster Darkteal.dark.600:#7FCFC6Birch Lightpurple.light.600:#6D28D9Birch Darkpurple.dark.600:#B79DF7Coral Lightorange.light.600:#C2410CCoral Darkorange.dark.600:#F7A67F
Sub button focus ring offset focus
Changes with theme
on focus
component.sidebar.menu.sub.button.focus-ring-offset-focuscolor.surface.canvasvar(--sidebar-menu-sub-button-focus-ring-offset-focus)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Default
Background hover
Changes with theme
component.sidebar.default.background-hovercolor.surface.sunkenvar(--sidebar-default-background-hover)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Label hover
Changes with theme
on hover
component.sidebar.default.label-hovercolor.text.primaryvar(--sidebar-default-label-hover)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Heightcomponent.sidebar.default.heightsize.control.defaultvar(--sidebar-default-height)size.44:2.75rem
Text sizecomponent.sidebar.default.font-sizetype.body.font-sizevar(--sidebar-default-font-size)font.size.16:1rem
Outline
Fill
Changes with theme
component.sidebar.outline.backgroundcolor.surface.canvasvar(--sidebar-outline-background)Aster Lightslate-deep.light.50:#F8FAFCAster Darkslate-deep.dark.0:#020617Birch Lightslate-deep.light.50:#F8FAFCBirch Darkslate-deep.dark.0:#020617Coral Lightslate-deep.light.50:#F8FAFCCoral Darkslate-deep.dark.0:#020617
Background hover
Changes with theme
on hover
component.sidebar.outline.background-hovercolor.surface.sunkenvar(--sidebar-outline-background-hover)Aster Lightslate-deep.light.100:#F1F5F9Aster Darkslate-deep.dark.100:#1E293BBirch Lightslate-deep.light.100:#F1F5F9Birch Darkslate-deep.dark.100:#1E293BCoral Lightslate-deep.light.100:#F1F5F9Coral Darkslate-deep.dark.100:#1E293B
Label hover
Changes with theme
on hover
component.sidebar.outline.label-hovercolor.text.primaryvar(--sidebar-outline-label-hover)Aster Lightslate-deep.light.900:#0F172AAster Darkslate-deep.dark.900:#F8FAFCBirch Lightslate-deep.light.900:#0F172ABirch Darkslate-deep.dark.900:#F8FAFCCoral Lightslate-deep.light.900:#0F172ACoral Darkslate-deep.dark.900:#F8FAFC
Sm
Text sizecomponent.sidebar.sm.font-sizetype.caption.font-sizevar(--sidebar-sm-font-size)font.size.13:0.8125rem
Lg
Text sizecomponent.sidebar.lg.font-sizetype.body.font-sizevar(--sidebar-lg-font-size)font.size.16:1rem
From the system
Edge
Changes with theme
color.border.default
straight from the system, through --border
Aster Lightslate-deep.light.200 · #E2E8F0Aster Darkslate-deep.dark.100 · #1E293BBirch Lightslate-deep.light.200 · #E2E8F0Birch Darkslate-deep.dark.100 · #1E293BCoral Lightslate-deep.light.200 · #E2E8F0Coral Darkslate-deep.dark.100 · #1E293B