Collapsible

A single expandable/collapsible section. Unlike Accordion, it stands alone without siblings. Animated with a CSS grid-template-rows trick — no Radix dependency.

Import

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

Usage

tsx
<Collapsible title="What is FXUI?">
  A neo-brutalist React component library with 100+ components.
</Collapsible>

Default Open

tsx
<Collapsible title="Expanded by default" defaultOpen>
  This panel starts open.
</Collapsible>

Variants

tsx
<Collapsible variant="default" title="Default">...</Collapsible>
<Collapsible variant="filled"  title="Filled" >...</Collapsible>
<Collapsible variant="ghost"   title="Ghost"  >...</Collapsible>

With Icon

tsx
<Collapsible icon="⚙️" title="Settings">
  Your settings content here.
</Collapsible>

With Action Button

tsx
<Collapsible
  title="Team Members"
  actions={<Button size="sm">+ Add</Button>}
>
  <MemberList />
</Collapsible>

Controlled

tsx
const [open, setOpen] = React.useState(false);

<Collapsible title="Controlled" open={open} onOpenChange={setOpen}>
  Controlled externally.
</Collapsible>

Disabled

tsx
<Collapsible title="Cannot toggle" disabled>
  Content not accessible.
</Collapsible>

Props

| Prop | Type | Default | |------|------|---------| | title | ReactNode | required | | variant | 'default' \| 'filled' \| 'ghost' | 'default' | | defaultOpen | boolean | false | | open | boolean | — | | onOpenChange | (open: boolean) => void | — | | icon | ReactNode | — | | actions | ReactNode | — | | disabled | boolean | false |