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.

Templates

{#include components/navigation/menu /}
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.
{#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).
{#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.
{#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).
{#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).