Files
svg-sprites/docs/ru/guides/standalone.md
S.Gromov 8b3365f957 feat: добавить поддержку 20 framework exact modes
Добавлены exact modes:
- vue@vite и vue@webpack
- nuxt@vite и nuxt@webpack
- svelte@vite, svelte@webpack и sveltekit@vite
- angular@application и angular@webpack
- astro@vite
- solid@vite, solid@webpack и solid-start@vite
- preact@vite и preact@webpack
- qwik@vite
- lit@vite и lit@webpack
- alpine@vite и alpine@webpack

Для каждого mode реализованы изолированный adapter, нативный
framework-компонент, declarations, manifest, CSS и внешний asset URL.

Добавлены production integration-стенды с генерацией, typecheck,
сборкой и Playwright-проверкой рендера спрайта и Viewer.

Обновлены Viewer, RU/EN-гайды, README, technical reference и AI skills.
Итоговая матрица включает 29 exact modes.

Проверки:
- 48 unit-тестов
- 29 integration E2E-тестов
2026-07-15 16:56:44 +03:00

3.6 KiB
Raw Blame History

SVG-спрайт для сайта без сборщика

Соберите SVG-иконки в один файл и используйте их на HTML-странице.

Генерация спрайта

Устанавливать пакет в проект не нужно.

1. Создайте конфиг спрайта

Выберите каталог для будущего SVG-спрайта, например assets/app-icons, и создайте в нём svg-sprite.config.json. В input укажите путь к существующим SVG относительно файла конфигурации. Перемещать или копировать иконки не требуется.

{
  "mode": "standalone",
  "name": "icons",
  "input": "../svg-icons/**/*.svg"
}

2. Сгенерируйте спрайт

Передайте команде путь к конфигу:

npx --yes @gromlab/svg-sprites assets/app-icons/svg-sprite.config.json

Пакет соберёт иконки в каталог .svg-sprite рядом с конфигом:

assets/app-icons/.svg-sprite/
├── sprite.svg
└── svg-sprite.manifest.json
  • sprite.svg — готовый спрайт для использования на сайте.
  • svg-sprite.manifest.json — данные об иконках для Viewer.

Каталог .svg-sprite создаётся автоматически и полностью заменяется при каждой генерации. Не редактируйте его содержимое вручную.

3. Используйте иконку

В index.html укажите путь к созданному sprite.svg. После # добавьте имя нужной иконки без расширения .svg:

<svg
  width="24"
  height="24"
  aria-label="Готово"
>
  <use href="./assets/app-icons/.svg-sprite/sprite.svg#icon-name"></use>
</svg>

Дебаг и превью

sprite.svg — технический файл, а не галерея иконок. При его открытии нельзя удобно просмотреть весь набор. Кроме того, градиенты, маски, фильтры и ссылки на внутренние id могут отображаться с артефактами.

Для визуальной проверки используйте официальный Viewer. Он показывает все иконки спрайта и помогает проверить их цвета и отображение.

Viewer необязателен и предназначен только для разработки. Устанавливать пакет через npm не нужно.

Viewer работает напрямую с файлами из .svg-sprite. Ничего копировать не нужно.

Добавьте Viewer на страницу

Добавьте в index.html module script и укажите пути к generated manifest и спрайту:

<script
  type="module"
  src="https://cdn.jsdelivr.net/npm/@gromlab/svg-sprites/dist/viewer-element.js"
></script>

<gromlab-sprite-viewer
  viewer-title="Иконки проекта"
  manifest-url="./assets/app-icons/.svg-sprite/svg-sprite.manifest.json"
  sprite-url="./assets/app-icons/.svg-sprite/sprite.svg"
></gromlab-sprite-viewer>

Viewer можно вынести в отдельный HTML-файл в корне сайта, предназначенный только для разработки и проверки иконок.