Skip to content

FABs ​

Floating action buttons (FABs) help people take primary actions. They’re used to represent the most important action on a screen, such as Create or Reply.

Overview · Specs · Guidelines · Accessibility

Variants ​

An icon on the container of a FAB, medium FAB, and large FAB.

  1. FAB
  2. Medium FAB
  3. Large FAB

Baseline variants ​

The small FAB is still available, but no longer recommended. Jump to baseline specs

An icon on the container of a small FAB.

1. Small FAB

VariantM3M3 Expressive
FABAvailableAvailable
Medium FAB--Available
Large FABAvailableAvailable
Small FABAvailableNot recommended.
Use a larger size.

Configurations ​

In the expressive update, the primary, secondary, and tertiary set colors were renamed to primary container, secondary container, and tertiary container to match the actual color roles used. New primary, secondary, and tertiary color styles were created to match the corresponding color roles. View details in the color styles section

CategoryConfigurationM3M3 Expressive
ColorPrimary container, secondary container, tertiary containerAvailable as primary, secondary, tertiaryAvailable
ColorPrimary. secondary, tertiary--Available

Tokens & specs ​

Use the table's menu to select a token set. FAB tokens are organized by size and color. Learn more about design tokens

Design tokens

Token table

Machine-readable relationship table

Floating action buttons (FABs) tokens · 9 token sets · 165 tokens · live token table · DSDB TOKEN_TABLE.41587918e51cca98

  • 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 - Size - Regular · md.comp.fab · 4 tokens

For the default, regular FAB size.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.fab.container.heightLength—56dp—
All tokensmd.comp.fab.container.widthLength—56dp—
All tokensmd.comp.fab.icon.sizeLength—24dp—
All tokensmd.comp.fab.container.shapeShapemd.sys.shape.corner.largeRounded corners 16dp—

FAB - Size - Medium · md.comp.fab.medium · 4 tokens

For medium FABs.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.fab.medium.container.heightLength—80dp—
All tokensmd.comp.fab.medium.container.widthLength—80dp—
All tokensmd.comp.fab.medium.icon.sizeLength—28dp—
All tokensmd.comp.fab.medium.container.shapeShapemd.sys.shape.corner.large-increasedRounded corners 20dp—

FAB - Size - Large · md.comp.fab.large · 4 tokens

For large FABs.

GroupTokenTypeReference chainResolved valueOther contexts
All tokensmd.comp.fab.large.container.heightLength—96dp—
All tokensmd.comp.fab.large.container.widthLength—96dp—
All tokensmd.comp.fab.large.icon.sizeLength—36dp—
All tokensmd.comp.fab.large.container.shapeShapemd.sys.shape.corner.extra-largeRounded corners 28dp—

FAB - Color - Tonal primary · md.comp.fab.primary-container · 16 tokens

For tonal primary container FABs.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab.primary-container.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab.primary-container.container.elevationElevationmd.sys.elevation.level36dp—
Enabledmd.comp.fab.primary-container.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.primary-container.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.primary-container.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.primary-container.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab.primary-container.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.primary-container.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab.primary-container.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.primary-container.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab.primary-container.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.primary-container.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab.primary-container.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.primary-container.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab.primary-container.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.primary-container.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB - Color - Tonal secondary · md.comp.fab.secondary-container · 16 tokens

For tonal secondary container FABs.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab.secondary-container.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab.secondary-container.container.elevationElevationmd.sys.elevation.level36dp—
Enabledmd.comp.fab.secondary-container.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.secondary-container.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.secondary-container.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.secondary-container.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab.secondary-container.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.secondary-container.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab.secondary-container.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.secondary-container.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab.secondary-container.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.secondary-container.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab.secondary-container.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.secondary-container.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab.secondary-container.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.secondary-container.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB - Color - Tonal tertiary · md.comp.fab.tertiary-container · 16 tokens

For tonal tertiary container FABs.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab.tertiary-container.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab.tertiary-container.container.elevationElevationmd.sys.elevation.level36dp—
Enabledmd.comp.fab.tertiary-container.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.tertiary-container.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.tertiary-container.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.tertiary-container.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab.tertiary-container.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.tertiary-container.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab.tertiary-container.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.tertiary-container.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab.tertiary-container.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.tertiary-container.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab.tertiary-container.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.tertiary-container.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab.tertiary-container.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.tertiary-container.pressed.container.elevationElevationmd.sys.elevation.level36dp—

FAB - Color - Primary · md.comp.fab.primary · 35 tokens

For primary color FABs.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab.primary.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab.primary.container.elevationElevationmd.sys.elevation.level36dp—
Enabledmd.comp.fab.primary.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Enabledmd.comp.fab.primary.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.primary.hovered.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.fab.primary.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab.primary.hovered.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Hoveredmd.comp.fab.primary.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab.primary.focused.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.fab.primary.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab.primary.focused.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Focusedmd.comp.fab.primary.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab.primary.pressed.state-layer.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.fab.primary.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab.primary.pressed.icon.colorColormd.sys.color.on-primary → md.ref.palette.primary100#FFFFFFDark: #381E72 via md.ref.palette.primary20
Pressedmd.comp.fab.primary.pressed.container.elevationElevationmd.sys.elevation.level36dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.primary.container.shape (deprecated)Shapemd.sys.shape.corner.largeRounded corners 16dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.primary.container.width (deprecated)Length—56dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.primary.container.height (deprecated)Length—56dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.primary.lowered.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
[Deprecated] Enabled › [Deprecated] Iconmd.comp.fab.primary.icon.size (deprecated)Length—24dp—
[Deprecated] Hovered › [Deprecated] Containermd.comp.fab.primary.hover.container.elevation (deprecated)Elevationmd.sys.elevation.level48dp—
[Deprecated] Hovered › [Deprecated] Containermd.comp.fab.primary.lowered.hover.container.elevation (deprecated)Elevationmd.sys.elevation.level23dp—
[Deprecated] Hovered › [Deprecated] State layermd.comp.fab.primary.hover.state-layer.color (deprecated)Colormd.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
[Deprecated] Hovered › [Deprecated] State layermd.comp.fab.primary.hover.state-layer.opacity (deprecated)Opacitymd.sys.state.hover.state-layer-opacity0.08—
[Deprecated] Hovered › [Deprecated] Iconmd.comp.fab.primary.hover.icon.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Containermd.comp.fab.primary.focus.container.elevation (deprecated)Elevationmd.sys.elevation.level36dp—
[Deprecated] Focused › [Deprecated] Containermd.comp.fab.primary.lowered.focus.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
[Deprecated] Focused › [Deprecated] State layermd.comp.fab.primary.focus.state-layer.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] State layermd.comp.fab.primary.focus.state-layer.opacity (deprecated)Opacitymd.sys.state.focus.state-layer-opacity0.1—
[Deprecated] Focused › [Deprecated] Iconmd.comp.fab.primary.focus.icon.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.primary.focus.indicator.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.primary.focus.indicator.thickness (deprecated)Lengthmd.sys.state.focus-indicator.thickness3dp—
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.primary.focus.indicator.outline.offset (deprecated)Lengthmd.sys.state.focus-indicator.outer-offset2dp—
[Deprecated] Pressed (ripple) › [Deprecated] Containermd.comp.fab.primary.lowered.pressed.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—

FAB - Color - Secondary · md.comp.fab.secondary · 35 tokens

For secondary color FABs.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab.secondary.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab.secondary.container.elevationElevationmd.sys.elevation.level36dp—
Enabledmd.comp.fab.secondary.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Enabledmd.comp.fab.secondary.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.secondary.hovered.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.fab.secondary.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab.secondary.hovered.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Hoveredmd.comp.fab.secondary.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab.secondary.focused.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Focusedmd.comp.fab.secondary.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab.secondary.focused.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Focusedmd.comp.fab.secondary.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab.secondary.pressed.state-layer.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Pressedmd.comp.fab.secondary.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab.secondary.pressed.icon.colorColormd.sys.color.on-secondary → md.ref.palette.secondary100#FFFFFFDark: #332D41 via md.ref.palette.secondary20
Pressedmd.comp.fab.secondary.pressed.container.elevationElevationmd.sys.elevation.level36dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.secondary.container.shape (deprecated)Shapemd.sys.shape.corner.largeRounded corners 16dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.secondary.container.width (deprecated)Length—56dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.secondary.container.height (deprecated)Length—56dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.secondary.lowered.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
[Deprecated] Enabled › [Deprecated] Iconmd.comp.fab.secondary.icon.size (deprecated)Length—24dp—
[Deprecated] Hovered › [Deprecated] Containermd.comp.fab.secondary.hover.container.elevation (deprecated)Elevationmd.sys.elevation.level48dp—
[Deprecated] Hovered › [Deprecated] Containermd.comp.fab.secondary.lowered.hover.container.elevation (deprecated)Elevationmd.sys.elevation.level23dp—
[Deprecated] Hovered › [Deprecated] State layermd.comp.fab.secondary.hover.state-layer.color (deprecated)Colormd.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
[Deprecated] Hovered › [Deprecated] State layermd.comp.fab.secondary.hover.state-layer.opacity (deprecated)Opacitymd.sys.state.hover.state-layer-opacity0.08—
[Deprecated] Hovered › [Deprecated] Iconmd.comp.fab.secondary.hover.icon.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Containermd.comp.fab.secondary.focus.container.elevation (deprecated)Elevationmd.sys.elevation.level36dp—
[Deprecated] Focused › [Deprecated] Containermd.comp.fab.secondary.lowered.focus.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
[Deprecated] Focused › [Deprecated] State layermd.comp.fab.secondary.focus.state-layer.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] State layermd.comp.fab.secondary.focus.state-layer.opacity (deprecated)Opacitymd.sys.state.focus.state-layer-opacity0.1—
[Deprecated] Focused › [Deprecated] Iconmd.comp.fab.secondary.focus.icon.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.secondary.focus.indicator.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.secondary.focus.indicator.thickness (deprecated)Lengthmd.sys.state.focus-indicator.thickness3dp—
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.secondary.focus.indicator.outline.offset (deprecated)Lengthmd.sys.state.focus-indicator.outer-offset2dp—
[Deprecated] Pressed (ripple) › [Deprecated] Containermd.comp.fab.secondary.lowered.pressed.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—

FAB - Color - Tertiary · md.comp.fab.tertiary · 35 tokens

For the tertiary style fab.

GroupTokenTypeReference chainResolved valueOther contexts
Enabledmd.comp.fab.tertiary.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabledmd.comp.fab.tertiary.container.elevationElevationmd.sys.elevation.level36dp—
Enabledmd.comp.fab.tertiary.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Enabledmd.comp.fab.tertiary.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.tertiary.hovered.state-layer.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Hoveredmd.comp.fab.tertiary.hovered.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hoveredmd.comp.fab.tertiary.hovered.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Hoveredmd.comp.fab.tertiary.hovered.container.elevationElevationmd.sys.elevation.level48dp—
Focusedmd.comp.fab.tertiary.focused.state-layer.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Focusedmd.comp.fab.tertiary.focused.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focusedmd.comp.fab.tertiary.focused.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Focusedmd.comp.fab.tertiary.focused.container.elevationElevationmd.sys.elevation.level36dp—
Pressedmd.comp.fab.tertiary.pressed.state-layer.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Pressedmd.comp.fab.tertiary.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressedmd.comp.fab.tertiary.pressed.icon.colorColormd.sys.color.on-tertiary → md.ref.palette.tertiary100#FFFFFFDark: #492532 via md.ref.palette.tertiary20
Pressedmd.comp.fab.tertiary.pressed.container.elevationElevationmd.sys.elevation.level36dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.tertiary.lowered.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.tertiary.container.height (deprecated)Length—56dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.tertiary.container.shape (deprecated)Shapemd.sys.shape.corner.largeRounded corners 16dp—
[Deprecated] Enabled › [Deprecated] Containermd.comp.fab.tertiary.container.width (deprecated)Length—56dp—
[Deprecated] Enabled › [Deprecated] Iconmd.comp.fab.tertiary.icon.size (deprecated)Length—24dp—
[Deprecated] Hovered › [Deprecated] Containermd.comp.fab.tertiary.hover.container.elevation (deprecated)Elevationmd.sys.elevation.level48dp—
[Deprecated] Hovered › [Deprecated] Containermd.comp.fab.tertiary.lowered.hover.container.elevation (deprecated)Elevationmd.sys.elevation.level23dp—
[Deprecated] Hovered › [Deprecated] State layermd.comp.fab.tertiary.hover.state-layer.color (deprecated)Colormd.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
[Deprecated] Hovered › [Deprecated] State layermd.comp.fab.tertiary.hover.state-layer.opacity (deprecated)Opacitymd.sys.state.hover.state-layer-opacity0.08—
[Deprecated] Hovered › [Deprecated] Iconmd.comp.fab.tertiary.hover.icon.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Containermd.comp.fab.tertiary.focus.container.elevation (deprecated)Elevationmd.sys.elevation.level36dp—
[Deprecated] Focused › [Deprecated] Containermd.comp.fab.tertiary.lowered.focus.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—
[Deprecated] Focused › [Deprecated] State layermd.comp.fab.tertiary.focus.state-layer.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] State layermd.comp.fab.tertiary.focus.state-layer.opacity (deprecated)Opacitymd.sys.state.focus.state-layer-opacity0.1—
[Deprecated] Focused › [Deprecated] Iconmd.comp.fab.tertiary.focus.icon.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.tertiary.focus.indicator.color (deprecated)Colormd.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
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.tertiary.focus.indicator.thickness (deprecated)Lengthmd.sys.state.focus-indicator.thickness3dp—
[Deprecated] Focused › [Deprecated] Focus indicatormd.comp.fab.tertiary.focus.indicator.outline.offset (deprecated)Lengthmd.sys.state.focus-indicator.outer-offset2dp—
[Deprecated] Pressed (ripple) › [Deprecated] Containermd.comp.fab.tertiary.lowered.pressed.container.elevation (deprecated)Elevationmd.sys.elevation.level11dp—

Anatomy ​

2 elements of the FAB.

1. Container

2. Icon

Color ​

Color values are implemented through design tokens. For design, 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

Color styles ​

FABs can use several combinations of color and on-color styles, such as primary and on-primary. The following color mappings provide the same legibility and functionality, so the color mapping you use depends on style alone.

6 FAB color styles in light and dark themes. Each style has 2 color roles, 1 for the container and icon.

  1. Primary container & On primary container (default)
  2. Secondary container & On secondary container
  3. Tertiary container & On tertiary container
  4. Primary & On primary
  5. Secondary & On secondary
  6. Tertiary & On tertiary

Baseline color styles ​

Surface FAB color styles are still available, but no longer recommended.

Baseline FAB style in all 3 sizes.

  1. Surface FABs

States ​

States are visual representations used to communicate the status of a component or interactive element.

When using a non-default color mapping for FABs, make sure the state layer color is the same as the icon color. For example, the state layer color for the primary color style should be md.sys.color.primary.

4 states of a FAB shown in light and dark themes.

  1. Enabled
  2. Hovered (8% state layer) - elevation 4
  3. Focused (10% state layer)
  4. Pressed (10% state layer)

Measurements ​

FAB ​

FAB size measurements.

FAB size measurements

FAB padding measurements.

FAB padding measurements

Medium FAB ​

Medium FAB size measurements.

Medium FAB size measurements

Medium FAB padding measurements.

Medium FAB padding measurements

Large FAB ​

Large FAB size measurements.

Large FAB size measurements

Large FAB padding measurements.

Large FAB padding measurements

Baseline tokens & specs ​

Use the table's menu to select a token set. This only includes tokens for small and surface FABs, which are both no longer recommended. It doesn't include other colors, or large or regular FABs, since those are still currently used.

Design tokens

Token table

Machine-readable relationship table

Floating action buttons (FABs) tokens · 1 token set · 29 tokens · live token table · DSDB TOKEN_TABLE.41587918e51cca98

  • 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.
  • Token sets requested by the page but missing from the data module: [Deprecated] FAB - Size - Small

FAB - Color - Surface · md.comp.fab.surface · 29 tokens

For surface color FABs. Not recommended with expressive FABs.

GroupTokenTypeReference chainResolved valueOther contexts
Enabled › Containermd.comp.fab.surface.container.colorColormd.sys.color.surface-container-high → md.ref.palette.neutral92#ECE6F0Dark: #2B2930 via md.ref.palette.neutral17
Enabled › Containermd.comp.fab.surface.lowered.container.colorColormd.sys.color.surface-container-low → md.ref.palette.neutral96#F7F2FADark: #1D1B20 via md.ref.palette.neutral10
Enabled › Containermd.comp.fab.surface.container.shapeShapemd.sys.shape.corner.largeRounded corners 16dp—
Enabled › Containermd.comp.fab.surface.container.widthLength—56dp—
Enabled › Containermd.comp.fab.surface.container.heightLength—56dp—
Enabled › Containermd.comp.fab.surface.container.elevationElevationmd.sys.elevation.level36dp—
Enabled › Containermd.comp.fab.surface.container.surface-tint-layer.color (deprecated)Colormd.sys.color.surface-tint → md.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
Enabled › Containermd.comp.fab.surface.container.shadow-colorColormd.sys.color.shadow → md.ref.palette.neutral0#000000—
Enabled › Containermd.comp.fab.surface.lowered.container.elevationElevationmd.sys.elevation.level11dp—
Enabled › Iconmd.comp.fab.surface.icon.sizeLength—24dp—
Enabled › Iconmd.comp.fab.surface.icon.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
Hovered › Containermd.comp.fab.surface.hover.container.elevationElevationmd.sys.elevation.level48dp—
Hovered › Containermd.comp.fab.surface.lowered.hover.container.elevationElevationmd.sys.elevation.level23dp—
Hovered › State layermd.comp.fab.surface.hover.state-layer.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
Hovered › State layermd.comp.fab.surface.hover.state-layer.opacityOpacitymd.sys.state.hover.state-layer-opacity0.08—
Hovered › Iconmd.comp.fab.surface.hover.icon.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
Focused › Containermd.comp.fab.surface.focus.container.elevationElevationmd.sys.elevation.level36dp—
Focused › Containermd.comp.fab.surface.lowered.focus.container.elevationElevationmd.sys.elevation.level11dp—
Focused › State layermd.comp.fab.surface.focus.state-layer.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
Focused › State layermd.comp.fab.surface.focus.state-layer.opacityOpacitymd.sys.state.focus.state-layer-opacity0.1—
Focused › Iconmd.comp.fab.surface.focus.icon.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
Focused › Focus indicatormd.comp.fab.surface.focus.indicator.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
Focused › Focus indicatormd.comp.fab.surface.focus.indicator.thicknessLengthmd.sys.state.focus-indicator.thickness3dp—
Focused › Focus indicatormd.comp.fab.surface.focus.indicator.outline.offsetLengthmd.sys.state.focus-indicator.outer-offset2dp—
Pressed (ripple) › Containermd.comp.fab.surface.pressed.container.elevationElevationmd.sys.elevation.level36dp—
Pressed (ripple) › Containermd.comp.fab.surface.lowered.pressed.container.elevationElevationmd.sys.elevation.level11dp—
Pressed (ripple) › State layermd.comp.fab.surface.pressed.state-layer.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
Pressed (ripple) › State layermd.comp.fab.surface.pressed.state-layer.opacityOpacitymd.sys.state.pressed.state-layer-opacity0.1—
Pressed (ripple) › Iconmd.comp.fab.surface.pressed.icon.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

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