1. framework components
  2. ›
  3. collapsible

Collapsible

A container that can be expanded or collapsed to show or hide content.

Controlled

Control the active state of the component.

Indicator

Add a visual indicator to the toggle button.

Disabled

Set the disabled state for the component.

Alignment

Control the position and alignment of the trigger and content using flexbox items-*.

Direction

Set the text direction (ltr or rtl) using the dir prop.

Anatomy

Here’s an overview of how the Collapsible component is structured in code:

tsx
import { Collapsible } from '@skeletonlabs/skeleton-react';

export default function Anatomy() {
	return (
		<Collapsible>
			<Collapsible.Trigger />
			<Collapsible.Content />
		</Collapsible>
	);
}

API Reference

Root

PropDefaultType
ids—Partial<{ root: string; content: string; trigger: string; }> | undefined

The ids of the elements in the collapsible. Useful for composition.

open—boolean | undefined

The controlled open state of the collapsible.

defaultOpen—boolean | undefined

The initial open state of the collapsible when rendered. Use when you don't need to control the open state of the collapsible.

onOpenChange—((details: OpenChangeDetails) => void) | undefined

The callback invoked when the open state changes.

onExitComplete—VoidFunction | undefined

The callback invoked when the exit animation completes.

disabled—boolean | undefined

Whether the collapsible is disabled.

collapsedHeight—string | number | undefined

The height of the content when collapsed.

collapsedWidth—string | number | undefined

The width of the content when collapsed.

getRootNode—(() => ShadowRoot | Node | Document) | undefined

A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.

dir"ltr""ltr" | "rtl" | undefined

The document's text/writing direction.

element—((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Provider

PropDefaultType
value—CollapsibleApi<PropTypes>

element—((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Context

PropDefaultType
children—(collapsible: CollapsibleApi<PropTypes>) => ReactNode

Trigger

PropDefaultType
element—((attributes: HTMLAttributes<"button">) => Element) | undefined

Render the element yourself

Indicator

PropDefaultType
element—((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Content

PropDefaultType
element—((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

View page on GitHub