--- title: "collapsible" description: "An interactive panel that expands and collapses its content." category: "Layout" --- # collapsible An interactive panel that expands and collapses its content. ## Installation ```bash php artisan ui:add collapsible ``` ## Dependencies - composer: `gehrisandro/tailwind-merge-laravel` ## Usage ```blade Toggle Hidden content revealed on toggle. ``` ## Example The demo rendered on the docs page. ```blade

@peduarte starred 3 repositories

Toggle
@radix-ui/primitives
@radix-ui/colors
@stitches/react
``` ## Source Copy each file to the path shown above it. `resources/views/components/ui/collapsible/index.blade.php` ```blade @props([ 'open' => false, ]) @php $classes = \TailwindMerge\Laravel\Facades\TailwindMerge::merge( 'group/collapsible', $attributes->get('class'), ); @endphp
except('class')->merge(['class' => $classes]) }}> {{ $slot }}
@once @endonce ``` `resources/views/components/ui/collapsible/trigger.blade.php` ```blade @props([]) @php $classes = \TailwindMerge\Laravel\Facades\TailwindMerge::merge( 'outline-none focus-visible:ring-ring/50 focus-visible:ring-[3px]', $attributes->get('class'), ); @endphp {{-- aria-expanded is seeded from the parent's data-state on load, then kept in sync by the script that ships with . --}} ``` `resources/views/components/ui/collapsible/content.blade.php` ```blade @props([]) @php // Hidden by default; a collapsible with :open="true" flips it on via the // group-data-[state=open] rule its parent sets. $classes = \TailwindMerge\Laravel\Facades\TailwindMerge::merge( 'hidden group-data-[state=open]/collapsible:block', $attributes->get('class'), ); @endphp
except('class')->merge(['class' => $classes]) }}> {{ $slot }}
``` ## Theme tokens `--ring` Ships its own inline