Camino de yuwen-c

HOLA SVG, una herramienta SVG muy útil

#svg #icons tools

Cuándo usar SVG

En proyectos reales, solemos necesitar iconos para acciones del usuario, como flechas o botones de siguiente/anterior. SVG encaja muy bien: son formas simples y se pueden ajustar color y tamaño con facilidad.

HOLA SVG

Quiero compartir una web muy útil: HOLA SVG.

Captura de la interfaz de HOLA SVG

La usé por primera vez en la segunda mitad de 2020. Cuando regresé en 2021, me sorprendió ver muchas más opciones.

Apliqué varios iconos en mi proyecto worldtime: el icono de suma, el de resta y un símbolo hacia arriba.

Captura del proyecto worldtime

Tomemos el icono de suma como ejemplo:

<svg fill='none' stroke='#0E1A27' stroke-width='8' stroke-dashoffset='0' stroke-dasharray='0' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>
	<circle cx="50" cy="50" r="40"/> 
	<line x1="35" y1="50" x2="65" y2="50" /> 
	<line x1="50" y1="35" x2="50" y2="65" />
</svg>

Su estructura es muy clara: un svg envolvente, un <circle> y dos <line>.

Así lo usé dentro de mi proyecto:

<div className="w-10 ml3">
	<svg className="grow"
  fill='none' stroke='#555555' strokeWidth='10' strokeDashoffset='194' strokeDasharray='0' strokeLinecap='round' strokeLinejoin='round' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'
  onClick={onPlusButton} >
	<circle cx="50" cy="50" r="40"/> 
	<line x1="35" y1="50" x2="65" y2="50" /> 
	<line x1="50" y1="35" x2="50" y2="65" />
</svg>
</div>

P. D. Como usé React, cambié los atributos a camelCase.

stroke-width='8'

strokeWidth='10'

Personalización fácil

Como el código es simple, personalizarlo también lo es. Puedes cambiar el color con stroke y el grosor con stroke-width.

Además, el sitio tiene una barra superior para ajustar grosor, color y bordes redondeados.

Barra superior de HOLA SVG para ajustar grosor, color y esquinas

El tamaño también se puede controlar envolviendo el SVG con un <div>. En mi ejemplo, w-10, ml3 y grow son clases de Tachyons.

También puedes modificar la geometría del icono. Yo necesitaba un icono de mover hacia arriba y empecé con este símbolo:

<svg fill='none' stroke='#0E1A27' stroke-width='8' stroke-dashoffset='0' stroke-dasharray='0' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>
	<line x1="20" y1="80" x2="80" y2="80" />
	<line x1="50" y1="15" x2="50" y2="65" />
	<polyline fill="none" points="30,30 50,15 70,30" />
</svg>

Está compuesto por un <polyline>, una línea vertical y una horizontal.

Yo quería una versión más simple, así que quité las dos líneas y dejé solo el trazo en forma de flecha:

<div className="w-10 dib fr w2-ns">
	<svg 
	 onClick={() => {onUpButton(tz)}}
	 className="grow"
	 fill='none' stroke='#555555' strokeWidth='10' strokeDashoffset='194' strokeDasharray='0' strokeLinecap='round' strokeLinejoin='round' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>
	<polyline fill="none" points="30,30 50,15 70,30" />
	</svg>
</div>

Otros recursos

Otro recurso SVG muy bueno es Font Awesome. Tiene muchos iconos cotidianos, aunque requiere instalación.

Si necesitas pocos iconos y de estilo funcional, HOLA SVG es una opción excelente. Su autora, Mariana Beldi, es diseñadora gráfica e ingeniera UI/UX de Argentina.

Hola Belda