Skip to content

Overflow Menu ​

Dropdown menu for secondary actions and sorting. Triggered by a button with keyboard navigation support.

Demo ​

Standard (actions)

With label

Sorting

Aktiv sortering: newest

Left aligned

Installation ​

vue
<script setup>
import { GTOverflowMenu } from '@grundtone/vue';
</script>

In Nuxt, GTOverflowMenu is auto-imported.

When to use ​

Use for extra functionality where space is limited. 3-10 items. Place to the right of text-based menu items.

Do not use for primary navigation or essential functions users must not miss.

Usage ​

Actions menu ​

vue
<GTOverflowMenu
  :items="[
    { label: 'Redigér', value: 'edit' },
    { label: 'Dupliker', value: 'duplicate' },
    { label: 'Slet', value: 'delete', danger: true },
  ]"
  @select="handleAction"
/>

With label ​

vue
<GTOverflowMenu
  label="Handlinger"
  :items="[...]"
  @select="handleAction"
/>

Sorting ​

vue
<GTOverflowMenu
  label="Sortér"
  align="left"
  :items="[
    { label: 'Nyeste først', value: 'newest', active: sort === 'newest' },
    { label: 'Ældste først', value: 'oldest', active: sort === 'oldest' },
  ]"
  @select="sort = $event.value"
/>
vue
<GTOverflowMenu
  :items="[
    { label: 'Profil', href: '/profile' },
    { label: 'Indstillinger', href: '/settings' },
    { label: 'Log ud', href: '/logout', danger: true },
  ]"
/>

Props ​

PropTypeDefaultDescription
itemsOverflowMenuItem[]—Menu items (required)
labelstring—Trigger label (icon-only if omitted)
align'left' | 'right''right'Panel alignment
ariaLabelstring'Flere muligheder'Screen reader label for trigger

OverflowMenuItem ​

PropertyTypeDescription
labelstringDisplay text
valuestringEmitted on select
hrefstringRenders as link
dangerbooleanDestructive styling
disabledbooleanDisabled state
activebooleanCheckmark (sort menus)

Events ​

EventPayloadDescription
selectOverflowMenuItemEmitted when an item is selected

Keyboard ​

  • Enter/Space: Open menu, select item
  • Arrow Down/Up: Navigate items
  • Home/End: First/last item
  • Escape: Close menu, return focus to trigger

Accessibility ​

  • aria-haspopup="menu" and aria-expanded on trigger
  • role="menu" on panel, role="menuitem" on items
  • Focus trapped in menu, restored on close

See Overflow Menu (Design System) for full CSS reference.