Documentation
Button group
Group a series of buttons together on a single line or stack them in a vertical column.
Basic example
Wrap a series of buttons with .btn
in .btn-group
.
<ButtonGroup aria-label="Basic example">
<Button variant="primary">Left</Button>
<Button variant="primary">Middle</Button>
<Button variant="primary">Right</Button>
</ButtonGroup>
These classes can also be added to groups of links, as an alternative to the .nav
navigation components.
<Link to="#" className="btn btn-primary active" aria-current="page">Active link</Link>
<Link to="#" className="btn btn-primary">Link</Link>
<Link to="#" className="btn btn-primary">Link</Link>
Mixed styles
<button type="button" className="btn btn-danger">Left</button>
<button type="button" className="btn btn-warning">Middle</button>
<button type="button" className="btn btn-success">Right</button>
Outlined styles
<Button variant="outline-primary">Left</Button>
<Button variant="outline-primary">Middle</Button>
<Button variant="outline-primary">Right</Button>
Checkbox and radio button groups
Combine button-like checkbox and radio toggle buttons into a seamless looking button group.
<div className="btn-group" role="group" aria-label="Basic checkbox toggle button group">
<div className="btn-group" role="group" aria-label="Basic radio toggle button group">
<input type="radio" className="btn-check" name="btnradio" id="btnradio1" autoComplete="off"/>
<label className="btn btn-outline-primary" for="btnradio1">Checkbox 1</label>
<input type="radio" className="btn-check" name="btnradio" id="btnradio2" autoComplete="off"/>
<label className="btn btn-outline-primary" for="btnradio2">Checkbox 2</label>
<input type="radio" className="btn-check" name="btnradio" id="btnradio3" autoComplete="off"/>
<label className="btn btn-outline-primary" for="btnradio3">Checkbox 3</label>
</div>
</div>
<input type="radio" className="btn-check" name="btnradio" id="btnradio1" autoComplete="off"/>
<label className="btn btn-outline-primary" for="btnradio1">Radio 1</label>
<input type="radio" className="btn-check" name="btnradio" id="btnradio2" autoComplete="off"/>
<label className="btn btn-outline-primary" for="btnradio2">Radio 2</label>
<input type="radio" className="btn-check" name="btnradio" id="btnradio3" autoComplete="off"/>
<label className="btn btn-outline-primary" for="btnradio3">Radio 3</label>
Button toolbar
Combine sets of button groups into button toolbars for more complex components. Use utility classes as needed to space out groups, buttons, and more.
Button toolbar
Combine sets of button groups into button toolbars for more complex components. Use utility classes as needed to space out groups, buttons, and more.
<ButtonToolbar className="mb-3" aria-label="Toolbar with Button groups">
<ButtonGroup className="me-2" aria-label="First group">
<Button variant="outline-secondary">1</Button>{' '}
<Button variant="outline-secondary">2</Button>{' '}
<Button variant="outline-secondary">3</Button>{' '}
<Button variant="outline-secondary">4</Button>
</ButtonGroup>
<InputGroup>
<InputGroup.Text id="btnGroupAddon">@</InputGroup.Text>
<FormControl
type="text"
placeholder="Input group example"
aria-label="Input group example"
aria-describedby="btnGroupAddon"
/>
</InputGroup>
</ButtonToolbar>
<ButtonToolbar
className="justify-content-between"
aria-label="Toolbar with Button groups"
>
<ButtonGroup aria-label="First group">
<Button variant="outline-secondary">1</Button>{' '}
<Button variant="outline-secondary">2</Button>{' '}
<Button variant="outline-secondary">3</Button>{' '}
<Button variant="outline-secondary">4</Button>
</ButtonGroup>
<InputGroup>
<InputGroup.Text id="btnGroupAddon2">@</InputGroup.Text>
<FormControl
type="text"
placeholder="Input group example"
aria-label="Input group example"
aria-describedby="btnGroupAddon2"
/>
</InputGroup>
</ButtonToolbar>
Sizing
Instead of applying button sizing props to every button in a group, just add size
prop to the <ButtonGroup>
.
<ButtonGroup size="lg" className="mb-2">
<Button variant="outline-secondary">Left</Button>
<Button variant="outline-secondary">Middle</Button>
<Button variant="outline-secondary">Right</Button>
</ButtonGroup>
<br />
<ButtonGroup className="mb-2">
<Button variant="outline-secondary">Left</Button>
<Button variant="outline-secondary">Middle</Button>
<Button variant="outline-secondary">Right</Button>
</ButtonGroup>
<br />
<ButtonGroup size="sm">
<Button variant="outline-secondary">Left</Button>
<Button variant="outline-secondary">Middle</Button>
<Button variant="outline-secondary">Right</Button>
</ButtonGroup>
Nesting
You can place other button types within the <ButtonGroup>
like <DropdownButton>
s.
<ButtonGroup>
<Button>1</Button>
<Button>2</Button>
<DropdownButton as={ButtonGroup} title="Dropdown" id="bg-nested-dropdown">
<Dropdown.Item eventKey="1">Dropdown link</Dropdown.Item>
<Dropdown.Item eventKey="2">Dropdown link</Dropdown.Item>
</DropdownButton>
</ButtonGroup>
Vertical variation
Make a set of buttons appear vertically stacked rather than horizontally, by adding vertical
to the <ButtonGroup>
. Split button dropdowns are not supported here.
<ButtonGroup vertical>
<Button>Button</Button>
<Button>Button</Button>
<DropdownButton as={ButtonGroup} title="Dropdown" id="bg-vertical-dropdown-1">
<Dropdown.Item eventKey="1">Dropdown link</Dropdown.Item>
<Dropdown.Item eventKey="2">Dropdown link</Dropdown.Item>
</DropdownButton>
<Button>Button</Button>
<Button>Button</Button>
<DropdownButton as={ButtonGroup} title="Dropdown" id="bg-vertical-dropdown-2">
<Dropdown.Item eventKey="1">Dropdown link</Dropdown.Item>
<Dropdown.Item eventKey="2">Dropdown link</Dropdown.Item>
</DropdownButton>
<DropdownButton as={ButtonGroup} title="Dropdown" id="bg-vertical-dropdown-3">
<Dropdown.Item eventKey="1">Dropdown link</Dropdown.Item>
<Dropdown.Item eventKey="2">Dropdown link</Dropdown.Item>
</DropdownButton>
</ButtonGroup>