Card Grid
Responsive grid layout for any card component. Renders children in 2 or 3 columns.
| Prop | Type | Default |
|---|---|---|
| columns | 2 | 3 | 3 |
| children | ReactNode | — |
import { CardGrid } from "@/components";
import { BlogCard } from "@/extensions/features/blog";
<CardGrid>
{posts.map((post) => (
<BlogCard key={post.title} {...post} />
))}
</CardGrid>
<CardGrid columns={2}>
{posts.slice(0, 2).map((post) => (
<BlogCard key={post.title} {...post} />
))}
</CardGrid>import { CardGrid } from "@/components";
<CardGrid>
<Card>...</Card>
<Card>...</Card>
<Card>...</Card>
</CardGrid>src/components/CardGrid.tsx
interface CardGridProps {
columns?: 2 | 3;
children: React.ReactNode;
}
export function CardGrid({ columns = 3, children }: CardGridProps) {
return (
<div
className={
columns === 2
? "grid gap-6 sm:grid-cols-2"
: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3"
}
>
{children}
</div>
);
}