Accordion
Stacks related disclosure sections with controlled or uncontrolled expansion.
Imports
Use the same component slug for React, Vue, and style token lookup. Do not import components from package roots.
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@line/abc-def-react/accordion";<script setup lang="ts">
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@line/abc-def-vue/accordion";
</script>Shadcn references
Compare the corresponding shadcn React and Vue documentation for the same component slug.
Basic usage
Component styles resolve through CSS variables.
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@line/abc-def-react/accordion";
export function Example() {
return (
<Accordion type="single" collapsible defaultValue="item-1">
<AccordionItem value="item-1">
<AccordionTrigger>Design tokens</AccordionTrigger>
<AccordionContent>Component styles resolve through CSS variables.</AccordionContent>
</AccordionItem>
</Accordion>
);
}<script setup lang="ts">
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@line/abc-def-vue/accordion";
</script>
<template>
<Accordion type="single" collapsible default-value="item-1">
<AccordionItem value="item-1">
<AccordionTrigger>Design tokens</AccordionTrigger>
<AccordionContent>
Component styles resolve through CSS variables.
</AccordionContent>
</AccordionItem>
</Accordion>
</template>Component tokens
| Component Token | Semantic Token | Default Primitive Token |
|---|---|---|
--accordion-ring | --ring | --color-zinc-400 |
--accordion-trigger-icon-fg | --muted-foreground | --color-zinc-500 |
--accordion-border | --border | --color-zinc-200 |
Composition exports
AccordionAccordionItemAccordionTriggerAccordionContentUsage notes
- Use one item per topic.
- Use `type="multiple"` when more than one section can stay open.
- Related component tokens use the `accordion` token group in `@line/abc-def-styles/css`.