--- title: font-weight slug: Web/CSS/font-weight translation_of: Web/CSS/font-weight ---
{{CSSRef}}

The font-weight CSS property specifies the weight (or boldness) of the font. The font weights available to you will depend on the {{cssxref("font-family")}} you are using. Some fonts are only available in normal and bold.

{{EmbedInteractiveExample("pages/css/font-weight.html")}}

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;
font-weight: 500;
font-weight: 600;
font-weight: 700;
font-weight: 800;
font-weight: 900;

/* Global values */
font-weight: inherit;
font-weight: initial;
font-weight: unset;

The font-weight property is specified using a single keyword value from the list below.

Values

normal
Normal font weight. Same as 400.
bold
Bold font weight. Same as 700.
lighter
One font weight lighter than the parent element (among the available weights of the font).
bolder
One font weight heavier than the parent element (among the available weights of the font).
100, 200, 300, 400, 500, 600, 700, 800, 900
Numeric font weights for fonts that provide more than just normal and bold.

Fallback weights

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

This means that for fonts that provide only normal and bold100-500 are normal, and 600-900 are bold.

Meaning of relative weights

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

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:

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)

Interpolation

A font-weight value is interpolated via discrete steps (multiples of 100). The interpolation happens in real number space and is converted to an integer by rounding to the nearest multiple of 100, with values halfway between multiples of 100 rounded towards positive infinity.

Formal syntax

{{csssyntax}}

Examples

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

{{EmbedLiveSample("Examples","400","300")}}

Specifications

Specification Status Comment
{{SpecName('CSS3 Fonts', '#font-weight-prop', 'font-weight')}} {{Spec2('CSS3 Fonts')}} No change.
{{SpecName('CSS3 Transitions', '#animatable-css', 'font-weight')}} {{Spec2('CSS3 Transitions')}} Defines font-weight as animatable.
{{SpecName('CSS2.1', 'fonts.html#propdef-font-weight', 'font-weight')}} {{Spec2('CSS2.1')}} No change.
{{SpecName('CSS1', '#font-weight', 'font-weight')}} {{Spec2('CSS1')}} Initial definition.

{{cssinfo}}

Browser compatibility

{{Compat("css.properties.font-weight")}}