CSS Font Loading API

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The CSS Font Loading API provides events and interfaces for dynamically loading font resources.

Interfaces

FontFace
Represents a single usable font face.
FontFaceSet
An interface loading font faces and checking their download statuses.
FontFaceSource
A mixin providing all of the fonts used in font-related operations, unless defined otherwise. It defines the FontFaceSources.fonts property available to Document and WorkerGlobalScope.
FontFaceSetLoadEvent
Fired whenever a FontFaceSet loads.

Specifications

Specification Status Comment
CSS Font Loading Module Level 3 Working Draft Initial definition.

Browser compatibility

FontFace interface

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
FontFaceChrome Full support 35Edge ? Firefox Full support 41IE ? Opera Full support 22Safari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support 41Opera Android Full support 22Safari iOS Full support 10Samsung Internet Android ?
FontFace() constructorChrome Full support 35Edge ? Firefox Full support 41IE ? Opera Full support 22Safari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support 41Opera Android Full support 22Safari iOS Full support 10Samsung Internet Android ?
display
Experimental
Chrome Full support 60Edge ? Firefox Full support 58IE ? Opera Full support 47Safari Full support 11WebView Android Full support 60Chrome Android Full support 60Firefox Android No support NoOpera Android Full support 44Safari iOS No support NoSamsung Internet Android ?
family
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
featureSettings
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
load
Experimental
Chrome Full support 45
Full support 45
No support 35 — 45
Notes
Notes Before Chrome 45, the returned promise resolved with void instead of a FontFace object as required by the specification.
Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 45
Full support 45
No support 37 — 45
Notes
Notes Before WebView 45, the returned promise resolved with void instead of a FontFace object as required by the specification.
Chrome Android Full support 45
Full support 45
No support 35 — 45
Notes
Notes Before Chrome 45, the returned promise resolved with void instead of a FontFace object as required by the specification.
Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
loaded
Experimental
Chrome Full support 45
Full support 45
No support 35 — 45
Notes
Notes Before Chrome 45, the returned promise resolved with void instead of a FontFace object as required by the specification.
Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 45
Full support 45
No support 37 — 45
Notes
Notes Before WebView 45, the returned promise resolved with void instead of a FontFace object as required by the specification.
Chrome Android Full support 45
Full support 45
No support 35 — 45
Notes
Notes Before Chrome 45, the returned promise resolved with void instead of a FontFace object as required by the specification.
Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
status
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
stretch
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
style
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
unicodeRange
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
variant
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
weight
Experimental
Chrome Full support 35Edge ? Firefox Full support YesIE ? Opera Full support YesSafari Full support 10WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android ?
Available in workersChrome Full support 69Edge ? Firefox ? IE ? Opera ? Safari ? WebView Android Full support 69Chrome Android Full support 69Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.