icon-ochke

0

Описание

Оффлайн инструмент- наборы иконок

https://bazarow.ru

Языки

  • TypeScript75,1%
  • CSS6,5%
  • HTML5,7%
  • Vue4,7%
  • JavaScript4,2%
  • Svelte3,7%
  • Остальные0,1%
19 дней назад
19 дней назад
19 дней назад
19 дней назад
19 дней назад
19 дней назад
19 дней назад
19 дней назад
17 дней назад
19 дней назад
19 дней назад
19 дней назад
19 дней назад
17 дней назад
README.md

ИКОН-ОЧКИ

ИКОН-ОЧКИ — офлайн десктоп-приложение для поиска и просмотра SVG-иконок. Работает без интернета: все ~300 000 иконок из 224 наборов хранятся локально.

Собрано на базе Iconify (автор оригинала: Vjacheslav Trushkin) и упаковано в нативное десктоп-приложение с помощью Tauri 2.

ИКОН-ОЧКИ — скриншот приложения


Содержание


Обзор

Главная цель этого форка — готовое офлайн-приложение: открыл, нашёл иконку, скопировал имя или SVG-код. Интернет не нужен.

Что умеет:

  • поиск по ~300 000 иконок из 224 наборов без подключения к сети;
  • просмотр SVG, копирование имени, HTML-тега или SVG-кода;
  • скачивание SVG и PNG 256×256;
  • фильтрация по наборам иконок;
  • три размера отображения (S / M / L).

Архитектура монорепозитория

Репозиторий использует пространства имён pnpm workspaces. Сборка, линтинг и тесты запускаются рекурсивно по всем пакетам.

iconify/ ├── packages/ # Базовые библиотеки (переиспользуются всеми компонентами) ├── iconify-icon/ # Веб-компонент и обёртки для React / Solid ├── components/ # Компоненты с полной интеграцией API: React, Vue 3, Svelte ├── components-css/ # Лёгкие CSS-fallback компоненты: React, Vue 3, Svelte, Solid ├── components-demo/ # Демо-приложения (Next.js, Nuxt 3, React, Svelte, SvelteKit, Vue) ├── components-css-demo/# Демо для CSS-компонентов ├── iconify-icon-demo/ # Демо для веб-компонента ├── icon-sets/ # Данные иконок в формате IconifyJSON (~200 000 иконок) └── scripts/ # Вспомогательные скрипты (генерация офлайн-бандла и др.)

Пакеты

Расположены в

packages/
. Являются внутренними зависимостями для компонентов и веб-компонента.

ПакетВерсияОписание
@iconify/types
2.0.0TypeScript-типы для формата IconifyJSON
@iconify/utils
3.1.0Утилиты для работы с наборами иконок (Node.js, Deno, браузер)
@iconify/core
4.1.0Переиспользуемая логика, общая для всех компонентов
@iconify/api-redundancy
1.1.1Библиотека резервирования для запросов к API
@iconify/fetch
0.0.1Обёртка над fetch со встроенным резервированием
@iconify/component-utils
0.0.1Общие утилиты для компонентов (хранилище, загрузчик, очередь)

Компоненты для фреймворков

Расположены в

components/
. Полнофункциональные компоненты с интеграцией Iconify API: автоматическая загрузка данных иконок, офлайн-режим, SSR.

ПакетВерсияФреймворк
@iconify/react
6.0.2React
@iconify/vue
5.0.0Vue 3
@iconify/svelte
5.2.1Svelte

Пример использования (React)

Офлайн-режим

Компоненты поддерживают работу без подключения к сети. Данные иконок импортируются статически из

@iconify/json
и передаются в компонент через
addCollection()
:


CSS-компоненты

Расположены в

components-css/
. Лёгкие компоненты, предназначенные для использования совместно с CSS-иконками (Iconify CSS mode) в качестве fallback или вспомогательного слоя. Поддерживают React, Vue 3, Svelte и Solid.

ПакетВерсияФреймворк
@iconify/css-react
1.0.2React
@iconify/css-vue
1.0.2Vue 3
@iconify/css-solid
1.0.1Solid
@iconify/css-svelte
Svelte

Наборы иконок

Расположены в

icon-sets/
(субмодуль репозитория iconify/icon-sets). Пакет
@iconify/json
версии 2.2.450 содержит данные в формате IconifyJSON.

Особенности:

  • иконки прошли строгую валидацию и очистку (нет скриптов, внешних ресурсов, растровых изображений);
  • монотонные иконки используют
    currentColor
    для смены цвета через CSS;
  • репозиторий обновляется автоматически несколько раз в неделю.

Все 229 JSON-файлов наборов иконок (~395 МБ) уже включены в этот репозиторий — отдельно клонировать ничего не нужно.


Офлайн-просмотрщик

В корне репозитория находится

offline-icons.html
— браузерный инструмент для локального поиска и просмотра иконок без подключения к интернету. Данные берутся напрямую из
icon-sets/json/
.

Запуск

Открыть в браузере:

http://localhost:5173/offline-icons.html

Остановка

В терминале с запущенным сервером нажать

Ctrl+C
.

Фоновый запуск

Сборка не требуется — приложение работает напрямую из файлов репозитория.


Сборка и тестирование

Менеджер пакетов: pnpm 10.32.1. Инструменты: TypeScript 5.9, ESLint 9, Vitest 4, tsdown, Vite 7.

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

Сборка всех пакетов

Запуск тестов

Линтинг

Очистка артефактов сборки

Все команды запускаются рекурсивно по пакетам в порядке:

packages/
iconify-icon/
components/
components-css/
.


Tauri: упаковка в десктоп-приложение

Подробные варианты реализации описаны в TAURI.md. Краткое резюме:

ВариантРазмер установщикаСложностьРекомендация
Статические ресурсы (
asset://
)
~700 MBНизкаяПростейшая реализация
SQLite-база (
icons.db
)
~200 MBВысокаяProduction-дистрибуция
Sidecar-папка (данные рядом с бинарником)~10 MBСредняяИнструмент разработчика
Встроенный HTTP-сервер (axum)~10 MBСредняяМинимум изменений в HTML

Для личного использования рекомендуется Вариант 4 (встроенный HTTP-сервер) или Вариант 3 (sidecar-папка) — фронтенд-код не требует изменений, приложение запускается как нативное окно.

Предварительные требования: