Card
2 min readThe Card component provides a flexible container for grouping related content with consistent padding, borders, and styling.
LayoutFeatured
containerlayoutcontent
Features
- Composable sub-components (Header, Title, Description, Content, Footer)
- Consistent spacing and styling
- Dark mode support
- Flexible layout options
Usage
Card Title
Card description goes here
Card content goes here
Card footer
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; export default function Example() { return ( <Card> <CardHeader> <CardTitle>Card Title</CardTitle> <CardDescription>Card description goes here</CardDescription> </CardHeader> <CardContent> <p>Card content goes here</p> </CardContent> <CardFooter> <p>Card footer</p> </CardFooter> </Card> ); }import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; export default function Example() { return ( <Card> <CardHeader> <CardTitle>Card Title</CardTitle> <CardDescription>Card description goes here</CardDescription> </CardHeader> <CardContent> <p>Card content goes here</p> </CardContent> <CardFooter> <p>Card footer</p> </CardFooter> </Card> ); }
Anatomy
The Card component is composed of several sub-components:
Card: The container componentCardHeader: Header section for titles and descriptionsCardTitle: The card's main titleCardDescription: Supporting text below the titleCardContent: Main content areaCardFooter: Footer section for actions or metadata
Examples
Simple Card
Simple Card
This is a simple card with minimal content.
<Card> <CardHeader> <CardTitle>Simple Card</CardTitle> </CardHeader> <CardContent> <p>This is a simple card with minimal content.</p> </CardContent> </Card><Card> <CardHeader> <CardTitle>Simple Card</CardTitle> </CardHeader> <CardContent> <p>This is a simple card with minimal content.</p> </CardContent> </Card>
Card with Footer
Project Status
Track your project progress
Tasks completed: 12/20
Deadline: Dec 31, 2025
<Card> <CardHeader> <CardTitle>Project Status</CardTitle> <CardDescription>Track your project progress</CardDescription> </CardHeader> <CardContent> <div className="space-y-2"> <p>Tasks completed: 12/20</p> <p>Deadline: Dec 31, 2025</p> </div> </CardContent> <CardFooter> <Button>View Details</Button> </CardFooter> </Card><Card> <CardHeader> <CardTitle>Project Status</CardTitle> <CardDescription>Track your project progress</CardDescription> </CardHeader> <CardContent> <div className="space-y-2"> <p>Tasks completed: 12/20</p> <p>Deadline: Dec 31, 2025</p> </div> </CardContent> <CardFooter> <Button>View Details</Button> </CardFooter> </Card>
Styling
Cards automatically adapt to light and dark themes using CSS variables. You can customize the appearance by applying additional classes to the Card component or its children.
