ZEROlobby
22/22 strict⌘Kvisitor
skip to main
v · 2026-05-10.1
skin
——:——:——zcovenant · audit
typography intelligence· contract v · 2026-05-10.1

typography is the interface

every casing decision, every punctuation mark, every numeral is a micro-decision about trust, cognition, and personality. the specification is deterministic — every rule is machine-checked at ci time, every surface inherits the same discipline.

type tester · live

type any string · pick a family · scrub the size · the brand types itself across the 16-token ladder, the 5 leadings, the 6 trackings, the 5 weights. every value is a token id, never an inline number.

type tester · live· three families · sixteen sizes · five leadings · six trackings · five weights · the brand types itselfserif48px · token 48
cockpit · covenant · cadence · receipts. watched live. refused often.
family
size · 48px · token 48
leading
tracking
weight
samples
size ladder · 16 tokenstap any rung to set the canvas size · the active size lights up
  • 1010px
  • 1111px
  • 1212px
  • 1313px
  • 1414px
  • 1515px
  • 1616px
  • 1818px
  • 2020px
  • 2424px
  • 2828px
  • 3232px
  • 4040px
  • 4848px
  • 6464px
  • 8080px
trade receipt
family
serif
size
48px · token 48
weight
400
tracking
0
leading
1.10
chars
69 typed
B · type scale16 sizes · 10 → 80px

every fontSize token · rendered

sixteen fontSize tokens compose the entire type ladder. anything outside this set fails the per-category ceiling check at ci. display sizes (32px and up) lead with semibold + tight leading; ui sizes use regular + relaxed leading.

plate · B · every fontSize · 16 cuts@zero/tokens
metric
fontSize_tokens
unit
tokens
window
static
agg
identity
source
packages/tokens/dist/tokens.ts · fontSize
fresh
last commit
fontSize.8080pxevery signed decision lands · 0123456789
fontSize.6464pxevery signed decision lands · 0123456789
fontSize.4848pxevery signed decision lands · 0123456789
fontSize.4040pxevery signed decision lands · 0123456789
fontSize.3232pxevery signed decision lands · 0123456789
fontSize.2828pxevery signed decision lands · 0123456789
fontSize.2424pxevery signed decision lands · 0123456789
fontSize.2020pxevery signed decision lands · 0123456789
fontSize.1818pxevery signed decision lands · 0123456789
fontSize.1616pxevery signed decision lands · 0123456789
fontSize.1515pxevery signed decision lands · 0123456789
fontSize.1414pxevery signed decision lands · 0123456789
fontSize.1313pxevery signed decision lands · 0123456789
fontSize.1212pxevery signed decision lands · 0123456789
fontSize.1111pxevery signed decision lands · 0123456789
fontSize.1010pxevery signed decision lands · 0123456789
every step of the ladder. the actual token name and pixel value are shown beside each specimen.
D · multiscriptlatin · cyrillic · cjk · numerals

one stack · four scripts

the --mono stack covers latin and cyrillic in jetbrains mono; cjk falls through the stack to the operating system mono. tabular numerics and slashed zero stay enforced across every script via font-variant-numeric.

plate · D · four scripts · same stack · same numeric discipline--mono
metric
script_specimens
unit
scripts
window
static
agg
identity
source
packages/tokens · fontFamily.mono
fresh
last commit
latinzero · cockpit · covenant · cadence · receipts · watched live · refused often
cyrillicноль · автономный капитал · отказано часто
cjk · fallback零 · 自律資本 · 監視され · 拒否される
numerals0123456789 · +0.42% · -1.18% · 264 gates · ◆ d3185f
row 1 latin · row 2 cyrillic · row 3 cjk fallback · row 4 numerals + symbols. tabular numerics survive every script.
rule
cyrillic and cjk product copy must obey every other rule on this page · sentence case in body, all-caps on eyebrows ≤ 3 words, tabular numerics in columns, oxford comma in lists of three.
01 · decision tablecasing · the first lookup

if-this · then-this · per rule

five branches resolve every casing question deterministically. sentence case is the default for 85% of all copy.

conditioncasenote
text inside a product UI (nav, button, label, form, table, chip, error)sentence
tiny meta label (≤3 words, ≥11px, eyebrow / column group / badge)uppercaseletter-spacing ≥ 0.08em
marketing headline (≤10 words) AND brand tone is formal or classictitleoptional · default still sentence
brand wordmark / logotype / intentional brand stylization (documented)anymust be documented
elsesentence
default
sentence case for everything in the product. headings included. multi-sentence error messages get periods; single-line labels never do.
02 · sentence85% of all copy

first word capitalized · rest lowercase

unless it is a proper noun. nav, buttons, labels, page titles, error toasts, ai output — all sentence case.

plate · A · correctship
  • Save changes
  • Create workspace
  • Email address
  • Recent activity
  • No results found
canonical product copy. zero ambiguity.
plate · B · incorrectreject
  • Save Changes
  • Create Workspace
  • Something Went Wrong
  • EMAIL ADDRESS
title case where it does not belong; all-caps on labels.
03 · title case≤12 words · marketing only

narrow window · capitalize substance

allowed for marketing headlines under twelve words. articles, short prepositions, and coordinating conjunctions stay lowercase. first and last word capitalized regardless.

exampleformnote
Design Intelligence for Everyonetitlemarketing headline
The Future of Interactive Brand Systemstitlemarketing headline
Building What Matters Mosttitlemarketing headline
The Future Of Interactive Brand Systemstitleprepositions / articles wrongly capped
design intelligence for everyonetitleprepositions / articles wrongly capped
never use title case for
buttons · nav items · form labels · multi-line feature descriptions · text longer than 12 words · body copy · ai output.
04 · ALL CAPS≤3 words · ≥11px · letter-spaced

structural meta-labels only

section eyebrows, badges, status tags, period labels. never on buttons, never on errors, never on body text.

OVERVIEWBETALIVEQ3 2026NEWPROOFFUNNEL
forbidden
SAVE CHANGES · SOMETHING WENT WRONG ·THIS FEATURE ALLOWS YOU TO… — all-caps on a button, an error, or body text degrades trust silently.
05 · lowercasezero brand voice · documented

documented brand stylization

lowercase is reserved for brand wordmarks and intentional voice moments. zero is one of the documented brands: the wordmark, the surfaces, the tone — all lowercase. signals restraint and machine-readability.

documented brandlowercase formexception
zerozerobrand wordmark
getzero.devgetzero.devbrand wordmark
zero-universezero-universebrand wordmark
proper nounsHyperliquid · Telegram · Web3 · JavaScriptcapitalized inside body copy
structural capsOBSERVE · DECIDE · REFUSE · LIVEeyebrows ≤3 words override the lowercase rule
06 · periodfull stops · when and when not

single line · no period

full sentences in body copy take periods. multi-sentence errors and helper text take periods. single-line ui labels, headings, placeholders — no period.

plate · C · use a periodfull sentences
  • body copy with full sentences
  • multi-sentence error / warning messages
  • tooltip or helper text containing a full sentence
plate · D · omit the periodui labels
  • single-line UI labels (button text, form labels, nav items, chips, tags)
  • single-sentence notifications or toasts
  • headings and subheadings
  • table column headers and non-sentence list items
  • placeholder text
07 · oxford commanon-negotiable

in every list of three or more

the serial comma prevents ambiguity. it is the standard for product, editorial, and marketing copy alike. two-item lists never take a comma.

 Your plan includes storage, team access, and priority support.
 Your plan includes storage, team access and priority support.
 Create and share.
 Create, and share.
08 · dasheshyphen · en · em

three glyphs · three jobs · zero overlap

the hyphen joins words. the en dash spans ranges. the em dash breaks thought. chicago em dash takes no spaces.

glyphcharacteruseexample
hyphen-compound modifiers · compound nounsAI-generated content
en dashnumber / date / time rangesActive Monday–Friday
em dashbreak in thought · amplification · parentheticalThree things matter—speed, accuracy, and trust.
chicago em dash
no spaces on either side. word—word · never word — word · never word - word.
09 · numeralstabular · slashed-zero

digits stack · per column

tabular-nums slashed-zero everywhere digits appear in columns. comma thousands · period decimals · no space before % or $.

rulevalue
tabular Always use tabular-nums slashed-zero in tables, prices, timestamps, percentages, sparklines, and any column where digits stack.
thousands comma (84,312)
decimals period (1.42%)
percent no space (1.42%, not 1.42 %)
currency no space ($184.21, not $ 184.21)
10 · ci gatemachine-checked · every commit

the contract is enforced · not aspired to

scripts/check-typography.mjs walks every surface file before any deploy. eight checks, three severity levels, non-zero exit on any error.

check
no straight ' or " inside JSX text — use curly quotes
no double-hyphen ' -- ' — use em dash
no spaced em dash ' — ' — use Chicago no-space style
no Title Case On Long Headings (>12 words)
no missing Oxford comma in lists of 3+ ('a, b and c' should be 'a, b, and c')
no period on h1/h2/h3 headings
no exclamation point in error / warning copy
ALL CAPS chips warn if >3 words
enforcement
wired into pnpm run ci:typography and pnpm run ci:all. the gate must be green before any commit lands on main.