{"id":4020,"date":"2016-04-06T10:02:59","date_gmt":"2016-04-06T13:02:59","guid":{"rendered":"https:\/\/www.kadunew.com\/blog\/?p=4020"},"modified":"2016-04-06T10:02:59","modified_gmt":"2016-04-06T13:02:59","slug":"svg-sprite-como-criar-um-arquivo-de-icones-usando-svg","status":"publish","type":"post","link":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg","title":{"rendered":"SVG Sprite &#8211; Como criar um arquivo de \u00edcones usando SVG"},"content":{"rendered":"<figure id=\"attachment_4044\" aria-describedby=\"caption-attachment-4044\" style=\"width: 1644px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg\" alt=\"SVG Sprite\" width=\"1644\" height=\"600\" class=\"size-full wp-image-4044\" srcset=\"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg 1644w, https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite-300x109.jpg 300w, https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite-1024x374.jpg 1024w\" sizes=\"(max-width: 1644px) 100vw, 1644px\" \/><figcaption id=\"caption-attachment-4044\" class=\"wp-caption-text\">Sprite com SVG<\/figcaption><\/figure>\n<p>Quando se trata de implementar um sistema de \u00edcone para seus projetos web, SVG \u00e9 uma \u00f3tima escolha! Neste artigo vamos criar um SVG Sprite usando uma t\u00e9cnica que baseia-se na utiliza\u00e7\u00e3o de dois elementos: <em>&lt;symbol&gt;<\/em> e <em>&lt;use&gt;<\/em>.<\/p>\n<p><!--more--><\/p>\n<p>O elemento <em>&lt;symbol&gt;<\/em> \u00e9 usado para <strong>agrupar elementos<\/strong>, j\u00e1 o elemento <em>&lt;use&gt;<\/em> usamos para <strong>fazer refer\u00eancia<\/strong> ao \u00edcone que ser\u00e1 usado.<\/p>\n<p>Vamos considerar o c\u00f3digo SVG abaixo:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot; xmlns:xlink=&quot;http:\/\/www.w3.org\/1999\/xlink&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;24px&quot; height=&quot;24px&quot; viewBox=&quot;0 0 24 24&quot;&gt;\r\n    &lt;path fill=&quot;#E86C60&quot; d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>Logo em seguida vamos \u201cembrulhar\u201d o seu conte\u00fado dentro de um <em>&lt;symbol&gt;<\/em>, desta forma:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg&gt;\r\n    &lt;symbol viewBox=&quot;0 0 24 24&quot; id=&quot;heart&quot;&gt;\r\n        &lt;path fill=&quot;#E86C60&quot; d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>Se inserirmos esse c\u00f3digo na p\u00e1gina, percebemos que o \u00edcone <strong>n\u00e3o \u00e9 vis\u00edvel<\/strong>, e isso \u00e9 porque precisamos fazer refer\u00eancia a ele usando o elemento <em>&lt;use&gt;<\/em>, assim:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;body&gt;\r\n    &lt;svg style=&quot;display: none;&quot;&gt;\r\n        &lt;symbol viewBox=&quot;0 0 24 24&quot; id=&quot;heart&quot;&gt;\r\n            &lt;path fill=&quot;#E86C60&quot; d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n        &lt;\/symbol&gt;\r\n    &lt;\/svg&gt;\r\n\r\n    &lt;svg&gt;\r\n        &lt;use xlink:href=&quot;#heart&quot;\/&gt; &lt;!-- this is our visible icon --&gt;\r\n    &lt;\/svg&gt;\r\n&lt;\/body&gt;\r\n<\/pre>\n<p><strong>Resultado:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/exemplo-icone-svg.png\" alt=\"Exemplo de \u00edcone SVG\" width=\"81\" height=\"73\" class=\"aligncenter size-full wp-image-4047\" \/><\/p>\n<p>Em outras palavras, depois de ter definido um grupo de objetos gr\u00e1ficos (usando <em>&lt;symbol&gt;<\/em>), voc\u00ea pode exibi-lo <strong>quantas vezes quiser<\/strong> usando o elemento <em>&lt;use&gt;<\/em>. Voc\u00ea especifica o grupo que deseja exibir usando o atributo <em>xlink:href<\/em>, que, no nosso caso, \u00e9 o ID do <em>&lt;symbol&gt;<\/em> que deseja exibir (#heart).<\/p>\n<div class=\"obs\">\nPerceba que usamos style=&#8221;display: none;&#8221; para o SVG envolvendo o elemento <em>&lt;symbol&gt;<\/em>.\n<\/div>\n<p>Mesmo se o <em>&lt;symbol&gt;<\/em> n\u00e3o for apresentado, o elemento <em>&lt;svg&gt;<\/em> que o envolve ainda \u00e9 processado e vai <strong>ocupar algum espa\u00e7o na sua p\u00e1gina<\/strong>, e \u00e9 por isso que precisamos escond\u00ea-lo.<\/p>\n<p>Agora que conhecemos os elementos <em>&lt;symbol&gt;<\/em> e <em>&lt;use&gt;<\/em> e sabemos como funcionam, <strong>vamos construir nosso Sprite SVG<\/strong>.<\/p>\n<h2>Criando seu SVG Sprite<\/h2>\n<p>Primeiro, voc\u00ea precisa ter <strong>todos os seus \u00edcones<\/strong>, cada um em um arquivo .svg separado. Voc\u00ea pode, ent\u00e3o, criar um novo arquivo .svg (Vazio). Vou cham\u00e1-lo de <em>myicons.svg<\/em>.<\/p>\n<p>Dentro deste novo arquivo, inserir uma tag <em>&lt;svg&gt;<\/em> e, em seguida, para cada um de seus \u00edcones, um <em>&lt;symbol&gt;<\/em> que ir\u00e1 <strong>englobar o c\u00f3digo do \u00edcone<\/strong>.<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot; xmlns:xlink=&quot;http:\/\/www.w3.org\/1999\/xlink&quot;&gt;\r\n    &lt;symbol viewBox=&quot;0 0 24 24&quot; id=&quot;heart&quot;&gt;\r\n        &lt;path fill=&quot;#E86C60&quot; d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n\r\n    &lt;symbol viewBox=&quot;0 0 32 32&quot; id=&quot;arrow&quot;&gt;\r\n        &lt;path fill=&quot;#0f0f0f&quot; d=&quot;M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M22.8,13.6l-6,8C16.6,21.9,16.3,22,16,22 s-0.6-0.1-0.8-0.4l-6-8c-0.2-0.3-0.3-0.7-0.1-1S9.6,12,10,12h12c0.4,0,0.7,0.2,0.9,0.6S23,13.3,22.8,13.6z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>Explica\u00e7\u00e3o do nosso c\u00f3digo SVG Sprite:<\/p>\n<ul>\n<li>Cada elemento <em>&lt;symbol&gt;<\/em> precisa ter um ID; este ID ser\u00e1 usado para <strong>fazer refer\u00eancia<\/strong> a ela dentro do seu documento usando <em>&lt;use&gt;<\/em>.<\/li>\n<li>Note que especificamos um atributo <em>ViewBox<\/em> para cada <em>&lt;symbol&gt;<\/em>. Ele permite <strong>visualizarmos uma parte espec\u00edfica<\/strong> do elemento.<\/li>\n<li>Atributo <em>ViewBox<\/em> \u00e9 composto de 4 n\u00fameros, os 2 primeiros s\u00e3o geralmente zero (mas realmente depende de como o \u00edcone foi desenhado), enquanto os outros 2 s\u00e3o a largura e altura do SVG.\n<\/li>\n<li>Desta forma, seus \u00edcones n\u00e3o precisam ter a mesma propor\u00e7\u00e3o, pois voc\u00ea pode definir um atributo <em>ViewBox<\/em> diferente para cada um deles.<\/li>\n<\/ul>\n<p>Como etapa final, podemos adicionar uma tag &lt;title&gt; para cada \u00edcone SVG <strong>para melhorar a acessibilidade<\/strong>:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot; xmlns:xlink=&quot;http:\/\/www.w3.org\/1999\/xlink&quot;&gt;\r\n    &lt;symbol viewBox=&quot;0 0 24 24&quot; id=&quot;heart&quot;&gt;\r\n        &lt;title&gt;Heart&lt;\/title&gt;\r\n        &lt;path fill=&quot;#E86C60&quot; d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n\r\n    &lt;symbol viewBox=&quot;0 0 32 32&quot; id=&quot;arrow&quot;&gt;\r\n        &lt;title&gt;Arrow&lt;\/title&gt;\r\n        &lt;path fill=&quot;#0f0f0f&quot; d=&quot;M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M22.8,13.6l-6,8C16.6,21.9,16.3,22,16,22 s-0.6-0.1-0.8-0.4l-6-8c-0.2-0.3-0.3-0.7-0.1-1S9.6,12,10,12h12c0.4,0,0.7,0.2,0.9,0.6S23,13.3,22.8,13.6z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>Nosso SVG Sprite est\u00e1 pronto para ser usado. Podemos salvar o arquivo <em>myicons.svg<\/em> dentro de sua pasta de imagens (vou chamar a pasta de img).<\/p>\n<p>Para exibir um de seus \u00edcones, tudo que voc\u00ea precisa fazer \u00e9 inserir o seguinte trecho em algum lugar no seu documento:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg&gt;\r\n    &lt;use xlink:href=&quot;img\/myicons.svg#heart&quot;\/&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<h2>Compatibilidade dos Navegadores<\/h2>\n<p>Infelizmente, fazendo refer\u00eancia SVG externa usando <em>&lt;use&gt;<\/em> <strong>n\u00e3o funciona no Internet Explorer<\/strong>, nem mesmo IE9 + (felizmente, esse problema foi resolvido no Microsoft Edge).<\/p>\n<p>Como corrigir isso? Vamos dar uma olhada em duas solu\u00e7\u00f5es poss\u00edveis:<\/p>\n<p>1) Podemos incluir o sprite SVG na parte superior do documento e, em seguida, fazer refer\u00eancia a cada \u00edcone usando, novamente, a tag <em>&lt;use&gt;<\/em>:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg style=&quot;display: none;&quot;&gt; &lt;!-- this is our svg sprite --&gt;\r\n    &lt;symbol viewBox=&quot;0 0 24 24&quot; id=&quot;heart&quot;&gt;\r\n        &lt;path fill=&quot;#E86C60&quot; d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n\r\n    &lt;symbol viewBox=&quot;0 0 32 32&quot; id=&quot;arrow&quot;&gt;\r\n        &lt;!-- ... --&gt;\r\n    &lt;\/symbol&gt;\r\n&lt;\/svg&gt;\r\n\r\n&lt;svg&gt;\r\n    &lt;use xlink:href=&quot;#heart&quot;\/&gt; &lt;!-- this is our visible icon --&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>Desta vez o atributo <em>xlink: href<\/em> \u00e9 igual a apenas o identificador ID (que n\u00e3o inclui a fonte externa). <\/p>\n<p>Esta t\u00e9cnica funciona muito bem, mas tem a desvantagem de o sprite SVG <strong>n\u00e3o ficar armazenada em cache<\/strong>.<\/p>\n<p>2) Podemos usar um <em>polyfill<\/em>, um bom exemplo \u00e9 o <a href=\"https:\/\/github.com\/Keyamoon\/svgxuse\">SVGxuse<\/a>. Este <em>polyfill<\/em> busca SVGs externos referenciados no <em>&lt;use&gt;<\/em> quando o navegador em si n\u00e3o consegue faz\u00ea-lo. Basicamente, o <em>polyfill<\/em> passa por cada elemento <em>&lt;use&gt;<\/em>, para referenciar um SVG externo que o navegador n\u00e3o conseguiu carregar, pega o SVG e prepara-o para o &lt;body&gt; do seu documento. \u00d3timo!<\/p>\n<div class=\"obs\">\n<strong>Nota:<\/strong> lembre-se que SVG s\u00e3o suportados apenas no IE9 +; por isso, se voc\u00ea ainda precisa de apoio IE8 (e abaixo), voc\u00ea deve usar um fallback (por exemplo, imagens PNG).\n<\/div>\n<p>\u00cdcones SVG referenciados desta forma t\u00eam o seu pr\u00f3prio DOM separado, que n\u00e3o \u00e9 acess\u00edvel por seletores CSS. Vamos dizer que n\u00f3s temos o nosso \u00edcone:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg class=&quot;icon&quot;&gt;\r\n    &lt;use xlink:href=&quot;img\/myicons.svg#heart&quot;\/&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>E fizemos isso:<\/p>\n<pre class=\"brush: css; title: CSS; notranslate\" title=\"CSS\">\r\n.icon path { fill: #000000; }\r\n<\/pre>\n<p>N\u00e3o vai funcionar.<\/p>\n<p>Como resolver este problema? Vamos dizer que voc\u00ea deseja alterar a cor de preenchimento de seus \u00edcones. Primeiro, verifique se o atributo de preenchimento <strong>n\u00e3o \u00e9 definido em linha<\/strong> (estilo CSS inline). <\/p>\n<p>Este \u00e9 o seu c\u00f3digo de Sprite SVG:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot; xmlns:xlink=&quot;http:\/\/www.w3.org\/1999\/xlink&quot;&gt;\r\n    &lt;symbol viewBox=&quot;0 0 24 24&quot; id=&quot;heart&quot;&gt;\r\n        &lt;title&gt;Heart&lt;\/title&gt;\r\n        &lt;path fill=&quot;#E86C60&quot; d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n\r\n    &lt;symbol viewBox=&quot;0 0 32 32&quot; id=&quot;arrow&quot;&gt;\r\n        &lt;title&gt;Arrow&lt;\/title&gt;\r\n        &lt;path fill=&quot;#0f0f0f&quot; d=&quot;M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M22.8,13.6l-6,8C16.6,21.9,16.3,22,16,22 s-0.6-0.1-0.8-0.4l-6-8c-0.2-0.3-0.3-0.7-0.1-1S9.6,12,10,12h12c0.4,0,0.7,0.2,0.9,0.6S23,13.3,22.8,13.6z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>voc\u00ea precisar\u00e1 remover o atributo de preenchimento inline, assim:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot; xmlns:xlink=&quot;http:\/\/www.w3.org\/1999\/xlink&quot;&gt;\r\n    &lt;symbol viewBox=&quot;0 0 24 24&quot; id=&quot;heart&quot;&gt;\r\n        &lt;title&gt;Heart&lt;\/title&gt;\r\n        &lt;path d=&quot;M17,0c-1.9,0-3.7,0.8-5,2.1C10.7,0.8,8.9,0,7,0C3.1,0,0,3.1,0,7c0,6.4,10.9,15.4,11.4,15.8 c0.2,0.2,0.4,0.2,0.6,0.2s0.4-0.1,0.6-0.2C13.1,22.4,24,13.4,24,7C24,3.1,20.9,0,17,0z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n\r\n    &lt;symbol viewBox=&quot;0 0 32 32&quot; id=&quot;arrow&quot;&gt;\r\n        &lt;title&gt;Arrow&lt;\/title&gt;\r\n        &lt;path d=&quot;M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M22.8,13.6l-6,8C16.6,21.9,16.3,22,16,22 s-0.6-0.1-0.8-0.4l-6-8c-0.2-0.3-0.3-0.7-0.1-1S9.6,12,10,12h12c0.4,0,0.7,0.2,0.9,0.6S23,13.3,22.8,13.6z&quot;&gt;&lt;\/path&gt;\r\n    &lt;\/symbol&gt;\r\n&lt;\/svg&gt;\r\n<\/pre>\n<p>E acrescentar no seu CSS:<\/p>\n<pre class=\"brush: css; title: CSS; notranslate\" title=\"CSS\">\r\n.icon {\r\n    fill: #00000; \/* this will be your icons default color *\/\r\n}\r\n<\/pre>\n<p>Se queremos mudar a cor de preenchimento de apenas um \u00edcone, podemos estilizar este \u00edcone usando uma classe:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;svg class=&quot;icon my-class-name&quot;&gt;\r\n    &lt;use xlink:href=&quot;img\/myicons.svg#heart&quot;&gt;&lt;\/use&gt;\r\n&lt;svg&gt;\r\n<\/pre>\n<p>E altere seu valor de preenchimento usando css:<\/p>\n<pre class=\"brush: css; title: CSS; notranslate\" title=\"CSS\">\r\n.my-class-name {\r\n    fill: red;\r\n}\r\n<\/pre>\n<h2>Sites para criar \u00edcones SVG<\/h2>\n<p>Criar seus \u00edcones SVG manualmente pode ser tornar uma tarefa cansativa. Utilize ferramentas que automatizam essa tarefa.<\/p>\n<ul>\n<li><a href=\"https:\/\/icomoon.io\/app\/#\/select\" target=\"_blank\">https:\/\/icomoon.io\/app\/#\/select<\/a><\/li>\n<li><a href=\"https:\/\/nucleoapp.com\/#icons\" target=\"_blank\">https:\/\/nucleoapp.com\/#icons<\/a><\/li>\n<\/ul>\n<p>Fonte: <a href=\"https:\/\/nucleoapp.com\/how-to-create-an-icon-system-using-svg-symbols\/\">https:\/\/nucleoapp.com\/how-to-create-an-icon-system-using-svg-symbols\/<\/a><\/p>\n<p>Curta a p\u00e1gina do <a href=\"https:\/\/www.facebook.com\/pages\/Kadunew-Artigos-e-tutoriais-sobre-Web-Design\/787883281258323\" title=\"Artigos e tutoriais sobre Web Design\" target=\"_blank\">blog kadunew<\/a> no Facebook. Siga-me no Twitter: <a href=\"http:\/\/twitter.com\/kadunew\" rel=\"nofollow\">@kadunew<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando se trata de implementar um sistema de \u00edcone para seus projetos web, SVG \u00e9 uma \u00f3tima escolha! Neste artigo vamos criar um SVG Sprite usando uma t\u00e9cnica que baseia-se na utiliza\u00e7\u00e3o de dois elementos: &lt;symbol&gt; e &lt;use&gt;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59],"tags":[],"class_list":["post-4020","post","type-post","status-publish","format-standard","hentry","category-html"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SVG Sprite - Como criar um arquivo de \u00edcones usando SVG<\/title>\n<meta name=\"description\" content=\"Aprenda como criar um arquivo de SVG Sprite para seus icones.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SVG Sprite - Como criar um arquivo de \u00edcones usando SVG\" \/>\n<meta property=\"og:description\" content=\"Aprenda como criar um arquivo de SVG Sprite para seus icones.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg\" \/>\n<meta property=\"og:site_name\" content=\"KADUNEW\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-06T13:02:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1644\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kadu Oliveira\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kadu Oliveira\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg\",\"url\":\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg\",\"name\":\"SVG Sprite - Como criar um arquivo de \u00edcones usando SVG\",\"isPartOf\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg\",\"datePublished\":\"2016-04-06T13:02:59+00:00\",\"dateModified\":\"2016-04-06T13:02:59+00:00\",\"author\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05\"},\"description\":\"Aprenda como criar um arquivo de SVG Sprite para seus icones.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#primaryimage\",\"url\":\"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg\",\"contentUrl\":\"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg\",\"width\":1644,\"height\":600,\"caption\":\"Sprite com SVG\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.kadunew.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"HTML\",\"item\":\"https:\/\/www.kadunew.com\/blog\/category\/html\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SVG Sprite &#8211; Como criar um arquivo de \u00edcones usando SVG\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/#website\",\"url\":\"https:\/\/www.kadunew.com\/blog\/\",\"name\":\"KADUNEW\",\"description\":\"Artigos sobre Front-End e Programa\u00e7\u00e3o web\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.kadunew.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05\",\"name\":\"Kadu Oliveira\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g\",\"caption\":\"Kadu Oliveira\"},\"sameAs\":[\"https:\/\/www.kadunew.com\/blog\"],\"url\":\"https:\/\/www.kadunew.com\/blog\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SVG Sprite - Como criar um arquivo de \u00edcones usando SVG","description":"Aprenda como criar um arquivo de SVG Sprite para seus icones.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg","og_locale":"pt_BR","og_type":"article","og_title":"SVG Sprite - Como criar um arquivo de \u00edcones usando SVG","og_description":"Aprenda como criar um arquivo de SVG Sprite para seus icones.","og_url":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg","og_site_name":"KADUNEW","article_published_time":"2016-04-06T13:02:59+00:00","og_image":[{"width":1644,"height":600,"url":"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg","type":"image\/jpeg"}],"author":"Kadu Oliveira","twitter_misc":{"Escrito por":"Kadu Oliveira","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg","url":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg","name":"SVG Sprite - Como criar um arquivo de \u00edcones usando SVG","isPartOf":{"@id":"https:\/\/www.kadunew.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#primaryimage"},"image":{"@id":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#primaryimage"},"thumbnailUrl":"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg","datePublished":"2016-04-06T13:02:59+00:00","dateModified":"2016-04-06T13:02:59+00:00","author":{"@id":"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05"},"description":"Aprenda como criar um arquivo de SVG Sprite para seus icones.","breadcrumb":{"@id":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#primaryimage","url":"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg","contentUrl":"https:\/\/www.kadunew.com\/blog\/wp-content\/uploads\/2016\/03\/svg-sprite.jpg","width":1644,"height":600,"caption":"Sprite com SVG"},{"@type":"BreadcrumbList","@id":"https:\/\/www.kadunew.com\/blog\/html\/svg-sprite-como-criar-um-arquivo-de-icones-usando-svg#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kadunew.com\/blog"},{"@type":"ListItem","position":2,"name":"HTML","item":"https:\/\/www.kadunew.com\/blog\/category\/html"},{"@type":"ListItem","position":3,"name":"SVG Sprite &#8211; Como criar um arquivo de \u00edcones usando SVG"}]},{"@type":"WebSite","@id":"https:\/\/www.kadunew.com\/blog\/#website","url":"https:\/\/www.kadunew.com\/blog\/","name":"KADUNEW","description":"Artigos sobre Front-End e Programa\u00e7\u00e3o web","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kadunew.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05","name":"Kadu Oliveira","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g","caption":"Kadu Oliveira"},"sameAs":["https:\/\/www.kadunew.com\/blog"],"url":"https:\/\/www.kadunew.com\/blog\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts\/4020"}],"collection":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/comments?post=4020"}],"version-history":[{"count":25,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts\/4020\/revisions"}],"predecessor-version":[{"id":4066,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts\/4020\/revisions\/4066"}],"wp:attachment":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/media?parent=4020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/categories?post=4020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/tags?post=4020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}