Extract a Website Typography System from a URL

Turn a website reference into a practical typography checklist with font families, roles, weights, sizes, and spacing decisions you can reuse.

website typography system extractor from url

The fastest way to extract a website typography system from a URL is to record each font family, where it appears, its weights, and the size and spacing rules around it. Then separate confirmed observations from decisions you still need to verify, so you can reuse the pattern without pretending you own the original site's internal design system.

Use this extraction method

Work through the page in this order:

  1. List every font family. Record the family name and whether it is used for interface text, headings, code, or editorial accents.
  2. Map each role. Note where the font appears: navigation, buttons, labels, body copy, large headings, numbers, code, or quotes.
  3. Capture the type scale. Check the largest heading, supporting heading, body copy, small labels, and any caption or metadata text.
  4. Record weights and line heights. A system often gets its character from weight and spacing as much as from the family itself.
  5. Check responsive changes. Compare the same heading or section at desktop and mobile widths if both views are available.
  6. Write implementation-ready values. Convert observations into names such as font-body, font-display, text-lg, leading-tight, and weight-medium.

The examples below are useful references for this process. The captured Linear page lists Inter Variable, Berkeley Mono, and Tiempos Headline, with Inter Variable as the primary sans serif, Berkeley Mono as a supporting monospace face, and Tiempos Headline as an occasional editorial display face. Treat those as observed examples to compare, not as a universal recipe.

Captured pages

Fonts captured on linear.app

Build a useful typography inventory

Use a table like this while checking a page:

RoleFamilyWeightSizeLine heightWhere it appears
BodyInter Variable40016px24pxParagraphs and controls
HeadingInter Variable500 or 60032-64px1.05-1.15Page and section headings
CodeBerkeley Mono40013-14px1.4-1.6Code or technical labels
DisplayTiempos HeadlineVerifyVerifyVerifyEditorial or campaign moments

Do not fill unknown values with guesses. Mark them as "verify" and check another section, a smaller viewport, or the loaded font files. A family name alone is not enough to reproduce the look. You also need the chosen weight, letter spacing, line height, casing, and the amount of space before and after the text.

Turn observations into decisions

For a new product, start with the smallest system that covers the page: one body family, one display option if the brand needs contrast, and one monospace family only if code or technical content needs it. Define a short scale rather than choosing every size independently. For example, use a small label, body, lead, section heading, page heading, and display heading, then adjust only where the content demands it.

Check the result with three practical tests:

  • Can a visitor scan navigation and controls quickly?
  • Does body copy remain comfortable across the longest paragraph?
  • Do headings still create a clear hierarchy when their wording changes?

A typography extractor should return observations you can inspect and a checklist you can implement. It should not be treated as proof of the source site's private values, licensing terms, or complete design system.

Use this in your AI agent

> Inspect the captured website reference and extract its observed typography system. Return every visible font family, its likely role, observed weights, sizes, line heights, casing, and letter spacing. Separate confirmed observations from values that need verification. Then propose a compact implementation table for body, headings, labels, code, and display text without claiming access to the site's internal design system. Compare the result with the Linear typography example below and explain which choices are reusable patterns versus page-specific details.

Install Fudge for your AI agent

What should I ask an AI agent to check when two fonts look similar on a website?

Ask it to compare the actual role and rendering context, not just the family names. A useful prompt should request the font family, loaded variant, weight, size, line height, letter spacing, casing, and the text sample where each font appears.

Then ask for a side-by-side comparison of the most similar candidates across the same words. Include a heading, a paragraph, a compact label, and a numeric value if those appear on the page. Similar sans-serif families can feel different because of x-height, width, stroke contrast, numeral shapes, and default spacing.

Also ask the agent to separate "exactly identified" from "visually similar" and to explain what evidence supports each conclusion. If the page uses a variable font, check whether the observed weight is a named instance or a value on a continuous axis. Finally, ask whether the candidate is used consistently across the page or only in one campaign section. That prevents a decorative display face from being mistaken for the site's main interface font.

How do I turn an extracted typography system into CSS tokens?

Start with roles rather than raw selectors. Define values for the body family, display family, monospace family, weights, type sizes, line heights, and tracking. Keep the names stable even if you later change the chosen family.

Replace the values with observations from the page, and label uncertain values in your notes. Test the values with real content, especially long headings, buttons, and paragraphs. If an editorial face appears only occasionally, keep it as an explicit display role rather than assigning it to every heading. This preserves the visual contrast without making the whole interface harder to scan.