Lynx

Accordion

관련된 정보 섹션을 접고 펼쳐 화면을 간결하게 구성하는 컴포넌트입니다.

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

Installation

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

Props

Accordion

Prop

Type

values?string[] | undefined
defaultValues?string[] | undefined
onValuesChange?((values: string[]) => void) | undefined
disabled?boolean | undefined
multiple?boolean | undefined
style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined

AccordionItem

Prop

Type

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

AccordionTrigger

Prop

Type

titleReact.ReactNode
description?React.ReactNode
prefix?React.ReactNode
suffixIcon?React.ReactElement<LynxIconElementProps, string | React.JSXElementConstructor<any>> | undefined
className?string | undefined
bindtap?EventHandler<BaseTouchEvent<Target>> | undefined
expandedAccessibilityValue?string | undefined
collapsedAccessibilityValue?string | undefined
style?CSSProperties | undefined

AccordionContent

Prop

Type

style?CSSProperties | undefined
children?React.ReactNode
className?string | undefined

Examples

Multiple

multiple을 설정하면 여러 항목을 동시에 펼칠 수 있습니다.

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

Disabled

Accordiondisabled는 전체 항목을 비활성화합니다. AccordionItem에 설정하면 해당 항목만 비활성화합니다.

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

Listening to Value Changes

valuesonValuesChange를 함께 사용해 펼쳐진 항목을 제어할 수 있습니다. 비제어 방식에서는 defaultValues를 사용합니다.

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

Web Version Differences

Lynx Accordion은 React 버전과 다음 차이가 있습니다.

  • Native elements: HTML heading, button, region 대신 Lynx <view><text>를 렌더링합니다.
  • Interaction: 키보드 탐색 대신 Trigger의 native tap 이벤트로 항목을 열고 닫습니다.
  • Accessibility: DOM ARIA 대신 accessibility-heading, accessibility-role-description, accessibility-value를 사용합니다.
  • Responsive size: Lynx preset은 viewport media query를 지원하지 않아 size="responsive"를 제공하지 않습니다.
  • Content transition: React 버전은 CSS custom property로 높이를 전달하고, Lynx 버전은 layoutchange로 콘텐츠 높이를 측정해 같은 duration과 easing의 transition을 적용합니다.

Unsupported Lynx Features

기능설명
asChildLynx에는 Slot 기반 polymorphic 렌더링이 없습니다.
headingLevelLynx의 heading 접근성 속성은 HTML heading level을 받지 않습니다.
DOM ARIA 연결aria-controls, aria-labelledby, role="region" 대신 Lynx native 접근성 속성을 사용합니다.
Arrow / Home / End 키 탐색Lynx native 화면에는 웹과 같은 키보드 포커스 모델이 없습니다.
size="responsive"Lynx preset은 viewport media query를 지원하지 않습니다.

Last updated on

목차