CRATE // NEXTUI
Card
Origin card with shipping label aesthetic, tape motif, dashed borders, and slight rotation transform. Displays weight, roast, origin, and date fields.
$
Or install the base component for free:
Live Preview
Open full demoUsage
TSX
<Card card={{ region: "SOUTH AMERICA", name: "Huila, Colombia", notes: "Bright citrus notes with a chocolate finish.", meta: [{ label: "WEIGHT", value: "340g" }, { label: "ROAST", value: "Medium" }] }} />Source
TSX
import { cn } from '@/lib/utils'
import type { OriginCard } from '@/types'
interface CardProps {
card: OriginCard
className?: string
}
export function Card({ card, className }: CardProps): React.JSX.Element {
return (
<div className={cn('crate-card', className)}>
<div className="crate-card-region">{card.region}</div>
<div className="crate-card-title">{card.name}</div>
<p className="crate-card-notes">{card.notes}</p>
<div className="crate-card-meta">
{card.meta.map((m) => (
<div key={m.label} className="crate-card-meta-item">
{m.label}
<strong>{m.value}</strong>
</div>
))}
</div>
</div>
)
}
Works withNext.js 15React 19Tailwind v4TypeScript 5
More from CRATE // NEXT
Button
Kraft-paper button with primary, secondary, ghost, and accent variants in three sizes. Archivo Black labels, warm cardboard palette. Renders as a Next.js Link when an href is provided.
Badge
Artisanal badge with accent, ink, kraft, stamp, and faded variants. Uppercase tracking on warm cardboard surfaces.
Text
Polymorphic text component with body, caption, label, and code variants. Archivo Black for display, DM Sans for body.