Skip to content We're live on Product Hunt today Upvote
install

diagnostic · one of 36 free, no counter

Font loading

Why is my font not loading?

A missing webfont does not throw. It falls back, the page looks nearly right, and on your machine it may look exactly right because you have the font installed. This compares what the page declared against what is being painted, and separates the two.

Reach it Press + K on any tab and type font loading. Ctrl + K on Windows and Linux

Which fonts arrived, which fell back, and which never loaded at all
reads @font-face and loaded faces
writes nothing
sends nothing
flags declared but never used
shows the fallback actually painted
plan free
section#about

What this actually is

When typography looks right locally and wrong in a screenshot from somebody else, and when a page flashes before settling. The local-copy case is the one worth running deliberately - it is invisible from the machine that has the font.

section#reference

Why a font does not appear

the file failed
a 404, a CORS refusal, or a MIME type the browser will not accept as a font
the range excluded it
a unicode-range that does not cover the characters on the page
nothing requested it
declared, downloaded by nothing, because no rule names that family
the weight does not exist
a 600 asked of a family shipping 400 and 700 - the browser synthesises one
display: block, still swapping
the face is coming; what you are looking at is the block period
section#asked

Asked about this diagnostic

It says the font loaded and I can see it has not.

Then the element is not asking for it. Point at the text: the painted family is read from the element, not from the stylesheet, so a font-family overridden further down the cascade shows up here as a different answer.

Does it tell me the licence?

No, and nothing that reads a page can. It tells you the family, the file and the origin it came from, which is what you need to go and look the licence up.

Why is my variable font loading twice?

Usually two declarations of the same family with different unicode-range values, which is correct, or the same file declared under two names, which is not. Both are visible in the first pass.

how to use font loading

  1. Open Font loading on the page whose typography looks wrong somewhere else.
  2. Read what was declared against what is being painted right now.
  3. Check the flagged rows: declared but never used, and the fallback actually on screen.
  4. The painted fallback is the answer when type looks right here and wrong in somebody else's screenshot.

written about at length