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 πŸ™

Β© 2026 – Pkg Stats / Ryan Hefner

@evergis/uilib-gl

v1.0.117

Published

πŸ† **Before start:**

Downloads

2,694

Readme

πŸ›΄ Evergis UI

Contributing

πŸ† Before start:

yarn

Update webstorm to >2017.3.3

Install Styled Components plugin Jetbrains plugins

πŸ› οΈ Start dev:

yarn storybook

Open in browser localhost:6006

βœ… Start tests:

yarn test

How to release

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· master

  2. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² package.json

  3. yarn - ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒ всС зависимости

  4. yarn lint:fix - Π°Π²Ρ‚ΠΎΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ° eslint ошибок

  5. yarn build - сборка

  6. Π’ ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .npmrc со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым:

    //registry.npmjs.org/:_authToken=npm_XXX

    Π—Π΄Π΅ΡΡŒ npm_XXX -- granular token; ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ инструкции. Π’ΠΠ–ΠΠž: с 09.12.2025 срок дСйствия Ρ‚ΠΎΠΊΠ΅Π½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 90 Π΄Π½Π΅ΠΉ.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π΅Π½ΠΈΠ΅: ΠŸΡ€ΠΈ создании Ρ‚ΠΎΠΊΠ΅Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠžΠ‘Π―Π—ΠΠ’Π•Π›Π¬ΠΠž Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Bypass two-factor authentication (2FA).

  7. npm login - Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² npm (Π’ΠΠ–ΠΠž: с 12.12.2025 сСссия длится 12 часов, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, всё Π»ΠΈ ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π·Π°Π»ΠΎΠ³ΠΈΠ½Π΅Π½Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ npm whoami).

  8. npm publish - паблиш

  9. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ МР ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² master

How to link

For testing uilib locally in client (or other projects) without rebuilding after every update use linking:

  1. yarn build - сборка
  2. yarn link - создаём Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ссылку Π½Π° uilib
  3. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ client ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
  4. yarn link "@evergis/uilib-gl" - привязываСм uilib ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ
  5. yarn start - запускаСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с привязанной uilib
  6. yarn build - послС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² uilib Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ пСрСсборку

How to manage icons

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ истины Π½Π°Π±ΠΎΡ€Π° ΠΈΠΊΠΎΠ½ΠΎΠΊ β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ iconTypes Π² src/atoms/Icon/Icon.ts. Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: мноТСство codepoint-ΠΎΠ² Π² iconTypes == Π³Π»ΠΈΡ„Ρ‹ Π² src/fonts/EverCloud.svg == ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² src/fonts/selection.json. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ yarn check-icons.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΡƒ (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ способ)

yarn add-icon <ΠΏΡƒΡ‚ΡŒ-ΠΊ.svg> [--name <имя>] [--padding <0..0.4>]

Π‘ΠΊΡ€ΠΈΠΏΡ‚ сам: Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ SVG (SVGO), пСрСносит ΠΊΠΎΠ½Ρ‚ΡƒΡ€ Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΡˆΡ€ΠΈΡ„Ρ‚Π° (Π³Ρ€ΠΈΠ΄ 1024, Ρ„Π»ΠΈΠΏ Y, baseline), Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ свободный codepoint, дописываСт Π³Π»ΠΈΡ„ Π² EverCloud.svg + запись Π² selection.json, вставляСт строку Π² iconTypes ΠΈ пСрСсобираСт EverCloud.ttf/woff/eot. ПослС этого ΠΈΠΊΠΎΠ½ΠΊΠ° доступна ΠΊΠ°ΠΊ <Icon kind="<имя>" />. Если имя ΡƒΠΆΠ΅ занято β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ°Π΄Π°Π΅Ρ‚ с ошибкой.

ВрСбования ΠΊ исходному SVG: ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ, ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ Π·Π°Π»ΠΈΡ‚Ρ‹ (fill, Π½Π΅ stroke), Π΅ΡΡ‚ΡŒ viewBox (ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΈ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² Storybook (yarn storybook, story Atoms/Icon) β€” особСнно ΠΈΠΊΠΎΠ½ΠΊΠΈ с отвСрстиями: ΠΏΡ€ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ² Π΄Ρ‹Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π»ΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΡŒΡ‚Π΅ исходный SVG ΠΈ пСрСзапуститС.

Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΏΠΎ содСрТимому: скрипт сравниваСт Ρ„ΠΎΡ€ΠΌΡƒ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ с ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ (растровая «подпись» 32Γ—32) ΠΈ ΠΏΠ°Π΄Π°Π΅Ρ‚ с ошибкой, Ссли такая ΠΈΠΊΠΎΠ½ΠΊΠ° ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ. ΠžΠ±ΠΎΠΉΡ‚ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ β€” Ρ„Π»Π°Π³ --force.

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΡƒ

yarn remove-icon <имя> [<имя2> ...] [--dry-run]

Π‘Π½ΠΈΠΌΠ°Π΅Ρ‚ строку ΠΈΠ· iconTypes ΠΈ пСрСсобираСт ΡˆΡ€ΠΈΡ„Ρ‚: Π³Π»ΠΈΡ„ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· EverCloud.svg, selection.json ΠΈ всСх Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΎΠ². Если codepoint ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ-алиасом (Π½Π°ΠΏΡ€. geom_polygon/geom_multipolygon), Π³Π»ΠΈΡ„ сохраняСтся β€” снимаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя.

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: yarn build-font β€” ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… исходников (с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊ iconTypes); yarn check-icons β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Π ΡƒΡ‡Π½ΠΎΠΉ способ Ρ‡Π΅Ρ€Π΅Π· icomoon (fallback)

  1. https://icomoon.io/app/#/projects
  2. Import Project ΠΈΠ· src/fonts/selection.json
  3. Load
  4. Клик ΠΏΠΎ Π³Π°ΠΌΠ±ΡƒΡ€Π³Π΅Ρ€ Π½Π°Π±ΠΎΡ€Π° EverCloud Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Import to Set
  5. Generate Font Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ
  6. Π—Π°ΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² src/fonts Π½Π° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π° (ΠΏΠ°ΠΏΠΊΠ° fonts ΠΈ selection.json)

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π²ΡƒΡ… систСм: yarn add-icon Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΡƒΡ‚ΡŒ Π² selection.json Π² Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ…, Ρ‡Ρ‚ΠΎ ΠΈ icomoon (связь с Π³Π»ΠΈΡ„ΠΎΠΌ ΡˆΡ€ΠΈΡ„Ρ‚Π° β€” font_y = 832 βˆ’ stored_y). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ±Π° workflow взаимозамСняСмы: selection.json ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅-ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² icomoon ΠΈ ΠΏΠ΅Ρ€Π΅Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ (ΠΈΠΊΠΎΠ½ΠΊΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ скриптом, отобразятся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ), Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ icomoon обрабатываСтся yarn build-font ΡˆΡ‚Π°Ρ‚Π½ΠΎ.

Used libraries, languages and tools

  1. Typescript Docs
  2. React Docs
  3. Styled-components Docs
  4. Jest Docs
  5. Storybook Docs

Style Guide

  1. Every component in separate directory

  2. Test file in same directory, with name *.test.tsx

  3. Do not write snapshot tests for components, for snapshot testing used stories, test only specific behavior and functions

  4. Story file in same directory, with name *.story.tsx

  5. Write stories for every possible component state

  6. Every component must be working without any props

  7. Do not create pull request with any linters or ts errors

  8. File naming convention:

    1. PascalCase for file exporting classes and Components
    2. camelCase for file exporting objects and functions
    3. kebab-case for module replacements
  9. Do not use default exports

  10. Write component description in source file

Completed Component must include the following:

  1. Stories for every possible component state
  2. Tests for specific behaviors and functions
  3. Declared Theme variables
  4. Props type
  5. Component description

Project structure

  1. Import "styled-components" maps to styled-with-theme.ts
  2. theme is theme folder 🚒
  3. Simple reusable styled components and html tags with style are located in atoms folder
  4. Groups of atoms are located in molecules folder
  5. Groups of atoms, molecules and other are located in organisms folder

Todo

  1. Upgrade tippy (tooltip) package version
  2. Upgrade imask & react-imask packages version