DECK // NEXTUI
Card
Composable card with Card, CardHeader, CardBody, and CardFooter sub-components. Dark woodgrain surfaces with spray-paint accent borders.
$
Or install the base component for free:
Live Preview
Open full demoUsage
TSX
<Card><CardHeader>Title</CardHeader><CardBody>Content</CardBody><CardFooter>Footer</CardFooter></Card>Variants
<Card><CardBody>Simple card with body only</CardBody></Card>
<Card><CardHeader>Drop In</CardHeader><CardBody>Card content here.</CardBody><CardFooter>Read more</CardFooter></Card>
Source
TSX
import { cn } from '@/lib/utils'
import type { CardItem } from '@/types'
interface CardProps {
card: CardItem
className?: string
}
const TAG_CLASS: Record<string, string> = {
orange: 'card-tag card-tag--orange',
yellow: 'card-tag card-tag--yellow',
ink: 'card-tag card-tag--ink',
dim: 'card-tag card-tag--dim',
}
const ICON_CLASS: Record<string, string> = {
orange: 'card-icon card-icon--orange',
yellow: 'card-icon card-icon--yellow',
ink: 'card-icon card-icon--orange',
dim: 'card-icon card-icon--yellow',
}
export function Card({ card, className }: CardProps): React.JSX.Element {
const tagClass = TAG_CLASS[card.tagVariant] ?? 'card-tag card-tag--orange'
const iconClass = ICON_CLASS[card.tagVariant] ?? 'card-icon card-icon--orange'
return (
<div className={cn('deck-card', className)}>
<span className="card-num">{card.num}</span>
<span className={iconClass}>{card.icon}</span>
<span className={tagClass}>{card.tag}</span>
<h3 className="card-title">{card.title}</h3>
<p className="card-description">{card.description}</p>
</div>
)
}
Works withNext.js 15React 19Tailwind v4TypeScript 5
More from DECK // NEXT
Button
Skate deck art button with primary, secondary, and ghost variants in three sizes. Rough-cut clip-path corners, spray-paint orange accent. Renders as a Next.js Link when an href is provided.
Badge
Spray-paint styled badge with four color variants: orange, yellow, ink, and dim. Suited for category labels, tags, and status indicators.
Text
Polymorphic text primitive with body, caption, label, and code variants. IBM Plex Mono body font. Renders as p, span, or div via the `as` prop.