Lynx

Switch

특정 옵션이나 설정을 켜거나 끌 수 있도록 돕는 토글 컴포넌트입니다.

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:switch

Props

Switch

Prop

Type

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

Switchmark

Prop

Type

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

Examples

Sizes

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

Tones

Brand

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

Neutral

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

Long Label

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

Disabled

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

Listening to Value Changes

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

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

Use Cases

Using Switchmark

Switch.ControlSwitch.Thumb을 직접 조합하면 레이블 배치를 자유롭게 구성할 수 있습니다.

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

웹 버전과의 차이

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

  • 이벤트 핸들링: onChange 대신 onCheckedChange만 노출합니다. tap 핸들러는 Switch 내부에서 소유합니다.
  • 렌더링 요소: HTML <label> / <input> 대신 네이티브 <view> / <text> 요소를 렌더링합니다.
  • Compound 구조: Switch.RootSwitch.ControlSwitch.Thumb / Switch.Label 구성과 Context로 상태/variant를 공유하는 흐름은 동일합니다. Control에 tone/size를 직접 전달해 Root를 override 하는 것도 지원합니다.
  • ref forwarding: 모든 서브 컴포넌트는 React.forwardRef를 지원합니다.

Lynx 미지원 기능

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

런타임 모델 차이로 제외

기능웹 대응설명
SwitchHiddenInput<input type="checkbox">Lynx에 HTML form 제출 모델 없음
name / value / required / invalidform field propsLynx에 native form 제출 모델 없음
focus / focusVisible키보드 포커스Lynx에 키보드 포커스 개념 없음
onChange (raw DOM event)React.ChangeEvent의미 없음. onCheckedChange로 대체

추후 CSS 지원 시 추가 예정

기능웹 대응설명
active (pressed) 모디파이어data-activeswitchmark recipe CSS에 pressed 상태가 정의되면 활성화

Last updated on

목차