npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@kaspersky/icons

v2.3.0

Published

Kaspersky Design System Icon Pack

Downloads

267

Readme

@kaspersky/icons

Этот npm пакет - отдельная библиотека иконок, которую вы можете использовать в своих проектах.

Библиотека иконок имеет две основные реализации:

  • со стороны Design System: svg пак иконок в Figma. Обновлением иконок в Figma и поддержкой пака иконок в актуальном состоянии занимается команда дизайнеров DRO.
  • со стороны UI Kit: npm пакет содержащий все иконки из дизайн системы. Поддержкой npm пакета иконок @kaspersky/icons занимается команда разработки UIF.
  • StoryBook

Установка

npm install @kaspersky/icons 
yarn add @kaspersky/icons 

Установка зависимостей:

npm install 

Использование в проекте

Import:

import { AccountIdentity } from '@kaspersky/icons/24'
import { AccountLogin, Like } from '@kaspersky/icons/24'
const { AccountIdentity } = require('@kaspersky/icons/24')

Props: | Name | Type | Default | | ------------- |:-----------------------------------------: | ---------------------------- |
| color | string | 'currentColor' |

Example:

`<AccountIdentity />`
`<AccountIdentity color="red"/>`
`<AccountIdentity data-testid="test-icon"/>`

Обновление иконок внутри npm пакета (ручной режим):

  1. Скачиваем актуальный пак svg иконок из Figma с группировкой по размерам
  • Не выделяя листов или иконок, нажимаем в сайдбаре справа на кнопку Export
  • В пункте Presets нажимаем на плюс +
  • В раскрывшимся меню выбираем формат иконок SVG
  • Нажимаем кнопку "Export Library - Icons"
  1. Копируем svg иконки в папку src/iconsSources
  2. Запускаем скрипт для трансформации svg иконок в React компоненты: npm run icons:prepare (комплексная команда, которая работает в автоматическов режиме, расширенный список команд в разделе Команды package.json)
  3. В папке iconsSVGs должны появится svg файлы с правильными именами, остальные этапы сборки происходят в PR.
  4. Создаём PR. Все сборки проходят автоматически

Команды package.json

Базовые команды:

  • "iconsArtifacts:clean": удаление всех разультатов сборки rollup
  • "icons:clean": удаление автогенерированных файлов библиотекой svgr
  • "iconsSVGs:clean": удаления svg файлов с подготовленными именами
  • "icons:prepare": Подготовка исходников svg файлоа
  • "icons:transform": запуск трансформации svg иконок в компоненты react
  • "icons:updateImports": обновление импортов для сборки
  • "icons:create": генерация файлов с помощью svgr
  • "icons:build": полная сборка пакета с удалением всех генерируемых файлов

Вспомогательные команды:

  • "svgr:help": справка по командам и опциям svgr
  • "rollup:help": справка по командам и опциям rollup
  • "lint": проверить код иконки на ошибки
  • "lint:fix": проверить код иконки на ошибки и автоматически исправить

Сборка пакета:

Может производиться двумя способами:

  1. Запускаем скрипт npm run icons:create, после трансформации svg иконок в React компоненты запускаем сборку пакета скриптом npm run icons:build
  2. Запуск трансформации svg иконок и сборки пакета одной командой npm run build

В корне проекта будет находится готовая сборка пакета (production build) в 2 основных форматах: commonjs и es6

Конфигурационные файлы:

SVGR:

@kaspersky/icons использует SVRG cli (https://react-svgr.com/) для трансформации svg иконок из Figma в React компонент.

SVGR предварительно оптимизирует и сжимает размер svg иконки через инструмент SVGO в автоматическом режиме, затем генерирует React компонент с svg иконкой при помощи Babel шаблонов и форматирует код с помощью Prettier. На выходе мы получаем готовый компонент.

Настройка svgr производится либо через параметры командой строки и через конфигурационный файл svgr.config.js (предпочтительный вариант для удобства чтения) Конфигурационный файл лежит в корневой директории src.

Настройка шаблона экспорта иконки производится внутри файла шаблона templateIcons.js Файл шаблона лежит в корневой директории src.

Параметры cli строки:

  1. --config-file ./svgr.config.js: путь к конфигурационному файлу
  2. --out-dir src -- ./src/iconsSources: установка input (icons) и output (src) директорий

Конфигурационный файл svgr.config.json основные опции:

  1. typescript: генерирует выходной файл в формате .tsx
  2. replace-attr-values: заменяет значения атрибутов внутри svg
  3. template: путь к файлу шаблона экспорта компонентов

Rollup:

@kaspersky/icons использует сборщик Rollup (https://rollupjs.org/)

При запуске команды сборки пакета, бандлер создаст директорию build с двумя подпапками для каждой сборки: cjs (CommonJS) и esm (ES Module) Конфигурационный файл для настройки rollup.config.js Конфигурационный файл лежит в корневой директории src.