font.newFileName is a string of only numbers: '000001101', '000001102', '000001103', so on and so forth.
If font.newFileName in new FontFace and setProperty is prefixed with a letter or changed to a${font.newFileName}, the script works...
...
fontList.forEach(font => {
const
ff = new FontFace(font.newFileName, `url('${font.newFilePath.replace(/\\/g, '/')}')`),
fontItem = fontItemTemplate.content.cloneNode(true),
fontNameElement = fontItem.querySelector('.font-name')
ff.load().then(
() => document.fonts.add(ff),
err => console.error('ERROR:', err)
)
fontNameElement.style.setProperty('--font-family', font.newFileName)
fontNameElement.style.fontFamily = 'var(--font-family)'
...
Does anybody know why this is the case?
Also, is there some way to use the font.newFileName values as they are without having to prefix a letter to the front?
The CSS
font-familyproperty does not accept font names that start with a number(if unquoted)1.To make it work you can put it in quotes. Something like:
References:
* Not related to this post but good to refer