# unifont: every font CDN, one lookup

> unifont reads font metadata from Google Fonts, Bunny Fonts, Fontshare, Fontsource, Google Icons and npm through one interface.

`unifont` is an open-source JavaScript library for reading font metadata from font CDNs: weights, styles, subsets, unicode ranges and `@font-face` data, in the same shape for every provider. It runs in Node, Bun, Deno, workers and the browser, and it is what [`@nuxt/fonts`](https://fonts.nuxt.com) and [`fontless`](https://github.com/unjs/fontaine/tree/main/packages/fontless) use underneath.

unifont.dev is the project site: a catalogue of every family the providers will list, a specimen and metadata page per family, a provider comparison, the documentation, and a public HTTP API that every page here is built on.

## Install

```bash
npm install unifont
```

```ts
import { createUnifont, providers } from 'unifont'

const unifont = await createUnifont([
  providers.google(),
  providers.fontshare(),
])

await unifont.getFontProperties('Switzer')
```

## Providers

Google Fonts, Bunny Fonts, Fontshare, Fontsource, Google Icons, npm, and Adobe Fonts (with a Typekit project id).

## Where to go next

- [Catalogue](/fonts): every family the providers will list, searchable and filterable by provider.
- [Compare](/compare): the same family asked of every provider, side by side.
- [Documentation](/docs): install it, resolve a family, cache the results, write your own provider.
- [HTTP API](/api): the public endpoints behind every page, plus an MCP server at `/mcp`.
- [About](/about), [Contact](/contact), [Privacy](/privacy).
- [Machine-readable index](/llms.txt), [OpenAPI specification](/openapi.json), [sitemap](/sitemap.xml).
