Button Group
sl-button-group
Button groups can be used to group related buttons into sections.
Examples
Basic Button Group
<sl-button-group label="Alignment"> <sl-button>Left</sl-button> <sl-button>Center</sl-button> <sl-button>Right</sl-button> </sl-button-group>
sl-button-group label="Alignment" sl-button Left sl-button Center sl-button Right
Button Sizes
All button sizes are supported, but avoid mixing sizes within the same button group.
<sl-button-group label="Alignment"> <sl-button size="small">Left</sl-button> <sl-button size="small">Center</sl-button> <sl-button size="small">Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button size="medium">Left</sl-button> <sl-button size="medium">Center</sl-button> <sl-button size="medium">Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button size="large">Left</sl-button> <sl-button size="large">Center</sl-button> <sl-button size="large">Right</sl-button> </sl-button-group>
sl-button-group label="Alignment" sl-button size="small" Left sl-button size="small" Center sl-button size="small" Right br br sl-button-group label="Alignment" sl-button size="medium" Left sl-button size="medium" Center sl-button size="medium" Right br br sl-button-group label="Alignment" sl-button size="large" Left sl-button size="large" Center sl-button size="large" Right
Theme Buttons
Theme buttons are supported through the button’s variant
attribute.
<sl-button-group label="Alignment"> <sl-button variant="primary">Left</sl-button> <sl-button variant="primary">Center</sl-button> <sl-button variant="primary">Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button variant="success">Left</sl-button> <sl-button variant="success">Center</sl-button> <sl-button variant="success">Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button variant="neutral">Left</sl-button> <sl-button variant="neutral">Center</sl-button> <sl-button variant="neutral">Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button variant="warning">Left</sl-button> <sl-button variant="warning">Center</sl-button> <sl-button variant="warning">Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button variant="danger">Left</sl-button> <sl-button variant="danger">Center</sl-button> <sl-button variant="danger">Right</sl-button> </sl-button-group>
sl-button-group label="Alignment" sl-button variant="primary" Left sl-button variant="primary" Center sl-button variant="primary" Right br br sl-button-group label="Alignment" sl-button variant="success" Left sl-button variant="success" Center sl-button variant="success" Right br br sl-button-group label="Alignment" sl-button variant="neutral" Left sl-button variant="neutral" Center sl-button variant="neutral" Right br br sl-button-group label="Alignment" sl-button variant="warning" Left sl-button variant="warning" Center sl-button variant="warning" Right br br sl-button-group label="Alignment" sl-button variant="danger" Left sl-button variant="danger" Center sl-button variant="danger" Right
Pill Buttons
Pill buttons are supported through the button’s pill
attribute.
<sl-button-group label="Alignment"> <sl-button size="small" pill>Left</sl-button> <sl-button size="small" pill>Center</sl-button> <sl-button size="small" pill>Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button size="medium" pill>Left</sl-button> <sl-button size="medium" pill>Center</sl-button> <sl-button size="medium" pill>Right</sl-button> </sl-button-group> <br /><br /> <sl-button-group label="Alignment"> <sl-button size="large" pill>Left</sl-button> <sl-button size="large" pill>Center</sl-button> <sl-button size="large" pill>Right</sl-button> </sl-button-group>
sl-button-group label="Alignment" sl-button size="small" pill=true Left sl-button size="small" pill=true Center sl-button size="small" pill=true Right br br sl-button-group label="Alignment" sl-button size="medium" pill=true Left sl-button size="medium" pill=true Center sl-button size="medium" pill=true Right br br sl-button-group label="Alignment" sl-button size="large" pill=true Left sl-button size="large" pill=true Center sl-button size="large" pill=true Right
Dropdowns in Button Groups
Dropdowns can be placed inside button groups as long as the trigger is an
<sl-button>
element.
<sl-button-group label="Example Button Group"> <sl-button>Button</sl-button> <sl-button>Button</sl-button> <sl-dropdown> <sl-button slot="trigger" caret>Dropdown</sl-button> <sl-menu> <sl-menu-item>Item 1</sl-menu-item> <sl-menu-item>Item 2</sl-menu-item> <sl-menu-item>Item 3</sl-menu-item> </sl-menu> </sl-dropdown> </sl-button-group>
sl-button-group label="Example Button Group" sl-button Button sl-button Button sl-dropdown sl-button slot="trigger" caret=true Dropdown sl-menu sl-menu-item Item 1 sl-menu-item Item 2 sl-menu-item Item 3
Split Buttons
Create a split button using a button and a dropdown. Use a
visually hidden label to ensure the dropdown is accessible to
users with assistive devices. Also use a no-pad-l
class to remove extra padding from the caret
button.
<sl-button-group label="Example Button Group"> <sl-button variant="primary">Save</sl-button> <sl-dropdown placement="bottom-end"> <sl-button class="no-pad-l" slot="trigger" variant="primary" caret> <sl-visually-hidden>More options</sl-visually-hidden> </sl-button> <sl-menu> <sl-menu-item>Save</sl-menu-item> <sl-menu-item>Save as…</sl-menu-item> <sl-menu-item>Save all</sl-menu-item> </sl-menu> </sl-dropdown> </sl-button-group>
sl-button-group label="Example Button Group" sl-button variant="primary" Save sl-dropdown placement="bottom-end" sl-button.no-pad-l slot="trigger" variant="primary" caret=true sl-visually-hidden More options sl-menu sl-menu-item Save sl-menu-item Save as… sl-menu-item Save all
Tooltips in Button Groups
Buttons can be wrapped in tooltips to provide more detail when the user interacts with them.
<sl-button-group label="Alignment"> <sl-tooltip content="I am on the left"> <sl-button>Left</sl-button> </sl-tooltip> <sl-tooltip content="I am in the middle"> <sl-button>Center</sl-button> </sl-tooltip> <sl-tooltip content="I am on the right"> <sl-button>Right</sl-button> </sl-tooltip> </sl-button-group>
sl-button-group label="Alignment" sl-tooltip content="I am on the left" sl-button Left sl-tooltip content="I am in the middle" sl-button Center sl-tooltip content="I am on the right" sl-button Right
Toolbar Example
Create interactive toolbars with button groups.
<div class="button-group-toolbar"> <sl-button-group label="History"> <sl-tooltip content="Undo"> <sl-button><sl-icon name="arrow-uturn-left" label="Undo"></sl-icon></sl-button> </sl-tooltip> <sl-tooltip content="Redo"> <sl-button><sl-icon name="arrow-uturn-right" label="Redo"></sl-icon></sl-button> </sl-tooltip> </sl-button-group> <sl-button-group label="Formatting"> <sl-tooltip content="Bold"> <sl-button><sl-icon name="at-symbol" label="Bold"></sl-icon></sl-button> </sl-tooltip> <sl-tooltip content="Italic"> <sl-button><sl-icon name="bolt" label="Italic"></sl-icon></sl-button> </sl-tooltip> <sl-tooltip content="Underline"> <sl-button><sl-icon name="no-symbol" label="Underline"></sl-icon></sl-button> </sl-tooltip> </sl-button-group> <sl-button-group label="Alignment"> <sl-tooltip content="Align Left"> <sl-button><sl-icon name="bars-3-bottom-left" label="Align Left"></sl-icon></sl-button> </sl-tooltip> <sl-tooltip content="Align Center"> <sl-button><sl-icon name="bars-3" label="Align Center"></sl-icon></sl-button> </sl-tooltip> <sl-tooltip content="Align Right"> <sl-button><sl-icon name="bars-3-bottom-right" label="Align Right"></sl-icon></sl-button> </sl-tooltip> </sl-button-group> </div> <style> .button-group-toolbar sl-button-group:not(:last-of-type) { margin-right: var(--sl-spacing-x-small); } </style>
div.button-group-toolbar sl-button-group label="History" sl-tooltip content="Undo" sl-button sl-icon name="arrow-uturn-left" label="Undo" sl-tooltip content="Redo" sl-button sl-icon name="arrow-uturn-right" label="Redo" sl-button-group label="Formatting" sl-tooltip content="Bold" sl-button sl-icon name="at-symbol" label="Bold" sl-tooltip content="Italic" sl-button sl-icon name="bolt" label="Italic" sl-tooltip content="Underline" sl-button sl-icon name="no-symbol" label="Underline" sl-button-group label="Alignment" sl-tooltip content="Align Left" sl-button sl-icon name="bars-3-bottom-left" label="Align Left" sl-tooltip content="Align Center" sl-button sl-icon name="bars-3" label="Align Center" sl-tooltip content="Align Right" sl-button sl-icon name="bars-3-bottom-right" label="Align Right" css: .button-group-toolbar sl-button-group:not(:last-of-type) { margin-right: var(--sl-spacing-x-small); }
Component Props
Property | Default | Details |
---|---|---|
label
|
''
|
A label to use for the button group. This won’t be displayed on the screen, but it will be announced by assistive devices when interacting with the control and is strongly recommended. |
updateComplete
|
A read-only promise that resolves when the component has finished updating. |
Learn more about attributes and properties.
Slots
Name | Details |
---|---|
(default) | One or more <sl-button> elements to display in the button group. |
Learn more about using slots.
CSS Parts
Name | Description |
---|---|
base
|
The component’s base wrapper. |
Learn more about customizing CSS parts.