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)