콘텐츠로 이동
RefineUI

Radio

옵션 그룹에서 단일 선택.

Overview

Machine-readable contract from Component Spec.

component: radioexport: Radioversion: 1attributes: data-refineui=radio

Anatomy

Partdata-refineui
rootradio

States

ScopeCategoryValues
componentpseudofocus-visible
componentenvironmentforced-colors, dir

Accessibility

SlotElementNative
radioinputtrue

Keyboard

KeyActionNative
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 Radio/style → tokens.

SlotVariantPropertyTraceSemanticLight → foundationDark → foundationRecipe class
labeldefaultradio.label.defaultforegroundPrimaryprimaryBlackneutralWhitetext-refineui-alias-foreground-primary
labeldescriptionradio.label.descriptionforegroundSecondaryneutral600neutral350text-refineui-alias-foreground-secondary
labeldisabledradio.label.disabledforegroundDisabledneutral400neutral600text-refineui-alias-foreground-disabled
controldotradio.control.dotbackgroundBrandprimaryBlackprimaryGraybg-refineui-alias-background-brand
controldotHoverradio.control.dotHoverbackgroundBrandActiveneutralBlackprimaryLightGraybg-refineui-alias-background-brand-active
controlbackgroundradio.control.backgroundbackgroundPrimaryneutralWhiteneutral900bg-refineui-alias-background-primary
controldisabledDotradio.control.disabledDotforegroundDisabledneutral400neutral600bg-refineui-alias-foreground-disabled
controlborder.defaultradio.control.borderDefaultborderDefaultneutral300neutral650border-refineui-thin border-refineui-alias-border-default
controlborder.focusradio.control.borderFocusborderStrongneutral450neutral550border-refineui-thin border-refineui-alias-border-strong
controlborder.disabledradio.control.borderDisabledborderDisabledneutral250neutral700border-refineui-thin border-refineui-alias-border-disabled

Component token trace

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

TraceSemanticLight foundationDark foundationLightDark
radio.control.backgroundbackgroundPrimaryneutralWhiteneutral900#FFFFFF#1A1A1A
radio.control.borderDefaultborderDefaultneutral300neutral650#DBDBDB#5B5B5B
radio.control.borderDisabledborderDisabledneutral250neutral700#E0E0E0#404040
radio.control.borderFocusborderStrongneutral450neutral550#BBBBBB#8D8D8D
radio.control.disabledDotforegroundDisabledneutral400neutral600#CECECE#6C6C6C
radio.control.dotbackgroundBrandprimaryBlackprimaryGray#212121#D4D4D4
radio.control.dotHoverbackgroundBrandActiveneutralBlackprimaryLightGray#000000#E6E6E6
radio.label.defaultforegroundPrimaryprimaryBlackneutralWhite#212121#FFFFFF
radio.label.descriptionforegroundSecondaryneutral600neutral350#6C6C6C#D8D8D8
radio.label.disabledforegroundDisabledneutral400neutral600#CECECE#6C6C6C
npm install @refineui/react @refineui/tokens
import { Radio } from "@refineui/react";
<Radio name="plan" value="basic" label="Basic Plan" />
<Radio
name="plan"
value="pro"
label="Pro Plan"
description="Includes advanced features"
checked={selectedPlan === "pro"}
onChange={(e) => setSelectedPlan(e.target.value)}
/>
<Radio
name="plan"
value="enterprise"
label="Enterprise"
allowUncheck
/>
PropDefaultTypeDescription
labelstring라디오 버튼 레이블 텍스트.
descriptionstring레이블 아래 선택적 설명.
allowUncheckfalseboolean선택된 라디오 체크 해제를 허용합니다.
checkedboolean제어형 체크 상태.
valuestring폼 제출용 값.
namestring라디오 버튼 그룹용 name.
disabledfalseboolean인터랙션을 비활성화합니다.