--- templateEngineOverride: njk layout: layouts/page.njk title: Button Group description: A container that groups related buttons together with consistent styling. toc: - label: Usage id: usage - label: Accessibility id: accessibility - label: Button Group vs Toggle Group id: button-group-vs-toggle-group - label: Examples id: examples children: - label: Orientation id: example-orientation - label: Size id: example-size - label: Nested id: example-nested - label: Separator id: example-separator - label: Split id: example-split - label: Input id: example-input - label: Input Group id: example-input-group - label: Dropdown Menu id: example-dropdown-menu - label: Select id: example-select - label: Popover id: example-popover - label: RTL id: example-rtl --- {% from "dropdown-menu.njk" import dropdown_menu %} {% from "popover.njk" import popover %} {% from "select.njk" import select %} {% from "macros/code_preview.njk" import code_preview %} {% from "macros/code_block.njk" import code_block %} {% set code_default %}
Wrap related buttons or inputs in a <div role="group" class="button-group"> element. Add aria-label or aria-labelledby when the group purpose is not already clear from nearby text.
Use data-orientation="vertical" to stack items vertically. Use <hr role="separator"> to visually divide non-outline buttons. Use button-group-text for static text inside a group.
role="group" on the button-group container.aria-label or aria-labelledby to label groups whose purpose is not obvious.Use data-orientation="vertical" to stack buttons vertically.
Use <hr role="separator"> to visually divide buttons within a group.
Use a separator to create a split action with a primary action and a secondary menu trigger.
Button groups support right-to-left layouts through logical border and radius rules. Add dir="rtl" to the group or an ancestor. Directional icons should be flipped explicitly.