Why does font-weight: 600 look different across fonts or browsers?
Quick answer
font-weight: 600 requests a numeric weight, commonly called semibold, but it does not guarantee the same stroke thickness or letterforms in every font. The browser matches the request against the faces and weight ranges available for the selected family; an unavailable weight in a static font can be matched to another available face. Variable fonts can offer a range of weights, but the result still depends on the font file and its CSS declaration. [S1] [S2]
The question, the details, the next step.
A practical checklist
Confirm the rendered
font-familyis the intended family, not a fallback.List the static font faces or variable weight range actually available.
Make each
@font-faceweight declaration match its font file.Check whether a 600 request is matched to another available static face.
Compare the same text, size, family, and weight in the browsers you support.
A few more useful answers
Does `font-weight: 600` always mean semibold?
600 is commonly called semibold, but the label does not guarantee identical letterforms or stroke thickness across font families. [S1]
If I declare `font-weight: 300 700`, will every value look different?
No. A variable font can produce different weights within a declared range, but a static face may look the same at multiple values in that range. [S2]
Sources
References used for this guide.
- [S1] MDN: CSS font-weight values and fallback weight matching developer.mozilla.org · Checked
- [S2] MDN: Declaring font-weight ranges in @font-face developer.mozilla.org · Checked
