Skip to content
Nana UI

Navigation

Menu

A menu / navigation list. Lays out nana-menu-item (and nana-menu-label) children, manages roving-tabindex keyboard navigation, and bubbles nana-select when an item is chosen.

View .md Download
Actions Edit Delete
npm install @nana-tec/ui-components
import "@nana-tec/ui-components/menu";
<nana-menu style="max-width:220px">
<nana-menu-label>Actions</nana-menu-label>
<nana-menu-item>Edit</nana-menu-item>
<nana-menu-item>Delete</nana-menu-item>
</nana-menu>

Menu items support shortcut, active, selected, destructive, submenu, and prefix icons.

Actions Copy Paste Share Delete
Home Docs Pricing

Properties

PropertyAttributeTypeDefaultDescription
borderedborderedbooleanfalsePanel look — border + shadow (e.g. inside a dropdown)
orientationorientationMenuOrientation'vertical'Layout direction
variantvariantMenuVariant | undefined—Panel flavour — sets the frosted-glass popover look

Events

EventDescription
nana-selectBubbled from a chosen item (detail.value)

Slots

SlotDescription
(default)nana-menu-item / nana-menu-label children

CSS parts

PartDescription
::part(menu)The list container

CSS custom properties

PropertyDescription
--nana-menu-bgBackground
--nana-menu-paddingInner padding
--nana-menu-blurBackdrop blur behind the panel
--nana-menu-max-heightPanel height before its items scroll
--nana-menu-radiusPanel corner radius
EventTypeDescription
nana-selectCustomEventBubbled from a chosen item (detail.value)
SlotDescription
(default)nana-menu-item / nana-menu-label children
VariableDescription
--nana-menu-bgBackground
--nana-menu-paddingInner padding
PartDescription
menuThe list container
  • Keyboard accessible
  • Screen-reader labels
  • Focus-visible states
  • ARIA roles and states
  • WCAG 2.2 AA contrast
Explore Menu interactively Every state, prop, and edge case — with live controls — in Storybook.
View in Storybook