React Select Component
Select
React select component. Customize the native `<select>`s with custom CSS that changes the element's initial appearance.
Other frameworks
CoreUI components are available as native Angular, Bootstrap (Vanilla JS), and Vue components. To learn more please visit the following pages.
On this page
Default#
<CFormSelect aria-label="Default select example" options={[ 'Open this select menu', { label: 'One', value: '1' }, { label: 'Two', value: '2' }, { label: 'Three', value: '3', disabled: true } ]}/>
You can also add options manually
<CFormSelect aria-label="Default select example"> <option>Open this select menu</option> <option value="1">One</option> <option value="2">Two</option> <option value="3" disabled>Three</option></CFormSelect>
Sizing#
You may also choose from small and large custom selects to match our similarly sized text inputs.
<CFormSelect size="lg" className="mb-3" aria-label="Large select example"> <option>Open this select menu</option> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option></CFormSelect><CFormSelect size="sm" className="mb-3" aria-label="Small select example"> <option>Open this select menu</option> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option></CFormSelect>
The multiple
attribute is also supported:
<CFormSelect size="lg" multiple aria-label="Multiple select example"> <option>Open this select menu</option> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option></CFormSelect>
As is the htmlSize
property:
<CFormSelect htmlSize={3} multiple aria-label="size 3 select example"> <option>Open this select menu</option> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option></CFormSelect>
Disabled#
Add the disabled
boolean attribute on a select to give it a grayed out appearance and remove pointer events.
<CFormSelect aria-label="Disabled select example" disabled> <option>Open this select menu</option> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option></CFormSelect>
Customizing#
SASS variables#
$form-select-padding-y: $input-padding-y !default;$form-select-padding-x: $input-padding-x !default;$form-select-font-family: $input-font-family !default;$form-select-font-size: $input-font-size !default;$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image$form-select-font-weight: $input-font-weight !default;$form-select-line-height: $input-line-height !default;$form-select-color: $input-color !default;$form-select-bg: $input-bg !default;$form-select-disabled-color: null !default;$form-select-disabled-bg: $input-disabled-bg !default;$form-select-disabled-border-color: $input-disabled-border-color !default;$form-select-bg-position: right $form-select-padding-x center !default;$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions$form-select-indicator-color: $gray-800 !default;$form-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>") !default;
$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
$form-select-border-width: $input-border-width !default;$form-select-border-color: $input-border-color !default;$form-select-border-radius: $input-border-radius !default;$form-select-box-shadow: var(--cui-box-shadow-inset) !default;
$form-select-focus-border-color: $input-focus-border-color !default;$form-select-focus-width: $input-focus-width !default;$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;
$form-select-padding-y-sm: $input-padding-y-sm !default;$form-select-padding-x-sm: $input-padding-x-sm !default;$form-select-font-size-sm: $input-font-size-sm !default;$form-select-border-radius-sm: $input-border-radius-sm !default;
$form-select-padding-y-lg: $input-padding-y-lg !default;$form-select-padding-x-lg: $input-padding-x-lg !default;$form-select-font-size-lg: $input-font-size-lg !default;$form-select-border-radius-lg: $input-border-radius-lg !default;
$form-select-transition: $input-transition !default;
API#
CFormSelect#
import { CFormSelect } from '@coreui/react'// orimport CFormSelect from '@coreui/react/src/components/form/CFormSelect'
Property | Description | Type | Default |
---|---|---|---|
className | A string of all className you want applied to the component. | string | - |
feedback 4.2.0+ | Provide valuable, actionable feedback. | ReactNode | - |
feedbackInvalid 4.2.0+ | Provide valuable, actionable feedback. | ReactNode | - |
feedbackValid 4.2.0+ | Provide valuable, actionable invalid feedback when using standard HTML form validation which applied two CSS pseudo-classes, :invalid and :valid . | ReactNode | - |
floatingClassName 4.5.0+ | A string of all className you want applied to the floating label wrapper. | string | - |
floatingLabel 4.2.0+ | Provide valuable, actionable valid feedback when using standard HTML form validation which applied two CSS pseudo-classes, :invalid and :valid . | ReactNode | - |
htmlSize | Specifies the number of visible options in a drop-down list. | number | - |
invalid | Set component validation state to invalid. | boolean | - |
label 4.2.0+ | Add a caption for a component. | ReactNode | - |
onChange | Method called immediately after the value prop changes. | ChangeEventHandler<HTMLSelectElement> | - |
options | Options list of the select component. Available keys: label , value , disabled .Examples: - options={[{ value: 'js', label: 'JavaScript' }, { value: 'html', label: 'HTML', disabled: true }]} - options={['js', 'html']} | Option[] | string[] | - |
size | Size the component small or large. | 'sm' | 'lg' | - |
text 4.2.0+ | Add helper text to the component. | ReactNode | - |
tooltipFeedback 4.2.0+ | Display validation feedback in a styled tooltip. | boolean | - |
valid | Set component validation state to valid. | boolean | - |
value | The value attribute of component. | string | number | string[] | - |