Для моего текущего рабочего процесса я использую знаковые веб-шрифты, созданные с помощью Icomoon. Это очень простая и увлекательная техника с очевидными преимуществами:
- Значок ведет себя точно так же, как и любой другой символ, поэтому любые текстовые преобразования CSS могут применяться к нему естественным образом, например
text-shadow
,text-decoration
,color
и т.д. - Простое повторное использование, просто добавьте необходимый элемент
font-family
в элемент.
Но у него серьезные недостатки не позволяют мне спать.
- Значки шрифтов размыты независимо от того, насколько идеально его кривые выровнены по сетке пикселей. Не говоря уже о ужасном рендеринге Windows.
- Сложно добавить новые значки в шрифт, особенно когда шрифт исходного источника источника недоступен и даже потерян.
- Для получения поддержки кросс-браузера требуется куча разных версий шрифтов (woff, eot, ttf).
- В конце шрифты на самом деле не предназначены для графики (особенно не монохромные), это не подходит для использования пустых и не семантических
<span class="icon"></span>
для этой цели.
Ну, очевидной альтернативой является SVG, у которого нет упомянутых недостатков. Но у него есть свои недостатки, которые не позволяют мне легко использовать его.
- Множество небольших файлов довольно просто неприемлемо в эпоху HTTP/1.1.
- Создание модификации значков - непростая задача и требует ручного редактирования, что также довольно странно для нашей эпохи just-type-npm.
Я искал google для некоторых пакетов npm, которые не удовлетворили меня по некоторым причинам.
Итак, я спрашиваю ваш совет, как управлять этой тривиальной и рутинной задачей. Есть ли эффективный и надежный способ генерации спрайтов SVG с измененными вариантами исходного значка и растрового отбрасывания для старого браузера?