Web/CSS/font-kerning

From Get docs


The font-kerning CSS property sets the use of the kerning information stored in a font.


The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

Kerning defines how letters are spaced. In well-kerned fonts, this feature makes character spacing more uniform and pleasant to read than it would otherwise be.

In the image below, for instance, the examples on the left do not use kerning, while the ones on the right do:

[[File:../../../../../media.prod.mdn.mozit.cloud/attachments/2014/08/25/8455/ea34969a0adfd0bea70cb1706033b0a4/font-kerning.png|Example of font-kerning]]

Syntax

The font-kerning property is specified as one of the keyword values listed below.

Values

auto
The browser determines whether font kerning should be used or not. For example, some browsers will disable kerning on small fonts, since applying it could harm the readability of text.
normal
Font kerning information stored in the font must be applied.
none
Font kerning information stored in the font is disabled.

Formal definition

Initial value auto
Applies to all elements. It also applies to ::first-letter and ::first-line.
Inherited yes
Computed value as specified
Animation type discrete

Formal syntax

auto | normal | none

Examples

Enabling and disabling kerning

HTML

<div id="kern"></div>
<div id="nokern"></div>
<textarea id="input">AV T. ij</textarea>

CSS

div {
  font-size: 2rem;
  font-family: serif;
}

#nokern {
  font-kerning: none;
}

#kern {
  font-kerning: normal;
}

JavaScript

let input  = document.getElementById('input');
let kern   = document.getElementById('kern');
let nokern = document.getElementById('nokern');

input.addEventListener('keyup', function() {
  kern.textContent = input.value; /* Update content */
  nokern.textContent = input.value;
});

kern.textContent = input.value; /* Initialize content */
nokern.textContent = input.value;

Specifications

Specification Status Comment
CSS Fonts Module Level 3The definition of 'font-kerning' in that specification. Candidate Recommendation Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
font-kerning

Chrome Full support 33


Full support 33


No support 29 — 33

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Edge

Full support 79

Firefox Full support 32


Full support 32


No support 24 — 34

Disabled'

Disabled' From version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

IE

No support No

Opera Full support 20


Full support 20


No support 16 — 20

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Safari Full support 9


Full support 9


Full support 6

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

WebView Android Full support 4.4.3


Full support 4.4.3


No support 4.4 — 4.4.3

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Chrome Android Full support 33


Full support 33


No support 29 — 33

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Firefox Android Full support 32


Full support 32


No support 24 — 34

Disabled'

Disabled' From version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.

Opera Android Full support 20


Full support 20


No support 16 — 20

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Safari iOS Full support 9


Full support 9


Full support 6

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Samsung Internet Android Full support 2.0


Full support 2.0


No support 1.0 — 2.0

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Legend

Full support  
Full support
No support  
No support
User must explicitly enable this feature.'
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also