# バブルチャート / Bubble Chart

- Stable ID: urn:uiux-atlas:pattern:073
- Pattern: 73
- Category: グラフ
- Usage: 位置と円の大きさで3変数を示す
- Accessibility: 半径ではなく面積を値に比例させる
- Responsive: PCは比較、スマホは要約。数値表と凡例を併記。
- HTML: 073.html
- JSON: 073.json
- Interactive demo: ../index.html#pattern/73

## Implementation specification

「バブルチャート / Bubble Chart」を実装してください。

目的：位置と円の大きさで3変数を示す。
想定場面：グラフ・分布・規模を扱う画面。

仕様：
- 半径ではなく面積を値に比例させる。
- PCでは比較を、スマホでは要約を優先。数値表と凡例を併記します。
- Noto Sans JP、本文16px、補足14px、見出し24pxを基本にする。
- 背景#FFFFFF、カード#FFFFFF、本文#17191E、主要操作#17191E、境界線#E8ECF3。主要ボタンの文字は白にする。
- 余白は8px単位、カード角丸12px、控えめな影に統一する。
- semantic HTMLと標準コントロールを優先し、操作名・現在状態・結果を読み上げ可能にする。
- キーボード操作、見えるフォーカス、通常テキスト4.5:1以上のコントラストを確保する。
- prefers-reduced-motionを尊重し、アニメーションを止めても内容を理解できるようにする。

受け入れ条件：
- 1440pxと390pxで表示を確認し、ページ全体に横はみ出しがない。
- 半径ではなく面積を値に比例させることを操作で確認する。
- 読み込み・空・成功・エラーの該当状態を用意する。
- 見た目だけのボタンを残さず、操作を実装する。
- 実装後にスクリーンショットを比較して改善し、決定した仕様をdesign.mdへ保存する。

## Synthetic sample data

```json
{
  "columns": [
    "広告費（万円）",
    "売上（万円）",
    "顧客数"
  ],
  "rows": [
    [
      "8.0",
      "18.0",
      10
    ],
    [
      "12.5",
      "38.2",
      23
    ],
    [
      "17.0",
      "33.4",
      36
    ],
    [
      "21.5",
      "28.6",
      49
    ],
    [
      "26.0",
      "48.8",
      62
    ],
    [
      "30.5",
      "44.0",
      75
    ],
    [
      "35.0",
      "39.2",
      88
    ],
    [
      "39.5",
      "59.4",
      21
    ],
    [
      "44.0",
      "54.6",
      34
    ],
    [
      "48.5",
      "49.8",
      47
    ],
    [
      "53.0",
      "70.0",
      60
    ],
    [
      "57.5",
      "65.2",
      73
    ],
    [
      "62.0",
      "60.4",
      86
    ],
    [
      "66.5",
      "80.6",
      19
    ],
    [
      "71.0",
      "75.8",
      32
    ],
    [
      "75.5",
      "71.0",
      45
    ],
    [
      "80.0",
      "91.2",
      58
    ],
    [
      "84.5",
      "86.4",
      71
    ],
    [
      "89.0",
      "81.6",
      84
    ]
  ]
}
```
