CSSFontFaceDescriptors
The CSSFontFaceDescriptors interface represents a CSS declaration block for an @font-face at-rule.
Each descriptor in the body of the corresponding @font-face at-rule can be accessed using either its kebab-case property name in bracket notation or the camel-case version of the property name in dot notation.
For example, you can access the font-family CSS descriptor as style["font-family"] or style.fontFamily, where style is a CSSFontFaceDescriptors instance.
Note:
The CSSFontFaceRule interface represents a @font-face at-rule, and the CSSFontFaceRule.style property is an instance of this object.
Instance properties
Inherits properties from its ancestor CSSStyleDeclaration.
The following property names, in kebab-case (accessed using bracket notation) and camel-case (accessed using dot notation), each represent the value of a descriptor in the corresponding @font-face at-rule:
font-displayorfontDisplay-
A string representing the value of the
font-displaydescriptor. font-familyorfontFamily-
A string representing the value of the
font-familydescriptor. font-feature-settingsorfontFeatureSettings-
A string representing the value of the
font-feature-settingsdescriptor. font-stretchorfontStretch-
A string representing the value of the
font-stretchdescriptor. font-styleorfontStyle-
A string representing the value of the
font-styledescriptor. font-weightorfontWeight-
A string representing the value of the
font-weightdescriptor. font-widthorfontWidth-
A string representing the value of the
font-widthdescriptor. size-adjustorsizeAdjust-
A string representing the value of the
size-adjustdescriptor. src-
A string representing the value of the
srcdescriptor. unicode-rangeorunicodeRange-
A string representing the value of the
unicode-rangedescriptor.
Instance methods
No specific methods; inherits methods from its ancestor CSSStyleDeclaration.
Examples
>Accessing @font-face descriptor values
This example defines a @font-face rule and then uses CSSFontFaceDescriptors to read back the descriptor values.
CSS
@font-face {
font-family: "MyHelvetica";
src:
local("Helvetica Neue Bold"),
local("HelveticaNeue-Bold"),
url("MgOpenModernaBold.woff2") format("woff2");
font-weight: bold;
font-style: normal;
font-display: swap;
}
JavaScript
const myRules = document.getElementById("css-output").sheet.cssRules;
for (const rule of myRules) {
if (rule instanceof CSSFontFaceRule) {
const style = rule.style; // a CSSFontFaceDescriptors
log(`font-family: ${style.fontFamily}`);
log(`src: ${style.src}`);
log(`font-weight: ${style["font-weight"]}`);
log(`font-style: ${style.fontStyle}`);
log(`font-display: ${style["font-display"]}`);
}
}
Result
Specifications
| Specification |
|---|
| CSS Fonts Module Level 4> # om-fontface> |