Components
- Activity Heatmap
- Activity Rings
- Bar Chart
- Bar List
- Command Palette
- Composed Chart
- Corner Frame
- Data Table
- Delta Badge
- Distribution Bar
- Donut Chart
- Dot Plot
- Funnel Chart
- Heatmap Chart
- KPI Card
- Metric List
- Metric Value
- Period Tabs
- Radar Chart
- Radial Gauge
- Sankey Chart
- Scatter Chart
- Segmented Meter
- Sparkline
- Tick Bar
- Timeline
- Trend Chart
Blocks
- Activity Rings Card
- Allocation Card
- Balance Chart Card
- Breakdown Card
- Commerce KPI Row
- Contributions Card
- Data Table Card
- Distribution Card
- Dot Plot Card
- Dual Metric Card
- Funnel Chart Card
- Goal Chart Card
- Heatmap Chart Card
- Insight Card
- KPI Row Card
- Metric Tabs Chart Card
- Payment Summary Card
- Period Bar Chart Card
- Progress Card
- Revenue Ring Card
- Ring KPI Card
- Score Gauge Card
- Stage Bars Card
- Status Gauge Card
- Tick KPI Card
Revenue
$84,120.00
+12.4%
vs. last 30 days
Active users
1.3K
+0.4%
vs. last 30 days
Churn
2.1%
-34.0%
vs. last 30 days
Open tickets
17
0.0%
No change this week
import { KpiCard } from "@/components/ui/kpi-card"
const revenue = [42, 48, 45, 52, 58, 55, 61, 67, 64, 72, 78, 84]The KPI card is the stat card at the top of most dashboards: a label, a formatted value, a delta badge for the change since last period, and an optional sparkline. It is built from the shadcn/ui Card, so it matches the rest of your app, and it knows that a decrease is good for metrics like churn or latency.
Installation#
pnpm dlx shadcn@latest add @dashboardcn/kpi-cardAlso installs card, tooltip from shadcn/ui if missing.
Usage#
import { KpiCard } from "@/components/ui/kpi-card"
<KpiCard
label="Revenue"
value={84120}
format="currency"
delta={0.124}
deltaLabel="vs. last 30 days"
trend={[42, 48, 45, 52, 58, 61, 67, 72, 78, 84]}
/>Your dashboard, your code.
Every component is copied into your project with the shadcn CLI. No package to upgrade, nothing to override.