# Card list

> A grid of linked cards for blog posts, changelog entries or case studies. Dates are marked up so that software can read them.

Facade UI item `card-list` (block, section).
Docs page: https://facadeui.dev/components/card-list · Registry JSON: https://facadeui.dev/r/card-list.json

## Install

```bash
npx shadcn@latest add @facade/card-list
```

Or by URL: `npx shadcn@latest add https://facadeui.dev/r/card-list.json`. The CLI also installs what it needs: @facade/badge, @facade/container, @facade/heading, @facade/section, @facade/section-header, @facade/types, @facade/utils.

Files: `components/sections/card-list.tsx`

Usage example as an installable item: `npx shadcn@latest add @facade/card-list-demo` (lands in components/examples/).

## Usage

The source of the preview on the docs page. `./content` holds sample data.

```tsx
import { CardList } from "@/components/sections/card-list"

import { POSTS } from "./content"

export function Demo() {
  return (
    <CardList
      eyebrow="Blog"
      title="Latest writing"
      description="Cards use a stretched link, so the accessible name is the title rather than the whole card."
      items={POSTS}
    />
  )
}
```

## Props

### CardListProps

Extends SectionBaseProps, ListSlotProps.

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `items` (required) | `CardItem[]` |  |  |
| `title` | `string` |  |  |
| `eyebrow` | `string` |  |  |
| `description` | `string` |  |  |
| `image` | `ImageComponent` |  |  |
| `link` | `LinkComponent` |  |  |
| `columns` | `2 \| 3` | `3` |  |
| `variant` | `"card" \| "plain"` | `"card"` | `card` adds a border and background to each entry. `plain` is a simple list. |
| `itemHeadingLevel` | `HeadingLevel` |  |  |
| `align` | `"start" \| "center"` | `"start"` |  |
