Skip to content

ButtonGroup ​

A ButtonGroup consists of a set of two or more normal buttons. Buttons in such a group signal a number of equally important actions that will occur when the user taps on them.

NameValue
Props
disabled
View
Reading direction

Overview ​

When to use ButtonGroup ​

Use the ButtonGroup component when you want users to choose actions from a set of actions, with the restriction that only one can be active at a time. If you want to enable users to select one or multiple options from a set of options, use ToggleButtonGroup instead.

About ButtonGroup ​

ButtonGroup consists of a minimum of two neutral normal Buttons, which include the following elements.

Label ​

Each button within the ButtonGroup must have a label. Button labels should be as short as possible, with text that clearly states what action will be taken once the button is pressed (e.g. download, submit form, search).

  • Customize the content of each button, allowing for superscript, subscript, or special characters.
  • Use numbers instead of text if needed.

Icon (optional) ​

Icons simplify user recognition and provide the ability to shorten button labels to a minimum.

  • Mix text-only and icon-only buttons exclusively when using the β€˜ellipsisβ€˜ icon to indicate additional actions.
  • In order to ensure consistency, avoid mixing different types of button contents within the same ButtonGroup.

Examples ​

Basic usage ​

Developer notes

Describe the buttons in the group with an array of ButtonGroupItem objects. The text in the label property will be displayed in the buttons. When a button is clicked, a click event will be emitted with the value property of the clicked button. Values must be unique within a button group.

If the label property is omitted, the value property will be used as the label. This allows using { value: 'Foo' } as a shorthand for { label: 'Foo', value: 'Foo' }.

With icons ​

Use an icon with the button label when you need to convey meaning through both textual and visual elements.

Icon-only buttons ​

For icon-only buttons, the label will be visually hidden and available only to users of assistive technology.

  • Icon-only buttons may be used to form a ButtonGroup but only if the icons used are universally understood and do not require accompanying text.

Developer notes

To display an icon as the only content of a button, use the icon property to specify an icon, and set the label property to null.

Disabled ​

You can disable the entire ButtonGroup or individual buttons.

Developer notes

The entire component can be disabled by setting the disabled prop. Individual buttons can be disabled by setting their disabled property. Clicking a disabled button does not emit a click event.

Overflowing buttons ​

When the ButtonGroup is too large to fit on one line, the buttons overflow to the next line.

Custom button display ​

The contents of the buttons can be customized using the default slot.

Developer notes

The ButtonGroupItem object for each button is available through the button binding. In this example, the value of the button is displayed in superscript after its label.

Technical implementation ​

Vue usage ​

Props ​

Prop nameDescriptionTypeDefault
buttons(required)Objects describing the buttons in the group. See the ButtonGroupItem type.ButtonGroupItem[]
disabledWhether the entire group is disabled.

If this is set to true, all buttons in the group are disabled. Buttons can also be disabled individually by setting their disabled property to true.
booleanfalse

Events ​

Event namePropertiesDescription
clickvalue string|number - The value property of the button that was clickedEmitted when a button is clicked

Slots ​

NameDescriptionBindings
defaultContent of an individual buttonbutton ButtonGroupItem - Object describing the button to display

Keyboard navigation ​

KeyFunction
TabIt moves the focus to the next Button within the group or to the next interactive element in tab order when the focus is placed on the last Button of the group.
Shift + TabIt moves the focus to the previous Button within the group or to the previous interactive element when the focus is placed on the first Button of the group.
Enter / SpaceIf the focus is placed on one of the buttons, it activates that Button.