Dropdown

Dropdowns open upon clicking a trigger button, and close when clicking anywhere outside the dropdown.

<x-dropdown class="w-60 h-40 border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Click me!</x-slot:trigger>
  Dropdown content
</x-dropdown>

With the hover attribute, it is also possible to open the dropdown by simply moving the cursor over the trigger.

<x-dropdown hover class="w-60 h-32 border-1 border-base-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Hover me!</x-slot:trigger>
  I open automatically
</x-dropdown>

#Dropdown with menus

A common usage for dropdowns is to encapsulate a menu into them.

<x-dropdown class="border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Open menu</x-slot:trigger>
  <x-menu>
	<x-menuItem label="Item 1" icon="heroicon-o-wifi"/>
	<x-menuItem label="Item 2" icon="heroicon-o-microphone"/>
	<x-menuItem label="Item 3" icon="heroicon-o-command-line"/>
	<x-menuItem label="Item 4" icon="heroicon-o-arrow-down-circle"/>
  </x-menu>
</x-dropdown>

#Dropdown position

#Alignment

The alignment between the dropdown and its trigger can be changed thanks to the align (start|center|end) attribute.

<x-dropdown align="start" class="w-40 border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Default</x-slot:trigger>
  <pre><code>align="start"</code></pre> is the default
</x-dropdown>

<x-dropdown align="center" class="w-40 border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Center dropdown</x-slot:trigger>
<pre><code>align=centered</code></pre>
</x-dropdown>

<x-dropdown align="end" class="w-40 border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Right-aligned dropdown</x-slot:trigger>
<pre><code>align=end</code></pre>
</x-dropdown>

#Direction

While dropdowns pop below their trigger by default, this can be changed with the direction (top|bottom|left|right) attribute.

<x-dropdown direction="bottom" class="border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Pop below</x-slot:trigger>
<pre><code>direction=bottom</code></pre>
</x-dropdown>

<x-dropdown direction="top" class="border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Pop above</x-slot:trigger>
<pre><code>direction=top</code></pre>
</x-dropdown>

<x-dropdown direction="left" class="border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Pop left</x-slot:trigger>
<pre><code>direction=left</code></pre>
</x-dropdown>

<x-dropdown direction="right" class="border-1 border-neutral-content bg-base-100 rounded-box p-2">
  <x-slot:trigger class="btn">Pop right</x-slot:trigger>
<pre><code>direction=right</code></pre>
</x-dropdown>

#Anchor

With an anchor, you can make it so the dropdown pops next to another control.

Anchor
<div class="btn" style="anchor-name:--anchor-1">Anchor</div>
<x-dropdown class="border-1 border-neutral-content bg-base-100 rounded-box p-2" anchor="--anchor-1">
  <x-slot:trigger class="btn">Pop below anchor</x-slot:trigger>
Pop down
</x-dropdown>