Design Vault Search use case, structure, colour, notes /
Index Categories Tags 日本語
Back to index

Between Build and Buy — Seventy Percent Is Outside Today

Axis
Between Build and Buy — Seventy Percent Is Outside Today
140 96

1920 × 1080 Seen as a design

Take it with you

Copy and paste, or save a file and hand it over. For a machine with no network, one “Everything” file is enough.

Everything

spectrum-two-poles-everything.md

Everything in this panel, including the contents behind each URL, in one Markdown file

Prompt

1.5 KB
Produce one slide to the following specification.

- Canvas 1920 × 1080
- Margin top 96 right 140 bottom 96 left 140

## Type (px against a 1920px canvas)
title  44px / 700 / tracking 0.01em / leading 1.3
window  20px / 500 / leading 1.5
poleName  28px / 700 / leading 1.3
poleNote  22px / 400 / leading 1.6
markerNow  32px / 700 / leading 1 / tabular numerals
markerPast  24px / 500 / leading 1.4 / tabular numerals
conclusion  26px / 500 / leading 1.6
note  16px / 400 / leading 1.6

## Colour
Ground #FFFFFF / Surface #F4F6F9 / Ink #131820 / Muted #667183 / Accent #1F5FA8 / Rule #DBE1E9

## Constraints — dropping these breaks it
- Put an unreachable extreme at each end. Real options as endpoints turn the scale back into a comparison of choices, and position stops being the reading
- Two markers at most. One shows no movement; three or more and the scale is standing in for a line chart
- Do not add tick marks. They invite reading a five-point difference, and this figure can only answer direction and rough degree
- Never say which pole is better. The track's fill is there to make the distance from the left pole readable; the moment colour means 'the good side', this stops being a measurement and becomes an argument
- Close on what the position costs, not the position. Whether it can be reversed drives the decision more than the number does

Replace the content with [your content]. Keep the measurements and colours as given.
For an exact reproduction, use the verbatim HTML at https://design-vault.pages.dev/designs/spectrum-two-poles/pattern.html.

Spec

1.9 KB

/ai/designs/spectrum-two-poles.json

format: slide-16x9
density: low
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
  poleName:
    size: 28
    weight: 700
    leading: 1.3
  poleNote:
    size: 22
    weight: 400
    leading: 1.6
  markerNow:
    size: 32
    weight: 700
    leading: 1
    numeric: tabular
  markerPast:
    size: 24
    weight: 500
    leading: 1.4
    numeric: tabular
  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"
rules:
  - Put an unreachable extreme at each end. Real options as endpoints turn the scale back into a comparison of choices, and position stops being the reading
  - Two markers at most. One shows no movement; three or more and the scale is standing in for a line chart
  - Do not add tick marks. They invite reading a five-point difference, and this figure can only answer direction and rough degree
  - Never say which pole is better. The track's fill is there to make the distance from the left pole readable; the moment colour means 'the good side', this stops being a measurement and becomes an argument
  - Close on what the position costs, not the position. Whether it can be reversed drives the decision more than the number does

Files

pattern.html

4.8 KB

/designs/spectrum-two-poles/pattern.html — The artboard itself, font subset included — open it and this picture draws.

Show contents
<!doctype html>
<meta charset="utf-8">
<title>内製と外注のあいだ — いま 7 割を外に出している</title>
<meta name="dv-font" content="Zen Kaku Gothic New:400;500;700">
<link rel="stylesheet" href="./font.css">
<style>
  /* 色のリテラルはこの :root にだけ置く。以下の規則は var() か color-mix() で名指す。
     区分色は持たない —— 軸の上では色ではなく位置が意味を運ぶ。 */
  :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: 96px 140px;
  }

  .content {
    height: 100%;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .head { border-bottom: 2px solid var(--rule); padding-bottom: 28px; }
  .title { font-size: 44px; font-weight: 700; letter-spacing: 0.01em; line-height: 1.3; }
  .window { margin-top: 14px; font-size: 20px; font-weight: 500; line-height: 1.5; color: var(--muted); }

  .body { display: grid; align-content: center; row-gap: 48px; }

  .poles { display: flex; justify-content: space-between; align-items: flex-start; }
  .pole-right { text-align: right; }
  .pole-name { font-size: 28px; font-weight: 700; line-height: 1.3; }
  .pole-note { margin-top: 10px; font-size: 22px; font-weight: 400; line-height: 1.6; color: var(--muted); }

  .figure { display: block; }
  .track { fill: var(--surface); }
  /* 塗りは「左の極からどれだけ来たか」を示すためのもので、望ましい側の表明ではない
     (左端の「全部を内製」は誰も選ばない極として置いてある)。印だけでも位置は読めるが、
     塗りが無いと 55% と 70% の差が目測になる。望ましさを言い始めたらこの塗りは外す。 */
  .fill { fill: var(--accent); }
  .stem { stroke: var(--rule); stroke-width: 2; }
  .knob-now { fill: var(--ground); stroke: var(--accent); stroke-width: 8; }
  .knob-past { fill: var(--ground); stroke: var(--muted); stroke-width: 5; }
  .marker-now { fill: var(--ink); font-size: 32px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
  .marker-past { fill: var(--muted); font-size: 24px; font-weight: 500; line-height: 1.4; font-variant-numeric: tabular-nums; }

  .conclusion { font-size: 26px; font-weight: 500; line-height: 1.6; color: var(--muted); }

  .foot { border-top: 1px solid var(--rule); padding-top: 22px; font-size: 16px; font-weight: 400; line-height: 1.6; color: var(--muted); }
</style>

<div class="artboard" data-artboard>
  <div class="content" data-content>
    <div class="head">
      <h1 class="title" data-type="title">内製と外注のあいだ — いま 7 割を外に出している</h1>
      <p class="window" data-type="window">2026 年度の開発工数ベース / 運用と保守は含まない / 判断は 3 月の投資委員会</p>
    </div>

    <div class="body">
      <div class="poles">
        <div class="pole-left">
          <div class="pole-name" data-type="poleName">全部を内製</div>
          <div class="pole-note" data-type="poleNote">設計から運用まで自社が持つ</div>
        </div>
        <div class="pole-right">
          <div class="pole-name">全部を外注</div>
          <div class="pole-note">仕様だけ自社に残す</div>
        </div>
      </div>

      <!-- 等倍で描く。viewBox と width/height を一致させてあるので、
           SVG の中の文字の級数は版面の px とそのまま同じ数字になる。 -->
      <svg class="figure" width="1640" height="300" viewBox="0 0 1640 300">
        <text class="marker-now" data-type="markerNow" x="1132" y="44" text-anchor="middle" dominant-baseline="central">いま 70%</text>
        <path class="stem" d="M1132 66V120"/>

        <rect class="track" x="40" y="136" width="1560" height="40" rx="20"/>
        <rect class="fill" x="40" y="136" width="1092" height="40" rx="20"/>

        <circle class="knob-past" cx="898" cy="156" r="18"/>
        <circle class="knob-now" cx="1132" cy="156" r="34"/>

        <path class="stem" d="M898 192v46"/>
        <text class="marker-past" data-type="markerPast" x="898" y="262" text-anchor="middle" dominant-baseline="central">1 年前 55%</text>
      </svg>

      <p class="conclusion" data-type="conclusion">7 割そのものは問題ではない。戻す判断ができる人が社内に 2 名しかいないことが問題</p>
    </div>

    <div class="foot" data-type="note">工数は受入検査を含む。社内の兼務者は稼働率で按分している。</div>
  </div>
</div>

font.css

2.9 KB

/designs/spectrum-two-poles/font.css — Not in Everything

Show contents
/* dv-subset v2 — generated by scripts/subset-font.mjs. Do not edit.
 * font    Zen Kaku Gothic New 400;500;700
 * chars   92 (cfaac8ef07341ab0)
 *
 * 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+25, U+2f-33, U+35-37, U+2014, U+3002, U+3042, U+3044, U+304b-304e, U+3051-3054, U+3057-305a, U+305d-3060, U+3064-306b, U+306e-3070, U+307e, U+3080, U+3082, U+3089, U+308b, U+3092, U+3099, U+30b9-30ba, U+30d8-30d9, U+30fc, U+4eba, U+4ed5, U+4f1a, U+4fdd, U+50cd, U+5165, U+5168, U+517c, U+5185, U+51fa, U+5206, U+5224, U+524d, U+5272, U+52d9, U+53d7, U+540d, U+542b, U+54e1, U+554f, U+5916, U+59d4, U+5b88, U+5de5, U+5e74, U+5ea6, U+623b, U+6295, U+6301, U+6309, U+6570, U+65ad, U+6708, U+67fb, U+691c, U+69d8, U+6b8b, U+6ce8, U+7387, U+7528, U+767a, U+793e, U+7a3c, U+8005, U+81ea, U+88fd, U+8a08, U+8a2d, U+8cc7, U+904b, U+90e8, U+958b, U+984c;
}
@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+25, U+2f-33, U+35-37, U+2014, U+3002, U+3042, U+3044, U+304b-304e, U+3051-3054, U+3057-305a, U+305d-3060, U+3064-306b, U+306e-3070, U+307e, U+3080, U+3082, U+3089, U+308b, U+3092, U+3099, U+30b9-30ba, U+30d8-30d9, U+30fc, U+4eba, U+4ed5, U+4f1a, U+4fdd, U+50cd, U+5165, U+5168, U+517c, U+5185, U+51fa, U+5206, U+5224, U+524d, U+5272, U+52d9, U+53d7, U+540d, U+542b, U+54e1, U+554f, U+5916, U+59d4, U+5b88, U+5de5, U+5e74, U+5ea6, U+623b, U+6295, U+6301, U+6309, U+6570, U+65ad, U+6708, U+67fb, U+691c, U+69d8, U+6b8b, U+6ce8, U+7387, U+7528, U+767a, U+793e, U+7a3c, U+8005, U+81ea, U+88fd, U+8a08, U+8a2d, U+8cc7, U+904b, U+90e8, U+958b, U+984c;
}
@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+25, U+2f-33, U+35-37, U+2014, U+3002, U+3042, U+3044, U+304b-304e, U+3051-3054, U+3057-305a, U+305d-3060, U+3064-306b, U+306e-3070, U+307e, U+3080, U+3082, U+3089, U+308b, U+3092, U+3099, U+30b9-30ba, U+30d8-30d9, U+30fc, U+4eba, U+4ed5, U+4f1a, U+4fdd, U+50cd, U+5165, U+5168, U+517c, U+5185, U+51fa, U+5206, U+5224, U+524d, U+5272, U+52d9, U+53d7, U+540d, U+542b, U+54e1, U+554f, U+5916, U+59d4, U+5b88, U+5de5, U+5e74, U+5ea6, U+623b, U+6295, U+6301, U+6309, U+6570, U+65ad, U+6708, U+67fb, U+691c, U+69d8, U+6b8b, U+6ce8, U+7387, U+7528, U+767a, U+793e, U+7a3c, U+8005, U+81ea, U+88fd, U+8a08, U+8a2d, U+8cc7, U+904b, U+90e8, U+958b, U+984c;
}

Notes

内製か外注かという問いは、置き方を変えるだけで答えが出ることがある。両極を端に 置いた軸の上では、どちらかを選ぶのではなく「いまどこにいて、どちらへ動いたか」を 言うことになるからである。

端に実在する選択肢を置かないのは、そのためである。「全部を内製」は誰も選ばない案 だが、端にあることで軸が軸として成立する。実在する案を端に置くと、目盛りは たちまち二択の比較表に戻る。