Drawer

Basic

public bool $showDrawer1 = false;
public bool $showDrawer2 = false;

...
...
{{-- Left --}}
<x-drawer wire:model="showDrawer1" class="w-11/12 lg:w-1/3">
<div>...</div>
<x-button label="Close" @click="$wire.showDrawer1 = false" />
</x-drawer>
 
{{-- Right --}}
<x-drawer wire:model="showDrawer2" class="w-11/12 lg:w-1/3" right>
<div>...</div>
<x-button label="Close" @click="$wire.showDrawer2 = false" />
</x-drawer>
 
<x-button label="Open Left" wire:click="$toggle('showDrawer1')" />
<x-button label="Open Right" wire:click="$toggle('showDrawer2')" />

Complex

public bool $showDrawer3 = false;

Hello
Livewire

Hey!

<x-drawer
wire:model="showDrawer3"
title="Hello"
subtitle="Livewire"
separator
with-close-button
class="w-11/12 lg:w-1/3"
>
<div>Hey!</div>
 
<x-slot:actions>
<x-button label="Cancel" @click="$wire.showDrawer3 = false" />
<x-button label="Confirm" class="btn-primary" icon="o-check" />
</x-slot:actions>
</x-drawer>
 
<x-button label="Open" @click="$wire.showDrawer3 = true" />

Native HTML

You can directly open a drawer by using native HTML label tag while referencing same drawer id. It closes when you click outside.

This is not a recommended approach if you are using forms, because this is native HTML and there is no state management. Use it only for simple confirmations.
Hello

Native HTML drawer, there is no Livewire state management.
<x-drawer id="my-drawer" title="Hello" separator class="w-11/12 lg:w-1/3">
<div>Native HTML drawer, there is no Livewire state management.</div>
<label for="my-drawer" class="btn">Close</label>
</x-drawer>
 
<label for="my-drawer" class="btn">Open native</label>

maryUI
Sponsor