Lynx

List

가로 행으로 구성된 콘텐츠를 표현하는 컴포넌트입니다.

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

Installation

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

Usage

import { ListHeader } from "@/components/ui/list-header";
import { List, ListDivider, ListItem } from "@/components/ui/list";

<view>
  <ListHeader>리스트 헤더</ListHeader>
  <List>
    <ListItem title="리스트 아이템 1" />
    <ListDivider />
    <ListItem title="리스트 아이템 2" />
  </List>
</view>

Props

ListHeader

Prop

Type

List

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

List Items

Examples

Using ListHeader

ListHeader는 List 밖에 둡니다. 헤더에 액션이 필요하면 형제 요소로 배치하세요.

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

Affixes (Prefix/Suffix)

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

Clickable List Items

ListButtonItem을 사용하면 리스트 항목 전체를 탭할 수 있습니다. Lynx에는 ListLinkItem이 없으므로 화면 이동은 bindtap에서 앱 라우터를 호출합니다.

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

inputs in List Items

ListSwitchItem, ListCheckItem, ListRadioItem을 사용하면 항목 전체를 탭해 값을 바꿀 수 있습니다. snippet은 각 컨트롤을 기본 suffix로 렌더링합니다. suffix={null}을 전달하면 기본 컨트롤을 숨길 수 있습니다.

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

Accessibility

ListButtonItem은 title에서 접근성 이름을 만듭니다. 제목에 <text>나 <view>를 직접 넣거나 부가 텍스트가 섞이면 accessibility-label을 지정하세요.

선택 항목은 행 전체를 하나의 접근성 요소로 노출하고 선택 상태를 전달합니다. ListRadioItem은 Registry snippet의 RadioGroup 안에 두고 그룹의 접근성 이름을 지정하세요.

import { List, ListRadioItem } from "@/components/ui/list";
import { RadioGroup } from "@/components/ui/radio-group";

<RadioGroup defaultValue="짜장" accessibility-label="점심 메뉴">
  <List>
    <ListRadioItem value="짜장" title="짜장" />
    <ListRadioItem value="짬뽕" title="짬뽕" />
  </List>
</RadioGroup>

Disabled

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

Variants

Highlighted

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

With Bottom Sheet

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

Alignment

React의 alignItems prop은 Lynx List에서 지원하지 않습니다. 상단 정렬이 필요하면 슬롯을 직접 배치한 별도 레이아웃을 사용하세요.

Border Radius

React의 itemBorderRadius prop은 Lynx List에서 지원하지 않습니다. Lynx 항목의 눌림 반경은 Recipe가 정한 값을 사용합니다. 둥근 카드 안에서는 바깥 컨테이너에 border-radius와 overflow: hidden을 적용하세요.

웹 버전과의 차이

  • 항목을 탭할 때는 onClick 대신 bindtap을 사용합니다.
  • 링크 항목은 ListButtonItem의 bindtap에서 앱 라우터를 호출합니다.
  • 선택 항목은 행 전체가 컨트롤의 상태와 접근성 값을 가집니다.

Lynx 미지원 기능

  • as와 asChild를 지원하지 않습니다.
  • itemBorderRadius 대신 바깥 컨테이너에 반경과 clipping을 적용하세요.
  • alignItems 대신 별도 레이아웃을 구성하세요.
  • Header의 제목과 액션은 형제 요소로 배치하세요.

Last updated on

목차