Skip to content
Velkin LogoVelkin Logo
Velkin
VELKIN/UI

Modern UI components for product teams and their AI agents. Lit core, typed wrappers, live MCP.

sales@velkinui.com

Product

  • Docs
  • Components
  • Studio
  • Pricing

Resources

  • Quick start
  • Blog
  • Changelog
  • Roadmap
  • Status

Project

  • About
  • Contact
  • License
  • Privacy
  • Terms

© 2026 Velkin. MIT core · Pro licenses available.

VELKIN

Dropdown

A dropdown menu component with trigger slot and keyboard navigation.

vu-dropdown · @velkin/react/dropdown

Copy page

Import

React
npm i @velkin/react

import { VuDropdown } from "@velkin/react/dropdown";

Examples

API

Tables match the member selected under Import.

Props

PropTypeDefaultDescription
triggerVuDropdownTrigger"click"Open interaction mode. Default: `"click"`.
placementVuDropdownPlacement"bottom"Preferred side before collision flip. Default: `"bottom"`.
alignVuDropdownAlign"center"Alignment along the trigger edge. Default: `"center"`.
openbooleanfalseWhether the menu is visible. Default: `false`.
valuestring""Last selected row token. Default: `""`.
widthstring"auto"Panel inline size preset or CSS length. Default: `"auto"`.
variantVuDropdownVariant"elevated"Panel surface paint recipe. Default: `"elevated"`.
toneVuDropdownTone"normal"Neutral surface weight. Default: `"normal"`.
sizeVuDropdownSize"md"Panel padding scale; forwards to items without their own. Default: `"md"`.
itemColorVuDropdownItemColor"default"Row intent forwarded to items without their own. Default: `"default"`.
radiusVuDropdownRadius"md"Panel corner preset (`sm`/`md`/`lg`; Role C′ omits `none`/`full`). Default: `"md"`.
maxHeightstring""Max scroll region block size; empty uses stylesheet default. Default: `""`.
closeOnSelectbooleantrueClose after a row activates. Default: `true`.
offsetnumber8Gap in px between trigger and panel. Default: `8`.
disabledbooleanfalseBlocks open and closes an open menu. Default: `false`.

Events

EventDetailDescription
vu-open-changeVuDropdownOpenChangeDetailWhen `open` changes (`detail.open`).
vu-selectVuDropdownSelectDetailWhen a row is activated.
vu-openCustomEvent<void>When the menu begins opening.
vu-closeCustomEvent<void>When the menu begins closing.

Slots

SlotDescription
triggerClickable or hoverable control (typically `<vu-button>`).
—- Menu rows (`<vu-dropdown-item>`), `<vu-divider>`, or `role="menuitem"`.

CSS parts

PartDescription
triggerWrapper around the trigger slot.
bodyPositioned menu panel (`role="menu"`).
body-scrollScrollable inner wrapper when content exceeds max height.

Methods

MethodDescription
show- Sets `open` to true.
hide- Sets `open` to false.
toggle- Toggles `open`.
focus- Focuses the slotted trigger control.

Types

NameDefinition
VuDropdownAlign
"start" | "center" | "end"
VuDropdownItemColor
"default" | "primary" | "success" | "warning" | "danger"
VuDropdownOpenChangeDetail
{ open: boolean; }
VuDropdownPlacement
"top" | "bottom" | "left" | "right" | "auto"
VuDropdownRadius
"sm" | "md" | "lg"
VuDropdownSelectDetail
{
  value: string;
  label: string;
  item: HTMLElement;
  checked?: boolean;
  kind?: VuDropdownItemKind;
  href?: string;
}
VuDropdownSize
"sm" | "md" | "lg"
VuDropdownTone
"subtle" | "normal" | "strong"
VuDropdownTrigger
"click" | "hover" | "submenu"
VuDropdownVariant
"outline" | "elevated" | "soft"
VuDropdownWidthPreset | string
string

Related

Companions

  • Dropdown Item`vu-dropdown-item`

Navigation

  • Adaptive BarA responsive toolbar component that overflows extra items into a menu.
  • AppbarAn application bar component with start, center, and end slots.
  • BreadcrumbA breadcrumb component for navigation trails with optional collapse.
  • Context MenuA context menu component with grouped actions and icons.
  • MenubarA menubar component with nested submenus and keyboard navigation.
  • Nav PanelA navigation panel component for drawer bodies with icon-rail collapse.

Guides

  • AccessibilityFocus and naming
  • SlotsHeader, body, and item slots

Browse

  • Previous: Context MenuEarlier in the sidebar
  • Next: MenubarLater in the sidebar
  • All componentsBrowse the full index