bx

Collapsible

An interactive component which expands/collapses a panel.

tsx
<Collapsible>
  <CollapsibleTrigger>Toggle</CollapsibleTrigger>
  <CollapsibleContent>Content</CollapsibleContent>
</Collapsible>

Collapsible — un seul bloc dévoilable (un accordion, mais standalone, sans siblings). Utile pour un "afficher plus" ou un panel avancé optionnel.

Pour plusieurs sections empilées, préférer Accordion.

Installation

Terminal
$ bext ui add collapsible

Usage

tsx
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "@bext-stack/ui/primitives"

<Collapsible>
  <CollapsibleTrigger>Can I use this in my project?</CollapsibleTrigger>
  <CollapsibleContent>Yes. Free to use for personal and commercial projects.</CollapsibleContent>
</Collapsible>

Anatomy

<Collapsible defaultOpen?>
  ├── <CollapsibleTrigger>Show more</CollapsibleTrigger>
  └── <CollapsibleContent>Hidden content...</CollapsibleContent>
</Collapsible>

API Reference

Collapsible

Prop Type Default Description
defaultOpen boolean false undefined
children ReactNode undefined

CollapsibleTrigger

Prop Type Default Description
children ReactNode undefined

CollapsibleContent

Prop Type Default Description
children ReactNode undefined

Data Attributes

Attributs qu'on peut cibler en CSS custom pour override le style par état.

Attribute On Values Description
data-ui="collapsible" Collapsible root undefined undefined
data-state Collapsible root, CollapsibleContent "open" | "closed" undefined

Keyboard

Key Action
Enter / Space Ouvrir/fermer.

Accessibility

Trigger porte aria-expanded aria-controls. Content porte hidden quand fermé.

Try it live
Open in play

Edit this component live in the bext playground. The PRISM + signals version is the bext-native idiom — fine-grained reactivity, no virtual DOM.

src/app/page.tsx 2 files · signals · runs in your browser
Pure PRISM + real bext signals — fine-grained, no re-render.