IconButton API
API documentation for the React IconButton component. Learn about the available props and the CSS API.
Import
import IconButton from '@mui/material/IconButton';
// or
import { IconButton } from '@mui/material';
Refer to the Icons section of the documentation regarding the available icon options.
Component name
The nameMuiIconButton
can be used when providing default props or style overrides in the theme.Props
Props of the ButtonBase component are also available.
Name | Type | Default | Description |
---|---|---|---|
children | node | The icon to display. | |
classes | object | Override or extend the styles applied to the component. See CSS API below for more details. | |
color | 'inherit' | 'default' | 'primary' | 'secondary' | 'error' | 'info' | 'success' | 'warning' | string | 'default' | The color of the component. It supports those theme colors that make sense for this component. |
disabled | bool | false | If true , the component is disabled. |
disableFocusRipple | bool | false | If true , the keyboard focus ripple is disabled. |
disableRipple | bool | false | If true , the ripple effect is disabled.⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure to highlight the element by applying separate styles with the .Mui-focusVisible class. |
edge | 'end' | 'start' | false | false | If given, uses a negative margin to counteract the padding on one side (this is often helpful for aligning the left or right side of the icon with content above or below, without ruining the border size and shape). |
size | 'small' | 'medium' | 'large' | string | 'medium' | The size of the component. small is equivalent to the dense button styling. |
sx | Array<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. |
The
ref
is forwarded to the root element.Inheritance
While not explicitly documented above, the props of the ButtonBase component are also available on IconButton. You can take advantage of this to target nested components.CSS
Rule name | Global class | Description |
---|---|---|
root | .MuiIconButton-root | Styles applied to the root element. |
edgeStart | .MuiIconButton-edgeStart | Styles applied to the root element if edge="start" . |
edgeEnd | .MuiIconButton-edgeEnd | Styles applied to the root element if edge="end" . |
colorInherit | .MuiIconButton-colorInherit | Styles applied to the root element if color="inherit" . |
colorPrimary | .MuiIconButton-colorPrimary | Styles applied to the root element if color="primary" . |
colorSecondary | .MuiIconButton-colorSecondary | Styles applied to the root element if color="secondary" . |
disabled | .Mui-disabled | State class applied to the root element if disabled={true} . |
sizeSmall | .MuiIconButton-sizeSmall | Styles applied to the root element if size="small" . |
sizeMedium | .MuiIconButton-sizeMedium | Styles applied to the root element if size="medium" . |
sizeLarge | .MuiIconButton-sizeLarge | Styles applied to the root element if size="large" . |
You can override the style of the component using one of these customization options:
- With a global class name.
- With a rule name as part of the component's
styleOverrides
property in a custom theme.