Skip to content

ButtonGroup API

API reference docs for the React ButtonGroup component. Learn about the props, CSS, and other APIs of this exported module.

Demos

For examples and details on the usage of this React component, visit the component demo pages:

Import

import ButtonGroup from '@mui/material/ButtonGroup';
// or
import { ButtonGroup } from '@mui/material';
You can learn about the difference by reading this guide on minimizing bundle size.

Component name

The name MuiButtonGroup can be used when providing default props or style overrides in the theme.

Props

Props of the native component are also available.

NameTypeDefaultDescription
childrennode
The content of the component.
classesobject
Override or extend the styles applied to the component. See CSS API below for more details.
color'inherit'
| 'primary'
| 'secondary'
| 'error'
| 'info'
| 'success'
| 'warning'
| string
'primary'
The color of the component. It supports both default and custom theme colors, which can be added as shown in the palette customization guide.
componentelementType
The component used for the root node. Either a string to use a HTML element or a component.
disabledboolfalse
If true, the component is disabled.
disableElevationboolfalse
If true, no elevation is used.
disableFocusRippleboolfalse
If true, the button keyboard focus ripple is disabled.
disableRippleboolfalse
If true, the button ripple effect is disabled.
fullWidthboolfalse
If true, the buttons will take up the full width of its container.
orientation'horizontal'
| 'vertical'
'horizontal'
The component orientation (layout flow direction).
size'small'
| 'medium'
| 'large'
| string
'medium'
The size of the component. small is equivalent to the dense button styling.
sxArray<func
| object
| bool>
| func
| object
The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details.
variant'contained'
| 'outlined'
| 'text'
| string
'outlined'
The variant to use.

The ref is forwarded to the root element.

CSS

Rule nameGlobal classDescription
root.MuiButtonGroup-rootStyles applied to the root element.
contained.MuiButtonGroup-containedStyles applied to the root element if variant="contained".
outlined.MuiButtonGroup-outlinedStyles applied to the root element if variant="outlined".
text.MuiButtonGroup-textStyles applied to the root element if variant="text".
disableElevation.MuiButtonGroup-disableElevationStyles applied to the root element if disableElevation={true}.
disabled.Mui-disabledState class applied to the child elements if disabled={true}.
fullWidth.MuiButtonGroup-fullWidthStyles applied to the root element if fullWidth={true}.
vertical.MuiButtonGroup-verticalStyles applied to the root element if orientation="vertical".
grouped.MuiButtonGroup-groupedStyles applied to the children.
groupedHorizontal.MuiButtonGroup-groupedHorizontalStyles applied to the children if orientation="horizontal".
groupedVertical.MuiButtonGroup-groupedVerticalStyles applied to the children if orientation="vertical".
groupedText.MuiButtonGroup-groupedTextStyles applied to the children if variant="text".
groupedTextHorizontal.MuiButtonGroup-groupedTextHorizontalStyles applied to the children if variant="text" and orientation="horizontal".
groupedTextVertical.MuiButtonGroup-groupedTextVerticalStyles applied to the children if variant="text" and orientation="vertical".
groupedTextPrimary.MuiButtonGroup-groupedTextPrimaryStyles applied to the children if variant="text" and color="primary".
groupedTextSecondary.MuiButtonGroup-groupedTextSecondaryStyles applied to the children if variant="text" and color="secondary".
groupedOutlined.MuiButtonGroup-groupedOutlinedStyles applied to the children if variant="outlined".
groupedOutlinedHorizontal.MuiButtonGroup-groupedOutlinedHorizontalStyles applied to the children if variant="outlined" and orientation="horizontal".
groupedOutlinedVertical.MuiButtonGroup-groupedOutlinedVerticalStyles applied to the children if variant="outlined" and orientation="vertical".
groupedOutlinedPrimary.MuiButtonGroup-groupedOutlinedPrimaryStyles applied to the children if variant="outlined" and color="primary".
groupedOutlinedSecondary.MuiButtonGroup-groupedOutlinedSecondaryStyles applied to the children if variant="outlined" and color="secondary".
groupedContained.MuiButtonGroup-groupedContainedStyles applied to the children if variant="contained".
groupedContainedHorizontal.MuiButtonGroup-groupedContainedHorizontalStyles applied to the children if variant="contained" and orientation="horizontal".
groupedContainedVertical.MuiButtonGroup-groupedContainedVerticalStyles applied to the children if variant="contained" and orientation="vertical".
groupedContainedPrimary.MuiButtonGroup-groupedContainedPrimaryStyles applied to the children if variant="contained" and color="primary".
groupedContainedSecondary.MuiButtonGroup-groupedContainedSecondaryStyles applied to the children if variant="contained" and color="secondary".

You can override the style of the component using one of these customization options: