Theme Playground

Base UI

Select

Composable Radix-based single-select primitive with a styled trigger, grouped items, and popover content. Use it when you need a fully custom dropdown rather than a native select element.

Best for

form dropdownslocale pickersvariant selection

Import

import { Select } from "@enadhq/enad-react-sdk/client/ui-resolver"

When to use it

Use Select when the surface needs a custom-styled single-choice picker that still behaves like a proper control. It works well for region pickers, material selectors, variant choices, and compact sort controls.

If the page does not need custom trigger and panel composition, a native select can still be the simpler choice.

Slot strategy

Select is a small composition system, not a single monolithic component:

  • SelectTrigger defines the clickable field shell and size
  • SelectValue controls placeholder and selected value rendering
  • SelectContent owns the floating panel and positioning behavior
  • SelectGroup, SelectLabel, SelectItem, and SelectSeparator help structure larger menus

Keep the trigger width explicit when the surrounding layout needs consistency across several selects.

Behavior and theming guidance

Use size="sm" for tight filter rows and size="md" for regular forms. Reach for position="popper" and align when the panel needs to anchor more intentionally to the trigger in denser layouts.

The component already uses the shared input tokens for radius, height, and padding, so it should feel related to Input out of the box. Prefer those shared tokens over one-off panel sizing or trigger spacing overrides.

When a brand needs tighter control over the internal icons, prefer the explicit hooks on the public parts — for example SelectTrigger.iconClassName, SelectItem.iconClassName, and SelectItem.indicatorClassName — instead of broad descendant selectors against every svg inside the select.

Examples

Live examples you can edit directly in the sandbox.

3 examples

Basic

A simple single-select dropdown for locale pickers, sort controls, and standalone form fields.

Grouped options

Use SelectGroup and SelectLabel to organize larger lists into named sections such as materials, regions, or shipping speeds.

Trigger sizes

Compare `sm` and `md` when the same selection pattern needs to fit either a compact filter bar or a larger form field.

Component Sets

Preview the first example across the available component-set presets to compare tone, spacing, and structural defaults.

Props

PropTypeDefaultDescription
valuestring
No description yet.
defaultValuestring
No description yet.
onValueChangestring
No description yet.