icon-ochke

0

Описание

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

https://bazarow.ru

Языки

  • TypeScript74,2%
  • HTML6,8%
  • CSS6,5%
  • Vue4,6%
  • JavaScript4,1%
  • Svelte3,7%
  • Остальные0,1%
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
19 дней назад
месяц назад
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-папка) — фронтенд-код не требует изменений, приложение запускается как нативное окно.

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