MetricCard
MetricCardは、KPIや重要指標をダッシュボードで見やすく表示するコンポーネントです。 タイトル、数値、トレンドインジケーター、説明テキスト、アイコンを自由に組み合わせて使えます。
Playground
Revenue
$45,231
Increased+20.1%
vs last month
<MetricCard>
<MetricCard.Header>
<MetricCard.Title>Revenue</MetricCard.Title>
<MetricCard.Symbol><DollarSign /></MetricCard.Symbol>
</MetricCard.Header>
<MetricCard.Value>$45,231</MetricCard.Value>
<MetricCard.Trend direction="up">+20.1%</MetricCard.Trend>
<MetricCard.Description>vs last month</MetricCard.Description>
</MetricCard>Variants
Revenue
$3,500
Increased+8.1%
default
Revenue
$3,500
Increased+8.1%
elevated
Revenue
$3,500
Increased+8.1%
ghost
<MetricCard variant="default">...</MetricCard>
<MetricCard variant="elevated">...</MetricCard>
<MetricCard variant="ghost">...</MetricCard>Sizes
smdefaultlg| Size | パディング | 数値フォント | アイコン | プレビュー |
|---|---|---|---|---|
sm | p-4 | text-xl | icon-sm | Users 1,234 |
default | p-4 sm:p-5 | text-2xl | icon-md | Users 1,234 |
lg | p-4 sm:p-6 | text-3xl | icon-lg | Users 1,234 |
レスポンシブ: default・lgサイズはモバイル(640px未満)で自動的にパディングが一段階小さくなります。 smサイズは固定値です。
Features
Grid Preview
ダッシュボードでの実際の表示イメージ。grid-cols-2 lg:grid-cols-4 レイアウトでの使用例です。
Revenue
$45,231
Increased+20.1%
vs last month
Users
2,350
Increased+12.5%
new signups
Orders
1,234
Decreased-3.2%
vs last week
Conversion
3.24%
No change0.0%
no change
<div className="grid grid-cols-2 lg:grid-cols-4 gap-4">
<MetricCard>
<MetricCard.Header>
<MetricCard.Title>Revenue</MetricCard.Title>
<MetricCard.Symbol><DollarSign /></MetricCard.Symbol>
</MetricCard.Header>
<MetricCard.Value>$45,231</MetricCard.Value>
<MetricCard.Trend direction="up">+20.1%</MetricCard.Trend>
<MetricCard.Description>vs last month</MetricCard.Description>
</MetricCard>
...
</div>Trend
トレンドインジケーターは方向に応じてアイコンとカラーが自動適用されます。色覚多様性に配慮し、アイコン+テキストで意味を伝えます。
Up
$3,500
Increased+8.1%
Down
$3,500
Decreased-3.2%
Neutral
$3,500
No change0.0%
<MetricCard.Trend direction="up">+8.1%</MetricCard.Trend>
<MetricCard.Trend direction="down">-3.2%</MetricCard.Trend>
<MetricCard.Trend direction="neutral">0.0%</MetricCard.Trend>Radius
Radius
0
Radius
8
Radius
12
Radius
16
Radius
24
<MetricCard radius="none" /> {/* 0px */}
<MetricCard radius="lg" /> {/* 8px */}
<MetricCard /> {/* 12px — default */}
<MetricCard radius="2xl" /> {/* 16px */}
<MetricCard radius="3xl" /> {/* 24px */}API
Component Structure
MetricCard— Pure React.Headerヘッダー領域(Title + Symbol横並び).Titleメトリクスラベル.Symbolアイコン表示領域.Value数値表示(animated対応).TrendProps増減トレンド(direction).Description補足テキストProps
MetricCard
variant"default""default" | "elevated" | "ghost"カードのスタイルバリアント
size"default""sm" | "default" | "lg"カードのサイズ (パディング・フォントサイズに影響)
radius"default""none" | "sm" | "base" | "default" | "lg" | "xl" | "2xl" | "3xl" | "full"カードの角丸サイズ (デザイントークン準拠)
animatedfalsebooleanMetricCard.Valueの数値をカウントアップでアニメーション表示
| Name | Type | Default | Description |
|---|---|---|---|
variant | "default" | "elevated" | "ghost" | "default" | カードのスタイルバリアント |
size | "sm" | "default" | "lg" | "default" | カードのサイズ (パディング・フォントサイズに影響) |
radius | "none" | "sm" | "base" | "default" | "lg" | "xl" | "2xl" | "3xl" | "full" | "default" | カードの角丸サイズ (デザイントークン準拠) |
animated | boolean | false | MetricCard.Valueの数値をカウントアップでアニメーション表示 |
MetricCard.Trend
direction—"up" | "down" | "neutral"トレンドの方向 (必須)。アイコンと色が自動適用
| Name | Type | Default | Description |
|---|---|---|---|
direction | "up" | "down" | "neutral" | — | トレンドの方向 (必須)。アイコンと色が自動適用 |
Anatomy
December 2024 actual
Best Practices
推奨
- ✓トレンドには色+アイコン+テキストを併用する
- ✓グリッドレイアウトでカードを均等に配置する
- ✓数値は読みやすいフォーマットで表示する(カンマ区切り等)
- ✓比較期間を説明テキストで明示する
避けるべき
- ✗色だけでトレンドの方向を伝えない(色覚多様性に配慮)
- ✗1画面に多すぎるメトリックカードを配置しない
- ✗コンテキストなしの数値だけを表示しない
- ✗異なるサイズのカードを同じグリッドに混在させない
Accessibility
キーボード操作
ARIA / WCAG
- トレンドアイコンは
aria-hidden+ sr-onlyテキスト - 色だけでなくアイコン+テキストで意味を伝達
- 自然な読み上げ順序(タイトル→数値→トレンド→説明)
- WCAG AA色彩コントラスト準拠