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?
2
Answers
The CSS
font-family
property 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
You don’t really need prefixes if you make sure the value is kept a string inside the variable.
One way (among many) is to add quotes around it