ButtonBase API
The API documentation of the ButtonBase React component. Learn more about the props and the CSS customization points.
Import
import ButtonBase from '@material-ui/core/ButtonBase';
// or
import { ButtonBase } from '@material-ui/core';
You can learn more about the difference by reading this guide.
ButtonBase
contains as few styles as possible.
It aims to be a simple building block for creating a button.
It contains a load of style reset and some focus/ripple logic.
Props
Name | Type | Default | Description |
---|---|---|---|
action | ref | A ref for imperative actions. It currently only supports focusVisible() action. |
|
buttonRef | ref | Use that prop to pass a ref to the native button component. | |
centerRipple | bool | false | If true , the ripples will be centered. They won't start at the cursor interaction position. |
children | node | The content of the component. | |
classes | object | Override or extend the styles applied to the component. See CSS API below for more details. | |
component | element type | 'button' | The component used for the root node. Either a string to use a DOM element or a component. ⚠️ Needs to be able to hold a ref. |
disabled | bool | false | If true , the base button will be disabled. |
disableRipple | bool | false | If true , the ripple effect will be 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 focusVisibleClassName . |
disableTouchRipple | bool | false | If true , the touch ripple effect will be disabled. |
focusRipple | bool | false | If true , the base button will have a keyboard focus ripple. disableRipple must also be false . |
focusVisibleClassName | string | This prop can help a person know which element has the keyboard focus. The class name will be applied when the element gain the focus through a keyboard interaction. It's a polyfill for the CSS :focus-visible selector. The rationale for using this feature is explained here. A polyfill can be used to apply a focus-visible class to other components if needed. |
|
onFocusVisible | func | Callback fired when the component is focused with a keyboard. We trigger a onFocus callback too. |
|
TouchRippleProps | object | Props applied to the TouchRipple element. |
|
type | 'submit' | 'reset' | 'button' |
'button' | Used to control the button's purpose. This prop passes the value to the type attribute of the native button component. |
The ref
is forwarded to the root element.
Any other props supplied will be provided to the root element (native element).
CSS
- Style sheet name:
MuiButtonBase
. - Style sheet details:
Rule name | Global class | Description |
---|---|---|
root | .MuiButtonBase-root | Styles applied to the root element. |
disabled | .Mui-disabled | Pseudo-class applied to the root element if disabled={true} . |
focusVisible | .Mui-focusVisible | Pseudo-class applied to the root element if keyboard focused. |
You can override the style of the component thanks to one of these customization points:
- With a rule name of the
classes
object prop. - With a global class name.
- With a theme and an
overrides
property.
If that's not sufficient, you can check the implementation of the component for more detail.