Accordion

A collapsible content panel built on Radix UI Accordion with smooth animation.

Import

tsx
import { Accordion } from 'fxui-core';

Usage

tsx
<Accordion type="single" collapsible>
  <Accordion.Item value="item-1">
    <Accordion.Trigger>What is FXUI?</Accordion.Trigger>
    <Accordion.Content>
      A Neo-brutalist React component library.
    </Accordion.Content>
  </Accordion.Item>
  <Accordion.Item value="item-2">
    <Accordion.Trigger>Is it accessible?</Accordion.Trigger>
    <Accordion.Content>
      Yes, built on Radix UI primitives.
    </Accordion.Content>
  </Accordion.Item>
</Accordion>

Variants

tsx
{/* Grouped — single bordered container */}
<Accordion type="single" variant="default" collapsible>
  ...
</Accordion>

{/* Separated — each item has its own border */}
<Accordion type="single" variant="separated" collapsible>
  <Accordion.Item value="item-1" variant="separated">
    ...
  </Accordion.Item>
</Accordion>

Multiple Open

tsx
<Accordion type="multiple">
  <Accordion.Item value="item-1">
    <Accordion.Trigger>Section 1</Accordion.Trigger>
    <Accordion.Content>Content 1</Accordion.Content>
  </Accordion.Item>
  <Accordion.Item value="item-2">
    <Accordion.Trigger>Section 2</Accordion.Trigger>
    <Accordion.Content>Content 2</Accordion.Content>
  </Accordion.Item>
</Accordion>

Default Open

tsx
<Accordion type="single" defaultValue="item-1" collapsible>
  ...
</Accordion>

API Reference

Accordion

| Prop | Type | Default | Description | |------|------|---------|-------------| | type | 'single' \| 'multiple' | — | Single or multiple panels open at once | | variant | 'default' \| 'separated' | 'default' | Visual layout | | collapsible | boolean | false | Allow closing all panels (single mode only) | | defaultValue | string \| string[] | — | Initially open panel(s) |

Accordion.Item

| Prop | Type | Default | Description | |------|------|---------|-------------| | value | string | — | Unique identifier for this item | | variant | 'default' \| 'separated' | — | Must match parent variant when using separated |