Lynx

Select Box

명확한 테두리를 가진 컨테이너를 활용하여, 정의된 목록 중 하나 이상의 옵션을 선택하는 UI 요소입니다.

Engine ≥ 3.6
사용 가능 버전@seed-design/[email protected], @seed-design/[email protected]
Lynx 예제를 불러오는 중입니다.

Installation

npx @seed-design/cli@latest add ui:select-box

Props

Check Select Box

CheckSelectBoxGroup

Prop

Type

CheckSelectBox

Prop

Type

labelReact.ReactNode
description?React.ReactNode
prefixIcon?React.ReactElement<LynxIconElementProps, string | React.JSXElementConstructor<any>> | undefined
suffix?React.ReactNode
onCheckedChange?((checked: boolean) => void) | undefined

CheckSelectBoxCheckmark

고유 prop이 없습니다. className, style, children을 받습니다.

Radio Select Box

RadioSelectBoxRoot

Prop

Type

label?React.ReactNode
indicator?React.ReactNode
showRequiredIndicator?boolean | undefined
description?React.ReactNode
errorMessage?React.ReactNode
onValueChange?((value: string) => void) | undefined

RadioSelectBoxRoot는 label, description, errorMessage, invalid를 지원합니다. invalid가 true이고 errorMessage가 있으면 description 대신 오류 메시지를 표시합니다.

columns는 항목의 열 수를 지정합니다. className과 style은 그룹 바깥의 Root에 적용됩니다.

RadioSelectBoxItem

Prop

Type

labelReact.ReactNode
description?React.ReactNode
prefixIcon?React.ReactElement<LynxIconElementProps, string | React.JSXElementConstructor<any>> | undefined
suffix?React.ReactNode
valuestring

RadioSelectBoxRadiomark

Prop

Type

Examples

Customizing Label

label prop에 여러 요소를 조합한 사용자 정의 콘텐츠를 전달할 수 있습니다.

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

Listening to Value Changes

CheckSelectBox는 onCheckedChange를 사용하여 체크박스의 선택 상태 변경을 감지할 수 있습니다.

RadioSelectBoxRoot는 onValueChange를 사용하여 라디오 버튼의 선택 값 변경을 감지할 수 있습니다.

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

Grid Layout (Columns)

columns prop을 사용하여 여러 열로 배치할 수 있습니다. columns가 1보다 크면 하위 요소의 layout이 자동으로 "vertical"로 설정됩니다.

가로형(layout="horizontal")은 단일 컬럼으로 배치합니다. 여러 열로 구성한 그룹에서 개별 항목을 가로형으로 바꾸려면, 아래 예제처럼 래퍼가 모든 열을 차지하도록 gridColumnStart와 gridColumnEnd를 지정해 전체 너비를 확보하세요.

래퍼는 HStack align="stretch"로 구성해 내부 Select Box가 grid 행 높이를 채우도록 합니다.

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

With Suffix

suffix prop을 사용하여 체크마크, 라디오 마크, 또는 커스텀 요소를 표시할 수 있습니다. CheckSelectBoxCheckmark와 RadioSelectBoxRadiomark를 사용하거나, 아이콘이나 텍스트 등 자유로운 요소를 전달할 수 있습니다.

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

footer prop으로 추가 콘텐츠를 표시할 수 있습니다. footerVisibility prop으로 footer의 표시 조건을 제어할 수 있습니다.

  • "when-selected" (기본값): 항목이 선택되었을 때만 표시
  • "when-not-selected": 항목이 선택되지 않았을 때만 표시
  • "always": 항상 표시
Lynx 예제를 불러오는 중입니다.

웹 버전과의 차이

  • Lynx에는 native form 제출 모델이 없어 React Hook Form, hidden input, name, required를 제공하지 않습니다. 선택 값과 오류 상태를 앱에서 관리하세요.
  • 라디오 그룹은 label, description, error message를 지원합니다. 체크박스 그룹은 React Registry의 Fieldset 연동을 제공하지 않습니다.
  • 브라우저 키보드 focus 대신 native tap과 접근성 탐색을 사용합니다.
  • 각 항목은 독립된 접근성 요소입니다. raw <text>를 포함하거나 텍스트가 없는 항목에는 accessibility-label을 지정하세요.

Last updated on

목차