Flutter Dashboard Stat Cards with Trend Badges
Three dashboard metric cards showing a value, label, and up or down trend badge with icons. A compact KPI row built with Wind UI utility classes and dark mode.
WDiv(
className: 'mx-auto max-w-3xl flex flex-row gap-4',
children: [
WDiv(
className: 'flex-1 flex flex-col gap-3 rounded-2xl border p-5 bg-white border-gray-200 shadow-sm dark:bg-gray-900 dark:border-gray-800',
children: [
WDiv(
className: 'flex flex-row items-center justify-between',
children: [
WText(
'Revenue',
className: 'text-sm font-medium text-gray-500 dark:text-gray-400'
),
WIcon(
Icons.insights,
className: 'text-indigo-500 text-lg dark:text-indigo-400'
)
]
),
WText(
'$48.2k',
className: 'text-3xl font-extrabold text-gray-900 dark:text-white'
),
WDiv(
className: 'flex flex-row items-center gap-1',
children: [
WIcon(
Icons.trending_up,
className: 'text-emerald-500 text-sm dark:text-emerald-400'
),
WText(
'12.5%',
className: 'text-xs font-semibold text-emerald-600 dark:text-emerald-400'
)
]
),
],
),
WDiv(
className: 'flex-1 flex flex-col gap-3 rounded-2xl border p-5 bg-white border-gray-200 shadow-sm dark:bg-gray-900 dark:border-gray-800',
children: [
WDiv(
className: 'flex flex-row items-center justify-between',
children: [
WText(
'Users',
className: 'text-sm font-medium text-gray-500 dark:text-gray-400'
),
WIcon(
Icons.people,
className: 'text-sky-500 text-lg dark:text-sky-400'
)
]
),
WText(
'9,310',
className: 'text-3xl font-extrabold text-gray-900 dark:text-white'
),
WDiv(
className: 'flex flex-row items-center gap-1',
children: [
WIcon(
Icons.trending_up,
className: 'text-emerald-500 text-sm dark:text-emerald-400'
),
WText(
'4.2%',
className: 'text-xs font-semibold text-emerald-600 dark:text-emerald-400'
)
]
),
],
),
WDiv(
className: 'flex-1 flex flex-col gap-3 rounded-2xl border p-5 bg-white border-gray-200 shadow-sm dark:bg-gray-900 dark:border-gray-800',
children: [
WDiv(
className: 'flex flex-row items-center justify-between',
children: [
WText(
'Churn',
className: 'text-sm font-medium text-gray-500 dark:text-gray-400'
),
WIcon(
Icons.speed,
className: 'text-rose-500 text-lg dark:text-rose-400'
)
]
),
WText(
'1.8%',
className: 'text-3xl font-extrabold text-gray-900 dark:text-white'
),
WDiv(
className: 'flex flex-row items-center gap-1',
children: [
WIcon(
Icons.trending_down,
className: 'text-rose-500 text-sm dark:text-rose-400'
),
WText(
'0.6%',
className: 'text-xs font-semibold text-rose-600 dark:text-rose-400'
)
]
),
],
),
],
)
More like this
-
Flutter SLA Scorecard Card with Bullet Chart Target Markers
A Flutter SLA scorecard card for support desk dashboards: bullet charts with qualitative bands, a thick actual-value bar and a vertical target tick, so a missed target shows at a glance instead of hiding in a percentage. Built with wind_kit utility classes, dark mode pairs, no chart package.
-
Flutter Audience Overlap Card with Three Circle Venn Segments
A Flutter audience overlap card for marketing and growth dashboards: three translucent circles form a real Venn diagram, so shared regions darken by themselves and each lobe shows its count, with a segment legend, reach and overlap tiles and a suppression action. wind_kit only, no chart library.
-
Flutter A/B Test Results Card with Mirrored Variant Bars
An experiment readout where control and variant grow away from a shared centre axis, one metric per row, so which side wins is obvious before you read a single number. Ends with the projected revenue lift and a ship decision.