Ng Icons

Бесплатно
Открытый исходный код

Сайт: ng-icons.github.io/ng-icons

Ng Icons — это библиотека и набор компонентов для фреймворка Angular, предоставляющие унифицированный интерфейс для использования SVG-иконок из разных коллекций. Проект ориентирован на облегчение работы разработчиков при интеграции множества наборов иконок в одно приложение: через общую API можно регистрировать наборы, подгружать отдельные символы и вставлять их в шаблоны компонентов Angular с минимальными настройками. Библиотека обычно реализует декларативный компонент для вставки иконок и служебные утилиты для управления загрузкой и оптимизации.

Исторически Ng Icons возник как ответ на потребность стандартизировать работу с иконками в экосистеме Angular, где встречаются разные форматы и поставщики (например, Font Awesome, Material Icons, Heroicons и прочие SVG-коллекции). Если о конкретных деталях реализации конкретного пакета информации недостаточно, это не мешает описать типовую функциональность: регистрация наборов по имени, динамический импорт SVG, настройка размеров и атрибутов, поддержка цвета через CSS и возможность серверной предзагрузки. Библиотека обычно интегрируется с системой сборки проекта и допускает работу с инлайновыми иконками для улучшения производительности.

  • Унифицированный API: единый компонент/сервис для вставки и управления иконками из разных коллекций.
  • Регистрация наборов: возможность регистрировать и помечать наборы иконок по имени для дальнейшего использования.
  • Динамическая загрузка: подгрузка SVG по требованию, поддержка ленивой загрузки и кэширования.
  • Интеграция с Angular: директивы/компоненты, совместимые с шаблонами и реактивными формами Angular.
  • Настройка внешнего вида: параметры размера, веса, заполнения и контрастности, управляемые через входные свойства и CSS-переменные.
  • Оптимизация: инлайнинг SVG для уменьшения числа запросов и возможность генерации спрайтов.
  • Совместимость форматов: поддержка различных коллекций SVG с преобразованием имен и атрибутов.
  • Типизация и автозаполнение: TypeScript-типизация для безопасного использования имён иконок и подсказок в IDE.
  • Доступность: возможности для добавления ARIA-атрибутов и альтернативных описаний для улучшения доступности интерфейса.
  • Расширяемость: плагиноподобная архитектура для добавления кастомных загрузчиков и трансформеров SVG.
Подробнее