This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
* Some parts of this feature may have varying levels of support.
Note: This feature is available in Web Workers.
The FontFaceSet interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status.
A FontFaceSet instance is a Set-like object that can hold an ordered set of FontFace objects.
This property is available as Document.fonts, or self.fonts in web workers.
FontFaceSet.status Read only
Indicates the font-face's loading status. It will be one of 'loading' or 'loaded'.
FontFaceSet.ready Read only
Promise which resolves once font loading and layout operations have completed.
FontFaceSet.size Read only
Returns the number of values in the FontFaceSet.
loadingFires when a font-face set has started loading.
loadingdoneFires when a font face set has finished loading.
loadingerrorFires when an error occurred whilst loading a font-face set.
FontFaceSet.add()Adds a font to the font set.
FontFaceSet.check()A boolean value that indicates whether a font is loaded, but doesn't initiate a load when it isn't.
FontFaceSet.clear()Removes all manually-added fonts from the font set. CSS-connected fonts are unaffected.
FontFaceSet.delete()Removes a manually-added font from the font set. CSS-connected fonts are unaffected.
FontFaceSet.entries()Returns a new iterator with the values for each element in the FontFaceSet in insertion order.
FontFaceSet.forEach()Executes a provided function for each value in the FontFaceSet object.
FontFaceSet.has()Returns a Boolean asserting whether an element is present with the given value.
FontFaceSet.keys()An alias for FontFaceSet.values().
FontFaceSet.load()Returns a Promise which resolves to a list of font-faces for a requested font.
FontFaceSet.values()Returns a new iterator object that yields the values for each element in the FontFaceSet object in insertion order.
| Specification |
|---|
| CSS Font Loading Module Level 3> # FontFaceSet-interface> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
@@iterator |
48 | 79 | 41 | 35 | 10 | 48 | 41 | 35 | 10 | 5.0 | 48 | 10 |
FontFaceSet |
No | No | No | No | 10Will be removed, see bug 276794 |
No | No | No | 10Will be removed, see bug 276794 |
No | No | 10Will be removed, see bug 276794 |
FontFaceSet |
35Chrome does not expose theFontFaceSet interface directly, and is only available through Document.fonts or WorkerGlobalScope.fonts. |
79Edge does not expose theFontFaceSet interface directly, and is only available through Document.fonts or WorkerGlobalScope.fonts. |
41 | 22Opera does not expose theFontFaceSet interface directly, and is only available through Document.fonts or WorkerGlobalScope.fonts. |
10 | 35Chrome Android does not expose theFontFaceSet interface directly, and is only available through Document.fonts or WorkerGlobalScope.fonts. |
41 | 22Opera Android does not expose theFontFaceSet interface directly, and is only available through Document.fonts or WorkerGlobalScope.fonts. |
10 | 3.0Samsung Internet does not expose theFontFaceSet interface directly, and is only available through Document.fonts or WorkerGlobalScope.fonts. |
37WebView Android does not expose theFontFaceSet interface directly, and is only available through Document.fonts or WorkerGlobalScope.fonts. |
10 |
add |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
check |
12035–120Prior to version 120, this method returnedfalse instead of true for nonexistent or locally installed fonts. See bug 40893726. |
12079–120Prior to version 120, this method returnedfalse instead of true for nonexistent or locally installed fonts. See bug 40893726. |
41 | 10622–106Prior to version 106, this method returnedfalse instead of true for nonexistent or locally installed fonts. See bug 40893726. |
10 | 12035–120Prior to version 120, this method returnedfalse instead of true for nonexistent or locally installed fonts. See bug 40893726. |
41 | 8022–80Prior to version 80, this method returnedfalse instead of true for nonexistent or locally installed fonts. See bug 40893726. |
10 | 25.03.0–25.0Prior to version 25.0, this method returnedfalse instead of true for nonexistent or locally installed fonts. See bug 40893726. |
12037–120Prior to version 120, this method returnedfalse instead of true for nonexistent or locally installed fonts. See bug 40893726. |
10 |
clear |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
delete |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
entries |
48 | 79 | 41 | 35 | 10 | 48 | 41 | 35 | 10 | 5.0 | 48 | 10 |
forEach |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
has |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
keys |
48 | 79 | 41 | 35 | 10 | 48 | 41 | 35 | 10 | 5.0 | 48 | 10 |
load |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
loading_event |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
loadingdone_event |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
loadingerror_event |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
ready |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
size |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
status |
35 | 79 | 41 | 22 | 10 | 35 | 41 | 22 | 10 | 3.0 | 37 | 10 |
values |
48 | 79 | 41 | 35 | 10 | 48 | 41 | 35 | 10 | 5.0 | 48 | 10 |
worker_support |
69 | 79 | 105 | 56 | 15 | 69 | 105 | 48 | 15 | 10.0 | 69 | 15 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet