Задать вопрос
AleksFront
@AleksFront
Frontend Developer

Спрайт svg — как правильно варить?

Добрый день.
Все чаще вижу использование svg спрайтов. По ним пробежался почитал не сколько статей. Осталось куча вопросов. Особенно в построение сего дела с помощью gulp sass и например плагина gulp-svg-sprites.
1. В дизайне есть иконки разного размера, разного цвета. Эффекты hover и тому подобное. Вопрос как варить все? Почему то сложилось впечатление, что все иконки должны быть одного размера ( например 16x16 px ). Как тогда быть, когда одна и та же иконка требуется разных размеров ? Речь идет именно о спрайте с фоновым изображением svg. Как ловить ховер эфекты ?
2. Есть ли положительный опыт с плагином gulp-svg-sprites и какие подводные камни стоит опасаться ? Может кто поделиться своим вариантом и будет есть с чем сравнивать ?
3. Кто нить делал с помощью gulp-svg-sprites отдельные спрайты для разных типов иконок, например разеделение на интерфейс и инфо графику. Например icon-ui-sprite.svg и icon-services.svg.
4. Как и чем лучше оптимизировать спрайты svg ?
  • Вопрос задан
  • 13668 просмотров
Подписаться 26 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Skillbox
    Веб-вёрстка 3.0
    3 месяца
    Далее
  • OTUS
    HTML/CSS
    3 месяца
    Далее
Решения вопроса 2
Совсем недавно отвечал на вопросы
про генерацию нескольких спрайтов: Способы генерации нескольких спрайтов?
и про подход к хранению графики вообще: Шрифты или картинки для иконок что оптимальнее?

Послушайте как делают в 2гис: 2014.codefest.ru/lecture/677 (правда сейчас судя по всему от ase64 отказываются)

По вашим вопросам:

1. К сожалению, используя спрайт мы жестко привязаны к размерам иконки. Т.е. если у нас одинаковая иконка 16*16 и 32*32 - придется добавить в спрайт обе. Если у нас серая по умолчанию и синяя по ховеру - придется добавить обе.
Решают эту проблему шрифты (но со своими, на мой взгляд критичными, недостатками) и svg symbols (тоже есть минусы, внедрять планирую начинать в следующем году).

2. Да, https://github.com/jkphl/gulp-svg-sprite - всё положительно, мощная штука. Конечно нужно будет заморочиться со своим шаблоном файла стилей, чтобы всё по красоте.

Подводный камень есть со спрайтами вообще. Когда сделаете - попробуйте подвигать масштаб страницы. Иконки на некоторых уровнях"подрежутся". Погуглите про эту проблему.

3. Ответ в первом абзаце

4. Использую https://www.npmjs.com/package/gulp-imagemin для пожатия всей графики, включая svg
Ответ написан
Комментировать
gatilin222
@gatilin222
Frontend-разработчик
Написал статью на эту тему на хабре.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
FoodSoul Калининград
от 180 000 до 250 000 ₽
Data Directs Тель-Авив
от 350 000 ₽