← Back to dashboard blocks
dashboard-01
A dashboard with a sidebar, stat cards, an interactive area chart and a data table. Use as the starting point for an admin or analytics app-shell.
Code
import { TrendingDownIcon, TrendingUpIcon } from "lucide-react"
import { Badge } from "@/components/ui/badge"
import {
Card,
CardAction,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card"
export function SectionCards() {
return (
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4">
<Card>
<CardHeader>
<CardDescription>Total Revenue</CardDescription>
<CardTitle className="text-2xl font-semibold tabular-nums">
$1,250.00
</CardTitle>
<CardAction>
<Badge variant="outline">
<TrendingUpIcon />
+12.5%
</Badge>
</CardAction>
</CardHeader>
<CardFooter className="flex-col items-start gap-1 text-sm">
<div className="line-clamp-1 flex gap-2 font-medium">
Trending up this month <TrendingUpIcon className="size-4" />
</div>
<div className="text-muted-foreground">
Visitors for the last 6 months
</div>
</CardFooter>
</Card>
<Card>
<CardHeader>
<CardDescription>New Customers</CardDescription>
<CardTitle className="text-2xl font-semibold tabular-nums">
1,234
</CardTitle>
<CardAction>
<Badge variant="outline">
<TrendingDownIcon />
-20%
</Badge>
</CardAction>
</CardHeader>
<CardFooter className="flex-col items-start gap-1 text-sm">
<div className="line-clamp-1 flex gap-2 font-medium">
Down 20% this period <TrendingDownIcon className="size-4" />
</div>
<div className="text-muted-foreground">
Acquisition needs attention
</div>
</CardFooter>
</Card>
<Card>
<CardHeader>
<CardDescription>Active Accounts</CardDescription>
<CardTitle className="text-2xl font-semibold tabular-nums">
45,678
</CardTitle>
<CardAction>
<Badge variant="outline">
<TrendingUpIcon />
+12.5%
</Badge>
</CardAction>
</CardHeader>
<CardFooter className="flex-col items-start gap-1 text-sm">
<div className="line-clamp-1 flex gap-2 font-medium">
Strong user retention <TrendingUpIcon className="size-4" />
</div>
<div className="text-muted-foreground">
Engagement exceeds targets
</div>
</CardFooter>
</Card>
<Card>
<CardHeader>
<CardDescription>Growth Rate</CardDescription>
<CardTitle className="text-2xl font-semibold tabular-nums">
4.5%
</CardTitle>
<CardAction>
<Badge variant="outline">
<TrendingUpIcon />
+4.5%
</Badge>
</CardAction>
</CardHeader>
<CardFooter className="flex-col items-start gap-1 text-sm">
<div className="line-clamp-1 flex gap-2 font-medium">
Steady performance increase <TrendingUpIcon className="size-4" />
</div>
<div className="text-muted-foreground">
Meets growth projections
</div>
</CardFooter>
</Card>
</div>
)
}