Skip to main content

Collapsible

Simple expand/collapse container.

Usage

<w-collapsible>
<w-slot trigger><button>Toggle content</button></w-slot>
<w-slot body>
<div>Hidden content that can be expanded.</div>
</w-slot>
</w-collapsible>

Props

PropTypeDefaultDescription
openbooleanfalseWhether content is visible

Slots

SlotElementDescription
triggerButtonElement that toggles visibility
contentAnyCollapsible content

Events

EventDetailDescription
change{ open }Visibility changed

Methods

MethodDescription
expand()Show content
collapse()Hide content
toggle()Toggle visibility

Keyboard

KeyAction
Enter / SpaceToggle (on trigger)

Example

Default Open

<w-collapsible open>
<w-slot trigger><button>Hide details</button></w-slot>
<w-slot body><div>Visible by default</div></w-slot>
</w-collapsible>

Styling

w-collapsible w-slot[trigger] > * {
/* clickable header */
}
w-collapsible w-slot[body] > * {
/* expandable content */
}

/* Open state — `aria-expanded="true"` is set on the trigger */
w-collapsible w-slot[trigger] > *[aria-expanded="true"] {
background: #eef2ff;
}
SelectorTargets
w-collapsible w-slot[trigger] > *[aria-expanded="true"]Open trigger
w-collapsible[open]Host while open

Accessibility

  • Trigger has aria-expanded and aria-controls
  • Content linked via ID reference