This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The FontFaceSet interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status.
Properties
FontFaceSet.statusRead only- Indicates the font-face's loading status. It will be one of
'loading'or'loaded'.
Events
FontFaceSet.onloading- An
EventListenercalled whenever an event of typeloadingis fired, indicating a font-face set has started loading. FontFaceSet.onloadingdone- An
EventListenercalled whenever an event of typeloadingdoneis fired, indicating that a font face set has finished loading. FontFaceSet.onloadingerror- An
EventListenercalled whenever an event of typeloadingerroris fired, indicating that an error occurred whilst loading a font-face set.
Methods
FontFaceSet.add()- Adds a font to the font set.
FontFaceSet.check()- A
Booleanthat indicates whether a font is loaded, but doesn't initiate a load when it isn't. FontFaceSet.clear()- Removes all fonts from the font set.
FontFaceSet.delete()- Removes a font from the font set.
FontFaceSet.load()- Returns a
Promisewhich resolves to a list of font-faces for a requested font. FontFaceSet.ready()- Returns a
Promisewhich resolves once font loading and layout operations have completed.
Specifications
| Specification | Status | Comment |
|---|---|---|
| CSS Font Loading Module Level 3 The definition of 'FontFaceSet' in that specification. |
Working Draft | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| Desktop | Mobile | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Basic support | Chrome Full support 35 | Edge ? | Firefox Full support 41 | IE ? | Opera ? | Safari Full support 10 | WebView Android Full support 37 | Chrome Android Full support 35 | Edge Mobile ? | Firefox Android Full support 41 | Opera Android ? | Safari iOS Full support 10 | Samsung Internet Android ? |
| Available in workers | Chrome Full support 69 | Edge ? | Firefox ? | IE ? | Opera ? | Safari ? | WebView Android Full support 69 | Chrome Android Full support 69 | Edge Mobile ? | Firefox Android ? | Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
status | Chrome Full support 48 | Edge ? | Firefox ? | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 48 | Chrome Android Full support 48 | Edge Mobile ? | Firefox Android ? | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
onloading | Chrome Full support 48 | Edge ? | Firefox ? | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 48 | Chrome Android Full support 48 | Edge Mobile ? | Firefox Android ? | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
onloadingdone | Chrome Full support 48 | Edge ? | Firefox ? | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 48 | Chrome Android Full support 48 | Edge Mobile ? | Firefox Android ? | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
onloadingerror | Chrome Full support 48 | Edge ? | Firefox ? | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 48 | Chrome Android Full support 48 | Edge Mobile ? | Firefox Android ? | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
add | Chrome Full support 48 | Edge ? | Firefox ? | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 48 | Chrome Android Full support 48 | Edge Mobile ? | Firefox Android ? | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
check | Chrome Full support 35 | Edge ? | Firefox Full support 41 | IE ? | Opera ? | Safari ? | WebView Android Full support 37 | Chrome Android Full support 35 | Edge Mobile ? | Firefox Android Full support 41 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
clear | Chrome Full support 48 | Edge ? | Firefox ? | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 48 | Chrome Android Full support 48 | Edge Mobile ? | Firefox Android ? | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
delete | Chrome Full support 48 | Edge ? | Firefox ? | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 48 | Chrome Android Full support 48 | Edge Mobile ? | Firefox Android ? | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
load | Chrome Full support 35 | Edge ? | Firefox Full support 41 | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 37 | Chrome Android Full support 35 | Edge Mobile ? | Firefox Android Full support 41 | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
ready | Chrome Full support 35 | Edge ? | Firefox Full support 41 | IE ? | Opera Full support 35 | Safari ? | WebView Android Full support 37 | Chrome Android Full support 35 | Edge Mobile ? | Firefox Android Full support 41 | Opera Android Full support 35 | Safari iOS ? | Samsung Internet Android ? |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.