Seleccionar página
julio 31, 2017

Personalizar iconos con CSS

por | CSS

Antes de comenzar a personalizar iconos con css

Antes de continuar, si no conoces como funciona Font Awesome, te recomiendo que leas este post: Icon Fonts: cómo utilizar Font Awesome en nuestra web. En él, explico cómo puedes utilizar estos iconos e incluirlos en tu web.

Si ya lo has leído o lo tienes controlado, podemos empezar a personalizar nuestros iconos con CSS 🙂

Los icons Font, como la librería Font Awesome, son geniales para web; pesan muy poco consumiendo pocos recursos, son fáciles de personalizar con CSS, y además, pueden escalarse sin problemas de pixelado.

Añadir un icono

Para comenzar vamos a añadir un párrafo con un icono. Como comentaba en el post anterior Icon Fonts: cómo utilizar Font Awesome en nuestra web, añadimos el icono a través del pseudo elemento :before de la clase fa-bullhorn.

Código HTML:

Código CSS:

Resultado

Incluir icono con Icon Fonts


Cambiar el tamaño del icono

Para cambiar el tamaño del icono simplemente hay que añadir la regla de CSS font-size a la etiqueta <i>:

Resultado

cambiando de tamaño un icono


Cambiar el color y fondo

Podemos darle cualquier color a nuestro icono y/o al fondo, utilizando el siguiente código:

Resultado

icono con colore de fondo


Añadiendo un toque de estilo

Ahora vamos a modificar la anchura y la altura, además, utilizaremos la propiedad text-align:center para alinear el icono en el centro, la propiedad line-height para alinearlo verticalmente, y por último, añadimos border-radius para redondear el fondo.

Resultado

icono con color y fondo

Ahora vamos a añadir un borde y sombra interior.

Resultado

icono con sombra interior


Modificando la posición de nuestro icono

Vamos a modificar la posición de nuestro icono. Para ello utilizaremos la propiedad de CSS position. Para que la posición del icono sea relativa al párrafo que lo contiene tenemos que añadir postion:relative al párrafo y position:absolute al elemento <i>:

Resultado

icono con borde


Añadir icono sin utilizar la etiqueta <i> ni clases.

En todos los ejemplos anteriores hemos añadido reglas de CSS directamente a la etiqueta <i>, pero ahora vamos a añadir un icono a cualquier elemento (por ejemplo un div) de nuestro documento HTML a través del pseudo selector :before. Además jugaremos con la posición del icono con las propiedades top y left.

Creamos un div con la clase highlight y un texto en su interior:

Para añadir un icono, tenemos que utilizar el pseudo elemento :before. Con las dos primeras líneas del siguiente código CSS, estamos indicando que antes de cualquier elemento con la clase hightlight, vamos a mostrar el contenido «/f006» y se debe mostrar con la tipografía FontAwesome. Recuerda que FontAwesome y otras Icon Fonts tienen asociado un valor a cada icono. Puedes ver los valores de FontAwesome en esta web: http://astronautweb.co/snippet/font-awesome/

Resultado

icono con position absolute

Otro ejemplo

Resultado

 icono como fondo de div

 

¿Te parece complicado personalizar iconos con CSS? ¿Prefieres utilizar imágenes? Cuéntame tu opinión en los comentarios.

Espero que te haya gustado este tutorial y te animes a crear iconos personalizados para darle un toque extra a tus proyectos y diseños. Recuerda que puedes descargar los archivos originales de estos ejemplos.

 

Descarga todos estos iconos y utilízalos en tus proyectos

Anto Fernández

Anto Fernández

Mi nombre es Anto Fernández y gestiono este blog. En el puedes encontrar recursos que yo mismo he generado de tereceros acerca de diseño y maquetación web.

10 Comentarios

  1. Mariana

    Hola, agradezco tu aportanción con el texto de arriba.
    Sin embargo me gustaría saber como sobrescribir un icono que ya esta en un pluguing y cambiarlo por uno totalmente personalizado.

    Gracias

    Responder
    • Anto Fernández

      Hola Mariana.
      En principio si. Tendrías que seguir las directrices de este post.
      Y sobre escribir las regla css que afectan al icono del que me hablas.
      Un saludo

      Responder
    • Anto Fernández

      Hola Mariana. Es muy relativo y no tengo información suficiente. Es más puede que el icono incluso sea una imagen y por lo tanto no podrías seguir estos pasos.

      Responder
  2. Augusto Mateos

    Agradezco mucho tu explicación tan detallada la verdad me estaba volviendo loco trataba de poner dos en la cabecera pero lo estaba haciendo mal.
    Te pregunto algo.
    Me podrías dar un tips sobre el tema de elegir los colores para las web ?

    Responder
    • Anto Fernández

      Hola Augusto.
      Gracias por visitar el blog y comentar.
      Es un tema un poco complicado para resumir en un post pero mi consejo es que utilices fondos neutros, un color principal y otro para botones y llamadas a la acción.

      Responder
  3. Eliana

    Hola! Muy buena entrada!
    Quería hacerte una consulta.
    Cuando coloco los íconos de Fontawesome en mi html, por defecto aparecen de color violeta, queria saber de que forma los puedo cambiar en css, para que me queden de color negro.
    Gracias

    Responder
  4. Anto Fernández

    Hola Eliana.
    Posiblemente tengas otra hoja de estilos aplicando este color. O bien se estén aplicando los estilos por defecto del navegador. Prueba a poner en tu css esto .fa{color:#tucolor !important;} Con la etiqueta important estarás forzando a que se vean del color que indicas.

    Otra posibilidad es que estén dentro de un enlace y por eso el color se esté cambiando.
    Ya me cuentas!! Gracias por comentar

    Responder
  5. Cecilia Islas

    Hola!
    Tengo una duda.
    ¿Cómo cambiarías el color del icono según un valor?
    Por ejemplo: tengo una página web donde requiero mostrar la disponibilidad de un producto mediante un icono de color, si el producto esta disponible, el color del icono deberá ser verde, si esta agotado deberá cambiar a rojo.
    Gracias de antemano por tu respuesta.
    Saludos!

    Responder
    • Anto Fernández

      Hola Cecilia. Necesitarías tomar algún valor o clase. Si esta disponible class=»disponible» si no class=»no-stock» por decirte algo. Pero no se pueden aplicar propiedades CSS dependiendo del contenido HTML.

      Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NO TE PIERDAS NADA

SUSCRÍBETEA MI LISTA

Recibe en tu correo los nuevos post y contenidos de mi blog.

Revisa tu correo, sólo queda que confirmes tu suscripción al blog.