Skip to content
Block Kit for React
Esc
↑↓navigate↵open⌘Jpreview
On this page

Overflow menu

A kebab (⋮) menu that opens a short list of actions or links.

overflow renders as a “⋮” button that opens a dropdown of up to 5 options. Reach for it when an actions row or section accessory has more actions than fit as buttons.

Your AppAPP
This is a section block with an overflow menu.
onActionInteract with the preview.

Fields

PropType
typestring

Always `overflow`.

Typestring
optionsPlainTextOption[]

The menu's items, in order. Slack allows up to 5.

TypePlainTextOption[]
action_id?string

Identifies this action in the interaction payload. Must be unique within the block. Maximum length is 255 characters.

Typestring
confirm?ConfirmationDialog

Shows a confirmation dialog before the selection is dispatched. See Confirmation dialogs.

TypeConfirmationDialog

Each option is a plain-text option object:

PropType
textPlainTextElement

The option's label. Maximum length is 75 characters.

TypePlainTextElement
value?string

Sent back in the interaction payload when this option is picked. Maximum length is 75 characters.

Typestring
url?string

Only valid on overflow options. Opens in a new tab when the option is clicked, in addition to dispatching the action. Maximum length is 3000 characters.

Typestring

Examples

In an actions block

Your AppAPP
onActionInteract with the preview.

With a confirmation dialog

Your AppAPP
Row actions
onActionInteract with the preview.

Interactivity

Picking an item (after any confirm dialog is accepted) closes the menu, calls onAction with the chosen option under selected_option, and opens the option’s url in a new tab if it has one:

{
  "type": "overflow",
  "action_id": "overflow-action",
  "block_id": "b1",
  "action_ts": "1706000000.000100",
  "selected_option": {
    "text": { "type": "plain_text", "text": "Open docs", "emoji": true },
    "value": "value-2",
    "url": "https://api.slack.com"
  }
}

The menu also supports arrow keys, Home/End, and Enter for keyboard navigation, and closes on Escape or an outside click. Like a button, overflow doesn’t write to state.values: it’s a one-shot action, not a persisted value.

Was this page helpful?