版の配色
1920 × 1080 作品として見る 版そのものを描画 — どの倍率でも字は潰れません 骨格・余白・カラムを重ねた状態
1920 × 1080 作品として見る 版そのものを描画 — どの倍率でも字は潰れません 骨格・余白・カラムを重ねた状態
コピーして貼るか、ファイルに保存して渡す。ネットにつながらない環境には「全部入り」を 1 つ渡せば足りる。
このパネルの中身を、URL の先にあるファイルの中身まで含めて 1 つにまとめた Markdown — 大きいのでファイルで渡す(コピーは 32KB まで)
以下の仕様でスライドを 1 枚作ってください。 - 版面 1920 × 1080 - 余白 上 92 右 140 下 92 左 140 - 5 カラム(等分)、間隔 34 ## 強調 3 列目のみ。手段は 塗り + 罫 だけ。ほかは変えない ## 文字(版面 1920px に対する px) title 46px / 700 / 字間 0.01em / 行送り 1.3 lede 19px / 400 / 行送り 1.8 days 14px / 500 / 字間 0.14em / 等幅数字 sname 28px / 700 / 行送り 1.4 who 15px / 500 out 15px / 400 / 行送り 1.7 rname 20px / 700 rtext 16px / 400 / 行送り 1.75 fkey 14px / 500 / 字間 0.14em fval 17px / 500 / 行送り 1.65 / 等幅数字 ## 配色 地 #FFFFFF / 面 #F4F6F9 / 文字 #131820 / 補助 #667183 / 強調 #1F5FA8 / 罫 #DBE1E9 ## 外すと崩れる点 - 各段に営業日を書く。日数の無いフローは「いつ決まるか」を答えないので、現場は待たずに先に作り始める - 否認の行き先を描く。行き先の無い否認は、同じ要求が翌月また受付に戻ってくる - 判定者を金額や規模で分ける。1 つの会議体に全部持ち込むと、小さな変更が月 1 回の決裁を待つことになる - 「計画の改訂」を独立した段にする。ここが段になっていないから、小さな変更が工程表に反映されないまま積み上がる - 塗るのは止まる段 1 つだけ。他は作業の段なので、塗ると「どこで待つのか」が読めなくなる - 枝は判定の段の左端から L 字で落とす。渡り線の途中に落とすと、その左に置いた見出しが分岐の出どころに見える 内容は[ここに自分の内容を書く]に置き換えてください。寸法と配色はそのまま守ってください。 正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/change-request-flow-gates/pattern.html
/ai/designs/change-request-flow-gates.json
format: slide-16x9
density: medium
layout:
kind: flow
canvas:
w: 1920
h: 1080
margin:
top: 92
right: 140
bottom: 92
left: 140
columns:
count: 5
gap: 34
emphasis:
column: 3
via:
- fill
- rule
type:
title:
size: 46
weight: 700
tracking: 0.01em
leading: 1.3
lede:
size: 19
weight: 400
leading: 1.8
days:
size: 14
weight: 500
tracking: 0.14em
numeric: tabular
sname:
size: 28
weight: 700
leading: 1.4
who:
size: 15
weight: 500
out:
size: 15
weight: 400
leading: 1.7
rname:
size: 20
weight: 700
rtext:
size: 16
weight: 400
leading: 1.75
fkey:
size: 14
weight: 500
tracking: 0.14em
fval:
size: 17
weight: 500
leading: 1.65
numeric: tabular
colors:
ground: "#FFFFFF"
surface: "#F4F6F9"
ink: "#131820"
muted: "#667183"
accent: "#1F5FA8"
rule: "#DBE1E9"
rules:
- 各段に営業日を書く。日数の無いフローは「いつ決まるか」を答えないので、現場は待たずに先に作り始める
- 否認の行き先を描く。行き先の無い否認は、同じ要求が翌月また受付に戻ってくる
- 判定者を金額や規模で分ける。1 つの会議体に全部持ち込むと、小さな変更が月 1 回の決裁を待つことになる
- 「計画の改訂」を独立した段にする。ここが段になっていないから、小さな変更が工程表に反映されないまま積み上がる
- 塗るのは止まる段 1 つだけ。他は作業の段なので、塗ると「どこで待つのか」が読めなくなる
- 枝は判定の段の左端から L 字で落とす。渡り線の途中に落とすと、その左に置いた見出しが分岐の出どころに見える{
"format": "slide-16x9",
"density": "medium",
"layout": {
"kind": "flow",
"canvas": {
"w": 1920,
"h": 1080
},
"margin": {
"top": 92,
"right": 140,
"bottom": 92,
"left": 140
},
"columns": {
"count": 5,
"gap": 34
},
"emphasis": {
"column": 3,
"via": [
"fill",
"rule"
]
}
},
"type": {
"title": {
"size": 46,
"weight": 700,
"tracking": "0.01em",
"leading": 1.3
},
"lede": {
"size": 19,
"weight": 400,
"leading": 1.8
},
"days": {
"size": 14,
"weight": 500,
"tracking": "0.14em",
"numeric": "tabular"
},
"sname": {
"size": 28,
"weight": 700,
"leading": 1.4
},
"who": {
"size": 15,
"weight": 500
},
"out": {
"size": 15,
"weight": 400,
"leading": 1.7
},
"rname": {
"size": 20,
"weight": 700
},
"rtext": {
"size": 16,
"weight": 400,
"leading": 1.75
},
"fkey": {
"size": 14,
"weight": 500,
"tracking": "0.14em"
},
"fval": {
"size": 17,
"weight": 500,
"leading": 1.65,
"numeric": "tabular"
}
},
"colors": {
"ground": "#FFFFFF",
"surface": "#F4F6F9",
"ink": "#131820",
"muted": "#667183",
"accent": "#1F5FA8",
"rule": "#DBE1E9"
},
"rules": [
"各段に営業日を書く。日数の無いフローは「いつ決まるか」を答えないので、現場は待たずに先に作り始める",
"否認の行き先を描く。行き先の無い否認は、同じ要求が翌月また受付に戻ってくる",
"判定者を金額や規模で分ける。1 つの会議体に全部持ち込むと、小さな変更が月 1 回の決裁を待つことになる",
"「計画の改訂」を独立した段にする。ここが段になっていないから、小さな変更が工程表に反映されないまま積み上がる",
"塗るのは止まる段 1 つだけ。他は作業の段なので、塗ると「どこで待つのか」が読めなくなる",
"枝は判定の段の左端から L 字で落とす。渡り線の途中に落とすと、その左に置いた見出しが分岐の出どころに見える"
]
} /designs/change-request-flow-gates/pattern.html — 版そのものの HTML。書体の部分集合ごと同梱で、開けばこの絵がそのまま出ます。
<!doctype html>
<meta charset="utf-8">
<title>変更管理 — 各段に営業日を与え、否認の行き先まで描く</title>
<meta name="dv-font" content="Zen Kaku Gothic New:400;500;700">
<link rel="stylesheet" href="./font.css">
<style>
/* この版そのもの。index.md の layout / type / colors は、この HTML を
scripts/render-pattern.mjs で実測した結果であって、別に書いた説明ではない。 */
:root {
--ground: #FFFFFF;
--surface: #F4F6F9;
--ink: #131820;
--muted: #667183;
--accent: #1F5FA8;
--rule: #DBE1E9;
}
* { box-sizing: border-box; margin: 0; }
html, body { width: 1920px; height: 1080px; }
body { font-family: "Zen Kaku Gothic New", "IPAGothic", sans-serif; }
.artboard {
width: 1920px; height: 1080px;
background: var(--ground); color: var(--ink);
padding: 92px 140px; /* → layout.margin */
}
.content { height: 100%; display: grid; grid-template-rows: auto 1fr auto; }
.head { display: grid; gap: 16px; }
.title { font-size: 46px; font-weight: 700; line-height: 1.3; letter-spacing: .01em; }
.lede { font-size: 19px; font-weight: 400; line-height: 1.8; color: var(--muted); }
.flow { align-self: center; display: grid; gap: 0; }
/* 5 段を等幅で並べ、間に山形を挟む。段を大小に振ると、
どの段で時間を使うかが幅の話になってしまう。 */
.steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch; }
.step { border: 1px solid var(--rule); padding: 34px 28px 38px; background: var(--ground); }
/* 判定の段だけを塗る。ここが唯一「止まる」段で、他は作業の段だから。 */
.step[data-emphasis] { background: var(--surface); border-color: var(--accent); }
.days { font-size: 14px; font-weight: 500; letter-spacing: .14em; color: var(--muted); font-variant-numeric: tabular-nums; }
.step[data-emphasis] .days { color: var(--accent); }
.sname { font-size: 28px; font-weight: 700; line-height: 1.4; margin-top: 14px; }
.step[data-emphasis] .sname { color: var(--accent); }
.who { font-size: 15px; font-weight: 500; color: var(--muted); margin-top: 14px; }
.out { font-size: 15px; font-weight: 400; line-height: 1.7; color: var(--muted); margin-top: 10px; }
/* 山形は段と段の隙間に描く。矢印を線で引くと、線の意味を説明する時間が要る。 */
.chev { width: 0; height: 0; align-self: center; justify-self: center;
border-top: 11px solid transparent; border-bottom: 11px solid transparent;
border-left: 13px solid var(--rule); }
.steps { grid-template-columns: 1fr 34px 1fr 34px 1fr 34px 1fr 34px 1fr; }
/* 否認の行き先。描かない否認は、同じ要求が翌月また受付に戻ってくる。 */
.branch { display: grid; grid-template-columns: 1fr 34px 1fr 34px 1fr 34px 1fr 34px 1fr; }
/* 枝は判定の段の左端から L 字で落とす。渡り線の途中に落とすと、
その左に置いた見出しのほうが分岐の出どころに見える。 */
.drop { grid-column: 5; justify-self: start; width: 1px; height: 44px; background: var(--rule); }
.reject { grid-column: 5 / 10; border-top: 1px solid var(--rule); padding-top: 26px; display: grid; grid-template-columns: auto 1fr; gap: 32px; align-items: baseline; }
.rname { font-size: 20px; font-weight: 700; }
.rtext { font-size: 16px; font-weight: 400; line-height: 1.75; color: var(--muted); }
.foot { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 56px; border-top: 1px solid var(--rule); padding-top: 24px; }
.fkey { font-size: 14px; font-weight: 500; letter-spacing: .14em; color: var(--muted); }
.fval { font-size: 17px; font-weight: 500; line-height: 1.65; margin-top: 10px; font-variant-numeric: tabular-nums; }
</style>
<div class="artboard" data-artboard>
<div class="content" data-content>
<div class="head">
<h1 class="title" data-type="title">変更要求の扱い</h1>
<p class="lede" data-type="lede">受付から反映まで、各段に営業日を置いています。合計 10 営業日で結論が出ない要求は、そのまま第 2 期の候補に送ります。</p>
</div>
<div class="flow">
<div class="steps">
<section class="step" data-col="1">
<p class="days" data-type="days">1 営業日</p>
<p class="sname" data-type="sname">受付</p>
<p class="who" data-type="who">合同 PMO</p>
<p class="out" data-type="out">要求票に採番し、台帳へ記載</p>
</section>
<div class="chev"></div>
<section class="step" data-col="2">
<p class="days">4 営業日</p>
<p class="sname">影響評価</p>
<p class="who">開発チーム・基盤チーム</p>
<p class="out">工数・工程・他機能への影響を算定</p>
</section>
<div class="chev"></div>
<section class="step" data-col="3" data-emphasis="fill rule">
<p class="days">3 営業日</p>
<p class="sname">判定</p>
<p class="who">合同 PMO(20 人日以上はステアリングコミッティ)</p>
<p class="out">承認・否認・保留のいずれかを記録</p>
</section>
<div class="chev"></div>
<section class="step" data-col="4">
<p class="days">2 営業日</p>
<p class="sname">計画の改訂</p>
<p class="who">合同 PMO</p>
<p class="out">工程表と見積を改訂。版数を上げる</p>
</section>
<div class="chev"></div>
<section class="step" data-col="5">
<p class="days">工程に依存</p>
<p class="sname">反映</p>
<p class="who">担当チーム</p>
<p class="out">設計書の改訂から実装・試験まで</p>
</section>
</div>
<div class="branch">
<div class="drop"></div>
<div class="reject">
<p class="rname" data-type="rname">否認・保留のとき</p>
<p class="rtext" data-type="rtext">第 2 期の候補一覧へ、判定日と理由を付けて移します。差し戻しはしません —— 行き先の無い否認は、同じ要求が翌月また受付に戻ってくるためです。</p>
</div>
</div>
</div>
<div class="foot">
<div>
<p class="fkey" data-type="fkey">現在の受付状況</p>
<p class="fval" data-type="fval">受付 3 件 / 評価中 2 件 / 判定待ち 1 件</p>
</div>
<div>
<p class="fkey">承認済みの累計</p>
<p class="fval">7 件 / 工期 +3 週・費用 +8,400 千円</p>
</div>
<div>
<p class="fkey">この手順を通さない変更</p>
<p class="fval">ありません。文言の修正も台帳に載せます</p>
</div>
</div>
</div>
</div>
/designs/change-request-flow-gates/font.css — 全部入りには入れていない
/* dv-subset v2 — generated by scripts/subset-font.mjs. Do not edit.
* font Zen Kaku Gothic New 400;500;700
* chars 182 (9f640344314e3a52)
*
* pattern.html の文字だけを含む部分集合。描画時に外部へ取りに行かないよう同梱する。
* 版の文字を変えたら取り直すこと — 忘れると足りない字が豆腐になる。
* その取り忘れは pattern-entries.test.ts が上の指紋で検出する。
*/
@font-face {
font-family: 'Zen Kaku Gothic New';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(./font-0.woff2) format('woff2');
unicode-range: U+2b-2c, U+30-34, U+37-38, U+4d, U+4f-50, U+2014, U+3001-3002, U+3042, U+3044, U+3048, U+304b-3063, U+3066-306b, U+306e-3070, U+3078-3079, U+307e-307f, U+3081-3082, U+3089-308c, U+3092-3093, U+3099, U+30a2-30a3, U+30af-30b0, U+30b3-30b4, U+30b9-30ba, U+30c1-30c3, U+30c6-30c7, U+30df-30e0, U+30ea, U+30f3, U+30fb-30fc, U+4e00, U+4e0a, U+4e0e, U+4e2d, U+4eba, U+4ed6, U+4ed8, U+4ee5, U+4ef6, U+4f9d, U+4fa1, U+4fdd, U+4fee, U+5019, U+5148, U+5186, U+51fa, U+5224, U+5343, U+53cd, U+53d7, U+53f0, U+5404, U+5408, U+540c, U+5426, U+55b6, U+5728, U+57fa, U+5909, U+5b58, U+5b9a, U+5b9f, U+5de5, U+5dee, U+5e33, U+5f53, U+5f71, U+5f85, U+623b, U+624b, U+6271, U+627f, U+62c5, U+63a1, U+63cf, U+6539, U+6570, U+6587, U+65e5, U+6620, U+66f4, U+66f8, U+6708, U+671f, U+696d, U+6a5f, U+6b63, U+6bb5, U+6c42, U+6cc1, U+6e08, U+7121, U+7248, U+72b6, U+73fe, U+7406, U+7528, U+7531, U+753b, U+7559, U+756a, U+767a, U+76e4, U+7968, U+79fb, U+7a0b, U+7a4d, U+7b2c, U+7b97, U+7ba1, U+7d2f, U+7d50, U+7f6e, U+7fcc, U+80fd, U+884c, U+8868, U+88c5, U+88dc, U+8981, U+898b, U+89a7, U+8a00, U+8a02, U+8a08, U+8a18, U+8a2d, U+8a55, U+8a66, U+8a8d, U+8ad6, U+8cbb, U+8f09, U+9001, U+901a, U+9031, U+9332, U+958b, U+97ff, U+9806, U+9a13, U+ff08-ff09, U+ff0f;
}
@font-face {
font-family: 'Zen Kaku Gothic New';
font-style: normal;
font-weight: 500;
font-display: block;
src: url(./font-1.woff2) format('woff2');
unicode-range: U+2b-2c, U+30-34, U+37-38, U+4d, U+4f-50, U+2014, U+3001-3002, U+3042, U+3044, U+3048, U+304b-3063, U+3066-306b, U+306e-3070, U+3078-3079, U+307e-307f, U+3081-3082, U+3089-308c, U+3092-3093, U+3099, U+30a2-30a3, U+30af-30b0, U+30b3-30b4, U+30b9-30ba, U+30c1-30c3, U+30c6-30c7, U+30df-30e0, U+30ea, U+30f3, U+30fb-30fc, U+4e00, U+4e0a, U+4e0e, U+4e2d, U+4eba, U+4ed6, U+4ed8, U+4ee5, U+4ef6, U+4f9d, U+4fa1, U+4fdd, U+4fee, U+5019, U+5148, U+5186, U+51fa, U+5224, U+5343, U+53cd, U+53d7, U+53f0, U+5404, U+5408, U+540c, U+5426, U+55b6, U+5728, U+57fa, U+5909, U+5b58, U+5b9a, U+5b9f, U+5de5, U+5dee, U+5e33, U+5f53, U+5f71, U+5f85, U+623b, U+624b, U+6271, U+627f, U+62c5, U+63a1, U+63cf, U+6539, U+6570, U+6587, U+65e5, U+6620, U+66f4, U+66f8, U+6708, U+671f, U+696d, U+6a5f, U+6b63, U+6bb5, U+6c42, U+6cc1, U+6e08, U+7121, U+7248, U+72b6, U+73fe, U+7406, U+7528, U+7531, U+753b, U+7559, U+756a, U+767a, U+76e4, U+7968, U+79fb, U+7a0b, U+7a4d, U+7b2c, U+7b97, U+7ba1, U+7d2f, U+7d50, U+7f6e, U+7fcc, U+80fd, U+884c, U+8868, U+88c5, U+88dc, U+8981, U+898b, U+89a7, U+8a00, U+8a02, U+8a08, U+8a18, U+8a2d, U+8a55, U+8a66, U+8a8d, U+8ad6, U+8cbb, U+8f09, U+9001, U+901a, U+9031, U+9332, U+958b, U+97ff, U+9806, U+9a13, U+ff08-ff09, U+ff0f;
}
@font-face {
font-family: 'Zen Kaku Gothic New';
font-style: normal;
font-weight: 700;
font-display: block;
src: url(./font-2.woff2) format('woff2');
unicode-range: U+2b-2c, U+30-34, U+37-38, U+4d, U+4f-50, U+2014, U+3001-3002, U+3042, U+3044, U+3048, U+304b-3063, U+3066-306b, U+306e-3070, U+3078-3079, U+307e-307f, U+3081-3082, U+3089-308c, U+3092-3093, U+3099, U+30a2-30a3, U+30af-30b0, U+30b3-30b4, U+30b9-30ba, U+30c1-30c3, U+30c6-30c7, U+30df-30e0, U+30ea, U+30f3, U+30fb-30fc, U+4e00, U+4e0a, U+4e0e, U+4e2d, U+4eba, U+4ed6, U+4ed8, U+4ee5, U+4ef6, U+4f9d, U+4fa1, U+4fdd, U+4fee, U+5019, U+5148, U+5186, U+51fa, U+5224, U+5343, U+53cd, U+53d7, U+53f0, U+5404, U+5408, U+540c, U+5426, U+55b6, U+5728, U+57fa, U+5909, U+5b58, U+5b9a, U+5b9f, U+5de5, U+5dee, U+5e33, U+5f53, U+5f71, U+5f85, U+623b, U+624b, U+6271, U+627f, U+62c5, U+63a1, U+63cf, U+6539, U+6570, U+6587, U+65e5, U+6620, U+66f4, U+66f8, U+6708, U+671f, U+696d, U+6a5f, U+6b63, U+6bb5, U+6c42, U+6cc1, U+6e08, U+7121, U+7248, U+72b6, U+73fe, U+7406, U+7528, U+7531, U+753b, U+7559, U+756a, U+767a, U+76e4, U+7968, U+79fb, U+7a0b, U+7a4d, U+7b2c, U+7b97, U+7ba1, U+7d2f, U+7d50, U+7f6e, U+7fcc, U+80fd, U+884c, U+8868, U+88c5, U+88dc, U+8981, U+898b, U+89a7, U+8a00, U+8a02, U+8a08, U+8a18, U+8a2d, U+8a55, U+8a66, U+8a8d, U+8ad6, U+8cbb, U+8f09, U+9001, U+901a, U+9031, U+9332, U+958b, U+97ff, U+9806, U+9a13, U+ff08-ff09, U+ff0f;
}
スコープを合意した次に必ず要る、変更要求の扱いを取り決める版。pattern.html が版そのもので、
cover.png と frontmatter の寸法はどちらもそこから機械的に出している。編集するのは pattern.html だけ。
The page that always follows a scope agreement: how change requests get handled. pattern.html is
the artboard itself; both cover.png and the measurements come from it, so the three cannot drift apart.