ButtonGroup
Basic example
Group a series of buttons together on a single line with the ButtonGroup.
Result
Loading...
Live Editor
<ButtonGroup aria-label="Basic example"> <Button variant="primary">Left</Button> <Button variant="outline-secondary">Middle</Button> <Button variant="outline-secondary">Right</Button> </ButtonGroup>
Mixed variants
Combine different button variants within a group.
Result
Loading...
Live Editor
<ButtonGroup aria-label="Mixed variants"> <Button variant="primary">Primary</Button> <Button variant="outline-secondary">Secondary</Button> <Button variant="outline-success">Success</Button> <Button variant="outline-danger">Danger</Button> </ButtonGroup>
Outline variants
Result
Loading...
Live Editor
<ButtonGroup aria-label="Outline example"> <Button variant="outline-primary">Left</Button> <Button variant="outline-primary">Middle</Button> <Button variant="outline-primary">Right</Button> </ButtonGroup>
Sizing
Result
Loading...
Live Editor
<div className="d-flex flex-column gap-3"> <ButtonGroup aria-label="Large button group"> <Button size="xxl" variant="outline-secondary"> Left </Button> <Button size="xxl" variant="outline-secondary"> Middle </Button> <Button size="xxl" variant="outline-secondary"> Right </Button> </ButtonGroup> <ButtonGroup aria-label="Large button group"> <Button size="xl" variant="outline-secondary"> Left </Button> <Button size="xl" variant="outline-secondary"> Middle </Button> <Button size="xl" variant="outline-secondary"> Right </Button> </ButtonGroup> <ButtonGroup aria-label="Large button group"> <Button size="lg" variant="outline-secondary"> Left </Button> <Button size="lg" variant="outline-secondary"> Middle </Button> <Button size="lg" variant="outline-secondary"> Right </Button> </ButtonGroup> <ButtonGroup aria-label="Default button group"> <Button size="md" variant="outline-secondary"> Left </Button> <Button size="md" variant="outline-secondary"> Middle </Button> <Button size="md" variant="outline-secondary"> Right </Button> </ButtonGroup> <ButtonGroup aria-label="Small button group"> <Button size="sm" variant="outline-secondary"> Left </Button> <Button size="sm" variant="outline-secondary"> Middle </Button> <Button size="sm" variant="outline-secondary"> Right </Button> </ButtonGroup> <ButtonGroup aria-label="Small button group"> <Button size="xs" variant="outline-secondary"> Left </Button> <Button size="xs" variant="outline-secondary"> Middle </Button> <Button size="xs" variant="outline-secondary"> Right </Button> </ButtonGroup> </div>
Vertical
Make a group of buttons appear vertically stacked using the vertical prop.
Result
Loading...
Live Editor
<ButtonGroup vertical aria-label="Vertical button group"> <Button variant="primary">Button</Button> <Button variant="primary">Button</Button> <Button variant="primary">Button</Button> </ButtonGroup>
Active state
Set a button as active to indicate the current selection.
Result
Loading...
Live Editor
function ActiveButtonGroupExample() { const [active, setActive] = useState('middle'); return ( <ButtonGroup aria-label="Active state example"> <Button variant={active === 'left' ? 'primary' : 'outline-primary'} active={active === 'left'} onClick={() => setActive('left')} > Left </Button> <Button variant={active === 'middle' ? 'primary' : 'outline-primary'} active={active === 'middle'} onClick={() => setActive('middle')} > Middle </Button> <Button variant={active === 'right' ? 'primary' : 'outline-primary'} active={active === 'right'} onClick={() => setActive('right')} > Right </Button> </ButtonGroup> ); } render(<ActiveButtonGroupExample />);
With icons
Result
Loading...
Live Editor
<ButtonGroup aria-label="Icon button group"> <Button variant="outline-secondary" renderPrefix={() => <span className="icon-align-left" />}> Left </Button> <Button variant="outline-secondary" renderPrefix={() => <span className="icon-align-center" />}> Center </Button> <Button variant="outline-secondary" renderPrefix={() => <span className="icon-align-right" />}> Right </Button> </ButtonGroup>
Nested dropdown
Result
Loading...
Live Editor
<ButtonGroup aria-label="Button group with dropdown"> <Button variant="primary">Action</Button> <Button variant="primary">Another action</Button> <DropdownButton as={ButtonGroup} title="Dropdown" variant="primary" id="bg-nested-dropdown"> <Dropdown.Item eventKey="1">Option 1</Dropdown.Item> <Dropdown.Item eventKey="2">Option 2</Dropdown.Item> <Dropdown.Item eventKey="3">Option 3</Dropdown.Item> </DropdownButton> </ButtonGroup>