Collapsible
kumo-svelte

Installation

Barrel

import { Collapsible } from 'kumo-svelte';

Granular

import { Collapsible } from 'kumo-svelte/components/collapsible';

Usage

Collapsible uses a compound component pattern for full composition control.

With Default Styling

Use Collapsible.DefaultTrigger and Collapsible.DefaultPanel for the classic Kumo style:

<script lang="ts">  import {    Collapsible  } from 'kumo-svelte';  let open = $state(false);</script><Collapsible.Root bind:open>  <Collapsible.DefaultTrigger>Show details</Collapsible.DefaultTrigger>  <Collapsible.DefaultPanel>    Content with border-left accent styling.  </Collapsible.DefaultPanel></Collapsible.Root>

Custom Trigger

Use Collapsible.Trigger for full control over the trigger element:

<script lang="ts">  import { Collapsible } from 'kumo-svelte';  let open = $state(false);</script><Collapsible.Root bind:open>  <Collapsible.Trigger class="rounded-lg bg-kumo-base px-3 py-2 text-sm ring ring-kumo-line">    {open ? 'Hide' : 'Show'} details  </Collapsible.Trigger>  <Collapsible.Panel class="mt-2 rounded-lg bg-kumo-tint p-4">    Custom styled panel content.  </Collapsible.Panel></Collapsible.Root>

Examples

Basic

Multiple Items

Custom Trigger

Use Collapsible.Trigger for full control:

Accordion Pattern

Control which item is open to create an accordion where only one item can be expanded at a time:

Sub-components

ComponentDescription
Collapsible.RootManages open state. Pass open and onOpenChange for controlled mode.
Collapsible.TriggerButton that toggles visibility.
Collapsible.PanelContainer for collapsible content.
Collapsible.DefaultTriggerPre-styled trigger with text label and animated caret icon.
Collapsible.DefaultPanelPre-styled panel with border-left accent and standard spacing.

API Reference

Collapsible

Convenience component that renders the default trigger and panel composition.

PropTypeDefaultDescription
trigger Snippet-trigger prop.
children Snippet-Child snippet rendered by the component.
class string-Additional classes merged onto the root element.
open boolean-Controlled open state.
defaultOpen booleanfalseInitial uncontrolled open state.
title string-Title content.
disabled booleanfalseDisables the component.
onOpenChange (open: boolean) => void-Called when open state changes.
autoScrollOnOpen booleanfalseScrolls newly expanded sidebar content into view after opening.
onOpenChangeComplete (open: boolean) => void-Called after the open-state transition completes.

Collapsible.Root

PropTypeDefaultDescription
open boolean-Controlled open state.
defaultOpen booleanfalseInitial uncontrolled open state.
onOpenChange (open: boolean) => void-Called when open state changes.
disabled booleanfalseDisables the component.
onOpenChangeComplete (open: boolean) => void-Called after the open-state transition completes.

Collapsible.Trigger

PropTypeDefaultDescription
disabled booleanfalseDisables the component.
type 'button' | 'submit' | 'reset'"button"Element or semantic type.

Collapsible.Panel

PropTypeDefaultDescription
keepMounted booleanfalsekeepMounted prop.
forceMount booleanfalseforceMount prop.
hiddenUntilFound booleantruehiddenUntilFound prop.

Collapsible.DefaultTrigger

PropTypeDefaultDescription
disabled booleanfalseDisables the component.

Collapsible.DefaultPanel

Accepts all Collapsible.Panel props in addition to the ones listed below.

PropTypeDefaultDescription
keepMounted booleanfalsekeepMounted prop.
forceMount booleanfalseforceMount prop.
hiddenUntilFound booleantruehiddenUntilFound prop.