- Accordion new
- ActionSheet new
- Alert new
- Alert Dialog new
- Angle Slider new
- Autocomplete new
- Avatar new
- Badge new
- Breadcrumb new
- Button new
- Button Group new
- Card new
- Carousel new
- Checkbox new
- Clipboard new
- Collapsible new
- Color Picker new
- Date Input new
- Date Picker new
- Dialog new
- DialogCaller new
- Drawer beta
- Editable new
- Empty new
- Field new
- Fieldset new
- File Upload new
- Filters new
- Floating Panel new
- Hover Card new
- Image new
- Image Cropper new
- Input new
- Input Group new
- Json Tree View new
- Kbd new
- Listbox new
- Marquee new
- Menu new
- Number Input new
- Pagination new
- Password Input new
- PhoneField new
- Pin Input new
- Popover new
- Progress Circular new
- Progress Linear new
- Qr Code new
- Radio Group new
- Rating Group new
- Scroll Area new
- ScrollSpy new
- Segment Group new
- Select new
- Separator new
- Sidebar new
- Signature Pad new
- Skeleton new
- Slider new
- Splitter new
- Steps new
- Switch new
- Table new
- Tabs new
- Tags Input new
- Textarea new
- Timeline new
- Timer new
- Toast new
- Toc new
- Toggle new
- Toggle Group new
- Tooltip new
- Tour new
- Tree View new
- Typography new
Accordion
Vue accordion for expandable FAQ and content sections, with single or multiple open panels and keyboard support.
Installation
Install from the Vuzeno registry:
bunx --bun shadcn-vue@latest add https://vuzeno.com/r/accordion.json
npx shadcn-vue@latest add https://vuzeno.com/r/accordion.json
yarn dlx shadcn-vue@latest add https://vuzeno.com/r/accordion.json
pnpm dlx shadcn-vue@latest add https://vuzeno.com/r/accordion.json
Usage
<script setup lang="ts">
import { Accordion } from "@/components/ui/accordion";
</script>
<template>
<Accordion.Root>
<!-- … -->
</Accordion.Root>
</template>
Composition
Accordion.Root
├── Accordion.Context
├── Accordion.ItemContent
├── Accordion.ItemContext
├── Accordion.ItemIndicator
├── Accordion.ItemTrigger
├── Accordion.Item
├── Accordion.RootProvider
Examples
Default Value
Set the defaultValue prop to specify which item should be expanded by default.
Controlled
Use the value and onValueChange props to control the expanded items.
Root Provider
An alternative way to control the accordion is to use the RootProvider component and the useAccordion hook. This way you can access the state and methods from outside the component.
Collapsible
Use the collapsible prop to allow the user to collapse all panels.
Multiple
Use the multiple prop to allow multiple panels to be expanded simultaneously.
Horizontal
By default, the Accordion is oriented vertically. Use the orientation prop to switch to a horizontal layout.
Lazy Mount
Use the lazyMount prop to defer rendering of accordion content until the item is expanded. Combine with unmountOnExit to unmount content when collapsed, freeing up resources.
Context
Use Accordion.Context or useAccordionContext to access the accordion state.
Item State
Use Accordion.ItemContext or useAccordionItemContext to access the state of an accordion item.
API
See Ark UI Accordion docs for full props and examples.