Accordion
Base UI Accordion의 상태 관리와 접근성 연결을 유지하면서 열린 항목을 inset 표면으로 표현합니다. multiple 옵션과 controlled·uncontrolled 사용을 모두 지원합니다.
@neumorphism-ui/accordion미리보기
설치
설치: accordion
npx shadcn@latest add @neumorphism-ui/accordionCLI가 npm 의존성, base 토큰, utils와 컴포넌트 소스를 순서대로 확인하고 설치합니다.
Registry를 처음 사용한다면 namespace 설정 을 먼저 완료하세요.
사용법
Import
Accordion import 코드
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion"Example
Accordion 사용 코드
<Accordion defaultValue={["shipping"]}>
<AccordionItem value="shipping">
<AccordionTrigger>배송은 얼마나 걸리나요?</AccordionTrigger>
<AccordionContent>
주문 후 영업일 기준 2–3일 안에 발송됩니다.
</AccordionContent>
</AccordionItem>
<AccordionItem value="returns">
<AccordionTrigger>반품할 수 있나요?</AccordionTrigger>
<AccordionContent>
수령 후 14일 이내에 반품을 신청할 수 있습니다.
</AccordionContent>
</AccordionItem>
</Accordion>API 레퍼런스
| 컴포넌트 | 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|---|
Accordion | multiple | boolean | false | 여러 항목을 동시에 펼칠 수 있게 합니다. |
Accordion | value / defaultValue | string[] | — | 열린 항목의 controlled 또는 초기 uncontrolled 값입니다. |
Accordion | onValueChange | (value) => void | — | 열린 항목이 바뀔 때 호출됩니다. |
AccordionItem | value필수 | string | — | 항목을 식별하는 고유 값입니다. |
AccordionItem | disabled | boolean | false | 항목의 trigger를 비활성화합니다. |
AccordionContent | keepMounted | boolean | false | 닫힌 상태에도 패널을 DOM에 유지합니다. |
접근성
- 01
Base UI가 trigger와 panel의 aria-expanded, aria-controls 연결을 관리합니다.
- 02
Tab으로 trigger에 접근하고 Enter 또는 Space로 항목을 열고 닫습니다.
- 03
AccordionTrigger는 실제 버튼이므로 제목 안에 별도의 중첩 버튼을 넣지 않습니다.