Live demo — this example is server-driven; run the showcase locally for the interactive version.
Menu
Use Menu straight from a Qute template — parameters and slots instead of Java builders. This reference is generated
from the runtime template sources: each template documents its parameters and slots in the header comment shown
beneath its include line.
Menu — PatternFly v6. Root of the menu family; compose menu-content (> menu-list /
menu-group) in the main block. The root owns roving-focus keyboard nav (handleKeyNav,
referenced by menu-list's @keydown).
Two modes.
Model-driven: pass menu=<org.sitenetsoft.quarkus.pha.model.Menu> (built via Menu.builder())
— renders the whole menu incl. generated Alpine for select/checkbox/view-more/search modes.
Slot shell: omit menu and compose menu-content in the main block (params below).
Optional params:
id, attrs — root id / raw passthrough.
plain — pf-m-plain. scrollable — pf-m-scrollable. modifiers — extra pf-m-* classes.
menu-content
{#include components/navigation/menu-content /}
Menu content — wraps the list(s)/group(s). Main-block content.
Optional: attrs — raw passthrough (e.g. a custom max-height for scrollable).
menu-group
{#include components/navigation/menu-group /}
Menu group — a titled section grouping a menu-list. Main-block content (a menu-list).
Optional: titleText —
rendered in __group-title.
menu-item
{#include components/navigation/menu-item /}
Menu item — the common menu entry. Renders <a> when href is set, else <button>.
For interactive variants (checkbox / radio with select-icon / item-action /
drilldown) hand-write the <li> inside menu-list instead.
Required: text.
Optional params:
href — link target (renders <a>); without it renders a <button>.
external — adds the external-link icon and target=_blank rel=noopener.
icon — leading icon ("set:slug") in __item-icon.
description — secondary line under the text (__item-description).
disabled — disables the button.
danger — pf-m-danger on the list-item.
itemId — id on the __item element.
noRole — omit the menuitem/none roles (for menus nested inside a
role=list scope, e.g. the breadcrumb dropdown — vnu forbids
li roles other than listitem anywhere under role=list).
menu-list
{#include components/navigation/menu-list /}
Menu list — the role=menu ul; holds menu-item includes (or raw interactive <li>s).
Main-block content.
Optional: ariaLabel — labels the menu for AT.
noRole — omit role="menu" (for lists whose items are not menuitems, e.g.
checkbox/action menus — avoids the aria-required-children failure).