{"componentChunkName":"component---src-templates-single-template-tsx","path":"/sass-parte-5-placeholder","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://blog.nandomoreira.dev","author":{"name":"Fernando Moreira","site":"https://nandomoreira.dev","social":{"disqus":"fernandomoreira"}}}},"markdownRemark":{"html":"<p>Nos artigos anteriores eu falei sobre <em><a href=\"/sass-parte-4-funcoes/\">Funções</a></em> e sobre <em><a href=\"/sass-parte-3-mixins/\">Mixins</a></em> do <strong>SASS</strong>, mas sem sombra de dúvidas, uma das funcionalidades mais legais do SASS (na minha opinião) é você poder criar <em>[placeholders](<a href=\"http://sass-lang.com/documentation/file.SASS\">http://sass-lang.com/documentation/file.SASS</a></em>REFERENCE.html#placeholder<em>selectors</em>)_ para agrupamento de códigos repetidos.</p>\n<h2>O que é um Placeholder</h2>\n<p>Um <em>placeholder selector</em> (transuzindo para o português: <em>seletor de espaço reservado</em>) se assemelha com os sectores de ID's (#) e de classes (.), ou seja você cria o seu bloco de CSS normal mas ao invés de usar <code class=\"language-text\">.</code> ou <code class=\"language-text\">#</code> você usa <code class=\"language-text\">%</code> para suas declarações.</p>\n<div class=\"gatsby-highlight\" data-language=\"scss\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-scss line-numbers\"><code class=\"language-scss\"><span class=\"token selector\"><span class=\"token placeholder\">%background-white</span> </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> #fff<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\"><span class=\"token placeholder\">%heading-big</span> </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span> 52px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">padding</span><span class=\"token punctuation\">:</span> 30px 15px<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">@extend</span> <span class=\"token placeholder selector\">%background-white</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">body </span><span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">@extend</span> <span class=\"token placeholder selector\">%background-white</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.post-heading </span><span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">@extend</span> <span class=\"token placeholder selector\">%heading-big</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-bottom</span><span class=\"token punctuation\">:</span> 1px solid #eee<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-bottom</span><span class=\"token punctuation\">:</span> 60px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.post-page </span><span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">@extend</span> <span class=\"token placeholder selector\">%heading-big</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #333<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Outra diferença de ID's e Classes é que os placeholders não ficam visíveis quando meu CSS for processado, ele só aparece se for invocado com <code class=\"language-text\">@extend</code> por alguma classe ou ID.</p>\n<p>No código acima os placeholders <code class=\"language-text\">%background-white</code> e <code class=\"language-text\">%heading-big</code> não aparecerão no meu CSS processado enquanto não forem chamados, mesmo invocando o <code class=\"language-text\">%background-white</code> dentro de <code class=\"language-text\">%heading-big</code> eles ainda continuarão invisíveis.</p>\n<h2>E qual a vantagem?</h2>\n<p>A grande vantagem de se usar placeholders é o agrupamento de propriedades CSS iguais, isso deixa o seu CSS final muito mais limpo e consequentemente menor, veja o resultado final:</p>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-css line-numbers\"><code class=\"language-css\"><span class=\"token selector\">body,\n.post-heading,\n.post-page</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> #fff<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.post-heading,\n.post-page</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span> 52px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">padding</span><span class=\"token punctuation\">:</span> 30px 15px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.post-heading</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">border-bottom</span><span class=\"token punctuation\">:</span> 1px solid #eee<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-bottom</span><span class=\"token punctuation\">:</span> 60px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.post-page</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #333<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>Note que o agrupamento dos selectores <code class=\"language-text\">body</code>, <code class=\"language-text\">.post-heading</code> e <code class=\"language-text\">.post-page</code> com a propriedade <code class=\"language-text\">background-color</code> e <code class=\"language-text\">.post-heading</code> e <code class=\"language-text\">.post-page</code> com as propriedades <code class=\"language-text\">font-size</code> e <code class=\"language-text\">padding</code>. Isso é incrível não?</p>\n<p>Bom, por hoje é só..</p>\n<h3>Leia os outros artigos dessa série:</h3>\n<ol>\n<li><a href=\"/conhecendo-o-pre-processador-sass-parte-1/\">Conhecendo o pré-processador SASS - Instalação</a></li>\n<li><a href=\"/sass-variaveis-parte-2\">Conhecendo o pré-processador SASS - Variáveis</a></li>\n<li><a href=\"/sass-parte-3-mixins\">Conhecendo o pré processador SASS - Mixins</a></li>\n<li><a href=\"/sass-parte-4-funcoes\">Conhecendo o pré processador SASS - Funções</a></li>\n<li>Conhecendo o pré-processador SASS - Placeholder</li>\n</ol>\n<p>Gostou do artigo, compartilhe para que outros possam ler também e comenta ai?</p>\n<p>/end</p>","excerpt":"Nos artigos anteriores eu falei sobre Funções e sobre Mixins do SASS, mas sem sombra de dúvidas, uma das funcionalidades mais legais do SASS (na minha…","timeToRead":2,"frontmatter":{"category":["sass"],"date":"há 11 anos","datePublished":"2015-09-27T00:00:00.000Z","description":"Uma das funcionalidades mais legais do SASS é você poder criar placeholders para agrupamento de códigos repetidos","path":"/sass-parte-5-placeholder","tags":["sass","css","pre-processador"],"title":"#5 - Conhecendo o pré-processador SASS | Placeholder","image":{"publicURL":"/static/conhecendo-o-pre-processador-sass-b6a1f24254111b01aa97dae9042b5345.jpg","name":"conhecendo-o-pre-processador-sass"}},"fields":{"readingTime":{"words":348}}}},"pageContext":{}}}