Skip to content

Collapsible

Collapsible

Basic (Uncontrolled)

Default Open

This content is visible by default because defaultOpen is set to true.

Controlled

import { Collapsible } from "@f0rbit/ui";
<Collapsible trigger="Click to expand">
<p>Hidden content revealed on click.</p>
</Collapsible>

By default, Collapsible manages its own open state internally:

<Collapsible trigger="Click me">
<p>This content toggles when you click the trigger.</p>
</Collapsible>

Use defaultOpen to have the content visible initially:

<Collapsible trigger="Already expanded" defaultOpen>
<p>This is visible by default.</p>
</Collapsible>

For full control over the open state, use open and onOpenChange:

const [isOpen, setIsOpen] = createSignal(false);
<Collapsible
trigger="Controlled"
open={isOpen()}
onOpenChange={setIsOpen}
>
<p>Controlled by external state.</p>
</Collapsible>
PropTypeDefaultDescription
triggerJSX.Element | stringContent shown in the trigger area
defaultOpenbooleanfalseInitial open state (uncontrolled)
openbooleanControlled open state
onOpenChange(open: boolean) => voidCallback when open state changes