accordion

Accordion

Stacked sections the shopper opens and closes, one or several at a time, such as shipping and returns on a product page.

States: Default, Hover, Focus, Disabled

Parts

PartFileDoes
AccordionAccordion.vueGroups all parts of the accordion.
AccordionContentAccordionContent.vueHolds what its item shows while open.
AccordionItemAccordionItem.vueGroups a trigger with the content it opens and closes.
AccordionTriggerAccordionTrigger.vueOpens and closes the content of its item.

Anatomy

<Accordion>
  <AccordionItem>
    <AccordionTrigger />
    <AccordionContent />
  </AccordionItem>
</Accordion>

Styling

PartRecipe
Accordionaccordion
AccordionContentaccordion-body
AccordionItemaccordion-item
AccordionTriggeraccordion-trigger

Install

Writes 5 files into components/ui/accordion/. For agents, npx @frontic/ui docs accordion prints this reference as markdown; the MCP server serves the same.

npm packages
@lucide/vue
@vueuse/core
reka-ui

API reference

Accordion Accordion.vue

Groups all parts of the accordion.

PropTypeDefault
collapsiblebooleanfalse
disabledbooleanfalse
dirDirection'ltr'
orientationDataOrientation'vertical'
unmountOnHidebooleantrue
asChildbooleanfalse
asAsTag | Component—
typeSingleOrMultipleType—
modelValuestring | string[]—
defaultValuestring | string[]—
classClassValue—
EventPayload
update:modelValuevalue: string | string[] | undefined
SlotSlot props
default{ modelValue: AcceptableValue | AcceptableValue[] | undefined; }
Recipe accordionSets
base: accordion 3 properties

AccordionContent AccordionContent.vue

AccordionItem AccordionItem.vue

AccordionTrigger AccordionTrigger.vue

Example
State