Minimal icon set
https://swanix.org/icons
Este proyecto se encuentra en una etapa experimental, puede contener inconsistencias y cambios inesperados sin previo aviso.
Descarga los archivos de la carpeta dist
- swanix-icons.svg
- swanix-icons.css
Incluye la referencia del archivo CSS en el <head>
de tu HTML, esta hoja de estilos contiene algunas clases para definir el tamaño y color de los iconos así como algunas propiedades generales:
<link rel="stylesheet" href="path/to/swanix-icons.css" type="text/css" />
Luego puedes incluir un icono del sprite con el siguiente código:
<svg class="icon"><use xlink:href="path/to/swanix-icons.svg#home"></use></svg>
En el anterior ejemplo se mostrará el icono home
(la palabra después del símbolo #
corresponde al nombre del icono) puedes cambiarla para mostrar cualquiera de los iconos disponibles
Advertencia: con este método el archivo SVG debe encontrarse en el mismo dominio donde se cargan los archivos HTML, de lo contrario no se mostrará correctamente el sprite, esto se debe a una limitación de seguridad de los archivos XML para ser cargados desde dominios externos (son bloqueados por algunos navegadores). Para saber más puedes leer el siguiente artículo: Understanding CORS and SVG
Este método es todavía experimental y consiste en inyectar el sprite SVG vía AJAX, de esta manera evitamos el bloqueo del archivo cuando lo utilizamos desde un dominio diferente al principal, esto es ideal cuando trabajamos con un CDN para almacenar nuestros archivos estáticos. Para probar su funcionamiento puedes incluir en el <head>
de tu HTML los archivos que apuntan a nuestro CDN:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/swanix/icons/dist/swanix-icons.css"/>
<script src="https://cdn.jsdelivr.net/gh/swanix/icons/dist/swanix-icons.js"></script>
Para incluir los iconos debes omitir la ruta completa al archivo, solo es necesario escribir el nombre del icono:
<svg class="icon"><use xlink:href="#home"></use></svg>
En el ejemplo anterior se mostrará el icono home
en el HTML. Puedes probar tú mismo utilizando esta plantilla de CodePen que incluye los archivos que apuntan a nuestro CDN.
También puedes descargar los 3 archivos (CSS, SVG y JS) para incluirlos en tu propio CDN, pero recuerda que debes referenciar la nueva ruta del sprite SVG en el archivo swanix-icons.js
:
ajax.open("GET", "url/to/cdn/swanix-icons.svg", true);
Este método se basa en el artículo Ajaxing for your SVG Sprite
Antes de iniciar debes tener previamente instalados:
En una carpeta vacía de tu equipo escribe el siguiente comando en la terminal:
git clone https://github.com/swanix/icons.git
Cuando se termine de clonar el proyecto escribe el comando:
npm install
Este comando instalará las dependencias de Node.js especificadas en el archivo package.json
(en esencia se trata de Gulp.js y una serie de plugins necesarios para automatizar algunas tareas de desarrollo).
Las dependencias se instalan en la carpeta node_modules
(creada automáticamente con el comando npm install
) y luego de instaladas podemos utilizar Gulp para ver nuestra página de inicio con:
npm run serve
Este comando ejecuta un servidor estático que apunta a la carpeta docs
este abrirá el navegador de forma automática mostrando el sitio de prueba con ejemplos del framework y observando si se realizan cambios en los archivos de la carpeta src
para generar el código de estilos CSS y HTML.
icons/ # Carpeta raíz del repositorio
│
├── dist/ # Código generado para producción
│ ├── swanix-icons.svg
│ ├── swanix-icons.css
│ └── swanix-icons.js
│
├── docs/ # Documentación y demos
│ ├── assets/
│ ├── content/
│ └── index.html
│
├── src/ # Código fuente para desarrollo
│ ├── _figma/
│ ├── icon1.svg
│ ├── icon2.svg
│ ├── icon3.svg
│ ├── ...
│ └── icon40.svg
│
│
├── README.md
├── gulpfile.js # Tasks de Gulp
└── package.json # Dependencias de Node.js
│
└---------------------------------------------------------
Para el desarrollo se utilizan los siguientes módulos de Node.js (la mayoría son plugins de Gulp).
Módulo | Versión | Descripción |
---|---|---|
browser-sync | 2.18.12 | Permite ejecutar un servidor local y visualizar nuestro sitio en múltiples navegadores remotos en tiempo real. |
gulp | 4.0.2 | Módulo oficial de Gulp para Node.js |
gulp-rename | 1.2.2 | Permite renombrar archivos con el nombre que le especifiquemos |
gulp-plumber | 1.1.0 | Permite manejar e identificar errores en tiempo de ejecución. |
gulp-header | 2.0.7 | Permite añadir encabezados a cualquier archivo. |
gulp-svgmin | 1.2.3 | Permite minificar y optimizar archivos SVG |
gulp-svgstore | 6.1.0 | Permite fusionar archivos SVG individuales en un solo sprite SVG |
gulp-cheerio | 0.6.3 | Permite modificar elementos HTML y XML con Cheerio |
gulp-data | 1.3.1 | Permite generar datos a partir de diferentes fuentes: json, front-matter, databases, promises, etc. |
The MIT License (MIT)
Copyright (c) 2016 - present
Sebastian Serna
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.