List Card
A card whose body is a divided list of rows rather than prose.
- cards
- card
- structural
- list
- rows
Recent activity
- Release notes published
- North star doc updated
- Research log shared
Quick usage
usage
import { ListCard } from "@pinky-ui/components";
<ListCard
title="Recent activity"
items={activity.map((entry) => ({ id: entry.id, content: entry.summary }))}
/>Presets
Default
Titled list.
Compact
Smaller radius for a dense sidebar.
radius={"md"}
Install
Add @pinky-ui/components as a dependency, or use the CLI to copy this component's source directly into your project — no dependency to manage, fully editable.
shell
npm install @pinky-ui/componentsshell
pnpm add @pinky-ui/componentsshell
yarn add @pinky-ui/componentsshell — copies source into your project
npx pinky-ui add list-cardPrefer to run the whole repository locally instead?
repository
git clone https://github.com/florash/Pinky-UI.git
cd Pinky-UI
npm install
npm run devProps
| Prop | Type | Default | Description |
|---|---|---|---|
| title | ReactNode | — | Optional heading above the list. |
| items | ListCardItem[] | — | Required. Each needs an id and content; rows are divided automatically. |
| footer | ReactNode | — | Optional region below the list. |
| emptyMessage | ReactNode | "Nothing here yet." | Shown instead of the list when items is empty. |
| radius | "md" | "lg" | "xl" | "2xl" | "xl" | Corner radius from the shape scale. |
| padded | boolean | true | Horizontal padding on the title, rows and footer. |
| shadow | "neutral" | "pink" | "neutral" | Shadow token pair. |
Accessibility
- Renders a real <ul>/<li> structure — a screen reader announces it as a list with its item count.
- Not focusable as a whole; interactivity belongs to whatever's inside each row's content.
Reduced motion
No motion of its own.
When to use
- Settings groups, short activity feeds, anything that's naturally items rather than a paragraph
When not to use
- Long or virtualised lists — this renders every row eagerly