Dropdown

A toggle-triggered overlay menu. Uses the Popover API for native light-dismiss behavior. The JS module adds keyboard navigation (arrows, Home, End, typeahead). Falls back to aria-expanded toggling without the Popover API.

Basic dropdown

index.htmlhtml
<div class="ln-dropdown">
  <button class="ln-dropdown__toggle" aria-expanded="false">
    Actions ▾
  </button>
  <div class="ln-dropdown__menu">
    <a class="ln-dropdown__item" href="#">Edit</a>
    <a class="ln-dropdown__item" href="#">Duplicate</a>
    <div class="ln-dropdown__divider"></div>
    <a class="ln-dropdown__item ln-dropdown__item--danger" href="#">Delete</a>
  </div>
</div>

Dropdown with headings

index.htmlhtml
<div class="ln-dropdown">
  <button class="ln-dropdown__toggle" aria-expanded="false">
    More ▾
  </button>
  <div class="ln-dropdown__menu">
    <div class="ln-dropdown__heading">Navigate</div>
    <a class="ln-dropdown__item" href="#">
      <span class="ln-dropdown__label">Go to file</span>
      <span class="ln-dropdown__shortcut">⌘P</span>
    </a>
    <a class="ln-dropdown__item" href="#">
      <span class="ln-dropdown__label">Go to line</span>
      <span class="ln-dropdown__shortcut">⌘G</span>
    </a>
    <div class="ln-dropdown__divider"></div>
    <div class="ln-dropdown__heading">Actions</div>
    <a class="ln-dropdown__item" href="#">
      <span class="ln-dropdown__label">Copy link</span>
    </a>
  </div>
</div>

Reference

ClassDescriptionResponsive
.ln-dropdownDropdown containerNo
.ln-dropdown__toggleTrigger elementNo
.ln-dropdown__menuPopover menu panelNo
.ln-dropdown__itemMenu item (link or button)No
.ln-dropdown__iconItem leading iconNo
.ln-dropdown__labelItem text labelNo
.ln-dropdown__shortcutKeyboard shortcut hintNo
.ln-dropdown__headingSection heading inside menuNo
.ln-dropdown__dividerSeparator line between groupsNo
.ln-dropdown--endRight-align menuNo
.ln-dropdown--upOpen menu above triggerNo
.ln-dropdown--startLeft-align menuNo
.ln-dropdown--wideMatch menu width to triggerNo
.ln-dropdown--{role}Role modifier (primary, secondary, success, warning, danger, info)No