Parte I - SVG além da forma

Um estudo de caso sobre SVG e font icon

Amanda Murta
Sympla Design

--

Oi, gente! 😉

Sou a Amanda, Product Designer na Sympla, e vou contar para vocês um fato bem curioso que o time de design investigou sobre os ícones no formato SVG em um projeto web. Esse estudo aconteceu por acaso, na verdade, devido a vários problemas que tivemos com font icons. Isso me fez enxergar um simples ícone SVG menos pela sua forma e mais pelos números que estavam por trás daquele desenho.

Para entender toda a história, é importante saber o que afinal são font icons e SVG:

Font icons

  • Font icon é um formato de representar um ícone em um layout web.
  • Para que um ícone seja tratado como font icon, é preciso que o arquivo esteja no formato SVG.
  • Sendo font icon baseado em um arquivo no formato SVG, também apresenta todas as características citadas abaixo.

SVG (Scalable Vector Graphics)

  • SVG, em português, Vetor Gráfico Redimensionável, é um formato capaz de representar três tipos de objetos gráficos: imagens, textos ou formas geométricas vetoriais, como ícones.
  • O arquivo SVG contém números e variáveis que, quando interpretadas por algum software, como o seu navegador, “desenham” as formas na tela.
  • Alta resolução: os desenhos são criados em tempo real pelo navegador por meio de cálculos matemáticos, o que garante que os objetos gráficos sejam exibidos com alta qualidade.
  • Escalabilidade: como SVG usa expressões matemáticas para redimensionar os objetos gráficos, não temos perda na definição da imagem.
  • Dentro do arquivo SVG, a forma geométrica está contida dentro do comando <path> que modela o caminho da forma, sinuosidades e características por meio de pontos.
Como o ícone 💎é representado no formato SVG gerado no Sketch app

Aqui na Sympla, estamos trabalhando no projeto da nova área do organizador, plataforma em que o organizador gerencia do início ao fim o seu evento. Neste projeto, existiam 76 ícones no formato font icon, aproximadamente, para compor a interface e também para representar ações do usuário no sistema.

Fui investigar o motivo de usarmos font icons e, na verdade, foi uma decisão do time de desenvolvimento, porque:

  • O styleguide do sistema, até aquele momento, era baseado em Bootstrap, o qual tratava o ícone como font icons.
  • Font icons são compatíveis com a maioria dos navegadores disponíveis no mercado, como Chrome, Safari e Firefox por exemplo.
  • É possível alterar a cor de font icon direto no CSS.
  • Font icon é baseado em arquivo SVG, isto é, gerado matematicamente no navegador, o que permite dimensioná-lo em qualquer tamanho sem perder a qualidade.

O template original usava a família de ícones Font Awesome, que não tinha muito a ver visualmente com o nosso produto. Era preciso que os ícones seguissem o nosso design e estilo. Para gerar a família de ícones da Sympla, um front-end da equipe criou uma ferramenta bem simplificada de uso interno, semelhante ao Icomoon app, que transforma um arquivo SVG em font icon.

Problemas com font icons 😥

Alguns ícones neste formato ficavam um pouco embaçados quando renderizados pelo navegador. Considerando que a font icon é um arquivo SVG, isso não deveria acontecer, já que ele é gerado por meio de cálculos matemáticos, garantindo assim uma ótima qualidade e nitidez independente do tamanho. Tivemos inúmeros problemas com isso em diferentes sistemas operacionais, como Mac OS e Linux.

O ícone no formato font icon, ora era exibido perfeitamente na plataforma, ora ficava embaçado em alguns sistemas operacionais

Outro ponto levantado foi o aspecto serrilhado dos ícones na tela. Em um monitor de alta resolução, como a tela retina, era muito perceptível essa “falha”. Na tentativa de resolver esse problema, um front-end da equipe fez uma pesquisa na qual orientava gerar o ícone no formato SVG, no tamanho 1024x1024 px, para depois transformá-lo em font icon. Essa alteração tomou bastante tempo. Afinal, eram mais de 70 ícones, lembra?

Font icon exibida na tela ficava serrilhada, sendo que o arquivo original era baseado em um SVG

Porque SVG passou a ser uma alternativa? 🤔

Enquanto o time de desenvolvimento e eu procurávamos uma maneira de resolver os problemas citados, também começamos a questionar o uso de font icon.

Realmente precisávamos usar font icon para representar os ícones? Por que não o usávamos no formato SVG de uma vez, sem transformá-lo em font icon?

Na verdade, esses e outros questionamentos vieram por causa da recém-adesão do ícone em SVG no Android Studio. Antes, era preciso gerar uma imagem do ícone de até 4 tamanhos diferentes por causa das diferentes resoluções de tela do celular Android. Ou seja, além de perceber que o uso de SVG estava virando tendência e sendo usado por empresas de referência, estava aumentando o número de navegadores que ofereciam suporte a esse formato. Até então, sua baixa compatibilidade com os navegadores afastava os olhares dos desenvolvedores. Ver o SVG se popularizando no mercado nos fez repensar nosso processo relacionado a ícones.

O dia D: font icon na verdade não era o vilão 😱

Depois de muitas tentativas, o mesmo front-end que criou a ferramenta interna que transforma ícone SVG em font icon fez algo diferente: ele resolveu converter um ícone que estava dando problema na ferramenta interna, dessa vez, no Icomoon app. Curiosamente, o font icon gerado a partir do arquivo SVG era perfeito, sem qualquer tipo de problema na forma. Foi aí que percebemos, principalmente eu, que o SVG estava querendo dizer alguma coisa pra gente. 😂😂😂

O arquivo SVG foi aberto em um editor de texto para visualizarmos os números. E, para nossa surpresa, os números e variáveis estavam distribuídos de forma diferente para representar o mesmo ícone. Percebi que isto poderia estar relacionado à maneira que o ícone foi construído, ao jeito que as formas estavam distribuídas, à ordem das camadas e as transformações que apliquei (espelhamento e rotação) dentro do Sketch app.

Mesmo ícone apresentando código SVG diferentes. Esse tipo de organização dos pontos faz toda a diferença na etapa de implementação

O que os pontos do SVG tem a ver com Design? 🤷

Fique tranquila(o)! Você não precisa de um conhecimento aprofundado em Geometria para decifrar aqueles pontos.

O importante é entender que os passos que você faz para criar um ícone comprometem a organização da sua estrutura e a maneira como os pontos se distribuem, o que pode gerar dor de cabeça na etapa de desenvolvimento do seu projeto. Ou seja, o código de um ícone SVG diz muito sobre a qualidade da sua construção e revela práticas que podem ser evitadas na próxima vez.

Depois de identificar a raiz do problema, passei a analisar, de perto, todos os ícones da nossa plataforma. Reparei que o código do arquivo SVG visto por um editor de texto trazia informações valiosas sobre a sua construção, ainda que muitas informações fossem praticamente descartáveis para os front-ends na etapa de implementação.

Continua… 🤓

No final das contas, o código de um icone SVG bem organizado nos disse que existem melhores práticas para se criar um ícone nesse formato, o que gerou um outro estudo que irei te mostrar na segunda parte desse texto. Enquanto isso, faça esse experimento e veja com seus próprios olhos: abra um icone SVG e o enxergue além da forma. 👀

--

--

Amanda Murta
Sympla Design

Product Manager | Service Designer | Discovery | Delivery | Data Lover