Button

Buttons communicate possible user actions. Clicking on a button allows a user to perform the corresponding action. Buttons appear differently based on their use category and the priority level of their call to action.

Known issues
Show details
Known issues
Published: July 14, 2025
Updated: January 09, 2026

Anatomy

01-filter-anatomy
  1. Leading icon: (Optional) Left aligned icon that provides context to the CTA
  2. Label: (Optional) Short, descriptive call to action
  3. Container: Bounding element that holds content, color, and icons
  4. Trailing icon: (Optional) Right aligned icon that provides context to the CTA

Usage Guidelines

Buttons fall under different variants based on the priority level of the actions they trigger. Each of the below variants are associated with a button type.
Choose the button type based on the priority level of the call to action.

01-usage

When to use this component

  • Use primary buttons to show the key action on a page or view. Most pages should only have one primary action
  • Use secondary buttons next to primary buttons to indicate alternative or less pronounced actions.
  • Use default buttons for common actions.
  • Use danger buttons for destructive or irreversible actions, such as deleting an account or canceling a subscription.
  • Use a plain button for actions that are less prominent, optional, or independent from the primary and secondary actions on the screen. Their primary purpose is to offer an action without distracting the user from the main task at hand.

Leading icons

Leading icons can visually represent a button’s action to lessen the cognitive load for users. For instance, a bell icon may symbolize setting up notifications or alerts.

01-usage

Trailing accessories

Trailing icons should be used in specific use cases as a nod to the interaction. Some examples are:

  • arrows or chevrons denoting previous or next actions
  • menu buttons where we use chevrons as a drop-down
02-usage

These should be used more sparingly in left-to-right languages.

When not to use this component

Don't use buttons to take user to a different URL or page in the system. Use a Link instead.


Best Practices

Do

Write clear and action-driven labels using sentence-case, such as “Add patient” or “Delete appointment”. Use verb + noun whenever is possible.

Don't

Don’t use all-caps or other text formats.

Do

Use primary and secondary variants when grouping actions.

 

Don't

Don’t use multiple instances of the primary variant when grouping actions.

Do

Use the plain variant for less important or less common actions on the screen.

Don't

Do not use buttons to link to other pages. Use the Link component instead.

Do

Use the danger variant for every destructive action you need to portray.

Don't

Don’t use any other button variant for destructive actions even if they are the primary action on the screen.

Do

Use icons for affordance clarity or to highlight the action that will be performed.

Don't

Don’t use icons for decorative purposes, or that don’t portray the buttons’ action. In those cases might be better to use only a label.

Do

Keep the same button width in both loading and not loading mode. The length of the label and its icons will define it.

Don't

Do not use any other loading method, such as the progress bar, as the available space is quite diminished.

Do

Use the full-width button in narrow sections where the rest of the content also fills the container.

Don't

Do not use a full-width button in a wide or fluid container, especially if the rest of the content does not fill the width, or it is aligned to one of the sides.

Do

Use counters in buttons to provide meaningful feedback. For instance, showing the number of items that will be affected by the action.

Don't

Do not use counters in multiple buttons in the same context. This can overwhelm users and reduce the effectiveness of the feedback.


General Behavior

Button text can be centered, left, or right alignment depending on the feature needs.

01-variant

Buttons can fit to content or be full width.

01-variant

States

State

Where's the disabled button?

We have made the conscious decision to not provide a disabled button for now. We firmly believe that most of the solutions that use a disabled button can be solved in many other simpler ways, for instance, by using validation, progressive disclosure, or lowering the actions per page to reduce the cognitive load. We enforce this for a few reasons:

  • Using disabled buttons makes us wonder why the button is not available and how to enable it. This requires explicit explanation and therefore increases the complexity of the screen (we cannot just forbid the action and not explain what is happening).
  • Showing disabled buttons when they cannot be enabled in any way is frustrating. It clutters the interface and confuses us since a solution is not possible.
  • Accessibility. It’s also a silent agreement that a disabled button has a very poor contrast. Disabled buttons could additionally be confused with secondary or plain buttons and just make the whole experience only accessible to the ones that can see the difference.

Variants

Icon-only

Icon-only buttons can be used when you need to save space. See Icon Button button for more information

Text

01-variant

Text & Icon

02-variant

A link can be styled as a button in order to fit in with the visuals of the UI. Keep in mind that for accessibility reasons, a standard button should not be used to navigate. See Buttons vs Links for more information.

03-variant

Counter

A Button should be used as a counter when the number being displayed is a direct result of the user's action on that button.

03-variant

Styles


Primary

01-variant

Secondary

02-variant

Default

03-variant

Danger

03-variant

Plain

03-variant

Content Guidelines

  • Always write in sentence case. Sentence case is accessible and scannable.
  • Keep accessibility and localization in mind – only some icons are universally understood. For example, a magnifying glass for “search,” or the plus symbol for “add”. Most icons are abstract to groups of users, so it’s best to support with copy where possible.

For further information, see the Content Styleguide.


Known Gaps

  • Accessibility Guidelines
  • To have disabled states or not to have disabled states …