Usando iconos en vez de imágenes

En el mundo del desarrollo frontend, la optimización y la estética se entrelazan para crear experiencias de usuario cada vez mejores.

En este contexto, la elección entre utilizar iconos o imágenes clásicas puede parecer trivial, pero sus implicaciones son significativas.

Vamos a exponer algunas ventajas por las que a día de hoy los iconos superan a las imágenes clásicas en el desarrollo frontend:

Escalabilidad y Adaptabilidad:

Los iconos son vectoriales, lo que significa que pueden escalarse sin perder calidad. Esto es crucial en un entorno donde la variedad de dispositivos y tamaños de pantalla es cada vez mayor. Las imágenes clásicas, en cambio, pueden pixelarse o distorsionarse al cambiar de tamaño, lo que afecta negativamente la experiencia del usuario.

Optimización del Rendimiento

Los iconos, al ser representados como fuentes o SVG (Scalable Vector Graphics), generalmente ocupan menos espacio en comparación con las imágenes clásicas. Esto se traduce en tiempos de carga más rápidos, lo que mejora la eficiencia y la experiencia del usuario, especialmente en dispositivos móviles y conexiones de red lentas.

Consistencia Visual y Coherencia de Marca

Los iconos permiten mantener una estética coherente y una identidad de marca sólida en toda la aplicación. Al utilizar una biblioteca de iconos bien diseñada, como Font Awesome o Material Icons, se garantiza una apariencia uniforme en toda la interfaz, lo que mejora la legibilidad y la comprensión del usuario.

Flexibilidad y Facilidad de Personalización

Los iconos pueden ser fácilmente personalizados mediante CSS. Esto incluye cambiar el color, el tamaño, agregar efectos de animación y más, todo ello sin perder calidad. Por otro lado, modificar imágenes clásicas puede ser más complicado y requiere software de edición de imágenes.

Usabilidad y Claridad de la Interfaz

Los iconos, cuando se utilizan de manera adecuada, pueden proporcionar indicadores visuales claros y concisos de las funciones y acciones disponibles en una interfaz. Esto mejora la usabilidad al simplificar la navegación y reducir la carga cognitiva del usuario.

Piensa en estos ejemplos y veras como rápidamente identificas como hacer uso de iconos en vez de imágenes en las próxima web que desarrolles:

Barra de Navegación: En una barra de navegación, utilizar iconos en lugar de texto o imágenes para representar diferentes secciones del sitio puede mejorar la comprensión y la estética general de la interfaz.

Botones de Acción: Los botones de acción, como «Descargar», «Enviar» o «Editar», se benefician de la claridad visual que proporcionan los iconos. Esto permite a los usuarios identificar rápidamente la función de cada botón y realizar acciones con mayor eficiencia.

Indicadores de Estado: En aplicaciones de productividad o paneles de administración, los iconos pueden utilizarse para representar estados o métricas importantes de manera más compacta y visualmente atractiva que las imágenes clásicas.

¿Qué es Font Awesome?

Font Awesome es una biblioteca de iconos de código abierto que ofrece una amplia gama de iconos vectoriales escalables.

Fue creada inicialmente por Dave Gandy en 2012 y desde entonces ha experimentado un crecimiento masivo y una adopción generalizada en la comunidad de desarrollo web.

La gran ventaja de Font Awesome radica en su simplicidad y versatilidad. Los iconos se representan como fuentes (de ahí el nombre «Font» Awesome), lo que significa que son escalables y se pueden modificar fácilmente con CSS.

Esto proporciona una solución elegante y eficiente para integrar iconos en aplicaciones web, en lugar de depender de imágenes o sprites complicados.

Beneficios de Utilizar Font Awesome

Escalabilidad y Flexibilidad: Font Awesome ofrece iconos vectoriales escalables que se adaptan perfectamente a cualquier tamaño sin perder calidad. Esto permite una flexibilidad excepcional al diseñar interfaces responsivas que se ven bien en cualquier dispositivo.

Facilidad de Uso: La integración de Font Awesome en un proyecto es sencilla. Solo se necesita agregar una línea de código para incluir la biblioteca en el proyecto, y luego se puede acceder a los iconos utilizando clases CSS predefinidas.

Amplia Variedad de Iconos: Font Awesome ofrece una amplia biblioteca de iconos que abarcan diversas categorías, desde iconos de redes sociales hasta iconos de usuario, herramientas y mucho más. Esto permite a los desarrolladores encontrar fácilmente el icono adecuado para cada situación sin tener que crearlos desde cero.

Consistencia Visual: Al utilizar una biblioteca de iconos cohesiva como Font Awesome, se garantiza una consistencia visual en toda la aplicación. Esto ayuda a crear una experiencia de usuario más intuitiva y profesional.

Optimización del Rendimiento: Al utilizar iconos como fuentes, en lugar de imágenes individuales, se reduce la carga de la página y se optimiza el rendimiento general del sitio. Esto es especialmente beneficioso para aplicaciones web que se ejecutan en dispositivos móviles o conexiones de red más lentas.

Como usar y algunos ejemplos de Font Awesome

En la propia página de Font Awesome tenemos una documentación bastante buena sobre su instalación y uso, además de algunas características en las cuales no vamos a entrar en este artículo, que simplemente es introductorio.

Para usarlo podemos descargar los archivos a nuestro PC local o crear un link a lo que ellos llaman «kit».

Cuando lo descargamos, al descomprimirlo, nos encontramos 21 megas de css, js, svg,…. pero no debemos incluir todo, aquí lo explica con claridad:

https://docs.fontawesome.com/web/setup/host-yourself/webfonts

Básicamente la cabecera de nuestra web sería:

<head>
    <link href="fontawesome/css/fontawesome.css" rel="stylesheet" />
    <link href="fontawesome/css/brands.css" rel="stylesheet" />
    <link href="fontawesome/css/solid.css" rel="stylesheet" />
 </head>
 <body>
    <i class="fa-solid fa-user"></i>
    <i class="fa-brands fa-github-square"></i>
 </body>

Nosotros, si vamos a hacer un uso clásico sin modificar nada del core, lo mejor es usar la versión link para utilizar los iconos en nuestra web, tendríamos entonces, que crear nuestro primer «Font Awesome kit» (nos hará falta un email).

Una tenemos el enlace a nuestro kit:

<script src="https://kit.fontawesome.com/XXXXXXXXXX.js" crossorigin="anonymous"></script>

Ya podemos incluirlo en nuestra cabecera y empezar con el uso de los iconos de Font Awesome:

Aquí algunos ejemplos prácticos para nuestra futura web con Font Awesome

Este código crea un botón de descarga con un icono de nube descargando, proporcionando una indicación visual clara de la acción que realizará el botón.

<button class="btn btn-primary">
    <i class="fas fa-cloud-download-alt"></i> Descargar
</button>

Menú con Iconos, aquí vemos una barra de navegación con iconos correspondientes a diferentes secciones del sitio. Esto mejora la usabilidad al proporcionar una referencia visual rápida para cada enlace.

<nav class="navbar navbar-expand-lg navbar-light bg-light">
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item">
                <a class="nav-link" href="#">
                    <i class="fas fa-home"></i> Inicio
                </a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">
                    <i class="fas fa-info-circle"></i> Acerca de
                </a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">
                    <i class="fas fa-envelope"></i> Contacto
                </a>
            </li>
        </ul>
    </div>
</nav>

En el último ejemplo, los iconos se utilizan junto a las etiquetas de los campos de formulario para mejorar la comprensión del usuario sobre qué información se espera en cada campo:

<form>
    <div class="form-group">
        <label for="exampleInputEmail1">
            <i class="fas fa-envelope"></i> Email:
        </label>
        <br/>
        <input type="email" class="form-control" id="email"  placeholder="correo electrónico">
    </div>
    <button type="submit" class="btn btn-primary">
        <i class="fas fa-paper-plane"></i> Enviar
    </button>
</form>

El buscador de iconos gratuitos es bastante cómodo a la hora de decidirnos por uno en concreto: https://fontawesome.com/search

Os invito a explorar pacientemente la web de Font Awesome para conocer todas las posibilidades que os ofrece el uso de esta libreria y sus combinaciones con css:

https://docs.fontawesome.com/web/style/styling