Um logótipo PNG pode parecer perfeitamente nítido no tamanho original e revelar píxeis quando é muito ampliado. O mesmo logótipo em SVG pode continuar nítido numa pequena interface, num ecrã de alta densidade ou numa impressão grande porque não guarda uma grelha fixa: descreve as formas que devem ser desenhadas.
SVG significa Scalable Vector Graphics. Na Web tem uma natureza dupla: é um formato de imagem vetorial e também uma linguagem de marcação baseada em XML.
Esta característica explica porque pode ser redimensionado, estilizado, inspecionado como texto e, em certos casos, tornar-se interativo.
Raster e vetorial
Uma imagem raster é uma grelha de píxeis. Uma fotografia de 1200 × 800 contém 960.000 píxeis. Ao aumentar muito, o software precisa de interpolar novos valores.
Um SVG pode descrever um círculo assim:
<circle cx="50" cy="50" r="40" />
O navegador conhece centro, raio e propriedades gráficas e redesenha a forma na dimensão necessária.
Isto não significa “detalhe infinito”: significa que a geometria é rasterizada à resolução de apresentação.
Quando usar SVG
É especialmente adequado para:
- logótipos;
- ícones;
- diagramas;
- gráficos de dados;
- ilustrações geométricas;
- padrões e decoração.
Para fotografias complexas, JPEG, WebP ou AVIF são normalmente mais apropriados. Um SVG também pode incorporar uma imagem raster; nesse caso, as formas vetoriais escalam, mas a fotografia mantém os limites da sua resolução.
Estrutura mínima
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" fill="#2563eb" />
</svg>
<svg> é o elemento raiz. viewBox define o sistema interno de coordenadas. Elementos como <circle>, <rect>, <line> e <path> descrevem as formas.
Porque é viewBox tão importante?
viewBox="0 0 100 100" indica um referencial interno com 100 × 100 unidades. O ficheiro pode depois ser apresentado a 24 × 24, 200 × 200 ou outra dimensão e o navegador ajusta esse referencial ao espaço disponível.
Remover ou alterar viewBox sem perceber a sua função pode modificar escala, recorte e comportamento responsive.
path e coordenadas
<path> permite descrever linhas e curvas complexas através do atributo d. Programas gráficos podem gerar paths enormes, com muitos pontos e casas decimais. Uma otimização pode reduzir este volume, mas valores demasiado agressivos podem deformar curvas e pequenos detalhes.
fill, stroke e currentColor
fill define preenchimento e stroke define contorno. Para ícones inline, currentColor é particularmente útil:
<path fill="currentColor" d="..." />
O ícone herda assim a cor CSS do contexto e adapta-se melhor a temas e estados.
