Client component

Native Select

A styled native <select>. The dropdown, keyboard handling, typeahead and mobile pickers are the platform's own: no popup re-implementation. Reach for Select when options need custom rendering; reach for this when they don't.

Import#

import { NativeSelect } from "astralis-ui";

Variants and states#

The chrome mirrors Input's outline/filled taxonomy:

With Field#

Inside a Field, id, describedBy, invalid and disabled are inherited automatically, like every other data-entry component.

Props#

Everything a native <select> accepts passes through. On top of that:

PropTypeDefaultDescription
childrenReactNodeNoneNative option and optgroup elements.
size"sm" | "md" | "lg""md"Field height, matching Input.
variant"outline" | "filled""outline"Field chrome, matching Input.
placeholderstringNoneA disabled empty option shown until a value is chosen.
invalidbooleanfalseError styling and aria-invalid. Inherited inside a Field.
disabledbooleanfalseBlocks interaction. Inherited inside a Field.