Skip to content
Documentation

Overlays

Menu

A list of actions or options that opens from a button.

Needs dsgn.js components/menu.css

Action menu

Action menu
<button class="dsgn-button" data-variant="subtle" data-intent="neutral" popovertarget="dx-menu">Actions<span class="dsgn-icon" data-end aria-hidden="true">expand_more</span></button>
<div class="dsgn-menu" id="dx-menu" popover role="menu" aria-label="Invoice actions">
  <button class="dsgn-menu-item" role="menuitem"><span class="dsgn-icon" aria-hidden="true">edit</span><span class="dsgn-menu-item-label">Edit</span><span class="dsgn-menu-item-meta">E</span></button>
  <button class="dsgn-menu-item" role="menuitem"><span class="dsgn-icon" aria-hidden="true">download</span><span class="dsgn-menu-item-label">Download PDF</span></button>
  <div class="dsgn-menu-divider" role="separator"></div><div class="dsgn-menu-label">Show</div>
  <button class="dsgn-menu-item" role="menuitemcheckbox" aria-checked="true"><span class="dsgn-menu-item-label">Paid invoices</span></button>
  <div class="dsgn-menu-divider" role="separator"></div>
  <button class="dsgn-menu-item" role="menuitem" data-intent="danger"><span class="dsgn-icon" aria-hidden="true">delete</span><span class="dsgn-menu-item-label">Delete</span></button>
</div>

Usage

Action menu (needs dsgn.js for arrow keys, typeahead and focus return):

Item height = control height (Density). States: hover / keyboard highlight, pressed, checked (role="menuitemcheckbox|menuitemradio" + aria-checked="true" → trailing check), danger intent, disabled. The Select picker (appearance: base-select) reuses the same look.

Details

Classes
.dsgn-menu .dsgn-menu-item .dsgn-icon .dsgn-menu-item-label .dsgn-menu-item-meta .dsgn-menu-divider .dsgn-menu-label .dsgn-input
Tokens used
--dsgn-border --dsgn-border-width --dsgn-control-font-size --dsgn-control-gap --dsgn-control-line-height --dsgn-control-pad-x --dsgn-control-pad-y --dsgn-control-text --dsgn-danger-subtle --dsgn-danger-subtle-hover --dsgn-danger-text --dsgn-duration-fast --dsgn-ease --dsgn-focus --dsgn-focus-danger --dsgn-focus-width --dsgn-font-icon --dsgn-font-sans --dsgn-font-size-caption --dsgn-font-weight-medium --dsgn-font-weight-regular --dsgn-icon-grade --dsgn-line-height-caption --dsgn-line-separator --dsgn-neutral-subtle --dsgn-neutral-subtle-hover --dsgn-radius-l --dsgn-radius-m --dsgn-shadow-overlay --dsgn-space-4 --dsgn-space-40 --dsgn-space-6 --dsgn-space-64 --dsgn-surface-raised --dsgn-text --dsgn-text-disabled --dsgn-text-muted
In Figma
Menu · Menu item
Import alone
dsgn.systems/components/menu.css