콘텐츠로 이동
RefineUI

Select

목록에서 고르는 드롭다운 선택 컨트롤.

Overview

Machine-readable contract from Component Spec.

component: selectexport: Selectversion: 1tokens.visual: selectattributes: data-refineui=select-trigger

Anatomy

Partdata-refineui
rootselect-trigger
select_itemselect-item
select_menuselect-menu

Variants

AxisValues
appearancefilled, plain

States

ScopeCategoryValues
componentpseudofocus-visible
componentcomponentdata-state: open, closed, pressed, selected
componentenvironmentforced-colors, dir
select-triggercomponentdata-state: open, closed
select-itemcomponentdata-state: pressed, selected

Accessibility

SlotElementRoleRequired attributes
select-triggerbuttoncomboboxaria-expanded: required=true, type: boolean
select-menudivlistbox
select-itemdivoptionaria-selected: required=true, type: boolean

Keyboard

KeyActionNative
Escapeclose
ArrowDownnext-trigger
ArrowUpprevious-trigger
Homefirst-trigger
Endlast-trigger
Enteractivatetrue
Spaceactivatetrue

Focus

SectionPropertyValue
visualrequiredtrue
visualselector:focus-visible

Layout

PropertyValue
directionlogical
rtltrue

Variant

Select a recipe variant — preview and Recipe → Tokens update together.

Recipe → Tokens

Slot bindings for variant="default" — declared in Select/style → tokens.

SlotVariantPropertyTraceSemanticLight → foundationDark → foundationRecipe class
triggerbackgroundselect.backgroundbackgroundPrimaryneutralWhiteneutral900bg-refineui-alias-background-primary
triggerborderselect.border.defaultborderDefaultneutral300neutral650border-refineui-alias-border-default
triggerforegroundselect.textforegroundPrimaryprimaryBlackneutralWhitetext-refineui-alias-foreground-primary
triggerplaceholderselect.placeholderforegroundPlaceholderneutral450neutral500text-refineui-alias-foreground-placeholder

Component token trace

All paths in token-trace-v2.json prefixed with select.

TraceSemanticLight foundationDark foundationLightDark
select.backgroundbackgroundPrimaryneutralWhiteneutral900#FFFFFF#1A1A1A
select.border.defaultborderDefaultneutral300neutral650#DBDBDB#5B5B5B
select.border.disabledborderDisabledneutral250neutral700#E0E0E0#404040
select.border.errorborderErrorred500red500#FF6969#FF6969
select.border.successborderSuccessgreen500green500#26B12D#26B12D
select.disabledBackgroundbackgroundSurfaceDisabledneutral150neutral850#F0F0F0#222222
select.placeholderforegroundPlaceholderneutral450neutral500#BBBBBB#A4A4A4
select.textforegroundPrimaryprimaryBlackneutralWhite#212121#FFFFFF
npm install @refineui/react @refineui/tokens
import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from "@refineui/react";
<Select value={country} onValueChange={setCountry}>
<SelectTrigger>
<SelectValue placeholder="Select a country" />
</SelectTrigger>
<SelectContent>
<SelectItem value="us">United States</SelectItem>
<SelectItem value="ca">Canada</SelectItem>
<SelectItem value="uk">United Kingdom</SelectItem>
</SelectContent>
</Select>
<Select size="lg" fullWidth>
<SelectTrigger>
<SelectValue placeholder="Choose an option" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Fruits</SelectLabel>
<SelectItem value="apple">Apple</SelectItem>
<SelectItem value="banana">Banana</SelectItem>
</SelectGroup>
<SelectSeparator />
<SelectItem value="other">Other</SelectItem>
</SelectContent>
</Select>
PropDefaultTypeDescription
valuestring제어형 선택 값.
defaultValuestring비제어형 초기 값.
onValueChange(value: string) => void선택 변경 시 이벤트 핸들러.
openboolean제어형 열림 상태.
onOpenChange(open: boolean) => void열림 상태 변경 시 이벤트 핸들러.
placeholderstring플레이스홀더 텍스트.
size"md""sm" | "md" | "lg"컨트롤 높이 티어.
fullWidthfalseboolean부모 전체 너비로 늘어납니다.
disabledfalseboolean인터랙션을 비활성화합니다.

드롭다운을 여는 버튼.

PropDefaultTypeDescription
appearance"filled""filled" | "plain"조합 표면용 필드 크롬 vs flush 트리거(Footer 로케일, Calendar 캡션).

선택된 값 또는 플레이스홀더를 표시합니다.

드롭다운 패널 컨테이너.

PropDefaultTypeDescription
position"item-aligned""item-aligned" | "popper"포지셔닝 전략.
PropDefaultTypeDescription
valuestring항목 값(필수).
disabledfalseboolean이 항목을 비활성화합니다.

관련 항목을 그룹화합니다.

그룹 레이블.

항목 사이 시각적 구분선.