The font-size-adjust property scales text so a font metric — by default lowercase x-height — matches a chosen proportion of font-size.
Use it when a font-family stack has fallbacks that look smaller or larger at the same size. Matching the primary font’s aspect value keeps fallbacks more legible, especially at small sizes.
Baseline 2024 · Newly available.
Not deprecated and not experimental. Cross-browser support became Baseline Newly available in July 2024. Older browsers ignore the property and keep the normal size.
Same font-size. Both lines use 14px so only metrics differ.
Use Verdana as reference. Its aspect value is often about 0.545.
Adjust Times.font-size-adjust: 0.545 scales Times so lowercase height is closer.
Why it helps. If Verdana is missing, the fallback stays more readable at small sizes.
Example 3 — from-font
Let the browser read the metric from the first available font.
CSS
<style>
p {
font-family: Verdana, Times, serif;
font-size: 16px;
font-size-adjust: from-font;
}
</style>
<p>Metric comes from the first available font.</p>
Skip a hard-coded number.from-font reads the metric from the first font that loads.
Adjust later faces. If the browser uses Times, it scales toward Verdana’s metric.
When to use it. Handy when you do not want to look up an aspect value by hand.
Edge Cases & Pitfalls
If the adjustment looks wrong or missing, check these first.
primary
It scales every font, not only fallbacks
Pick a number that matches your first-choice font. A wrong aspect will also resize that primary face.
zero
0 hides the text
font-size-adjust: 0 produces zero-height text. Negative numbers are invalid.
metric
Default metric is ex-height
One number alone normalizes lowercase height. Use cap-height, ch-width, or other metrics when you need a different match.
size
Do not replace font-size
To make the primary font larger, change font-size. Use font-size-adjust to align metrics across faces.
support
Older browsers ignore it
Unsupported engines keep the normal size. Design so the page still reads well with none.
Compatibility
Browser Support
font-size-adjust is a browser CSS property for font metrics. Node.js, Deno, and Bun do not apply it.
✓ Baseline 2024 · Newly available
font-size-adjust
Chrome/Edge 127+, Firefox 118+, Safari 17+. Internet Explorer: none. Older Chromium builds had the flag disabled.
90%approx. modern coverage
Google Chrome127+
Full support
Mozilla Firefox118+
Full support
Apple Safari17+
Full support
Microsoft Edge127+
Full support
Opera113+
Full support
Samsung InternetChromium 127+
Full support
Internet ExplorerNo support
Not supported
font-size-adjustNewly available (2024)
Bottom line: Safe as progressive enhancement on modern browsers. Text remains readable when the property is ignored. It is not a runtime API.
Remember
Key Takeaways
Role: keep apparent size consistent across fonts by matching a metric.
Default metric: a bare number uses ex-height (lowercase x-height).
from-font: borrow the metric from the first available face.
Initial value:none. Inherited by default.
One line:font-size-adjust: 0.545; can make a low-x-height fallback look closer to Verdana.
Frequently Asked Questions
It scales a font so a chosen metric (by default lowercase x-height) matches a target proportion of font-size. That keeps fallback fonts looking closer in size to the first-choice font.
The initial value is none, so no adjustment is applied.
For the default ex-height metric, the number is the ratio of x-height to font-size. Verdana is often about 0.545; Times is lower, so it can look smaller at the same font-size.
No. The adjustment is applied to every font used to render the text, including the first-choice face. Pick a number that matches your primary font’s metric so that face stays natural.
from-font reads the metric value from the first available font in the stack, then uses that to adjust other fonts.
It is Baseline Newly available since July 2024. Chrome/Edge 127+, Firefox 118+, Safari 17+. Internet Explorer has no support. It is a browser CSS property, not a Node.js feature.