icofon

Папка SVG на входе, иконочный шрифт на выходе — одной командой.

Логотип icofon — стилизованная буква A с сине-фиолетовым градиентом на скруглённом квадратном значке

Консольный инструмент, который собирает из папки SVG-иконок иконочный шрифт: WOFF2, WOFF и TTF, стили с классом на каждую иконку и страницу предпросмотра с поиском.

Основная работа — привести рисунки к тому, что шрифт вообще умеет хранить. Шрифт умеет только заливать, поэтому каждый штрих обводится собственным контуром; дырки на evenodd переориентируются, чтобы пережить non-zero winding; белые фигуры и бледные заливки читаются как фон, а не как краска, — поверх рисунка они становятся вывороткой, поверх пустоты выбрасываются. Иконки больше чем с одним цветом выводятся слоями COLR/CPAL, а не сплющиваются в пятно, и слои, закрашенные currentColor, по-прежнему слушаются вашего CSS.

Кодовые позиции лежат в icofon.json рядом с иконками и ключуются путём файла — так новая иконка не сдвигает те, что уже опубликованы и осели в кэшах. Сборка воспроизводима, а icofon check роняет CI на любом SVG, который не может стать глифом.

Rust, MIT, ставится готовым бинарником: brew install jwo1f/tap/icofon.