Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

Tooltip funktioniert sowohl auf dem Server als auch im Browser. Nutze immer den Standard-Import (z. B. @prokodo/ui/tooltip) — die Library erkennt die Umgebung automatisch.

Tooltip

Tooltip rendert kontextbezogene Hinweise bei Hover/Fokus und verbessert die Verständlichkeit kompakter UI-Elemente.


Übersicht

import { Tooltip } from "@prokodo/ui/tooltip"
;<Tooltip content="This action cannot be undone" placement="top">
<button>Delete</button>
</Tooltip>

Import

import { Tooltip } from "@prokodo/ui/tooltip"

CSS:

import "@prokodo/ui/tooltip.css"

Props

PropTypStandardPflichtBeschreibung
PropTypStandardPflichtBeschreibung
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
childrenReactElementTrigger-Element — muss ein einzelnes Element sein, das ref weiterleitet.
contentReactNodeTooltip-Inhalt.
placement"top" | "bottom" | "left" | "right""top"Bevorzugte Position relativ zum Trigger.
anchor"element" | "pointer""element"Anker-Modus: "element" zentriert; "pointer" folgt dem Cursor.
color"default" | "success" | "error" | "warning" | "info""default"Visuelle Farbvariante der Blase.
idstringStabile ID für aria-describedby.
disabledbooleanfalseTooltip vollständig deaktivieren.
openbooleanGesteuerter Öffnungszustand.
defaultOpenbooleanfalseUnkontrollierter Anfangs-Öffnungszustand.
delaynumber200Hover-/Fokus-Öffnungsverzögerung in ms.
closeDelaynumberSchließverzögerung in ms.
openOnHoverbooleantrueBeim Hover öffnen.
openOnFocusbooleantrueBeim Fokus öffnen.
preventOverflowbooleantrueTooltip in den Viewport einschränken.
portalbooleantrueBlase in einem Portal rendern (empfohlen).
zIndexnumberz-index des Portal-Bubbles.
offsetnumberPixel-Abstand zwischen Trigger und Blase.
onOpenChange(open: boolean) => voidWird bei Öffnungszustandsänderung aufgerufen.
tooltipClassNamestringCSS-Klasse auf dem Tooltip-Bubble-Element.
triggerClassNamestringCSS-Klasse auf dem Trigger-Element.
classNamestringCSS-Klasse auf dem Root-Wrapper-Element.

Siehe src/components/tooltip/Tooltip.model.ts für den vollständigen TooltipProps-Typ.


Design-Tokens

Passe via CSS Custom Properties auf :root oder einem übergeordneten Element an.

TokenStandardBeschreibung
--pk-tooltip-bgcolor-mix(… fg 92%, surface)Standard-Hintergrund (dunkel inv.)
--pk-tooltip-fgvar(--pk-color-surface)Standard-Textfarbe
--pk-tooltip-bordercolor-mix(… surface 12%)Standard-Rahmenfarbe
--pk-tooltip-shadowvar(--pk-shadow-lg)Standard-Box-Shadow
--pk-tooltip-radiusvar(--pk-radius-sm)Eckenradius
--pk-tooltip-z2147483647z-index
--pk-tooltip-success-bgcolor-mix(… success 12%, surface)Getönter Hintergrund für "success"
--pk-tooltip-success-fgvar(--pk-color-fg)Textfarbe für "success"
--pk-tooltip-success-bordercolor-mix(… success 35%)Rahmenfarbe für "success"
--pk-tooltip-success-shadow0 4px 16px color-mix(… success 18%)Umgebungsleuchten für "success"
--pk-tooltip-error-bgcolor-mix(… error 12%, surface)Getönter Hintergrund für "error"
--pk-tooltip-error-fgvar(--pk-color-fg)Textfarbe für "error"
--pk-tooltip-error-bordercolor-mix(… error 35%)Rahmenfarbe für "error"
--pk-tooltip-error-shadow0 4px 16px color-mix(… error 18%)Umgebungsleuchten für "error"
--pk-tooltip-warning-bgcolor-mix(… warning 12%, surface)Getönter Hintergrund für "warning"
--pk-tooltip-warning-fgvar(--pk-color-fg)Textfarbe für "warning"
--pk-tooltip-warning-bordercolor-mix(… warning 35%)Rahmenfarbe für "warning"
--pk-tooltip-warning-shadow0 4px 16px color-mix(… warning 18%)Umgebungsleuchten für "warning"
--pk-tooltip-info-bgcolor-mix(… fg 8%, surface)Getönter Hintergrund für "info"
--pk-tooltip-info-fgvar(--pk-color-fg)Textfarbe für "info"
--pk-tooltip-info-bordercolor-mix(… fg 20%)Rahmenfarbe für "info"
--pk-tooltip-info-shadowvar(--pk-shadow-md)Box-Shadow für "info"

AIC-Hinweis

Verwende im Anwendungscode immer den Standard-Importpfad:

import { Tooltip } from "@prokodo/ui/tooltip"

Eine separate Auswahl von /client oder /lazy ist im Consumer-Code nicht erforderlich.

AIC-Komponenten unterstützen außerdem ein priority-Flag für kritische Above-the-fold-Elemente. Am sichtbarsten ist das bei Image (natives Preloading via <link rel="preload"> für Above-the-fold-Inhalte).


WCAG-2.2-Status

KriteriumBezeichnungStatusHinweis
1.3.1Info und Beziehungen (A)✅ ErfülltSemantische Struktur (Überschriften, Listen, Labels, Landmarks) muss programmatisch via HTML oder ARIA vermittelt werden.
1.4.3Kontrast (Minimum) (AA)🔍 Manuell prüfenText benötigt ein Kontrastverhältnis von mindestens 4,5:1 (3:1 für großen Text). Prüfung im finalen Produkt-Theme erforderlich.
2.4.7Fokus sichtbar (AA)🔍 Manuell prüfenAuf jedem interaktiven Element muss ein sichtbarer Tastaturfokus-Indikator vorhanden sein. Prüfung gegen das angewendete Produkt-Theme erforderlich.
4.1.2Name, Rolle, Wert (A)✅ ErfülltName, Rolle und Zustand aller interaktiven UI-Komponenten müssen via nativer HTML-Semantik oder ARIA programmatisch bestimmbar sein.

Testabdeckung: 2 jest-axe-Assertion(s) in 5 Testdatei(en) · 3 ARIA-Attribut-Vorkommen im Quellcode-Scan. Kriterien mit 🔍 erfordern manuelle Prüfung im finalen Integrations- und Theme-Kontext.

Storybook

👉 Tooltip in Storybook öffnen


Quellcode

src/components/tooltip/Tooltip.model.ts