I’ve created a web component with <slot/>. The idea is to put any content inside a web component and the component does the rest. The greatest about Shadow Dom that it doesn’t care about the styling outside the element. And currently slots only exist within Shadow Dom. So in short, it’s impossible to load any external fonts such as Font Awesome.

Maybe Web Components isn’t mature enough or you only care about self isolating Web Components and load all the fonts from within.

I’ll use Vue.js and make hybrid static pages instead.