Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

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

Avatar

Avatar rendert ein Profilbild mit automatischem Fallback auf Initialen, wenn kein Bild vorhanden ist. Unterstützt mehrere Formen und Größen.


Übersicht

import { Avatar } from '@prokodo/ui/avatar'

<Avatar src="/profile.jpg" alt="Jane Doe" size="md" />
<Avatar initials="JD" color="primary" size="lg" />

Import

import { Avatar } from "@prokodo/ui/avatar"

CSS:

import "@prokodo/ui/avatar.css"

Props

PropTypStandardPflichtBeschreibung
imageImagePropsBildquellen-Props (src, alt, …).
iconOverrideReactNodeBenutzerdefiniertes Icon-Element.
size"xs" | "sm" | "md" | "lg" | "xl" | number"md"Avatar-Größen-Preset oder Pixel-Wert.
colorVariantsHintergrundfarb-Variante.
prioritybooleanfalseBild sofort laden (LCP-Optimierung).
redirectLinkPropsAvatar in einem Link einschließen.
classNamestringCSS-Klasse am Root-Element.

Siehe src/components/avatar/Avatar.model.ts für den vollständigen AvatarProps-Typ.


Design-Tokens

Avatar definiert keine komponentenspezifischen CSS Custom Properties. Passe das Erscheinungsbild an, indem du folgende globale Design-System-Tokens auf :root oder einem übergeordneten Element überschreibst:

TokenBeschreibung
--pk-shadow-smSchatten des Avatar-Link-Containers
--pk-color-fgFallback-Icon-Farbe für color="inherit" — adaptiv im Dark Mode
--pk-color-brandHintergrundfarbe für color="primary"
--pk-color-accentHintergrundfarbe für color="secondary"
--pk-color-mutedHintergrundfarbe für color="info"
--pk-color-successHintergrundfarbe für color="success"
--pk-color-warningHintergrundfarbe für color="warning"
--pk-color-errorHintergrundfarbe für color="error"
--pk-palette-whiteHintergrundfarbe für color="white"

Dark Mode: Bei color="inherit" nutzt das Fallback-UserIcon var(--pk-color-fg), sodass es auf hellen und dunklen Hintergründen sichtbar bleibt.


WCAG-2.2-Status

KriteriumBezeichnungStatusHinweis
1.1.1Nicht-Text-Inhalt (A)🔍 Manuell prüfenAlle Bilder, Icons und Medien benötigen eine Textalternative (alt, aria-label oder aria-labelledby). Rein dekorative Elemente müssen aria-hidden tragen.
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.
1.4.5Bilder von Text (AA)🔍 Manuell prüfenText sollte als echter Text gerendert werden, nicht als Bild, außer wenn unvermeidbar (z. B. Logo, Markenzeichen).
1.4.11Nicht-Text-Kontrast (AA)🔍 Manuell prüfenRänder von UI-Komponenten und Icons müssen mindestens 3:1 Kontrast zu angrenzenden Farben aufweisen. Prüfung im Produkt-Theme erforderlich.
4.1.2Name, Rolle, Wert (A)🔍 Manuell prüfenName, Rolle und Zustand aller interaktiven UI-Komponenten müssen via nativer HTML-Semantik oder ARIA programmatisch bestimmbar sein.

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

Storybook

👉 Avatar in Storybook öffnen


Quellcode

src/components/avatar/Avatar.model.ts