Select
Select
component is a component that allows users pick a value from predefined
options. Ideally, it should be used when there are more than 5 options,
otherwise you might consider using a radio group instead.
Import#
import { Select } from "@chakra-ui/react"
Usage#
Here's a basic usage of the Select
component.
Changing the size of the Select#
TheSelect
component cones in three sizes : large (48px), default (40px) and
small (32px).
Changing the appearance of the Select#
Just like the input component, Select
comes in 4 variants, outline
,
unstyled
, flushed
, and filled
. Pass the variant
prop and set it to
either of these values.
Changing the icon in the Select#
As with most Chakra components, you can change the arrow icon used in the
select. Simply pass the icon
prop.
In case the custom icon size doesn't look right, you can pass the iconSize
prop to change it.
<Select icon={<MdArrowDropDown />} placeholder="Woohoo! A new icon" />
Overriding the styles of the Select#
Even though the select comes with predefined styles, you can override pretty much any property. Here we'll override the background color.
Props#
The Select component composes Box so you can pass all Box
props, and native Select
props in addition to these:
Name | Type | Description | Default |
---|---|---|---|
colorScheme | string | - | |
errorBorderColor | string | The border color when the select is invalid. Use color keys in `theme.colors` @example errorBorderColor = "red.500" | - |
focusBorderColor | string | The border color when the select is focused. Use color keys in `theme.colors` @example focusBorderColor = "blue.500" | - |
icon | React.ReactElement | The icon element to use in the select | - |
iconColor | string | The color of the icon | - |
iconSize | string | The size (width and height) of the icon | - |
isDisabled | boolean | - | |
isFullWidth | boolean | If `true`, the select element will span the full width of its parent | - |
isInvalid | boolean | If `true`, the form control will be invalid. This has 2 side effects: - The `FormLabel` and `FormErrorIcon` will have `data-invalid` set to `true` - The form element (e.g, Input) will have `aria-invalid` set to `true` | - |
isReadOnly | boolean | If `true`, the form control will be readonly | - |
isRequired | boolean | If `true`, the form control will be required. This has 2 side effects: - The `FormLabel` will show a required indicator - The form element (e.g, Input) will have `aria-required` set to `true` | - |
rootProps | RootProps | Props to forward to the root `div` element | - |
size | string | - | |
variant | string | - |