feat(frontend): replace emoji with inline Material Symbols icon system
Add a self-contained icon system: vendored Material Symbols registry, an <Icon> component that references a single <symbol> sprite via <use>, plus IconButton/IconSprite. Replace every emoji/Unicode glyph (logo, theme switcher, cover placeholder, like/comment counts, lightbox controls, back links) and add leading icons to key controls. Decorative icons are aria-hidden; icon-only buttons get labels; theme toggles expose aria-pressed; counters get accessible names. Recorded in openspec change material-icons-ui (all tasks complete).
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
<script lang="ts">
|
||||
import { icons } from '$lib/icons/registry';
|
||||
</script>
|
||||
|
||||
<!--
|
||||
Единственный источник path-данных. Не использовать display:none — некоторые браузеры
|
||||
тогда не рисуют <use>; прячем через нулевой размер и overflow.
|
||||
-->
|
||||
<svg width="0" height="0" class="absolute h-0 w-0 overflow-hidden" aria-hidden="true" focusable="false">
|
||||
{#each Object.entries(icons) as [key, def] (key)}
|
||||
<symbol id="i-{key}" viewBox="0 0 24 24">{@html def.path}</symbol>
|
||||
{/each}
|
||||
</svg>
|
||||
Reference in New Issue
Block a user