
Si está creando un sistema de íconos para un sitio, tiene algunas opciones. Si sabe que los íconos deben ser imágenes rasterizadas, es probable que use sprites CSS. Si los íconos serán imágenes vectoriales (mucho más comunes en estos días), tienes algunas opciones. Dos de esas opciones son usar SVG en línea y usar fuentes de iconos.
Comparemos.
Los iconos son vectores
Los íconos vectoriales tienen grandes ventajas: redimensionables hacia arriba y hacia abajo sin perder calidad, extra nítidos en pantallas retina y tamaño de archivo pequeño entre ellos.
Fuente del icono | SVG en línea |
---|---|
Los navegadores lo consideran texto, por lo que los íconos tienen suavizado como tal. Puede hacer que los íconos no sean tan nítidos como cabría esperar. |
Vector recto hacia arriba |
En un ejemplo personal reciente, al convertir algunos íconos de fuentes a SVG en CodePen, algunos de los íconos de fuentes eran notablemente menos nítidos que los que convertí.
Control CSS
Fuente del icono | SVG en línea |
---|---|
Puede controlar el tamaño (a través de |
Tiene el mismo control de CSS que con una fuente, pero mejor, porque puede 1) controlar partes individuales de un ícono de varias partes y 2) usar CSS específico de SVG como propiedades de trazo. |
La gran victoria para SVG en línea aquí son probablemente los íconos multicolores.
Posicionamiento
Fuente del icono | SVG en línea |
---|---|
Puede ser frustrante colocar un icono de fuente. Los iconos se insertan a través de pseudo elemento, y depende de |
SVG simplemente es del tamaño que es. |
Vea cómo el cuadro de pseudoelemento no está exactamente donde está realmente el glifo.
El cuadro SVG tiene el tamaño del SVG.
Fracasos extraños
Fuente del icono | SVG en línea |
---|---|
Una fuente de icono puede fallar porque 1) se está cargando entre dominios sin los encabezados CORS adecuados y a Firefox no le gusta eso 2) por algún motivo, el archivo de fuente no se carga (problema de red, falla del servidor, etc.) 3) Hay es un error extraño de Chrome que descarga @font-face y muestra una fuente alternativa en su lugar 4) El navegador sorprendente no es compatible con @font-face. Las fallas de fuentes son bastante comunes por una variedad de razones. Además, si intenta hacer algo inteligente como asignar íconos al “Área de uso privado” de Unicode y la fuente falla, puede hacer algo realmente extraño como mostrar un emoji inesperado, porque el entorno en el que se encuentra usa esa misma área para emoji. . ¡O ese emoji podría incluso anular tus glifos! |
SVG en línea está justo en el documento. Si el navegador lo admite, lo muestra. |
fallas forzadas
Fuente del icono | SVG en línea |
---|---|
|
Incluso esos navegadores proxy son compatibles con SVG. A los bloqueadores no les importa SVG. |
Bloqueador de anuncios que ofrece bloquear totalmente las fuentes personalizadas.
Forzar una fuente diferente en una página puede destruir un sistema de fuentes de iconos.
Semántica
Fuente del icono | SVG en línea |
---|---|
Para usar de manera responsable, está inyectando el ícono a través de un pseudo elemento en un (vacío) |
Los iconos son pequeñas imágenes. la semántica de |
Accesibilidad
Fuente del icono | SVG en línea |
---|---|
Tienes que tener mucho cuidado con las fuentes de iconos para asegurarte de hacerlo de una manera accesible. Básicamente, debe hacer todo lo que se indica en este artículo. Siempre está luchando para asegurarse de que el ícono en sí no se lea (pero algo más sí) y que se manejen los estados de falla difíciles de detectar. |
No soy un experto, pero la investigación sugiere usar la combinación adecuada de elementos y atributos ( |
Facilidad de uso
Fuente del icono | SVG en línea |
---|---|
El uso de una fuente de íconos creada previamente nunca fue particularmente responsable (demasiados íconos sin usar). Crear su propia fuente de icono nunca fue demasiado cómodo. Creo que los mejores fueron Pictos Server (limitado a iconos de Pictos) e IcoMoon (inicio de sesión gratuito para guardar proyectos). Fontello tiene una API que no vi que se usara para hacer una buena herramienta de compilación. |
El sistema SVG en línea es más fácil porque puede hacerlo todo a mano si es necesario. O use una herramienta como IcoMoon (exportaciones de cualquier manera). O use una herramienta de compilación. |
Compatibilidad con navegador
Fuente del icono | SVG en línea |
---|---|
Muy profundo. Incluso IE 6. |
Decente, pero los problemas son IE 8- y Android 2.3-. Alternativas factibles pero no maravillosas. |
Ganador
Todo se reduce a la compatibilidad con el navegador. Si puede usar IE 9+ / Android 3+, el SVG en línea es mejor en casi todo que las fuentes de iconos. Si necesita un soporte de navegador más profundo, creo que un respaldo de SVG en línea sería demasiado doloroso para valer la pena (mantener una copia PNG, insertar un elemento adicional para mostrar la versión PNG, ocultar el elemento SVG … es pesado).