WARNING! You are browsing the docs for an old version of TallStackUI. See the v4 docs.

Powerful suite of Blade components for TALL Stack apps.

Accordion

Accordion component.

WARNING!

You are browsing the docs for an old version of TallStackUI. Consider upgrade your project to TallStackUI v4.

A suite of Blade components for the TALL stack.
Laravel 10, 11, 12, and 13.
Yes, TallStackUI is free and open source.
<x-accordion>
<x-accordion.items title="What is TallStackUI?" id="faq-1">
A suite of Blade components for the TALL stack.
</x-accordion.items>
<x-accordion.items title="Which Laravel versions are supported?" id="faq-2">
Laravel 10, 11, 12, and 13.
</x-accordion.items>
<x-accordion.items title="Is it free?" id="faq-3">
Yes, TallStackUI is free and open source.
</x-accordion.items>
</x-accordion>
Stays open independently.
Stays open independently.
Stays open independently.
<x-accordion multiple>
<x-accordion.items title="Feature A" id="multi-a">
Stays open independently.
</x-accordion.items>
<x-accordion.items title="Feature B" id="multi-b">
Stays open independently.
</x-accordion.items>
<x-accordion.items title="Feature C" id="multi-c">
Stays open independently.
</x-accordion.items>
</x-accordion>
Without the outer border, rounding, and shadow.
Only the inter-item separator remains.
<x-accordion flat>
<x-accordion.items title="First" id="flat-1">
Without the outer border, rounding, and shadow.
</x-accordion.items>
<x-accordion.items title="Second" id="flat-2">
Only the inter-item separator remains.
</x-accordion.items>
</x-accordion>
The chevron sits at the end of the trigger.
The chevron sits before the title.
<!-- Default: chevron on the right -->
<x-accordion>
<x-accordion.items title="Right chevron (default)" id="chev-right">
The chevron sits at the end of the trigger.
</x-accordion.items>
</x-accordion>
 
<!-- Chevron on the left -->
<x-accordion chevron="left">
<x-accordion.items title="Left chevron" id="chev-left">
The chevron sits before the title.
</x-accordion.items>
</x-accordion>
Content
Ships expanded on page load.
<x-accordion>
<x-accordion.items title="Closed by default" id="default-closed">
Content
</x-accordion.items>
<x-accordion.items title="Open by default" id="default-opened" open>
Ships expanded on page load.
</x-accordion.items>
</x-accordion>
The icon still rotates 180° when the item opens.
Any Heroicon name is accepted.
<x-accordion>
<x-accordion.items title="Using plus-circle"
id="icon-plus"
icon="plus-circle">
The icon still rotates 180° when the item opens.
</x-accordion.items>
<x-accordion.items title="Using bell"
id="icon-bell"
icon="bell">
Any Heroicon name is accepted.
</x-accordion.items>
</x-accordion>
The slot HTML is emitted as-is. Rotation is not applied automatically.
<x-accordion>
<x-accordion.items title="Custom indicator" id="icon-slot-1">
<x-slot:icon>
<span class="rounded-full bg-primary-100 px-2 py-0.5 text-xs font-semibold text-primary-700">
new
</span>
</x-slot:icon>
The slot HTML is emitted as-is. Rotation is not applied automatically.
</x-accordion.items>
</x-accordion>

A slot to replace the trigger label entirely with rich content like avatars, badges, or multi-line headings.

Profile details, contact info, recent activity.
<x-accordion>
<x-accordion.items id="user-1">
<x-slot:trigger>
<div class="flex items-center gap-3">
<x-avatar sm color="primary" text="JD" />
<div class="flex flex-col text-start">
<span class="text-sm font-semibold">John Doe</span>
<span class="text-xs text-gray-500">Product Manager</span>
</div>
<x-badge color="green" sm text="active" class="ms-auto" />
</div>
</x-slot:trigger>
Profile details, contact info, recent activity.
</x-accordion.items>
</x-accordion>

Accordion dispatches open and close CustomEvents on the wrapper, with the triggered item's identifier in $event.detail.id . Listen with x-on:open and x-on:close directly on the <x-accordion> or any ancestor.

Trigger this item to see the events firing.
Each open / close dispatches a CustomEvent with detail.id.
<x-accordion x-on:open="alert(`Opened: ${$event.detail.id}`)" x-on:close="alert(`Closed: ${$event.detail.id}`)">
<x-accordion.items title="Watch me" id="evt-1">
Trigger this item to see the events firing.
</x-accordion.items>
<x-accordion.items title="Or watch me" id="evt-2">
Each open / close dispatches a CustomEvent with detail.id.
</x-accordion.items>
</x-accordion>

Code highlighting provided by Torchlight