This article continues what was being discussed in the previous post

Licensing isn’t the filter here. Every family in the Google Fonts library is released under an open-source licence, mostly the SIL Open Font License, and is free for commercial use in websites, apps, print, logos and client work with no fees. The catalog currently holds around 1,911 families — 705 sans-serif, 343 serif, 464 display, 348 handwriting and 51 monospace. All of them are “safe” in the legal sense. So the useful question for your exporter isn’t which ones you’re allowed to use, it’s which ones will actually resolve.

The two things that break an export

A family name that isn’t in the catalog produces a stylesheet URL that 404s, and the browser silently falls back. And a weight that family doesn’t publish gets synthesised into a fake bold or oblique, which looks subtly wrong rather than obviously broken. Both fail quietly, which is the worst kind.

So don’t hardcode a list in assets.js. The catalog grows every year, and a stale list will reject fonts that now exist. The Developer API returns every family with its variants and subsets as JSON, though it requires an API key. The unfiltered response is about 1.5 MB. Since UXP plugins can’t reasonably ship a key, the sane pattern is to generate a name+variants list at build time from that endpoint (or from the google/fonts GitHub repo, which needs no key) and bundle it. Then buildGoogleFontsUrl checks the family against it and only requests weights that exist.

The Adobe Fonts trap

This is the one that’ll bite an InDesign exporter hardest. Fonts activated through Adobe Fonts — Myriad Pro, Minion Pro, Trajan, Proxima Nova, Brandon Grotesque and so on — are licensed for sync, not for redistribution or web serving. They aren’t on Google Fonts and you can’t embed them either. Only three Adobe families crossed over: Source Sans 3, Source Serif 4 and Source Code Pro.

Metric-compatible substitutes — the most valuable ones for you, because line breaks land in the same place

InDesign font

Google Fonts

Notes

Arial

Arimo

Croscore

Times New Roman

Tinos

Croscore

Courier New

Cousine

Croscore

Calibri

Carlito

derived from Lato, metric-compatible with Calibri

Cambria

Caladea

crosextra pair with Carlito

Carlito’s match isn’t perfect — there’s an open issue where a word fitting a Calibri text box wraps to the next line under Carlito — so it’s close, not exact.

Common design substitutions

InDesign / Adobe

Google Fonts

Helvetica, Helvetica Neue

Inter, Archivo, Work Sans

Myriad Pro, Frutiger

Source Sans 3, Open Sans, Noto Sans

Minion Pro

Source Serif 4, Crimson Pro

Futura

Jost, Poppins

Avenir, Avenir Next

Nunito Sans, Jost

Gill Sans

Cabin, Lato

Garamond

EB Garamond, Cormorant Garamond

Caslon

Libre Caslon Text

Baskerville

Libre Baskerville

Bodoni, Didot

Bodoni Moda, Playfair Display

Trajan

Cinzel

Franklin Gothic

Libre Franklin

Rockwell, Clarendon

Zilla Slab, Roboto Slab, Bitter

Impact

Anton

Helvetica Neue Condensed

Archivo Narrow, Roboto Condensed

Families I’d trust without checking, because they’re long-established, carry a full weight range with real italics, and won’t be renamed: Roboto, Open Sans, Lato, Montserrat, Inter, Poppins, Raleway, Nunito, Nunito Sans, Work Sans, Rubik, Karla, Mulish, Manrope, DM Sans, Noto Sans, Source Sans 3, Merriweather, Playfair Display, Lora, PT Serif, Libre Baskerville, EB Garamond, Source Serif 4, Roboto Slab, Bitter, Roboto Mono, JetBrains Mono, Fira Code, IBM Plex Sans, IBM Plex Serif, IBM Plex Mono, Space Grotesk, Oswald, Anton, Archivo.

One caution on the display and handwriting categories, which are more than 40% of the library: a great many are single-weight. If your exporter maps an InDesign bold to wght@700 on one of those, you’ll get a synthesised bold rather than the real thing. Reading the variants array from the catalog and requesting only what exists avoids it.

Shares:

Leave a Reply