Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

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

Snackbar

Snackbar rendert temporäre Benachrichtigungen (Toast) mit Varianten, Actions und optionalem Auto-Dismiss.


Übersicht

import { Snackbar } from "@prokodo/ui/snackbar"
;<Snackbar
open={showSnack}
message="Changes saved successfully"
color="success"
onClose={() => setShowSnack(false)}
/>

Import

import { Snackbar } from "@prokodo/ui/snackbar"

CSS:

import "@prokodo/ui/snackbar.css"

Props

PropTypStandardPflichtBeschreibung
openbooleanSteuert Snackbar-Sichtbarkeit.
messagestringSnackbar-Nachrichtentext.
severity"success" | "error" | "warning" | "info"Visuelles Schweregrad-Token.
autoHideDurationnumber3000Auto-Schließ-Verzögerung in ms.
anchorOrigin{ vertical: "top" | "bottom"; horizontal: "left" | "center" | "right" }{ vertical: "bottom", horizontal: "center" }Position der Snackbar auf dem Bildschirm.
closeablebooleantrueSchließen-Button anzeigen.
elevationnumberBox-Shadow-Elevationsstufe.
onClose() => voidWird beim Schließen der Snackbar aufgerufen.
classNamestringCSS-Klasse am Root-Element.

Siehe src/components/snackbar/Snackbar.model.ts für den vollständigen SnackbarProps-Typ.


Design-Tokens

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

TokenStandardBeschreibung
--pk-snackbar-bgvar(--pk-color-fg)Standard-Hintergrund (invertiert)
--pk-snackbar-fgvar(--pk-color-surface)Standard-Textfarbe
--pk-snackbar-border-colorcolor-mix(… surface 15%)Standard-Rahmenfarbe
--pk-snackbar-radiusvar(--pk-radius-md)Eckenradius
--pk-snackbar-shadowvar(--pk-shadow-lg)Standard-Box-Shadow
--pk-snackbar-padding-xvar(--pk-space-xl)Horizontaler Innenabstand
--pk-snackbar-padding-yvar(--pk-space-lg)Vertikaler Innenabstand
--pk-snackbar-timingvar(--pk-timing-normal)Einblend- / Ausblend-Dauer
--pk-snackbar-success-bgcolor-mix(… success 10%, surface)Getönter Hintergrund für "success"
--pk-snackbar-success-fgvar(--pk-color-fg)Textfarbe für "success"
--pk-snackbar-success-bordercolor-mix(… success 40%)Rahmenfarbe für "success"
--pk-snackbar-success-shadow0 4px 24px color-mix(… success 20%)Umgebungsleuchten für "success"
--pk-snackbar-error-bgcolor-mix(… error 10%, surface)Getönter Hintergrund für "error"
--pk-snackbar-error-fgvar(--pk-color-fg)Textfarbe für "error"
--pk-snackbar-error-bordercolor-mix(… error 40%)Rahmenfarbe für "error"
--pk-snackbar-error-shadow0 4px 24px color-mix(… error 20%)Umgebungsleuchten für "error"
--pk-snackbar-warning-bgcolor-mix(… warning 10%, surface)Getönter Hintergrund für "warning"
--pk-snackbar-warning-fgvar(--pk-color-fg)Textfarbe für "warning"
--pk-snackbar-warning-bordercolor-mix(… warning 40%)Rahmenfarbe für "warning"
--pk-snackbar-warning-shadow0 4px 24px color-mix(… warning 20%)Umgebungsleuchten für "warning"
--pk-snackbar-info-bgcolor-mix(… fg 8%, surface)Getönter Hintergrund für "info"
--pk-snackbar-info-fgvar(--pk-color-fg)Textfarbe für "info"
--pk-snackbar-info-bordercolor-mix(… fg 20%)Rahmenfarbe für "info"
--pk-snackbar-info-shadowvar(--pk-shadow-md)Box-Shadow für "info"

AIC-Hinweis

Verwende im Anwendungscode immer den Standard-Importpfad:

import { Snackbar } from "@prokodo/ui/snackbar"

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.1Verwendung von Farbe (A)🔍 Manuell prüfenFarbe darf nicht das einzige Mittel zur Informationsvermittlung sein (z. B. Fehlerhinweise, Pflichtfeldmarkierungen).
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.2.1Zeitsteuerung anpassbar (A)🔍 Manuell prüfenAutomatisch schließende Benachrichtigungen müssen einen Weg bieten, das Timeout zu verlängern oder zu deaktivieren, oder mindestens 20 s angezeigt bleiben.
4.1.3Statusmeldungen (AA)✅ ErfülltStatusmeldungen (Laden, Erfolg, Fehler, Fortschritt) müssen assistiven Technologien ohne Fokusverschiebung mitgeteilt werden (aria-live oder role='status').

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

Storybook

👉 Snackbar in Storybook öffnen


Quellcode

src/components/snackbar/Snackbar.model.ts