CSS Portal

CSS font-stretch Property

☕
Enjoying this site?

Help keep it running with a small coffee donation. Every bit of support is appreciated!

Buy us a coffee
font-stretch
CSS PropertyThis property is supported by all modern browsers.
Updated 1st January 2026

Description

The font-stretch property controls which width variant of a typeface the user agent should choose when rendering text. Rather than changing the weight, style, or size of glyphs, it influences selection from the available faces in a font family so that the chosen face is narrower or wider than the default face. When a family provides multiple width variants (or when a variable font exposes a width axis), font-stretch is used by the font selection algorithm to prefer the best match for the requested text, which in turn affects glyph shapes and horizontal spacing at the font-face level. Because it operates at the font selection stage, this property works together with the family you specify via font-family.

In practice the user agent considers font-stretch alongside other font-selection properties such as font-weight and font-style to pick the most appropriate face from the available sources. For variable fonts that expose a width axis, developers can use font-variation-settings (or the variable-font axis) to achieve continuous width tuning; in those cases font-stretch maps conceptually to the font’s width axis and the browser resolves the requested width by reading or synthesizing that axis from the variable data. If an exact width variant isn’t available, user agents will choose the nearest matching face or fall back to the family’s default, which means using font-stretch may produce different results depending on which font files are loaded.

Because changing the chosen face changes the underlying glyph outlines and metrics, font-stretch can have noticeable effects on layout and legibility. Wider or narrower faces alter character advance widths, word widths, and line breaks; they can also shift text alignment and wrapping behavior, potentially affecting vertical rhythm and the perceived density of text blocks. Designers should test combinations of width adjustments with font sizing and spacing - the visual effect of a width change may differ substantially at small vs. large sizes - so consider this when you plan responsive typography with font-size variations.

For practical use, rely on real font files to supply the intended width variants when consistency matters (webfonts or font collections that include condensed/expanded masters or a width axis). Be aware that in some environments the renderer might approximate a missing width by scaling a face horizontally, which can alter stroke contrast and degrade typographic quality, so always test across your target platforms. Finally, combining thoughtful use of width variants with complementary properties (weight, style, and variable-font settings) lets you target nuanced typographic effects - while keeping an eye on readability and layout stability across your content.

Definition

Initial value
normal
Applies to
All elements
Inherited
Yes
Computed value
As specified
Animatable
Yes
JavaScript syntax
object.style.fontStretch

Interactive Demo

The rusty swing set creaked a lonely lullaby in the twilight, shadows lengthening like grasping fingers across the dew-kissed grass. A lone dandelion seed, adrift on the breeze, whispered secrets of faraway fields, of dandelion suns and galaxies spun from fluff.

Syntax

font-stretch: normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded 

Values

  • normalSpecifies a normal font face.
  • ultra-condensedSpecifies a font face more condensed than normal, with ultra-condensed as the most condensed.
  • extra-condensedSpecifies a font face more condensed than normal, with ultra-condensed as the most condensed.
  • condensedSpecifies a font face more condensed than normal, with ultra-condensed as the most condensed.
  • semi-condensedSpecifies a font face more condensed than normal, with ultra-condensed as the most condensed.
  • semi-expandedSpecifies a font face more expanded than normal, with ultra-expanded as the most expanded.
  • expandedSpecifies a font face more expanded than normal, with ultra-expanded as the most expanded.
  • extra-expandedSpecifies a font face more expanded than normal, with ultra-expanded as the most expanded.
  • ultra-expandedSpecifies a font face more expanded than normal, with ultra-expanded as the most expanded.
  • inherit

Example

<div class="container">
<p class="ultra-condensed">Ultra Condensed (50%)</p>
<p class="extra-condensed">Extra Condensed (62.5%)</p>
<p class="condensed">Condensed (75%)</p>
<p class="semi-condensed">Semi Condensed (87.5%)</p>
<p class="normal">Normal (100%)</p>
<p class="semi-expanded">Semi Expanded (112.5%)</p>
<p class="expanded">Expanded (125%)</p>
<p class="extra-expanded">Extra Expanded (150%)</p>
<p class="ultra-expanded">Ultra Expanded (200%)</p>
</div>
/* We use a generic sans-serif, but font-stretch works best 
   with fonts like 'Roboto Flex' or 'Helvetica Now' */
.container {
  font-family: sans-serif;
  font-size: 1.5rem;
}

.ultra-condensed {
  font-stretch: ultra-condensed; /* or 50% */
}

.condensed {
  font-stretch: condensed; /* or 75% */
}

.normal {
  font-stretch: normal; /* 100% */
}

.expanded {
  font-stretch: expanded; /* or 125% */
}

.ultra-expanded {
  font-stretch: ultra-expanded; /* or 200% */
}
Open in editor

Browser Support

The following information will show you the current browser support for the CSS font-stretch 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

Chrome
Edge
Firefox
Opera
Safari

Tablets & Mobile

Chrome Android
Firefox Android
Opera Android
Safari iOS
Samsung Internet
Android WebView
-
Supported Unknown Not supported
☕
Enjoying this site?

Help keep it running with a small coffee donation. Every bit of support is appreciated!

Buy us a coffee