Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

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

PostItem

PostItem rendert einen kompakten Blog-/News-Eintrag mit Bild, Metadaten und Link-Ziel für Listen- oder Feed-Ansichten.


Übersicht

import { PostItem } from "@prokodo/ui/post-item"
;<PostItem
title="Getting started with prokodo UI"
slug="/blog/getting-started"
date="2024-03-01"
category="Tutorial"
image={{ src: "/blog/thumb.jpg", alt: "Thumbnail" }}
/>

Import

import { PostItem } from "@prokodo/ui/post-item"

CSS:

import "@prokodo/ui/post-item.css"

Props

PropTypStandardPflichtBeschreibung
titlePostItemHeadlineHeadline-Konfiguration: { content: string } & HeadlineProps.
contentstringAuszug / Textkörper.
categorystringKategorie-Label als Chip.
imagestringBild-URL für das Vorschaubild.
authorPostItemAuthorPropsAutoren-Informationen.
datestringISO-Datumsstring (erfordert locale wenn angegeben).
localeIntl.LocalesArgumentGebietsschema für die Datumsformatierung.
metaDatestringVorformatierter Datumsstring (überschreibt Datumsformatierung).
wordCountnumberWortanzahl zur Berechnung der Lesezeit.
readCountnumberLesezähler in den Metadaten.
buttonButtonPropsCTA-Button-Props.
animatebooleanfalseEingangsanimation aktivieren.
colorHeadlineVariantAkzentfarbe für Kartenrahmen/Schatten und Überschrift.
structuredDatabooleanfalseJSON-LD-Strukturdaten ausgeben.
classNamestringCSS-Klasse am Root-Element.

Siehe src/components/post-item/PostItem.model.ts für den vollständigen PostItemProps-Typ.


Farbe

Das color-Prop überträgt eine einheitliche Akzentfarbe auf alle visuellen Bereiche des Artikel-Cards:

WertKarten-Rahmen / SchattenHeadline-TextButton-Farbe
"primary"Marken-Blau (30 % Tönung + Glow)Marken-BlauPrimary
"secondary"Akzent-Cyan (30 % Tönung + Glow)Akzent-CyanSecondary
"success"Grün-IndikatorGrünSuccess
"warning"Bernstein-IndikatorBernsteinWarning
"error"Rot-IndikatorRotError
"info"Neutraler VordergrundtonGedämpftInfo
"white"Standard-Weißkarte, kein Schatteninherit (automatischer Kontrast)inherit
"inherit"Kein Overrideinheritinherit

Der Wert "white" behält die Standard-Kartenoberfläche und verhindert gleichzeitig unsichtbaren Text oder Buttons im Light-Mode.


Design-Tokens

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

TokenBeschreibung
--pk-space-xsMinimales horizontales Padding
--pk-space-smKleiner interner Abstand
--pk-space-mdMittlerer interner Abstand
--pk-space-lgStandard-Layout-Abstand (Grid-Column-Gap)
--pk-space-xlWeiter Layout-Abstand auf Desktop (zweispaltig)
--pk-color-mutedTextfarbe für Datum, Lesezeit und Vorschautext
--pk-radius-lgEckenradius des Bild-Containers

Bild-Responsivität: Das image-Hintergrundbild wird immer mit object-fit: cover gerendert und füllt seinen Container auf allen Bildschirmgrößen. Auf Mobilgeräten nimmt die Bildspalte die volle Breite ein; auf dem Desktop belegt sie die linke 33-%-Spalte.


AIC-Hinweis

Verwende im Anwendungscode immer den Standard-Importpfad:

import { PostItem } from "@prokodo/ui/post-item"

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.3.2Bedeutungsvolle Reihenfolge (A)🔍 Manuell prüfenDie Lesereihenfolge im DOM muss der beabsichtigten visuellen Darstellungsreihenfolge entsprechen.
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.6Überschriften und Bezeichnungen (AA)🔍 Manuell prüfenÜberschriften und Labels müssen das Thema oder den Zweck des zugehörigen Inhalts beschreiben.
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) · 4 ARIA-Attribut-Vorkommen im Quellcode-Scan. Kriterien mit 🔍 erfordern manuelle Prüfung im finalen Integrations- und Theme-Kontext.

Storybook

👉 PostItem in Storybook öffnen


Quellcode

src/components/post-item/PostItem.model.ts