Button guidelines
This page documents patterns for button design, including types, placement, color, and size.
Button types
Filled buttons are for the primary action
This button has the heaviest visual weight to draw users' attention.
Standard buttons are for secondary actions
Such actions include Add and Apply. This button type works well for multiple actions of equal weight.
Empty buttons are for complementary, UI-specific actions
Close, cancel, filter, refresh, and other actions that reconfigure the UI are appropriate for empty buttons.
Icon buttons are for saving space
The icon must be immediately understood, for example, a trash can for delete. Use these buttons sparingly, and never for the primary action.
Placement and order
Button placement and order should follow the user path.
Put buttons on the right in containers with a restricted width
In contained spaces like modals, popovers, bottom bars, and flyouts, the user path is top to bottom, left to right, in a Z-shaped pattern. Placing buttons on the bottom right puts them right where users finish scanning.
Put buttons on the left in unrestricted containers
With large page forms, content is typically concentrated on the top and left with a lot of open space to the right. The user path is top to bottom, in an F-shaped pattern.
Other patterns
Button should always fit the surrounding context and stay consistent with the app.
One primary button per layout
The primary action should not have to compete for attention. Use only one filled button per page, modal, form, or other layout.
Minimize the mixing of color, size, and type
When in doubt, use a blue button in the default size and never put more than two visual styles next to each other.
Icons in buttons either stand on their own or add context
Icon buttons can save space. Limit icon buttons to groups of two, otherwise they lose meaning.
Icons can serve as a scanning aid in a text label, but keep to a minimum. Icons work best on labels for binary actions, for example, Create and Delete, and final actions, such as Save.
Stack action sets into one button
Two buttons are optimal for a side-by-side layout, three is rare. For more buttons, use a dropdown or context menu.
Labels that say what the button does
Labels should provide a clear indication of that action that occurs when the user clicks the button. Prefer action words, and include an object when it is not clear from the context, for example, Add dashboard. Labels should be three words or fewer. If your label requires more words, consider using a text link instead.
Preferred words in buttons
Text | Description |
---|---|
Establishes a new relationship. Often used in a create-then-add scenario. You create a dashboard, then add a visualization. Always followed by an object. Do not use "Add new." Remove is the correct opposite. | |
Stops an action without saving pending changes. Never make Cancel red—it's not a destructive action. Cancel is always an empty button. | |
Creates a new object from scratch. Always followed by an object, for example, “Create pipeline.” Do not use "Create new."Exception: “Add user” is more intuitive than “Create user.” Delete is the correct opposite. | |
| Deletes data so users can longer retrieve it. Create is the correct opposite. Do not confuse with Remove. |
| Removes a relationship, but doesn't permanently delete data. For example, you remove a visualization from a dashboard. Add is the correct opposite. |
| Carries out pending changes, for example, Save edits. Do not confuse with Add. Can use green if this button is the final save action. |
Avoid these words in buttons
Text | Use this instead |
---|---|
Add or Create | |
Words that explain the action | |
| Words that explain the action |