{
  "id": "population-pyramid-age-structure",
  "schemaVersion": 2,
  "title": {
    "ja": "人口構成 — 働き手世代が過半を占める",
    "en": "Population Structure — Working-Age Adults Make Up a Majority"
  },
  "summary": {
    "ja": "男女の人口比を中央から左右へ同じ尺度で伸ばす人口ピラミッド。年齢層の幅で面積を誤読させず、男女差と総人口比を読む",
    "en": "A population pyramid with men and women extending from a shared centre on matching scales. It shows age and sex shares without inviting area comparisons across unequal age bands."
  },
  "capturedAt": "2026-09-25",
  "categories": [
    "presentation"
  ],
  "tags": [
    "data-viz",
    "minimal"
  ],
  "useCases": [
    "kpi",
    "comparison"
  ],
  "format": "slide-16x9",
  "density": "medium",
  "layout": {
    "kind": "axis",
    "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
    },
    "value": {
      "size": 24,
      "weight": 700,
      "numeric": "tabular"
    },
    "cohort": {
      "size": 25,
      "weight": 700
    },
    "axisLabel": {
      "size": 20,
      "weight": 500
    },
    "legend": {
      "size": 22,
      "weight": 500
    },
    "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": [
      "#2F6FB5",
      "#A85A2E"
    ]
  },
  "rules": [
    {
      "ja": "男女は中央から左右へ同じ尺度で描く。片側の幅を変えると、男女差と人口比の両方が変わって見える",
      "en": "Use the same scale on both sides of the centre. Different scales would distort both the sex gap and the population shares."
    },
    {
      "ja": "値は各年齢層が総人口に占める割合と明記する。男女それぞれの合計を 100% と誤解させない",
      "en": "State that each value is a share of the total population; the two sides do not each sum to 100%."
    },
    {
      "ja": "年齢階級は 3 つにまとめ、左右の値と対応する中央ラベルを同じ高さに揃える",
      "en": "Keep the age groups to three broad bands and align the centre label with both corresponding values."
    },
    {
      "ja": "年齢階級の幅が違うので階級内の人口密度を比べない。各値は総人口比だけを表す",
      "en": "The age bands have unequal widths, so do not compare within-band density. Each value shows only its share of the total."
    },
    {
      "ja": "架空データであることを明記し、実際の地域統計と取り違えさせない",
      "en": "Label the data as fictional so it cannot be mistaken for an actual region's statistics."
    }
  ],
  "cover": "https://design-vault.pages.dev/_astro/cover.gBdNcOGF.png",
  "assets": [],
  "shortlist": false,
  "status": "published",
  "relations": {
    "similar": []
  },
  "license": "Original",
  "publishedAt": null,
  "reproduction": {
    "spec": {
      "format": "slide-16x9",
      "density": "medium",
      "layout": {
        "kind": "axis",
        "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
        },
        "value": {
          "size": 24,
          "weight": 700,
          "numeric": "tabular"
        },
        "cohort": {
          "size": 25,
          "weight": 700
        },
        "axisLabel": {
          "size": 20,
          "weight": 500
        },
        "legend": {
          "size": 22,
          "weight": 500
        },
        "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": [
          "#2F6FB5",
          "#A85A2E"
        ]
      },
      "rules": [
        "Use the same scale on both sides of the centre. Different scales would distort both the sex gap and the population shares.",
        "State that each value is a share of the total population; the two sides do not each sum to 100%.",
        "Keep the age groups to three broad bands and align the centre label with both corresponding values.",
        "The age bands have unequal widths, so do not compare within-band density. Each value shows only its share of the total.",
        "Label the data as fictional so it cannot be mistaken for an actual region's statistics."
      ]
    },
    "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\nvalue  24px / 700 / 等幅数字\ncohort  25px / 700\naxisLabel  20px / 500\nlegend  22px / 500\nconclusion  26px / 500 / 行送り 1.6\nnote  16px / 400 / 行送り 1.6\n\n## 配色\n地 #FFFFFF / 面 #F4F6F9 / 文字 #131820 / 補助 #667183 / 強調 #1F5FA8 / 罫 #DBE1E9 / #2F6FB5 / #A85A2E\n\n## 外すと崩れる点\n- 男女は中央から左右へ同じ尺度で描く。片側の幅を変えると、男女差と人口比の両方が変わって見える\n- 値は各年齢層が総人口に占める割合と明記する。男女それぞれの合計を 100% と誤解させない\n- 年齢階級は 3 つにまとめ、左右の値と対応する中央ラベルを同じ高さに揃える\n- 年齢階級の幅が違うので階級内の人口密度を比べない。各値は総人口比だけを表す\n- 架空データであることを明記し、実際の地域統計と取り違えさせない\n\n内容は［ここに自分の内容を書く］に置き換えてください。寸法と配色はそのまま守ってください。\n正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/population-pyramid-age-structure/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\nvalue  24px / 700 / tabular numerals\ncohort  25px / 700\naxisLabel  20px / 500\nlegend  22px / 500\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 / #2F6FB5 / #A85A2E\n\n## Constraints — dropping these breaks it\n- Use the same scale on both sides of the centre. Different scales would distort both the sex gap and the population shares.\n- State that each value is a share of the total population; the two sides do not each sum to 100%.\n- Keep the age groups to three broad bands and align the centre label with both corresponding values.\n- The age bands have unequal widths, so do not compare within-band density. Each value shows only its share of the total.\n- Label the data as fictional so it cannot be mistaken for an actual region's statistics.\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/population-pyramid-age-structure/pattern.html."
    },
    "code": {
      "html": "<!doctype html>\n<meta charset=\"utf-8\">\n<title>人口構成 — 働き手世代が過半を占める</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 {\n    --ground: #FFFFFF;\n    --surface: #F4F6F9;\n    --ink: #131820;\n    --muted: #667183;\n    --accent: #1F5FA8;\n    --rule: #DBE1E9;\n    --series-1: #2F6FB5;\n    --series-2: #A85A2E;\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    padding: 96px 140px;\n    color: var(--ink);\n    background: var(--ground);\n  }\n\n  .content { height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }\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; color: var(--muted); font-size: 20px; font-weight: 500; line-height: 1.5; }\n  .body { display: grid; grid-template-rows: auto auto; align-content: center; justify-items: center; row-gap: 26px; }\n  .figure { display: block; }\n  .gridline { stroke: var(--rule); stroke-width: 1.5; }\n  .baseline { stroke: var(--ink); stroke-width: 2; }\n  .male { fill: var(--series-1); }\n  .female { fill: var(--series-2); }\n  .axis-label { fill: var(--muted); font-size: 20px; font-weight: 500; }\n  .cohort { fill: var(--ink); font-size: 25px; font-weight: 700; }\n  .value { fill: var(--ink); font-size: 24px; font-weight: 700; font-variant-numeric: tabular-nums; }\n  .legend { fill: var(--ink); font-size: 22px; font-weight: 500; }\n  .legend-male { fill: var(--series-1); }\n  .legend-female { fill: var(--series-2); }\n  .conclusion { color: var(--muted); font-size: 26px; font-weight: 500; line-height: 1.6; }\n  .foot { border-top: 1px solid var(--rule); padding-top: 22px; color: var(--muted); font-size: 16px; line-height: 1.6; }\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\">人口構成 — 働き手世代が過半を占める</h1>\n      <p class=\"window\" data-type=\"window\">架空の市の人口構成 / 各年齢層の人口が総人口に占める割合 / 男女別</p>\n    </div>\n\n    <div class=\"body\">\n      <svg class=\"figure\" width=\"1260\" height=\"540\" viewBox=\"0 0 1260 540\" aria-label=\"男女別人口構成。0から19歳は男性12%、女性11%。20から64歳は男性26%、女性27%。65歳以上は男性10%、女性14%。\">\n        <!-- 同じ母数の割合を中央の0から左右へ伸ばす。面積ではなく長さが割合を表す。 -->\n        <line class=\"gridline\" x1=\"230\" y1=\"100\" x2=\"230\" y2=\"440\"/>\n        <line class=\"gridline\" x1=\"330\" y1=\"100\" x2=\"330\" y2=\"440\"/>\n        <line class=\"gridline\" x1=\"430\" y1=\"100\" x2=\"430\" y2=\"440\"/>\n        <line class=\"gridline\" x1=\"830\" y1=\"100\" x2=\"830\" y2=\"440\"/>\n        <line class=\"gridline\" x1=\"930\" y1=\"100\" x2=\"930\" y2=\"440\"/>\n        <line class=\"gridline\" x1=\"1030\" y1=\"100\" x2=\"1030\" y2=\"440\"/>\n        <line class=\"baseline\" x1=\"530\" y1=\"100\" x2=\"530\" y2=\"440\"/>\n        <line class=\"baseline\" x1=\"730\" y1=\"100\" x2=\"730\" y2=\"440\"/>\n\n        <!-- 3 broad age cohorts keep the paired shape legible at slide scale. -->\n        <rect class=\"male\" x=\"410\" y=\"150\" width=\"120\" height=\"46\" rx=\"4\"/>\n        <rect class=\"female\" x=\"730\" y=\"150\" width=\"110\" height=\"46\" rx=\"4\"/>\n        <text class=\"value\" data-type=\"value\" x=\"396\" y=\"173\" text-anchor=\"end\" dominant-baseline=\"central\">12%</text>\n        <text class=\"value\" x=\"854\" y=\"173\" text-anchor=\"start\" dominant-baseline=\"central\">11%</text>\n\n        <rect class=\"male\" x=\"270\" y=\"270\" width=\"260\" height=\"46\" rx=\"4\"/>\n        <rect class=\"female\" x=\"730\" y=\"270\" width=\"270\" height=\"46\" rx=\"4\"/>\n        <text class=\"value\" x=\"256\" y=\"293\" text-anchor=\"end\" dominant-baseline=\"central\">26%</text>\n        <text class=\"value\" x=\"1014\" y=\"293\" text-anchor=\"start\" dominant-baseline=\"central\">27%</text>\n\n        <rect class=\"male\" x=\"430\" y=\"390\" width=\"100\" height=\"46\" rx=\"4\"/>\n        <rect class=\"female\" x=\"730\" y=\"390\" width=\"140\" height=\"46\" rx=\"4\"/>\n        <text class=\"value\" x=\"416\" y=\"413\" text-anchor=\"end\" dominant-baseline=\"central\">10%</text>\n        <text class=\"value\" x=\"884\" y=\"413\" text-anchor=\"start\" dominant-baseline=\"central\">14%</text>\n\n        <text class=\"cohort\" data-type=\"cohort\" x=\"630\" y=\"173\" text-anchor=\"middle\" dominant-baseline=\"central\">0–19 歳</text>\n        <text class=\"cohort\" x=\"630\" y=\"293\" text-anchor=\"middle\" dominant-baseline=\"central\">20–64 歳</text>\n        <text class=\"cohort\" x=\"630\" y=\"413\" text-anchor=\"middle\" dominant-baseline=\"central\">65 歳以上</text>\n\n        <text class=\"axis-label\" data-type=\"axisLabel\" x=\"230\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">30%</text>\n        <text class=\"axis-label\" x=\"330\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">20%</text>\n        <text class=\"axis-label\" x=\"430\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">10%</text>\n        <text class=\"axis-label\" x=\"530\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">0</text>\n        <text class=\"axis-label\" x=\"730\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">0</text>\n        <text class=\"axis-label\" x=\"830\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">10%</text>\n        <text class=\"axis-label\" x=\"930\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">20%</text>\n        <text class=\"axis-label\" x=\"1030\" y=\"68\" text-anchor=\"middle\" dominant-baseline=\"central\">30%</text>\n\n        <rect class=\"male\" x=\"468\" y=\"516\" width=\"22\" height=\"16\" rx=\"2\"/>\n        <text class=\"legend\" data-type=\"legend\" x=\"502\" y=\"524\" dominant-baseline=\"central\">男性</text>\n        <rect class=\"female\" x=\"656\" y=\"516\" width=\"22\" height=\"16\" rx=\"2\"/>\n        <text class=\"legend\" x=\"690\" y=\"524\" dominant-baseline=\"central\">女性</text>\n      </svg>\n      <p class=\"conclusion\" data-type=\"conclusion\">20〜64 歳が 53% を占める一方、若年層と 65 歳以上はほぼ同じ規模</p>\n    </div>\n\n    <div class=\"foot\" data-type=\"note\">架空データ。各値は総人口比で、左右の長さは同じ 0〜30% 尺度。年齢階級の幅が異なるため、階級内の人口密度は比較しない。</div>\n  </div>\n</div>\n",
      "url": "https://design-vault.pages.dev/designs/population-pyramid-age-structure/pattern.html",
      "fonts": [
        "https://design-vault.pages.dev/designs/population-pyramid-age-structure/font.css",
        "https://design-vault.pages.dev/designs/population-pyramid-age-structure/font-0.woff2",
        "https://design-vault.pages.dev/designs/population-pyramid-age-structure/font-1.woff2",
        "https://design-vault.pages.dev/designs/population-pyramid-age-structure/font-2.woff2"
      ]
    }
  },
  "urls": {
    "ja": "https://design-vault.pages.dev/designs/population-pyramid-age-structure",
    "en": "https://design-vault.pages.dev/en/designs/population-pyramid-age-structure"
  },
  "notesMarkdown": "左右に分かれた帯の形は、年齢が上がるにつれて男女の人口構成がどう変わるかを同じ目盛りで\n比べるためのもの。左右それぞれの値が総人口に対する割合なので、男女の差と年齢層の厚みを\n一目で見比べられる。\n\nこの例では、働き手世代が 53% と最も厚く、若年層 23% と 65 歳以上 24% はほぼ同じ規模である。\n母数と地域を特定しない架空の値を使い、実際の人口統計についての主張とは切り分けている。"
}