# Free alternatives to Didot

Didot is a commercial didone serif from Linotype / Monotype; HTF Didot (https://www.myfonts.com/collections/linotype-didot-font-linotype). Commercial cuts (Linotype Didot, HTF Didot) licensed per foundry (Didot ships with macOS for desktop use only). The name is used only to identify the typeface; BrandSweets does not host or embed it. Below: the 8 closest free, open-licensed families, ranked by a published deterministic score (https://brandsweets.com/fonts/alternatives/methodology).

## Reference profile

- Slug: `didot`
- Also searched as: HTF Didot, Linotype Didot
- Category: serif · Class: didone
- Traits: elegant, luxury, high-contrast, editorial, refined
- Roles: display, heading
- Metrics: x-height 0.42, cap height 0.70, normal width, high contrast (approximate, publicly documented)
- Languages: latin, latin-ext · Variable: no
- Page: https://brandsweets.com/fonts/alternatives/didot

## Score

`score = 0.35·classification + 0.25·metrics + 0.20·traits + 0.10·useCase + 0.05·language + 0.05·variable`; every axis in [0, 1]. A family gate runs first: specialist families (blackletter, script, glyphic, stencil, monospace, pixel) only list same-family fonts; elsewhere a cross-family mismatch is capped at 0.2. Curated picks are listed first, then pure formula; ties break on popularity, then slug.

## Ranked alternatives

### 1. Playfair Display — 88% (curated)

- Slug: `playfair-display` · serif · OFL-1.1 · Claus Eggers Sørensen · static
- Page: https://brandsweets.com/fonts/playfair-display · font.md: https://brandsweets.com/fonts/playfair-display/font.md
- Why (curated): High-contrast display serif with Didot's hairlines and vertical stress.
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.78 — x-height 0.51 vs 0.42 for Didot (noticeably different); cap height 0.71 vs 0.70 for Didot (near-identical); both normal width; both high stroke contrast.
- Traits (×0.20): 0.67 — Shares editorial, elegant, high-contrast, luxury (4 of 6 traits).
- Role (×0.10): 1.00 — Both suit display, heading.
- Language (×0.05): 1.00 — Covers all of Didot's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

### 2. GFS Didot — 75% (curated)

- Slug: `gfs-didot` · serif · OFL-1.1 · static
- Page: https://brandsweets.com/fonts/gfs-didot · font.md: https://brandsweets.com/fonts/gfs-didot/font.md
- Why (curated): A direct Didot revival by the Greek Font Society.
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.90 — x-height 0.46 vs 0.42 for Didot (close); cap height 0.69 vs 0.70 for Didot (near-identical); both normal width; both high stroke contrast.
- Traits (×0.20): 0.40 — Shares elegant, high-contrast (2 of 5 traits).
- Role (×0.10): 0.25 — Both suit heading; GFS Didot is not tagged for display.
- Language (×0.05): 0.50 — Covers latin; lacks latin-ext.
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

### 3. Bodoni Moda — 75% (curated)

- Slug: `bodoni-moda` · serif · OFL-1.1 · Owen Earl · static
- Page: https://brandsweets.com/fonts/bodoni-moda · font.md: https://brandsweets.com/fonts/bodoni-moda/font.md
- Why (curated): Didone with optical sizes — Didot's hairline elegance at every size.
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.79 — x-height 0.46 vs 0.42 for Didot (close); cap height 0.75 vs 0.70 for Didot (noticeably different); both normal width; both high stroke contrast.
- Traits (×0.20): 0.40 — Shares elegant, high-contrast (2 of 5 traits).
- Role (×0.10): 0.25 — Both suit heading; Bodoni Moda is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Didot's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

### 4. DM Serif Display — 88%

- Slug: `dm-serif-display` · serif · OFL-1.1 · Colophon Foundry · static
- Page: https://brandsweets.com/fonts/dm-serif-display · font.md: https://brandsweets.com/fonts/dm-serif-display/font.md
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.77 — x-height 0.48 vs 0.42 for Didot (noticeably different); cap height 0.66 vs 0.70 for Didot (close); both normal width; both high stroke contrast.
- Traits (×0.20): 0.67 — Shares editorial, elegant, high-contrast, luxury (4 of 6 traits).
- Role (×0.10): 1.00 — Both suit display, heading.
- Language (×0.05): 1.00 — Covers all of Didot's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

### 5. Abril Fatface — 85%

- Slug: `abril-fatface` · display · OFL-1.1 · TypeTogether · static
- Page: https://brandsweets.com/fonts/abril-fatface · font.md: https://brandsweets.com/fonts/abril-fatface/font.md
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.88 — x-height 0.48 vs 0.42 for Didot (close); cap height 0.70 vs 0.70 for Didot (near-identical); both normal width; both high stroke contrast.
- Traits (×0.20): 0.67 — Shares editorial, elegant, high-contrast, luxury (4 of 6 traits).
- Role (×0.10): 0.50 — Both suit display; Abril Fatface is not tagged for heading.
- Language (×0.05): 1.00 — Covers all of Didot's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

### 6. Yeseva One — 84%

- Slug: `yeseva-one` · display · OFL-1.1 · static
- Page: https://brandsweets.com/fonts/yeseva-one · font.md: https://brandsweets.com/fonts/yeseva-one/font.md
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.83 — x-height 0.50 vs 0.42 for Didot (noticeably different); cap height 0.70 vs 0.70 for Didot (near-identical); both normal width; both high stroke contrast.
- Traits (×0.20): 0.40 — Shares elegant, high-contrast (2 of 5 traits).
- Role (×0.10): 1.00 — Both suit display, heading.
- Language (×0.05): 1.00 — Covers all of Didot's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

### 7. Gilda Display — 78%

- Slug: `gilda-display` · serif · OFL-1.1 · static
- Page: https://brandsweets.com/fonts/gilda-display · font.md: https://brandsweets.com/fonts/gilda-display/font.md
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.89 — x-height 0.47 vs 0.42 for Didot (close); cap height 0.70 vs 0.70 for Didot (near-identical); both normal width; both high stroke contrast.
- Traits (×0.20): 0.40 — Shares elegant, high-contrast (2 of 5 traits).
- Role (×0.10): 0.25 — Both suit heading; Gilda Display is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Didot's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

### 8. Old Standard TT — 77%

- Slug: `old-standard-tt` · serif · OFL-1.1 · static
- Page: https://brandsweets.com/fonts/old-standard-tt · font.md: https://brandsweets.com/fonts/old-standard-tt/font.md
- Classification (×0.35): 1.00 — Same class: didone.
- Metrics (×0.25): 0.90 — x-height 0.46 vs 0.42 for Didot (close); cap height 0.71 vs 0.70 for Didot (near-identical); both normal width; both high stroke contrast.
- Traits (×0.20): 0.33 — Shares elegant, high-contrast (2 of 6 traits).
- Role (×0.10): 0.25 — Both suit heading; Old Standard TT is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Didot's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Didot.
- Family gate: pass — Same family: serif.

## Self-host Playfair Display (woff2)

- 400 normal: https://fonts.brandsweets.com/playfair-display/playfair-display-400.woff2
- 500 normal: https://fonts.brandsweets.com/playfair-display/playfair-display-500.woff2
- 600 normal: https://fonts.brandsweets.com/playfair-display/playfair-display-600.woff2
- 700 normal: https://fonts.brandsweets.com/playfair-display/playfair-display-700.woff2
- 800 normal: https://fonts.brandsweets.com/playfair-display/playfair-display-800.woff2
- 900 normal: https://fonts.brandsweets.com/playfair-display/playfair-display-900.woff2
- 400 italic: https://fonts.brandsweets.com/playfair-display/playfair-display-400i.woff2
- 500 italic: https://fonts.brandsweets.com/playfair-display/playfair-display-500i.woff2
- 600 italic: https://fonts.brandsweets.com/playfair-display/playfair-display-600i.woff2
- 700 italic: https://fonts.brandsweets.com/playfair-display/playfair-display-700i.woff2
- 800 italic: https://fonts.brandsweets.com/playfair-display/playfair-display-800i.woff2
- 900 italic: https://fonts.brandsweets.com/playfair-display/playfair-display-900i.woff2

## Connect an agent

Point any MCP client at the BrandSweets fonts endpoint to get this list with scores, or search the catalog:

- Endpoint: https://mcp.brandsweets.com/fonts/mcp
- Tools: `find_alternatives` (e.g. `find_alternatives({ commercialFont: "didot", limit: 8 })`), `list_commercial_fonts`, `list_fonts`, `suggest_fonts`.
