Skip to content
KurdFonts

Webfont CSS API

Use any font in the library on your own website with one line of HTML. No account, no build step — just a stylesheet link that serves the same verified, subsetted web fonts the previews here use.

Quick start

Add a stylesheet link to your page's <head>. Every font page carries its own ready-made snippet, with the real name and current version — this is what one looks like:

<link rel="stylesheet"
  href="https://kurdfonts.net/css?family=rabar:wght@400;700&v=1a2b3c4">

Replace the slug and weights with a font's own — copy the exact snippet from its page under "Use on the web".

Use the font

Then set the family name in your CSS, exactly as shown on the font's page:

body {
  font-family: "Rabar", sans-serif;
}

Parameters

family
The font's slug, optionally with weights, as Slug:wght@400;700. Repeat the parameter to load more than one font at once.
display
How text shows while the font loads: swap (the default), block, fallback, optional, or auto. It maps straight to CSS font-display.
v
A version token. A pinned v is cached forever and never changes, so your site's fonts can't shift under you; a font's page always shows its current one.

Caching and versioning

A versioned URL — one with v — is immutable: cached for a year at the edge and in the browser. When a font is updated its version changes, so a freshly copied snippet loads the new files while pages using the old URL keep working, unchanged. Without v you always get the latest, cached only briefly.

What you can embed

Only published fonts whose licence permits web embedding are served. A font listed for discovery only returns no stylesheet. Archival fonts — published without a settled licence — are served, exactly as their download button is, and carry the same disclosure: we claim no licence for them, so check with the author before relying on one in production.

Privacy

We count how many sites embed each font, to show usage — but we never store your visitors' IP addresses, set no cookie, and rely on nothing about the embedding page. Because responses are cached at the edge, that number is a lower bound, not a tracker.