One of many bigger downloads when requesting a webpage are customized fonts. There are lots of nice strategies for lazy loading fonts to enhance efficiency for these on poor connections. By getting perception into what fonts the person has obtainable, we will keep away from loading customized fonts. That is the place queryLocalFonts
is available in — an native JavaScript operate to collect person font info.
queryLocalFonts
is an async
operate that requires person permission by way of a browser immediate when first executed. queryLocalFonts
returns an array of FontData
objects which comprise details about all obtainable fonts:
const localFonts = await window.queryLocalFonts(); // [FontData, FontData, ...] /* { household: "Academy Engraved LET", fullName: "Academy Engraved LET Plain:1.0", postscriptName: "AcademyEngravedLetPlain", model: "Plain", } */
If you would like to focus on a particular font face, you may also instantly question the postscriptName
property:
const canelaFonts = await window.queryLocalFonts({ postscriptNames: ["Canela", "Canela-Bold"], }); // [FontData, FontData, ...]
With queryLocalFonts
you may leverage a fonts a person already has as a substitute of downloading costly customized fonts. The immediate for permissions looks as if it could deter customers from permitting the API, nonetheless. It is so cool that this API exists although!