Button

Examples

Variations







Icon






Icon end




Clicked buttons







Icon






Icon end




Small buttons







Icon






Icon end




Disabled







Icon






Icon end




Aria-disabled







Icon






Icon end




Block level

Types

Call to action



disabled

Progress




Circle buttons

Counts


disabled

Plain with no padding

For when a plain/icon button is placed inline with text .

Stateful

Read


Unread


Attention


Plain




Plain with count


Favorite

A favorite button should use a plain button with the star icon. Applying .pf-m-favorited to the button initiates a microanimation and indicates that the item is favorited.

Settings

Hamburger

Documentation

Overview

Always add a modifier class to add color to the button.

Semantic buttons and links are important for usability as well as accessibility. Using an a instead of a button element to perform user initiated actions should be avoided, unless absolutely necessary.

Accessibility

Attribute
Applied to
Outcome
aria-pressed="true or false"
.pf-v6-c-button
Indicates that the button is a toggle. When set to true, pf-m-active should also be set so that the button displays in an active state. Required when button is a toggle
aria-label="[button label text]"
.pf-v6-c-button.pf-m-plain
Provides an accessible name for the button when an icon is used instead of text. Required when icon is used with no supporting text
aria-label="[descriptive text]"
a.pf-v6-c-button, span.pf-v6-c-button.pf-m-link.pf-m-inline
The button component's text should adequately describe its purpose. If it does not, aria-label can provide more detailed interaction information.
disabled
button.pf-v6-c-button
When a button element is used, indicates that it is unavailable and removes it from keyboard focus. Required when button is disabled
aria-disabled=true
button.pf-v6-c-button
When a button element is used, indicates that it is unavailable but does not prevent keyboard or hover interactions. Used when a disabled button provides interactive elements like a tooltip.
aria-disabled=true
a.pf-v6-c-button.pf-m-disabled, span.pf-v6-c-button.pf-m-link.pf-m-inline.pf-m-disabled
When a non-button element is used, indicates that it is unavailable. Required when element is disabled
aria-expanded=true
.pf-v6-c-button.pf-m-expanded
Indicates that the expanded content element is visible. Required
tabindex="-1"
a.pf-v6-c-button.pf-m-disabled, span.pf-v6-c-button.pf-m-link.pf-m-inline.pf-m-disabled
When a non-button element is used, removes it from keyboard focus. Required when element is disabled
tabindex="0"
span.pf-v6-c-button.pf-m-link.pf-m-inline
Inserts the span into the tab order of the page so that it is focusable. Required when the element is a span

Usage

Class
Applied to
Outcome
.pf-v6-c-button
<button>, <span>
Initiates a button. Always use it with a modifier class. Required
.pf-v6-c-button__icon
<span>
Initiates a button icon.
.pf-v6-c-button__progress
<span>
Initiates a button progress container.
.pf-v6-c-button__count
<span>
Initiates a button count container. Note: Count should only be used on link buttons.
.pf-m-primary
.pf-v6-c-button
Modifies for primary styles.
.pf-m-secondary
.pf-v6-c-button
Modifies for secondary styles.
.pf-m-tertiary
.pf-v6-c-button
Modifies for tertiary styles.
.pf-m-danger
.pf-v6-c-button
Modifies for danger styles.
.pf-m-warning
.pf-v6-c-button
Modifies for warning styles.
.pf-m-link
.pf-v6-c-button
Modifies for link styles. This button has no background or border and is styled as a link. This button would commonly appear in a form and may include an icon.
.pf-m-plain
.pf-v6-c-button
Modifies for icon styles. This button has no background or border, uses a standard text color, and is used for .pf-m-plain icon buttons such as close, expand, kebab, stateful, etc.
.pf-m-no-padding
.pf-v6-c-button.pf-m-plain
Modifies a plain button to remove padding. This modifier should only be used when the button is inline within a sentence or block of text. Adjacent plain buttons without padding should always have spacing between them.
.pf-m-inline
.pf-v6-c-button.pf-m-link
Modifies for inline styles. This button is presented similar to a normal link and has no padding and is displayed inline with other inline content. When used as a <span>, the text will flow inline with text around it.
.pf-m-block
.pf-v6-c-button
Creates a block level button.
.pf-m-control
.pf-v6-c-button
Modifies for control styles. Note: This modifier should only be used when using buttons in the Input Group or Clipboard Copy components.
.pf-m-expanded
.pf-v6-c-button.pf-m-control
Modifies a control button for the expanded state.
.pf-m-start
.pf-v6-c-button__icon
Applies right spacing to an icon inside of a button when the icon comes before text.
.pf-m-end
.pf-v6-c-button__icon
Applies left spacing to an icon inside of a button when the icon comes after text.
.pf-m-active
.pf-v6-c-button
Forces display of the active state of the button. This modifier should be used when aria-pressed is set to true so that the button displays in an active state.
.pf-m-small
.pf-v6-c-button
Modifies the button for small/compact styles.
.pf-m-aria-disabled
.pf-v6-c-button
Modifies a button to be visually disabled, yet is still focusable.
.pf-m-display-lg
.pf-v6-c-button, pf-v6-c-button.pf-m-link
Modifies the button and link button for large display styling. For example, use this modifier to achieve "call to action" styles.
.pf-m-progress
.pf-v6-c-button
Indicates that the button supports the progress state. Note: Not used with the plain variation.
.pf-m-in-progress
.pf-v6-c-button
Indicates that the button is in the in progress state.
.pf-m-stateful
.pf-v6-c-button
Indicates that the button is used for one of read, unread, and attention states. Note: Always use with a modifier of .pf-m-read, .pf-m-unread, or .pf-m-attention.
.pf-m-notify
.pf-v6-c-button
Indicates that the button should show the user notification of an event. Note: This is intended for use with a bell icon in the notification badge.
.pf-m-favorite
.pf-v6-c-button.pf-m-plain
Modifies a plain button to be a favorite button. Note: This is intended for use with a star icon.
.pf-m-favorited
.pf-v6-c-button.pf-m-plain.pf-m-favorite
Modifies a favorite button to indicate that item is favorited.
.pf-m-settings
.pf-v6-c-button.pf-m-plain
Modifies a plain button to be a settings button.
.pf-m-hamburger
.pf-v6-c-button.pf-m-plain
Modifies a plain button to be a hamburger button.
.pf-m-expand
.pf-v6-c-button.pf-m-hamburger
Modifies a hamburger button to indicate that it will expand a menu.
.pf-m-collapse
.pf-v6-c-button.pf-m-hamburger
Modifies a hamburger button to indicate that it will collapse a menu.
.pf-m-circle
.pf-v6-c-button
Modifies a button to have a circular shape, instead of only rounded corners or a pill shape. Intended for buttons that contain only an icon.