Color Schemes for Select are not implemented in the default theme. You can extend the theme to implement them.
Select
Select component is a component that allows users pick a value from predefined options.
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#
The Select components is used when there are more than 5 options for users to pick from, otherwise consider using a radio group instead.
Here is a basic usage of the Select component.
<Select placeholder='Select option'><option value='option1'>Option 1</option><option value='option2'>Option 2</option><option value='option3'>Option 3</option></Select>
Changing the size#
The Select component comes in four sizes. The default is md.
xs(24px)sm(32px)md(40px)lg(48px)
<Stack spacing={3}><Select placeholder='extra small size' size='xs' /><Select placeholder='small size' size='sm' /><Select placeholder='medium size' size='md' /><Select placeholder='large size' size='lg' /></Stack>
Changing the appearance#
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.
<Stack spacing={3}><Select variant='outline' placeholder='Outline' /><Select variant='filled' placeholder='Filled' /><Select variant='flushed' placeholder='Flushed' /><Select variant='unstyled' placeholder='Unstyled' /></Stack>
Changing the icon#
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#
Even though the select comes with predefined styles, you can override pretty much any property. Here we'll override the background color.
<Selectbg='tomato'borderColor='tomato'color='white'placeholder='Woohoo! A new background color!'/>
Props#
The Select component composes Box so you can pass
all Box props, and native Select props in addition to these:
colorScheme
colorSchemestringerrorBorderColor
errorBorderColorThe border color when the select is invalid. Use color keys in `theme.colors` @example errorBorderColor = "red.500"
stringfocusBorderColor
focusBorderColorThe border color when the select is focused. Use color keys in `theme.colors` @example focusBorderColor = "blue.500"
stringicon
iconThe icon element to use in the select
React.ReactElementiconColor
iconColorThe color of the icon
stringiconSize
iconSizeThe size (width and height) of the icon
stringisDisabled
isDisabledbooleanisInvalid
isInvalidIf 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
booleanisReadOnly
isReadOnlyIf true, the form control will be readonly
booleanisRequired
isRequiredIf 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
booleanrootProps
rootPropsProps to forward to the root div element
RootPropssize
size"lg" | "md" | "sm" | "xs""md"variant
variant"outline" | "filled" | "flushed" | "unstyled""outline"The Select component is a multipart component. Read more about how to style multipart components in the style system docs.
This component has two parts: field and icon. You can find
more information in the source for the styles
here.
Example#
The following theme would change the color of the field to red.500, and change the fontSize of icon to 2xl.
import { extendTheme } from '@chakra-ui/react'const theme = extendTheme({components: {Select: {baseStyle: {field: {color: 'red.500',},icon: {fontSize: '2xl',},},},},})