Skip to content

Overview

Buttons communicate actions that users can take all around the UI. They cover the largest portion of the UI making them the most common UI element.

Principles

  • Identifiable
    Buttons should indicate that they can trigger an action in the easiest way possible.

  • Findable
    Buttons should be easy to find among other elements on a page including among other buttons

  • Clear
    A button's action and state e.g disabled, pressed etc should be as clear as possible

  • Motion
    All buttons have a bit/form of animation to them (the ripple) to communicate to users a change in state from rest to pressed. Some buttons fill up when loading.

Types

Buttons have a number of variations and types and the role each plays is based on what it does in a given UI incident/page. There are 9 types of buttons namely;

  • Elevated
  • Filled
  • Filled tonal
  • Outlined
  • Text buttons
  • Icon only buttons
  • Segmented buttons (commonly called tabs)
  • Floating Action Buttons (FAB)
  • Extended FAB

Note

The button types; elevated, filled, tonal (and all its variants), outlined and text only buttons all have the same padding. This is to have a uniform spacing when two buttons are in the same area like in a bottom sheet. Don't treat text only buttons like they are just styled text.

Interactive button demo

Visual variations for the different button types.

Note

For button types not in the demo please refer to the Figma file to see how it looks like

Button Types

FABs

Name Example
Colored FAB
Colored FAB with ripple
Plain FAB
Plain FAB with ripple
Disabled FAB
Small FAB
Small colored FAB
Mini FAB with ripple

Elevated, Filled, Filled Tonal

Name Example
Colored button (rest)
Colored button (with ripple)
Accent-colored button
Accent-colored button (with ripple)
Raised Button
Raised Button with ripple
Flat button
Flat button with ripple
Disabled flat button
Primary-colored flat button

Icon only buttons

Name Example
Icon Button
Icon Button with ripple