Components

Accordion

A vertically stacked set of interactive headings that each reveal a section of content.

php artisan blatui:add accordion

Yes. It adheres to the WAI-ARIA design pattern.

Yes. It comes with default styles that match the other components' aesthetic.

Yes. It's animated by default, but you can disable it if you prefer.
<x-ui.accordion type="single" collapsible class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger>Is it accessible?</x-ui.accordion-trigger>
        <x-ui.accordion-content>
            Yes. It adheres to the WAI-ARIA design pattern.
        </x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger>Is it styled?</x-ui.accordion-trigger>
        <x-ui.accordion-content>
            Yes. It comes with default styles that match the other components' aesthetic.
        </x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger>Is it animated?</x-ui.accordion-trigger>
        <x-ui.accordion-content>
            Yes. It's animated by default, but you can disable it if you prefer.
        </x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Active Card

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- The open item lifts into a bordered, shadowed card. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md space-y-1 overflow-visible">
    <x-ui.accordion-item value="item-1" class="bg-background rounded-lg border border-transparent px-5 transition-all duration-200 data-[state=open]:border-border data-[state=open]:shadow-md">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2" class="bg-background rounded-lg border border-transparent px-5 transition-all duration-200 data-[state=open]:border-border data-[state=open]:shadow-md">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3" class="bg-background rounded-lg border border-transparent px-5 transition-all duration-200 data-[state=open]:border-border data-[state=open]:shadow-md">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Active Fill

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- The open item gets a filled (accent) background. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1" class="rounded-lg border-none px-5 transition-colors duration-200 data-[state=open]:bg-accent">
        <x-ui.accordion-trigger>How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2" class="rounded-lg border-none px-5 transition-colors duration-200 data-[state=open]:bg-accent">
        <x-ui.accordion-trigger>What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3" class="rounded-lg border-none px-5 transition-colors duration-200 data-[state=open]:bg-accent">
        <x-ui.accordion-trigger>Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Avatar

Manage your plan, payment method and invoices from the billing page in your dashboard.

Track shipments, start a return, or update a delivery address before your order is dispatched.

Enable two-factor authentication and review active sessions from your security settings.
{{-- Rich trigger with an avatar, name and supporting line. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="chevron-updown" class="items-center hover:no-underline">
            <span class="flex items-center gap-3">
                <x-ui.avatar class="size-9"><x-ui.avatar-fallback>RP</x-ui.avatar-fallback></x-ui.avatar>
                <span class="flex flex-col">
                    <span>Richard Payne</span>
                    <span class="text-muted-foreground text-xs font-normal">Account &amp; billing</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-12">Manage your plan, payment method and invoices from the billing page in your dashboard.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="chevron-updown" class="items-center hover:no-underline">
            <span class="flex items-center gap-3">
                <x-ui.avatar class="size-9"><x-ui.avatar-fallback>SM</x-ui.avatar-fallback></x-ui.avatar>
                <span class="flex flex-col">
                    <span>Sofia Mills</span>
                    <span class="text-muted-foreground text-xs font-normal">Orders &amp; shipping</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-12">Track shipments, start a return, or update a delivery address before your order is dispatched.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="chevron-updown" class="items-center hover:no-underline">
            <span class="flex items-center gap-3">
                <x-ui.avatar class="size-9"><x-ui.avatar-fallback>AK</x-ui.avatar-fallback></x-ui.avatar>
                <span class="flex flex-col">
                    <span>Amir Khan</span>
                    <span class="text-muted-foreground text-xs font-normal">Privacy &amp; security</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-12">Enable two-factor authentication and review active sessions from your security settings.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Bordered

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- A single bordered, rounded container wrapping all items. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md overflow-hidden rounded-lg border">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="chevron-updown" class="px-5">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="chevron-updown" class="px-5">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="chevron-updown" class="px-5">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Bordered Icon

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Bordered container with a leading icon and subtitle on every row. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md overflow-hidden rounded-lg border">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center px-5">
            <span class="flex items-center gap-3">
                <x-lucide-truck class="text-muted-foreground size-4 shrink-0" />
                <span class="flex flex-col">
                    <span>How do I track my order?</span>
                    <span class="text-muted-foreground text-xs font-normal">Shipping &amp; delivery</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-12">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center px-5">
            <span class="flex items-center gap-3">
                <x-lucide-undo-2 class="text-muted-foreground size-4 shrink-0" />
                <span class="flex flex-col">
                    <span>What is your return policy?</span>
                    <span class="text-muted-foreground text-xs font-normal">Returns &amp; refunds</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-12">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center px-5">
            <span class="flex items-center gap-3">
                <x-lucide-globe class="text-muted-foreground size-4 shrink-0" />
                <span class="flex flex-col">
                    <span>Do you ship internationally?</span>
                    <span class="text-muted-foreground text-xs font-normal">Worldwide shipping</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-12">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Chevron Updown

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Chevron that swaps down → up instead of rotating. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="chevron-updown">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="chevron-updown">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="chevron-updown">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Default Open

A Laravel Blade component library you copy, paste and own.

Yes. It adheres to the WAI-ARIA design pattern.

Yes. It is open source under the MIT license.
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger>What is BlatUI?</x-ui.accordion-trigger>
        <x-ui.accordion-content>A Laravel Blade component library you copy, paste and own.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger>Is it accessible?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Yes. It adheres to the WAI-ARIA design pattern.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger>Is it free?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Yes. It is open source under the MIT license.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Filled Header

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- The trigger header has a filled (accent) background; each item is a bordered card. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md space-y-2">
    <x-ui.accordion-item value="item-1" class="overflow-hidden rounded-lg border last:border-b">
        <x-ui.accordion-trigger class="bg-accent px-5 data-[state=open]:rounded-b-none">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5 pt-4">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2" class="overflow-hidden rounded-lg border last:border-b">
        <x-ui.accordion-trigger class="bg-accent px-5 data-[state=open]:rounded-b-none">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5 pt-4">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3" class="overflow-hidden rounded-lg border last:border-b">
        <x-ui.accordion-trigger class="bg-accent px-5 data-[state=open]:rounded-b-none">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5 pt-4">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Highlight

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- The active item is highlighted with an accent colour and a coloured divider. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1" class="data-[state=open]:border-primary not-last:data-[state=open]:border-b-2">
        <x-ui.accordion-trigger class="in-data-[state=open]:text-primary">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2" class="data-[state=open]:border-primary not-last:data-[state=open]:border-b-2">
        <x-ui.accordion-trigger class="in-data-[state=open]:text-primary">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3" class="data-[state=open]:border-primary not-last:data-[state=open]:border-b-2">
        <x-ui.accordion-trigger class="in-data-[state=open]:text-primary">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Icon Left Expand

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Expand chevron moved to the left of the label. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="chevron-updown" icon-position="left" class="justify-start">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="chevron-updown" icon-position="left" class="justify-start">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="chevron-updown" icon-position="left" class="justify-start">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Icon Subtitle

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Circular icon badge with a title and subtitle, plus / minus toggle. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">
            <span class="flex items-center gap-3">
                <span class="flex size-10 shrink-0 items-center justify-center rounded-full border" aria-hidden="true"><x-lucide-truck class="size-4" /></span>
                <span class="flex flex-col">
                    <span>How do I track my order?</span>
                    <span class="text-muted-foreground text-xs font-normal">Shipping &amp; delivery</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-13">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">
            <span class="flex items-center gap-3">
                <span class="flex size-10 shrink-0 items-center justify-center rounded-full border" aria-hidden="true"><x-lucide-undo-2 class="size-4" /></span>
                <span class="flex flex-col">
                    <span>What is your return policy?</span>
                    <span class="text-muted-foreground text-xs font-normal">Returns &amp; refunds</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-13">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">
            <span class="flex items-center gap-3">
                <span class="flex size-10 shrink-0 items-center justify-center rounded-full border" aria-hidden="true"><x-lucide-globe class="size-4" /></span>
                <span class="flex flex-col">
                    <span>Do you ship internationally?</span>
                    <span class="text-muted-foreground text-xs font-normal">Worldwide shipping</span>
                </span>
            </span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-13">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Leading Icon

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- A leading icon before each trigger label, chevron on the right. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger>
            <span class="flex items-center gap-3"><x-lucide-truck class="text-muted-foreground size-4 shrink-0" /> How do I track my order?</span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger>
            <span class="flex items-center gap-3"><x-lucide-undo-2 class="text-muted-foreground size-4 shrink-0" /> What is your return policy?</span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger>
            <span class="flex items-center gap-3"><x-lucide-globe class="text-muted-foreground size-4 shrink-0" /> Do you ship internationally?</span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Multiple

We ship worldwide within 3–5 business days.

Free returns within 30 days of delivery.

All products include a 2-year limited warranty.
<x-ui.accordion type="multiple" class="w-full max-w-md">
    <x-ui.accordion-item value="shipping">
        <x-ui.accordion-trigger>Shipping</x-ui.accordion-trigger>
        <x-ui.accordion-content>We ship worldwide within 3–5 business days.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="returns">
        <x-ui.accordion-trigger>Returns</x-ui.accordion-trigger>
        <x-ui.accordion-content>Free returns within 30 days of delivery.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="warranty">
        <x-ui.accordion-trigger>Warranty</x-ui.accordion-trigger>
        <x-ui.accordion-content>All products include a 2-year limited warranty.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Outline

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Each item is fully outlined and separated. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md space-y-2">
    <x-ui.accordion-item value="item-1" class="rounded-lg border last:border-b">
        <x-ui.accordion-trigger class="px-5">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2" class="rounded-lg border last:border-b">
        <x-ui.accordion-trigger class="px-5">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3" class="rounded-lg border last:border-b">
        <x-ui.accordion-trigger class="px-5">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Plus Minus

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Plus / minus toggle icon instead of a chevron. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="plus-minus" class="items-center">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content>Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Plus Rotate

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Leading icon with a plus that rotates into a cross when open. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md">
    <x-ui.accordion-item value="item-1">
        <x-ui.accordion-trigger icon="plus" class="items-center">
            <span class="flex items-center gap-3"><x-lucide-truck class="text-muted-foreground size-4 shrink-0" /> How do I track my order?</span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2">
        <x-ui.accordion-trigger icon="plus" class="items-center">
            <span class="flex items-center gap-3"><x-lucide-undo-2 class="text-muted-foreground size-4 shrink-0" /> What is your return policy?</span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3">
        <x-ui.accordion-trigger icon="plus" class="items-center">
            <span class="flex items-center gap-3"><x-lucide-globe class="text-muted-foreground size-4 shrink-0" /> Do you ship internationally?</span>
        </x-ui.accordion-trigger>
        <x-ui.accordion-content class="ps-7">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

Separated

Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.

Returns are free within 30 days of delivery. Items must be unused and in their original packaging.

Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.
{{-- Each item is a separate elevated card; chevron points left and rotates up. --}}
<x-ui.accordion type="single" collapsible value="item-1" class="w-full max-w-md space-y-2">
    <x-ui.accordion-item value="item-1" class="bg-card rounded-lg border-b-0 shadow-md data-[state=open]:shadow-lg">
        <x-ui.accordion-trigger icon="chevron-left" class="rounded-lg px-5 py-2.5">How do I track my order?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Once your order ships, we'll email you a tracking link. You can also find it under Orders in your account.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-2" class="bg-card rounded-lg border-b-0 shadow-md data-[state=open]:shadow-lg">
        <x-ui.accordion-trigger icon="chevron-left" class="rounded-lg px-5 py-2.5">What is your return policy?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Returns are free within 30 days of delivery. Items must be unused and in their original packaging.</x-ui.accordion-content>
    </x-ui.accordion-item>
    <x-ui.accordion-item value="item-3" class="bg-card rounded-lg border-b-0 shadow-md data-[state=open]:shadow-lg">
        <x-ui.accordion-trigger icon="chevron-left" class="rounded-lg px-5 py-2.5">Do you ship internationally?</x-ui.accordion-trigger>
        <x-ui.accordion-content class="px-5">Yes — we ship to most countries. Costs and delivery estimates are shown at checkout.</x-ui.accordion-content>
    </x-ui.accordion-item>
</x-ui.accordion>

API Reference

Props, slots and exposed methods for <x-ui.accordion>.

Props

Prop Type Default Description
type string 'single' Whether only one item can be open at a time (single) or several at once (multiple).
single multiple
collapsible bool false In single mode, allow the open item to be closed by clicking it again (leaving all items closed). Ignored in multiple mode.
value string|array The initially open item(s), matched against each item's value. A string in single mode, an array of values in multiple mode.

Slots

Slot Description
default The accordion items. Compose one <x-ui.accordion-item value="..."> per row, each wrapping an <x-ui.accordion-trigger> (the header button) and an <x-ui.accordion-content> (the collapsible panel).