JavaScript

kubai-icons crea iconos desde JavaScript puro y ofrece el componente web <kubai-icon>.

Instalación

bash
npm install kubai-icons

Crear un elemento

createIcon devuelve un elemento <svg> que puedes añadir a la página:

js
import { createIcon, Folder, MailPlus } from "kubai-icons";

document.querySelector("#toolbar").append(
  createIcon(Folder, { size: 24 }),
  createIcon(MailPlus, { color: "#EC4899", trigger: "parent" })
);

trigger: "parent" solo funciona si añades el icono a la página de forma síncrona después de crearlo, como en este ejemplo. Para añadir un icono más tarde, consulta Renderizar en el servidor y vincúlalo tú mismo.

Sustituir marcadores

Añade un elemento con data-kubai donde quieras un icono y llama a replaceIcons para sustituir cada elemento por su SVG. Indica todos los iconos que uses en la opción icons. Este ejemplo supone que usas un empaquetador:

html
<i data-kubai="folder" data-size="32"></i>
<i data-kubai="calendar-check" data-color="#22C55E"></i>

<script type="module">
  import { replaceIcons, Folder, CalendarCheck } from "kubai-icons";
  replaceIcons({ icons: { Folder, CalendarCheck } });
</script>

Usar el componente web

Añade una etiqueta script para cargar el componente desde una CDN. Descarga el archivo de cada icono la primera vez que se usa.

html
<script type="module" src="https://cdn.jsdelivr.net/npm/kubai-icons@0/dist/cdn/element.js"></script>

<kubai-icon name="folder"></kubai-icon>
<kubai-icon name="bell-off" size="32" color="#F97316" variant="soft" label="Muted"></kubai-icon>

Renderizar en el servidor

toSvg devuelve el icono como una cadena HTML sin movimiento:

js
import { toSvg, Folder } from "kubai-icons";

const html = toSvg(Folder, { size: 24, title: "Files" });

Para añadir movimiento en el navegador, busca el elemento <svg> renderizado, pásalo a animate y conecta el resultado con el elemento que deba iniciar el movimiento:

js
import { animate, bindTrigger, Folder } from "kubai-icons";

const svg = document.querySelector("#files svg");
bindTrigger(svg.parentElement, animate(svg, Folder), Folder);

Kubai Icons es de uso gratuito Patrocinar el proyecto