GitHubopen_in_new

NavigationDrawer ​

NavigationDrawer provides vertical navigation destinations with selectable items and expandable sections. Use iconSpace="root" when top-level icon and text-only items should share the same label column. Use iconOnly for compact drawers that show leading icons, keep labels available to assistive technologies, and expose labels as tooltips. Use shape to set the default shape for items and section triggers; an individual NavigationDrawerItem can override it.

Row sizes ​

Set size on NavigationDrawer for all destinations. NavigationDrawerItem can override one row; NavigationDrawerSection sets the size of its trigger and descendant destinations.

See Row sizes for the scale, shared rowSize default and density behavior.

Examples ​

Default ​

Without Icons ​

Icon Only ​

Reference ​

Anatomy

ElementPartSelector
<nav>
root
[data-scope="navigation-drawer"][data-part="root"]
left_clickLMBCopy
<div>
headerconditional
[data-scope="navigation-drawer"][data-part="header"]
left_clickLMBCopy
<div>
items
[data-scope="navigation-drawer"][data-part="items"]
left_clickLMBCopy
<div>
footerconditional
[data-scope="navigation-drawer"][data-part="footer"]

Anatomy

ElementPartSelector
<component>
root
[data-scope="navigation-drawer-item"][data-part="root"]
left_clickLMBCopy
<span>
leadingconditional
[data-scope="navigation-drawer-item"][data-part="leading"]
left_clickLMBCopy
<span>
labelconditional
[data-scope="navigation-drawer-item"][data-part="label"]
left_clickLMBCopy
<span>
trailingconditional
[data-scope="navigation-drawer-item"][data-part="trailing"]
left_clickLMBCopy

Anatomy

ElementPartSelector
<section>
root
[data-scope="navigation-drawer-section"][data-part="root"]
left_clickLMBCopy
<button>
trigger
[data-scope="navigation-drawer-section"][data-part="trigger"]
left_clickLMBCopy
<span>
leadingconditional
[data-scope="navigation-drawer-section"][data-part="leading"]
left_clickLMBCopy
<span>
labelconditional
[data-scope="navigation-drawer-section"][data-part="label"]
left_clickLMBCopy
<Icon>
chevron
[data-scope="navigation-drawer-section"][data-part="chevron"]
left_clickLMBCopy
<div>
content
[data-scope="navigation-drawer-section"][data-part="content"]
left_clickLMBCopy
<div>
content-inner
[data-scope="navigation-drawer-section"][data-part="content-inner"]
left_clickLMBCopy

Props

NameDescriptionDefaultControl
sizeOptional

Row size; inherits the nearest row size or defaults to medium.

RowSize | undefined
-
-
ariaLabelOptional

Accessible label for the navigation landmark.

string | undefined
"Navigation drawer"
disabledOptional

Disable all items inside the drawer.

boolean | undefined
false
iconSpaceOptional

Controls where leading icon space is reserved for items and sections that do not render an icon.

nonerootall
"none"
iconOnlyOptional

Show only leading icons while keeping labels available to assistive technologies.

boolean | undefined
false
shapeOptional

Default shape for items and section triggers inside the drawer.

M3Shape | undefined
undefined
-
modelValueOptional

-

string | undefined
-

Events1

NameTypeDescription
update:modelValue[value: string | undefined]-

Slots3

NameParametersDescription
header-Optional header content above navigation items.
default-Navigation destinations. Usually NavigationDrawerItem and NavigationDrawerSection components.
footer-Optional footer content below navigation items.

Styling24

TokenDescription
--md-navigation-drawer-container-colorColor
Fallbackvar(--md-sys-color-surface-container-low)

Controls container color.

--md-navigation-drawer-container-shapeShape
Fallbackvar(--md-shape-docked)

Controls container shape.

--md-navigation-drawer-container-widthLayout
Fallback--dp(360)

Controls container width.

--md-navigation-drawer-content-gapLayout
Fallback--dp(4)

Controls item gap.

--md-navigation-drawer-padding-blockLayout
Fallback--dp(12)

Controls block padding.

--md-navigation-drawer-padding-inlineLayout
Fallback--dp(12)

Controls inline padding.

--md-navigation-drawer-item-active-icon-colorColor
Fallbackvar(--md-sys-color-on-secondary-container)

Controls item active icon color.

--md-navigation-drawer-item-active-indicator-colorColor
Fallbackvar(--md-sys-color-secondary-container)

Controls item active indicator color.

--md-navigation-drawer-item-active-label-colorColor
Fallbackvar(--md-sys-color-on-secondary-container)

Controls item active label color.

--md-navigation-drawer-item-active-state-layer-colorState
Fallbackvar(--md-sys-color-on-secondary-container)

Controls item active state layer color.

--md-navigation-drawer-item-disabled-opacityDisabled
Fallback0.38

Controls item disabled opacity.

--md-navigation-drawer-item-focus-indicator-colorFocus
Fallbackvar(--md-sys-color-secondary)

Controls item focus indicator color.

--md-navigation-drawer-item-focus-indicator-offsetFocus
Fallbackvar(--md-sys-state-focus-indicator-outer-offset)

Controls item focus indicator offset.

--md-navigation-drawer-item-focus-indicator-thicknessFocus
Fallbackvar(--md-sys-state-focus-indicator-thickness)

Controls item focus indicator thickness.

--md-navigation-drawer-item-gapLayout
Fallback--dp(12)

Controls item content gap.

--md-navigation-drawer-item-heightLayout
Fallback--dp(56)

Controls item minimum height.

--md-navigation-drawer-item-icon-sizeLayout
FallbackTypography, density and icon scale (default reference: --dp(24))

Controls item icon size.

--md-navigation-drawer-item-inactive-icon-colorColor
Fallbackvar(--md-color-on-container)

Controls item inactive icon color.

--md-navigation-drawer-item-inactive-label-colorColor
Fallbackvar(--md-color-on-container)

Controls item inactive label color.

--md-navigation-drawer-item-inactive-state-layer-colorState
Fallbackvar(--md-state-layer-color, var(--md-color-on-container))

Controls item inactive state layer color.

--md-navigation-drawer-item-indicator-shapeShape
Fallbackvar(--md-shape-indicator)

Controls item indicator shape.

--md-navigation-drawer-item-motionMotion
Fallbackvar(--md-easing-spatial)

Controls item and section motion.

--md-navigation-drawer-item-padding-inlineLayout
Fallback--dp(16)

Controls item inline padding.

--md-navigation-drawer-section-content-indentLayout
Fallback0; --dp(36) with iconSpace root/all

Controls nested section content indent when iconSpace is root or all.

Props

NameDescriptionDefault
sizeOptional

Row size; inherits the nearest row size or defaults to medium.

RowSize | undefined
-
valueOptional

Destination value used by NavigationDrawer v-model.

string | undefined
undefined
iconOptional

Default icon name (Material Symbols Outlined).

string | undefined
undefined
labelOptional

Fallback label text when default slot is not provided.

string | undefined
undefined
hrefOptional

Optional href. When provided, the item renders as an anchor.

string | undefined
undefined
shapeOptional

The shape of the item.

M3Shape | undefined
undefined
disabledOptional

Disable interaction.

boolean | undefined
false
selectedOptional

Force selected state when not controlled by NavigationDrawer.

boolean | undefined
undefined
ariaLabelOptional

Accessible label. Useful when label text is omitted visually.

string | undefined
undefined

Slots3

NameParametersDescription
default-Label content.
icon-Icon content.
trailing-Optional trailing content.

Props

NameDescriptionDefault
shapeOptional

-

M3Shape | undefined
-
sizeOptional

Row size; inherits the nearest row size or defaults to medium.

RowSize | undefined
-
iconOptional

Default icon name (Material Symbols Outlined).

string | undefined
undefined
labelOptional

Fallback label text when label slot is not provided.

string | undefined
undefined
disabledOptional

Disable the section trigger and all nested content.

boolean | undefined
false
ariaLabelOptional

Accessible label for the expand trigger.

string | undefined
undefined
expandedOptional

-

boolean | undefined
false

Events1

NameTypeDescription
update:expanded[value: boolean]-

Slots3

NameParametersDescription
default-Nested navigation destinations.
label-Section label content.
icon-Icon content.