Open
Description
Even though all SVG icons are loaded from the cache 99% of the time, running like 50 consecutive fetch()es still takes a long time as each request has tons of overhead when being constructed.
This means the config menu currently takes a few seconds to open and the rest of the page is also slowed down (because of the icons in the song queue for example).
In a pre-build step the SVGs could all be combined into a sprite bundle like this:
<svg id="bytm-icons-container" xmlns="http://www.w3.org/2000/svg" style="display: none;" inert="true">
<symbol id="bytm-icon-foo" viewBox="0 0 24 24">
<!-- SVG content for foo -->
</symbol>
<symbol id="bytm-icon-bar" viewBox="0 0 24 24">
<!-- SVG content for bar -->
</symbol>
<!-- ... -->
</svg>
...and then fetched once and added into the body at initialization time.
Then icon elements can be created like this:
<svg>
<use xlink:href="#bytm-icon-foo"></use>
</svg>