Spacing scale
Documenting spacing tokens.
space-1 ░ ▒ █ 4px
space-2 ░▒█░ ▒ █ 8px
space-3 ░▒█░▒█░▒█░ ▒ █ 16px
space-4 ░▒█░▒█░▒█░▒█░▒█░ ▒ █ 24px
space-5 ░▒█░▒█░▒█░▒█░▒█░▒█░▒█░▒█░▒█░ ▒ █ 40px
One ░ ▒ █ is 4px.
SAMPLE DATAWatch for: State the unit per cell under the chart.
Type scale
Documenting type sizes and line heights.
░░░░░░ ▒▒▒▒▒▒display ██████░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████████████░░░░░░░░ ▒▒▒▒▒▒▒▒ ████████ 44/48
░░░ ▒▒▒heading ███░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒ ███████████ 22/28
░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒ body ██████████▏ 16/24
░░░░░░░ ▒▒▒▒▒▒▒ caption ███████ 11/16
SAMPLE DATAWatch for: Sizes in one unit; bars compare size, not weight.
Contrast check
Checking colour pairs against WCAG 2 thresholds.
3 4.5 7 21:1
ink on paper ···░░░▒▒▒███····░░░░▒▒▒▒████···░░░▒▒▒███····░░░░▒▒▒▒████····░░░░▒▒▒▒████····░░░░▒▒▒▒████···░░░▒▒▒███····░░░░▒▒▒▒████····░░░░▒▒▒▒████····░░░░▒▒▒▒████··░░▒▒█▋··· AAA19.3:1 AAA
muted on paper ···░░░▒▒▒███···░░░▒▒▒██▌┊··┊····┊··························· fails2.7:1 fails
link on panel ···░░░▒▒▒███····░░░░▒▒▒▒████···░░░▒▒▒███····┊··························· AA5.0:1 AA
SAMPLE DATAWatch for: AA needs 4.5:1 for body text and 3:1 for large text and UI parts.
Palette
Showing a tonal scale: every step of each hue, with its contrast on the page.
Blue Red Green Grey
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 50 ██ #eef3ff 1.1 ██ #fff1ee 1.1 ██ #ecf8f1 1.1 ██ #f7f6f1 1.1
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 100 ██ #dbe6ff 1.3 ██ #ffdfd8 1.3 ██ #d3f0df 1.2 ██ #efede6 1.2
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 200 ██ #b7ccfb 1.6 ██ #fbbcae 1.6 ██ #a6dfbf 1.5 ██ #dcdad2 1.4
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 300 ██ #8eaaf2 2.3 ██ #f2917c 2.3 ██ #6fc799 2.0 ██ #c2c0b7 1.8
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 400 ██ #6487e6 3.4 ██ #e2664c 3.4 ██ #3fa875 3.0 ██ #a3a199 2.6
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 500 ▲ ██ #4269d6 5.0 ▲ ██ #c94a30 4.7 ██ #24895b 4.4 ██ #85837b 3.8
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 600 ██ #3152b8 6.9 ██ #a83a24 6.4 ▲ ██ #1b6e49 6.2 ▲ ██ #6b6a64 5.4
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 700 ██ #263f8f 9.6 ██ #842d1c 8.8 ██ #155538 8.8 ██ #504f4a 8.2
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 800 ██ #1c2d66 13.0 ██ #5e2014 12.4 ██ #0f3c28 12.4 ██ #33332f 12.7
░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ 900 ██ #121c40 16.6 ██ #3b140c 16.3 ██ #092519 16.3 ██ #151513 18.3
Contrast on the page, #ffffff. ▲ first step that reads as words: 4.5 to 1.
SAMPLE DATAWatch for: Steps must get steadily lighter or darker. Four hues fit in 80 cells; split a bigger palette into figures by family.
Colour roles
Saying what each colour is for, with its light and dark values and a contrast verdict.
role token light #f7f6f1 dark #0d0d0c
░░ ░░ ▒▒ ▒▒ AAAwords --gk-ink ██ #151513 16.9 ██ #f2f0e8 17.0 AAA
░░ ░░ ▒▒ ▒▒ AAsecondary --gk-muted ██ #6b6a64 5.0 ██ #9a988f 6.7 AA
░░ ░░ ▒▒ ▒▒ AAproblems --gk-flag ██ #651b13 11.3 ██ #dc7351 6.1 AA
░░ ░░ ▒▒ ▒▒ AApasses --gk-ok ██ #2f743e 5.3 ██ #89f1b5 14.2 AA
░░ ░░ ▒▒ ▒▒ okdata --gk-data ██ #151513 16.9 ██ #f2f0e8 17.0 ok
░░ ░░ ▒▒ ▒▒ oklines --gk-frame ██ #a3a199 2.4 ██ #5c5b56 2.9 ok
AAA Words need 4.5 to 1 (7 for AAA), marks 3, lines 1.5.Watch for: Say the use: words need 4.5 to 1, marks 3, lines 1.5. A colour that passes on light can fail on dark.
Component states
Which component states exist, are in progress or missing.
rest hover focus pressed disabled loading
primary ░░ ░░ ░░ ░░ ▒▒ ▒▒ ▒▒ ▒▒ ██ ██ ██ ██ ██ ▒▒ ░░
secondary ░░ ░░ ▒▒ ▒▒ ██ ██ ██ ▒▒ ░░ ░░
text ░░ ░░ ░░ ░░▒▒ ▒▒ ▒▒ ▒▒██ ██ ██ ██
░ ▒ █ done █ ▒ in progress ░ missing blank: doesn't apply
SAMPLE DATAWatch for: Blank means the state doesn't apply; missing is ░.
Layer stack
z-index and surface order.
░░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒▒dialog z 400 ████████████
░░░░░░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒dimmer z 300 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
░░░░░░░░░░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒card z 100 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
page z 0 ────────────────────────
SAMPLE DATAWatch for: Name what each layer is for, not just its number.
Token table
Listing tokens with their values and uses.
┌─────────────┬─────────┬────────────────────────────────┐
│ Token │ Value │ Use │
├─────────────┼─────────┼────────────────────────────────┤
│ ink │ #080808 │ text, borders, primary buttons │
│ paper │ #fbfbf8 │ page background │
│ signal-fail │ #b8421f │ errors only │
└─────────────┴─────────┴────────────────────────────────┘
SAMPLE DATAWatch for: Inside Markdown, a Markdown table is easier to edit.
Table
Tables in places without Markdown: terminals, code comments.
┌─────────┬───────────┬─────────┐
│ Name │ Min width │ Columns │
├─────────┼───────────┼─────────┤
│ phone │ 0 │ 4 │
│ tablet │ 700 │ 8 │
│ desktop │ 1180 │ 12 │
└─────────┴───────────┴─────────┘
SAMPLE DATAWatch for: In Markdown, use a Markdown table.