콘텐츠로 이동
RefineUI

Segmented Control

상호 배타적 옵션의 선형 집합.

Overview

Machine-readable contract from Component Spec.

component: segmented-controlexport: SegmentedControlversion: 1recipe: segmented-controltokens.visual: segmentedControlattributes: data-refineui=segmented-control

Anatomy

Partdata-refineui
rootsegmented-control
indicatorsegmented-control-indicator
itemsegmented-control-item

States

ScopeCategoryValues
componentpseudofocus-visible
componentenvironmentforced-colors, dir, prefers-contrast

Accessibility

SlotElementRoleRequired attributes
segmented-controldivradiogroup
segmented-control-itembuttonradioaria-checked: required=true, type: boolean

Keyboard

KeyActionNative
Enteractivatetrue
Spaceactivatetrue

Focus

SectionPropertyValue
visualrequiredtrue
visualselector:focus-visible
behaviorrovingtrue

Layout

PropertyValue
directionlogical
rtltrue

Variant

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

Recipe → Tokens

Slot bindings for variant="selected" — declared in segmented-control.recipe.ts.

SlotVariantPropertyTraceSemanticLight → foundationDark → foundationRecipe class
rootbackgroundsegmentedControl.barBackgroundbackgroundBrandSubtleprimaryLightGrayneutral800bg-refineui-alias-background-brand-subtle
rootbordersegmentedControl.barBorderborderDefaultneutral300neutral650border-refineui-alias-border-default
indicatorbackgroundsegmentedControl.selectedBackgroundbackgroundBrandprimaryBlackprimaryGraybg-refineui-alias-background-brand
itemforegroundsegmentedControl.itemForegroundforegroundSecondaryneutral600neutral350text-refineui-alias-foreground-secondary
itemselectedforegroundsegmentedControl.selectedForegroundforegroundOnBrandneutralWhiteneutralBlacktext-refineui-alias-foreground-on-brand

Component token trace

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

TraceSemanticLight foundationDark foundationLightDark
segmentedControl.barBackgroundbackgroundBrandSubtleprimaryLightGrayneutral800#E6E6E6#2A2A2A
segmentedControl.barBorderborderDefaultneutral300neutral650#DBDBDB#5B5B5B
segmentedControl.hoverForegroundforegroundPrimaryprimaryBlackneutralWhite#212121#FFFFFF
segmentedControl.itemDisabledForegroundforegroundDisabledneutral400neutral600#CECECE#6C6C6C
segmentedControl.itemForegroundforegroundSecondaryneutral600neutral350#6C6C6C#D8D8D8
segmentedControl.selectedBackgroundbackgroundBrandprimaryBlackprimaryGray#212121#D4D4D4
segmentedControl.selectedDisabledBackgroundbackgroundSurfaceDisabledneutral150neutral850#F0F0F0#222222
segmentedControl.selectedForegroundforegroundOnBrandneutralWhiteneutralBlack#FFFFFF#000000
segmentedControl.selectedHoverBackgroundbackgroundBrandHoverprimaryDarkGrayprimaryLightGray#4d4d4d#E6E6E6
npm install @refineui/react @refineui/tokens
import { SegmentedControl, SegmentedControlItem } from "@refineui/react";
<SegmentedControl value={view} onValueChange={setView}>
<SegmentedControlItem value="grid">Grid</SegmentedControlItem>
<SegmentedControlItem value="list">List</SegmentedControlItem>
</SegmentedControl>
PropDefaultTypeDescription
valuestring제어형 선택 값.
defaultValuestring비제어형 초기 값.
onValueChange(value: string) => void선택 변경 시 이벤트 핸들러.
PropDefaultTypeDescription
valuestring이 옵션의 고유 값(필수).
disabledfalseboolean이 옵션을 비활성화합니다.