Number Input
The Number Input component provides users with a field for integer values, and buttons to increment or decrement the value.
NumberInput API
Import
import { Unstable_NumberInput as NumberInput } from '@mui/base/Unstable_NumberInput';
// or
import { Unstable_NumberInput as NumberInput } from '@mui/base';Props of the native component are also available.
| Name | Type | Default | Description |
|---|---|---|---|
| defaultValue | any | The default value. Use when the component is not controlled. | |
| disabled | bool | If | |
| endAdornment | node | Trailing adornment for this input. | |
| error | bool | If | |
| id | string | The id of the | |
| max | number | The maximum value. | |
| min | number | The minimum value. | |
| onChange | func | Callback fired after the value is clamped and changes - when the Signature: function(event: React.FocusEvent
| |
| onInputChange | func | Callback fired when the Signature: function(event: React.ChangeEvent
| |
| placeholder | string | The short hint displayed in the | |
| readOnly | bool | false | If |
| required | bool | If | |
| shiftMultiplier | number | Multiplier applied to | |
| slotProps | { decrementButton?: func | object, incrementButton?: func | object, input?: func | object, root?: func | object } | {} | The props used for each slot inside the NumberInput. |
| slots | { decrementButton?: elementType, incrementButton?: elementType, input?: elementType, root?: elementType } | {} | The components used for each slot inside the InputBase. Either a string to use a HTML element or a component. See Slots API below for more details. |
| startAdornment | node | Leading adornment for this input. | |
| step | number | The amount that the value changes on each increment or decrement. | |
| value | number | The current value. Use when the component is controlled. |
ref is forwarded to the root element.To learn how to customize the slot, check out the Overriding component structure guide.
| Slot name | Class name | Default component | Description |
|---|---|---|---|
| root | .base-NumberInput-root | 'div' | The component that renders the root. |
| input | .base-NumberInput-input | 'input' | The component that renders the input. |
| incrementButton | .base-NumberInput-incrementButton | 'button' | The component that renders the increment button. |
| decrementButton | .base-NumberInput-decrementButton | 'button' | The component that renders the decrement button. |
These class names are useful for styling with CSS. They are applied to the component's slots when specific states are triggered.
| Class name | Description |
|---|---|
| .base--disabled | Class name applied to the root element if disabled={true}. |
| .base--error | State class applied to the root element if error={true}. |
| .base--focused | Class name applied to the root element if the component is focused. |
| .base--readOnly | State class applied to the root element if readOnly={true}. |
| .base-NumberInput-adornedEnd | Class name applied to the root element if endAdornment is provided. |
| .base-NumberInput-adornedStart | Class name applied to the root element if startAdornment is provided. |
| .base-NumberInput-formControl | Class name applied to the root element if the component is a descendant of FormControl. |