Zum Hauptinhalt springen

Ihre Meinung ist uns wichtig! Gemeinsam mit Ihnen möchten wir KoliBri stetig verbessern. Teilen Sie uns Ihre Ideen, Wünsche oder Anregungen mit – schnell und unkompliziert.

Popover

Diese Dokumentation wird aktuell überarbeitet und befindet sich im Beta-Status. Inhalte können sich noch ändern.
Diese Komponente wird erneut auf Barrierefreiheit getestet. Der vollständige Test steht noch aus und kann erst nach einem abgeschlossenen Release erfolgen.

Synonyme: Overlay, Popup, dynamisches Overlay

Beschreibung: Die Popover-Komponente bietet eine leichte, nicht-modale Overlay-Lösung, die temporär zusätzliche Inhalte neben einem Triggerelement anzeigt. Sie nutzt die native HTML Popover API für optimierte Performance.

Die Popover-Komponente wird intern innerhalb von KoliBri verwendet (z.B. im ) und ist nicht für die direkte Verwendung in der Anwendungsentwicklung vorgesehen. Verwenden Sie stattdessen die .

Beispiel

Einfaches Popover mit Standard-Konfiguration:

<button popovertarget="my-popover">Trigger</button>
<div id="my-popover" popover>
<p>Dies ist der Popover-Inhalt.</p>
</div>

Barrierefreiheit

  • Die Popover-Komponente nutzt die native HTML Popover API für verbesserte Unterstützung durch assistive Technologien.
  • Das Triggerelement und der Popover-Inhalt sollten semantisch miteinander verknüpft sein.
  • Der Popover-Inhalt sollte eine ausreichende Größe und Kontrast für die Lesbarkeit haben.
  • Bei verschachtelten oder mehreren Popovers kann die Fokussteuerung komplex werden; in solchen Fällen wird die Verwendung von oder empfohlen.

Verwendung

Best Practices / Empfehlungen

  • Verwenden Sie diese Komponente primär für interne KoliBri-Implementierungen.
  • Achten Sie darauf, dass der Popover-Inhalt nicht zu groß ist und auf verschiedenen Bildschirmgrößen angepasst werden kann.
  • Stellen Sie sicher, dass der Popover geschlossen werden kann, z.B. durch Klick außerhalb oder eine explizite Schließschaltfläche.
  • Verwenden Sie aussagekräftige Labels und Beschreibungen für das Triggerelement (_label, _ariaDescription).
  • Berücksichtigen Sie die Position des Popover-Inhalts (_popoverAlign), um Sichtbarkeitsprobleme zu vermeiden.

Anwendungsfälle

  • Interne Verwendung in der PopoverButton-Komponente
  • Flexible, leichte Overlay-Lösungen bei speziellen Anforderungen
  • Kontextabhängige Hilfeinformationen oder Aktionsmenüs

Konstruktion / Technik

Positionierung

Die Popover-Position wird über _popoverAlign gesteuert:

WertBeschreibung
topDas Popover wird über dem Triggerelement angeordnet.
bottomDas Popover wird unter dem Triggerelement angeordnet (Standard).
leftDas Popover wird links neben dem Triggerelement angeordnet.
rightDas Popover wird rechts neben dem Triggerelement angeordnet.

Events

Zur Behandlung von Events bzw. Callbacks siehe .

EventAuslöserValue
closeDas Popover wird geschlossen [Nicht im Quellcode gefunden – bitte prüfen]-

API

Overview

A button that toggles the visibility of a popover overlay containing arbitrary content. The popover uses the native HTML Popover API for lightweight, non-modal overlays.

Properties

PropertyAttributeDescriptionTypeDefault
_accessKey_access-keyDefines the key combination that can be used to trigger or focus the component's interactive element.string | undefinedundefined
_ariaDescription_aria-descriptionDefines the value for the aria-description attribute.string | undefinedundefined
_customClass_custom-classDefines the custom class attribute if _variant="custom" is set.string | undefinedundefined
_disabled_disabledMakes the element not focusable and ignore all events.boolean | undefinedfalse
_hideLabel_hide-labelHides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it.boolean | undefinedfalse
_icons_iconsDefines the icon classnames (e.g. _icons="fa-solid fa-user").KoliBriHorizontalIcons & KoliBriVerticalIcons | string | undefinedundefined
_inline_inlineDefines whether the component is displayed as a standalone block or inline without enforcing a minimum size of 44px.boolean | undefinedfalse
_label (required)_labelDefines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to false to enable the expert slot.stringundefined
_name_nameDefines the technical name of an input field.string | undefinedundefined
_popoverAlign_popover-alignDefines where to show the Popover preferably: top, right, bottom or left."bottom" | "left" | "right" | "top" | undefined'bottom'
_shortKey_short-keyAdds a visual shortcut hint after the label and instructs the screen reader to read the shortcut aloud.string | undefinedundefined
_tabIndex_tab-indexDefines which tab-index the primary element of the component has. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)number | undefinedundefined
_tooltipAlign_tooltip-alignDefines where to show the Tooltip preferably: top, right, bottom or left."bottom" | "left" | "right" | "top" | undefined'top'
_type_typeDefines either the type of the component or of the components interactive element."button" | "reset" | "submit" | undefined'button'
_value_valueDefines the value of the element.boolean | null | number | object | string | undefinedundefined
_variant_variantDefines which variant should be used for presentation."custom" | "danger" | "ghost" | "normal" | "primary" | "secondary" | "tertiary" | undefined'normal'

Methods

click

click() => Promise<void>

Clicks the primary interactive element inside this component.

Returns

Type: Promise<void>

focus() => Promise<void>

Sets focus on the internal element.

Returns

Type: Promise<void>

hidePopover() => Promise<void>

Hides the popover programmatically by forwarding the call to the web component.

Returns

Type: Promise<void>

showPopover() => Promise<void>

Shows the popover programmatically by forwarding the call to the web component.

Returns

Type: Promise<void>

Slots

SlotDescription
The popover content (displayed when the button is clicked).
"expert"Custom label content for the button (when _label is false).