Unify Applications
Logo
Menu & Navigation Menu

Menu & Navigation Menu

Logo

7 mins READ

The Menu block renders a vertical list of clickable items — each with a label, optional caption, start/end icon or image, and a default or danger style. It works in two modes: Static (you compose the item list by hand) and Mapped (items are generated from a bound data source). Items can be plain Label items or Confirmation items that require a second click before acting. A new Menu arrives with three starter items at full width.

Tip: When to use Menu: Offer a flat list of actions or choices — row actions, quick links, a settings list. Build the list from data with Mapped mode. Add inline confirmation for destructive actions. For hierarchical navigation with nested items and links, use Navigation Menu instead.

unify-applications-menu-and-navigation-menu-01-menu-block-static-items.png
unify-applications-menu-and-navigation-menu-01-menu-block-static-items.png

Properties

Content

PropertyTypeDefaultDescription
type"STATIC" | "DYNAMIC"STATICStatic: hand-built item list. Mapped (Dynamic): generated from a bound data source.
dataarray (binding)—Mapped only. (optional) The bound data source whose rows become menu items.
menuItemsitem listThree starter itemsStatic only. (optional) The hand-built item list.
initialSelectedMenuItemIdstring—The item that starts out selected when the menu loads.
menuItemitem templatetype label, variant defaultMapped only. (optional) Template applied to every row: Id, Label, Caption, Is Confirmation Type and Confirmation Label mapped from columns; Type and icons set once.

Per-Item Settings (Static Mode)

Each item in the Static list opens a detail panel with its own settings:

unify-applications-menu-and-navigation-menu-02-menu-item-settings.png
unify-applications-menu-and-navigation-menu-02-menu-item-settings.png

Property

Type

Default

Description

Type (type)

"label" | "confirmation"

label

confirmation asks for a second click before firing.

Id (value)

string

—

The item's identifier. Appears in selected state.

Label (label)

string

—

The visible item text.

Caption (caption)

string

—

Secondary text under the label.

Confirmation Label (confirmationLabel)

string

—

Text shown after the first click. Appears when Type is Confirmation.

appearance.variant

"default" | "danger"

default

Danger styles the item red for destructive actions.

Start Decorator (appearance.startDecorator)

icon or image

—

Icon or image before the label.

End Decorator (appearance.endDecorator)

icon or image

—

Icon or image after the label.

Appearance

PropertyTypeDefaultDescription
size"sm" | "md"mdCompact or regular item height.
stylesstyle setw-fullWidth/min/max, height/min/max, flex layout, margin, padding, gap.

Events

EventTriggerAvailable when
On ClickThat specific item is clicked (on each item)Static mode
On Menu Item ClickAny generated item is clickedMapped mode

Methods

MethodParamsEffect
selectMenuListItemmenuItemIdMarks the item as selected without firing any click event. Passing an unknown id clears the selection.

Exposed State

State keyTypeDescription
{{ id.selectedItem.id }}stringId of the last clicked or programmatically selected item.
{{ id.selectedItem.label }}stringLabel of that item.

Behavior & Gotchas

Warning: The whole menu disappears when it has no items to show. A Static menu whose items are all hidden and a Mapped menu with an empty data source render nothing at all — no placeholder.

Warning: Click events are wired differently in the two modes. Static: each item has its own On Click. Mapped: one block-level On Menu Item Click fires for all items. Switching modes means re-wiring events.

Note: A confirmation item stays confirming — there is no timeout. The item's text changes to its Confirmation Label and waits for a second click. There is no automatic revert.

Note: selectMenuListItem fires no event. It updates state but does not fire On Click or On Menu Item Click.

The Navigation Menu block (shown as "Navigation" in the block picker) renders a list of navigation items — a vertical sidebar or a horizontal top bar — and tracks which one is currently active. Each item is either a leaf (a single selectable tab drawn as a Custom entry or a Page link) or a Group that nests other items. Pair it with a Navigation Container and the container swaps its content whenever the menu's selection changes.

Tip: When to use Navigation Menu: Build the primary navigation for an interface — left sidebar or top bar — where one item stays highlighted as the active section. Group related destinations under a collapsible parent. Link items directly to static pages, or keep them Custom and drive your own content region.

This block is navigation inside a page. For the app-level navigation menu that links your app's pages, see Navigation Overview.

Properties

Content

Setting

Type

Default

Description

Items

item list

—

The navigation items. Each can be a leaf (Custom or Page) or a Group nesting other items.

Open by Default

item

First item

The item that starts out active when the menu loads.

Interactions

event list

—

On Change. See Events below.

Permissions

permission rule

—

Restrict who sees the block.

Appearance

Setting

Type

Default

Description

Direction

Vertical | Horizontal

—

Sidebar or top bar orientation. Hidden when the menu sits inside a Navigation Container.

Expand Nav Items by Default

boolean

—

Vertical menus only. Shows Group items expanded when the menu loads.

Visibility

conditions

—

Show or hide the block.

Styles

style set

—

Width/min/max, height/min/max, flex layout, padding, gap, overflow, shadow, stroke, radius.

Events

Event

Trigger

On Change

The active navigation item changes.

Methods

Method

Params

Effect

Change Navigation Tab

Destination Navigation Tab

Makes the chosen item the active one.

Per-Item Settings

Property

Type

Description

label

string

The item's visible text. Bindable, translatable.

variant

"page" | "custom"

Page links to a static interface page; Custom lets you wire your own content.

Select Page

page

Page items only. Only pages with static paths are allowed.

Page Inputs

inputs

Page items only. The values passed to the selected page.

startDecorator

icon name

Icon shown before the label.

visibility

condition

Hides the item when false.

permissions

rule

Hides the item from users who lack access.

Exposed State

State key

Type

Description

{{ id.content.value.id }}

string

The currently active item's id.

{{ id.content.value.title }}

string

The currently active item's title.

Behavior & Gotchas

Note: Pair with Navigation Container for content switching. The menu is the control; the container is the content area it drives. A new Navigation Container arrives already linked to its own Navigation Menu. See Navigation Container below.

Warning: Group items don't themselves have click actions. Groups are collapsible parent nodes — clicking them expands or collapses nested items rather than selecting the group itself.

The Navigation Container block renders different content depending on the selected item in a Navigation Menu. When the menu's active item changes, the container swaps the visible page or block to match. It is the content region paired with the Navigation Menu control.

Tip: When to use Navigation Container: Build a tabbed or routed content area whose visible pane changes when the user selects a nav item. The container handles the swap; the Navigation Menu handles the selection tracking.

Properties

Property

Type

Default

Description

Navigation Menu

block reference

The menu created with the block

The Navigation Menu block that drives this container's content. You can point it at a different Navigation Menu on the page.

Content slots

managed list

—

One content slot for each Custom menu item, kept in sync with the menu. It isn't shown in the inspector: you fill each slot on the canvas.

Interactions

event list

—

On Click.

Permissions

permission rule

—

Restrict who sees the block.

Set up a Navigation Container

  1. Drag Navigation Container onto the page. It arrives with its own Navigation Menu as its header, already set in Navigation Menu.

  2. Select the menu and add its items. A Custom item gets its own content slot in the container. A Page item loads an interface page in place.

  3. On the canvas, select each Custom item in the menu and fill its content slot with blocks.

  4. Preview the page and click each item. Only the selected item's content is loaded at a time.

Block

Relationship

Button Group (Toggle)

A segmented control for simple view switching without nested groups.

Tabs

Full content-switching pattern with visible tab headers.

Navigation Container

The content area driven by Navigation Menu selection.

App navigation

The app-level menu that links your app's pages, set up outside the page.

FAQs

What is the difference between Static and Mapped mode in the Menu block?

In Static mode, you define the menu items manually in the inspector — each item has a fixed label, icon and action. This is best for menus where the options are always the same. In Mapped mode, items are generated from a data source list (like a platform automaton result), and each item's label, icon and click behavior are bound to fields from that data. Use Mapped when the menu content comes from your data, like a list of user actions fetched from a permissions table.

How do I add a confirmation step before a destructive menu action?

In the Menu block's item settings, set the item's Type to Confirmation and fill in Confirmation Label. When the user clicks the item, its text changes to the Confirmation Label inline. A second click fires the item's On Click event (On Menu Item Click in Mapped mode). Set the item's variant to Danger to style destructive actions in red.

How does the Navigation Container know which Navigation Menu item was selected?

The Navigation Container reads the linked Navigation Menu's currently active item. For a Custom item it shows that item's content slot; for a Page item it loads the page. A new Navigation Container arrives already linked to its own Navigation Menu. To use a different menu, set the container's Navigation Menu property to that block. There is no event wiring needed.

Can I have both Group and leaf items at the same level in a Navigation Menu?

Yes. A Navigation Menu can mix Group items (which expand to show child items) and leaf items (which become the active item and fire On Change when selected) at the same level of the hierarchy. Groups can also be nested — a Group can contain other Groups. The menu renders the structure you define in the items tree.