Native Select

A native <select> with a sketch border and hand-drawn chevron — no custom popover.

<NativeSelect options={options} defaultValue="draft" roughness={1.5} />

CLI install

npx doodleui-react add native-select

Usage

import { NativeSelect } from "doodleui-react";

<NativeSelect
  defaultValue="draft"
  options={[
    { value: "draft", label: "Draft" },
    { value: "done", label: "Done" },
  ]}
/>

Props

PropTypeDefaultNotes
optionsNativeSelectOption[]undefinedOptional value/label pairs. Omit to use <option> children.
animatebooleantrueDraw-in the border on mount. Overrides DoodleUIProvider. Reduced motion disables this unless the provider set forceAnimate.
roughnessnumber1.5How wobbly the stroke is. 0 is almost geometric. 3+ is messy.
seednumberprovider / randomLocks the sketch. Omit to follow SketchSeedProvider (Shuffle) or a mount-time random seed.
sketchColorstring#1f1d1aStroke color. Also tints primary/accent fills where relevant.
classNamestringundefinedPassed through to the root element.
styleCSSPropertiesundefinedPassed through to the root element.