Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

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

Card

Card rendert einen flexiblen Content-Container für Teaser, Listen und Landing-Sections mit konsistentem Spacing und optionalen Interaktionszuständen.


Übersicht

import { Card } from "@prokodo/ui/card"
;<Card color="panel" enableShadow animated={false}>
<h2>Title</h2>
<p>Card content goes here.</p>
</Card>

Import

import { Card } from "@prokodo/ui/card"

CSS:

import "@prokodo/ui/card.css"

Props

PropTypStandardPflichtBeschreibung
childrenReactNodeKarten-Inhalt.
colorVariantsAkzentfarbe (Rahmen / Schatten-Tönung).
highlightbooleanfalseHighlight-Darstellung anwenden.
gradiantbooleanfalseVerlaufsüberlagerung anwenden.
gradiantClassNamestringCSS-Klasse auf dem Verlaufs-Overlay-Element.
contentClassNamestringCSS-Klasse auf dem inneren Content-Wrapper.
backgroundbooleanfalseHintergrunds-Element rendern.
backgroundPropsobjectProps für das Hintergrunds-Element.
loadingbooleanfalseSkeleton-Ladezustand anzeigen.
skeletonPropsSkeletonPropsProps für den Skeleton-Platzhalter.
disabledbooleanfalseDeaktivierten Darstellungszustand anwenden.
animatedPropsAnimatedPropsEingangsanimations-Konfiguration.
customAnimationstringBenutzerdefinierter Animations-Klassen-Override.
onClick() => voidKlick-Handler der Karte.
onKeyDownReact.KeyboardEventHandlerTastatur-Ereignis-Handler.
onMouseEnter() => voidMouse-Enter-Handler.
onMouseLeave() => voidMouse-Leave-Handler.
classNamestringCSS-Klasse am Root-Element.

Siehe src/components/card/Card.model.ts für den vollständigen CardProps-Typ.


Design-Tokens

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

TokenStandardBeschreibung
--pk-card-bgvar(--pk-color-surface)Karten-Hintergrundfarbe
--pk-card-panel-light-borderrgba(0, 0, 0, 0.08)Heller Panel-Rahmen

AIC-Hinweis

Verwende im Anwendungscode immer den Standard-Importpfad:

import { Card } from "@prokodo/ui/card"

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.
2.1.1Tastatur (A)✅ ErfülltAlle Funktionalität muss allein über Tastatur bedienbar sein, ohne Timing-Anforderungen.
2.4.3Fokusreihenfolge (A)🔍 Manuell prüfenDie Tastaturfokus-Reihenfolge muss im vollständigen seitenseitigen Integrationskontext Bedeutung und Bedienbarkeit erhalten.
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.
2.4.11Fokus nicht verdeckt (Min.) (AA)🔍 Manuell prüfenDie fokussierte Komponente darf nicht vollständig durch Sticky-Header, Overlays oder andere positionierte Seitenelemente verdeckt sein.
2.5.8Zielgröße (Minimum) (AA)🔍 Manuell prüfenInteraktive Zielbereiche müssen mindestens 24 × 24 CSS-Pixel groß sein. Prüfung in der integrierten Produkt-UI 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 4 Testdatei(en) · 1 ARIA-Attribut-Vorkommen im Quellcode-Scan. Kriterien mit 🔍 erfordern manuelle Prüfung im finalen Integrations- und Theme-Kontext.

Storybook

👉 Card in Storybook öffnen


Quellcode

src/components/card/Card.model.ts