PageSection
PageSection
Any authored item allowed directly in a page's sections array. Modal may be placed here or inside a normal Section because its authored position does not affect its runtime presentation.
Can be one of:
StandardSection
A section with one normal element flow.
RegionSection
A section arranging content into rows of regions.
Divider
A thematic divider between elements.
Modal
An addressable dialog rendered outside normal document flow. Any same-document Link whose fragment resolves to this Modal's ID is enhanced by the QP runtime to open it as a dialog.
StickyTray
An authored viewport-persistent content tray.
StickyTray may be authored as an Element or directly as a PageSection. Its authored location establishes an anchor in document flow, while Quail Pages owns the tray markup, accessibility, viewport placement, visibility, and runtime state. The handle renders Elements; the panel renders ordinary Sections. Handle content and its disclosure button are separate interactive surfaces.
When visibilityTriggers is omitted, the tray is simply available. Within each trigger group, any trigger may satisfy the group (OR). Every group must be satisfied for the tray to be presented (AND). Responsive triggers use the canonical QP mobile, tablet, and desktop presentation-width ranges. Anchor triggers are evaluated against the tray's authored anchor: anchor-passed becomes true after the anchor crosses above the viewport start, anchor-visible is true while any part of the anchor is inside the viewport, and anchor-passed-center becomes true after the anchor crosses above the viewport center line. Authored location alone enables no visibility trigger.
Vertical and horizontal placement independently control where the active tray appears and default to top-center. Overlay placement accounts for occupied header/footer boundaries. Inset fills the top or bottom edge, independently of horizontal alignment, and reserves its measured handle in the document viewport. Multiple inset handles stack in authored order. The panel overlays the remaining viewport. Inset shells move to the document viewport; authored anchors stay put.
Three independent choices: disclosure controls panel interaction; visibilityTriggers controls when the whole tray appears; positionMode controls whether it reserves viewport space. For a permanent sticky menu, author the menu in handle.elements with no sections and omit visibilityTriggers. To show that menu only after scrolling past its authored position, add visibilityTriggers: [["anchor-passed"]]. No disclosure button is needed.
Toc
A page-aware table of contents generated automatically from eligible sections in the current page. Toc is a specialized composition rather than a standalone rendering primitive. It derives its navigation from the page and uses shared QP primitives to present that navigation consistently. By default, Toc renders as a position-aware StickyTray. It can also render an in-flow Card presentation. When placed inside a compatible container, the renderer may reuse the container supplied by its parent rather than emitting a redundant wrapper.
PluginRef
An authored invocation of a registered plugin. Additional invocation fields are owned by the selected plugin.
ComponentRef
A reference that includes persisted reusable component content. A ComponentRef may be authored wherever its containing contract permits a component reference. The referenced component is expanded once: persisted components may not contain another ComponentRef, including direct or indirect self-references.
Example
Required
Full
examples are generated from the schema.