Button Groups contain buttons that perform related actions.
Also known as:
Toggle ButtonsRadio Button GroupsSwitchers
- Autocomplete (not built)
- Button Group (not built)
- Checkbox Group
- Date Picker (not built)
- Empty State
- Filter Menu
- Global Notification
- Guidance Block
- Hero Card
- Icon Button
- Infinite Scroll (not built)
- Inline Notification
- Likert Scale Legacy
- Loading Placeholder
- Loading Skeleton (not built)
- Loading Spinner
- Pagination (not built)
- Progress Bar (not built)
- Progress Stepper
- Radio Group
- Rich Text Editor
- Search Field
- Split Button
- Tile Grid
- Toast Notification
- Button Groups contain buttons that perform related actions.
- Default button groups contain connected default buttons that immediately perform actions.
- Toggle button groups apply mutually exclusive settings.
A button group contains buttons that indicate to a user that they can perform actions on an object, such as:
- Apply an action to an object, e.g. save, delete, add an item, undo, create a new item
- Trigger the next step in a process
- Default button groups:
- Follow button principles.
- These use extremely closely related actions on a single object.
- Toggle button groups
- Focus indicator
- See Interaction states guidelines for focus indicators.
- Must show focus indicator on each button on keyboard navigation, but not on click.
When to use
- Use when there’s not enough space for separate buttons or they control the one setting.
- Use when all the actions in the group take place immediately on click. For example, if one or more actions does not immediately apply on click, then either use a different component, or remove that action from the group. If a subsequent button press is required, consider using a radio group instead.
- Use when the buttons can all be described by one related action. For example, in options to add to calendar, ICS and Google Cal are both options to add to calendar.
When not to use
- Don’t use a button group when there’s space for separate buttons.
- Don’t use a button group when switching between content or object pages. Use tabs instead.
Here are some examples of other existing design systems: