---
url: /components/buttons/guidelines.md
description: >-
  Buttons help people take action, such as sending an email, sharing a document,
  or liking a comment. Common buttons prompt most actions in a UI.
---

# Buttons

Buttons help people take action, such as sending an email, sharing a document, or liking a comment. Common buttons prompt most actions in a UI.

[Overview](overview.md) · [Specs](specs.md) · **Guidelines** · [Accessibility](accessibility.md)

![Buttons in various shapes and sizes.](/assets/dea3db2a-mmlqkp7g-01.BKv1ySgo.webp)

Buttons and icon buttons come in many shapes, styles, and sizes

## Usage

Buttons communicate actions that people can take. They are typically placed throughout the UI, in places like:

* [Dialogs](../dialogs/overview.md "Dialogs provide important prompts in a user flow.")
* Modal windows
* Forms
* [Cards](../cards/overview.md "Cards display content and actions about a single subject.")
* [Toolbars](../toolbars/overview.md "Toolbars display frequently used actions relevant to the current page.")

They can also be placed within [standard button groups](../button-groups/overview.md "Standard button groups add interactions between adjacent buttons when they're pressed.").

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmmlqnl0b-GM3%20-%20Commom%20Buttons%20-%20Guidelines%2002%20-%20v01.mp4?alt=media" aria-label="Video call app with prominent filled button to join and end a call."></video>

Use visually-prominent filled buttons for the most important actions

Buttons are just one option for representing actions in a product and shouldn’t be overused. Too many buttons on a screen can disrupt the visual hierarchy.<br><br>Consider placing additional actions in a [navigation rail](../navigation-rail/overview.md "Navigation rails let people switch between UI views on mid-sized devices."), set of [chips](../chips/overview.md "Chips help people enter information, make selections, filter content, or trigger actions."), text links, or [icon buttons](../icon-buttons/overview.md "Icon buttons help people take minor actions with one tap.").

::: tip Do
![1 button placed on bottom right of screen.](/assets/8d10168f-mmlqpj6e-03-do.DWHsOL0U.webp)

Use buttons for discrete actions
:::

::: danger Don't
![3 buttons side by side on bottom of screen.](/assets/80ecab5b-mmlqpykn-04-don-t.9IH0Rke9.webp)

Don’t clutter your UI with too many buttons. Consider presenting low-priority actions in overflow menus or as icon buttons.
:::

::: tip Do
![Filled button on menu screen.](/assets/0b529ba6-mmlqs2ix-05-do.BuzEPrBm.webp)

A button container’s width is dynamically set to fit its label text
:::

::: tip Do
![Filled button as wide as layout grid.](/assets/06f72185-mmlqslcx-06-do.CkaPCRXx.webp)

Button container width can be responsive, which allows it to stretch horizontally
:::

::: danger Don't
![Filled button with label text overflowing the container.](/assets/ca810e73-mmlqt8jf-07-don-t.4l8m5ovv.webp)

A button container’s width shouldn’t be narrower than its label text
:::

![Diagram of button styles and toggle behaviors.](/assets/94f15ff3-mmlquaj1-08.CP56dhZG.webp)

A: Default button; B: Toggle (unselected); C: Toggle (selected) for five button styles, in order of emphasis:

1. Elevated button
2. Filled button
3. Filled tonal button
4. Outlined button
5. Text button

A [button group](../button-groups/overview.md "Button groups organize buttons and add interactions between them") is a collection of buttons that relate to each other and can respond to one another. Both buttons and icon buttons can be used inside a button group.<br><br>In some cases, there are primary and secondary actions within a button group. Buttons with primary actions should have a higher visual emphasis through size, color, or shape.

[More on button groups](../button-groups/overview.md)

![Audio app with play, next, and back buttons.](/assets/75af6724-m3t81e1q-9.DIL3o5ke.webp)

Different sized buttons in a button group help emphasize the main action from secondary actions

## Toggle buttons

Toggle buttons should be used for binary selections, such as **Save** or **Favorite**. When toggle buttons are pressed, they can change color, shape, and labels.

Toggle buttons should use an outlined icon when unselected, and a filled version of the icon when selected. If a filled version doesn’t exist, increase the weight instead.

By default, toggle buttons change from round to square when selected.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fmmlt2zdp-GM3%20-%20Commom%20Buttons%20-%20Guidelines%2010%20-%20v01.mp4?alt=media" aria-label="Toggle “stop” button in timer app."></video>

Use toggle buttons for binary actions

If the label changes on selected or unselected states, be mindful of the character count. Changing the label significantly is disruptive to the user and the page layout.

::: tip Do
![Toggleable “start” and “reset” buttons.](/assets/bde4409f-mmlt4ivd-11-do.BXpDKjKM.webp)

When using toggleable buttons, keep the label character count a similar length for both states
:::

::: danger Don't
![Toggleable “start” and “reset back to beginning” buttons.](/assets/f6e609eb-mmlt52gk-12-dont.Cx47FQFR.webp)

The label length shouldn’t change dramatically to be longer or shorter
:::

## Anatomy

![3 parts of a button.](/assets/1cb13b64-mmlt6b63-13.B72S_ToP.webp)

1. Label text
2. Container
3. Icon (optional)

### Label text

Label text is the most important element of a button. It describes the action that will occur if someone taps a button. It should be very brief, ideally 1–3 words.

Use sentence case, which only capitalizes the first word and proper nouns. This allows the text to distinguish proper nouns, for example: **Book with Flights**, not **BOOK WITH FLIGHTS**.

Don’t truncate or wrap label text. It should always be fully visible on a single line.

::: tip Do
![Button with label text “See all recipes.”](/assets/fca1be93-mmlt7k3u-14-do.DJow0KE2.webp)

Use sentence case for button label text, capitalizing the first word and proper nouns
:::

::: danger Don't
![Button with wrapped label.](/assets/05acddac-mmlt7yj0-15-dont.CL4-eQbU.webp)

Don’t wrap text. For maximum legibility, label text should remain on a single line.
:::

Buttons with the **outlined** and **text** color style depend on the colors to be recognizable from other text and elements. Use caution when putting these buttons next to visually similar elements, such as chips or large text.

::: warning Caution
![Chips next to an outlined button, highlighting their similarities.](/assets/9c051ca0-mmlt97u1-16-caution.Cf5M0IQV.webp)

The outlined button style is very similar to chips. Consider using a filled or tonal button instead.
:::

### Container

Button containers hold the label text and optional icon. Buttons with the **text** color style have a visible container only when hovered, focused, or pressed.

Buttons with a round shape have containers with fully rounded corners.

![Round button.](/assets/b88e72ae-mmltabq2-17.CJHR9i4w.webp)

Round buttons have containers with fully rounded corners

Buttons with a square shape have containers with more subtle rounding that changes based on button size.

![Square buttons with different radii.](/assets/e617edd5-mmltba1r-18.6By2OgSi.webp)

Square buttons have square containers and change radius as the button size changes

::: tip Do
![Button with the label text “Edit playlist” within the container.](/assets/2525c7a9-mmltc6hg-19-do.Cbea8kz6.webp)

A button’s width dynamically adjusts to the label text
:::

::: danger Don't
![Button with text larger than its container.](/assets/5406d150-mmltdu8d-20-dont.CHhq7SVQ.webp)

Avoid setting a fixed width smaller than the label text
:::

### Icon (optional)

Icons visually communicate the button’s action and help draw attention. They should be placed on the leading side of the button, before the label text.

::: tip Do
![Filled button with the icon to the left of the label in a left-to-right language.](/assets/f4efe4b5-mmltfge9-21-do.DCWbl4vd.webp)

Place the icon to the left of the label in buttons with text in left-to-right languages
:::

::: tip Do
![Filled button with the icon to the right of the label in a right-to-left language.](/assets/a72fdd89-mmltfyz4-22-do.Dh5O3Hc3.webp)

Place the icon to the right of the label in buttons with text in right-to-left languages
:::

::: tip Do
![Button with shopping cart icon and text label “Add to cart”.](/assets/37c4193d-mmlthjj7-23-do.Bw7T1gwB.webp)

Use icons that clearly communicate their meaning
:::

::: danger Don't
![Button with Plus icon vertically above the text label “Add to watch list”.](/assets/2b5d1f95-mmltnhb2-24-dont.C3ioFyAR.webp)

Don’t vertically align an icon and text in the center of a button
:::

::: danger Don't
![Button with two icons.](/assets/8caa90a6-mmltof7i-25-dont.CJXtVC5F.webp)

Don’t use two icons in the same button
:::

<a id="4e89da4d-a8fa-4e20-bb8d-b8a93eff3e3e"></a>

## Color styles

### Elevated style

The **elevated** button style is the same as the tonal button, but with a shadow. 

To avoid overusing shadows, use the elevated style only when absolutely necessary, such as when the button requires visual separation from a visually prominent background.

![Elevated button on a scrim background.](/assets/95a5a0e9-mmltpyn5-26.C1TfL694.webp)

Elevated buttons provide separation from a visually prominent background

Buttons at higher elevations typically have more emphasis in a design, and should be used sparingly. For high emphasis, consider the filled style instead.

::: warning Caution
![Elevated button in a shopping experience.](/assets/78cb680d-mmltrnw9-27-caution.DsNcCm8D.webp)

Higher elevation increases the emphasis of a button
:::

<a id="9ecffdb3-ef29-47e7-8d5d-f78b404fcafe"></a>

### Filled style

The **filled** button style has the most visual impact after the [FAB](../floating-action-button/overview.md "Floating action buttons (FABs) help people take primary actions."), and should be used for important, final actions that complete a flow, like **Save**, **Join now**, or **Confirm**.

![Filled button reading “Make payment.”](/assets/e61ed232-mmlz52ml-28.tYmyYGVw.webp)

Filled buttons have high visual impact when used for important actions

Since they have such strong emphasis, the filled style should be used sparingly, ideally for only one action on a page.

In some cases, filled buttons can use tertiary colors.

![Filled “pause” button in a music app.](/assets/adb713d4-mmlz6rew-29.B_O7M_bu.webp)

Filled buttons can be responsive to the layout grid and help emphasize main actions

<a id="07a1577b-aaf5-4824-a698-03526421058b"></a>

### Tonal style

The **tonal** button style is useful in contexts where a lower-priority button requires slightly more emphasis than an outline would give, such as **Next** in an onboarding flow. Tonal buttons use the secondary color mapping.

![Shopping app with 2 tonal-style filled buttons.](/assets/399fc8e9-mmm0gmxc-30.DUvDz_2H.webp)

The tonal style has less emphasis than filled or emphasis

<a id="3742b09f-c224-43e0-a83e-541bd29d0f05"></a>

### Outlined style

The **outlined** style is ideal for medium-emphasis buttons which contain actions that are important, but aren’t the primary action in a product.

Outlined buttons pair well with filled buttons to indicate alternative, secondary actions.

![Outlined buttons for less important actions, including a back button and a button that reads “Next movie.”](/assets/dc727731-mmm0loal-31.uWyPO6gj.webp)

Outlined buttons contain less important supporting actions

Outlined buttons display a stroke around the button container, and have no fill by default. <br><br>They should be placed on simple backgrounds, not visually prominent backgrounds such as images or videos.

![Outlined button for “add to cart” in shopping app.](/assets/5b886dfd-mmm0mtua-32.BbuQQdYl.webp)

Outlined buttons display a stroke around the button container

::: tip Do
![Outlined button labeled Add to calendar on a pink/purple background.](/assets/ac7cbfe1-mmm0nymp-33-do.DRQTK13_.webp)

Outlined buttons can be used on backgrounds with a color gradient
:::

::: warning Caution
![2 photos, each with an outlined button with a custom fill.](/assets/2d242742-mmm0oqjx-34-caution.Cq0M76vv.webp)

Use caution when placing outlined buttons on top of images. Customizing the button to have a contrasting container fill can help ensure legibility of label text. Or, use a filled button instead.
:::

<a id="c9bcbc0b-ee05-45ad-8e80-e814ae919fbb"></a>

### Text style

The text button style should be used for the lowest priority actions, especially when presenting multiple options.

They should be placed on simple backgrounds, not visually prominent backgrounds such as images or videos. The container isn’t visible until someone interacts with the button.

Don’t underline the text button. Use hyperlinked body text instead to emphasize links. [More on hyperlinks](../../styles/typography/applying-type.md#24856f70-f759-45df-a06c-92018f286083)

![Example calendar screen with 2 text buttons and 1 split button.](/assets/0f8706f2-mmm0q822-35.CNVch-zT.webp)

Use text buttons for the lowest priority actions

Text buttons are often placed within components such as [cards](../cards/overview.md "Cards display content and actions about a single subject."), [dialogs](../dialogs/overview.md "Dialogs provide important prompts in a user flow."), and [snackbars](../snackbar/overview.md "Snackbars show short updates about app processes at the bottom of the screen."). Since text buttons don’t have a visible container in their default [state](../../foundations/interaction/states/overview.md "States show the interaction status of a component or UI element."), they don’t distract from nearby content.

However, since there’s no container, the label text color must always be recognizable from non-button text and elements.

![Text button labeled “Retry” in a snackbar.](/assets/6d7d17dc-mmm0rpw4-36.Gii0fhwO.webp)

Text button in a snackbar

![Text button labeled “View album” on an album cover background.](/assets/d4f6d580-mmm0s6c1-37.BBuYJSOC.webp)

Text button against an image background

In cards, text buttons help maintain an emphasis on card content.

![Text button labeled “Learn more” in an information card about sourdough bread.](/assets/66dedda2-mmm0tlmd-38.CQsuzw1q.webp)

Text button in a card

Dialogs use text buttons because the absence of a container helps unify the action with the dialog text.

Align text buttons to the trailing edge of dialogs, on the right for left-to-right languages and on the left for right-to-left languages.

![Modal dialog with the title “Subscribe to our newsletter?” and trailing buttons “Cancel” and “Subscribe”.](/assets/969ddeb4-mmm0v0go-39.BhYLyE4s.webp)

Text buttons in a dialog

## Adaptive design

### Resizing

When scaling layouts for large screen devices, buttons can adapt their visual presentation, size, alignment, and arrangement to fit different contexts and user needs.

Choose the best button position based on screen size.

![Flights app in compact screen with buttons below flight information.](/assets/c41f785a-mmm0vwgx-41.BD8Gm1SZ.webp)

Filled buttons are end-aligned below flight information in a compact window

![Flights app in large screen with buttons to the left of flight information.](/assets/f79c17c4-mmm0wuqe-40.QF9fhayM.webp)

Filled buttons are start-aligned beside flight information in a large window

The icon and label text in a button stay centered and grouped as the button's width changes.

::: tip Do
![2 buttons with horizontally centered text labels.](/assets/ff5186aa-mmm0y1g6-42-do.ClGL2fIa.webp)

Keep the icon and label text grouped and centered
:::

::: danger Don't
![1 button with centered text label, 1 button with icon and label aligned to opposite edges.](/assets/45d58a72-mmm0yith-43-dont.C_CtvhwP.webp)

Don't ungroup the icon and label text or let them anchor to opposite sides of the button
:::

Buttons can be customized to change size and scaling behavior across different [breakpoints](../../foundations/layout/breakpoints/overview.md "Breakpoints are opinionated window sizes where a layout changes to match available space, device conventions, and ergonomics (previously window size classes)."). 

To avoid creating very long buttons in large windows, constrain button width or place buttons beside other elements.

::: danger Don't
![Button width is over-stretched with screen width.](/assets/267abc6f-mmm0zsof-44-dont.CJDXaDGG.webp)

Don’t allow the button to stretch in a way that creates long, flat buttons with very little content inside
:::

### Presentation

The size and placement of buttons can change as parent containers, such as cards, adapt for larger screens. 

Keep items, including buttons, in the same order between large and small screens to provide a consistent experience for screen readers and keyboard navigation.

![2 buttons scaling to accommodate different device sizes.](/assets/170a8b1d-mmm11hfb-45.2ZgUP8pt.webp)

Buttons can move in the layout, but elements should remain in the same order
