Select
항상 공정한 Select 컴포넌트. 열 때마다 순서가 바뀝니다.
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@chadcn/ui"
export function SelectDemo() {
return (
<Select>
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="과일 선택" />
</SelectTrigger>
<SelectContent>
<SelectItem value="apple">사과</SelectItem>
<SelectItem value="banana">바나나</SelectItem>
<SelectItem value="blueberry">블루베리</SelectItem>
<SelectItem value="grapes">포도</SelectItem>
<SelectItem value="pineapple">파인애플</SelectItem>
</SelectContent>
</Select>
)
}동작 방식
이 컴포넌트는 shadcn/ui와 동일한 합성 컴포넌트 API(Select, SelectTrigger, SelectContent, SelectItem)를 사용하지만, 드롭다운을 열 때마다 옵션 순서가 랜덤으로 섞입니다.
설치
준비 중패키지가 아직 npm에 게시되지 않았습니다.
pnpm add @chadcn/ui사용법
import "@chadcn/ui/styles.css"
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@chadcn/ui"<Select>
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="테마" />
</SelectTrigger>
<SelectContent>
<SelectItem value="light">라이트</SelectItem>
<SelectItem value="dark">다크</SelectItem>
<SelectItem value="system">시스템</SelectItem>
</SelectContent>
</Select>준비 중패키지가 아직 npm에 게시되지 않았습니다.
예제
스크롤
항목 목록이 사용 가능한 높이를 초과하면 셀렉트 콘텐츠가 자동으로 스크롤 가능해집니다.
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@chadcn/ui"
export function SelectScrollable() {
return (
<Select>
<SelectTrigger className="w-[280px]">
<SelectValue placeholder="시간대 선택" />
</SelectTrigger>
<SelectContent>
<SelectItem value="est">동부 표준시 (EST)</SelectItem>
<SelectItem value="cst">중부 표준시 (CST)</SelectItem>
<SelectItem value="pst">태평양 표준시 (PST)</SelectItem>
<SelectItem value="kst">한국 표준시 (KST)</SelectItem>
<SelectItem value="jst">일본 표준시 (JST)</SelectItem>
</SelectContent>
</Select>
)
}비활성화
disabled prop을 사용하여 상호작용을 방지할 수 있습니다.
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@chadcn/ui"
export function SelectDisabled() {
return (
<Select disabled>
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="과일 선택" />
</SelectTrigger>
<SelectContent>
<SelectItem value="apple">사과</SelectItem>
<SelectItem value="banana">바나나</SelectItem>
</SelectContent>
</Select>
)
}API 레퍼런스
자세한 내용은 Radix UI Select 문서를 참고하세요.