Lynx

Checkbox

사용자가 하나 이상의 옵션을 선택할 수 있게 해주는 컴포넌트입니다. 목록에서 여러 항목을 선택하거나 약관 동의와 같은 선택적 작업에 사용됩니다.

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

문서 미리보기에서는 아이콘 색상이 적용되지 않아요. 아이콘의 실제 색상은 QR 코드 탭에서 Lynx Explorer를 실행해 확인할 수 있어요.

Installation

npx @seed-design/cli@latest add ui:checkbox

Props

CheckboxGroup

Prop

Type

label?React.ReactNode
indicator?React.ReactNode
showRequiredIndicator?boolean | undefined
description?React.ReactNode
errorMessage?React.ReactNode
style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined
required?boolean | undefined
readOnly?boolean | undefined

Checkbox

Prop

Type

label?React.ReactNode
checked?boolean | undefined
defaultChecked?boolean | undefined
indeterminate?boolean | undefined
onCheckedChange?((checked: boolean) => void) | undefined
style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined

Checkmark

Prop

Type

style?CSSProperties | undefined
className?string | undefined
checked?boolean | undefined
indeterminate?boolean | undefined
defaultChecked?boolean | undefined
onCheckedChange?((checked: boolean) => void) | undefined

접근성 이름

Checkbox.Root는 기본적으로 접근성 요소로 노출됩니다. checkbox 역할과 현재 선택 상태, 비활성 상태도 전달합니다. Registry Checkbox에 문자열 label을 전달하면 화면의 문구를 accessibility-label에도 연결합니다. 문자열이 아닌 label이나 children으로 문구를 구성할 때는 같은 내용을 accessibility-label에 직접 전달하세요.

Examples

Sizes

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

Tones and Variants

Brand

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

Neutral

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

Indeterminate

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

Weights

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

Long Label

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

Disabled

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

Listening to Value Changes

onCheckedChange로 체크박스의 선택 상태 변경을 감지할 수 있습니다.

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

Use Cases

Using Checkmark

Lynx Registry의 Checkmark는 자체 Checkbox.Root를 포함합니다. 단독으로 사용할 때는 accessibility-label을 전달하세요. 문구까지 같은 탭 영역에 넣으려면 Registry Checkboxchildren을 사용합니다. 이때 accessibility-label도 직접 전달하세요.

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

Fieldset Integration

CheckboxGroup을 사용하여 여러 체크박스를 그룹화하고 label, description, errorMessage 등의 Fieldset 관련 prop을 사용할 수 있습니다.

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

웹 버전과의 차이

Lynx Checkbox는 React Checkbox와 다음과 같은 차이가 있습니다.

  • 아이콘 주입 방식: snippet의 CheckboxCheckmark@karrotmarket/lynx-monochrome-icon의 check / minus icon을 자동으로 주입합니다. compound component를 직접 조합할 때는 Checkbox.Indicator에 Lynx monochrome icon을 전달해야 합니다. raw <svg> 주입은 Lynx 범위 밖입니다.
  • 오류 안내 렌더링: React는 오류가 표시될 때 description을 접근성 트리에 남기지만, Lynx에는 DOM의 visually hidden 처리 방식이 없어 화면과 접근성 트리에서 description을 제외하고 errorMessage만 렌더링합니다.
  • 이벤트 핸들링: onChange 대신 onCheckedChange만 노출합니다. tap 핸들러는 Root 내부에서 소유합니다.
  • Pressed 상태: 웹의 data-active 대신 내부 press state를 checkmark recipe의 pressed boolean variant로 전달합니다.
  • Scale Feedback: Lynx는 눌림 상태를 색상으로 표현하며 React의 --seed-checkmark-feedback-scale CSS 변수는 제공하지 않습니다.
  • 접근성 속성: HTML <label> / <input> 대신 네이티브 <view> / <text> 요소를 렌더링합니다. Checkbox.Rootaccessibility-element, accessibility-role-description, accessibility-value로 역할과 선택 상태를 전달합니다.
  • Compound 구조: Checkbox.RootCheckbox.ControlCheckbox.Indicator + Checkbox.Label 구성과 Context로 상태와 variant를 공유하는 흐름은 동일합니다.
  • ref forwarding: Checkbox, Checkmark, CheckboxGroup은 Root view로 ref를 전달합니다. 웹 snippet처럼 hidden input ref를 제공하지 않습니다.

Lynx 미지원 기능

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

런타임 모델 차이로 제외

기능웹 대응설명
CheckboxHiddenInput<input type="checkbox">Lynx에 HTML form 제출 모델 없음
inputPropshidden input propsLynx snippet은 hidden input을 렌더링하지 않음
개별 Checkboxname / value / required / invalidform field propsLynx에 native form 제출 모델 없음
React Hook Form 예제HTML form과 hidden input 연동앱 상태와 checked / onCheckedChange를 직접 연결해야 함
focus / focusVisible키보드 포커스Lynx에 키보드 포커스 개념 없음
onChange (raw DOM event)React.ChangeEvent의미 없음. onCheckedChange로 대체
weight="default" / "stronger"deprecated 호환 매핑Lynx는 "regular" / "bold"만 노출

Last updated on

목차