UIXHERO

Dashboard Patterns(ダッシュボードパターン)

KPI・グラフ・テーブル・アラートを1画面に集約したデータ可視化UIのレイアウトパターン。グリッドレイアウト・ウィジェット設計・レスポンシブ対応・スケルトンローディング・フィルタリングの設計を解説する。

2026年3月3日
更新: 2026年9月3日
22
by Dengen Yosho(DGYS)

指標・グラフ・テーブル・アラートなどの情報を1画面に集約した、データ監視・意思決定のためのUIパターン。KPIカード・時系列グラフ・データテーブル・アラートバナー・日付フィルター・ウィジェットグリッドで構成される。Google Analytics・Salesforce・Vercel・GitHub sなど、データドリブンなプロダクトのほぼすべてに登場する。

この記事を読むと、KPIカードのレイアウト・グリッドシステムによるウィジェット配置・スケルトンローディング・日付範囲フィルター・レスポンシブダッシュボード・空状態の設計が自分でできるようになります。


1. UI例(Preview / Live)


2. 定義(Definition)

複数のデータウィジェット(KPIカード・グラフ・テーブル・アラート)を1画面にまとめた、データ監視・意思決定のためのパターン。単一のコンポーネントではなく、複数のコンポーネントを特定の目的で組み合わせるレイアウトパターン

ダッシュボードの4層構造

要素役割
フィルター層日付範囲・データの絞り込み
サマリー層KPIカード現状の一目把握
分析層グラフ・チャートトレンドと比較
詳細層テーブル・リストドリルダウン

3. 使い分け(When to use / When NOT to use)

3.1 When to use

  • データ監視:サーバーのリアルタイム状態・エラーレート・パフォーマンス
  • KPI管理:売上・・DAU などのビジネス指標の日次確認
  • オペレーション管理:サポートチケット数・在庫・注文状況
  • コンテンツ分析:PV・直帰率・コンバージョンのページ別比較

3.2 When NOT to use

  • 情報が少ない(5項目未満):シンプルな設定ページやプロフィールページにダッシュボードパターンは重すぎる
  • データが静的・変化しない:更新されないデータには動的なダッシュボードは不要

4. 設計判断の核(Decision Principles)

Dashboard Patternsの核は「情報の階層化」——KPIカード(要約)→グラフ(トレンド)→テーブル(詳細)の順に上から配置し、ユーザーが「全体把握 → 問題発見 → 詳細確認」の流れで画面を読めるようにする。すべてのウィジェットを同等の重みで並べると、どこを見ればいいか分からなくなる。

判断の優先順位:① 情報の階層化(要約→詳細) → ② スケルトンローディング → ③ フィルターの連動 → ④ 前期比較の

  • KPIカードは「値・変化量(前期比)・アイコン」の3点セットで設計する:値だけ見せても「増えたか減ったか」が分からない。変化量(前期比)と上昇/下降の色(緑/赤)をセットで表示する。「+12.4%」のような相対値と「前期比」のコンテキスト表示を忘れずに
  • データ取得中はスケルトンローディングで実際のレイアウトを維持する:スピナー1つよりも、実際のカードの骨格をグレーで表示するスケルトンの方が、レイアウトシフトがなく体感速度が速い。KPIカードとグラフの形状をスケルトンで模倣する
  • フィルター(日付範囲・セグメント)の変更はすべてのウィジェットに連動させる:フィルターが1か所に集まっていて、変更したらページ全体のデータが更新される設計が理想。ウィジェットごとにフィルターを持つと管理が煩雑になる
  • レスポンシブはグリッドの列数で制御する:KPIカードは grid-cols-4(デスクトップ)→ grid-cols-2(タブレット)→ grid-cols-1(モバイル)と列数を変える。幅を縮小するのではなく列数を変えることで、各カードのを維持する

5. 状態設計(States)

状態KPIカードグラフテーブル
ローディングスケルトンスケルトン矩形スケルトン行
データあり値・変化量表示折れ線/棒グラフデータ行
データなし(0件)「データがありません」空グラフ空状態メッセージ
エラーエラーバナー再試行ボタン
フィルター変更中スケルトンスケルトンスケルトン

6. バリエーション設計(Variants)

バリアント特徴使用例
概要ダッシュボードKPIカード+折れ線グラフGoogle Analytics
リアルタイムモニター自動更新・アラートサーバー監視・Datadog
比較ダッシュボードA/Bグループの並列表示結果
カスタマイズ可能ウィジェットのDnD並べ替えSalesforce・Grafana
モバイルダッシュボード縦スクロール・KPI重視スマホ向け経営指標

7. パターン集(Good / Bad / How to fix)

7.0 よく崩れる設計パターン(3つ)

  • データをそのまま並べて情報の階層がない:KPI・グラフ・テーブルが同じサイズで羅列され、何を最初に見るべきかが分からない
  • ローディング中にレイアウトシフトが起きる:データ取得後に突然ウィジェットが出現してページが跳ねる
  • フィルターが各ウィジェットにバラバラについている:日付フィルターをウィジェットごとに操作しなければならず、全体を統一した条件で見られない

7.1 Bad(典型3つ)

  • 12個のKPIカードを同じサイズで並べ、前期比もなく「増えた/減った」が分からない
  • isLoading 中は空のdivを返し、データ取得後にレイアウト全体が出現してシフトが発生する
  • 日付フィルターをグラフコンポーネント内に持ち、テーブルとKPIは別のデータを表示している

7.2 Good(対になる3つ)

  • KPIは4〜6枚に絞り、値・前期比・アイコン(または色)の3点セットで設計する
  • isLoading 中はスケルトンコンポーネントで実際のレイアウト形状を維持し、レイアウトシフトをゼロにする
  • 日付フィルターをダッシュボードのトップレベルStateとして管理し、全ウィジェットがその値を参照してデータを取得する

7.3 How to fix(手順)

  1. ウィジェット一覧を「要約→トレンド→詳細」の3層に分類し直す
  2. isLoading state にスケルトンコンポーネントを返す分岐を追加する
  3. 日付フィルターをページのトップレベルに引き上げ、全ウィジェットに period を props で渡す
  4. KPIカードに前期比フィールドを追加し、上昇/下降を色で示す

8. ルール(Must / Better)

Must(守らないと壊れる)

Better(品質が跳ねる)


9. アクセシビリティ要件(必須)

Screen Reader

<!-- KPIカード -->
<article aria-label="総訪問数">
  <p>12,847</p>
  <p aria-label="前期比 プラス12.4パーセント 上昇">↑ +12.4%</p>
</article>

<!-- グラフ:テキスト代替 -->
<figure>
  <figcaption>訪問数の推移(過去7日間)</figcaption>
  <svg aria-hidden="true"><!-- グラフSVG --></svg>
  <!-- スクリーンリーダー向けのテキスト代替 -->
  <table class="sr-only">
    <caption>訪問数データ</caption>
    <!-- 日付と値のテーブル -->
  </table>
</figure>

<!-- ローディング状態 -->
<div role="status" aria-label="データを読み込んでいます">
  <!-- スケルトン -->
</div>

10. 実装メモ(Implementation Notes)

  • グラフライブラリrecharts(React向け・軽量)・Chart.js + react-chartjs-2D3.js(高度なカスタマイズ)が主な選択肢。プロダクション用途では recharts が最もバランスが良い
  • データフェッチの最適化:SWR や React Query の staleWhileRevalidate を使うと、キャッシュデータを即時表示しながらバックグラウンドで更新するため、体感ローディング時間がゼロになる
  • ウィジェットのメモ化:各ウィジェットコンポーネントを React.memo でラップし、関連する props が変わった時のみ再レンダリングするようする。ダッシュボードは多くのコンポーネントが1画面に並ぶため、不要な再レンダリングがパフォーマンスに直結する
  • レスポンシブグリッド:Tailwind の grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 パターンが最も素直。CSS Grid の auto-fill + minmax で完全にレスポンシブなグリッドを作ることもできる

11. 関連リンク


12. まとめ

Dashboard Patternsの設計で最重要なのは「情報の階層化(要約→トレンド→詳細)」と「スケルトンローディング」です。KPIカードには前期比を必ずセットにし、ローディング中もレイアウト形状をスケルトンで維持することで、体感速度とレイアウト安定性が大きく向上します。フィルターはページトップレベルで一元管理し、全ウィジェットが同じ条件のデータを表示するアーキテクチャを最初から設計してください。

更新のお知らせ

サイトに載せていない実例や、新しい記事のお知らせはこちらで出しています。

読んだ内容を、自分の画面に当てるとき

UIXHEROは、記事を書くほかに、画面の検品・判定、デザインシステムの構築、実装と改善の伴走を受けています。何を頼めばいいか決まっていない段階の相談も、同じ窓口で受けます。

UIXHEROに頼めることを見る

※ 記事の内容についての質問や、書いてほしいテーマの要望も同じ窓口で受けています

記事をシェア

メールでお知らせを受け取る

最終更新: 2026年9月3日

この記事を書いた人

Dengen Yosho(DGYS)

Dengen Yosho(DGYS)

UI/UXデザイナー兼デザインエンジニア デザイン歴25年以上 情報設計〜UIデザイン〜React/TypeScriptによる実装までを一気通貫で担当 大手企業のDXプロジェクトや決済アプリ領域で、デザインリードとして改善と構築を経験 現在はフリーランスとして、プロダクトのUI/UX改善とデザインシステム構築を支援 長年の実務の中で感じてきたのは、 「良いUI」はセンスではなく、再現可能な判断の積み重ねであるということ UIXHEROは、 心理学や行動科学の知見を、現場で使える設計言語に翻訳するための場所 関心領域は「ユーザーの行動が変わるUI」 人の認知・注意・意思決定の構造を理解し、 “なぜそのUIが機能するのか”を言語化することを目指している

あわせて読みたい

この記事に関連する記事をご紹介します

Bar Chart(棒グラフ)

カテゴリごとの量を棒の長さで比べるチャート。ゼロ基線の扱い、並び順、縦横の選び方、しきい値の見せ方という設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

2026年8月27日
18

Donut Chart(ドーナツチャート)

中央をくり抜いた円で構成比を示すチャート。中央に置く値の選び方、円グラフとの使い分け、リングの太さ、凡例の作りという設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

2026年8月27日
17

Gauge Chart(ゲージチャート)

1つの値を範囲の中に置いて示す半円のチャート。範囲の両端に意味があるかという条件、しきい値の帯の設計、色だけで良否を伝えない書き方という設計判断とアクセシビリティ要件を解説する。

2026年8月27日
16

もっと深く知りたいですか?

ここに掲載されていないトピックについても、リクエストがあれば解説記事を追加します。 わかりにくい点や、具体的な事例について知りたいことがあれば教えてください。

リクエストを送る