{
  "id": "specimen-sheet-derived-ramp",
  "schemaVersion": 2,
  "title": {
    "ja": "役割と階調 — 1 枚の見本帳",
    "en": "Roles and Ramp — A One-page Specimen"
  },
  "summary": {
    "ja": "6 つの役割を 6 列に並べ、階調は accent から比率で引く。見本に値ではなく名前と比を書く",
    "en": "Six roles across six columns, with the ramp derived from the accent — labelled by name and ratio, never by value"
  },
  "capturedAt": "2026-09-05",
  "categories": [
    "brand"
  ],
  "tags": [
    "typography"
  ],
  "useCases": [
    "design-system"
  ],
  "format": "a4-portrait",
  "density": "medium",
  "layout": {
    "kind": "grid",
    "canvas": {
      "w": 794,
      "h": 1123
    },
    "margin": {
      "top": 56,
      "right": 56,
      "bottom": 56,
      "left": 56
    },
    "columns": {
      "count": 6,
      "gap": 12
    }
  },
  "type": {
    "title": {
      "size": 34,
      "weight": 700,
      "tracking": "0.01em"
    },
    "lede": {
      "size": 14,
      "weight": 400,
      "leading": 1.8
    },
    "band-name": {
      "size": 11,
      "weight": 500,
      "tracking": "0.16em",
      "transform": "upper"
    },
    "role": {
      "size": 13,
      "weight": 500
    },
    "var": {
      "size": 11,
      "weight": 400
    },
    "measure": {
      "size": 11,
      "weight": 400,
      "numeric": "tabular"
    },
    "sample-a": {
      "size": 40,
      "weight": 700,
      "tracking": "0.01em"
    },
    "sample-b": {
      "size": 24,
      "weight": 500
    },
    "sample-c": {
      "size": 15,
      "weight": 400,
      "leading": 1.8
    },
    "foot": {
      "size": 12,
      "weight": 400,
      "leading": 1.7
    }
  },
  "colors": {
    "ground": "#FDFCFD",
    "surface": "#F3F1F4",
    "ink": "#1A1620",
    "muted": "#6C6572",
    "accent": "#8A2E62",
    "rule": "#E0DBE3",
    "series": []
  },
  "rules": [
    {
      "ja": "階調は accent から固定の比率で引き、段ごとに色を決めない。段を個別に決めた瞬間、配色を差し替えても階調だけが元の色相のまま残る",
      "en": "Derive the ramp from the accent at fixed ratios instead of picking each step: hand-picked steps keep the old hue when the palette is swapped"
    },
    {
      "ja": "見本に値を書かない。添えるのは役割の名前と比だけ。値は配色ごとに変わり、名前と比は変わらない",
      "en": "Never print the value beside a swatch — print the role name and the ratio. Values change with the palette; names and ratios do not"
    },
    {
      "ja": "見本の上に文字を置かない。見本と文字の組み合わせは役割の対ではないので、読めなくなっても検査は緑のまま通る",
      "en": "Put no text on a swatch: swatch-against-text is not one of the judged role pairs, so it can go unreadable while the checks stay green"
    },
    {
      "ja": "役割も階調も同じ 6 本の列に揃える。違う本数で割ると、6 つの役割と 6 段の階調が別の体系に見える",
      "en": "Align roles and ramp to the same six columns — different counts read as two unrelated systems"
    },
    {
      "ja": "大文字変換に小文字のラテンを通さない。同梱する書体は変換前の本文から切るので、画面にだけ現れる大文字は同梱されず、読み手の環境の書体に落ちる",
      "en": "Never send lowercase Latin through a case transform: the bundled subset is cut from the untransformed source, so letters that exist only on screen fall back to whatever the reader has"
    }
  ],
  "cover": "https://design-vault.pages.dev/_astro/cover.C1potTEO.png",
  "assets": [],
  "shortlist": false,
  "status": "published",
  "relations": {
    "similar": [
      "settings-panel-single-accent"
    ]
  },
  "license": "Original",
  "publishedAt": null,
  "reproduction": {
    "spec": {
      "format": "a4-portrait",
      "density": "medium",
      "layout": {
        "kind": "grid",
        "canvas": {
          "w": 794,
          "h": 1123
        },
        "margin": {
          "top": 56,
          "right": 56,
          "bottom": 56,
          "left": 56
        },
        "columns": {
          "count": 6,
          "gap": 12
        }
      },
      "type": {
        "title": {
          "size": 34,
          "weight": 700,
          "tracking": "0.01em"
        },
        "lede": {
          "size": 14,
          "weight": 400,
          "leading": 1.8
        },
        "band-name": {
          "size": 11,
          "weight": 500,
          "tracking": "0.16em",
          "transform": "upper"
        },
        "role": {
          "size": 13,
          "weight": 500
        },
        "var": {
          "size": 11,
          "weight": 400
        },
        "measure": {
          "size": 11,
          "weight": 400,
          "numeric": "tabular"
        },
        "sample-a": {
          "size": 40,
          "weight": 700,
          "tracking": "0.01em"
        },
        "sample-b": {
          "size": 24,
          "weight": 500
        },
        "sample-c": {
          "size": 15,
          "weight": 400,
          "leading": 1.8
        },
        "foot": {
          "size": 12,
          "weight": 400,
          "leading": 1.7
        }
      },
      "colors": {
        "ground": "#FDFCFD",
        "surface": "#F3F1F4",
        "ink": "#1A1620",
        "muted": "#6C6572",
        "accent": "#8A2E62",
        "rule": "#E0DBE3"
      },
      "rules": [
        "Derive the ramp from the accent at fixed ratios instead of picking each step: hand-picked steps keep the old hue when the palette is swapped",
        "Never print the value beside a swatch — print the role name and the ratio. Values change with the palette; names and ratios do not",
        "Put no text on a swatch: swatch-against-text is not one of the judged role pairs, so it can go unreadable while the checks stay green",
        "Align roles and ramp to the same six columns — different counts read as two unrelated systems",
        "Never send lowercase Latin through a case transform: the bundled subset is cut from the untransformed source, so letters that exist only on screen fall back to whatever the reader has"
      ]
    },
    "prompt": {
      "ja": "以下の仕様でA4 の資料を 1 枚作ってください。\n\n- 版面 794 × 1123\n- 余白 上 56 右 56 下 56 左 56\n- 6 カラム（等分）、間隔 12\n\n## 文字（版面 794px に対する px）\ntitle  34px / 700 / 字間 0.01em\nlede  14px / 400 / 行送り 1.8\nband-name  11px / 500 / 字間 0.16em / 大文字\nrole  13px / 500\nvar  11px / 400\nmeasure  11px / 400 / 等幅数字\nsample-a  40px / 700 / 字間 0.01em\nsample-b  24px / 500\nsample-c  15px / 400 / 行送り 1.8\nfoot  12px / 400 / 行送り 1.7\n\n## 配色\n地 #FDFCFD / 面 #F3F1F4 / 文字 #1A1620 / 補助 #6C6572 / 強調 #8A2E62 / 罫 #E0DBE3\n\n## 外すと崩れる点\n- 階調は accent から固定の比率で引き、段ごとに色を決めない。段を個別に決めた瞬間、配色を差し替えても階調だけが元の色相のまま残る\n- 見本に値を書かない。添えるのは役割の名前と比だけ。値は配色ごとに変わり、名前と比は変わらない\n- 見本の上に文字を置かない。見本と文字の組み合わせは役割の対ではないので、読めなくなっても検査は緑のまま通る\n- 役割も階調も同じ 6 本の列に揃える。違う本数で割ると、6 つの役割と 6 段の階調が別の体系に見える\n- 大文字変換に小文字のラテンを通さない。同梱する書体は変換前の本文から切るので、画面にだけ現れる大文字は同梱されず、読み手の環境の書体に落ちる\n\n内容は［ここに自分の内容を書く］に置き換えてください。寸法と配色はそのまま守ってください。\n正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/specimen-sheet-derived-ramp/pattern.html",
      "en": "Produce one A4 page to the following specification.\n\n- Canvas 794 × 1123\n- Margin top 56 right 56 bottom 56 left 56\n- 6 equal columns, gap 12\n\n## Type (px against a 794px canvas)\ntitle  34px / 700 / tracking 0.01em\nlede  14px / 400 / leading 1.8\nband-name  11px / 500 / tracking 0.16em / uppercase\nrole  13px / 500\nvar  11px / 400\nmeasure  11px / 400 / tabular numerals\nsample-a  40px / 700 / tracking 0.01em\nsample-b  24px / 500\nsample-c  15px / 400 / leading 1.8\nfoot  12px / 400 / leading 1.7\n\n## Colour\nGround #FDFCFD / Surface #F3F1F4 / Ink #1A1620 / Muted #6C6572 / Accent #8A2E62 / Rule #E0DBE3\n\n## Constraints — dropping these breaks it\n- Derive the ramp from the accent at fixed ratios instead of picking each step: hand-picked steps keep the old hue when the palette is swapped\n- Never print the value beside a swatch — print the role name and the ratio. Values change with the palette; names and ratios do not\n- Put no text on a swatch: swatch-against-text is not one of the judged role pairs, so it can go unreadable while the checks stay green\n- Align roles and ramp to the same six columns — different counts read as two unrelated systems\n- Never send lowercase Latin through a case transform: the bundled subset is cut from the untransformed source, so letters that exist only on screen fall back to whatever the reader has\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/specimen-sheet-derived-ramp/pattern.html."
    },
    "code": {
      "html": "<!doctype html>\n<meta charset=\"utf-8\">\n<title>役割と階調 — 1 枚の見本帳</title>\n<meta name=\"dv-font\" content=\"Murecho:400;500;700\">\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: #FDFCFD;\n    --surface: #F3F1F4;\n    --ink: #1A1620;\n    --muted: #6C6572;\n    --accent: #8A2E62;\n    --rule: #E0DBE3;\n\n    /* 階調は accent から固定の比率で派生させ、段ごとに色を決めない。\n       リテラルを持たないので配色プリセットの「役割外の色」には数えられず、\n       accent を差し替えると 6 段とも新しい accent から引き直される。\n       この版が主張していることを、この版自身が実演する仕掛け。 */\n    --step-1: color-mix(in srgb, var(--accent) 100%, var(--ground));\n    --step-2: color-mix(in srgb, var(--accent) 76%, var(--ground));\n    --step-3: color-mix(in srgb, var(--accent) 52%, var(--ground));\n    --step-4: color-mix(in srgb, var(--accent) 32%, var(--ground));\n    --step-5: color-mix(in srgb, var(--accent) 16%, var(--ground));\n    --step-6: color-mix(in srgb, var(--accent) 8%, var(--ground));\n  }\n  * { box-sizing: border-box; margin: 0; }\n  html, body { width: 794px; height: 1123px; }\n  body { font-family: \"Murecho\", \"IPAGothic\", sans-serif; }\n\n  .artboard {\n    width: 794px; height: 1123px;\n    background: var(--ground); color: var(--ink);\n    padding: 56px;                        /* → layout.margin */\n  }\n  /* [data-content] は版面そのもの。height:100% で余白と一対一に対応させる。 */\n  .sheet { height: 100%; display: flex; flex-direction: column; gap: 34px; }\n\n  .head { padding-bottom: 22px; border-bottom: 1px solid var(--ink); }\n  .lede { color: var(--muted); margin-top: 8px; max-width: 520px; }\n  /* 大文字変換に小文字のラテンを通さない。同梱する字は変換前の本文から切られるので、\n     画面にだけ現れる大文字は同梱されず、環境の書体に落ちる。 */\n  .band-name { color: var(--muted); padding-bottom: 12px; }\n\n  /* 6 列の格子。役割も階調もこの 6 本に揃える。 */\n  .roles, .ramp { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }\n\n  /* 見本の上に文字を置かない。地と面のコントラストは役割の対として\n     判定されるが、見本の上に乗せた文字は判定の対象外で、配色を替えたときに\n     読めなくなっても検査は緑のまま通る。 */\n  .chip { height: 92px; border: 1px solid var(--rule); }\n  .role { display: block; margin-top: 10px; }\n  /* 見本に値を書かない。値は配色ごとに変わり、名前と比は変わらない。 */\n  .var  { display: block; margin-top: 2px; color: var(--muted); }\n\n  .c-ground  { background: var(--ground); }\n  .c-surface { background: var(--surface); }\n  .c-ink     { background: var(--ink); }\n  .c-muted   { background: var(--muted); }\n  .c-accent  { background: var(--accent); }\n  .c-rule    { background: var(--rule); }\n\n  .step { height: 64px; border: 1px solid var(--rule); }\n  .s1 { background: var(--step-1); } .s2 { background: var(--step-2); }\n  .s3 { background: var(--step-3); } .s4 { background: var(--step-4); }\n  .s5 { background: var(--step-5); } .s6 { background: var(--step-6); }\n\n  .scale { display: flex; flex-direction: column; gap: 14px; }\n  .row { display: flex; align-items: baseline; gap: 20px; }\n  .measure { color: var(--muted); width: 96px; flex: none; font-variant-numeric: tabular-nums; }\n\n  .terms { display: flex; flex-direction: column; gap: 9px; padding-top: 18px; border-top: 1px solid var(--rule); }\n  .term { color: var(--muted); display: flex; gap: 14px; }\n  .term b { font-weight: 500; color: var(--ink); flex: none; width: 96px; }\n  .foot { margin-top: auto; color: var(--muted); padding-top: 18px; border-top: 1px solid var(--rule); }\n\n  .title     { font-size: 34px; font-weight: 700; letter-spacing: .01em; }\n  .lede      { font-size: 14px; font-weight: 400; line-height: 1.8; }\n  .band-name { font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }\n  .role      { font-size: 13px; font-weight: 500; }\n  .var,\n  .measure   { font-size: 11px; font-weight: 400; }\n  .sample-a  { font-size: 40px; font-weight: 700; letter-spacing: .01em; }\n  .sample-b  { font-size: 24px; font-weight: 500; }\n  .sample-c  { font-size: 15px; font-weight: 400; line-height: 1.8; }\n  .term,\n  .foot      { font-size: 12px; font-weight: 400; line-height: 1.7; }\n</style>\n\n<div class=\"artboard\" data-artboard>\n  <div class=\"sheet\" data-content>\n    <div class=\"head\">\n      <h1 class=\"title\" data-type=\"title\">役割と階調</h1>\n      <p class=\"lede\" data-type=\"lede\">色は 6 つの役割で持ち、階調は accent から比率で引く。値ではなく名前と比を書いてあるのは、配色を差し替えても、この紙に書いてあることが変わらないようにするため。</p>\n    </div>\n\n    <div>\n      <p class=\"band-name\" data-type=\"band-name\">役割</p>\n      <div class=\"roles\">\n        <div data-col=\"1\"><div class=\"chip c-ground\"></div><span class=\"role\" data-type=\"role\">地</span><span class=\"var\" data-type=\"var\">--ground</span></div>\n        <div data-col=\"2\"><div class=\"chip c-surface\"></div><span class=\"role\">面</span><span class=\"var\">--surface</span></div>\n        <div data-col=\"3\"><div class=\"chip c-ink\"></div><span class=\"role\">文字</span><span class=\"var\">--ink</span></div>\n        <div data-col=\"4\"><div class=\"chip c-muted\"></div><span class=\"role\">補助</span><span class=\"var\">--muted</span></div>\n        <div data-col=\"5\"><div class=\"chip c-accent\"></div><span class=\"role\">強調</span><span class=\"var\">--accent</span></div>\n        <div data-col=\"6\"><div class=\"chip c-rule\"></div><span class=\"role\">罫</span><span class=\"var\">--rule</span></div>\n      </div>\n    </div>\n\n    <div>\n      <p class=\"band-name\">階調 — 強調からの比率</p>\n      <div class=\"ramp\">\n        <div><div class=\"step s1\"></div><span class=\"var\">100%</span></div>\n        <div><div class=\"step s2\"></div><span class=\"var\">76%</span></div>\n        <div><div class=\"step s3\"></div><span class=\"var\">52%</span></div>\n        <div><div class=\"step s4\"></div><span class=\"var\">32%</span></div>\n        <div><div class=\"step s5\"></div><span class=\"var\">16%</span></div>\n        <div><div class=\"step s6\"></div><span class=\"var\">8%</span></div>\n      </div>\n    </div>\n\n    <div>\n      <p class=\"band-name\">文字</p>\n      <div class=\"scale\">\n        <div class=\"row\"><span class=\"measure\" data-type=\"measure\">40 / 700</span><span class=\"sample-a\" data-type=\"sample-a\">見出しはひとつ</span></div>\n        <div class=\"row\"><span class=\"measure\">24 / 500</span><span class=\"sample-b\" data-type=\"sample-b\">小見出しは短く切る</span></div>\n        <div class=\"row\"><span class=\"measure\">15 / 400</span><span class=\"sample-c\" data-type=\"sample-c\">本文は行送り 1.8。ひとつの段に 3 行より多く入れない。</span></div>\n      </div>\n    </div>\n\n    <div class=\"terms\">\n      <p class=\"term\"><b>値を書かない</b>見本に添えるのは役割の名前と比だけ。値は配色ごとに変わる。</p>\n      <p class=\"term\"><b>上に載せない</b>見本の上に文字を置かない。その組み合わせは検査の対象外。</p>\n      <p class=\"term\"><b>段を決めない</b>階調は accent から引く。段ごとに色を決めると引き直せない。</p>\n    </div>\n\n    <p class=\"foot\" data-type=\"foot\">この紙自体が 6 つの役割だけで刷られている。配色を差し替えると、見本も階調もその配色に変わる。</p>\n  </div>\n</div>\n",
      "url": "https://design-vault.pages.dev/designs/specimen-sheet-derived-ramp/pattern.html",
      "fonts": [
        "https://design-vault.pages.dev/designs/specimen-sheet-derived-ramp/font.css",
        "https://design-vault.pages.dev/designs/specimen-sheet-derived-ramp/font-0.woff2"
      ]
    }
  },
  "urls": {
    "ja": "https://design-vault.pages.dev/designs/specimen-sheet-derived-ramp",
    "en": "https://design-vault.pages.dev/en/designs/specimen-sheet-derived-ramp"
  },
  "notesMarkdown": "## この構成について / About this pattern\n\n出典を持たない自作パターン。**`pattern.html` が版そのもの**で、`cover.png` と\nfrontmatter の寸法はどちらもそこから機械的に出している。編集するのは `pattern.html` だけ。\n\nA self-authored pattern. `pattern.html` is the artboard itself; both `cover.png` and the\nmeasurements in the frontmatter are derived from it, so the three cannot drift apart.\nEdit the artboard, never the numbers.\n\n### Techniques\n\n- 階調は `:root` に `color-mix(in srgb, var(--accent) N%, var(--ground))` として置く。\n  リテラルを持たないので「役割の語彙にない色」には数えられず、配色を当てると\n  6 段とも新しい accent から引き直される。この版が言っていることを、この版自身が実演する\n- `type` は寸法と太さを記録するが、書体そのものは記録しない。だから見本は\n  書体の見本ではなく寸法の見本にしてある。2 書体を並べると、仕様に載らない差が絵にだけ出る\n- 「地」の見本は紙と同じ色なので、罫で囲まないと存在しない。囲みは装飾ではなく必要\n- 帯の見出しを `text-transform: uppercase` で組むなら、本文もその字で書く。`accent` と\n  書いて `ACCENT` と出す組み方では、同梱書体の切り出しが本文しか見ないので大文字が抜ける\n\n### Apply to\n\n- 配色と寸法の取り決めを 1 枚で渡すとき（開発者・外注・生成器のいずれにも同じ紙）\n- 既存のデザインを別の配色で運用できるか確かめるとき"
}