Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

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

PostTeaser

PostTeaser rendert einen vertikalen Teaser im Kartenstil für Blog- oder News-Inhalte. Geeignet für rasterbasierte Artikel-Listings mit prominentem Coverbild.


Übersicht

import { PostTeaser } from "@prokodo/ui/post-teaser"
;<PostTeaser
title="Design tokens in practice"
slug="/blog/design-tokens"
date="2024-04-10"
image={{ src: "/blog/tokens.jpg", alt: "Design tokens" }}
category="Design"
excerpt="How we use design tokens across our component library."
/>

Import

import { PostTeaser } from "@prokodo/ui/post-teaser"

CSS:

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

Props

PropTypStandardPflichtBeschreibung
titlePostTeaserHeadline—✅Headline-Konfiguration: { content: string } & HeadlineProps.
contentstring——Auszug-Text.
categorystring——Kategorie-Label.
hideCategorybooleanfalse—Kategorie-Chip ausblenden.
imageImageProps——Cover-Bild-Props.
redirectPostTeaserRedirect——Link-Konfiguration: LinkProps & { label?: string; icon?: IconProps }.
datestring——ISO-Datumsstring (erfordert locale wenn angegeben).
localeIntl.LocalesArgument——Gebietsschema für die Datumsformatierung.
colorHeadlineVariant——Akzentfarbe.
wordCountnumber——Wortanzahl zur Berechnung der Lesezeit.
readCountnumber——Lesezähler in den Metadaten.
onClick() => void——Klick-Handler der Teaser-Karte.
structuredDatabooleanfalse—JSON-LD-Strukturdaten ausgeben.
classNamestring——CSS-Klasse am Root-Element.

Siehe src/components/post-teaser/PostTeaser.model.ts für den vollständigen PostTeaserProps-Typ.


Farbe

Das color-Prop überträgt einen einheitlichen Akzent auf die Teaser-Karte und ihre interaktiven Elemente:

WertKarten-Rahmen / SchattenHeadline-TextLink-Icon
"primary"Marken-Blau (30 % Tönung + Glow)Marken-BlauMarken-Blau
"secondary"Akzent-Cyan (30 % Tönung + Glow)Akzent-CyanAkzent-Cyan
"success"Grün-IndikatorGrünGrün
"warning"Bernstein-IndikatorBernsteinBernstein
"error"Rot-IndikatorRotRot
"info"Neutraler VordergrundtonGedämpftGedämpft
"white"Standard-Weißkarte, kein Schatteninherit (automatischer Kontrast)primary Fallback
"inherit"Kein Overrideinheritprimary Fallback

Design-Tokens

PostTeaser 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-xsRechter Abstand des Link-Icons
--pk-space-smPadding der Bild-Bildunterschrift
--pk-space-lgPadding von Card-Header und -Footer
--pk-color-mutedTextfarbe des Datums
--pk-color-brandLink-Hover-Farbe (Überschreib-Token)

AIC-Hinweis

Verwende im Anwendungscode immer den Standard-Importpfad:

import { PostTeaser } from "@prokodo/ui/post-teaser"

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 4 Testdatei(en) · 3 ARIA-Attribut-Vorkommen im Quellcode-Scan. Kriterien mit 🔍 erfordern manuelle Prüfung im finalen Integrations- und Theme-Kontext.

Storybook

👉 PostTeaser in Storybook öffnen


Quellcode

src/components/post-teaser/PostTeaser.model.ts