Lynx

RadioGroup

사용자가 여러 옵션 중 하나만 선택할 수 있게 하는 라디오 그룹 컴포넌트입니다.

Engine ≥ 3.6
사용 가능 버전@seed-design/lynx-react@0.1.0, @seed-design/lynx-css@0.1.0
Lynx 예제를 불러오는 중입니다.

Installation

npx @seed-design/cli add ui:radio-group

Props

RadioGroup

Prop

Type

value?string | undefined
defaultValue?string | undefined
onValueChange?((value: string) => void) | undefined
style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined

RadioGroupItem

Prop

Type

label?React.ReactNode
valuestring
disabled?boolean | undefined
style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined

Radiomark

Prop

Type

className?string | undefined
style?CSSProperties | undefined

Examples

Sizes

Lynx 예제를 불러오는 중입니다.

Tones

Brand

Lynx 예제를 불러오는 중입니다.

Neutral

Lynx 예제를 불러오는 중입니다.

Weights

Lynx 예제를 불러오는 중입니다.

Long Label

Lynx 예제를 불러오는 중입니다.

Disabled

RadioGroup.Rootdisabled는 그룹 전체를 비활성화합니다. 개별 RadioGroup.Item도 따로 비활성화할 수 있습니다.

Lynx 예제를 불러오는 중입니다.

Listening to Value Changes

RadioGroup.RootonValueChange로 선택 값 변경을 감지할 수 있습니다. Controlled 모드에서는 valueonValueChange를 함께 사용합니다.

Lynx 예제를 불러오는 중입니다.

Use Cases

Using Radiomark

RadioGroup.ItemControlRadioGroup.ItemIndicator를 직접 조합하면 선택 상태를 공유하면서 항목의 배치를 바꿀 수 있습니다.

Lynx 예제를 불러오는 중입니다.

웹 버전과의 차이

Lynx RadioGroup은 React RadioGroup과 다음과 같은 차이가 있습니다.

  • Field wrapper 없음: React snippet의 label, description, errorMessage, indicator, showRequiredIndicator 같은 field 관련 prop은 Lynx snippet에서 제공하지 않습니다.
  • 아이콘 렌더링 방식: 기본 RadioGroup.ItemIndicator<view> dot으로 렌더됩니다. custom icon을 전달할 때는 @karrotmarket/lynx-monochrome-icon의 monochrome icon 컴포넌트를 사용해야 하며 raw <svg> 주입은 Lynx 범위 밖입니다.
  • 이벤트 핸들링: onChange 대신 onValueChange(value: string)만 노출합니다. tap 핸들러는 item 내부에서 소유합니다.
  • Pressed 상태: 웹의 data-active 대신 내부 press state를 radiomark recipe의 pressed boolean variant로 전달합니다.
  • 렌더링 요소: HTML <label> / <input type="radio"> 대신 네이티브 <view> / <text> 요소를 렌더링합니다.
  • Strict containment: RadioGroupItem, Radiomark, RadioGroup.ItemControl, RadioGroup.ItemIndicator, RadioGroup.ItemLabel은 반드시 RadioGroup.RootRadioGroup.Item의 적절한 context 안에서 사용해야 합니다. Radiomark는 standalone primitive가 아니라 item context 안에서 ItemControlItemIndicator를 묶는 snippet helper입니다.

Lynx 미지원 기능

현재 Lynx 플랫폼 제약으로 다음 기능이 지원되지 않습니다.

런타임 모델 차이로 제외

기능웹 대응설명
RadioGroupItemHiddenInput<input type="radio">Lynx에 HTML form 제출 모델 없음
name / required / invalidform field propsLynx에 native form 제출 모델 없음
inputProps내부 input prop 전달Lynx에는 전달할 HTML input이 없음
label / description / errorMessage on RadioGroupfield wrapper propsLynx에 대응 field wrapper snippet을 제공하지 않음
focus / focusVisible키보드 포커스Lynx에 키보드 포커스 개념 없음
onChange (raw DOM event)React.ChangeEvent의미 없음. onValueChange로 대체

Last updated on

목차