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

KPI Scorecard — Target, Actual, Gap, Eight-Quarter Trend and Verdict on One Row

Table
Design
KPI Scorecard — Target, Actual, Gap, Eight-Quarter Trend and Verdict on One Row
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

kpi-scorecard-sparklines-everything.md

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

Prompt

1.2 KB
Produce one slide to the following specification.

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

## Type (px against a 1920px canvas)
kicker  22px / 700 / tracking 0.16em / tabular numerals
title  52px / 700 / leading 1.35 / tabular numerals
colHead  22px / 500 / tabular numerals
item  30px / 500 / tabular numerals
target  30px / 400 / tabular numerals
actual  36px / 700 / tabular numerals
gap  30px / 400 / tabular numerals
judge  24px / 700 / tabular numerals
note  20px / 400 / tabular numerals
folio  16px / 400 / tabular numerals

## Colour
Ground #FFFFFF / Surface #F2F4F8 / Ink #0E1A2B / Muted #5B6879 / Accent #1D3F72 / Rule #D6DCE5

## Constraints — dropping these breaks it
- Use colour only for the verdict — colour the trend lines too and nothing stands out
- Each trend line has its own scale; note that only the shape is meant to be read
- Express gaps in points, always with a sign
- Two verdicts, met or not — a three-colour signal means explaining amber every time

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/kpi-scorecard-sparklines/pattern.html.

Spec

1.7 KB

/ai/designs/kpi-scorecard-sparklines.json

format: slide-16x9
density: high
layout:
  kind: table
  canvas:
    w: 1920
    h: 1080
  margin:
    top: 96
    right: 140
    bottom: 56
    left: 140
type:
  kicker:
    size: 22
    weight: 700
    tracking: 0.16em
    numeric: tabular
  title:
    size: 52
    weight: 700
    leading: 1.35
    numeric: tabular
  colHead:
    size: 22
    weight: 500
    numeric: tabular
  item:
    size: 30
    weight: 500
    numeric: tabular
  target:
    size: 30
    weight: 400
    numeric: tabular
  actual:
    size: 36
    weight: 700
    numeric: tabular
  gap:
    size: 30
    weight: 400
    numeric: tabular
  judge:
    size: 24
    weight: 700
    numeric: tabular
  note:
    size: 20
    weight: 400
    numeric: tabular
  folio:
    size: 16
    weight: 400
    numeric: tabular
colors:
  ground: "#FFFFFF"
  surface: "#F2F4F8"
  ink: "#0E1A2B"
  muted: "#5B6879"
  accent: "#1D3F72"
  rule: "#D6DCE5"
rules:
  - Use colour only for the verdict — colour the trend lines too and nothing stands out
  - Each trend line has its own scale; note that only the shape is meant to be read
  - Express gaps in points, always with a sign
  - Two verdicts, met or not — a three-colour signal means explaining amber every time

Files

pattern.html

5.7 KB

/designs/kpi-scorecard-sparklines/pattern.html — The artboard itself, font subset included — open it and this picture draws.

Show contents
<!doctype html>
<meta charset="utf-8">
<title>指標の成績表 — 目標・実績・差・8 四半期の推移・判定を 1 行に</title>
<meta name="dv-font" content="IBM Plex Sans JP:400;500;700">
<link rel="stylesheet" href="./font.css">
<style>
  /* この版そのもの。index.md の layout / type / colors は、この HTML を
     scripts/render-pattern.mjs で実測した結果であって、別に書いた説明ではない。
     会社・人物・数値はすべて説明用の架空のもの。 */
  :root {
    --ground: #FFFFFF;
    --surface: #F2F4F8;
    --ink: #0E1A2B;
    --muted: #5B6879;
    --accent: #1D3F72;
    --rule: #D6DCE5;
  }
  * { box-sizing: border-box; margin: 0; }
  html, body { width: 1920px; height: 1080px; }
  body { font-family: "IBM Plex Sans JP", "IPAGothic", sans-serif; font-variant-numeric: tabular-nums; }

  .artboard {
    width: 1920px; height: 1080px;
    background: var(--ground); color: var(--ink);
    padding: 96px 140px 56px;             /* → layout.margin */
  }
  .content { height: 100%; display: grid; grid-template-rows: auto 1fr auto; row-gap: 40px; }

  .kicker { font-size: 22px; font-weight: 700; letter-spacing: .16em; color: var(--accent); }
  .title { font-size: 52px; font-weight: 700; line-height: 1.35; margin-top: 12px; }
  /* 頁の足:社名・資料名・頁番号。どの頁でも同じ位置に置く */
  .folio { display: flex; justify-content: space-between; font-size: 16px; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 16px; }

  .wrap { align-self: center; }
  table { width: 100%; border-collapse: collapse; }
  thead th { font-size: 22px; font-weight: 500; color: var(--muted); text-align: right; padding: 0 24px 18px; border-bottom: 3px solid var(--ink); }
  thead th:first-child { text-align: left; padding-left: 0; }
  thead th.l { text-align: left; }
  tbody tr { border-bottom: 1px solid var(--rule); }
  tbody th { font-size: 30px; font-weight: 500; text-align: left; padding: 24px 0; }
  tbody td { font-size: 30px; text-align: right; padding: 24px 24px; }
  td.act { font-size: 36px; font-weight: 700; }
  td.spark { text-align: left; padding-top: 12px; padding-bottom: 12px; }
  td.spark svg { display: block; }
  /* 判定だけに色を使う。推移の線は灰色のまま、達成した行の判定を紺で塗る */
  td.judge { text-align: center; font-size: 24px; font-weight: 700; color: var(--muted); }
  td.judge.ok { color: var(--ground); background: var(--accent); }
  .note { font-size: 20px; color: var(--muted); margin-top: 16px; }

</style>

<div class="artboard" data-artboard>
  <div class="content" data-content>
    <div>
      <p class="kicker" data-type="kicker">経営指標</p>
      <h1 class="title" data-type="title">5 指標のうち 2 つが目標を上回った</h1>
    </div>
    <div class="wrap">
      <table>
        <thead><tr><th data-type="colHead">指標</th><th>通期目標</th><th>上期実績</th><th>目標との差</th><th class="l">直近 8 四半期</th><th style="text-align: center">判定</th></tr></thead>
        <tbody>
        <tr>
          <th data-type="item">受注高の前年比</th><td data-type="target">+5.0%</td><td class="act" data-type="actual">+7.3%</td><td data-type="gap">+2.3pt</td>
          <td class="spark"><svg width="240" height="56" viewBox="0 0 240 56" aria-hidden="true"><polyline points="8 42.3 40 48.0 72 34.9 104 38.2 136 25.1 168 28.4 200 17.8 232 8.0" fill="none" stroke="var(--muted)" stroke-width="2.5"/><circle cx="232" cy="8.0" r="5" fill="var(--ink)"/></svg></td>
          <td class="judge ok" data-type="judge">達成</td>
        </tr>
        <tr>
          <th>継続収入の比率</th><td>32.0%</td><td class="act">31.4%</td><td>−0.6pt</td>
          <td class="spark"><svg width="240" height="56" viewBox="0 0 240 56" aria-hidden="true"><polyline points="8 48.0 40 40.7 72 34.4 104 28.9 136 21.6 168 17.1 200 12.5 232 8.0" fill="none" stroke="var(--muted)" stroke-width="2.5"/><circle cx="232" cy="8.0" r="5" fill="var(--ink)"/></svg></td>
          <td class="judge">未達</td>
        </tr>
        <tr>
          <th>営業利益率</th><td>8.8%</td><td class="act">8.5%</td><td>−0.3pt</td>
          <td class="spark"><svg width="240" height="56" viewBox="0 0 240 56" aria-hidden="true"><polyline points="8 48.0 40 35.7 72 41.8 104 26.5 136 20.3 168 29.5 200 14.2 232 8.0" fill="none" stroke="var(--muted)" stroke-width="2.5"/><circle cx="232" cy="8.0" r="5" fill="var(--ink)"/></svg></td>
          <td class="judge">未達</td>
        </tr>
        <tr>
          <th>海外売上の比率</th><td>38.0%</td><td class="act">39.2%</td><td>+1.2pt</td>
          <td class="spark"><svg width="240" height="56" viewBox="0 0 240 56" aria-hidden="true"><polyline points="8 48.0 40 43.1 72 37.5 104 31.9 136 27.6 168 19.9 200 14.3 232 8.0" fill="none" stroke="var(--muted)" stroke-width="2.5"/><circle cx="232" cy="8.0" r="5" fill="var(--ink)"/></svg></td>
          <td class="judge ok">達成</td>
        </tr>
        <tr>
          <th>ROE(年換算)</th><td>9.0%</td><td class="act">8.6%</td><td>−0.4pt</td>
          <td class="spark"><svg width="240" height="56" viewBox="0 0 240 56" aria-hidden="true"><polyline points="8 48.0 40 31.3 72 28.0 104 21.3 136 24.7 168 14.7 200 11.3 232 8.0" fill="none" stroke="var(--muted)" stroke-width="2.5"/><circle cx="232" cy="8.0" r="5" fill="var(--ink)"/></svg></td>
          <td class="judge">未達</td>
        </tr>
        </tbody>
      </table>
      <p class="note" data-type="note">推移の線は指標ごとに縦の目盛りが違う。形だけを見る</p>
    </div>
    <div class="folio">
      <p data-type="folio">アオバ精工株式会社 2027 年 3 月期 第 2 四半期 決算説明資料</p>
      <p>07</p>
    </div>
  </div>
</div>

font.css

3.2 KB

/designs/kpi-scorecard-sparklines/font.css — Not in Everything

Show contents
/* dv-subset v2 — generated by scripts/subset-font.mjs. Do not edit.
 * font    IBM Plex Sans JP 400;500;700
 * chars   108 (203e14a088519aa8)
 *
 * pattern.html の文字だけを含む部分集合。描画時に外部へ取りに行かないよう同梱する。
 * 版の文字を変えたら取り直すこと — 忘れると足りない字が豆腐になる。
 * その取り忘れは pattern-entries.test.ts が上の指紋で検出する。
 */

@font-face {
  font-family: 'IBM Plex Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(./font-0.woff2) format('woff2');
  unicode-range: U+20, U+25, U+2b, U+2e, U+30-39, U+45, U+4f, U+52, U+70, U+74, U+2014, U+2212, U+3000, U+3002, U+3046, U+304b-304c, U+3051-3054, U+305f-3065, U+3068-3069, U+306b, U+306e-3070, U+308a-308b, U+3092, U+3094, U+3099, U+30a2, U+30aa, U+30cf-30d0, U+30fb, U+4e0a, U+4f1a, U+5165, U+5224, U+5229, U+524d, U+534a, U+53ce, U+53d7, U+55b6, U+56db, U+56de, U+58f2, U+5916, U+5b9a, U+5b9f, U+5de5, U+5dee, U+5e74, U+5f0f, U+5f62, U+6210, U+6307, U+63a8, U+63db, U+6599, U+660e, U+6708, U+671f, U+672a, U+682a, U+696d, U+6a19, U+6bd4, U+6c7a, U+6ce8, U+6d77, U+7387, U+76ca, U+76db, U+76ee, U+76f4, U+793e, U+79fb, U+7b2c, U+7b97, U+7cbe, U+7d4c, U+7d99-7d9a, U+7dda, U+7e26, U+7e3e, U+884c, U+8868, U+898b, U+8aac, U+8cc7, U+8fd1, U+901a, U+9054-9055, U+9ad8, U+ff08-ff09;
}
@font-face {
  font-family: 'IBM Plex Sans JP';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url(./font-1.woff2) format('woff2');
  unicode-range: U+20, U+25, U+2b, U+2e, U+30-39, U+45, U+4f, U+52, U+70, U+74, U+2014, U+2212, U+3000, U+3002, U+3046, U+304b-304c, U+3051-3054, U+305f-3065, U+3068-3069, U+306b, U+306e-3070, U+308a-308b, U+3092, U+3094, U+3099, U+30a2, U+30aa, U+30cf-30d0, U+30fb, U+4e0a, U+4f1a, U+5165, U+5224, U+5229, U+524d, U+534a, U+53ce, U+53d7, U+55b6, U+56db, U+56de, U+58f2, U+5916, U+5b9a, U+5b9f, U+5de5, U+5dee, U+5e74, U+5f0f, U+5f62, U+6210, U+6307, U+63a8, U+63db, U+6599, U+660e, U+6708, U+671f, U+672a, U+682a, U+696d, U+6a19, U+6bd4, U+6c7a, U+6ce8, U+6d77, U+7387, U+76ca, U+76db, U+76ee, U+76f4, U+793e, U+79fb, U+7b2c, U+7b97, U+7cbe, U+7d4c, U+7d99-7d9a, U+7dda, U+7e26, U+7e3e, U+884c, U+8868, U+898b, U+8aac, U+8cc7, U+8fd1, U+901a, U+9054-9055, U+9ad8, U+ff08-ff09;
}
@font-face {
  font-family: 'IBM Plex Sans JP';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url(./font-2.woff2) format('woff2');
  unicode-range: U+20, U+25, U+2b, U+2e, U+30-39, U+45, U+4f, U+52, U+70, U+74, U+2014, U+2212, U+3000, U+3002, U+3046, U+304b-304c, U+3051-3054, U+305f-3065, U+3068-3069, U+306b, U+306e-3070, U+308a-308b, U+3092, U+3094, U+3099, U+30a2, U+30aa, U+30cf-30d0, U+30fb, U+4e0a, U+4f1a, U+5165, U+5224, U+5229, U+524d, U+534a, U+53ce, U+53d7, U+55b6, U+56db, U+56de, U+58f2, U+5916, U+5b9a, U+5b9f, U+5de5, U+5dee, U+5e74, U+5f0f, U+5f62, U+6210, U+6307, U+63a8, U+63db, U+6599, U+660e, U+6708, U+671f, U+672a, U+682a, U+696d, U+6a19, U+6bd4, U+6c7a, U+6ce8, U+6d77, U+7387, U+76ca, U+76db, U+76ee, U+76f4, U+793e, U+79fb, U+7b2c, U+7b97, U+7cbe, U+7d4c, U+7d99-7d9a, U+7dda, U+7e26, U+7e3e, U+884c, U+8868, U+898b, U+8aac, U+8cc7, U+8fd1, U+901a, U+9054-9055, U+9ad8, U+ff08-ff09;
}

Notes

この構成について / About this pattern

出典を持たない自作パターン。pattern.html が版そのもので、cover.png と frontmatter の layout / type / colors はどちらもそこから機械的に測った結果。一式「決算・経営報告」の 1 枚で、架空の会社「アオバ精工」の第 2 四半期決算説明として描いてある。会社・人物・数値はすべて架空。

A self-authored pattern. pattern.html is the artboard itself; both cover.png and the measurements in the frontmatter are derived from it. One of the eight results-briefing slides, drawn as a fictional company’s half-year results deck; every company, person and figure on it is invented.

Techniques

Apply to