Skip to content

Context Menu ​

bo-context-menu opens a menu at the pointer position when its trigger is context-clicked. The content is teleported to body and receives menu semantics.

Basic Usage ​

Right-click this surface

No action selected

<bo-context-menu>
  <bo-context-menu-trigger><div class="rounded border p-8">Right-click this surface</div></bo-context-menu-trigger>
  <bo-context-menu-content>
    <bo-context-menu-label>Actions</bo-context-menu-label>
    <bo-context-menu-item @select="action = 'Open'">Open</bo-context-menu-item>
    <bo-context-menu-item @select="action = 'Rename'">Rename</bo-context-menu-item>
    <bo-context-menu-separator />
    <bo-context-menu-item variant="destructive" @select="action = 'Delete'">Delete</bo-context-menu-item>
  </bo-context-menu-content>
</bo-context-menu>

Checkboxes and Radio Items ​

Items close the menu after selection. Checkbox items use v-model:checked; radio items must be inside bo-context-menu-radio-group and use v-model:value on that group.

Right-click for options

Grid: hidden. Color: blue

<bo-context-menu>
  <bo-context-menu-trigger><div class="rounded border p-8">Right-click for options</div></bo-context-menu-trigger>
  <bo-context-menu-content>
    <bo-context-menu-checkbox-item v-model:checked="checked">Show grid</bo-context-menu-checkbox-item>
    <bo-context-menu-radio-group v-model:value="color">
      <bo-context-menu-label>Color</bo-context-menu-label>
      <bo-context-menu-radio-item value="blue">Blue</bo-context-menu-radio-item>
      <bo-context-menu-radio-item value="green">Green</bo-context-menu-radio-item>
    </bo-context-menu-radio-group>
  </bo-context-menu-content>
</bo-context-menu>

API Reference ​

Component / propTypeDefaultDescription
BoContextMenucomponent-Root context and open state.
openbooleanfalseVisibility used by v-model:open.
closeOnOutsidebooleantrueCloses on a pointer event outside the content.
closeOnEscapebooleantrueCloses when Escape is pressed.
BoContextMenuTriggercomponent-Region that listens for contextmenu.
BoContextMenuContentcomponent-Teleported menu content.
BoContextMenuItemcomponent-Selectable item; emits select.
disabledbooleanfalsePrevents item selection.
insetbooleanfalseApplies inset item styling.
variant'default' | 'destructive'defaultItem visual variant.
BoContextMenuCheckboxItemcomponent-Toggleable item with v-model:checked.
BoContextMenuRadioGroupcomponent-Provides a string or number value to radio items.
BoContextMenuRadioItemcomponent-Radio item with required value.
BoContextMenuLabelcomponent-Non-interactive label; supports inset.
BoContextMenuSeparatorcomponent-Menu separator.

The menu supports Arrow Up/Down, Home, End, and Escape. Its default role is menu.

Released under the MIT License.