SVG Sprites / Icons x PNG Sprites #77
Replies: 16 comments
-
Puts, maravilha! Quero começar em breve a utilizar e vai ser bom ver um debate sobre o assunto. |
Beta Was this translation helpful? Give feedback.
-
Eu to perguntando isso,porque eu sempre quis fazer um site que fosse imageless, as imagens em código puro. E meu portfolio to fazendo uma versão nova,e escopando tudo que tem de novo e performatico. Por enquanto meu senso está falando pra usar PostCSS/Stylus + Mithril ou Riot ( eu ia usar React pra aprender,mas vou fazer outro projeto em React) , ou eu mesmo fazer meu framework, Jade, e as imagens todas queria SVG ou CSS puro... E queria levar esses conceitos e ferramentas tambem pra empresa que trabalho |
Beta Was this translation helpful? Give feedback.
-
Depende que tipo de performance tu quer dizer - carregamento ou renderização. Como SVG é um formato vetorial, o tamanho do arquivo depende da complexidade do gráfico - quanto mais simples as formas, mais leve é o arquivo. Como ícones costumam ser relativamente simples, SVGs geralmente são mais leves do que bitmaps (PNG por exemplo), com a vantagem de ter resolução infinita, o que possibilita tu ter só uma versão de cada ícone ao invés de 2 ou 3 para cada resolução de tela. Logo, SVG costuma ser mais rápido para carregar (além de outros benefícios - não ter que manter uma spritesheet imensa, por exemplo). Por outro lado, vetores são mais lentos para renderizar - um bitmap é simplesmente uma lista que diz a cor de cada pixel, e não requer muito processamento para mostrar na tela. SVG é uma lista de formas geométricas, e é necessário calcular geometria, anti-aliasing etc., para ser convertido em bitmap, para só depois aparecer na página. Então depende da tua situação - se não aparecerem muitos ícones na página ao mesmo tempo, sugiro usar SVG, porque tu nem vai notar a diferença de performance de renderização. |
Beta Was this translation helpful? Give feedback.
-
Eu comecei a usar sprites SVG para os ícones em dois projetos pessoais meus. Antes disso eu usava PNGs e/ou icon fonts como Entypo ou Font Awesome. Eis as minhas considerações: SVG vs PNG: SVG vs Icon Fonts: Outro argumento pró icon fonts seria o fato de todos os ícones estarem "concatenados" em um mesmo arquivo de fonte (ex.: Considerações finais Tendo dito isso, vale lembrar que cada caso é um caso. É sempre importante analisar as vantagens e desvantagens de cada tecnologia antes de arriscar pra se ferrar lá na frente, mas caso você não esteja preso a navegadores antigos ou casos extremos de performance, eu definitivamente indicaria o uso de SVG para ícones. Outro link interessante sobre o embate: Icon fonts vs SVG: |
Beta Was this translation helpful? Give feedback.
-
Seguindo a linha do @lbebber, seguem dois artigos interessantes com táticas de otimização para arquivos SVG: http://jaydenseric.com/blog/how-to-optimize-svg |
Beta Was this translation helpful? Give feedback.
-
Também segue um texto muito bom sobre SVG que o @willianjusten tem comentado em seus posts: Sara Soueidan - SVG tips for designers |
Beta Was this translation helpful? Give feedback.
-
Bem legal o post!! valeu mesmo galera, então basicamente , se fizer um layout ex, esse do git mesmo, algo leve e simples tudo em svg e css, é uma boa? ai fallback em png para nav. antigos? outra coisa : Esses geradores online de svg sujam muito o código? alias o git usa svg ahahah chequei o codigo fonte agora ahahahahah |
Beta Was this translation helpful? Give feedback.
-
@kazzkiq muito boa a explicação! |
Beta Was this translation helpful? Give feedback.
-
@rubenmarcus Eu arriscaria dizer que qualquer interface que não vá imprimir dezenas de milhares de ícones na mesma tela poderia usar SVG sem problemas. Rodando o código Usando um exemplo mais extremo, este arquivo SVG possui mais de 2000 pontos vetoriais e ainda assim renderiza em menos de 6ms na minha máquina (Chrome Canary). Levando em conta que ícones SVG possuem bem menos complexidade do que um tigre vetorizado, eu acho seguro afirmar que performance dificilmente seria um problema. :) @Carlosxell Valeu cara :) |
Beta Was this translation helpful? Give feedback.
-
Ótima ideia de teste @kazzkiq, nem tinha pensado em fazer isso. :p |
Beta Was this translation helpful? Give feedback.
-
Nesse artigo: http://blog.nparashuram.com/2015/05/icons-font-inline-svg-or-background-svgs.html O cara fala que font-icons é mais rapido renderizado... . qual a melhor forma? bg svgs ou inline? o github ta usando inline. viram isso: http://mithril.js.org/mithril.html#svg https://www.npmjs.com/package/gulp-svg-sprites |
Beta Was this translation helpful? Give feedback.
-
Galera, curti essa discussão aqui. Queria tirar uma dúvida ainda, quanto a SVG Sprites Responsive. Quando necessitei dessa implementação, criei um @mixin com argumentos width e height que calculava a proporção do background-size para o elemento. Qual seria a melhor maneira de implementar o reaproveitamento/responsividade de uma mesma imagem inserida em um SVG Sprite? |
Beta Was this translation helpful? Give feedback.
-
@rubenmarcus Acredito que pra ícones, inline seja mais rápido, não vejo necessidade de fazer cache nesse caso. |
Beta Was this translation helpful? Give feedback.
-
@lfeh sim estou usando inline no projeto aqui , valeu! quando tiver no ar ( Julho)mando o aovivo pra vcs verem |
Beta Was this translation helpful? Give feedback.
-
Eu que era evangelizador dos glifos em fonts, larguei a mão disso e caí de cabeça nos SVGs e me apaixonei. A renderização é muito melhor e não temos os famosos [] no carregamento da página. Pra quem monta os SVGs no Illustrator e precisa limpar toda aquela nojeira de IDs, usar o SVGOMG é uma dica master. |
Beta Was this translation helpful? Give feedback.
-
Estamos na mesma @kvnol |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Galera, pode ser uma dúvida bem leiga até, mas vi esse post
http://tech.trivago.com/2016/02/02/large-scale-css-refactoring-at-trivago/
no grupo front end Brasil, e li que o mais importante que a trivago fez, foi mudar de sprites png para icones em svg...
e em questão de performance ainda não entendi porque é melhor...
procurei uns posts, e nenhum explica
http://codepen.io/adrianosmond/pen/LCogn
Nesse pen o autor escreve:
Using SVGs for sprites results in much worse performance in browsers. Try changing between PNG and SVG in the box above and watch the framerate drop.
Nesses posts da serie do Willian , encontrei alguns ,mas ninguem falando porque seria mais performatico voce ter um sprite em svg e um fallback em png,
http://willianjusten.com.br/por-que-usar-svg/
Eu to perguntando isso,porque ano passado eu fiz o logo da centauro em css puro e svg
http://codepen.io/rubenmarcus/pen/WvEOwa
e me desaconselharam fazer um site inteiro assim. Me falaram que nao era performatico, varios browsers quebravam e dava muito trabalho, sendo que voce poderia fazer uma imagem só
alguns posts mais que a chei:
https://24ways.org/2014/an-overview-of-svg-sprite-creation-techniques/
https://www.liquidlight.co.uk/blog/article/creating-svg-sprites-using-gulp-and-sass/
http://callmenick.com/post/svg-fallback-with-png
Beta Was this translation helpful? Give feedback.
All reactions