Skip to content

FAB menu ​

The floating action button (FAB) menu opens from a FAB to display multiple related actions

Overview · Specs · Guidelines · Accessibility

Variants ​

The FAB menu in its single variant.

There’s one variant of FAB menu

VariantM3M3 Expressive
FAB menu--Available

Configurations ​

3 color configurations of FAB menus.

Three color sets:

  1. Primary
  2. Secondary
  3. Tertiary
CategoryConfigurationM3M3 Expressive
ColorPrimary set, secondary set, tertiary set--Available

Tokens & specs ​

Use the table's menu to switch token sets. The FAB menu has a common token set and six color sets, three for each element (close button and menu item). Learn about design tokens

Design tokens

Token table

Machine-readable relationship table

FAB menu tokens · 7 token sets · 117 tokens · live token table · DSDB TOKEN_TABLE.1a076cec8bc202c2

  • Default context: Theme: Light · Platform: Android · Audience: 3P · Contrast: Default · iOS dark theme elevation: None · iOS weight setting: Default
  • Not configurable here (group default used): Motion scheme: Standard · Font: Static · Language height: Small
  • Other contexts: Theme: Dark · Contrast: Medium contrast, High contrast. "Other contexts" lists values that differ from the default when only that one context changes.
  • Reference chain: aliases from the token to its source value (token → alias → … → value). "—" means the token holds a literal value.

FAB menu - Common · md.comp.fab-menu · 15 tokens

Common tokens for all FAB menus.

GroupTokenTypeReference chainResolved valueOther contexts
Close buttonmd.comp.fab-menu.close-button.container.widthLength—56dp—
Close buttonmd.comp.fab-menu.close-button.icon.sizeLength—20dp—
Close buttonmd.comp.fab-menu.close-button.container.elevationElevationmd.sys.elevation.level36dp—
Close buttonmd.comp.fab-menu.close-button.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
Close buttonmd.comp.fab-menu.close-button.between-spaceLengthmd.sys.measurement.space1008dp—
Close buttonmd.comp.fab-menu.close-button.container.heightLength—56dp—
List itemmd.comp.fab-menu.menu-item.label-textTypographymd.sys.typescale.title-medium → composite
font names: md.sys.typescale.title-medium.font → md.ref.typeface.plain
font weight: md.sys.typescale.title-medium.weight → md.ref.typeface.weight-medium
font size: md.sys.typescale.title-medium.size
line height: md.sys.typescale.title-medium.line-height
font tracking: md.sys.typescale.title-medium.tracking
Roboto · weight 500 · size 16pt · line height 24pt · tracking 0.15pt—
List itemmd.comp.fab-menu.menu-item.icon.sizeLength—24dp—
List itemmd.comp.fab-menu.menu-item.container.elevationElevationmd.sys.elevation.level00dp—
List itemmd.comp.fab-menu.menu-item.container.shapeShapemd.sys.shape.corner.fullCircular (fully rounded)—
List itemmd.comp.fab-menu.menu-item.leading-spaceLengthmd.sys.measurement.space30024dp—
List itemmd.comp.fab-menu.menu-item.icon-label-spaceLengthmd.sys.measurement.space1008dp—
List itemmd.comp.fab-menu.menu-item.trailing-spaceLengthmd.sys.measurement.space30024dp—
List itemmd.comp.fab-menu.menu-item.between-spaceLengthmd.sys.measurement.space504dp—
List itemmd.comp.fab-menu.menu-item.container.heightLength—56dp—

FAB menu close button - Color - Primary · md.comp.fab-menu.primary.close-button · 15 tokens

Primary color tokens for the close button in the FAB menu.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab-menu.primary.close-button.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab-menu.primary.close-button.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.fab-menu.primary.close-button.container.colorColormd.sys.color.primary → md.ref.palette.primary40#6750A4Dark: #D0BCFF via md.ref.palette.primary80
Medium contrast: #4F378B via md.ref.palette.primary30
High contrast: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.fab-menu.primary.close-button.hovered.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.fab-menu.primary.close-button.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab-menu.primary.close-button.hovered.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.fab-menu.primary.close-button.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab-menu.primary.close-button.focused.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.fab-menu.primary.close-button.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab-menu.primary.close-button.focused.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.fab-menu.primary.close-button.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab-menu.primary.close-button.pressed.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.fab-menu.primary.close-button.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab-menu.primary.close-button.pressed.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.fab-menu.primary.close-button.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB menu close button - Color - Secondary · md.comp.fab-menu.secondary.close-button · 15 tokens

Secondary color tokens for the close button in the FAB menu.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab-menu.secondary.close-button.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab-menu.secondary.close-button.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Enabledmd.comp.fab-menu.secondary.close-button.container.colorColormd.sys.color.secondary → md.ref.palette.secondary40#625B71Dark: #CCC2DC via md.ref.palette.secondary80
Medium contrast: #4A4458 via md.ref.palette.secondary30
High contrast: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.fab-menu.secondary.close-button.hovered.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.fab-menu.secondary.close-button.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab-menu.secondary.close-button.hovered.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.fab-menu.secondary.close-button.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab-menu.secondary.close-button.focused.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Focusedmd.comp.fab-menu.secondary.close-button.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab-menu.secondary.close-button.focused.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Focusedmd.comp.fab-menu.secondary.close-button.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab-menu.secondary.close-button.pressed.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Pressedmd.comp.fab-menu.secondary.close-button.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab-menu.secondary.close-button.pressed.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Pressedmd.comp.fab-menu.secondary.close-button.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB menu close button - Color - Tertiary · md.comp.fab-menu.tertiary.close-button · 15 tokens

Tertiary color tokens for the close button in the FAB menu.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab-menu.tertiary.close-button.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab-menu.tertiary.close-button.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Enabledmd.comp.fab-menu.tertiary.close-button.container.colorColormd.sys.color.tertiary → md.ref.palette.tertiary40#7D5260Dark: #EFB8C8 via md.ref.palette.tertiary80
Medium contrast: #633B48 via md.ref.palette.tertiary30
High contrast: #492532 via md.ref.palette.tertiary20
Hoveredmd.comp.fab-menu.tertiary.close-button.hovered.state-layer.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Hoveredmd.comp.fab-menu.tertiary.close-button.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab-menu.tertiary.close-button.hovered.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Hoveredmd.comp.fab-menu.tertiary.close-button.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab-menu.tertiary.close-button.focused.state-layer.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Focusedmd.comp.fab-menu.tertiary.close-button.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab-menu.tertiary.close-button.focused.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Focusedmd.comp.fab-menu.tertiary.close-button.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab-menu.tertiary.close-button.pressed.state-layer.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Pressedmd.comp.fab-menu.tertiary.close-button.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab-menu.tertiary.close-button.pressed.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Pressedmd.comp.fab-menu.tertiary.close-button.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB menu list items - Color - Primary · md.comp.fab-menu.primary-container · 19 tokens

Primary container color tokens for the items in the FAB menu.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab-menu.primary-container.list-item.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab-menu.primary-container.list-item.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Enabledmd.comp.fab-menu.primary-container.list-item.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Enabledmd.comp.fab-menu.primary-container.list-item.container.colorColormd.sys.color.primary-container → md.ref.palette.primary90#EADDFFDark: #4F378B via md.ref.palette.primary30
Medium contrast: #6750A4 via md.ref.palette.primary40
High contrast: #4F378B via md.ref.palette.primary30
Hoveredmd.comp.fab-menu.primary-container.list-item.hovered.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Hoveredmd.comp.fab-menu.primary-container.list-item.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab-menu.primary-container.list-item.hovered.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Hoveredmd.comp.fab-menu.primary-container.list-item.hovered.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Hoveredmd.comp.fab-menu.primary-container.list-item.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab-menu.primary-container.list-item.focused.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Focusedmd.comp.fab-menu.primary-container.list-item.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab-menu.primary-container.list-item.focused.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Focusedmd.comp.fab-menu.primary-container.list-item.focused.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Focusedmd.comp.fab-menu.primary-container.list-item.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab-menu.primary-container.list-item.pressed.state-layer.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Pressedmd.comp.fab-menu.primary-container.list-item.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab-menu.primary-container.list-item.pressed.icon.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Pressedmd.comp.fab-menu.primary-container.list-item.pressed.label-text.colorColormd.sys.color.on-primary-container → md.ref.palette.primary30#4F378BDark: #EADDFF via md.ref.palette.primary90
Medium contrast: #FFFFFF via md.ref.palette.primary100
High contrast: #FFFFFF via md.ref.palette.primary100
Pressedmd.comp.fab-menu.primary-container.list-item.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB menu list items - Color - Secondary · md.comp.fab-menu.secondary-container · 19 tokens

Secondary container color tokens for the items in the FAB menu.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab-menu.secondary-container.list-item.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab-menu.secondary-container.list-item.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Enabledmd.comp.fab-menu.secondary-container.list-item.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Enabledmd.comp.fab-menu.secondary-container.list-item.container.colorColormd.sys.color.secondary-container → md.ref.palette.secondary90#E8DEF8Dark: #4A4458 via md.ref.palette.secondary30
Medium contrast: #625B71 via md.ref.palette.secondary40
High contrast: #4A4458 via md.ref.palette.secondary30
Hoveredmd.comp.fab-menu.secondary-container.list-item.hovered.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.fab-menu.secondary-container.list-item.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab-menu.secondary-container.list-item.hovered.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.fab-menu.secondary-container.list-item.hovered.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Hoveredmd.comp.fab-menu.secondary-container.list-item.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab-menu.secondary-container.list-item.focused.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.fab-menu.secondary-container.list-item.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab-menu.secondary-container.list-item.focused.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.fab-menu.secondary-container.list-item.focused.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Focusedmd.comp.fab-menu.secondary-container.list-item.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab-menu.secondary-container.list-item.pressed.state-layer.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.fab-menu.secondary-container.list-item.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab-menu.secondary-container.list-item.pressed.icon.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.fab-menu.secondary-container.list-item.pressed.label-text.colorColormd.sys.color.on-secondary-container → md.ref.palette.secondary30#4A4458Dark: #E8DEF8 via md.ref.palette.secondary90
Medium contrast: #FFFFFF via md.ref.palette.secondary100
High contrast: #FFFFFF via md.ref.palette.secondary100
Pressedmd.comp.fab-menu.secondary-container.list-item.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB menu list items - Color - Tertiary · md.comp.fab-menu.tertiary-container · 19 tokens

Tertiary container color tokens for the items in the FAB menu.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab-menu.tertiary-container.list-item.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab-menu.tertiary-container.list-item.icon.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Enabledmd.comp.fab-menu.tertiary-container.list-item.label-text.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Enabledmd.comp.fab-menu.tertiary-container.list-item.container.colorColormd.sys.color.tertiary-container → md.ref.palette.tertiary90#FFD8E4Dark: #633B48 via md.ref.palette.tertiary30
Medium contrast: #7D5260 via md.ref.palette.tertiary40
High contrast: #633B48 via md.ref.palette.tertiary30
Hoveredmd.comp.fab-menu.tertiary-container.list-item.hovered.state-layer.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Hoveredmd.comp.fab-menu.tertiary-container.list-item.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab-menu.tertiary-container.list-item.hovered.icon.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Hoveredmd.comp.fab-menu.tertiary-container.list-item.hovered.label-text.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Hoveredmd.comp.fab-menu.tertiary-container.list-item.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab-menu.tertiary-container.list-item.focused.state-layer.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Focusedmd.comp.fab-menu.tertiary-container.list-item.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab-menu.tertiary-container.list-item.focused.icon.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Focusedmd.comp.fab-menu.tertiary-container.list-item.focused.label-text.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Focusedmd.comp.fab-menu.tertiary-container.list-item.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab-menu.tertiary-container.list-item.pressed.state-layer.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Pressedmd.comp.fab-menu.tertiary-container.list-item.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab-menu.tertiary-container.list-item.pressed.icon.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Pressedmd.comp.fab-menu.tertiary-container.list-item.pressed.label-text.colorColormd.sys.color.on-tertiary-container → md.ref.palette.tertiary30#633B48Dark: #FFD8E4 via md.ref.palette.tertiary90
Medium contrast: #FFFFFF via md.ref.palette.tertiary100
High contrast: #FFFFFF via md.ref.palette.tertiary100
Pressedmd.comp.fab-menu.tertiary-container.list-item.pressed.container.elevationElevationmd.sys.elevation.level36dp—

Anatomy ​

2 elements of a FAB menu.

  1. Close button
  2. Menu item

5 FAB menus showing the range of 2–6 items.

The FAB menu can have up to six items

Color ​

Color values are implemented through design tokens. For designers, this means working with color values that correspond with tokens. In implementation, a color value will be a token that references a value. Learn more about design tokens

12 colors of the FAB menu.

  1. On primary container
  2. Primary container
  3. On primary
  4. Primary
  5. On secondary container
  6. Secondary container
  7. On secondary
  8. Secondary
  9. On tertiary container
  10. Tertiary container
  11. On tertiary
  12. Tertiary

States ​

States are visual representations used to communicate the status of a component or interactive element. Learn more about interaction states

Close button ​

4 states of the FAB menu close button.

Close button states in light and dark themes: 

  1. Enabled
  2. Hovered
  3. Focused
  4. Pressed

4 states of the FAB menu items.

Menu item states in light and dark themes:

  1. Enabled
  2. Hovered
  3. Focused
  4. Pressed

Measurements ​

FAB menu items share the same measurements as the medium button specs. 

The close button should always be 56dp.

FAB menu size measurements.

FAB menu size measurements

The FAB menu animates from the top trailing edge of the FAB to ensure a smooth animation.

FAB on a mobile screen with 16dp margins annotated.

The FAB should always have 16dp margins

FAB menu opened from a FAB has matching margins of 16dp.

The close button and FAB share the top trailing corner as an anchor and appear in the same place

Larger FABs will place the FAB menu slightly higher, with larger margins underneath.

Medium FAB on a mobile screen with 16dp margins annotated.

The medium FAB placement has 16dp margins

FAB menu opened from the medium FAB has a 40dp margin from bottom of screen.

The close button is placed higher to align with the top of the medium FAB

Large FAB on a mobile screen with 16dp margins annotated.

The large FAB placement has 16dp margins

FAB menu opened from the large FAB has a 56dp margin from bottom of screen.

The close button is placed higher to align with the top of the large FAB

On web, the FAB menu opens from the FAB, and inherits its states and specs from the baseline menu component. 

The gap between the FAB and menu can vary, but 4dp is recommended.

FAB menu on web states and specifications.

Spacing and interaction on FAB menu for web:

  1. Enabled
  2. Hovered
  3. Selected

Unofficial offline mirror. Content © Google, licensed under CC BY 4.0.