Font Proof Documentation

How Font Proof Works

Font Proof is a native macOS app for creating font proofs — the typographic test documents that type designers use to evaluate their work in progress. The core idea is simple: what you see is what you get.

The Font Proof workspace — sidebar, proof viewer, and controls panel

Live PDF Rendering

Everything in Font Proof is rendered as a live PDF. The proof document is a real PDF that updates in real-time as you change settings, swap fonts, or edit content. This isn’t a web preview or a rough approximation — it’s the same CoreText rendering pipeline that produces the final exported PDF. What you see on screen is exactly what you’ll get in print.

The PDF viewer supports single page, two-page, and continuous scroll display modes with zoom from 10% to 1000%.

Document Structure

A Font Proof document (.fontproof) is a JSON file containing one or more sections. Each section has its own type (Basic, Waterfall, Glyph Grid, etc.), its own text content, and its own independent typography settings. Sections are displayed sequentially in the proof, and each section generates one or more pages depending on content length and the “overflow to multiple pages” setting.

Fonts are selected at the document level and shared across sections. By default, each section renders a separate page for each selected font. Sections can override this with per-section font selection, font disabling, or inline font mixing.

Page layout (dimensions, margins, header position) is set at the document level. Dozens of presets are available (Letter, A4, device screens, etc.) or you can specify custom dimensions.

The Workflow

  1. Create a new document or use a template
  2. Add fonts — from the system, imported files, or directly from Glyphs.app
  3. Add sections — choose a type, enter or link content, adjust typography
  4. The proof renders live as you work
  5. Export to PDF for print or markup

Font Proof is designed to stay open alongside your font editor. With Live Reload enabled, changes you make in Glyphs are reflected in the proof within seconds.


Live Glyphs Integration

Font Proof connects directly to Glyphs.app via a native Objective-C bridge. When you select a Glyphs font in Font Proof, the app exports and registers that instance in real-time.

Glyphs.app and Font Proof running side by side with Live Reload enabled
  • Monitors open Glyphs documents for changes (font edits, instance changes, document open/close)
  • Exports instances to a temp directory and registers them with CoreText
  • Tracks instances by index (not just name) to handle duplicate style names
  • Debounced reloads prevent redundant exports during rapid edits
  • Toggleable via “Live Reload” switch in toolbar
  • Supports “Install for Testing” fonts from Glyphs as a separate source

Type designers working in Glyphs can see their changes in a professional proof layout instantly, without exporting, installing, or refreshing anything.


Section Types

Font Proof documents are composed of sections. Each section has its own type, content, typography settings, and font selection.

Basic

Simple text layout. Content is rendered with the selected fonts, one page per font (or mixed via inline styling). Supports multi-page overflow, word wrap, and all typography controls.

A Basic section displaying paragraph text with VC Henrietta Regular

Waterfall

Size progression display. The same text is rendered at multiple point sizes in a single view. Default sizes: 8, 12, 18, 24, 32, 48, 72, 96pt. Sizes are fully customizable. Optional size labels and fixed column width for text wrapping.

Waterfall section showing "Hamburgefonts" at sizes from 8pt to 96pt

Columns & Rows

Grid layout with up to 6+ columns and multiple rows. Three content flow modes:

  • Continuous — text flows across all cells
  • Repeated — same text in every cell (for comparing typography settings)
  • Unique — different content per cell (via manual entry or linked files)

Per-cell typography: each cell can have its own font size, line height, letter spacing, alignment, text direction, orientation, and case transform. Supports cell merging for complex layouts.

Columns & Rows with per-cell letter spacing — tight, normal, and loose tracking side by side

Style Comparison

Side-by-side font/style comparison. Fonts are displayed in rows or columns. Dynamic column count calculated from content width. Intelligently paginates when fonts don’t fit on a single page.

Glyph Grid

Full character repertoire display. Shows every glyph in the font in a grid with:

  • Character name/Unicode code point labels below each glyph
  • Metric lines: baseline, x-height, cap-height, ascender, descender
  • Two metric line styles: individual (per-glyph) or continuous (reference lines)
  • Option to show all glyphs or only those present in the section content
Glyph Grid with metric lines showing the full character set

Markup

Frozen PDF snapshot with freehand annotation overlay. Captures a page as a static image, then allows drawing and text annotations on top.

  • Pen tool — freehand strokes with configurable width (1–20pt) and color
  • Text tool — click-to-place text boxes with size, bold, italic, and alignment controls
  • Select tool — for repositioning annotations
  • Undo support (Cmd+Z)
Markup editor with freehand annotations and a text comment on a proof page

Annotate proofs with design feedback — circle problem areas, note kerning issues, write revision comments directly on the proof.


Typography Controls

Every section type has access to these typography controls:

The controls panel — font size, line height, letter spacing, and alignment

Core Typography

  • Font size — spinner + text field input
  • Line height — multiplier (1.0–2.0 typical range)
  • Letter spacing — horizontal and vertical (in ems), separate controls for CJK vertical text
  • Paragraph spacing — space after paragraphs (in ems)
  • Word wrap — toggle on/off
  • Kerning — toggle on/off

Case Transforms

  • Unchanged, UPPERCASE, lowercase, Title Case
  • Scope control: Latin-only vs. all scripts (handles Turkish i, Greek sigma, etc.)

Alignment

  • Auto (script-aware — Arabic/Hebrew right-align, Latin left-aligns)
  • Start, Center, End, Justify

Text Direction & Orientation

  • Direction: auto (content-based detection), LTR, RTL
  • Orientation: auto, horizontal, vertical-left, vertical-right
  • Force upright in vertical: keeps Latin characters upright in CJK vertical text

Language & Script

  • Language tag support: auto-detect, Arabic, Farsi, Hebrew, Japanese, Korean, Simplified Chinese, Traditional Chinese, German, Turkish
  • Proper text shaping via CoreText for each language
  • Numeral systems: default, Arabic-Indic, Extended Arabic-Indic, Latin

OpenType Features

Comprehensive OpenType feature management with 70+ features organized by category:

OpenType feature toggles — per-font, per-section controls with feature descriptions
  • Ligatures: liga, dlig, clig, rlig, hlig
  • Numbers: lnum, onum, pnum, tnum, zero
  • Case & Capitalization: smcp, c2sc, pcap, c2pc, unic, case, cpsp, titl
  • Fractions & Math: frac, afrc, numr, dnom, sups, subs, sinf, ordn
  • Stylistic: salt, swsh, cswh, hist, aalt, rand, plus ss01–ss20 stylistic sets
  • Positioning: kern, vkrn, palt, halt, vpal, vhal
  • Language-Specific: locl, ccmp, isol, init, medi, fina
  • CJK: jp78, jp83, jp90, jp04, smpl, trad, ruby, vert, vrt2
  • Character Variants: cv01–cv99

Features are toggled per-font, per-section. The app parses the font’s OpenType tables to detect available features and displays custom feature names from the font’s name table.


Font Management

Font Sources

  1. System — all macOS installed fonts
  2. Glyphs — from open Glyphs.app documents (live reload capable)
  3. Test Install — fonts exported from Glyphs via “Install for Testing”
  4. Imported — manually imported .otf, .ttf, .ttc, .var files
Font picker showing system fonts, Glyphs fonts, and imported fonts

Variable Fonts

  • Axis detection and display (e.g., wght=500, wdth=75)
  • WWS name table integration (Name ID 21/22)
  • Per-instance axis presets from Glyphs

Font Sorting

  • Document order, manual, weight, alphabetical, date added
  • Per-section override with independent sort order
  • Ascending/descending direction

Per-Section Font Control

  • Disable specific fonts per section
  • Section-specific font override
  • Per-section font ordering
  • Solo mode: focus on a single font across all sections

Inline Styling & Font Mixing

Three modes for mixing fonts and styles within a single section:

Off (Default)

No tag processing. Each font gets its own page(s).

Auto Mode

Auto-distributes multiple fonts across text by weighted probability. Configurable per-font mix weights (e.g., 50% base font, 30% second, 20% third). Seeded random distribution for reproducible output. Useful for simulating real-world text with multiple weights.

Auto Mode distributing Regular, Medium, and Bold across body text

Manual Mode

Type <b>, <i>, <u> tags directly in content. Parser converts to font substitution (bold tag maps to bold weight, italic tag maps to italic style).


Linked Files

Section-Level Linking

Link external text files to any section. Content auto-refreshes when the file changes.

  • Supported formats: .txt, .rtf (rich text converted to inline tags), .md/.markdown
  • File watching: real-time monitoring with multiple fallback strategies
  • Atomic save detection: handles editors that write-then-rename

Per-Grid-Item Linking

In Columns & Rows sections, each grid cell can link to a different external file with independent file watchers.


PDF Export

Appearance Modes

  • Built-in: Light, Dark, Sepia, High Contrast
  • Custom modes: user-defined background/foreground colors
  • Per-document mode override
PDF appearance modes — Light, Dark, Sepia, and a custom color scheme

Page Dimensions

  • Paper presets: Letter, A4, A5, A6, Tabloid
  • Device presets: MacBook Air/Pro, iPad, iPhone, Desktop, Slides
  • Custom: arbitrary width and height
  • Margins: independent top, bottom, left, right

Headers

Section name, font name, and font size displayed at top or bottom of each page. Can be turned off.


Fit to Page

One-click optimization that calculates the optimal font size, line height, and letter spacing to fill a single page. Uses binary search with 0.5pt precision. Adapts its strategy for each section type.


Templates

Built-In Templates

Predefined proof setups organized by category:

  • Hamburgers: spacing tests (Ha/Hh/HH, Hamburgefonts)
  • Spacing: basic character sets, spacing tests
  • Pangrams: 8 variants
  • Kerning: I Ask Jeff, Kerning Trio, Furniture Characters
  • Diacritics: 26 language variants (Afrikaans through Turkish)
  • Script-specific: Greek, Cyrillic
Template picker with built-in proofing templates organized by category

Custom Templates

Save any section as a reusable template (.fps file). Star templates for quick access. Browse by category in the template picker.


MCP Server (AI Integration)

Font Proof includes a built-in MCP (Model Context Protocol) server that lets AI tools like Claude Code create and modify proofs programmatically.

How It Works

The MCP server (font-proof-mcp) is embedded in the app bundle. It creates and modifies .fontproof files directly — the app doesn’t need to be running. Results can be opened in Font Proof for instant live PDF rendering.

Setup

Claude Code — run this in your terminal:

claude mcp add font-proof /Applications/Font\ Proof.app/Contents/Helpers/font-proof-mcp

Claude Desktop — add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "font-proof": {
      "command": "/Applications/Font Proof.app/Contents/Helpers/font-proof-mcp"
    }
  }
}

You can also find these snippets in the app under Settings → AI Integration, with a one-click copy button.

Available Tools

Documents: create, open, read metadata, open in app, create complete proof with fonts and sections in one call.

Sections: add, update, delete, reorder, duplicate, bulk content update, modify all typography settings.

Fonts: add system fonts (with variable font axis support), remove fonts, enumerate installed fonts.

Glyphs: query open Glyphs 3 documents and instances, add Glyphs fonts to proofs.

Example Prompts

Once connected, try asking Claude things like:

Create a proof for Garamond with a waterfall, paragraph section, and full glyph grid
Build a Goldilocks tracking comparison — show the same paragraph at -0.02, 0, and 0.03em letter spacing
Make a multilingual proof comparing Latin, Greek, and Cyrillic side by side using Noto Sans
Create a proof from my open Glyphs file with all active instances, and add a section testing ss01 and ss02
Set up a body text proof at 10pt, 11pt, and 12pt with justified alignment to test readability

Zoom & Navigation

  • Zoom from 10% to 1000% with presets at 50%, 100%, 200%
  • Zoom to Fit
  • Section sidebar with optional thumbnails
  • Drag-to-reorder sections
  • Section right-click: rename, duplicate, delete, create from template

Keyboard Shortcuts

ShortcutAction
Cmd++ / Cmd+-Zoom in/out
Cmd+0Zoom to 100%
Cmd+ZUndo (markup)
Cmd+ReturnDone (markup)
EscapeCancel (markup)
Cmd+RRefresh fonts
V / P / TSelect / Pen / Text tool (markup)

System Requirements

  • macOS 14.6+ (Sonoma)
  • Glyphs 3 required for live Glyphs integration (optional)