Skip to content

Описание API

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

Import

Импорт иконок осуществляется двумя способами:

  1. Импорт объекта icons, который содержит все доступные иконки библиотеки
js
import { icons } from "@web-global/icons";
  1. Импорт конкретной иконки по её имени в camelCase формате
js
import { home } from "@web-global/icons";

Каждая иконка представлена как свойство этого объекта, где ключ — это имя иконки, а значение — это данные SVG, необходимые для её отображения.

Создание иконок реализовано через функцию createIcons, которая должна быть вызвана внутри жизненного цикла компонента, такого как onMounted во Vue или useEffect в React. Это необходимо, потому что инициализация иконок должна происходить после рендеринга DOM-элементов, к которым они привязываются.

createIcons

NameTypeDefaultDescription
icons{[key: string]: IconNode}{}Объект с иконками, где ключ — это имя иконки (в camelCase формате), а значение — данные для создания иконки. Обязательный параметр
iconIdsstring[][]Массив ID элементов, которые должны быть заменены на иконки. Если массив пуст, то замена происходит для всех элементов с атрибутом nameAttr
nameAttrstring"data-icon"Имя атрибута, по которому будут найдены элементы для замены иконками. Например, если nameAttr равно "data-icon", заменятся элементы с атрибутом data-icon
attrsObject{}Дополнительные HTML-атрибуты, которые будут добавлены к заменённым элементам. Например, классы или стили
linearGradientstring-Если передана CSS-строка, представляющая линейный градиент (например, linear-gradient(45deg, #f06, transparent)), то для иконок будет применён данные градиент
replaceAllbooleanfalseЕсли true, заменяются все элементы, независимо от переданного массива iconIds. По умолчанию замена происходит только для указанных iconIds

Возвращаемое значение:

  • Тип: void
  • Описание: Функция не возвращает значения. Её цель — заменить элементы на странице с атрибутом, заданным параметром nameAttr, на соответствующие SVG иконки на основе переданного объекта icons

Пример 1:

js
<div data-icon="home" />

<script>
import { createIcons, icons } from '@web-global/icons';

// Инициализация иконок
createIcons({
  icons: icons,
  nameAttr: 'data-icon',
  attrs: { class: 'icon-class' },
});
</script>

Пример 2:

js
<div id="icon-id" id= data-icon="home" />

<script>
import { createIcons, home } from '@web-global/icons';

// Инициализация иконки
createIcons({
  iconIds: ["icon-id"],
  icons: {
    home,
  },
  linearGradient: "linear-gradient(45deg, #f06, transparent)",
});
</script>

metadata

В качестве информации об иконках доступен объект metadata, который можно использовать для получения данных о каждой иконке, включая ее название, дату добавления, стили, категории и области применения.

Возвращаемое значение:

  • Тип: Object
  • Описание: Возвращает объект с метаинформацией об иконках.

Пример:

js
import { metadata } from "@web-global/icons";

console.log(metadata.add); // { "name": "add", "date-added": "2024-11-25", "date-modified": null, "global": true, "style": ["outlined"], "categories": [], "instances": ["india", "mexico", "pakistan"] }

convertGradient

NameTypeDefaultDescription
gradientstring-CSS-строка, представляющая линейный градиент (например, linear-gradient(45deg, #f06, transparent)), которая будет преобразована в SVG <linearGradient>
idunknown-Идентификатор, который будет добавлен к атрибуту id элемента <linearGradient>. Если не указан, будет создан автоматически в виде "generatedGradient". Этот градиент будет применим ко всем иконкам с таким же fill url

Возвращаемое значение:

  • Тип: string
  • Описание: Возвращает строку с разметкой SVG <linearGradient>, которая содержит преобразованные остановки цвета и угол, если он задан

Пример:

js
<div data-icon="home" />

<script>
import { convertGradient } from '@web-global/icons';

const gradient = 'linear-gradient(45deg, #f06, transparent)';
const svgGradient = convertGradient(gradient, 'my-gradient');
console.log(svgGradient);

// Вывод:
// <linearGradient id="generatedGradient-my-gradient" gradientTransform="rotate(45)">
//   <stop offset="0%" stop-color="#f06" />
//   <stop offset="100%" stop-color="transparent" />
// </linearGradient>

toCamelCase

NameTypeDefaultDescription
stringstring-Cтрока, которую необходимо преобразовать в camelCase формат

Возвращаемое значение:

  • Тип: string
  • Описание: Возвращает строку в формате camelCase

Пример:

js
<div data-icon="home" />

<script>
import { toCamelCase } from '@web-global/icons';

console.log(toCamelCase('example_string-name')); // exampleStringName