본문으로 건너뛰기
언어

Native selectstandard

브라우저 기본 선택 상자(native select)를 입력 모양으로 다듬은 것입니다. shadcn base-nova 의 `native-select` 를 그대로 싣습니다. 검색이나 사용자 지정 모양이 필요하면 `select` 나 `combobox` 를 씁니다.

설치

pnpm
pnpm dlx shadcn@4.23.0 add @uikit/native-select

Default

native-select-example.tsx
import {  Example,  ExampleWrapper,} from "@/components/example"import {  Field,  FieldDescription,  FieldLabel,} from "@/components/ui/field"import {  NativeSelect,  NativeSelectOptGroup,  NativeSelectOption,} from "@/components/ui/native-select"
export default function NativeSelectExample() {  return (    <ExampleWrapper>      <NativeSelectBasic />      <NativeSelectWithGroups />      <NativeSelectSizes />      <NativeSelectWithField />      <NativeSelectDisabled />      <NativeSelectInvalid />    </ExampleWrapper>  )}
function NativeSelectBasic() {  return (    <Example title="Basic">      <NativeSelect aria-label="Select option">        <NativeSelectOption value="">Select a fruit</NativeSelectOption>        <NativeSelectOption value="apple">Apple</NativeSelectOption>        <NativeSelectOption value="banana">Banana</NativeSelectOption>        <NativeSelectOption value="blueberry">Blueberry</NativeSelectOption>        <NativeSelectOption value="grapes" disabled>          Grapes        </NativeSelectOption>        <NativeSelectOption value="pineapple">Pineapple</NativeSelectOption>      </NativeSelect>    </Example>  )}
function NativeSelectWithGroups() {  return (    <Example title="With Groups">      <NativeSelect aria-label="Select option">        <NativeSelectOption value="">Select a food</NativeSelectOption>        <NativeSelectOptGroup label="Fruits">          <NativeSelectOption value="apple">Apple</NativeSelectOption>          <NativeSelectOption value="banana">Banana</NativeSelectOption>          <NativeSelectOption value="blueberry">Blueberry</NativeSelectOption>        </NativeSelectOptGroup>        <NativeSelectOptGroup label="Vegetables">          <NativeSelectOption value="carrot">Carrot</NativeSelectOption>          <NativeSelectOption value="broccoli">Broccoli</NativeSelectOption>          <NativeSelectOption value="spinach">Spinach</NativeSelectOption>        </NativeSelectOptGroup>      </NativeSelect>    </Example>  )}
function NativeSelectSizes() {  return (    <Example title="Sizes">      <div className="flex flex-col gap-4">        <NativeSelect aria-label="Select option" size="sm">          <NativeSelectOption value="">Select a fruit</NativeSelectOption>          <NativeSelectOption value="apple">Apple</NativeSelectOption>          <NativeSelectOption value="banana">Banana</NativeSelectOption>          <NativeSelectOption value="blueberry">Blueberry</NativeSelectOption>        </NativeSelect>        <NativeSelect aria-label="Select option" size="default">          <NativeSelectOption value="">Select a fruit</NativeSelectOption>          <NativeSelectOption value="apple">Apple</NativeSelectOption>          <NativeSelectOption value="banana">Banana</NativeSelectOption>          <NativeSelectOption value="blueberry">Blueberry</NativeSelectOption>        </NativeSelect>      </div>    </Example>  )}
function NativeSelectWithField() {  return (    <Example title="With Field">      <Field>        <FieldLabel htmlFor="native-select-country">Country</FieldLabel>        <NativeSelect id="native-select-country">          <NativeSelectOption value="">Select a country</NativeSelectOption>          <NativeSelectOption value="us">United States</NativeSelectOption>          <NativeSelectOption value="uk">United Kingdom</NativeSelectOption>          <NativeSelectOption value="ca">Canada</NativeSelectOption>          <NativeSelectOption value="au">Australia</NativeSelectOption>        </NativeSelect>        <FieldDescription>Select your country of residence.</FieldDescription>      </Field>    </Example>  )}
function NativeSelectDisabled() {  return (    <Example title="Disabled">      <NativeSelect aria-label="Select option" disabled>        <NativeSelectOption value="">Disabled</NativeSelectOption>        <NativeSelectOption value="apple">Apple</NativeSelectOption>        <NativeSelectOption value="banana">Banana</NativeSelectOption>        <NativeSelectOption value="blueberry">Blueberry</NativeSelectOption>      </NativeSelect>    </Example>  )}
function NativeSelectInvalid() {  return (    <Example title="Invalid">      <NativeSelect aria-label="Select option" aria-invalid="true">        <NativeSelectOption value="">Error state</NativeSelectOption>        <NativeSelectOption value="apple">Apple</NativeSelectOption>        <NativeSelectOption value="banana">Banana</NativeSelectOption>        <NativeSelectOption value="blueberry">Blueberry</NativeSelectOption>      </NativeSelect>    </Example>  )}