New
Twelve illustrated cards for the quiet changes of the year.
Kaufmann Commerce UI / Commerce family
An offer-facing card whose meaning, price, and stock projection remain distinct, independently updateable parts.
Missing or empty image URLs become a calm striped media surface—never an invented product image.
Twelve illustrated cards for the quiet changes of the year.
A printed forest letter with a short read-aloud story.
Cards, letters, and stories brought together as one offer.
image and href are optional. Without an image, the card renders a neutral state; without a destination, it does not pretend to be a link. locale and labels keep formatting and language server-controlled, while the action slot continues to use the canonical Kaufmann button primitive.
---
import { ProductCard } from "@kaufmann/ui";
---
<ProductCard
locale="en-GB"
product={{
id: "ew-seasonal-circle",
name: "Seasonal Circle Cards",
href: "/products/seasonal-circle-cards",
price: { amount: 24, currency: "EUR" },
stock: { state: "available", label: "Ready to ship" }
}}
labels={{ emptyMedia: "Image coming soon" }}
/>