Skip to content

Dropdown

Popover dropdown component with customizable trigger and content. Closes on click outside or Escape key. Supports programmatic control.

Import

typescript
import { Dropdown } from 'vuiii'

Basic Usage

vue
// Basic dropdown with default button trigger
import { Dropdown, DropdownMenu } from 'vuiii'

<Dropdown label="Options" variant="primary">
  <DropdownMenu :items="menuItems" @itemClick="handleClick" />
</Dropdown>

More Examples

vue
// With custom trigger slot
<Dropdown>
  <template #trigger="{ open, close, toggle, isOpen }">
    <IconButton icon="ellipsis-vertical" @click="toggle()" />
  </template>

  <template #default="{ close }">
    <div class="custom-dropdown-content">
      <button @click="doSomething(); close()">Action</button>
    </div>
  </template>
</Dropdown>
vue
// Programmatic control via ref
const dropdownRef = ref<DropdownRef>()

// Open/close programmatically
dropdownRef.value?.open()
dropdownRef.value?.close()
dropdownRef.value?.toggle()

// Check state
if (dropdownRef.value?.isOpen.value) { ... }
vue
// With dropdown placement control
<Dropdown label="Menu" dropdown-placement="right">
  <DropdownMenu :items="items" />
</Dropdown>

Storybook

For interactive examples with all variants, see Dropdown in Storybook.

Released under the MIT License.