font-weight
Quick Summary for font-weight
The font-weight CSS property sets the weight (or boldness) of the font. The weights available depend on the font-family that is currently set.
Code Usage for font-weight
/* Keyword values */ font-weight: normal; font-weight: bold;  /* Keyword values relative to the parent */ font-weight: lighter; font-weight: bolder;  /* Numeric keyword values */ font-weight: 100; font-weight: 200; font-weight: 300; font-weight: 400;// normal font-weight: 500; font-weight: 600; font-weight: 700;// bold font-weight: 800; font-weight: 900;  /* Global values */ font-weight: inherit; font-weight: initial; font-weight: revert; font-weight: unset; 
More Details for font-weight

font-weight

The font-weight CSS property sets the weight (or boldness) of the font. The weights available depend on the font-family that is currently set.

Syntax

/* Keyword values */ font-weight: normal; font-weight: bold;  /* Keyword values relative to the parent */ font-weight: lighter; font-weight: bolder;  /* Numeric keyword values */ font-weight: 100; font-weight: 200; font-weight: 300; font-weight: 400;// normal font-weight: 500; font-weight: 600; font-weight: 700;// bold font-weight: 800; font-weight: 900;  /* Global values */ font-weight: inherit; font-weight: initial; font-weight: revert; font-weight: unset; 

The font-weight property is specified using any one of the values listed below.

Values

normal

Normal font weight. Same as 400.

bold

Bold font weight. Same as 700.

lighter

One relative font weight lighter than the parent element. Note that only four font weights are considered for relative weight calculation; see the Meaning of relative weights section below.

bolder

One relative font weight heavier than the parent element. Note that only four font weights are considered for relative weight calculation; see the Meaning of relative weights section below.

<number>

A <number> value between 1 and 1000, inclusive. Higher numbers represent weights that are bolder than (or as bold as) lower numbers. Certain commonly used values correspond to common weight names, as described in the Common weight name mapping section below.

In earlier versions of the font-weight specification, the property accepts only keyword values and the numeric values 100, 200, 300, 400, 500, 600, 700, 800, and 900; non-variable fonts can only really make use of these set values, although fine-grained values (e.g. 451) will be translated to one of these values for non-variable fonts using the Fallback weights system.

CSS Fonts Level 4 extends the syntax to accept any number between 1 and 1000 and introduces Variable fonts, which can make use of this much finer-grained range of font weights.

Fallback weights

If the exact weight given is unavailable, then the following rule is used to determine the weight actually rendered:

If the target weight given is between 400 and 500 inclusive: Look for available weights between the target and 500, in ascending order. If no match is found, look for available weights less than the target, in descending order. If no match is found, look for available weights greater than 500, in ascending order. If a weight less than 400 is given, look for available weights less than the target, in descending order. If no match is found, look for available weights greater than the target, in ascending order. If a weight greater than 500 is given, look for available weights greater than the target, in ascending order. If no match is found, look for available weights less than the target, in descending order.

Meaning of relative weights

When lighter or bolder is specified, the below chart shows how the absolute font weight of the element is determined.

Note that when using relative weights, only four font weights are considered — thin (100), normal (400), bold (700), and heavy (900). If a font-family has more weights available, they are ignored for the purposes of relative weight calculation.

Inherited value bolder lighter
100 400 100
200 400 100
300 400 100
400 700 100
500 700 100
600 900 400
700 900 400
800 900 700
900 900 700

Common weight name mapping

The numerical values 100 to 900 roughly correspond to the following common weight names (see the OpenType specification):

Value Common weight name
100 Thin (Hairline)
200 Extra Light (Ultra Light)
300 Light
400 Normal (Regular)
500 Medium
600 Semi Bold (Demi Bold)
700 Bold
800 Extra Bold (Ultra Bold)
900 Black (Heavy)
950 Extra Black (Ultra Black)

Variable fonts

Most fonts have a particular weight which corresponds to one of the numbers in Common weight name mapping. However some fonts, called variable fonts, can support a range of weights with a more or less fine granularity, and this can give the designer a much closer degree of control over the chosen weight.

For TrueType or OpenType variable fonts, the "wght" variation is used to implement varying widths.

Note: For the example below to work, you'll need a browser that supports the CSS Fonts Level 4 syntax in which font-weight can be any number between 1 and 1000. The demo loads with font-weight: 500;. Change the value to see the weight of the text change.

Accessibility concerns

People experiencing low vision conditions may have difficulty reading text set with a font-weight value of 100 (Thin/Hairline) or 200 (Extra Light), especially if the font has a low contrast color ratio.

MDN Understanding WCAG, Guideline 1.4 explanations Understanding Success Criterion 1.4.8 | W3C Understanding WCAG 2.0

Formal definition

Initial valuenormal
Applies toall elements. It also applies to ::first-letter and ::first-line.
Inheritedyes
Computed valuethe keyword or the numerical value as specified, with bolder and lighter transformed to the real value
Animation typea font weight

Formal syntax

<font-weight-absolute> | bolder | lighter

where <font-weight-absolute> = normal | bold | <number [1,1000]>

Examples

Setting font weights

HTML
<p>   Alice was beginning to get very tired of sitting by her sister on the   bank, and of having nothing to do: once or twice she had peeped into the   book her sister was reading, but it had no pictures or conversations in   it, "and what is the use of a book," thought Alice "without pictures or   conversations?" </p>  <div>I'm heavy<br/>   <span>I'm lighter</span> </div> 
CSS
/* Set paragraph text to be bold. */ p {   font-weight: bold; }  /* Set div text to two steps heavier than    normal but less than a standard bold. */ div {  font-weight: 600; }  /* Set span text to be one step lighter    than its parent. */ span {   font-weight: lighter; } 
Result

Specifications

Specification
CSS Fonts Module Level 4 # font-weight-prop

See Also

font-style font-family Fundamental text and font styling

Last modified: Feb 7, 2022, by MDN contributors

Select your preferred language English (US)DeutschEspañolFrançais日本語한국어PolskiPortuguês (do Brasil)Русский中文 (简体) Change language

No Items Found.

Add Comment
Type in a Nick Name here
 
Other Categories in CSS
css
Search CSS
Search CSS by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

Subscribe to weekly updates about things i have added to the site or thought interesting during the last week.

You could also follow me on twitter or not... does anyone even use twitter anymore?

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote


Random CSS Property

border-image-repeat

The border-image-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's border image.
border-image-repeat css reference