ubuwaits/beautiful-web-type

In-depth guide to the best open-source typefaces: https://www.beautifulwebtype.com

HTML

7,341

492 commits

updated Oct 8, 2026

See the code

README

Beautiful Web Type

In October 2018 I released a completely re-thought and re-designed version of this project. The new version aims to provide a complete look at each typeface, cataloging all the available weights and styles, the full glyph set, the kerning quality, OpenType features, recommended pairings and more. I will highlight only typefaces that show a high level of quality.

The original version of the site is archived here: https://beautifulwebtype.com/v1/

Changelog

20 Mar 2026

  • Removed Jost, as the creator now charges for the variable font.

06 Jun 2025

05 Jun 2025

23 Oct 2023

8 Apr 2023

22 Nov 2020

  • Added Fraunces.
  • Added pairing example for Fraunces and Libre Franklin.
  • Added pairing example for Messapia and Inter.

Read full Changelog

All typefaces are licensed under the SIL Open Font License.

Suggesting Typefaces

I'm happy to receive suggestions for typefaces via a GitHub issue. When sending suggestions please include an example or two of the typeface in use. This helps me to make an initial evaluation of the typeface.

Local development

Install dependencies and start the Next.js dev server:

pnpm install
pnpm dev

Useful commands:

pnpm build
pnpm test

Content authoring

The site's authored content lives in content/.

Add a typeface

Create content/typefaces/<slug>/ with:

  • meta.yml
  • detail.html
  • sample.html
  • glyphs.yml

meta.yml holds the typeface metadata used by the app, including name, dateAdded, category, styles, weights, latestRelease, projectUrl, creator, description, and optional fields like gFontsUrl, italic, smallcap, sampleText, sampleClasses, familyFaces, and comparisonFaces.

detail.html is the trusted HTML fragment rendered on the typeface detail page.

sample.html is retained as authored specimen source content. Listing cards and the top specimen on detail pages use shared specimen copy from content/site/text.yml, unless a typeface overrides it with sampleText in meta.yml.

sampleClasses can be used for per-typeface Tailwind overrides on the specimen stage. Quote the string when using responsive variants or arbitrary properties, for example:

sampleText: "Sharp & Quiet"
sampleClasses: "[--sample-fit-width:0.78] tracking-tight text-[#b42318] md:[--sample-fit-width:0.82]"

For OpenType features, use Tailwind arbitrary properties rather than font-features-*. For example, small caps should be:

sampleClasses: "[font-feature-settings:'smcp']"

glyphs.yml must include:

fontFile: /assets/fonts/example/example.woff

Add a pairing

Create content/pairings/<slug>/ with:

  • meta.yml
  • sample.html

meta.yml must include name, dateAdded, typefaces, and optional sampleShade.

sample.html is the trusted HTML fragment rendered on pairing cards.

Shared site text

content/site/text.yml holds the shared specimen copy plus the reusable words, headlines, and paragraphs arrays used across specimen pages.

font
fonts
google-fonts
typeface
typography
webfonts

ubuwaits/beautiful-web-type

In-depth guide to the best open-source typefaces: https://www.beautifulwebtype.com

HTML

7,341

492 commits

updated Oct 8, 2026

See the code

README

Beautiful Web Type

In October 2018 I released a completely re-thought and re-designed version of this project. The new version aims to provide a complete look at each typeface, cataloging all the available weights and styles, the full glyph set, the kerning quality, OpenType features, recommended pairings and more. I will highlight only typefaces that show a high level of quality.

The original version of the site is archived here: https://beautifulwebtype.com/v1/

Changelog

20 Mar 2026

  • Removed Jost, as the creator now charges for the variable font.

06 Jun 2025

05 Jun 2025

23 Oct 2023

8 Apr 2023

22 Nov 2020

  • Added Fraunces.
  • Added pairing example for Fraunces and Libre Franklin.
  • Added pairing example for Messapia and Inter.

Read full Changelog

All typefaces are licensed under the SIL Open Font License.

Suggesting Typefaces

I'm happy to receive suggestions for typefaces via a GitHub issue. When sending suggestions please include an example or two of the typeface in use. This helps me to make an initial evaluation of the typeface.

Local development

Install dependencies and start the Next.js dev server:

pnpm install
pnpm dev

Useful commands:

pnpm build
pnpm test

Content authoring

The site's authored content lives in content/.

Add a typeface

Create content/typefaces/<slug>/ with:

  • meta.yml
  • detail.html
  • sample.html
  • glyphs.yml

meta.yml holds the typeface metadata used by the app, including name, dateAdded, category, styles, weights, latestRelease, projectUrl, creator, description, and optional fields like gFontsUrl, italic, smallcap, sampleText, sampleClasses, familyFaces, and comparisonFaces.

detail.html is the trusted HTML fragment rendered on the typeface detail page.

sample.html is retained as authored specimen source content. Listing cards and the top specimen on detail pages use shared specimen copy from content/site/text.yml, unless a typeface overrides it with sampleText in meta.yml.

sampleClasses can be used for per-typeface Tailwind overrides on the specimen stage. Quote the string when using responsive variants or arbitrary properties, for example:

sampleText: "Sharp & Quiet"
sampleClasses: "[--sample-fit-width:0.78] tracking-tight text-[#b42318] md:[--sample-fit-width:0.82]"

For OpenType features, use Tailwind arbitrary properties rather than font-features-*. For example, small caps should be:

sampleClasses: "[font-feature-settings:'smcp']"

glyphs.yml must include:

fontFile: /assets/fonts/example/example.woff

Add a pairing

Create content/pairings/<slug>/ with:

  • meta.yml
  • sample.html

meta.yml must include name, dateAdded, typefaces, and optional sampleShade.

sample.html is the trusted HTML fragment rendered on pairing cards.

Shared site text

content/site/text.yml holds the shared specimen copy plus the reusable words, headlines, and paragraphs arrays used across specimen pages.

font
fonts
google-fonts
typeface
typography
webfonts

Significant stargazers

(top 24 of 87)

Pascal Hertleif

970 followers · starred Jul 2015

Vincent Bernat

1,271 followers · starred Jan 2012

Sam Rawlins

184 followers · starred Jan 2012

Anton Medvedev

3,232 followers · starred Jun 2022