Skip to content

Overflow Menu ​

Dropdown menu for secondary actions on limited space. Triggered by a button (typically three dots). Supports sorting with active state indicators.


Preview ​


When to use ​

Use overflow menus for extra functionality where space is limited — profile actions, sorting, secondary operations. Place to the right of text-based menu items.

Do not use for primary navigation. Do not use with fewer than 3 or more than 10 items. Do not let the menu stand alone without context.


Usage ​

html
<div class="overflow-menu">
  <button class="overflow-menu__trigger" aria-haspopup="menu" aria-expanded="false">
    ⋯
  </button>
  <div class="overflow-menu__panel" role="menu">
    <ul class="overflow-menu__list">
      <li class="overflow-menu__item">
        <button class="overflow-menu__link" role="menuitem">Redigér</button>
      </li>
      <li class="overflow-menu__item">
        <button class="overflow-menu__link" role="menuitem">Dupliker</button>
      </li>
      <li class="overflow-menu__item">
        <button class="overflow-menu__link overflow-menu__link--danger" role="menuitem">Slet</button>
      </li>
    </ul>
  </div>
</div>

Sorting variant ​

html
<div class="overflow-menu overflow-menu--left">
  <button class="overflow-menu__trigger" aria-haspopup="menu" aria-expanded="false">
    Sortér
  </button>
  <div class="overflow-menu__panel" role="menu">
    <ul class="overflow-menu__list">
      <li class="overflow-menu__item">
        <button class="overflow-menu__link overflow-menu__link--active" role="menuitem">Nyeste først</button>
      </li>
      <li class="overflow-menu__item">
        <button class="overflow-menu__link" role="menuitem">Ældste først</button>
      </li>
    </ul>
  </div>
</div>

Do's and don'ts ​

✓Do
Place to the right of text-based menu items
✓Do
Use clear, action-oriented labels
✓Do
Place destructive actions last
✓Do
Sort parameters alphabetically with checkmark on active
✗Don't
Use for primary navigation
✗Don't
Let the menu stand alone without context
✗Don't
Hide essential functions users must not miss

Classes ​

ClassDescription
.overflow-menuContainer (position: relative)
.overflow-menu__triggerTrigger button
.overflow-menu__panelDropdown panel
.overflow-menu__listItem list
.overflow-menu__itemList item
.overflow-menu__linkAction button/link
.overflow-menu__link--activeActive item (checkmark)
.overflow-menu__link--dangerDestructive action (red)
.overflow-menu__link--disabledDisabled item
.overflow-menu--openPanel visible
.overflow-menu--leftLeft-aligned panel

Accessibility ​

  • aria-haspopup="menu" and aria-expanded on trigger
  • role="menu" on panel, role="menuitem" on items
  • Arrow keys for navigation, Escape to close
  • Focus moves to first item on open, returns to trigger on close

References ​

  • Jeff Johnson: Designing with the Mind in Mind (2014)
  • Daniel Burka: Stop the overuse of overflow menus (2016)