Skip to content

MetricCard

Purpose

MetricCard displays a single metric with:

  • Large icon in a colored circle
  • Title, value, and optional subtitle
  • Gradient background variants

When to use

Use MetricCard for:

  • Dashboard KPIs
  • Summary statistics
  • Feature highlights
  • Status indicators

Basic usage

tsx
import { MetricCard } from '@/shared/ui/components/metrics/MetricCard'
import { Users, TrendingUp, ShoppingCart, AlertCircle } from 'lucide-react'

<div className="grid grid-cols-4 gap-4">
  <MetricCard
    title="Total Users"
    value="12,345"
    subtitle="+12% from last month"
    icon={Users}
    variant="primary"
  />
  <MetricCard
    title="Revenue"
    value="$45,678"
    icon={TrendingUp}
    variant="success"
  />
  <MetricCard
    title="Orders"
    value="1,234"
    icon={ShoppingCart}
    variant="warning"
  />
  <MetricCard
    title="Issues"
    value="23"
    icon={AlertCircle}
    variant="danger"
  />
</div>

Props

PropTypeDefaultDescription
titlestringRequiredMetric label
valuestring | numberRequiredMetric value
subtitlestring-Additional context
iconLucideIconRequiredIcon component
iconClassNamestring-Icon container class
variantVariant'default'Color variant
classNamestring-Card container class

Variants

VariantUse case
defaultNeutral metrics
primaryPrimary/featured metrics
successPositive indicators
warningAttention needed
dangerCritical/negative metrics

Comparison with StatCard

FeatureMetricCardStatCard
Icon sizeLarge (48px)Small (20px)
BackgroundGradientSolid
LayoutHorizontalHorizontal
SubtitleYesNo

Use MetricCard for prominent dashboard metrics.
Use StatCard for compact stat displays.

Notes

  • Icons are passed as components, not elements
  • Gradient backgrounds use semantic color tokens
  • Built on the Card primitive