Skip to content

Dropdown

A menu triggered by clicking or hovering an element.

Basic Usage

vue
<template>
  <bp-dropdown @select="handleSelect">
    <bp-button status="gray" type="secondary">Bottom</bp-button>

    <template #content>
      <bp-doption value="1">Option 1</bp-doption>
      <bp-doption value="2">Option 2</bp-doption>
      <bp-doption value="3">Option 3</bp-doption>
      <bp-doption value="4">Option 4</bp-doption>
      <bp-doption value="5">Option 5</bp-doption>
    </template>
  </bp-dropdown>
</template>

<script setup lang="ts">
const handleSelect = (value: string) => {
  console.log(value);
};
</script>

Trigger and Position

Configure trigger (click / hover) and position.

vue
<template>
  <bp-space>
    <bp-dropdown trigger="hover" @select="handleSelect">
      <bp-button status="gray" type="secondary">Hover trigger</bp-button>

      <template #content>
        <bp-doption value="edit">Edit</bp-doption>
        <bp-doption value="copy">Copy</bp-doption>
        <bp-doption value="delete">Delete</bp-doption>
      </template>
    </bp-dropdown>

    <bp-dropdown trigger="click" position="bottom-right" style="margin-left: 16px" @select="handleSelect">
      <bp-button status="gray" type="secondary">Click trigger (right-aligned)</bp-button>

      <template #content>
        <bp-doption value="1">Option 1</bp-doption>
        <bp-doption value="2">Option 2</bp-doption>
        <bp-doption value="3" disabled>Disabled</bp-doption>
      </template>
    </bp-dropdown>
  </bp-space>
</template>

<script setup lang="ts">
const handleSelect = (value: string) => {
  console.log(value);
};
</script>
positionPopup position
TriggerPosition
bottom-
triggerTrigger
TriggerType
click-

Doption Props

valueOption value
StringNumber
--
disabledWhether disabled
Boolean
--
selectTriggered on selectvalue?: DoptionValue-
openOpen the dropdown---
closeClose the dropdown---
defaultTrigger area--
contentDropdown content--

Doption Slots

defaultOption content--