Skip to content

SelectUnstyled API

API reference docs for the React SelectUnstyled 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 SelectUnstyled from '@mui/base/SelectUnstyled';
// or
import { SelectUnstyled } from '@mui/base';
You can learn about the difference by reading this guide on minimizing bundle size.

The foundation for building custom-styled select components.

Props

Props of the native component are also available.

NameTypeDefaultDescription
autoFocusboolfalse
If true, the select element is focused during the first mount
componentelementType
The component used for the root node. Either a string to use a HTML element or a component.
defaultListboxOpenboolfalse
If true, the select will be initially open.
defaultValueany
The default selected value. Use when the component is not controlled.
disabledboolfalse
If true, the select is disabled.
getSerializedValuefunc
A function to convert the currently selected value to a string. Used to set a value of a hidden input associated with the select, so that the selected value can be posted with a form.
listboxIdstring
id attribute of the listbox element. Also used to derive the id attributes of options.
listboxOpenboolundefined
Controls the open state of the select's listbox.
namestring
Name of the element. For example used by the server to identify the fields in form submits. If the name is provided, the component will render a hidden input element that can be submitted to a server.
onChangefunc
Callback fired when an option is selected.
onListboxOpenChangefunc
Callback fired when the component requests to be opened. Use in controlled mode (see listboxOpen).
optionStringifierfuncdefaultOptionStringifier
A function used to convert the option label to a string. It's useful when labels are elements and need to be converted to plain text to enable navigation using character keys on a keyboard.
renderValuefunc
Function that customizes the rendering of the selected value.
slotProps{ listbox?: func
| object, popper?: func
| object, root?: func
| object }
{}
The props used for each slot inside the Input.
slots{ listbox?: elementType, popper?: elementType, root?: elementType }{}
The components used for each slot inside the Select. Either a string to use a HTML element or a component. See Slots API below for more details.
valueany
The selected value. Set to null to deselect all options.

The ref is forwarded to the root element.

Slots

NameDefault classDefault valueDescription
listbox.MuiSelect-listbox'ul'The component used to render the listbox.
popper.MuiSelect-popperPopperUnstyledThe component used to render the popper.
root.MuiSelect-root'button'The component used to render the root.