{
  "id": "stacked-area-share-shift",
  "schemaVersion": 2,
  "title": {
    "ja": "契約の構成比の推移 — 2 年で主力が入れ替わった",
    "en": "Mix Over Time — The Mainstay Changed Hands in Two Years"
  },
  "summary": {
    "ja": "帯の厚みが構成比、横が時間。合計を 100% に正規化し、入れ替わりと「動いていないもの」を同時に見せる",
    "en": "Band thickness is share, the horizontal is time. Normalised to 100%, so the handover and the band that never moved are read together"
  },
  "capturedAt": "2026-09-16",
  "categories": [
    "presentation"
  ],
  "tags": [
    "data-viz",
    "minimal"
  ],
  "useCases": [
    "status"
  ],
  "format": "slide-16x9",
  "density": "medium",
  "layout": {
    "kind": "timeline",
    "canvas": {
      "w": 1920,
      "h": 1080
    },
    "margin": {
      "top": 96,
      "right": 140,
      "bottom": 96,
      "left": 140
    }
  },
  "type": {
    "title": {
      "size": 44,
      "weight": 700,
      "tracking": "0.01em",
      "leading": 1.3
    },
    "window": {
      "size": 20,
      "weight": 500,
      "leading": 1.5
    },
    "bandName": {
      "size": 22,
      "weight": 700,
      "leading": 1.3
    },
    "bandValue": {
      "size": 24,
      "weight": 700,
      "leading": 1.2,
      "numeric": "tabular"
    },
    "axisLabel": {
      "size": 20,
      "weight": 500,
      "leading": 1.4,
      "numeric": "tabular"
    },
    "forecastLabel": {
      "size": 20,
      "weight": 500,
      "leading": 1.4
    },
    "conclusion": {
      "size": 26,
      "weight": 500,
      "leading": 1.6
    },
    "note": {
      "size": 16,
      "weight": 400,
      "leading": 1.6
    }
  },
  "colors": {
    "ground": "#FFFFFF",
    "surface": "#F4F6F9",
    "ink": "#131820",
    "muted": "#667183",
    "accent": "#1F5FA8",
    "rule": "#DBE1E9",
    "series": [
      "#1C8C79",
      "#2F6FB5",
      "#9A6B12"
    ]
  },
  "rules": [
    {
      "ja": "構成比であることを明記する。帯が細っても金額が減ったとは限らず、総額が伸びていれば増えていることさえある",
      "en": "Say that these are shares. A band can thin while its amount grows, if the total grew faster"
    },
    {
      "ja": "帯は 3〜4 本まで。5 本を超えると細い帯の厚みの変化が読めず、真ん中の帯ほど始点も終点も追えなくなる",
      "en": "Three or four bands at most. Past five, thin bands stop showing their change, and the middle ones lose both their start and their end"
    },
    {
      "ja": "帯の濃さを揃える。1 本だけ濃くすると、推移の図ではなく「この帯の話」という主張になる",
      "en": "Keep the bands equal in strength. Darken one and the figure stops being a history and becomes an argument about that band"
    },
    {
      "ja": "動いていない帯にも名前と数を置く。入れ替わりだけを読ませると、「変わらなかった」という事実が落ちる",
      "en": "Name and number the band that did not move. Read only for the handover, the figure loses the fact that something stayed put"
    },
    {
      "ja": "見込みの期間をその旨で示す。実績と見込みが同じ線で続くと、最後の 1 期だけが約束として読まれる",
      "en": "Mark a forecast period as a forecast. Drawn continuous with actuals, the final period reads as a commitment"
    }
  ],
  "cover": "https://design-vault.pages.dev/_astro/cover.CWYE95NZ.png",
  "assets": [],
  "shortlist": false,
  "status": "published",
  "relations": {
    "similar": [
      "donut-share-center-total",
      "treemap-budget-allocation"
    ]
  },
  "license": "Original",
  "publishedAt": null,
  "reproduction": {
    "spec": {
      "format": "slide-16x9",
      "density": "medium",
      "layout": {
        "kind": "timeline",
        "canvas": {
          "w": 1920,
          "h": 1080
        },
        "margin": {
          "top": 96,
          "right": 140,
          "bottom": 96,
          "left": 140
        }
      },
      "type": {
        "title": {
          "size": 44,
          "weight": 700,
          "tracking": "0.01em",
          "leading": 1.3
        },
        "window": {
          "size": 20,
          "weight": 500,
          "leading": 1.5
        },
        "bandName": {
          "size": 22,
          "weight": 700,
          "leading": 1.3
        },
        "bandValue": {
          "size": 24,
          "weight": 700,
          "leading": 1.2,
          "numeric": "tabular"
        },
        "axisLabel": {
          "size": 20,
          "weight": 500,
          "leading": 1.4,
          "numeric": "tabular"
        },
        "forecastLabel": {
          "size": 20,
          "weight": 500,
          "leading": 1.4
        },
        "conclusion": {
          "size": 26,
          "weight": 500,
          "leading": 1.6
        },
        "note": {
          "size": 16,
          "weight": 400,
          "leading": 1.6
        }
      },
      "colors": {
        "ground": "#FFFFFF",
        "surface": "#F4F6F9",
        "ink": "#131820",
        "muted": "#667183",
        "accent": "#1F5FA8",
        "rule": "#DBE1E9",
        "series": [
          "#1C8C79",
          "#2F6FB5",
          "#9A6B12"
        ]
      },
      "rules": [
        "Say that these are shares. A band can thin while its amount grows, if the total grew faster",
        "Three or four bands at most. Past five, thin bands stop showing their change, and the middle ones lose both their start and their end",
        "Keep the bands equal in strength. Darken one and the figure stops being a history and becomes an argument about that band",
        "Name and number the band that did not move. Read only for the handover, the figure loses the fact that something stayed put",
        "Mark a forecast period as a forecast. Drawn continuous with actuals, the final period reads as a commitment"
      ]
    },
    "prompt": {
      "ja": "以下の仕様でスライドを 1 枚作ってください。\n\n- 版面 1920 × 1080\n- 余白 上 96 右 140 下 96 左 140\n\n## 文字（版面 1920px に対する px）\ntitle  44px / 700 / 字間 0.01em / 行送り 1.3\nwindow  20px / 500 / 行送り 1.5\nbandName  22px / 700 / 行送り 1.3\nbandValue  24px / 700 / 行送り 1.2 / 等幅数字\naxisLabel  20px / 500 / 行送り 1.4 / 等幅数字\nforecastLabel  20px / 500 / 行送り 1.4\nconclusion  26px / 500 / 行送り 1.6\nnote  16px / 400 / 行送り 1.6\n\n## 配色\n地 #FFFFFF / 面 #F4F6F9 / 文字 #131820 / 補助 #667183 / 強調 #1F5FA8 / 罫 #DBE1E9 / #1C8C79 / #2F6FB5 / #9A6B12\n\n## 外すと崩れる点\n- 構成比であることを明記する。帯が細っても金額が減ったとは限らず、総額が伸びていれば増えていることさえある\n- 帯は 3〜4 本まで。5 本を超えると細い帯の厚みの変化が読めず、真ん中の帯ほど始点も終点も追えなくなる\n- 帯の濃さを揃える。1 本だけ濃くすると、推移の図ではなく「この帯の話」という主張になる\n- 動いていない帯にも名前と数を置く。入れ替わりだけを読ませると、「変わらなかった」という事実が落ちる\n- 見込みの期間をその旨で示す。実績と見込みが同じ線で続くと、最後の 1 期だけが約束として読まれる\n\n内容は［ここに自分の内容を書く］に置き換えてください。寸法と配色はそのまま守ってください。\n正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/stacked-area-share-shift/pattern.html",
      "en": "Produce one slide to the following specification.\n\n- Canvas 1920 × 1080\n- Margin top 96 right 140 bottom 96 left 140\n\n## Type (px against a 1920px canvas)\ntitle  44px / 700 / tracking 0.01em / leading 1.3\nwindow  20px / 500 / leading 1.5\nbandName  22px / 700 / leading 1.3\nbandValue  24px / 700 / leading 1.2 / tabular numerals\naxisLabel  20px / 500 / leading 1.4 / tabular numerals\nforecastLabel  20px / 500 / leading 1.4\nconclusion  26px / 500 / leading 1.6\nnote  16px / 400 / leading 1.6\n\n## Colour\nGround #FFFFFF / Surface #F4F6F9 / Ink #131820 / Muted #667183 / Accent #1F5FA8 / Rule #DBE1E9 / #1C8C79 / #2F6FB5 / #9A6B12\n\n## Constraints — dropping these breaks it\n- Say that these are shares. A band can thin while its amount grows, if the total grew faster\n- Three or four bands at most. Past five, thin bands stop showing their change, and the middle ones lose both their start and their end\n- Keep the bands equal in strength. Darken one and the figure stops being a history and becomes an argument about that band\n- Name and number the band that did not move. Read only for the handover, the figure loses the fact that something stayed put\n- Mark a forecast period as a forecast. Drawn continuous with actuals, the final period reads as a commitment\n\nReplace the content with [your content]. Keep the measurements and colours as given.\nFor an exact reproduction, use the verbatim HTML at https://design-vault.pages.dev/designs/stacked-area-share-shift/pattern.html."
    },
    "code": {
      "html": "<!doctype html>\n<meta charset=\"utf-8\">\n<title>契約の構成比の推移 — 2 年で主力が入れ替わった</title>\n<meta name=\"dv-font\" content=\"Zen Kaku Gothic New:400;500;700\">\n<link rel=\"stylesheet\" href=\"./font.css\">\n<style>\n  /* 色のリテラルはこの :root にだけ置く。以下の規則は var() か color-mix() で名指す。\n     区分色は 3 つ。構成比の図なので、帯ごとに色が要る —— ただし濃さは揃え、\n     どれかを目立たせない（目立たせた瞬間、推移ではなく主張になる）。 */\n  :root {\n    --ground: #FFFFFF;\n    --surface: #F4F6F9;\n    --ink: #131820;\n    --muted: #667183;\n    --accent: #1F5FA8;\n    --rule: #DBE1E9;\n    --series-1: #1C8C79;\n    --series-2: #2F6FB5;\n    --series-3: #9A6B12;\n  }\n\n  * { box-sizing: border-box; margin: 0; }\n  html, body { width: 1920px; height: 1080px; }\n  body { font-family: \"Zen Kaku Gothic New\", \"IPAGothic\", sans-serif; }\n\n  .artboard {\n    width: 1920px;\n    height: 1080px;\n    background: var(--ground);\n    color: var(--ink);\n    padding: 96px 140px;\n  }\n\n  .content {\n    height: 100%;\n    display: grid;\n    grid-template-rows: auto minmax(0, 1fr) auto;\n  }\n\n  .head { border-bottom: 2px solid var(--rule); padding-bottom: 28px; }\n  .title { font-size: 44px; font-weight: 700; letter-spacing: 0.01em; line-height: 1.3; }\n  .window { margin-top: 14px; font-size: 20px; font-weight: 500; line-height: 1.5; color: var(--muted); }\n\n  .body {\n    display: grid;\n    grid-template-rows: auto auto;\n    align-content: center;\n    justify-items: center;\n    row-gap: 28px;\n  }\n\n  .figure { display: block; }\n  .band-1 { fill: color-mix(in srgb, var(--series-1) 26%, var(--ground)); }\n  .band-2 { fill: color-mix(in srgb, var(--series-2) 30%, var(--ground)); }\n  .band-3 { fill: color-mix(in srgb, var(--series-3) 24%, var(--ground)); }\n  .divider { fill: none; stroke: var(--ground); stroke-width: 3; }\n  .tick { stroke: var(--rule); stroke-width: 1.5; }\n  .band-name { fill: var(--ink); font-size: 22px; font-weight: 700; line-height: 1.3; }\n  .band-value { fill: var(--ink); font-size: 24px; font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; }\n  .axis-label { fill: var(--muted); font-size: 20px; font-weight: 500; line-height: 1.4; font-variant-numeric: tabular-nums; }\n  /* 実績と見込みの境目を図の中に引く。見出しに「見込み」と書くだけでは、\n     最後の 1 期が実績と同じ線で続いているぶん、約束として読まれる。 */\n  .forecast-line { fill: none; stroke: var(--muted); stroke-width: 2; stroke-dasharray: 8 6; }\n  .forecast-label { fill: var(--muted); font-size: 20px; font-weight: 500; line-height: 1.4; }\n\n  .conclusion { font-size: 26px; font-weight: 500; line-height: 1.6; color: var(--muted); }\n\n  .foot { border-top: 1px solid var(--rule); padding-top: 22px; font-size: 16px; font-weight: 400; line-height: 1.6; color: var(--muted); }\n</style>\n\n<div class=\"artboard\" data-artboard>\n  <div class=\"content\" data-content>\n    <div class=\"head\">\n      <h1 class=\"title\" data-type=\"title\">契約の構成比の推移 — 2 年で主力が入れ替わった</h1>\n      <p class=\"window\" data-type=\"window\">半期ごとの契約金額ベース / 合計を 100% に正規化 / 2026 年下期は見込み</p>\n    </div>\n\n    <div class=\"body\">\n      <!-- 等倍で描く。viewBox と width/height を一致させてあるので、\n           SVG の中の文字の級数は版面の px とそのまま同じ数字になる。\n           縦は 420px ＝ 100%。どの帯の厚みもその比で、各時点の合計は必ず 100% になる。 -->\n      <svg class=\"figure\" width=\"1500\" height=\"520\" viewBox=\"0 0 1500 520\">\n        <polygon class=\"band-1\" points=\"80,460 1480,460 1480,350.8 1130,321.4 780,279.4 430,233.2 80,199.6\"/>\n        <polygon class=\"band-2\" points=\"80,199.6 430,233.2 780,279.4 1130,321.4 1480,350.8 1480,119.8 1130,119.8 780,115.6 430,107.2 80,107.2\"/>\n        <polygon class=\"band-3\" points=\"80,107.2 430,107.2 780,115.6 1130,119.8 1480,119.8 1480,40 80,40\"/>\n\n        <path class=\"divider\" d=\"M80 199.6L430 233.2L780 279.4L1130 321.4L1480 350.8M80 107.2L430 107.2L780 115.6L1130 119.8L1480 119.8\"/>\n\n        <path class=\"tick\" d=\"M80 460v14M430 460v14M780 460v14M1130 460v14M1480 460v14\"/>\n\n        <path class=\"forecast-line\" d=\"M1130 40v420\"/>\n        <text class=\"forecast-label\" data-type=\"forecastLabel\" x=\"1146\" y=\"58\" text-anchor=\"start\" dominant-baseline=\"central\">ここから見込み</text>\n\n        <text class=\"band-name\" data-type=\"bandName\" x=\"150\" y=\"330\" text-anchor=\"start\" dominant-baseline=\"central\">旧プラン</text>\n        <text class=\"band-name\" x=\"150\" y=\"153\" text-anchor=\"start\" dominant-baseline=\"central\">新プラン</text>\n        <text class=\"band-name\" x=\"150\" y=\"74\" text-anchor=\"start\" dominant-baseline=\"central\">従量</text>\n\n        <text class=\"band-value\" data-type=\"bandValue\" x=\"1440\" y=\"405\" text-anchor=\"end\" dominant-baseline=\"central\">26%</text>\n        <text class=\"band-value\" x=\"1440\" y=\"235\" text-anchor=\"end\" dominant-baseline=\"central\">55%</text>\n        <text class=\"band-value\" x=\"1440\" y=\"80\" text-anchor=\"end\" dominant-baseline=\"central\">19%</text>\n\n        <text class=\"axis-label\" data-type=\"axisLabel\" x=\"80\" y=\"494\" text-anchor=\"start\" dominant-baseline=\"central\">2024 下</text>\n        <text class=\"axis-label\" x=\"430\" y=\"494\" text-anchor=\"middle\" dominant-baseline=\"central\">2025 上</text>\n        <text class=\"axis-label\" x=\"780\" y=\"494\" text-anchor=\"middle\" dominant-baseline=\"central\">2025 下</text>\n        <text class=\"axis-label\" x=\"1130\" y=\"494\" text-anchor=\"middle\" dominant-baseline=\"central\">2026 上</text>\n        <text class=\"axis-label\" x=\"1480\" y=\"494\" text-anchor=\"end\" dominant-baseline=\"central\">2026 下</text>\n      </svg>\n\n      <p class=\"conclusion\" data-type=\"conclusion\">旧プランは 62% から 26% へ。入れ替わりは起きたが、従量は 2 年間ほとんど動いていない</p>\n    </div>\n\n    <div class=\"foot\" data-type=\"note\">構成比なので、帯が細っても金額が減ったとは限らない。総額は別紙の推移を見る。</div>\n  </div>\n</div>\n",
      "url": "https://design-vault.pages.dev/designs/stacked-area-share-shift/pattern.html",
      "fonts": [
        "https://design-vault.pages.dev/designs/stacked-area-share-shift/font.css",
        "https://design-vault.pages.dev/designs/stacked-area-share-shift/font-0.woff2",
        "https://design-vault.pages.dev/designs/stacked-area-share-shift/font-1.woff2",
        "https://design-vault.pages.dev/designs/stacked-area-share-shift/font-2.woff2"
      ]
    }
  },
  "urls": {
    "ja": "https://design-vault.pages.dev/designs/stacked-area-share-shift",
    "en": "https://design-vault.pages.dev/en/designs/stacked-area-share-shift"
  },
  "notesMarkdown": "構成比の推移で見落とされるのは、**動かなかった帯**である。目は入れ替わる 2 本を\n追い、変わらない 1 本は背景になる。けれど「2 年間なにをしても動かなかった」は、\n入れ替わりと同じくらい強い事実である。\n\n正規化していることを明記するのも同じ理由で、帯が細ったことと金額が減ったことは\nまったく別である。総額が伸びていれば、細った帯の金額はむしろ増えている。"
}