# Astro load fonts dynamically
I am trying to load an unknown amount of webfonts in Astro.
```
function getFonts() {
return `
${global.font
.map((item) => {
return `@font-face {
font-family: ${item.name};
src: url(${item.url2}) format('woff2'),
url(${item.url1}) format('woff');
font-weight: normal;
font-style: normal;
font-display: swap;
}`;
})
.join('\n')}
`;
}
const fonts = getFonts();
```
But as soon as I use {fonts} it in my head tag, I get either the error "unknown word" or simply the output {${fonts}} as a string. What's the best way to do this?
## Answer
You can use the `set:html` directive on a `<style>` tag like this:
```
<style set:html={fonts}/>
```