Zum Hauptinhalt springen
Version: latest
Server-Komponente

Icon wird bevorzugt auf dem Server gerendert. Nutze den Standard-Import (z. B. @prokodo/ui/icon) — die Library erkennt die Umgebung automatisch.

Icon

Icon rendert skalierbare Symbolgrafiken aus dem prokodo-Iconset mit konsistenter Größe, Farbe und Zugänglichkeit.


Übersicht

import { Icon } from "@prokodo/ui/icon"
;<Icon name="arrow-right" size={24} color="primary" />

Import

import { Icon } from "@prokodo/ui/icon"

CSS:

import "@prokodo/ui/icon.css"

Props

PropTypStandardPflichtBeschreibung
nameIconNameIcon-Bezeichner aus dem Icon-Register.
labelstringBarrierefreie Bezeichnung (setzt aria-label).
sizeIconSizeIcon-Größe als Preset-String oder Pixel-Zahl.
colorstringCSS-Farbwert oder Design-Token.
rolestringÜberschreibt die ARIA-Rolle.
onClick() => voidKlick-Handler (für interaktive Icons).
classNamestringCSS-Klasse am Root-Element.

Siehe src/components/icon/Icon.model.ts für den vollständigen IconProps-Typ.


Design-Tokens

Icon definiert keine komponentenspezifischen CSS Custom Properties. Die Farbe wird über currentColor aus folgenden globalen Semantic-Tokens bezogen:

TokenBeschreibung
--pk-color-brandIcon-Farbe für color="primary"
--pk-color-accentIcon-Farbe für color="secondary"
--pk-color-mutedIcon-Farbe für color="info"
--pk-color-successIcon-Farbe für color="success"
--pk-color-warningIcon-Farbe für color="warning"
--pk-color-errorIcon-Farbe für color="error"
--pk-palette-whiteIcon-Farbe für color="white"

WCAG-2.2-Status

KriteriumBezeichnungStatusHinweis
1.1.1Nicht-Text-Inhalt (A)✅ ErfülltAlle Bilder, Icons und Medien benötigen eine Textalternative (alt, aria-label oder aria-labelledby). Rein dekorative Elemente müssen aria-hidden tragen.
1.3.1Info und Beziehungen (A)✅ ErfülltSemantische Struktur (Überschriften, Listen, Labels, Landmarks) muss programmatisch via HTML oder ARIA vermittelt werden.
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 1 Testdatei(en) · 2 ARIA-Attribut-Vorkommen im Quellcode-Scan. Kriterien mit 🔍 erfordern manuelle Prüfung im finalen Integrations- und Theme-Kontext.

Storybook

👉 Icon in Storybook öffnen


Quellcode

src/components/icon/Icon.model.ts