{
  "id": "design:traction-curve-milestones",
  "schemaVersion": 2,
  "title": {
    "ja": "伸び — 売上の曲線に、節目を 3 つだけ書き込む",
    "en": "Traction — A Revenue Curve With Only Three Milestones Written On It"
  },
  "summary": {
    "ja": "月次売上の推移を面つきの折れ線で描き、伸びが変わった節目を 3 つだけ縦線と注記で示す。右上に今の値を大きく置く",
    "en": "Monthly revenue as a filled line, with just three milestones marked where the growth changed; today's value sits large at the top right"
  },
  "capturedAt": "2026-10-19",
  "categories": [
    "presentation"
  ],
  "tags": [
    "data-viz",
    "bold"
  ],
  "useCases": [
    "kpi"
  ],
  "format": "slide-16x9",
  "density": "medium",
  "layout": {
    "kind": "axis",
    "canvas": {
      "w": 1920,
      "h": 1080
    },
    "margin": {
      "top": 112,
      "right": 160,
      "bottom": 96,
      "left": 160
    }
  },
  "type": {
    "kicker": {
      "size": 22,
      "weight": 700,
      "tracking": "0.2em"
    },
    "title": {
      "size": 56,
      "weight": 900,
      "leading": 1.3
    },
    "nowValue": {
      "size": 88,
      "weight": 900,
      "leading": 1,
      "numeric": "tabular"
    },
    "nowLabel": {
      "size": 22,
      "weight": 400
    },
    "source": {
      "size": 16,
      "weight": 400
    }
  },
  "colors": {
    "ground": "#101318",
    "surface": "#1A1F27",
    "ink": "#F2F4F7",
    "muted": "#8B93A1",
    "accent": "#F5B83D",
    "rule": "#2A303A",
    "series": []
  },
  "rules": [
    {
      "ja": "節目は 3 つ。伸びの傾きが変わった所だけを選ぶ",
      "en": "Three milestones, placed only where the slope changed"
    },
    {
      "ja": "見出しで倍率を言い切り、右上に今の値を置く。グラフを読む前に結論が届く",
      "en": "The headline states the multiple and today's value sits top right — the conclusion lands before the chart is read"
    },
    {
      "ja": "注記は縦線の左に寄せ、曲線を隠さない",
      "en": "Notes hang to the left of their stems so they never cover the curve"
    },
    {
      "ja": "縦軸は 0 から始める。途中から始めると、伸びが誇張される",
      "en": "Start the axis at zero — a cropped axis exaggerates the growth"
    }
  ],
  "cover": "https://design-vault.pages.dev/_astro/cover.BvETNYUr.png",
  "assets": [],
  "shortlist": false,
  "status": "published",
  "relations": {
    "similar": [
      "step-chart-inventory-level-events",
      "stacked-area-share-shift",
      "kpi-hero-single-figure"
    ]
  },
  "license": "Original",
  "publishedAt": null,
  "reproduction": {
    "spec": {
      "format": "slide-16x9",
      "density": "medium",
      "layout": {
        "kind": "axis",
        "canvas": {
          "w": 1920,
          "h": 1080
        },
        "margin": {
          "top": 112,
          "right": 160,
          "bottom": 96,
          "left": 160
        }
      },
      "type": {
        "kicker": {
          "size": 22,
          "weight": 700,
          "tracking": "0.2em"
        },
        "title": {
          "size": 56,
          "weight": 900,
          "leading": 1.3
        },
        "nowValue": {
          "size": 88,
          "weight": 900,
          "leading": 1,
          "numeric": "tabular"
        },
        "nowLabel": {
          "size": 22,
          "weight": 400
        },
        "source": {
          "size": 16,
          "weight": 400
        }
      },
      "colors": {
        "ground": "#101318",
        "surface": "#1A1F27",
        "ink": "#F2F4F7",
        "muted": "#8B93A1",
        "accent": "#F5B83D",
        "rule": "#2A303A"
      },
      "rules": [
        "Three milestones, placed only where the slope changed",
        "The headline states the multiple and today's value sits top right — the conclusion lands before the chart is read",
        "Notes hang to the left of their stems so they never cover the curve",
        "Start the axis at zero — a cropped axis exaggerates the growth"
      ]
    },
    "prompt": {
      "ja": "以下の仕様でスライドを 1 枚作ってください。\n\n- 版面 1920 × 1080\n- 余白 上 112 右 160 下 96 左 160\n\n## 文字（版面 1920px に対する px）\nkicker  22px / 700 / 字間 0.2em\ntitle  56px / 900 / 行送り 1.3\nnowValue  88px / 900 / 行送り 1 / 等幅数字\nnowLabel  22px / 400\nsource  16px / 400\n\n## 配色\n地 #101318 / 面 #1A1F27 / 文字 #F2F4F7 / 補助 #8B93A1 / 強調 #F5B83D / 罫 #2A303A\n\n## 外すと崩れる点\n- 節目は 3 つ。伸びの傾きが変わった所だけを選ぶ\n- 見出しで倍率を言い切り、右上に今の値を置く。グラフを読む前に結論が届く\n- 注記は縦線の左に寄せ、曲線を隠さない\n- 縦軸は 0 から始める。途中から始めると、伸びが誇張される\n\n内容は［ここに自分の内容を書く］に置き換えてください。寸法と配色はそのまま守ってください。\n正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/traction-curve-milestones/pattern.html",
      "en": "Produce one slide to the following specification.\n\n- Canvas 1920 × 1080\n- Margin top 112 right 160 bottom 96 left 160\n\n## Type (px against a 1920px canvas)\nkicker  22px / 700 / tracking 0.2em\ntitle  56px / 900 / leading 1.3\nnowValue  88px / 900 / leading 1 / tabular numerals\nnowLabel  22px / 400\nsource  16px / 400\n\n## Colour\nGround #101318 / Surface #1A1F27 / Ink #F2F4F7 / Muted #8B93A1 / Accent #F5B83D / Rule #2A303A\n\n## Constraints — dropping these breaks it\n- Three milestones, placed only where the slope changed\n- The headline states the multiple and today's value sits top right — the conclusion lands before the chart is read\n- Notes hang to the left of their stems so they never cover the curve\n- Start the axis at zero — a cropped axis exaggerates the growth\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/traction-curve-milestones/pattern.html."
    },
    "code": {
      "html": "<!doctype html>\n<meta charset=\"utf-8\">\n<title>伸び — 売上の曲線に、節目を 3 つだけ書き込む</title>\n<meta name=\"dv-font\" content=\"Zen Kaku Gothic New:400;700;900\">\n<link rel=\"stylesheet\" href=\"./font.css\">\n<style>\n  /* この版そのもの。index.md の layout / type / colors は、この HTML を\n     scripts/render-pattern.mjs で実測した結果であって、別に書いた説明ではない。 */\n  :root {\n    --ground: #101318;\n    --surface: #1A1F27;\n    --ink: #F2F4F7;\n    --muted: #8B93A1;\n    --accent: #F5B83D;\n    --rule: #2A303A;\n    --area: color-mix(in srgb, var(--accent) 16%, var(--ground));\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; height: 1080px;\n    background: var(--ground); color: var(--ink);\n    padding: 112px 160px 96px;            /* → layout.margin */\n  }\n  .content { height: 100%; display: grid; grid-template-rows: auto 1fr auto; row-gap: 32px; }\n\n  .head { display: flex; justify-content: space-between; align-items: end; }\n  .kicker { font-size: 22px; font-weight: 700; letter-spacing: .2em; color: var(--accent); }\n  .title { font-size: 56px; font-weight: 900; line-height: 1.3; margin-top: 16px; }\n  .now { text-align: right; }\n  .nowValue { font-size: 88px; font-weight: 900; line-height: 1; color: var(--accent); font-variant-numeric: tabular-nums; }\n  .nowValue small { font-size: 34px; margin-left: 6px; }\n  .nowLabel { font-size: 22px; font-weight: 400; color: var(--muted); margin-top: 10px; }\n\n  svg text { font-family: \"Zen Kaku Gothic New\", \"IPAGothic\", sans-serif; }\n  .axis { font-size: 20px; fill: var(--muted); font-variant-numeric: tabular-nums; }\n  .mTitle { font-size: 24px; font-weight: 700; fill: var(--ink); }\n  .mNote { font-size: 20px; fill: var(--muted); }\n\n  .source { font-size: 16px; font-weight: 400; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 20px; }\n</style>\n\n<div class=\"artboard\" data-artboard>\n  <div class=\"content\" data-content>\n    <div class=\"head\">\n      <div>\n        <p class=\"kicker\" data-type=\"kicker\">実績</p>\n        <h1 class=\"title\" data-type=\"title\">月次の売上は 18 か月で 14 倍</h1>\n      </div>\n      <div class=\"now\">\n        <p class=\"nowValue\" data-type=\"nowValue\">2,380<small>万円</small></p>\n        <p class=\"nowLabel\" data-type=\"nowLabel\">2026 年 10 月の月次売上</p>\n      </div>\n    </div>\n\n    <svg width=\"1600\" height=\"560\" viewBox=\"0 0 1600 560\" aria-label=\"月次売上の推移\">\n      <g stroke=\"var(--rule)\" stroke-width=\"1\">\n        <line x1=\"80\" y1=\"40\" x2=\"1600\" y2=\"40\"/><line x1=\"80\" y1=\"200\" x2=\"1600\" y2=\"200\"/><line x1=\"80\" y1=\"360\" x2=\"1600\" y2=\"360\"/>\n      </g>\n      <line x1=\"80\" y1=\"520\" x2=\"1600\" y2=\"520\" stroke=\"var(--muted)\" stroke-width=\"2\"/>\n      <g class=\"axis\" text-anchor=\"end\">\n        <text x=\"64\" y=\"47\">3,000</text><text x=\"64\" y=\"207\">2,000</text><text x=\"64\" y=\"367\">1,000</text><text x=\"64\" y=\"527\">0</text>\n      </g>\n      <g class=\"axis\" text-anchor=\"middle\">\n        <text x=\"120\" y=\"552\">25.4</text><text x=\"440\" y=\"552\">25.8</text><text x=\"760\" y=\"552\">25.12</text><text x=\"1080\" y=\"552\">26.4</text><text x=\"1400\" y=\"552\">26.8</text>\n      </g>\n      <!-- 1 か月 80px、売上 1,000 万円 = 160px -->\n      <path d=\"M120 493 L200 489 L280 484 L360 477 L440 468 L520 457 L600 441 L680 425 L760 404 L840 390 L920 369 L1000 343 L1080 316 L1160 290 L1240 260 L1320 230 L1400 196 L1480 166 L1560 139 L1560 520 L120 520 Z\" fill=\"var(--area)\"/>\n      <path d=\"M120 493 L200 489 L280 484 L360 477 L440 468 L520 457 L600 441 L680 425 L760 404 L840 390 L920 369 L1000 343 L1080 316 L1160 290 L1240 260 L1320 230 L1400 196 L1480 166 L1560 139\" fill=\"none\" stroke=\"var(--accent)\" stroke-width=\"5\" stroke-linejoin=\"round\"/>\n      <circle cx=\"1560\" cy=\"139\" r=\"10\" fill=\"var(--accent)\"/>\n      <!-- 節目：線の上に点と短い縦線、注記は左に寄せて曲線を隠さない -->\n      <g stroke=\"var(--ink)\" stroke-width=\"2\">\n        <line x1=\"440\" y1=\"468\" x2=\"440\" y2=\"330\"/><line x1=\"840\" y1=\"390\" x2=\"840\" y2=\"230\"/><line x1=\"1160\" y1=\"290\" x2=\"1160\" y2=\"110\"/>\n      </g>\n      <g fill=\"var(--ink)\"><circle cx=\"440\" cy=\"468\" r=\"7\"/><circle cx=\"840\" cy=\"390\" r=\"7\"/><circle cx=\"1160\" cy=\"290\" r=\"7\"/></g>\n      <text class=\"mTitle\" x=\"452\" y=\"318\" text-anchor=\"end\">銀行連携を開始</text>\n      <text class=\"mNote\" x=\"452\" y=\"292\" text-anchor=\"end\">25.8</text>\n      <text class=\"mTitle\" x=\"852\" y=\"218\" text-anchor=\"end\">会計事務所の紹介制度</text>\n      <text class=\"mNote\" x=\"852\" y=\"192\" text-anchor=\"end\">26.1</text>\n      <text class=\"mTitle\" x=\"1172\" y=\"98\" text-anchor=\"end\">スマホ承認を公開</text>\n      <text class=\"mNote\" x=\"1172\" y=\"72\" text-anchor=\"end\">26.5</text>\n    </svg>\n\n    <p class=\"source\" data-type=\"source\">月次売上（税抜）。数値は説明用の架空のもの</p>\n  </div>\n</div>\n",
      "url": "https://design-vault.pages.dev/designs/traction-curve-milestones/pattern.html",
      "fonts": [
        "https://design-vault.pages.dev/designs/traction-curve-milestones/font.css",
        "https://design-vault.pages.dev/designs/traction-curve-milestones/font-0.woff2",
        "https://design-vault.pages.dev/designs/traction-curve-milestones/font-1.woff2",
        "https://design-vault.pages.dev/designs/traction-curve-milestones/font-2.woff2"
      ]
    }
  },
  "urls": {
    "ja": "https://design-vault.pages.dev/designs/traction-curve-milestones",
    "en": "https://design-vault.pages.dev/en/designs/traction-curve-milestones",
    "json": "https://design-vault.pages.dev/ai/assets/traction-curve-milestones.json",
    "designJson": "https://design-vault.pages.dev/ai/designs/traction-curve-milestones.json"
  },
  "notesMarkdown": "## この構成について / About this pattern\n\n出典を持たない自作パターン。**`pattern.html` が版そのもの**で、`cover.png` と frontmatter の\n`layout` / `type` / `colors` はどちらもそこから機械的に測った結果。一式「事業計画・資金調達」の\n1 枚で、架空の会社「ミナト経理」のシリーズ A のピッチとして描いてある。会社・人物・数値はすべて架空。\n\nA self-authored pattern. `pattern.html` is the artboard itself; both `cover.png` and the\nmeasurements in the frontmatter are derived from it. One of the ten pitch slides, drawn as the\nSeries A deck of a fictional company; every company, person and figure on it is invented.\n\n### Techniques\n\n- 曲線は 5px の強調色、面は強調色を地に 16% 混ぜた色\n- 節目は墨の点と縦線、最新の点だけ強調色の大きな点\n- 横軸は年.月の短い書式で 4 か月おき\n\n### Apply to\n\n- ピッチの実績（トラクション）\n- 事業報告で、施策と成果の関係を示す 1 枚",
  "slug": "traction-curve-milestones",
  "kind": "artboard",
  "catalogVersion": 1,
  "designSchemaVersion": 2,
  "capabilities": [
    "view-artboard",
    "read-spec",
    "copy-prompt",
    "get-code"
  ],
  "reusePolicy": "construction-reuse"
}