EF
EF Design System

Select

A custom dropdown select with keyboard-friendly interactions, custom arrow icon, and open/selected states.

Default

tsx
<Select
  label="Favorite Fruit"
  options={[
    { value: "apple", label: "Apple" },
    { value: "banana", label: "Banana" },
  ]}
  value={fruit}
  onChange={setFruit}
/>

Pre-selected

tsx
<Select label="Role" value="editor" options={roles} onChange={setRole} />

Disabled

tsx
<Select disabled label="Plan" value="pro" options={plans} />

Props

PropTypeDefaultDescriptionRequired
labelstring-Label above the selectNo
optionsArray<{ value, label }>-List of selectable optionsNo
valuestring-Currently selected valueNo
onChange(value: string) => void-Callback when selection changesNo
placeholderstring"Select an option"Text shown when no value is selectedNo
disabledbooleanfalseDisables the selectNo

Usage Guidelines

  • Use Select when there are 4+ options. For 2-3, consider radio buttons or toggle.
  • Always provide a descriptive placeholder when no default is selected.
  • The dropdown closes on outside click for a clean experience.
  • Custom arrow rotates to indicate open/closed state.