Skip to content
GitHub

Card

Displays a card with header, content, and footer.

Hello World!
This is a Card
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/pxl/card";
import { WidgetArea } from "@/components/ui/pxl/widget-area";
export default function CardPreview() {
return (
<WidgetArea size="md">
<Card size="lg" className="size-full">
<CardHeader>
<CardTitle>
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><path d="M18 22H6V20H18V22ZM6 20H4V18H6V20ZM20 20H18V18H20V20ZM4 18H2V6H4V18ZM13 18H11V16H13V18ZM22 18H20V6H22V18ZM15 13H13V15H11V11H15V13ZM17 11H15V8H17V11ZM9 10H7V8H9V10ZM15 8H9V6H15V8ZM6 6H4V4H6V6ZM20 6H18V4H20V6ZM18 4H6V2H18V4Z"></path></svg>
Hello World!
</CardTitle>
</CardHeader>
<CardContent>
This is a Card
</CardContent>
</Card>
</WidgetArea>
);
}
pnpm dlx shadcn@latest add pxl-ui/registry/card
import { Card, CardContent } from "@/components/ui/pxl/card";
import { WidgetArea } from "@/components/ui/pxl/widget-area";
export default function CardWithScrollableContent() {
return (
<WidgetArea size="sm">
<Card size="lg" className="size-full">
<CardContent scrollable>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at urna in sapien eleifend pellentesque. Integer porta molestie mi vitae faucibus. Donec elementum consequat nibh id mollis. Phasellus in sagittis elit, et blandit augue. Aliquam scelerisque, leo vitae cursus porta, libero tortor facilisis arcu, vitae interdum nulla lacus vitae ipsum. Maecenas euismod, nibh sed tincidunt sodales, sem lectus commodo magna, non tristique orci sapien nec elit. Aliquam a faucibus nisl. Proin nunc quam, auctor eget nibh nec, accumsan finibus nisi. Morbi non orci vel turpis venenatis mollis.
Nunc sed varius nisi. Ut consequat lacus et velit vehicula, in egestas purus rutrum. In in sodales nisl. Praesent bibendum ante metus. Vestibulum lectus diam, sollicitudin vel quam ac, dapibus commodo sem. Proin et eros vel tellus accumsan efficitur. Aenean a euismod ipsum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Phasellus maximus ultrices ultricies. Phasellus nisi turpis, gravida id facilisis a, ornare quis sapien. Phasellus venenatis eu justo non varius. Duis eu lobortis erat. Maecenas maximus mauris odio, in faucibus lectus porttitor in. Aliquam in sapien sed dolor cursus efficitur sed et ex. Fusce odio felis, cursus nec magna eu, finibus ultricies justo. Vestibulum id rhoncus erat, et lacinia ligula. Duis cursus porta neque. Quisque semper libero odio. Sed vel velit aliquet, luctus mi vel, tincidunt nunc.
Proin eleifend imperdiet sapien, vitae finibus est egestas vel. Suspendisse a tellus nec tortor dignissim aliquam ultrices at sapien. Proin tempus varius porta. Curabitur sed vulputate lacus. Pellentesque mauris risus, semper sed nulla in, auctor ornare elit. Duis egestas elementum lorem sed tempus. Integer placerat lorem nec augue congue, facilisis fringilla elit vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam semper, ipsum eget fermentum ultrices, purus dui blandit nisi, nec dignissim urna augue non urna.
Vestibulum non ultricies sem, ut luctus nisi. Vestibulum vel rhoncus justo. Maecenas accumsan tortor arcu, in interdum justo molestie quis. Nulla ultricies ligula nec tellus dictum, a cursus lorem mattis. Suspendisse tristique lacus quis euismod gravida. Nullam lacinia dui in ex molestie pellentesque. Phasellus varius congue augue ac porta. Donec vitae imperdiet arcu, non cursus nulla.
Curabitur commodo, augue et dictum elementum, sapien nisi lacinia ex, in convallis sapien sem eget justo. Vestibulum efficitur porttitor auctor. Duis non tortor a quam rutrum tempor nec et nibh. Vestibulum eu consequat massa, scelerisque feugiat arcu. Nam vehicula justo et libero rhoncus, tristique commodo nisi fringilla. Phasellus placerat pretium enim ac pretium. Etiam vehicula mi metus, at lobortis dui vehicula quis.
Donec fringilla dolor sed nisl facilisis ornare. Proin varius libero quam, ut fringilla massa vulputate at. Vestibulum et tellus dapibus turpis vehicula egestas. Sed malesuada luctus sagittis. Integer laoreet ante ac dapibus pellentesque. Sed nibh metus, rhoncus sed sollicitudin eu, viverra sed arcu. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam gravida nisl id sem scelerisque aliquet.
Aliquam tempor est a dolor ullamcorper, sit amet sollicitudin lorem malesuada. Maecenas dapibus tempor rhoncus. Fusce pulvinar eros in enim vehicula rutrum. Etiam sed massa a risus viverra pellentesque. Aenean sem enim, viverra id imperdiet a, mattis sed velit. Duis id augue a sapien sodales cursus. Aliquam non volutpat leo. Morbi lobortis tincidunt lacinia. Nulla molestie ex id ex volutpat sagittis. Mauris vehicula gravida malesuada. Nulla elementum velit sed blandit dictum. Ut a erat eget massa bibendum posuere nec sit amet dolor. Aliquam condimentum, nulla vel malesuada auctor, urna enim rutrum ligula, vel venenatis velit purus sagittis leo. Quisque in ultricies dui, ut aliquet lorem.
Cras lacus lacus, elementum id gravida nec, pretium non mi. Vestibulum non suscipit dolor. Vivamus sed ante sed tortor dignissim blandit. Mauris ultricies tortor ex, in dignissim nulla molestie vitae. Mauris a metus laoreet neque vehicula hendrerit. Donec venenatis eros rhoncus metus rhoncus, a fringilla eros aliquam. Fusce vitae maximus mi. Vivamus porta convallis rhoncus. Ut volutpat rhoncus sagittis. Donec dignissim sodales turpis ac lobortis. Proin a lobortis leo. Donec metus nisl, faucibus ac tempor ut, dictum ac magna. Proin et libero molestie, finibus nunc eget, aliquam enim. Etiam non pulvinar ex, at condimentum purus. Duis volutpat ac lorem auctor cursus.
Maecenas hendrerit velit nibh, vitae consectetur augue molestie sit amet. Nulla mollis elementum lorem, in ullamcorper nisl dapibus sed. Ut venenatis finibus tempor. Sed sodales augue et tellus luctus, ut imperdiet augue rutrum. Donec non ullamcorper elit. Donec faucibus justo in turpis ultrices, vitae commodo turpis pharetra. Donec fermentum mollis est, vel pharetra libero molestie at.
</CardContent>
</Card>
</WidgetArea>
);
}
Primary
Success
Danger
Warning
Info
Secondary
Muted
Accent
import {
Card,
CardContent,
CardHeader,
CardTitle,
} from "@/components/ui/pxl/card";
import { WidgetArea } from "@/components/ui/pxl/widget-area";
export default function CardVariantsExample() {
return (
<div className="w-full flex flex-col gap-2.5 items-center justify-center min-h-92">
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="primary">
<CardHeader>
<CardTitle>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 24 24"
>
<path d="M18 22H6V20H18V22ZM6 20H4V18H6V20ZM20 20H18V18H20V20ZM4 18H2V6H4V18ZM22 18H20V6H22V18ZM13 17H11V11H13V17ZM13 9H11V7H13V9ZM6 6H4V4H6V6ZM20 6H18V4H20V6ZM18 4H6V2H18V4Z"></path>
</svg>
Primary
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="success">
<CardHeader>
<CardTitle>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M10 18H8v-2h2zm-2-2H6v-2h2zm4-2v2h-2v-2zm-6 0H4v-2h2zm8 0h-2v-2h2zm2-2h-2v-2h2zm2-2h-2V8h2zm2-2h-2V6h2z"></path>
</svg>
Success
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="danger">
<CardHeader>
<CardTitle>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 24 24"
>
<path d="M4 13h8v6h2v2h-2v2h-2v-8H2v-4h2v2Zm12 6h-2v-2h2v2Zm2-2h-2v-2h2v2Zm2-2h-2v-2h2v2Zm-6-6h8v4h-2v-2h-8V5h-2V3h2V1h2v8Zm-8 2H4V9h2v2Zm2-2H6V7h2v2Zm2-2H8V5h2v2Z"></path>
</svg>
Danger
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="warning">
<CardHeader>
<CardTitle>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M14 22h-4v-2h4v2Zm-4-2H8v-2h2v2Zm6 0h-2v-2h2v2Zm-8-2H6v-2h2v2Zm10 0h-2v-2h2v2Zm-5-1h-2v-2h2v2Zm-7-1H4v-2h2v2Zm14 0h-2v-2h2v2ZM4 14H2v-4h2v4Zm18 0h-2v-4h2v4Zm-9-7v6h-2V7h2Zm-7 3H4V8h2v2Zm14 0h-2V8h2v2ZM8 8H6V6h2v2Zm10 0h-2V6h2v2Zm-8-2H8V4h2v2Zm6 0h-2V4h2v2Zm-2-2h-4V2h4v2Z"></path>
</svg>
Warning
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="info">
<CardHeader>
<CardTitle>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 24 24"
>
<path d="M16 22H8v-2h8v2Zm-8-2H6v-2h2v2Zm10 0h-2v-2h2v2ZM6 18H4v-6h2v6Zm14 0h-2v-8h2v8Zm-10-4H8v-2h2v2Zm-2-2H6V8h2v4Zm4-8h2v2h-2v6h-2V2h2v2Zm6 6h-2V8h2v2Zm-2-2h-2V6h2v2Z"></path>
</svg>
Info
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="secondary">
<CardHeader>
<CardTitle>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 24 24"
>
<path d="M18 22H6V20H18V22ZM6 20H4V18H6V20ZM20 20H18V18H20V20ZM4 18H2V6H4V18ZM22 18H20V6H22V18ZM13 17H11V11H13V17ZM13 9H11V7H13V9ZM6 6H4V4H6V6ZM20 6H18V4H20V6ZM18 4H6V2H18V4Z"></path>
</svg>
Secondary
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="muted">
<CardHeader>
<CardTitle>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 24 24"
>
<path d="M18 22H6V20H18V22ZM6 20H4V18H6V20ZM20 20H18V18H20V20ZM4 18H2V6H4V18ZM22 18H20V6H22V18ZM13 17H11V11H13V17ZM13 9H11V7H13V9ZM6 6H4V4H6V6ZM20 6H18V4H20V6ZM18 4H6V2H18V4Z"></path>
</svg>
Muted
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
<WidgetArea size="md">
<Card size="lg" className="size-full" variant="accent">
<CardHeader>
<CardTitle>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
viewBox="0 0 24 24"
>
<path d="M18 22H6V20H18V22ZM6 20H4V18H6V20ZM20 20H18V18H20V20ZM4 18H2V6H4V18ZM22 18H20V6H22V18ZM13 17H11V11H13V17ZM13 9H11V7H13V9ZM6 6H4V4H6V6ZM20 6H18V4H20V6ZM18 4H6V2H18V4Z"></path>
</svg>
Accent
</CardTitle>
</CardHeader>
<CardContent></CardContent>
</Card>
</WidgetArea>
</div>
);
}