Accordion

Accordion

여러 섹션을 접었다 펼 수 있는 Nuxt 아코디언 컴포넌트입니다. FAQ·설정·필터 패널 등에 사용하며, aria-expanded · aria-controls로 접근성을 보장합니다.

기본

FAQ처럼 항목 사이 간격이 있는 accordion_card 스킨입니다. 한 번에 하나의 패널만 열리며(단일 모드), 화살표 키로 트리거 간 포커스를 이동할 수 있습니다.

수령 후 7일 이내 마이페이지에서 신청할 수 있습니다. 단순 변심 반품 시 왕복 배송비가 부과됩니다.

다중 열기

multiple prop을 지정하면 여러 패널을 동시에 펼칠 수 있습니다.

이메일·푸시 알림 수신 여부를 설정합니다.

프로필 공개 범위와 데이터 다운로드를 관리합니다.

플러시

accordion_flush로 외곽 테두리 없이 구분선만 표시합니다. 사이드바·설정 목록에 적합합니다.

언어, 시간대, 테마 등 기본 환경 설정입니다.

보더

accordion_bordered로 항목을 한 덩어리로 붙입니다. 설정·목록형 UI에 적합합니다.

이메일·푸시 알림 수신 여부를 설정합니다.

카드

accordion_card로 각 항목을 독립 카드로 분리합니다. 대시보드·위젯 그룹에 사용합니다.

목표, 일정, 이해관계자 정보를 요약합니다.

보조 정보

extra 슬롯으로 배지·메타 텍스트를 트리거 오른쪽에 배치합니다.

답변이 필요한 고객 문의 3건이 있습니다.

비활성

disabled prop을 지정하면 is-disabled 클래스와 함께 트리거가 비활성화됩니다.

누구나 열람할 수 있는 가이드 문서입니다.

크기

size prop으로 트리거와 본문 패딩을 조절합니다.

작은 아코디언 — 좁은 패딩.

큰 아코디언 — 넓은 패딩과 큰 글자.

슬라이드

effect="slide"로 펼침·접힘 시 높이 슬라이드 애니메이션을 적용합니다. 닫힌 패널은 hidden으로 숨기고, 토글 시에만 높이를 애니메이션합니다.

평일 기준 2~3일 이내 출고됩니다. 패널을 열고 닫을 때 높이가 부드럽게 전환됩니다.

수령 후 7일 이내 마이페이지에서 신청할 수 있습니다.

1588-0000 (평일 09:00–18:00). 채팅 상담도 지원합니다.

API · Accordion Props

Prop타입기본값설명
variant'bordered' | 'flush' | 'card'bordered아코디언 스킨 — bordered(붙임) · flush · card(항목 간격, FAQ)
size'sm' | 'md' | 'lg'md트리거·본문 패딩 크기
multiplebooleanfalse여러 패널 동시 열기 허용
narrowbooleanfalse데모용 최대 너비 제한 (accordion_demo-narrow)
effect'slide'펼침·접힘 높이 슬라이드 애니메이션 (data-effect="slide")

API · AccordionItem Props

Prop타입기본값설명
labelstring트리거에 표시할 제목
contentstring패널 본문 (p 태그로 렌더). default 슬롯으로 대체 가능
openboolean열림 상태 (제어, v-model:open)
default-openbooleanfalse초기 열림 상태 (비제어)
@open-change(open: boolean) => void열림 상태 변경 이벤트
disabledbooleanfalse비활성 항목 (is-disabled + trigger disabled)
extra-codestring코드 예시용 extra 슬롯 마크업 (데모 코드 생성)
ripplebooleantrue클릭 파장(ripple). true 시 data-ripple 활성 · false 비활성. 기본 활성

API · Accordion Slots

슬롯설명
defaultAccordionItem 나열

API · AccordionItem Slots

슬롯설명
default패널 본문 (content prop 대체)
extra트리거 오른쪽 보조 정보 (배지·메타 텍스트)

클래스 · 속성

Vue 컴포넌트가 렌더하는 OOCSS 클래스입니다. HTML 마크업으로 직접 작성할 때 동일하게 조합합니다.

클래스설명
accordion루트 구조 클래스
accordion_bordered외곽 테두리로 항목을 한 덩어리로 붙인 스킨
accordion_flush구분선만 있는 플러시 스킨
accordion_card항목 사이 간격·독립 카드 스킨 (FAQ 기본 예시)
accordion_sm · accordion_lg크기 변형
accordion_item · accordion_trigger · accordion_panel내부 파트
accordion_headingrole="heading" aria-level="3" 헤딩 래퍼
accordion_label · accordion_extra · accordion_icon트리거 파트
accordion_content패널 본문 래퍼
data-accordionHTML 마크업 JS 초기화 대상
data-accordion-multipleHTML 마크업 다중 열기 허용
data-effect="slide"펼침·접힘 높이 슬라이드 애니메이션
is-open · is-disabled상태 클래스
data-ripple클릭 파장 활성. data-ripple="surface"는 절대 위치 보조 버튼용
data-ripple="false"해당 요소 ripple 비활성
data-no-ripple하위 전체 ripple 비활성

디자인 토큰

토큰기본값설명
--accordion-font-sizevar(--text-size-sm)기본(md) 본문 크기
--accordion-trigger-font-weight · --accordion-trigger-gap600 · var(--space-sm)트리거 타이포·간격
--accordion-trigger-padding-y · --accordion-trigger-padding-x0.875rem · var(--space-lg)트리거 패딩(md)
--accordion-content-font-sizevar(--text-size-sm)콘텐츠 글자 크기
--accordion-content-padding-y · --accordion-content-padding-xvar(--space-lg) · var(--space-lg)콘텐츠 상하·좌우 패딩(동일)
--accordion-icon-size1rem펼침 아이콘(md)
--accordion-slide-duration · --accordion-slide-easing0.28s · ease슬라이드 전환
--accordion-card-gap0카드형 아코디언 항목 간격
--accordion-card-trigger-bgvar(--color-surface-raised)카드형 트리거 배경
--accordion-font-size-sm · --accordion-trigger-padding-y-sm · --accordion-trigger-padding-x-smvar(--text-size-xs) · 0.625rem · var(--space-md)sm 크기
--accordion-icon-size-sm0.875remsm 아이콘
--accordion-font-size-lg · --accordion-trigger-padding-y-lg · --accordion-trigger-padding-x-lgvar(--text-size-base) · 1rem · var(--space-xl)lg 크기
--accordion-icon-size-lg1.125remlg 아이콘