Popover
Introduction
Die Popover-Komponente ist ein interaktives Overlay-Element, das Zusatzdetails, Aktionen oder kontextbezogene Formulare in einer schwebenden Karte anzeigt, die relativ zu einem Anker-Triggerelement positioniert ist.
Speziell für unsere Zero-JS-Static-Rendering-Architektur und das bedingte Hydration-Modell konzipiert, nutzt der Popover effiziente, Page-Builder-freundliche Bindings. Er bleibt im HTML-Layout vollständig statisch, bis er als interaktive Preact-Insel hydriert wird, um Umschalt- und Escape-Auslöser reibungslos zu verarbeiten.
Usage
Diese Beispiele zeigen, wie Redakteure Popover-Blöcke konfigurieren und binden.
1. Einfacher informativer Popover
Ein sauberer, rein textbasierter Popover – ideal, um Begriffe zu erklären, Definitionen anzubieten oder leichte Hinweistexte anzuzeigen, ohne das Hauptlayout zu überladen.
{
"type": "popover",
"triggerText": "Learn More",
"title": "Data Residency",
"description": "Your profile data is stored securely in compliant Frankfurt (EU) server nodes."
}
Data Residency
Your profile data is stored securely in compliant Frankfurt (EU) server nodes.
Data Residency
Your profile data is stored securely in compliant Frankfurt (EU) server nodes.
2. Erweiterter Popover mit Inhalt und Footer-Aktionen
Ein Onboarding-Popover mit klar getrennten Abschnitten: einem informativen Header, Fließtext und benutzerdefinierten Aktionsbuttons im Footer-Slot.
{
"type": "popover",
"triggerText": "Setup Account",
"title": "Configure API Integrations",
"description": "Connect with external tools seamlessly.",
"body": "Your subscription allows up to 5 concurrent server channels. Ensure your client secret credentials are copied before proceeding.",
"footer": "Connect Keys",
"showArrow": true
}
Configure API Integrations
Connect with external tools seamlessly.
Configure API Integrations
Connect with external tools seamlessly.
3. Popover mit benutzerdefiniertem SVG-Trigger und verschachtelten Kind-Blöcken
Für komplexere Dashboard-Panels können Popover benutzerdefinierte SVG-Trigger (mit Roh-Markup innerhalb von triggerIcon) einbetten und Listen untergeordneter Komponenten (wie verschachtelte Badges, Text oder zusätzliche Buttons) in der schwebenden Karte rendern.
{
"type": "popover",
"triggerText": "System Status",
"triggerIcon": "<circle cx=\"12\" cy=\"12\" r=\"10\" /><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" /><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />",
"triggerAriaLabel": "System Operations Status Info",
"title": "System Heartbeat",
"description": "Operational health checks",
"showArrow": true,
"closable": true,
"children": [
{
"blockType": "badge",
"text": "API: OK",
"colorPalette": "green"
},
{
"blockType": "badge",
"text": "DB: OK",
"colorPalette": "green"
}
]
}
System Heartbeat
Operational health checks
System Heartbeat
Operational health checks
Props
| Eigenschaft | CMS-Feldtyp | Standard | Beschreibung / unterstützte Optionen |
|---|---|---|---|
Trigger-Text (triggerText) | string | "Click me" | Das im Umschalt-Button des Popovers gedruckte visuelle Label. |
Trigger-Icon SVG (triggerIcon) | string | - | Roh-SVG-Markup (z. B. <path d="..." />), das neben dem Text in den Button eingefügt wird. |
Trigger-ARIA-Label (triggerAriaLabel) | string | - | Beschreibendes Label für Screenreader. Erforderlich, wenn der Trigger nur ein Icon ohne Text ist. |
Titel (title) | string | - | Der fett gedruckte Kopftext oben auf der Karte. |
Beschreibung (description) | string | - | Begleit-Untertitel unter dem Header. |
Fließtext (body) | string | - | Hauptabsatz im mittleren Bereich des Popovers. |
Footer-Text (footer) | string | - | Zusammenfassungstext oder Buttons am unteren Rand der Karte. |
Pfeil anzeigen (showArrow) | boolean | true | Rendert bei true eine kleine Spitze vom Kartenrand zum Trigger. |
Schließbar (closable) | boolean | true | Rendert einen kleinen Schließen-Button in der oberen Ecke des Popovers. |
Kind-Blöcke (children) | list | - | Verschachtelte Page-Builder-Blöcke (Text, Badges, Buttons), die direkt in die Body-Liste eingefügt werden. |
Architecture Notes
- Intelligente Viewport-Grenzausrichtung: Die interaktive Preact-Insel verfolgt den Bildschirmplatz dynamisch. Öffnet sich der Popover nahe einer Kante, wird die Richtung automatisch umgekehrt (z. B. von unten nach oben) und entlang der Achse verschoben, um Abschneiden zu verhindern.
- Einheitliche Event-Delegation: Öffnen, Schließen, Klick-außerhalb und Escape werden zentral vom Root-Element delegiert. Das minimiert clientseitige Event-Bindings.
- Semantische Overlays: Popover kompilieren in native, barrierefreie Layouts mit
role="dialog",aria-haspopup="dialog"undaria-expanded="true|false"– volle Screenreader-Kompatibilität ab Werk.