CSS font-weight Property
Description
The font-weight property controls the perceived thickness or visual “weight” of glyphs in the chosen typeface, and therefore plays a central role in a page’s typographic voice and hierarchy. Changing weight can alter emphasis and readability without affecting font size or spacing directly; heavier weights tend to draw the eye and suggest stronger emphasis, while lighter weights can appear more delicate or formal. Because different typefaces are designed with different weight families, selecting a weight can also cause the browser to pick a different face from the same family, which may subtly change metrics and overall appearance — this makes weight an essential tool when working alongside the font-family property and with font variants like italic or oblique set via font-style.
Under the cascade and inheritance model, font-weight is inherited by descendants unless explicitly overridden, so a single declaration can establish a base tone for a whole section of content. When the exact weight requested is not available in the loaded fonts, user agents will either synthesize an approximation (for example by algorithmically emboldening strokes) or select the nearest available face; that fallback behavior can change glyph metrics and trigger reflow. Variable fonts introduce a continuous weight axis that lets the browser interpolate intermediate designs; this can be combined with font-variation-settings to fine-tune the appearance, while related axes such as width or optical size are controlled separately (for example via font-stretch).
Practical use of font-weight should balance visual hierarchy, legibility, and performance. Over-reliance on multiple distinct weights can increase the number of font files a page must load, so designers often pick a small palette of weights for headings, body text, and accents to maintain consistency and reduce network cost. Accessibility considerations matter too: extreme contrast between very light and very heavy weights can reduce legibility for some readers, and weight interacts with spacing and line metrics (so adjust line-height and letter spacing when necessary). Thoughtful application of weight, combined with family choice and variation axes, enables nuanced typographic systems without changing layout or size.
Definition
- Initial value
- normal
- Applies to
- All elements
- Inherited
- Yes
- Computed value
- Numeric weight value
- Animatable
- Yes
- JavaScript syntax
- object.style.fontWeight
Interactive Demo
Syntax
font-weight: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
Values
- normalNormal font weight. Same as 400.
- boldBold font weight. Same as 700.
- bolderSpecifies a bolder weight than the inherited value.
- lighterSpecifies a lighter weight than the inherited value.
- 100, 200, 300, 400, 500, 600, 700, 800, 900Numeric font weights for fonts that provide more than just normal and bold. If the exact weight given is unavailable, a face with a nearby weight is used.
- inherit
Example
Browser Support
The following information will show you the current browser support for the CSS font-weight property. Hover over a browser icon to see the version that first introduced support for this CSS property.
This property is supported by all modern browsers.
Desktop
Tablets & Mobile
Last updated by CSSPortal on: 1st January 2026
