Evil Icons: Когда иконки не просто красивые, но и умные
Репозиторий давно не обновлялся
Последнее обновление было 4 года назад.
Помните те времена, когда добавление иконки на сайт было целым приключением? Сначала нужно было выбрать подходящий набор, потом разобраться с иконочными шрифтами, которые то съезжали, то выглядели "мыльными" на разных разрешениях. Или, что еще хуже, вручную создавать спрайты из PNG-файлов, чтобы хоть как-то оптимизировать загрузку. Знакомая ситуация, не правда ли?
К счастью, индустрия не стоит на месте, и сегодня у нас есть куда более элегантные решения. Одно из таких, на мой взгляд, несправедливо недооцененных, — это проект Evil Icons. Несмотря на свое немного дерзкое название, этот набор иконок призван максимально упростить жизнь веб-разработчикам.
Что это за "злые" иконки и зачем они нужны?
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 станет вашим новым фаворитом для веб-иконок!
