Skip to main content

Typography

Readable, modern, open-source type for a calm desktop tool.


Families​

TokenFamilyRoleLicense
--jj-font-sansInter, ui-sans-serif, system-sansUISIL OFL 1.1
--jj-font-mono"JetBrains Mono", ui-monospace, monospaceLogs, code, pathsSIL OFL 1.1

Weights: 400 Regular, 500 Medium, 600 Semi-bold, 700 Bold.
Do not ship thin (100–300) UI text — fails calm readability.


Type ramp​

TokenSizeLine heightWeightLetter-spacingUse
--jj-text-display32px40px700-0.02emRare marketing / about
--jj-text-h132px40px700-0.02emApp title, landing hero in-app
--jj-text-h224px32px600-0.015emSection headers
--jj-text-h320px28px500-0.01emCard/modal titles
--jj-text-h416px24px6000Subsection / list group titles
--jj-text-body16px24px4000Main content, job descriptions
--jj-text-body-emphasis16px24px5000Emphasized body
--jj-text-small14px20px4000Meta, timestamps, labels
--jj-text-small-emphasis14px20px5000Compact button labels
--jj-text-tiny12px16px5000.01emBadges, privacy pill, overlines
--jj-text-code14px20px4000Mono blocks / logs
--jj-text-code-sm12px16px4000Dense log lines

Root: assume 16px browser/desktop default. Do not scale type purely with window zoom hacks — use RESPONSIVE.md density modes if needed.


Semantic text styles​

Style nameRamp tokenColor token
title.pageh1text-primary
title.sectionh2text-primary
title.panelh3text-primary
body.defaultbodytext-primary
body.metasmalltext-secondary
label.fieldsmall-emphasistext-secondary
code.logcodetext-primary on muted bg
badge.privacytinyprivacy-pill-fg

UI copy mechanics​

  • Sentence case for headings, buttons, toasts (see brand writing guide).
  • JobJitsu always cased correctly in UI strings.
  • Truncation: single-line ellipsis for list titles; dual-line max for descriptions in dense rows.
  • Tabular numbers for counts (font-variant-numeric: tabular-nums) in queue badges and weekly throw counts.

Rules​

  1. One primary sans — do not mix Inter with decorative display fonts in the app chrome.
  2. Metaphor stays in microcopy, not in oversized display type every screen.
  3. Minimum body text 14px in productive surfaces; prefer 16px for long job descriptions.
  4. Links use --jj-color-text-link plus underline or weight — color alone is insufficient.