Evil Icons: Когда иконки не просто красивые, но и умные

19 Oct, 2021

Репозиторий давно не обновлялся

Последнее обновление было 4 года назад.

5,023
🔱 218
👥 111

Помните те времена, когда добавление иконки на сайт было целым приключением? Сначала нужно было выбрать подходящий набор, потом разобраться с иконочными шрифтами, которые то съезжали, то выглядели "мыльными" на разных разрешениях. Или, что еще хуже, вручную создавать спрайты из PNG-файлов, чтобы хоть как-то оптимизировать загрузку. Знакомая ситуация, не правда ли?

К счастью, индустрия не стоит на месте, и сегодня у нас есть куда более элегантные решения. Одно из таких, на мой взгляд, несправедливо недооцененных, — это проект Evil Icons. Несмотря на свое немного дерзкое название, этот набор иконок призван максимально упростить жизнь веб-разработчикам.

Что это за "злые" иконки и зачем они нужны?

Evil Icons Logo

Evil Icons – это тщательно продуманный и минималистичный набор SVG-иконок, созданный специально для веб-проектов. Его главная фишка – философия "plug and play". Это означает, что вам не нужно быть гуру SVG или днями ковыряться в документации, чтобы начать использовать эти иконки. Просто подключаете, указываете имя иконки в своем шаблоне или стилях, и вуаля – все остальное происходит "автомагически".

Кому это будет полезно? Любому, кто работает с вебом:

Реклама
  • Фронтенд-разработчикам, которым надоело возиться с иконочными шрифтами и хочется получить легкие, масштабируемые и легко кастомизируемые иконки.
  • Бэкендерам, работающим с Ruby on Rails, Sinatra или Middleman, и желающим быстро добавить красивый UI без глубокого погружения во фронтенд.
  • Дизайнерам, ценящим чистый и современный стиль.
  • Всем, кто хочет улучшить производительность своего сайта, используя нативные возможности SVG.

Проект создан Александром Мадянкиным и Романом Шаминым и спонсируется командой Evil Martians, что само по себе говорит о высоком качестве и продуманности.

Ключевые возможности: Красота в простоте и функциональности

Что же делает Evil Icons таким привлекательным? Давайте разберем по пунктам.

1. Максимальная простота интеграции

Забудьте о сложных конфигурациях. Evil Icons предлагает несколько путей подключения, чтобы каждый нашел свой:

  • Через CDN: Самый быстрый способ для прототипов или небольших проектов. Просто добавьте две строчки в <head> вашего HTML-файла:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/evil-icons@1.9.0/assets/evil-icons.min.css">
    <script src="https://cdn.jsdelivr.net/npm/evil-icons@1.9.0/assets/evil-icons.min.js"></script>
    

    А затем используйте иконки прямо в HTML:

    <div data-icon="ei-archive"></div>
    <div data-icon="ei-chart" data-size="s"></div>
    
  • Через npm: Если вы работаете с современным JavaScript-стеком, npm install evil-icons – ваш выбор. Подключаете стили и импортируете JavaScript-модуль, чтобы рендерить иконки программно:

    npm install evil-icons
    
    <link rel="stylesheet" type="text/css" href="./node_modules/evil-icons/assets/evil-icons.css">
    
    var icons = require("evil-icons")
    // ...
    document.body.innerHTML += icons.icon("ei-search");
    
  • Для Ruby-стека (Rails, Sinatra, Middleman): Здесь Evil Icons проявляет себя особенно элегантно. Добавляете гем evil_icons в Gemfile, подключаете стили в application.css, рендерите SVG-спрайт в лейауте и используете удобные хелперы для отображения иконок:

    # Gemfile
    gem 'evil_icons'
    
    <!-- В вашем лейауте -->
    <%= evil_icons_sprite %>
    <!-- Где-то в коде -->
    <%= evil_icon 'ei-search' %>
    <%= evil_icon 'ei-arrow-right', size: :m %>
    

    Согласитесь, это очень удобно!

2. Вся мощь SVG: Масштабирование и кастомизация без компромиссов

Главное преимущество SVG перед растровыми изображениями или иконочными шрифтами – это, конечно, масштабируемость. Иконки Evil Icons всегда будут выглядеть четко, независимо от размера экрана или разрешения устройства. Прощайте, "лесенки" и пикселизация!

Более того, SVG позволяет легко управлять стилями иконок через CSS. Хотите изменить цвет? Нет проблем:

.icon {
  fill: green; /* Все иконки станут зелеными */
}
.icon--ei-sc-facebook {
  fill: blue; /* Иконка Facebook станет синей */
}

Можно задавать размеры (предустановленные s, m, l, xl, xxl или свои) и добавлять кастомные классы, что дает полную свободу в дизайне.

3. Широкая поддержка браузеров и экосистем

Evil Icons не заставит вас переживать о совместимости. Проект поддерживает IE 9+, Firefox, Chrome, Safari, Opera и Android 4+, что охватывает подавляющее большинство пользователей.

Кроме того, есть готовые плагины для Grunt и Gulp, а также отдельный React-компонент, что делает его универсальным солдатом в вашем арсенале инструментов.

Как это работает под капотом? Технические детали

В основе Evil Icons лежит элегантный подход с использованием SVG-спрайта. Вместо того чтобы встраивать каждую иконку как отдельный файл, все иконки объединены в один большой SVG-файл, который загружается один раз. Затем, с помощью JavaScript и CSS, нужная иконка "вырезается" и отображается в нужном месте.

Когда вы используете data-icon="ei-archive" или хелпер <%= evil_icon 'ei-search' %>, JavaScript-часть библиотеки находит эти элементы и динамически вставляет соответствующий <svg>-элемент из спрайта. Это позволяет:

  • Оптимизировать количество запросов к серверу (один запрос вместо десятков).
  • Использовать кэширование для спрайта.
  • Сохранять семантику HTML (иконки вставляются как нативные SVG).

Практическое применение: От прототипа до продакшена

Давайте представим несколько сценариев, где Evil Icons покажет себя во всей красе:

  • Быстрый прототип лендинга: Вам нужно сделать набросок страницы с минимальным количеством усилий. Подключаете Evil Icons через CDN, проставляете data-icon атрибуты – и вот у вас уже стильные иконки, которые идеально вписываются в макет. Никаких сборок, никаких npm-модулей, просто чистый HTML/CSS.

  • Ruby on Rails приложение: Вы создаете панель администратора или пользовательский интерфейс. С помощью гема evil_icons и хелперов вы можете легко вставлять иконки в ваши ERB-шаблоны, менять их размер и цвет, при этом сохраняя чистый и лаконичный код. Это гораздо удобнее, чем вручную работать с SVG-файлами.

  • React-компонент: Если вы разрабатываете UI-библиотеку на React, то готовый React-компонент для Evil Icons позволит вам инкапсулировать логику отображения иконок, делая их легко переиспользуемыми и управляемыми.

  • Статический сайт на Middleman: Для генераторов статических сайтов, где производительность и простота развертывания критичны, Evil Icons также станет отличным выбором, предлагая те же удобства, что и в Rails.

Выводы: Стоит ли попробовать? Однозначно!

Если вы ищете набор иконок, который:

  • Легко интегрируется в любой проект.
  • Предлагает чистый и современный дизайн.
  • Использует всю мощь SVG для масштабирования и кастомизации.
  • Не утяжеляет ваш проект и хорошо поддерживается.

То Evil Icons – это именно то, что вам нужно попробовать. Это не просто еще один набор иконок, это инструмент, который действительно упрощает рутинные задачи и позволяет сосредоточиться на более важных аспектах разработки. Проект до сих пор активно поддерживается, имеет хорошую документацию и большое сообщество.

Попробуйте, и, возможно, Evil Icons станет вашим новым фаворитом для веб-иконок!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.