Live demo — this example is server-driven; run the showcase locally for the interactive version.
Modal
Use Modal 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.
Modal — PatternFly v6 (modal-box). Root of the modal family; compose
modal-close / modal-header / modal-body / modal-footer includes in the main block.
Required: id — modal-box id; the backdrop gets {id}-backdrop and the header derives
{id}-title for aria-labelledby.
Optional params:
size — sm | md | lg (pf-m-*).
variant — danger | warning | success | info | custom (pf-m-* + colored title icon
in modal-header; "custom" renders PF's bell icon).
statusTitle — boolean; moves the variant's status class from the modal box to the
title element (core's HasStatusTitle).
alignTop — pf-m-align-top.
width — custom width (e.g. "50%") via PF's --pf-v6-c-modal-box--Width var.
ariaLabel — label the dialog directly (use for headerless modals).
eventOpen — self-contained mode: the backdrop owns x-data open state, opens on the
open-modal window event (detail = id), closes on Escape, and traps focus.
Without it the modal expects an outer x-data providing `open`.
escapeExpr — override the Escape-key expression (e.g. close an inner dropdown first).
attrs — raw attribute passthrough on the modal-box.
Model mode: pass modal=<org.sitenetsoft.quarkus.pha.model.Modal> — renders the FULL live pattern
(launcher + backdrop + box). Live inner-state compositions keep the slot shell.
The backdrop teleports to document.body: the PF page main-container creates a stacking context
(z-index + glass backdrop-filter) that would trap the fixed backdrop under the masthead.
PF React portals modals to document.body for the same reason.
modal-body
{#include components/feedback/modal-body /}
Modal body — main-block content.
Optional: scrollable — makes the body keyboard-scrollable (tabindex=0).
modal-close
{#include components/feedback/modal-close /}
Modal close button — closes via the family's `open` Alpine state.
Optional: ariaLabel (default "Close").
Modal header — title content is the include's main block (rich markup welcome).
Inherits modalId from the modal root and derives the {modalId}-title id that the
root's aria-labelledby points at.
Optional params:
headingLevel — h1…h6 (default h1).
variant — danger | warning | success | info | custom; renders the matching
title icon and pf-m-icon on the title.
(Inherited from the modal root automatically when set there.)
alert — boolean; prefixes the title with a screen-reader-only
"<Variant> alert:" span (core's IsAlert).
statusTitle — boolean; adds the variant's status class to the title element
(inherited from the modal root when set there).
iconName — custom title icon ("set:slug"), overrides the variant icon.
descriptionText — __description line under the title (inside __header-main, per core).
hasModalHelp — pf-m-help on the header and the modalHelp slot rendered after
__header-main (help button / popover).