{
  "id": "espresso-dial-in-extraction-curves",
  "schemaVersion": 2,
  "title": {
    "ja": "挽き目を一段細かく — 36gを28秒で抽出",
    "en": "One Step Finer — Pull 36g in 28 Seconds"
  },
  "summary": {
    "ja": "豆量と目標量を固定し、挽き目を一段変えた前後のエスプレッソ抽出カーブを比較する",
    "en": "Compare espresso extraction curves before and after one grind adjustment, with dose and target yield held constant"
  },
  "capturedAt": "2026-09-25",
  "categories": [
    "presentation"
  ],
  "tags": [
    "data-viz",
    "minimal"
  ],
  "useCases": [
    "comparison"
  ],
  "format": "slide-16x9",
  "density": "medium",
  "layout": {
    "kind": "2-column",
    "canvas": {
      "w": 1920,
      "h": 1080
    },
    "margin": {
      "top": 72,
      "right": 120,
      "bottom": 76,
      "left": 120
    },
    "columns": {
      "count": 2,
      "gap": 40
    }
  },
  "type": {
    "kicker": {
      "size": 20,
      "weight": 700,
      "tracking": "0.14em"
    },
    "title": {
      "size": 48,
      "weight": 700,
      "tracking": "-0.02em"
    },
    "deck": {
      "size": 21,
      "weight": 400
    },
    "recipeLabel": {
      "size": 20,
      "weight": 400
    },
    "recipeValue": {
      "size": 25,
      "weight": 700
    },
    "shot": {
      "size": 20,
      "weight": 700,
      "tracking": "0.1em"
    },
    "shotTitle": {
      "size": 29,
      "weight": 700
    },
    "result": {
      "size": 20,
      "weight": 700
    },
    "targetLabel": {
      "size": 20,
      "weight": 500
    },
    "metricLabel": {
      "size": 20,
      "weight": 400
    },
    "metricValue": {
      "size": 24,
      "weight": 700
    },
    "takeaway": {
      "size": 25,
      "weight": 700
    },
    "note": {
      "size": 17,
      "weight": 400
    }
  },
  "colors": {
    "ground": "#F6F4EF",
    "surface": "#FFFFFF",
    "ink": "#252A2C",
    "muted": "#697476",
    "accent": "#A34F34",
    "rule": "#D8D5CD",
    "series": [
      "#B8B1A3",
      "#A34F34",
      "#406C67"
    ]
  },
  "rules": [
    {
      "ja": "比較する二枚で縦横のスケールを揃え、目標時間帯も同じ背景帯で示す",
      "en": "Keep both panels on identical scales and show the target time window with the same shaded band"
    },
    {
      "ja": "変える条件は挽き目だけ。豆量と抽出量が同じなので、調整前後の差を追いやすい",
      "en": "Change grind size only; hold dose and yield constant so the adjustment is easy to interpret"
    },
    {
      "ja": "曲線は説明用の架空サンプルと明記し、味や機材によって適正値が異なることを添える",
      "en": "Label the curves as illustrative and note that suitable values depend on taste and equipment"
    }
  ],
  "cover": "https://design-vault.pages.dev/_astro/cover.Brhe-2DE.png",
  "assets": [],
  "shortlist": false,
  "status": "published",
  "relations": {
    "similar": []
  },
  "license": "Original",
  "publishedAt": null,
  "reproduction": {
    "spec": {
      "format": "slide-16x9",
      "density": "medium",
      "layout": {
        "kind": "2-column",
        "canvas": {
          "w": 1920,
          "h": 1080
        },
        "margin": {
          "top": 72,
          "right": 120,
          "bottom": 76,
          "left": 120
        },
        "columns": {
          "count": 2,
          "gap": 40
        }
      },
      "type": {
        "kicker": {
          "size": 20,
          "weight": 700,
          "tracking": "0.14em"
        },
        "title": {
          "size": 48,
          "weight": 700,
          "tracking": "-0.02em"
        },
        "deck": {
          "size": 21,
          "weight": 400
        },
        "recipeLabel": {
          "size": 20,
          "weight": 400
        },
        "recipeValue": {
          "size": 25,
          "weight": 700
        },
        "shot": {
          "size": 20,
          "weight": 700,
          "tracking": "0.1em"
        },
        "shotTitle": {
          "size": 29,
          "weight": 700
        },
        "result": {
          "size": 20,
          "weight": 700
        },
        "targetLabel": {
          "size": 20,
          "weight": 500
        },
        "metricLabel": {
          "size": 20,
          "weight": 400
        },
        "metricValue": {
          "size": 24,
          "weight": 700
        },
        "takeaway": {
          "size": 25,
          "weight": 700
        },
        "note": {
          "size": 17,
          "weight": 400
        }
      },
      "colors": {
        "ground": "#F6F4EF",
        "surface": "#FFFFFF",
        "ink": "#252A2C",
        "muted": "#697476",
        "accent": "#A34F34",
        "rule": "#D8D5CD",
        "series": [
          "#B8B1A3",
          "#A34F34",
          "#406C67"
        ]
      },
      "rules": [
        "Keep both panels on identical scales and show the target time window with the same shaded band",
        "Change grind size only; hold dose and yield constant so the adjustment is easy to interpret",
        "Label the curves as illustrative and note that suitable values depend on taste and equipment"
      ]
    },
    "prompt": {
      "ja": "以下の仕様でスライドを 1 枚作ってください。\n\n- 版面 1920 × 1080\n- 余白 上 72 右 120 下 76 左 120\n- 2 カラム（等分）、間隔 40\n\n## 文字（版面 1920px に対する px）\nkicker  20px / 700 / 字間 0.14em\ntitle  48px / 700 / 字間 -0.02em\ndeck  21px / 400\nrecipeLabel  20px / 400\nrecipeValue  25px / 700\nshot  20px / 700 / 字間 0.1em\nshotTitle  29px / 700\nresult  20px / 700\ntargetLabel  20px / 500\nmetricLabel  20px / 400\nmetricValue  24px / 700\ntakeaway  25px / 700\nnote  17px / 400\n\n## 配色\n地 #F6F4EF / 面 #FFFFFF / 文字 #252A2C / 補助 #697476 / 強調 #A34F34 / 罫 #D8D5CD / #B8B1A3 / #A34F34 / #406C67\n\n## 外すと崩れる点\n- 比較する二枚で縦横のスケールを揃え、目標時間帯も同じ背景帯で示す\n- 変える条件は挽き目だけ。豆量と抽出量が同じなので、調整前後の差を追いやすい\n- 曲線は説明用の架空サンプルと明記し、味や機材によって適正値が異なることを添える\n\n内容は［ここに自分の内容を書く］に置き換えてください。寸法と配色はそのまま守ってください。\n正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/espresso-dial-in-extraction-curves/pattern.html",
      "en": "Produce one slide to the following specification.\n\n- Canvas 1920 × 1080\n- Margin top 72 right 120 bottom 76 left 120\n- 2 equal columns, gap 40\n\n## Type (px against a 1920px canvas)\nkicker  20px / 700 / tracking 0.14em\ntitle  48px / 700 / tracking -0.02em\ndeck  21px / 400\nrecipeLabel  20px / 400\nrecipeValue  25px / 700\nshot  20px / 700 / tracking 0.1em\nshotTitle  29px / 700\nresult  20px / 700\ntargetLabel  20px / 500\nmetricLabel  20px / 400\nmetricValue  24px / 700\ntakeaway  25px / 700\nnote  17px / 400\n\n## Colour\nGround #F6F4EF / Surface #FFFFFF / Ink #252A2C / Muted #697476 / Accent #A34F34 / Rule #D8D5CD / #B8B1A3 / #A34F34 / #406C67\n\n## Constraints — dropping these breaks it\n- Keep both panels on identical scales and show the target time window with the same shaded band\n- Change grind size only; hold dose and yield constant so the adjustment is easy to interpret\n- Label the curves as illustrative and note that suitable values depend on taste and equipment\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/espresso-dial-in-extraction-curves/pattern.html."
    },
    "code": {
      "html": "<!doctype html>\n<meta charset=\"utf-8\">\n<title>挽き目を一段細かく — 36gを28秒で抽出</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{--ground:#F6F4EF;--surface:#FFFFFF;--ink:#252A2C;--muted:#697476;--accent:#A34F34;--rule:#D8D5CD;--series-1:#B8B1A3;--series-2:#A34F34;--series-3:#406C67;--target-fill:#EAF1EF;--before-fill:#F2F0EB}\n*{box-sizing:border-box;margin:0}html,body{width:1920px;height:1080px;background:var(--ground);font-family:\"Zen Kaku Gothic New\",\"IPAGothic\",sans-serif;color:var(--ink)}\nsvg{display:block;width:1920px;height:1080px;background:var(--ground);font-family:\"Zen Kaku Gothic New\",\"IPAGothic\",sans-serif}\ntext{fill:var(--ink);font-family:\"Zen Kaku Gothic New\",\"IPAGothic\",sans-serif}.muted{fill:var(--muted)}.accent{fill:var(--accent)}.green{fill:var(--series-3)}\n.kicker{font-size:20px;font-weight:700;letter-spacing:2.8px}.title{font-size:48px;font-weight:700;letter-spacing:-1px}.deck{font-size:21px}.recipe-label{font-size:20px}.recipe-value{font-size:25px;font-weight:700}.shot{font-size:20px;font-weight:700;letter-spacing:2px}.shot-title{font-size:29px;font-weight:700}.target-label{font-size:20px;font-weight:500}.badge{font-size:20px;font-weight:700}.tick{font-size:20px}.axis-label{font-size:20px;font-weight:500}.end{font-size:20px;font-weight:700}.metric-label{font-size:20px}.metric-value{font-size:24px;font-weight:700}.takeaway{font-size:25px;font-weight:700}.note{font-size:17px}\n.panel{fill:var(--surface);stroke:var(--rule);stroke-width:1.5}.axis{stroke:var(--rule);stroke-width:2}.grid{stroke:var(--rule);stroke-width:1.5}.target{fill:var(--target-fill)}.targetline{stroke:var(--series-3);stroke-width:2;stroke-dasharray:8 8}.curveA{fill:none;stroke:var(--series-1);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.curveB{fill:none;stroke:var(--series-3);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.guide{stroke:var(--rule);stroke-width:2;stroke-dasharray:5 7}\n</style>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1920\" height=\"1080\" viewBox=\"0 0 1920 1080\" data-artboard=\"true\">\n<rect width=\"1920\" height=\"1080\" fill=\"var(--ground)\"/>\n<g data-content=\"true\">\n<text class=\"kicker accent\" x=\"120\" y=\"108\" data-type=\"kicker\">ESPRESSO / DIAL-IN NOTE 04</text>\n<text class=\"title\" x=\"120\" y=\"166\" data-type=\"title\">挽き目を一段細かく。36gを28秒で止める</text>\n<text class=\"deck muted\" x=\"120\" y=\"207\" data-type=\"deck\">同じ豆量・同じ目標量で、抽出の流れだけを比べる</text>\n<rect x=\"1450\" y=\"72\" width=\"350\" height=\"112\" rx=\"12\" fill=\"var(--surface)\" stroke=\"var(--rule)\" stroke-width=\"1.5\"/>\n<text class=\"recipe-label muted\" x=\"1476\" y=\"112\" data-type=\"recipeLabel\">固定レシピ</text><text class=\"recipe-value\" x=\"1476\" y=\"153\" data-type=\"recipeValue\">18g in → 36g out</text>\n<line x1=\"120\" y1=\"230\" x2=\"1800\" y2=\"230\" stroke=\"var(--rule)\" stroke-width=\"2\"/>\n<!-- shot A panel -->\n<g data-col=\"1\">\n<rect class=\"panel\" x=\"120\" y=\"258\" width=\"820\" height=\"608\" rx=\"16\"/><path d=\"M136 260 H924\" stroke=\"var(--series-1)\" stroke-width=\"5\"/>\n<text class=\"shot muted\" x=\"156\" y=\"302\" data-type=\"shot\">SHOT A · 現状</text><text class=\"shot-title\" x=\"156\" y=\"342\" data-type=\"shotTitle\">流れが速すぎる</text><rect x=\"690\" y=\"282\" width=\"218\" height=\"48\" rx=\"8\" fill=\"var(--before-fill)\"/><text class=\"badge muted\" x=\"710\" y=\"314\" data-type=\"result\">22秒 · 粗い</text>\n<!-- graph plot x=220..860, y=430..700 -->\n<text class=\"target-label green\" x=\"714\" y=\"405\">目標帯 · 25–30秒</text><rect class=\"target\" x=\"753\" y=\"430\" width=\"107\" height=\"270\" rx=\"4\" opacity=\".8\"/><line class=\"targetline\" x1=\"753\" y1=\"430\" x2=\"753\" y2=\"700\"/><line class=\"targetline\" x1=\"860\" y1=\"430\" x2=\"860\" y2=\"700\"/>\n<line class=\"grid\" x1=\"220\" y1=\"700\" x2=\"860\" y2=\"700\"/><line class=\"grid\" x1=\"220\" y1=\"632.5\" x2=\"860\" y2=\"632.5\"/><line class=\"grid\" x1=\"220\" y1=\"565\" x2=\"860\" y2=\"565\"/><line class=\"grid\" x1=\"220\" y1=\"497.5\" x2=\"860\" y2=\"497.5\"/><line class=\"grid\" x1=\"220\" y1=\"430\" x2=\"860\" y2=\"430\"/>\n<line class=\"axis\" x1=\"220\" y1=\"700\" x2=\"860\" y2=\"700\"/><line class=\"axis\" x1=\"220\" y1=\"700\" x2=\"220\" y2=\"430\"/>\n<text class=\"tick muted\" x=\"184\" y=\"707\">0</text><text class=\"tick muted\" x=\"175\" y=\"640\">10</text><text class=\"tick muted\" x=\"175\" y=\"572\">20</text><text class=\"tick muted\" x=\"175\" y=\"505\">30</text><text class=\"tick muted\" x=\"175\" y=\"437\">40</text>\n<text class=\"tick muted\" x=\"216\" y=\"732\">0</text><text class=\"tick muted\" x=\"319\" y=\"732\">5</text><text class=\"tick muted\" x=\"426\" y=\"732\">10</text><text class=\"tick muted\" x=\"533\" y=\"732\">15</text><text class=\"tick muted\" x=\"640\" y=\"732\">20</text><text class=\"tick muted\" x=\"746\" y=\"732\">25</text><text class=\"tick muted\" x=\"852\" y=\"732\">30</text>\n<text class=\"axis-label muted\" x=\"675\" y=\"762\">経過時間（秒）</text><text class=\"axis-label muted\" transform=\"translate(154 622) rotate(-90)\">抽出量（g）</text>\n<polyline class=\"curveA\" points=\"220,700 262,686 305,659 348,632 391,592 433,565 476,531 519,504 562,484 604,470 647,464 689,457\"/>\n<line class=\"guide\" x1=\"689\" y1=\"457\" x2=\"689\" y2=\"700\"/><circle cx=\"689\" cy=\"457\" r=\"8\" fill=\"var(--series-1)\"/><text class=\"end\" x=\"702\" y=\"484\">36g</text><text class=\"end\" x=\"661\" y=\"681\">22秒</text>\n<line x1=\"156\" y1=\"786\" x2=\"904\" y2=\"786\" stroke=\"var(--rule)\" stroke-width=\"1.5\"/>\n<text class=\"metric-label muted\" x=\"156\" y=\"821\" data-type=\"metricLabel\">抽出時間</text><text class=\"metric-value\" x=\"156\" y=\"851\" data-type=\"metricValue\">22秒</text>\n<text class=\"metric-label muted\" x=\"410\" y=\"821\">流速</text><text class=\"metric-value\" x=\"410\" y=\"851\">速い</text>\n<text class=\"metric-label muted\" x=\"658\" y=\"821\">調整</text><text class=\"metric-value\" x=\"658\" y=\"851\">一段細かく</text>\n</g>\n<!-- shot B panel -->\n<g data-col=\"2\">\n<rect class=\"panel\" x=\"980\" y=\"258\" width=\"820\" height=\"608\" rx=\"16\"/><path d=\"M996 260 H1784\" stroke=\"var(--series-3)\" stroke-width=\"5\"/>\n<text class=\"shot muted\" x=\"1016\" y=\"302\" data-type=\"shot\">SHOT B · 調整後</text><text class=\"shot-title\" x=\"1016\" y=\"342\" data-type=\"shotTitle\">目標帯に収まる</text><rect x=\"1550\" y=\"282\" width=\"218\" height=\"48\" rx=\"8\" fill=\"var(--target-fill)\"/><text class=\"badge green\" x=\"1570\" y=\"314\" data-type=\"result\">28秒 · 一段細かく</text>\n<text class=\"target-label green\" x=\"1574\" y=\"405\">目標帯 · 25–30秒</text><rect class=\"target\" x=\"1613\" y=\"430\" width=\"107\" height=\"270\" rx=\"4\" opacity=\".8\"/><line class=\"targetline\" x1=\"1613\" y1=\"430\" x2=\"1613\" y2=\"700\"/><line class=\"targetline\" x1=\"1720\" y1=\"430\" x2=\"1720\" y2=\"700\"/>\n<line class=\"grid\" x1=\"1080\" y1=\"700\" x2=\"1720\" y2=\"700\"/><line class=\"grid\" x1=\"1080\" y1=\"632.5\" x2=\"1720\" y2=\"632.5\"/><line class=\"grid\" x1=\"1080\" y1=\"565\" x2=\"1720\" y2=\"565\"/><line class=\"grid\" x1=\"1080\" y1=\"497.5\" x2=\"1720\" y2=\"497.5\"/><line class=\"grid\" x1=\"1080\" y1=\"430\" x2=\"1720\" y2=\"430\"/>\n<line class=\"axis\" x1=\"1080\" y1=\"700\" x2=\"1720\" y2=\"700\"/><line class=\"axis\" x1=\"1080\" y1=\"700\" x2=\"1080\" y2=\"430\"/>\n<text class=\"tick muted\" x=\"1044\" y=\"707\">0</text><text class=\"tick muted\" x=\"1035\" y=\"640\">10</text><text class=\"tick muted\" x=\"1035\" y=\"572\">20</text><text class=\"tick muted\" x=\"1035\" y=\"505\">30</text><text class=\"tick muted\" x=\"1035\" y=\"437\">40</text>\n<text class=\"tick muted\" x=\"1076\" y=\"732\">0</text><text class=\"tick muted\" x=\"1179\" y=\"732\">5</text><text class=\"tick muted\" x=\"1286\" y=\"732\">10</text><text class=\"tick muted\" x=\"1393\" y=\"732\">15</text><text class=\"tick muted\" x=\"1500\" y=\"732\">20</text><text class=\"tick muted\" x=\"1606\" y=\"732\">25</text><text class=\"tick muted\" x=\"1712\" y=\"732\">30</text>\n<text class=\"axis-label muted\" x=\"1535\" y=\"762\">経過時間（秒）</text><text class=\"axis-label muted\" transform=\"translate(1014 622) rotate(-90)\">抽出量（g）</text>\n<polyline class=\"curveB\" points=\"1080,700 1123,693 1165,679 1208,659 1251,632 1293,606 1336,565 1379,531 1421,504 1464,484 1507,470 1549,464 1592,461 1635,459 1678,457\"/>\n<line class=\"guide\" x1=\"1678\" y1=\"457\" x2=\"1678\" y2=\"700\"/><circle cx=\"1678\" cy=\"457\" r=\"8\" fill=\"var(--series-3)\"/><text class=\"end\" x=\"1620\" y=\"484\">36g</text><text class=\"end\" x=\"1641\" y=\"681\">28秒</text>\n<line x1=\"1016\" y1=\"786\" x2=\"1764\" y2=\"786\" stroke=\"var(--rule)\" stroke-width=\"1.5\"/>\n<text class=\"metric-label muted\" x=\"1016\" y=\"821\">抽出時間</text><text class=\"metric-value\" x=\"1016\" y=\"851\">28秒</text>\n<text class=\"metric-label muted\" x=\"1270\" y=\"821\">流速</text><text class=\"metric-value\" x=\"1270\" y=\"851\">安定</text>\n<text class=\"metric-label muted\" x=\"1518\" y=\"821\">次の確認</text><text class=\"metric-value\" x=\"1518\" y=\"851\">味で微調整</text>\n</g>\n<line x1=\"120\" y1=\"906\" x2=\"1800\" y2=\"906\" stroke=\"var(--rule)\" stroke-width=\"2\"/>\n<text class=\"takeaway\" x=\"120\" y=\"960\" data-type=\"takeaway\">変えたのは挽き目だけ。次は味を確かめる。</text>\n<text class=\"note muted\" x=\"120\" y=\"1002\" data-type=\"note\">抽出カーブは説明用の架空サンプル。豆・機材・環境で最適値は変わります。</text>\n</g></svg>\n",
      "url": "https://design-vault.pages.dev/designs/espresso-dial-in-extraction-curves/pattern.html",
      "fonts": [
        "https://design-vault.pages.dev/designs/espresso-dial-in-extraction-curves/font.css",
        "https://design-vault.pages.dev/designs/espresso-dial-in-extraction-curves/font-0.woff2",
        "https://design-vault.pages.dev/designs/espresso-dial-in-extraction-curves/font-1.woff2",
        "https://design-vault.pages.dev/designs/espresso-dial-in-extraction-curves/font-2.woff2"
      ]
    }
  },
  "urls": {
    "ja": "https://design-vault.pages.dev/designs/espresso-dial-in-extraction-curves",
    "en": "https://design-vault.pages.dev/en/designs/espresso-dial-in-extraction-curves"
  },
  "notesMarkdown": "豆量と抽出量を固定して挽き目だけを一段調整すると、流量の変化を読みやすく示せる。\nこの図の曲線は架空の説明用サンプルであり、28 秒は普遍的な正解値ではない。"
}