Как это работает
Он преобразует код SVG в Data URI, готовый к использованию в CSS, так что вы можете встроить значок прямо в таблицу стилей без отдельного файла и дополнительного HTTP-запроса.
Он предлагает две кодировки: URL-encoded (процентное кодирование), короче и читаемее, рекомендуется для SVG; и Base64, чуть длиннее, но универсально совместимую.
Результат можно сгенерировать как background-image, как mask-image (чтобы окрасить значок с помощью CSS) или как многократно используемую CSS-переменную. Предварительная минификация SVG уменьшает размер ещё больше.
Примеры
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">…</svg>background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'…%3C/svg%3E");URL-кодирование сохраняет SVG почти читаемым и обычно короче Base64.-webkit-mask-image: url("data:image/svg+xml,…");
mask-image: url("data:image/svg+xml,…");В качестве mask-image цвет значка задаётся свойством background-color элемента.Сценарии использования
- Встраивать SVG-значки как background-image, не добавляя на страницу HTTP-запросы.
- Использовать SVG как маску (mask-image), чтобы перекрашивать его из CSS в зависимости от темы или состояния.
- Хранить значок в CSS-переменной и повторно использовать его в нескольких селекторах.
- Уменьшить вес встроенных значков, минифицируя SVG перед встраиванием.
Часто задаваемые вопросы
Что лучше: URL-encoded или Base64?
Для SVG обычно лучший вариант — URL-encoded: он даёт более короткий и читаемый Data URI, поскольку SVG — это текст. Base64 обеспечивает максимальную совместимость, но добавляет около 33 % к размеру.
Почему стоит использовать mask-image вместо background-image?
С background-image значок сохраняет исходные цвета. С mask-image SVG задаёт только форму, а цвет обеспечивает CSS — идеально для монохромных значков, меняющихся вместе с темой.
Что делает опция минификации?
Она удаляет комментарии и сжимает пробелы SVG перед его кодированием, поэтому итоговый Data URI меньше без изменения рисунка.
Загружается ли мой SVG на сервер?
Нет. Преобразование выполняется полностью в браузере; SVG никогда не покидает ваш компьютер.