Swirski UI

Disclosure

Accordion

A disclosure component built on details and summary, with no client JavaScript required.

Component

09

Request Changes

Import

import {
  Accordion,
  AccordionContent,
  AccordionItem,
  AccordionTrigger,
} from "@swirski/ui";

Composition

Accordion
`-- AccordionItem
    |-- AccordionTrigger
    `-- AccordionContent

Playground

4 controls
What makes it Swirski?+
Thick borders, punchy color, loud type and plain HTML behavior.
Can I customize it?+
Every piece accepts className and native element props.

Controls

Usage

<Accordion>
  <AccordionItem open>
    <AccordionTrigger>What makes it Swirski?</AccordionTrigger>
    <AccordionContent>
      Thick borders, punchy color, loud type and plain HTML behavior.
    </AccordionContent>
  </AccordionItem>
  <AccordionItem>
    <AccordionTrigger>Can I customize it?</AccordionTrigger>
    <AccordionContent>
      Every piece accepts className and native element props.
    </AccordionContent>
  </AccordionItem>
</Accordion>

Props

14 generated
PropTypeDefaultNotes
Accordion.asChildbooleanfalseGenerated from AccordionProps.
Accordion.size'sm' | 'md' | 'lg'"md"Generated from AccordionProps.
Accordion.tone'default'"default"Generated from AccordionProps.
Accordion.variant'default' | 'compact'"default"Generated from AccordionProps.
AccordionItem.size'sm' | 'md' | 'lg'"md"Generated from AccordionItemProps.
AccordionItem.tone'default'"default"Generated from AccordionItemProps.
AccordionItem.variant'default' | 'compact'"default"Generated from AccordionItemProps.
AccordionTrigger.childrenReactNode-Summary label for the disclosure item.
AccordionTrigger.size'sm' | 'md' | 'lg'"md"Generated from AccordionTriggerProps.
AccordionTrigger.tone'default'"default"Generated from AccordionTriggerProps.
AccordionTrigger.variant'default' | 'compact'"default"Generated from AccordionTriggerProps.
AccordionContent.size'sm' | 'md' | 'lg'"md"Generated from AccordionContentProps.
AccordionContent.tone'default'"default"Generated from AccordionContentProps.
AccordionContent.variant'default' | 'compact'"default"Generated from AccordionContentProps.
Accordion.classNamestring-Adds classes to the accordion wrapper.
AccordionItem.openbooleanfalseUses the native details open state.
AccordionItem.classNamestring-Adds classes to the details element.
AccordionTrigger.classNamestring-Adds classes to the summary element.
AccordionContent.classNamestring-Adds classes to the content panel.
...detailsPropsDetailsHTMLAttributes<HTMLDetailsElement>-Forwarded to each accordion item.
Previous: SwitchNext: Card