{"componentChunkName":"component---src-templates-blog-template-tsx","path":"/page/3","result":{"data":{"site":{"siteMetadata":{"description":"~apenas mais um programador é um blog de um desenvolvedor front-end, minimalista e especialista em WordPress. | Desenvolvedor Front-end em Curitiba | Desenvolvedor WordPress em Curitiba | Desenvolvedor Web em Curitiba | Programador em Curitiba","siteDesc":"~apenas mais um programador"}},"postsResults":{"edges":[{"node":{"id":"e29ae2c1-6db9-521e-9974-dcec908ab5d4","html":"<p><strong>SASS</strong> é um pré-processador incrível não acha? Mas muitos não sabem como organizar seus projetos com ele, nesse artigo vou lhe mostrar como organizar uma estrutura <em>\"foda\"</em> usando <strong><a href=\"http://sass-lang.com/\">SASS</a></strong> e <em><strong><a href=\"http://patternlab.io/about.html\">Atomic Design</a></strong></em>, vem comigo.</p>\n<blockquote>\n<p>Não vou explicar o que é <em>Atomic Design</em>, não é o intuito desse artigo, mas vou deixar aqui alguns links para que você dê uma lida antes de continuar.</p>\n</blockquote>\n<ul>\n<li><strong><a href=\"http://tableless.com.br/o-que-e-design-atomic/\">O que é Design Atômico?</a></strong> - <em>tableless</em></li>\n<li><strong><a href=\"http://nomadev.com.br/atomic-design-por-que-usar/\">Atomic Design - Por que usar?</a></strong> - <em>nomadev</em></li>\n<li><strong><a href=\"http://nomadev.com.br/passo-a-passo-como-desenvolver-com-atomic-design-mobile-first-e-stylus/\">Passo-a-passo como desenvolver com Atomic Design, Mobile-first e Stylus - Parte 1</a></strong> - <em>nomadev</em></li>\n<li><strong><a href=\"http://www.frontendbrasil.com.br/tutoriais/atomic-design-como-funciona/\">Atomic Design como funciona</a></strong> - <em>frontendbrasil</em></li>\n</ul>\n<h2>/diretórios</h2>\n<p>Depois que você entendeu bem o que é <em>Atomic Design</em> e como ele funciona vamos começar a desenhar a estrutura do nosso projeto.</p>\n<p>Nós sabemos que <em>atomic design</em> é dividido em 5 itens, <strong><em>atoms</em></strong>, <strong><em>molecules</em></strong>, <strong><em>organisms</em></strong>, <strong><em>templates</em></strong> e <strong><em>pages</em></strong>, mas nós usaremos apenas 3 desses itens: <strong><em>atoms</em></strong>, <strong><em>molecules</em></strong> e <strong><em>organisms</em></strong> e, claro, criaremos um diretório pra cada item, mais ou menos assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-text line-numbers\"><code class=\"language-text\">sass-e-atomic-design/\n  └── sass/\n    ├── atoms/\n    │   └── # Arquivos sass para atoms\n    ├── molecules/\n    │   └── # Arquivos sass para molecules\n    └── organisms/\n        └── # Arquivos sass para organisms</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></pre></div>\n<p>Ainda junto com esses 2 itens do <em>Atomic Design</em> vamos adicionar mais 2 diretórios, <code class=\"language-text\">core/</code> e <code class=\"language-text\">vendor/</code>.</p>\n<p>Fica mais ou menos assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-text line-numbers\"><code class=\"language-text\">sass-e-atomic-design/\n  └── sass/\n    ├── atoms/\n    │   └── # Arquivos sass para atoms\n    ├── core/\n    │   └── # Arquivos sass para variaveis e mixins\n    ├── molecules/\n    │   └── # Arquivos sass para molecules\n    ├── organisms/\n    │   └── # Arquivos sass para organisms\n    └── vendor/\n        └── # Arquivos sass de terceiros</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></pre></div>\n<h2>O diretório core/</h2>\n<p>Vamos começar com o diretório <code class=\"language-text\">core/</code>, nele vamos criar 4 outros diretórios: <code class=\"language-text\">bosons/</code>, <code class=\"language-text\">functions/</code>, <code class=\"language-text\">mixins/</code> e <code class=\"language-text\">variables/</code>, e 4 arquivos <code class=\"language-text\">_bosons.scss</code>, <code class=\"language-text\">_functions.scss</code>, <code class=\"language-text\">_mixins.scss</code> e <code class=\"language-text\">_variables.scss</code>.</p>\n<ul>\n<li><strong><em>bosons/</em></strong>: São os <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>)_ do SASS, são as partículas que vão dar massa a nossos átomos.</li>\n<li><strong><em>functions/</em></strong>: São as <a href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#functions\">funções SASS</a> do projeto.</li>\n<li><strong><em>mixins/</em></strong>: São as <a href=\"http://sass-lang.com/documentation/file.SASS_REFERENCE.html#mixins\">mixins</a> do projeto.</li>\n<li><strong><em>variables/</em></strong>: São todas as variáveis do projeto.</li>\n</ul>\n<p>Vamos deixar <code class=\"language-text\">functions/</code>, <code class=\"language-text\">mixins/</code> e <code class=\"language-text\">variables/</code> de lado e vamos nos concentrar em <code class=\"language-text\">bosons/</code>, é ai que começa a fazer sentido a metodologia <em>Atomic Design</em>. Nesse diretório vamos criar um <em>bóson</em> que muita gente conheçe, o famoso <code class=\"language-text\">button</code>.</p>\n<p>Crie um arquivo chamado <code class=\"language-text\">_buttons.scss</code> e coloque a seguinte estrutura.</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\">%button</span> </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">padding</span><span class=\"token punctuation\">:</span> 0.8em 2em<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">text-decoration</span><span class=\"token punctuation\">:</span> none<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border</span><span class=\"token punctuation\">:</span> none<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">margin-top</span><span class=\"token punctuation\">:</span> 1em<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">display</span><span class=\"token punctuation\">:</span> inline-block<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #fff<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span> 1.2em<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">text-align</span><span class=\"token punctuation\">:</span> center<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">transition</span><span class=\"token punctuation\">:</span> 0.4s background ease<span class=\"token punctuation\">,</span> 0.4s color ease<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-radius</span><span class=\"token punctuation\">:</span> 0.4em<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #c12b2c<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">font-weight</span><span class=\"token punctuation\">:</span> bold<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">text-transform</span><span class=\"token punctuation\">:</span> uppercase<span class=\"token punctuation\">;</span>\n\n  <span class=\"token selector\"><span class=\"token parent important\">&amp;</span>:hover,\n  <span class=\"token parent important\">&amp;</span>:focus,\n  <span class=\"token parent important\">&amp;</span>:active </span><span class=\"token punctuation\">{</span>\n    <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> <span class=\"token function\">lighten</span><span class=\"token punctuation\">(</span>#c12b2c<span class=\"token punctuation\">,</span> 7%<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token property\">text-decoration</span><span class=\"token punctuation\">:</span> none<span class=\"token punctuation\">;</span>\n    <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #fff<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\"><span class=\"token placeholder\">%button-ghost</span> </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> transparent<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border</span><span class=\"token punctuation\">:</span> 2px solid #fff<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border</span><span class=\"token punctuation\">:</span> 2px solid <span class=\"token function\">rgba</span><span class=\"token punctuation\">(</span>#fff<span class=\"token punctuation\">,</span> 0.9<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token selector\"><span class=\"token parent important\">&amp;</span>:hover,\n  <span class=\"token parent important\">&amp;</span>:focus,\n  <span class=\"token parent important\">&amp;</span>:active </span><span class=\"token punctuation\">{</span>\n    <span class=\"token property\">border-color</span><span class=\"token punctuation\">:</span> <span class=\"token function\">rgba</span><span class=\"token punctuation\">(</span>#fff<span class=\"token punctuation\">,</span> 0.7<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> <span class=\"token function\">rgba</span><span class=\"token punctuation\">(</span>#fff<span class=\"token punctuation\">,</span> 0.1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token property\">text-decoration</span><span class=\"token punctuation\">:</span> none<span class=\"token punctuation\">;</span>\n    <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #fff<span class=\"token punctuation\">;</span>\n  <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></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>A estrutura acima tem dois <em>bósons</em> que darão massa aos átomos de botões por todo nosso projeto, é bem simples, basta usar o <code class=\"language-text\">@extend %button;</code> que a mágica acontece.</p>\n<p>Esse é só um pequeno exemplo de como podemos criar os nossos <em>placeholders</em> de SASS em nosso projeto, pense em <em>bóson</em> como algo que você vai usar muito e por todo o seu projeto, algo que será igualmente repetido em muitos lugares, assim você abstrai o CSS e o arquivo final ficá sem repetição de código.</p>\n<blockquote>\n<p>Leia mais sobre <em>bósons</em> e <em>quarks</em> em <a href=\"http://nomadev.com.br/atomic-design-b%C3%B3sons-e-quarks-extended/\">nomadev</a></p>\n</blockquote>\n<h2>/continua..</h2>\n<p>Essa é a primeira parte do nosso tutorial de <strong>SASS e Atomic Design</strong>, no próximo episódio veremos como unir os <em>bósons</em> e os <em>atoms</em> e como isso pode reduzir o seu CSS final, ajudando assim na performace do seu projeto. Até lá!</p>\n<p>/end</p>","excerpt":"SASS é um pré-processador incrível não acha? Mas muitos não sabem como organizar seus projetos com ele, nesse artigo vou lhe mostrar como organizar…","timeToRead":4,"frontmatter":{"category":["sass"],"date":"há 11 anos","description":"SASS é um pré-processador incrível não acha? Mas muitos não sabem como organizar seus projetos com ele","path":"/sass-e-atomic-design","tags":["sass","css","pre-processador"],"title":"SASS + Atomic design","image":{"publicURL":"/static/conhecendo-o-pre-processador-sass-b6a1f24254111b01aa97dae9042b5345.jpg","name":"conhecendo-o-pre-processador-sass"}},"fields":{"readingTime":{"words":605}}}},{"node":{"id":"88d05e9a-3b19-57e6-b01b-592ff9f4524d","html":"<blockquote>\n<p>Esse artigo foi traduzido de: <a href=\"http://www.minddust.com/post/tags-and-categories-on-github-pages/\">How to use tags and categories on github pages without plugins</a></p>\n</blockquote>\n<hr>\n<p><a href=\"http://pages.github.com/\">GitHub Pages</a> serviço é simplesmente incrível, e com a integração Jekyll ele fica ainda mais impressionante! Mas existem algumas limitações neste grande sistema automatizado:</p>\n<ul>\n<li>não há próprios plugins</li>\n<li><a href=\"https://pages.github.com/versions/\">plugins disponíveis limitados</a></li>\n</ul>\n<p>Como você já deve saber:</p>\n<ul>\n<li>não há plugins de tag/categoria disponível (atualmente).</li>\n</ul>\n<p>Triste... Mas isso era algo que eu realmente queria ter!</p>\n<p>Então eu construí minha própria <em>Data-Template-NoPlugin-System</em> e funciona.</p>\n<p>Você pode ver uma demonstração ao vivo nesta página.</p>\n<p>Aqui está um pequeno guia de como implementá-lo:</p>\n<h4>1. Adicione um pouco de lógica no template do seu layout post.html</h4>\n<div class=\"gatsby-highlight\" data-language=\"twig\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-twig line-numbers\"><code class=\"language-twig\"><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">assign</span></span> <span class=\"token property\">post</span> <span class=\"token operator\">=</span> <span class=\"token property\">page</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n<span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">if</span></span> <span class=\"token property\">post</span><span class=\"token punctuation\">.</span><span class=\"token property\">tags</span><span class=\"token punctuation\">.</span><span class=\"token property\">size</span> <span class=\"token operator\">></span> <span class=\"token number\">0</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n  <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">capture</span></span> <span class=\"token property\">tags_content</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span><span class=\"token other\">Posted with</span> <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">if</span></span> <span class=\"token property\">post</span><span class=\"token punctuation\">.</span><span class=\"token property\">tags</span><span class=\"token punctuation\">.</span><span class=\"token property\">size</span> <span class=\"token operator\">==</span> <span class=\"token number\">1</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span><span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>i</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>icon icon-tag<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>i</span><span class=\"token punctuation\">></span></span></span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">else</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span><span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>i</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>icon icon-tags<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>i</span><span class=\"token punctuation\">></span></span></span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endif</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span><span class=\"token other\">:</span> <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endcapture</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n  <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">for</span></span> <span class=\"token property\">post_tag</span> <span class=\"token operator\">in</span> <span class=\"token property\">post</span><span class=\"token punctuation\">.</span><span class=\"token property\">tags</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n    <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">for</span></span> <span class=\"token property\">data_tag</span> <span class=\"token operator\">in</span> <span class=\"token property\">site</span><span class=\"token punctuation\">.</span><span class=\"token property\">data</span><span class=\"token punctuation\">.</span><span class=\"token property\">tags</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n      <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">if</span></span> <span class=\"token property\">data_tag</span><span class=\"token punctuation\">.</span><span class=\"token property\">slug</span> <span class=\"token operator\">==</span> <span class=\"token property\">post_tag</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n        <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">assign</span></span> <span class=\"token property\">tag</span> <span class=\"token operator\">=</span> <span class=\"token property\">data_tag</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n      <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endif</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n    <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endfor</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n    <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">if</span></span> <span class=\"token property\">tag</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n      <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">capture</span></span> <span class=\"token property\">tags_content_temp</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{{</span></span> <span class=\"token property\">tags_content</span> <span class=\"token rd\"><span class=\"token punctuation\">}}</span></span></span><span class=\"token other\">&lt;a href=\"/blog/tag/</span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{{</span></span> <span class=\"token property\">tag</span><span class=\"token punctuation\">.</span><span class=\"token property\">slug</span> <span class=\"token rd\"><span class=\"token punctuation\">}}</span></span></span><span class=\"token other\">/\"></span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{{</span></span> <span class=\"token property\">tag</span><span class=\"token punctuation\">.</span><span class=\"token property\">name</span> <span class=\"token rd\"><span class=\"token punctuation\">}}</span></span></span><span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>a</span><span class=\"token punctuation\">></span></span></span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">if</span></span> <span class=\"token property\">forloop</span><span class=\"token punctuation\">.</span><span class=\"token property\">last</span> <span class=\"token operator\">==</span> <span class=\"token boolean\">false</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span><span class=\"token other\">,</span> <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endif</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endcapture</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n      <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">assign</span></span> <span class=\"token property\">tags_content</span> <span class=\"token operator\">=</span> <span class=\"token property\">tags_content_temp</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n    <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endif</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n  <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endfor</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n<span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">else</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n  <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">assign</span></span> <span class=\"token property\">tags_content</span> <span class=\"token operator\">=</span> <span class=\"token string\"><span class=\"token punctuation\">'</span><span class=\"token punctuation\">'</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n<span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endif</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></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></pre></div>\n<h4>2. Coloque o conteúdo da variavel <code class=\"language-text\">tags_content</code> onde quiser dentro do seu layout <code class=\"language-text\">post.html</code></h4>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-html line-numbers\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span> <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation\">=</span><span class=\"token punctuation\">\"</span>post__meta<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>{{ tags_content }}<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<h4>3. Crie um layout chamado tag.html</h4>\n<div class=\"gatsby-highlight\" data-language=\"twig\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-twig line-numbers\"><code class=\"language-twig\"><span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>h1</span><span class=\"token punctuation\">></span></span>Articles by tag :</span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{{</span></span> <span class=\"token property\">page</span><span class=\"token punctuation\">.</span><span class=\"token property\">tag</span> <span class=\"token rd\"><span class=\"token punctuation\">}}</span></span></span><span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>h1</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span></span>\n  <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">if</span></span> <span class=\"token property\">site</span><span class=\"token punctuation\">.</span><span class=\"token property\">tags</span><span class=\"token punctuation\">[</span><span class=\"token property\">page</span><span class=\"token punctuation\">.</span><span class=\"token property\">tag</span><span class=\"token punctuation\">]</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n    <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">for</span></span> <span class=\"token property\">post</span> <span class=\"token operator\">in</span> <span class=\"token property\">site</span><span class=\"token punctuation\">.</span><span class=\"token property\">tags</span><span class=\"token punctuation\">[</span><span class=\"token property\">page</span><span class=\"token punctuation\">.</span><span class=\"token property\">tag</span><span class=\"token punctuation\">]</span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n      <span class=\"token other\">&lt;a href=\"</span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{{</span></span> <span class=\"token property\">post</span><span class=\"token punctuation\">.</span><span class=\"token property\">url</span> <span class=\"token rd\"><span class=\"token punctuation\">}}</span></span></span><span class=\"token other\">/\"></span><span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{{</span></span> <span class=\"token property\">post</span><span class=\"token punctuation\">.</span><span class=\"token property\">title</span> <span class=\"token rd\"><span class=\"token punctuation\">}}</span></span></span><span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>a</span><span class=\"token punctuation\">></span></span></span>\n    <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endfor</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n  <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">else</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n    <span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>p</span><span class=\"token punctuation\">></span></span>There are no posts for this tag.<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>p</span><span class=\"token punctuation\">></span></span></span>\n  <span class=\"token tag\"><span class=\"token ld\"><span class=\"token punctuation\">{%</span> <span class=\"token keyword\">endif</span></span> <span class=\"token rd\"><span class=\"token punctuation\">%}</span></span></span>\n<span class=\"token other\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></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></pre></div>\n<h4>4. Adicione em seu <code class=\"language-text\">post entry</code> o front-matter, como de costume.</h4>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-yaml line-numbers\"><code class=\"language-yaml\"><span class=\"token punctuation\">---</span>\n<span class=\"token key atrule\">title</span><span class=\"token punctuation\">:</span> How To Use Tags And Categories On GitHub Pages Without Plugins\n<span class=\"token key atrule\">category</span><span class=\"token punctuation\">:</span> programming\n<span class=\"token key atrule\">tags</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span>github<span class=\"token punctuation\">,</span> github<span class=\"token punctuation\">-</span>pages<span class=\"token punctuation\">,</span> jekyll<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></pre></div>\n<h4>5. Para cada tag usada você tem que adicionar uma entrada dentro do arquivo <code class=\"language-text\">_data/tags.yml</code></h4>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-yaml line-numbers\"><code class=\"language-yaml\"><span class=\"token punctuation\">-</span> <span class=\"token key atrule\">slug</span><span class=\"token punctuation\">:</span> github<span class=\"token punctuation\">-</span>pages\n  <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> GitHub Pages</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<h4>6. Para cada tag usada você tem que adicionar um template vazio. Ex.: <em>blog/tag/github-pages.md</em></h4>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-yaml line-numbers\"><code class=\"language-yaml\"><span class=\"token key atrule\">---layout</span><span class=\"token punctuation\">:</span> blog_by_tag\n<span class=\"token key atrule\">tag</span><span class=\"token punctuation\">:</span> github<span class=\"token punctuation\">-</span>pages\n<span class=\"token key atrule\">permalink</span><span class=\"token punctuation\">:</span> /blog/tag/github<span class=\"token punctuation\">-</span>pages/\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></pre></div>\n<blockquote>\n<p>Para uma implementação mais complexa de categorias e tags veja nesse repositório: <a href=\"https://github.com/nandomoreirame/nandomoreira-jekyll-theme/tree/master/source/_data\">github.com/nandomoreirame/nandomoreira-jekyll-theme</a></p>\n</blockquote>\n<p>/end</p>","excerpt":"Esse artigo foi traduzido de: How to use tags and categories on github pages without plugins GitHub Pages serviço é simplesmente incrível, e com a…","timeToRead":2,"frontmatter":{"category":["jekyll"],"date":"há 11 anos","description":"GitHub Pages serviço é simplesmente incrível! E com a integração Jekyll ele fica ainda mais impressionante! Mas existem algumas limitações neste grande sistema automatizado","path":"/usando-categorias-e-tags-no-jekyll","tags":["github","gh-pages","jekyll"],"title":"Usando categorias e tags no Jekyll","image":{"publicURL":"/static/get-started-with-jekyll-89fd15d1dd2f602e9773098c7b895352.jpg","name":"get-started-with-jekyll"}},"fields":{"readingTime":{"words":394}}}},{"node":{"id":"988c40c6-1f25-5fb1-84ee-7dd6b3968a84","html":"<p>Você deve estar se perguntando: <em><strong>\"Front-end de graça? Como assim?\"</strong></em></p>\n<p>É isso mesmo que você leu, <strong>Faço front-end de graça</strong>, mas tem alguns requisitos necessários para que isso aconteça, vem comigo que te explico como...</p>\n<h2>I ❤️ open source</h2>\n<p>Ultimamente estou gostando muito de ajudar a criar projetos <em>open source</em>, então um dos requisitos para que eu possa fazer um <strong>HTML bonitão</strong> para o seu projeto é que ele precisa estar no <a href=\"https://github.com/nandomoreirame\">Github</a> para que todos possam ver, usar e contribuir com ele.</p>\n<p>Isso mesmo! Você tem um framework e quer fazer uma documentação bonita pra dele? Tem um projeto bacana e quer uma landing page ou hotsite? Conte comigo!!</p>\n<h2>Troca de conhecimento</h2>\n<p>Outro requisito, caso não seja possível cumprir com o primeiro, é a <em><strong>troca de conhecimento</strong></em></p>\n<p>Eu tenho amplo conhecimento em tecnologias para <em>front-end</em> como <strong>HTML(Jekyll/liquid, jade, Haml, Erb), CSS(CSS3, SASS, Less, Stylus) e Javascript(jQuery, AngularJS, NodeJS, Gulp.js)</strong>, e eu posso contribuir com o seu projeto <strong>SEM LHE COBRAR NADA POR ISSO</strong>, se e somente se, você tiver algum conhecimento(que possa ser de meu interesse, claro) você pode ensina-lo a mim, seria algo como: <em>uma nova linguagem de programação, um framework bacana, tocar violão, guitarra, sax, bombardão, teclado, piano, dançar, cozinhar...</em> ou seja qualquer coisa mesmo!!!</p>\n<h2>E aí, Bora? 👊</h2>\n<p><img src=\"../../../assets/2015/10/madruga.gif\" alt=\"Gif do Seu madruga\"></p>\n<p>Eu apoio totalmente a troca deconhecimento, seja em uma boa conversa sobre culinária ou em um repositório no <em>Github</em>.</p>\n<p>Você quer troca figurinhas comigo? Seu projeto está no <em>Github</em> e você precisa de um front-end? Você sabe tocar algum instrumento e tem um projeto bacana para colocar no ar? Podemos nos encontrar e conversar sobre o assunto, podemos fazer isso acontecer...</p>\n<p><strong>Só se for agora 🤘</strong></p>\n<p>/end</p>","excerpt":"Você deve estar se perguntando: \"Front-end de graça? Como assim?\" É isso mesmo que você leu, Faço front-end de graça, mas tem alguns requisitos…","timeToRead":1,"frontmatter":{"category":["geral"],"date":"há 11 anos","description":"É isso mesmo que você leu, Faço front-end de graça, mas tem alguns requisitos necessários para que isso aconteça, vem comigo que te explico como","path":"/faco-front-end-de-graca","tags":["front-end","open-source","geral"],"title":"Faço front-end de graça, saiba como!","image":{"publicURL":"/static/madruga-36f27130dd0b43b1f3490d021e88740d.gif","name":"madruga"}},"fields":{"readingTime":{"words":286}}}},{"node":{"id":"16ff37f4-5d52-5879-b6f2-c9569a728c1b","html":"<p>Esse post não poderia começar melhor, com um \"<em>I love U</em>\" para MalaPronta.com, um ambiente descontraído com piadas ruins (mas que são boas) e uma sala que não é nem quente nem fria e nem escura ou clara(entendedores entenderão).</p>\n<p>Eu queria poder dizer que to feliz com tudo isso, mas não to. Eu amava trabalhar lá, apesar de muitas intrigas e desavenças, eu amava meu emprego.</p>\n<p>Eu vou compartilhar com vocês meus <strong>8 meses</strong> de experiência em uma <em>startup</em> com 10 anos de vida, posso dizer que não vi o começo de tudo, mas vi o fim do começo, vi o fim de sonhos e planos, amizades e desavenças, tudo se acabar dentro de uma sala de reuniões de um hotel, tudo se acabou com algumas palavas ditas em dois idiomas, porque um só já não bastava.</p>\n<h2>Meu começo na MalaPronta</h2>\n<p>Tudo começou em meados Janeiro, quando nos meus primeiros dias de empresa eu teria que entender um sistema desconhecido, entender como melhorar (ou deixar menos ruim) o HTML, o CSS e o JS daquele sistema, esse sistema era chamado de <strong>Reserva Imediata</strong>.</p>\n<p>No começo tudo parecia muito confuso, muitos arquivos de configs, era configs pra tudo, pra por CSS, pra tirar CSS, pra por JS, pra tirar JS.. isso tudo era novo pra mim, mas bora lá melhorar esse projeto.</p>\n<h2>Primeiro desafio</h2>\n<p>O primeiro desafio, que me foi solicitado, foi <em><strong>Ajudar a melhorar a performance do projeto</strong></em>. Todos estavam envolvido nesse novo desafio, DBA, Integrações, Back-end e Front-end, confesso que tava com receio de não conseguir ajudar em quase nada mas eu aceitei o desafio.</p>\n<p>Primeira coisa que configurei no projeto foi o <strong>Gulp</strong>, com ele eu consegui <em>minificar</em> quase 4 mil arquivos CSS e JS, e comprimir as mais de 3 mil imagens em questões de minutos, depois fizemos uma \"<em>marotagem</em>\" com <em>regex</em> para <em>minificar</em> o HTML processado pelo <strong>PHP</strong>, com isso reduziriamos relativamente o tamanho dos arquivos de download do site, foi um bom ganho.</p>\n<p>Resultado, conseguimos baixar a média do site de 14s pra 8s, quase a metade não? Claro que isso não se deve só a mim, a galera trabalhou duro para isso acontecer, equipe massa (faltou o churrasco pra comemorar hein!).</p>\n<h2>Segundo desafio</h2>\n<p>Eu tava quase fechando dois meses de empresa quando veio o segundo desafio: <em><strong>Transformar o Reserva Imediata em um site responsivo</strong></em>, esse eu encarei com a cara e a coragem. Eu nunca tinha pego um site antigo, de código legado, que sequer tinha visto uma media query na vida (talvez a media print mas essa não conta) e transformado em responsivo, esse seria um desafio e tanto.</p>\n<p>Resultado, em duas semanas a versão responsiva do site já podia ir pro ar, a galera curtiu, eles iriam eliminar completamente o <strong>m.</strong>, um projeto que era uma pedra no sapato dos devs.</p>\n<h2>Terceiro desafio</h2>\n<p>Esse era com certeza o maior desafio de todos, <em><strong>Desenvolver o novo Reserva Imediata</strong></em>. Quando eu entrei eles já estavam criando o layout há algum tempo, inclusive o meu teste foi em cima de um HTML feito com base nesse layout.</p>\n<p>Como tudo na vida é injusto, o que fizeram com o trabalho do designer que criou essa versão do layout também foi injusto, com a entrada do novo UX, foram meses/anos de trabalho jogados fora. Posso dizer que vi o projeto ser jogado fora e começado de novo do zero, sem graça e sem vida... e vi ele tomando vida aos poucos com a entrada da nova designer.</p>\n<p>Todos sabem que designers e desenvolvedores não se dão muito bem em agências, mas ali era diferente, nos dávamos bem até, só a distância que nos separava que não era pra ser tão grande assim(eram 3 andares), no começo eu queria que ficassemos todos juntos (front, designer, ux), mas não, os designer precisavam dar prioridades pra outros projetos, não pro site (que era o principal produto da empresa), mas não liguem, <strong>esse terceiro desafio nunca será completado.</strong></p>\n<h2>A equipe</h2>\n<p>Eu tinha uma equipe massa quando eu entrei, atenciosos, focados e determinados ao extremo e tínhamos um <em>team leader</em> foda pra caralho. Éramos em 5 membros, sendo 1 <em>team leader</em> e 3 devs e 1 front(eu). Nosso entrosamento era o máximo, tínhamos reuniões diária (das quais eu quase não participava), tínhamos almoços só da equipe (partiu Madero?), mas as perdas foi deixando isso tudo para trás, primeiro um dos membros virou Analista, logo ele foi deixando de fazer parte da equipe, deixando de ir nas reuniões e tudo mais. Entrou uma nova programadora pra ajudar nas demandas do site atual enquanto nós focavamos nossos recursos no site novo. Depois de algum tempo anunciada a saída do nosso <em>team leader</em>, logo mais os outros foram indo também, acabou ficando só eu e a nova programadora no time do site.</p>\n<h2>A segunda equipe</h2>\n<p>Então foi realocado um programador de outro time para o nosso e ficamos em 3 na equipe. Essa nova formação trabalhou duro para entregar as demandas do Reserva Imediata e desenvolver novas <em>features</em> para o novo projeto e muito mais, até que..</p>\n<h2>O documento de \"ajustes\"</h2>\n<p>Estávamos todos ansiosos para ver uma versão do novo site funcionando, principalmente quem não estava acompanhando o desenvolvimento de perto (pessoal do sexto), então fizemos uma versão e colocamos em um ambiente de \"testes\"<em>(entre aspas porque alguns ainda não entenderam que era apenas testes)</em>.</p>\n<p>Então na metade da terceira semana de setembro meu gerente me chamou para fazer nosso <em>one one</em> mensal, e ele me passou uma lista de ajustes para se fazer no site, que era pertinente ao meu trabalho. Até aí tranquilo né, lista de ajustes é normal em sites de testes, deve ta quebrando alguma coisa no layout ou tem um ajuste de erro de digitação.</p>\n<p>Ta bom, vai vendo..</p>\n<p>O documento contia coisas do tipo: \"<em>A indentação no navegador está errada(bagunçada), isso prejudica manutenções futuras</em>\"... E também: \"<em>As classes que você usou nos títulos estão confusas, isso prejudica manutenções futuras</em>\"... E mais: \"<em>Muitas linhas no seu CSS, pode impactar na performance</em>\".. E ainda: \"<em>Muitas linhas no seu JS, pode impactar na performance</em>\".. <a href=\"http://geradormemes.com/media/created/18qk4w.jpg\">Pode isso Arnaldo?</a></p>\n<p>Tem como não levar para o lado pessoal? Tem como não ter isso como um insulto ao meu trabalho? Pois bem.. Deixarei que você, que está lendo isso agora, responda essas perguntas e tire suas própias conclusões.</p>\n<h2>A infra</h2>\n<p>Eu não posso deixar de mencionar o famoso <a href=\"http://wprosdocimo.com.br/fantastic_four/\">Quarteto Fantástico</a> que era a equipe de infraestrutura, preciso deixar os meus agradecimentos aqui por todas as pausas para o café que tivemos no sétimo andar e todos os papos nerds(e outros papos sem futuro e de buling uns com os outros), com esses com certeza materei eterno contato. Continuem salvando o mundo e fazendo ótimos cafés como vocês sempre fizeram que tudo ficará bem.</p>\n<h2>O fim</h2>\n<p>Como eu comentei no início desse post, por mais que existiam intrigas, fofocas e desavenças eu amava trabalhar na MalaPronta, me sentia livre para trabalhar, pesquisar e implementar novas coisas. Novas ideias surgiram de mim, como criar um framework pra padronizar códigos CSS e JS, criar um blog de TI da MalaPronta pra compartilhar nossas soluções com outras pessoas, como muitas empresas de TI fazem por ai.</p>\n<p>Eu aprendi muito com as pessoas em minha volta, desenvolvedores super inteligentes, antenados e focados no trabalho. Aprendi tecnologias novas como Symfony, Vagrant, sistemas de deploys inteligentes, sistemas de monitoramentos, aprendi a ser humilde com os caras mais humildes que já conheci e que são fodas pakas, aprendi que nunca uma piada sua é boa ou tão ruim se não tiver ouvintes que a entendam bem, aprendi que um ambiente (quente ou frio, escuro ou claro) nunca é acolhedor se não tiver pessoas legais é carismáticas nele.</p>\n<p>Sempre vou sentir saudades das pessoas do porão da MalaPronta, vulgo <strong>3° andar</strong>.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 56.22263914946842%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAv/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABNNgJpAaP/8QAHBAAAgICAwAAAAAAAAAAAAAAAQIAAxESEyE0/9oACAEBAAEFAhlYH63Mp87WNyux3//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/ARJ//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGxAAAgMAAwAAAAAAAAAAAAAAAAECESExcYH/2gAIAQEABj8CyhuLo4fjIjV50M//xAAcEAEAAgMAAwAAAAAAAAAAAAABACERMVFBYYH/2gAIAQEAAT8hTVob8ffcwnMtjSQQLZAVerKYYUCKiEzvlT//2gAMAwEAAgADAAAAEI/P/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAxQf/aAAgBAwEBPxBnMlv/xAAWEQEBAQAAAAAAAAAAAAAAAAAAESH/2gAIAQIBAT8Qmo//xAAeEAEBAAICAgMAAAAAAAAAAAABEQAhMVFhkXGBsf/aAAgBAQABPxAbsyY2nwavWGJAoxsuu/pxQQQnBPfOCxVYry1PzB2giADxTGWBVYBx0az/2Q=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/fd69f4e1eab6ca75ce9c556b623b6c64/bc904/galera-do-porao-malapronta.webp 250w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/4be29/galera-do-porao-malapronta.webp 500w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/03f31/galera-do-porao-malapronta.webp 1000w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/9579c/galera-do-porao-malapronta.webp 1500w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/ac188/galera-do-porao-malapronta.webp 1599w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/fd69f4e1eab6ca75ce9c556b623b6c64/0988f/galera-do-porao-malapronta.jpg 250w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/d1f95/galera-do-porao-malapronta.jpg 500w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/dbdff/galera-do-porao-malapronta.jpg 1000w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/9d81f/galera-do-porao-malapronta.jpg 1500w,\n/static/fd69f4e1eab6ca75ce9c556b623b6c64/90a7e/galera-do-porao-malapronta.jpg 1599w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/jpeg\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/fd69f4e1eab6ca75ce9c556b623b6c64/dbdff/galera-do-porao-malapronta.jpg\"\n          alt=\"Galera do porão da MalaPronta.com\"\n          title=\"Galera do porão da MalaPronta.com\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Galera do porão da MalaPronta.com</figcaption>\n  </figure></p>","excerpt":"Esse post não poderia começar melhor, com um \"I love U\" para MalaPronta.com, um ambiente descontraído com piadas ruins (mas que são boas) e uma sala…","timeToRead":5,"frontmatter":{"category":["Geral"],"date":"há 11 anos","description":"Eu queria poder dizer que to feliz com tudo isso, mas não to. Eu amava trabalhar lá, apesar de muitas intrigas e desavenças, eu amava meu emprego.","path":"/8-meses-de-malapronta-e-o-fim","tags":["geral"],"title":"8 meses de MalaPronta e o fim.","image":{"publicURL":"/static/galera-do-porao-malapronta-fd69f4e1eab6ca75ce9c556b623b6c64.jpg","name":"galera-do-porao-malapronta"}},"fields":{"readingTime":{"words":1310}}}},{"node":{"id":"bc6c0707-6230-5068-bb0c-b9a0585b3355","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","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}}}},{"node":{"id":"ddb42064-5bab-50fc-9fdf-6963612e9122","html":"<p>Eu criei um <a href=\"https://github.com/nandomoreirame/gulp-boilerplate\">repositório</a> no <a href=\"https://github.com/\">Github</a> onde mantenho atualizado com um <strong>boilerplate</strong> para Gulp, o repositório era pra ser pessoal mas eu resolvi compartilhar.</p>\n<p>Todo mundo já usou ou já ouviu falar dos pacotes do <a href=\"https://nodejs.org/\">NodeJS</a> os famosos <a href=\"https://www.npmjs.com/\">npm</a>, eu queria saber como fazer um e talvez, quem sabe, criar um pra saber que gostinho tem :)</p>\n<p>Eu gosto muito da ideia do <a href=\"http://yeoman.io/\">Yeoman</a> de poder iniciar um projeto rápido com os seus <em><a href=\"http://yeoman.io/generators/\">generators</a></em>, dai eu pensei: <strong>\"Porque não fazer o um generator também?\"</strong></p>\n<p>Dessa ideia que saiu o <a href=\"https://github.com/nandomoreirame/generator-gulp-boilerplate\">Generator Gulp Boilerplate</a>.</p>\n<p>A documentação do Yeoman é bem simples e fazer um generator é bem fácil, eu realmente não tive dificuldades e com a ajuda do <a href=\"http://blog.da2k.com.br/2015/03/20/criando-uma-ferramenta-de-cli-com-nodejs/\">blog do Da2k</a> eu consegui publicar ele no repositório do npmjs.com.</p>\n<h2>Como usar o Yeoman</h2>\n<p>Como o <strong>Yeoman</strong> é um componente do <strong>NodeJS</strong> então você deve instalar ele com o comando <code class=\"language-text\">npm install</code>, assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> <span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g yo</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Com o Yeoman devidamente instalado em sua máquina basta só ir no <a href=\"http://yeoman.io/generators/\">repositório</a> e escolher o generator que quer instalar, a escolha não vai ser fácil pois atualmente tem mais de <em><strong>3 mil</strong></em> generators no repositório do Yeoman.</p>\n<blockquote>\n<p>Procure por \"gulp-boilerplate\" no campo de busca que vc vai encontrar o meu generator por lá..</p>\n</blockquote>\n<p>Após escolher o seu generator basca clicar nele que você irá para o repositório do Github do generator, lá terá a documentação daquele generator, basta segui-la.</p>\n<h2>Instalando o Gulp Boilerplate</h2>\n<p>Para instalar o <strong>Gulp Boilerplate</strong> basta executar o seguinte comando:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> <span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g generator-gulp-boilerplate</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Simples e fácil.</p>\n<h2>Usando um generator</h2>\n<p>Crie um diretório para trabalhar e entre nele.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">mkdir</span> my-project\n<span class=\"token builtin class-name\">cd</span> my-project/</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<p>Basta executar o generator que foi escolhido e instalado por você basta escrever <code class=\"language-text\">yo</code> e em seguida o <em>\"slug\"</em> do generator, assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">yo gulp-boilerplate</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>O generator vai criar todo o <em>\"start\"</em> do projeto pra você, sem reclamar ;)</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 664px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 104.96987951807229%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAACXBIWXMAAAsSAAALEgHS3X78AAABjElEQVQ4y5WU23KkIBCGAZHDaHnAqDMqoyIgViWbff+n23aSzd1MtLGo4uKj//67BdGEi1bIXopu3/mNIZ6gS4FS9fgKhDB6FhhjRijFUUQiODLKBOcsppxSHtMIPyd3mJBU8ITFjDN5kcaYZbFa62VZBq2llISQ5zBCSSLzLIkIiSiN45j+j+gRrzLDxSwiHNDXCp/IxjjGUvCLEByWlJD8KEw4QVc0LPctbM77EMI0jUKIw3CLBqO3NZjFrOs6juPR5F/w3d4Bts7N06SUOiO7RbepC+s6m9k7rx8dOgqTGynb0lkHGNQMe1mWR2F8xapV3rpBDx7yT1PXddDnk/AwhLBu2zYdrPwbvqrFWDBM6yHP8xOGAQw1r35f1lpoVdM0SpW/2/ZjGAyJ995ZC7LneYYrTsgOPjhw3O/J90E/Mup7nxs0uvHv5yeohYLjIz5/w2Kf7d4MH+9/8jw791cRRlCJ6lsDz0Df90dn6yvqt7rIyyRJ0jQtlcqLQlVVlmVVVdV1DVW8eEn+AV22JQjVtVNgAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/d3b516c403727a3ec5ab9a8be68aaeaa/bc904/yeoman-generator-gulp-boilerplate.webp 250w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/4be29/yeoman-generator-gulp-boilerplate.webp 500w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/884cf/yeoman-generator-gulp-boilerplate.webp 664w\"\n          sizes=\"(max-width: 664px) 100vw, 664px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/d3b516c403727a3ec5ab9a8be68aaeaa/43fa5/yeoman-generator-gulp-boilerplate.png 250w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/c6e3d/yeoman-generator-gulp-boilerplate.png 500w,\n/static/d3b516c403727a3ec5ab9a8be68aaeaa/71592/yeoman-generator-gulp-boilerplate.png 664w\"\n          sizes=\"(max-width: 664px) 100vw, 664px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/d3b516c403727a3ec5ab9a8be68aaeaa/71592/yeoman-generator-gulp-boilerplate.png\"\n          alt=\"Yeoman Generator Gulp Boilerplate\"\n          title=\"Yeoman Generator Gulp Boilerplate\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Yeoman Generator Gulp Boilerplate</figcaption>\n  </figure></p>\n<h2>Raio-x do Gulp Boilerplate</h2>\n<blockquote>\n<p>\"Mas afinal o que tem de especial nesse tal Gulp Boilerplate pra me fazer instalar e usar ele?\"</p>\n</blockquote>\n<p>Calma jovem, vou listar abaixo todos os pacotes e as tasks do Gulp Boilerplate pra você não ficar ai todo curioso:</p>\n<h4>Pacotes gulp</h4>\n<ul>\n<li><a href=\"http://browsersync.io/\">browser-sync</a></li>\n<li><a href=\"https://npmjs.com/package/gulp\">gulp</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-autoprefixer\">gulp-autoprefixer</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-combine-media-queries\">gulp-combine-media-queries</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-compass\">gulp-compass</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-imagemin\">gulp-imagemin</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-include\">gulp-include</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-jade\">gulp-jade</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-jshint\">gulp-jshint</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-load-plugins\">gulp-load-plugins</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-minify-css\">gulp-minify-css</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-plumber\">gulp-plumber</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-rename\">gulp-rename</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-size\">gulp-size</a></li>\n<li><a href=\"https://npmjs.com/package/gulp-uglify\">gulp-uglify</a></li>\n<li><a href=\"https://npmjs.com/package/imagemin-pngquant\">imagemin-pngquant</a></li>\n<li><a href=\"https://npmjs.com/package/jade\">jade</a></li>\n<li><a href=\"https://npmjs.com/package/require-dir\">require-dir</a></li>\n<li><a href=\"https://npmjs.com/package/run-sequence\">run-sequence</a></li>\n</ul>\n<h4>Tasks</h4>\n<ul>\n<li><code class=\"language-text\">gulp default</code> ou apenas <code class=\"language-text\">gulp</code>: executa a task <code class=\"language-text\">gulp serve</code></li>\n<li><code class=\"language-text\">gulp serve</code>: executa o <strong>watch</strong> do projeto para os arquivos de <code class=\"language-text\">.jade</code>, <code class=\"language-text\">.sass</code> e <code class=\"language-text\">.js</code> e executa também um servidor usando o <code class=\"language-text\">browser-sync</code> e toda a vez que um arquivo HTML, CSS ou JS é alterado ele dá o <em>reload</em> nos navegadores.</li>\n<li><code class=\"language-text\">gulp html</code>: usando os pacotes <a href=\"https://www.npmjs.com/package/jade\">jade</a> e <a href=\"https://www.npmjs.com/package/gulp-jade\">gulp-jade</a> essa tarefa processa arquivos <a href=\"http://jade-lang.com/\">.jade</a></li>\n<li><code class=\"language-text\">gulp sass</code>: tarefa para executar o pré-processador <a href=\"http://sass-lang.com/\">SASS</a>, aqui usamos o pacote <a href=\"https://www.npmjs.com/package/gulp-compass\">gulp-compass</a>.</li>\n<li><code class=\"language-text\">gulp lint</code>: aqui executamos o <code class=\"language-text\">lint</code> para aquivos que estão em <code class=\"language-text\">js/components/</code> que são os arquinos js de produção.</li>\n<li><code class=\"language-text\">gulp js</code>: essa tarefa usa o pacote <a href=\"https://www.npmjs.com/package/gulp-include\">gulp-include</a> para incluir arquivos JS como é feito em <strong>SASS</strong> e emseguida minificar e salvar em dois aquivos <code class=\"language-text\">FILE.js</code> e <code class=\"language-text\">FILE.min.js</code>.</li>\n<li><code class=\"language-text\">gulp images</code>: usando <a href=\"https://www.npmjs.com/package/gulp-imagemin\">gulp-imagemin</a> e <a href=\"https://www.npmjs.com/package/imagemin-pngquant\">imagemin-pngquant</a> reduzimos o tamanho de todas as imagens para produção.</li>\n<li><code class=\"language-text\">gulp fonts</code>: apenas copiamos do diretório <code class=\"language-text\">/src/fonts/</code> para <code class=\"language-text\">dist/assets/fonts/</code></li>\n<li><code class=\"language-text\">gulp build</code>: faz o <strong>build</strong> do projeto executando as tasks <code class=\"language-text\">gulp html</code>, <code class=\"language-text\">gulp sass</code>, <code class=\"language-text\">gulp js</code>, <code class=\"language-text\">gulp images</code> e <code class=\"language-text\">gulp fonts</code></li>\n</ul>\n<p>Bem, basicamente essa é a forma que eu trabalho com gulp, se você gostou da um like e um fork lá do repositório do projeto e comenta ai em baixo.</p>\n<p>Abraço.</p>\n<p>/end</p>","excerpt":"Eu criei um repositório no Github onde mantenho atualizado com um boilerplate para Gulp, o repositório era pra ser pessoal mas eu resolvi compartilhar…","timeToRead":4,"frontmatter":{"category":["gulp"],"date":"há 11 anos","description":"Eu criei um repositório no Github onde mantenho atualizado com um boilerplate para Gulp, o repositório era pra ser pessoal mas eu resolvi compartilhar.","path":"/yeoman-generator-gulp-boilerplate","tags":["gulp","generator","yeoman"],"title":"Yeoman Generator Gulp Boilerplate","image":{"publicURL":"/static/yeoman-5ff3a946146c6cb519048cd74d3f18aa.jpg","name":"yeoman"}},"fields":{"readingTime":{"words":625}}}},{"node":{"id":"cead83f8-83fb-57c3-a946-531770bd2975","html":"<p>Gulp 4 não foi liberado ainda e se você não pode esperar para colocar suas mãos sobre ele, aqui vai como instalar o Gulp 4.</p>\n<h3>Instale o Gulp globalmente</h3>\n<p>Se você tiver uma versão anterior do Gulp instalado, desinstale primeiro. Talvez seja necessário executar este comando como um administrador ou um superusuário, dependendo do seu sistema.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">npm</span> uninstall -g gulp\n<span class=\"token function\">npm</span> <span class=\"token function\">install</span> -g <span class=\"token string\">\"gulpjs/gulp-cli#4.0\"</span>\nNa minha máquina <span class=\"token punctuation\">(</span>Linux Mint Rebecca<span class=\"token punctuation\">)</span>, eu não tinha problemas contínuos usando Gulp <span class=\"token operator\">&lt;</span> <span class=\"token number\">4</span> depois de instalar globalmente Gulp <span class=\"token number\">4</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></pre></div>\n<h3>Adicionar Gulp 4 em seus repositórios</h3>\n<p>Se você usar uma versão anterior do Gulp (ie Gulp 3.8.x ou anterior), remova-o do repositório que você deseja atualizar. Não se esqueça de especificar --save-dev ou --save para que o seu package.json seja atualizado.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token builtin class-name\">cd</span> your_repo/\n<span class=\"token function\">npm</span> uninstall gulp --save-dev <span class=\"token comment\"># removendo o gulp 3.8.x local</span>\n<span class=\"token function\">npm</span> <span class=\"token function\">install</span> <span class=\"token string\">\"gulpjs/gulp#4.0\"</span> --save-dev <span class=\"token comment\"># instalando o gulp 4.0 local</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></pre></div>\n<h3>Possíveis problemas ao desinstalar Gulp</h3>\n<p>Na minha máquina, a versão anterior do Gulp não foi devidamente removida e eu comecei a ficar esse erro ao tentar executar:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">/usr/local/lib/node_modules/gulp/bin/gulp.js:129\n    gulpInst.start.apply<span class=\"token punctuation\">(</span>gulpInst, toRun<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                   ^\nTypeError: Cannot call method <span class=\"token string\">'apply'</span> of undefined\n    at /usr/local/lib/node_modules/gulp/bin/gulp.js:129:20\n    at process._tickDomainCallback <span class=\"token punctuation\">(</span>node.js:492:13<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></pre></div>\n<p>O que significa esse erro de rastreamento uso tel? gulp.start() não está mais no Gulp 4 e não deve ser chamado e o pacote gulp-cli deve ser chamado no lugar de pacote gulp.</p>\n<p>Eu corri o seguinte comando:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">ls</span> -l $<span class=\"token variable\"><span class=\"token variable\">`</span><span class=\"token function\">whereis</span> gulp<span class=\"token variable\">`</span></span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>E percebi que eu ainda tinha um arquivo do Gulp antigo em uma pasta bin:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">lrwxrwxrwx <span class=\"token number\">1</span> root root <span class=\"token number\">40</span> May  <span class=\"token number\">3</span> <span class=\"token number\">11</span>:17 /usr/bin/gulp -<span class=\"token operator\">></span> <span class=\"token punctuation\">..</span>/lib/node_modules/gulp-cli/bin/gulp.js\nlrwxrwxrwx <span class=\"token number\">1</span> root root <span class=\"token number\">40</span> May  <span class=\"token number\">3</span> <span class=\"token number\">11</span>:17 /usr/bin/X11/gulp -<span class=\"token operator\">></span> <span class=\"token punctuation\">..</span>/lib/node_modules/gulp-cli/bin/gulp.js\nlrwxrwxrwx <span class=\"token number\">1</span> root root <span class=\"token number\">36</span> Apr  <span class=\"token number\">3</span> <span class=\"token number\">21</span>:41 /usr/local/bin/gulp -<span class=\"token operator\">></span> <span class=\"token punctuation\">..</span>/lib/node_modules/gulp/bin/gulp.js</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<p>Simplesmente remova arquivos antigos:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> <span class=\"token function\">rm</span> /usr/local/bin/gulp\n<span class=\"token function\">sudo</span> <span class=\"token function\">rm</span> -rf /usr/local/lib/node_modules/gulp</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<p>/done.</p>","excerpt":"Gulp 4 não foi liberado ainda e se você não pode esperar para colocar suas mãos sobre ele, aqui vai como instalar o Gulp 4. Instale o Gulp globalmente…","timeToRead":2,"frontmatter":{"category":["sass"],"date":"há 11 anos","description":"Gulp 4 não foi liberado ainda e se você não pode esperar para colocar suas mãos sobre ele, aqui vai como instalar o Gulp 4.","path":"/como-instalar-o-gulp-4","tags":["node","gulp","instalação"],"title":"Como instalar o Gulp 4","image":{"publicURL":"/static/gulp-29ad534bcd8c62207f472d6b92fe7f99.png","name":"gulp"}},"fields":{"readingTime":{"words":308}}}},{"node":{"id":"efde819c-fb8f-58fe-ad4e-e5440f66d298","html":"<p>Meu amigo Wilson gostou muito da ideia de poder publicar o blog dele no github usando Jekyll. Pode-se dizer que eu sou um “Evangelista do Jekyll” porque ele é um convertido da minha palavra. (huehuehue)</p>\n<p>Bom, ele usou por algum tempo o tema default gerado pelo jekyll, é até “bonitinho” mas convenhamos, sempre pode melhorar né.</p>\n<p>O link do projeto é: <a href=\"http://wprosdocimo.com.br\">wprosdocimo.com.br</a></p>\n<p>O resultado foi bem bacana, veja logo abaixo.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 111.05417276720351%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAWCAIAAABPIytRAAAACXBIWXMAAAsSAAALEgHS3X78AAADlElEQVQ4y6VRi09aZxz9XNeHaBHkISgvQVCEIm8opUjV6qZdLdZY2wxj1ia2ddYat7Y+qgLSLmg2O4rxLaKrXbu6mCz2T8KLM7E8vJf3votLKy5mS3Zycu69v3tOfvd8FzweGB0ctg+NjD968vR+d9/dew+7unrv3P62w9plabHWN7Saa65V1zSr9XWmS1daWztvtH1zq/0O1MsNrWB5Ydm75F1eXJqfmZt2v3T/9ML949SUa/IH27hzxGEfttuHbWMDo84hu3PQNj5kdwyOOQZGHz/4/m7nPfA7jk1cNjY23r17+3r99doq5LrP+2Zt5deVZd/szPTkRN/9HuvNjkcPHg719XfetMoVejZfAv7Y2tp6/35zc/O3t2/Wf1l9tep75fMuzngmnI7e7u4bbe1Xv7IYjDVMTnlBUSmNJaSzyoh0HoHCJlBY4OeJCeeYbWVx3rcw65l0uWyj3/X0tDS3KFQGnlDG4Iqp7HIKSwRJYgry6bw8KodI5xKo7NPkYnBBo2uzXJ/zuL2z01PPnz0feTrQ3w93fn3L2thkqW1ovlDTqDXVV52/xJVozpYISezys8VluTTuGSoHMFgCnc7gcthcYyNP+npvd3S0W65fa7xqNtWptSapwiA6p+NVKOh8KZkrJnHEBTBcIiQU8WEeFNCYTBZPWCFVa3QNl7+oNtWZjLU6nUkq1wvESo6oiiWsgklSJgOZzyzLYwgINC6BwgTgZC44RQA5pwD4DJzIPZlPgacCqxYWl5WKVTB5glzyeSErh8gE+QyQVwTyaIBAAWeIeLBCppLI1VKlRqLQSJVaqHKtUW/+UnOx3lh3RV/bdE5vlunNUm21RHOxUmOsVBsrVQaZCjrVIH0IGIaFQqFwKPThQxBF0WQqlUwm08cjKxyPxyKRCIai4XA4Houl/w1Z4b29Pb/fHwgEEATZRnaQwJ87GRxMdnd3j3xI9uZYbH9/H8sgjMYhE0kciUTiQFOp1LFhmISdg7B2OJz+Dzh6YJnNaBTD4vAAYlDicGHmij/C+2PDwWBw2+9HkIAf2dlG8J6wLayaqY13jkajWWHY5iOxaDQSCe+j0TCawGJwkMLnib/fHvy5w36Q/h8AL+a9nzj3ie4Fn2dpzbO06l5YyfIcIgDU0iPMofEBicOSnZcY6xXmJoZEC8gcfPgPJyDyqz6yQCAvFKkgySIltVxNE2volVqohSIlPhQqoeGw/y/LEvjr7X2QmQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/1b022cf4ae4ed3b8dc2b3278f730f314/bc904/blog-wprosdocimo.webp 250w,\n/static/1b022cf4ae4ed3b8dc2b3278f730f314/4be29/blog-wprosdocimo.webp 500w,\n/static/1b022cf4ae4ed3b8dc2b3278f730f314/03f31/blog-wprosdocimo.webp 1000w,\n/static/1b022cf4ae4ed3b8dc2b3278f730f314/1a9e8/blog-wprosdocimo.webp 1366w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/1b022cf4ae4ed3b8dc2b3278f730f314/43fa5/blog-wprosdocimo.png 250w,\n/static/1b022cf4ae4ed3b8dc2b3278f730f314/c6e3d/blog-wprosdocimo.png 500w,\n/static/1b022cf4ae4ed3b8dc2b3278f730f314/da8b6/blog-wprosdocimo.png 1000w,\n/static/1b022cf4ae4ed3b8dc2b3278f730f314/d6ebf/blog-wprosdocimo.png 1366w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/1b022cf4ae4ed3b8dc2b3278f730f314/da8b6/blog-wprosdocimo.png\"\n          alt=\"Blog Wilson Luiz Prosdocimo - um blog com um pouco de tudo..\"\n          title=\"Blog Wilson Luiz Prosdocimo - um blog com um pouco de tudo..\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Blog Wilson Luiz Prosdocimo - um blog com um pouco de tudo..</figcaption>\n  </figure></p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n    <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 1000px;\"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 397.7306002928258%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABQCAIAAACWIsIgAAAACXBIWXMAAAsSAAALEgHS3X78AAALO0lEQVRYw41XB1hTZxe+to6KMgrIkASEhEAgMkSmLBUFbFXA9Yg4/h8FwQcEZShLQJAhG4GqtSAjIEMEZwGrbakgDkYYyrLsEQgEQhKG+J/kAqJN6H9ycnPz3e+959z7vWd8SER4VFRUbHRUXHhYpN/FAB8vPx8vX093b1dn9+N2DtZWRywsD1haHjAwNDczszp21PG/J5wc7F3s/3PGxuYYkpaWlp6efjst7Zefb15PSk6OT0iKj0+MjrkaEhoWeDkkICjYPzDI51KY/+Vwrl7xAw3y87hwxuEMcrewoPBe4d3CuwV38wsK8nJzyOTMdHJGOjk9NScj9U56KvnWjZ9iY7xd3Y/bHvdydfc77+l4wl5H10hOUQ0pun//waNHRcXF+fl52VkZ5EzQ26k3U2Kvhnu4ux2xtbOy2m+63RyjoCIiJS8ug5eUJYhIblgthlkthkWS46LDLgen/nzj9s/Xr0VFhl0KcHN2ttpjTVLTwSioimMIQpIKoCLSOGEpBUGJDQJiWEEJOQFx7CpRGcRIT/+gzb6Uawm3b15PiIwI9PY6d8bJ0+2sk4Pz/v22FrtsLHYfMDb7EaukKSSjKIJVEsYQBNfjV0ts+E4ci0hhcZs360aHhkQFB/qeczt17Oghaxur3Xt27tilb7Btk47xRq0tOBUtSQWSiKyyiCxRBKssKENYI4lbvU4O+V5CBiOHI5LUtXX0Lc0tt5ruMDE209M3JWnoK6poySmqY/Fq0gokUTmiEFZJCJ4CQ1grjV8jJS8oLoOsEBBeuUZk2co1yHKB5QIiguLrZeRVAbNeXkVOSVNWSUNAUn61pPxKcdkVohjQ5d/LfCuyfqWg2EoBYYSgqqG8UVNFTYu4cRNRTUtpoyZJS0/HeKem/jajnXtMd1mr6JiQdE1UtI2IWluUNfWVNPWUNHRV1LWIJE2ESh2icmRoaGi4t7e3s6u7q7uni3PknHd2wmkPnHTAt6cHZn1W6hDyaZFMMBg0Go1Op4/QaCMjI3BCHx3ljIyNjY+Ps1jsT18K8nFeZmdnJyYm6FxhMBiTk5MsmM5is1kcYbPZcJU9OQnTFiBfWJ6ZmRke5jzF6Ojo9PT0p3+TL8BwV4DRwGkaDYwvGFkwthQYhMlkjjMY4B5Ynpya4uokR7kCt+MLBgC8GLDJ5sokfLjyFYY3GH0rsxx3OY7Oct/iP73lDWZMTMDbguXhrtMonIyOjC4IDLKYTL5gMDvEpcvQ8Jygp+iROkiFCfwtj4+DZbBA4yKBKKOjdBgc48rEBJO32+grARtdXV19vb39fX2gPcBHKhVggEaZB++SBxjoAcf4mBibH8zPOp70OecW4ucbERwUeSUs8VpSTERYRHCgy6mTSXFxqCXU2BfgxNgYCxODk7YHXe1P+J47GxNyOSw0IvHieb+zZ8Iu+Xs4n067cWPBzcVgDhkTYqJIingdDQ1tdU0DbZ1tBvqHTzjtNjU9uO+gh5efl6tLZuotHmCUyS4urgiCEHEKeKwEHiNJwskpK6siyApDi32HbB2O2R5Pik/k4TYK9vbwALCGsuIWNTmTTVhtNaK6CnEzAb/LzMLYxFxXb2tQYCivZ+aCI0OCNYhKRBx+1Yrvli/7VlBgrTRWWQ0rY2Nmus3UHEEk9u534AEGPsKx+m31/eJiqAK5eQX5IHn5hcVPHj1+UlX5ouKvitzCkoqqGr4kmZmegWD4Z/TMLs1tdDbQANJYf38/UKSnG3IWV7q7e3t7+vr6IJtByPHnNoMBrIRcMMwlN7AK4gFNTOgv+MUXDJkADSCgMYMxwWayPnE9griEJ/qXTMJg0JkTI2zmWD2lpvrtq87u7ufPyp7++rilrYVCqal5+7KutponeJYLprGZw2wmrb21ruV9TVNT3aOHBQW5GZWvXlbXvKp9W/nmddWSYBaNPjLwoKiIyRyenqYnRYUFXvSsrqfUU962tTU2NjXwBdNHhycY1P7udsf/uLa3Uvr6Pry4n3c/Jf55+e/NTZT2D81NTfV8l4o2PDBC6/67rXGvhW3Vn7+1t9Z3PbvTlezenOLeVlvxrqWprq6GLxiMDvS0NVLeREXGdLQ1fGhrzA92bQ3YSwuy+FCS8YpSW1VZwRcMJa2tpf511Yv4pGQHFzdHe/u927f+4WzS7GlZ+su1sufPSktL+ILr62r++KPs16ellkddkG8EkWWrdhsbJu03ynTYdzMyPOV6yi83byyePwdGCfDy96f3Mm+9+Ov3ipcvo2Li9toccDrl4HnW7XHR3fLy8pyc7McPinkkg4WkD+mOMc6Y+T+q3NdgqDXzCXuYipb8eUWzN0xYKqogegYGBvq5MsAV+O2flyWTPoMxNCdUyPioNZDBQSp1cBAqAJpk+UYVGJ+amgIL0A3MzoXUp8XeLeE2raW57kFxfm3tq/YPje3tTZ2dre1t9U9KHj97VtLV1drR0cKfYdS+ysrS/PjAh+Qb1XV/lZc/evO2/N27yhP7rOwO7m5selFZ+dsStWqgoeFV+a34tMALRcUZ5X8+aGmpu3Mn7cKeve4HrB8+yap6WcYXDPXstLOjtri0ipA4bgMmOyuh5EmRtDRGb7WYvoC4CglX8iiLB0lQhrW2vJOUlN66y/qHfbaQ/T3O2kXHhn+LLNdRIBIkMDASHuo9P/kf9GxooMjJKZhZWmnpGmFlFZwd7a7GXMXhCErrMOvXCktJyQQE+PJI+ii4tKxUWVVdRHSd8PfiRKKq+Y6tjqcdjYxNZSRkxIRE1woKuZxx4kzmWWJTU29p6ehduRrrcv4CWCYp4y56n7/g638xKMzBxZNEJPh4ufC1/Ob1C19/f0+/K4eOO2vqmLicPlaQlxWXdD0l7U5scup+mz0Zqck8wKhAoRmjj0FlgD51lntH8IjJYkGhAM4B875K3V91Qxxuj82VCE7vhPa+3H6GMwL4JdaZDiHE7aWpEE+DIANoUAxyvoODE0v0YQxuv80pN4wJNLbHx6A+QeFkcxrQqSnevSc6Cp52dnb29fU2NDT83dEBT94JRbK3F8oeeNDV2Qn35dtKZWdnx0RHk8nk0CthjocPbjEwNdHWCzjnRs64fdnHOyDAv+he4eJy/QU4NibO0cExIzMzMSHR/+Th9dJrftDABTvZ5+WQ4wN9IiLCc3OyebZSHDA5K+uonV1ycpLZdgs7C6MQf9W0q7qpCYYpodbXgwJSfkq6X1TIF5yZkXH40CEPD8+NqqqrVqwlEQUf5hgmRuqEBXvmkrMy01PLSn7lC06Ii9NWVzt86LASgYCRkrXYjq94bnIzySw6Oj73TlY2Of3Z0zK+TZyHm5vYN4iZ6VYVIpFEUMIT5M3NZLW1Za12/+jv7hoZfOlh8T3+taq7u7a6urGhobm5mUKpe/0GeqsGSv37egqlub7+Q0sLNNN8ScIh88eP4AU8BdCa39aCP3hmBt1dAJ+g+rCYrKU2KLOcxPxZF2/QoMwAn9FgmF2QRZMR2PGhCvsgCCkoLxAesJGCv0yuzF3lMnxhMqoIa17gMvRuXT39UGiGhiE86PNXmBDPg0M0GIQdA5v1WebAYGF6avL93/09A0NwmxH6GJicnNvMwcNPQjoY42zXmCye4Jnpyar3vU1t3f3DY0MjdBhhL5JJTkhyNnhfgOF2oGMMTqLpHhju4O62e/v6oNcc424NORMWCzrCVYTfGn7krhvoQplEF/KLpTridG5BbU+7HwF1crc97XbK3cfJ09/ZK+Ck2wXO+KJpC4osk8B/VkmOfiOliIjLS5P0iAY7VA13YjUM4S8MolcXz0eEcRoLKoLXEFPSQlVUcZMoQUtcefM6ovbCoDBeY/H8/wFcECmlF5Te9wAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n        <source\n          srcset=\"/static/99a820b38c253762bd2e323aa75c16c4/bc904/blog-wprosdocimo-single.webp 250w,\n/static/99a820b38c253762bd2e323aa75c16c4/4be29/blog-wprosdocimo-single.webp 500w,\n/static/99a820b38c253762bd2e323aa75c16c4/03f31/blog-wprosdocimo-single.webp 1000w,\n/static/99a820b38c253762bd2e323aa75c16c4/1a9e8/blog-wprosdocimo-single.webp 1366w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/webp\"\n        />\n        <source\n          srcset=\"/static/99a820b38c253762bd2e323aa75c16c4/43fa5/blog-wprosdocimo-single.png 250w,\n/static/99a820b38c253762bd2e323aa75c16c4/c6e3d/blog-wprosdocimo-single.png 500w,\n/static/99a820b38c253762bd2e323aa75c16c4/da8b6/blog-wprosdocimo-single.png 1000w,\n/static/99a820b38c253762bd2e323aa75c16c4/d6ebf/blog-wprosdocimo-single.png 1366w\"\n          sizes=\"(max-width: 1000px) 100vw, 1000px\"\n          type=\"image/png\"\n        />\n        <img\n          class=\"gatsby-resp-image-image\"\n          src=\"/static/99a820b38c253762bd2e323aa75c16c4/da8b6/blog-wprosdocimo-single.png\"\n          alt=\"Blog Wilson Luiz Prosdocimo - um blog com um pouco de tudo..\"\n          title=\"Blog Wilson Luiz Prosdocimo - um blog com um pouco de tudo..\"\n          loading=\"lazy\"\n          style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        />\n      </picture>\n    </span>\n    <figcaption class=\"gatsby-resp-image-figcaption\">Blog Wilson Luiz Prosdocimo - um blog com um pouco de tudo..</figcaption>\n  </figure></p>\n<p>/end</p>","excerpt":"Meu amigo Wilson gostou muito da ideia de poder publicar o blog dele no github usando Jekyll. Pode-se dizer que eu sou um “Evangelista do Jekyll…","timeToRead":1,"frontmatter":{"category":["sass"],"date":"há 11 anos","description":"Meu amigo Wilson gostou muito da ideia de poder publicar o blog dele no github usando Jekyll. Pode-se dizer que eu sou um “Evangelista do Jekyll” porque ele é um convertido da minha palavra.","path":"/blog-wilson-luiz-prosdocimo","tags":["jekyll","projeto","portfolio"],"title":"Blog Wilson Luiz Prosdocimo com Jekyll","image":{"publicURL":"/static/wprosdocimo-57672ce2f00915b9d3c4e757a6eb2e88.jpg","name":"wprosdocimo"}},"fields":{"readingTime":{"words":95}}}},{"node":{"id":"6ca3b3c5-864d-5cb3-99d8-0a2e2abea4ba","html":"<p><strong>Mixin</strong> foi definitivamente algo novo para mim, você consegue passar valores por parâmetros assim como funções, a diferença é que uma função retorna apenas 1 único valor e mixin retorna um bloco inteiro de CSS.</p>\n<p>O principal objetivo do Mixin é você poder reutilizar um determinado bloco de código por todo seu projeto.</p>\n<blockquote>\n<p>Um mixin permite fazer grupos de declarações CSS que você deseja reutilizar em todo o site. Você pode até mesmo passar valores para fazer a sua mixin mais flexível.\n<small> Traduzido de: <a href=\"http://sass-lang.com\">sass-lang.com</a></small></p>\n</blockquote>\n<h2>Legal e por onde eu começo?</h2>\n<p>Vamos fazer um exemplo simples, o mesmo usado na documentação do SASS (<a href=\"http://sass-lang.com/guide\">sass-lang.com/guide</a>).</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 keyword\">@mixin</span> <span class=\"token function\">border-radius</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$radius</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">-webkit-border-radius</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$radius</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-moz-border-radius</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$radius</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-ms-border-radius</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$radius</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-radius</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$radius</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.card </span><span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">@include</span> <span class=\"token function\">border-radius</span><span class=\"token punctuation\">(</span>4px<span class=\"token punctuation\">)</span><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></pre></div>\n<p>Esse bloco acima vai nos gerar o seguinte trecho de CSS:</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\">.card</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">-webkit-border-radius</span><span class=\"token punctuation\">:</span> 4px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-moz-border-radius</span><span class=\"token punctuation\">:</span> 4px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">-ms-border-radius</span><span class=\"token punctuation\">:</span> 4px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border-radius</span><span class=\"token punctuation\">:</span> 4px<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></pre></div>\n<p>Legal não!?</p>\n<h2>Conclusão</h2>\n<p>Pense em Mixin como uma função que irá retornar um bloco inteiro de CSS ao invés de um valor único e que você pode usa-la em vários lugares do seu projeto sem precisar repetir ou copiar e colar blocos que são iguais.</p>\n<p>Por enquanto é isso, obrigado.</p>\n<hr>\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>Conhecendo o pré processador SASS - Mixins</li>\n<li><a href=\"/sass-parte-4-funcoes\">Conhecendo o pré processador SASS - Funções</a></li>\n<li><a href=\"/sass-parte-5-placeholder\">Conhecendo o pré-processador SASS - Placeholder</a></li>\n</ol>","excerpt":"Mixin foi definitivamente algo novo para mim, você consegue passar valores por parâmetros assim como funções, a diferença é que uma função retorna…","timeToRead":1,"frontmatter":{"category":["sass"],"date":"há 11 anos","description":"Mixin foi definitivamente algo novo para mim, você consegue passar valores por parâmetros assim como funções","path":"/sass-parte-3-mixins","tags":["sass","css","pre-processador"],"title":"#3 - Conhecendo o pré processador SASS | Mixins","image":{"publicURL":"/static/conhecendo-o-pre-processador-sass-b6a1f24254111b01aa97dae9042b5345.jpg","name":"conhecendo-o-pre-processador-sass"}},"fields":{"readingTime":{"words":240}}}},{"node":{"id":"a876ee8c-9bad-586f-a718-5c18469ff116","html":"<p>Esse artigo será bem rápido, vou falar sobre o recurso que deixa o <strong>SASS</strong> ainda mais com cara de linguagem de programação, são as <strong>funções</strong>.</p>\n<p>Eu comentei no <a href=\"/sass-parte-3-mixins\">artigo anterior</a> que <em>\"Mixins são como funções que retornam um bloco inteiro de CSS\"</em>, esse recurso fica ainda mais completo se somado com <strong>funções</strong>.</p>\n<p>Vamos fazer um exemplo clássico, somar <code class=\"language-text\">a + b</code>.</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 keyword\">@function</span> <span class=\"token function\">soma</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$a</span><span class=\"token punctuation\">,</span> <span class=\"token property\"><span class=\"token variable\">$b</span></span><span class=\"token punctuation\">:</span> 0<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\"><span class=\"token variable\">$c</span></span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$a</span> <span class=\"token operator\">+</span> <span class=\"token variable\">$b</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">@return</span> <span class=\"token variable\">$c</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.card </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> <span class=\"token function\">soma</span><span class=\"token punctuation\">(</span>500px<span class=\"token punctuation\">,</span> 200<span class=\"token punctuation\">)</span><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></pre></div>\n<p>O exemplo acima vai me retornar o valor da soma do primeiro parâmetro com a do segundo, resultando em <code class=\"language-text\">700px</code> de largura para a classe <code class=\"language-text\">.card</code>. Simples não é mesmo?</p>\n<p>E o que aconteceria se eu aplicasse somente o primeiro parâmetro?</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\">.card </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> <span class=\"token function\">soma</span><span class=\"token punctuation\">(</span>500px<span class=\"token punctuation\">)</span><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></pre></div>\n<p>Isso mesmo que você pensou! O resultado seria apenas de 500px pois a variável <code class=\"language-text\">$b</code> está com valor inicial de zero.</p>\n<h2>Conclusão</h2>\n<p>Se você precisar resolver alguma conta ou converter algum número, provavelmente você irá usar funções, caso contrário use <a href=\"/sass-parte-3-mixins\">Mixins</a>.</p>\n<p>Eu particularmente não uso muitas funções, tenho apenas algumas em meu arcenal, posso até listar elas aqui para vocês.</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 comment\">// Converte numeros para inteiro</span>\n<span class=\"token comment\">//</span>\n<span class=\"token keyword\">@function</span> <span class=\"token function\">parseInt</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$n</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">@return</span> <span class=\"token variable\">$n</span> <span class=\"token operator\">/</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$n</span> <span class=\"token operator\">*</span> 0 <span class=\"token operator\">+</span> 1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// remove a unidade deixando apenas o numero</span>\n<span class=\"token comment\">// strip-unit(10px) retorna apenas o numero 10</span>\n<span class=\"token comment\">//</span>\n<span class=\"token keyword\">@function</span> <span class=\"token function\">strip-unit</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$number</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">@if</span> <span class=\"token function\">type-of</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$number</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token string\">'number'</span> <span class=\"token operator\">and</span> <span class=\"token operator\">not</span> <span class=\"token function\">unitless</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$number</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">@return</span> <span class=\"token variable\">$number</span> <span class=\"token operator\">/</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$number</span> <span class=\"token operator\">*</span> 0 <span class=\"token operator\">+</span> 1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">@return</span> <span class=\"token variable\">$number</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// Converte unidades px para em</span>\n<span class=\"token comment\">//</span>\n<span class=\"token property\"><span class=\"token variable\">$font-size-base</span></span><span class=\"token punctuation\">:</span> 16px<span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">@function</span> <span class=\"token function\">em</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$pixels</span><span class=\"token punctuation\">,</span> <span class=\"token property\"><span class=\"token variable\">$context</span></span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$font-size-base</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">@if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">unitless</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$pixels</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\"><span class=\"token variable\">$pixels</span></span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$pixels</span> <span class=\"token operator\">*</span> 1px<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">@if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">unitless</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$context</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\"><span class=\"token variable\">$context</span></span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$context</span> <span class=\"token operator\">*</span> 1px<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">@return</span> <span class=\"token variable\">$pixels</span> <span class=\"token operator\">/</span> <span class=\"token variable\">$context</span> <span class=\"token operator\">*</span> 1em<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></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<p>É isso ai moçada, se tiverem alguma dúvida comentem ai que reponderei em <a href=\"http://goo.gl/oM5AOY\">\"dois palitos\"</a>.</p>\n<p>Abraço!</p>\n<hr>\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>Conhecendo o pré processador SASS - Funções</li>\n<li><a href=\"/sass-parte-5-placeholder\">Conhecendo o pré-processador SASS - Placeholder</a></li>\n</ol>","excerpt":"Esse artigo será bem rápido, vou falar sobre o recurso que deixa o SASS ainda mais com cara de linguagem de programação, são as funções. Eu comentei…","timeToRead":2,"frontmatter":{"category":["sass"],"date":"há 11 anos","description":"Conhecendo o pré-processador SASS-Parte 4","path":"/sass-parte-4-funcoes","tags":["sass","css","pre-processador"],"title":"#4 - Conhecendo o pré processador SASS | Funções","image":{"publicURL":"/static/conhecendo-o-pre-processador-sass-b6a1f24254111b01aa97dae9042b5345.jpg","name":"conhecendo-o-pre-processador-sass"}},"fields":{"readingTime":{"words":340}}}},{"node":{"id":"7a9976d0-61f2-5e2a-82d0-5c1e3638be22","html":"<p>Vamos continuar nossa série <strong>\"Conhecendo o pré-processador SASS\"</strong>, mas agora falando de <strong>Variáveis</strong>.</p>\n<blockquote>\n<p>Se você quer saber o que é o SASS e como instalar, por favor leia a parte 1 desse artigo <a href=\"/conhecendo-o-pre-processador-sass-parte-1/\">aqui</a></p>\n</blockquote>\n<h2>O que são Variáveis?</h2>\n<p>Se você está começando agora no mundo do desenvolvimento você precisa ter uma base de como funciona variáveis.</p>\n<p>O conceito de variáveis no SASS é bem parecido com este na programação em geral.</p>\n<p>De acordo com o Google:</p>\n<blockquote>\n<p>Variável é a característica de interesse que é medida em cada elemento da amostra ou população. Como o nome diz, seus valores variam de elemento para elemento. As variáveis podem ter valores numéricos ou não numéricos.\n<small>Google.com (<a href=\"https://goo.gl/dlslou\">https://goo.gl/dlslou</a>)</small></p>\n</blockquote>\n<p>Basicamente você cria um espaço na memória, da um nome pra ele e armazena um valor para ser usado em algum lugar ou ser manipulado de alguma forma.. é isso.</p>\n<hr>\n<p>Vamos testar o seguinte código:</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 property\"><span class=\"token variable\">$cor</span></span><span class=\"token punctuation\">:</span> #f00<span class=\"token punctuation\">;</span>\n\n<span class=\"token selector\">body </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">bakground-color</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$cor</span><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></pre></div>\n<p>Se você rodar <code class=\"language-text\">sass --watch style.scss:style.css</code> e visualizar seu HTML no navegador, você verá o fundo vermelho.</p>\n<p>Isso aconteceu porque o a cor que estáva armazenada na <em>variável</em> <code class=\"language-text\">$cor</code> passou a ser o fundo da nossa tag <code class=\"language-text\">&lt;body&gt;</code></p>\n<p>Fácil não?!</p>\n<hr>\n<h2>Tipos de variáveis no SASS</h2>\n<p>Pra quem \"manja dos parauês\" de programação sabe que existem tipos de variáveis.</p>\n<p>Se levarmos em consideração que <strong>SASS</strong> também \"pode\" ser considerada uma linguagem de programação ela teria a <a href=\"https://pt.wikipedia.org/wiki/Tipo_de_dado\">Tipagem fraca</a>, pois a variável pode ter o seu valor automaticamente alterado para outro tipo para possibilitar uma operação.</p>\n<p>Uma variável pode ser do tipo inteiro e no meio do caminho se tornar uma string, e vise-versa.</p>\n<p>Mas no SASS a coisa é um pouco diferente. Temos tipos próprios de CSS, que não precisam de \"aspas\" como string.</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 property\"><span class=\"token variable\">$mutable-var</span></span><span class=\"token punctuation\">:</span> <span class=\"token string\">'->'</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// variavel do tipo string</span>\n<span class=\"token property\"><span class=\"token variable\">$mutable-var</span></span><span class=\"token punctuation\">:</span> 200<span class=\"token punctuation\">;</span> <span class=\"token comment\">// variavel do tipo inteiro</span>\n<span class=\"token property\"><span class=\"token variable\">$mutable-var</span></span><span class=\"token punctuation\">:</span> 2.2<span class=\"token punctuation\">;</span> <span class=\"token comment\">// variavel do tipo double</span>\n<span class=\"token property\"><span class=\"token variable\">$mutable-var</span></span><span class=\"token punctuation\">:</span> #fff<span class=\"token punctuation\">;</span> <span class=\"token comment\">// variavel do tipo hexadecimal (para cores)</span>\n<span class=\"token property\"><span class=\"token variable\">$mutable-var</span></span><span class=\"token punctuation\">:</span> 150px<span class=\"token punctuation\">;</span> <span class=\"token comment\">// variavel do tipo medida em pixel</span>\n<span class=\"token property\"><span class=\"token variable\">$mutable-var</span></span><span class=\"token punctuation\">:</span> 1em<span class=\"token punctuation\">;</span> <span class=\"token comment\">// variavel do tipo Unidade relativa</span>\n<span class=\"token property\"><span class=\"token variable\">$mutable-var</span></span><span class=\"token punctuation\">:</span> 100%<span class=\"token punctuation\">;</span> <span class=\"token comment\">// variavel do tipo porcentagem</span>\n\n<span class=\"token selector\">body </span><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$mutable-var</span><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></pre></div>\n<p>Se você processar o código acima verá que o valor de <code class=\"language-text\">width</code> é de <code class=\"language-text\">100%</code>, o SASS pegou automaticamente o valor setado na ultima linha.</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</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">width</span><span class=\"token punctuation\">:</span> 100%<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></pre></div>\n<p><strong>Pra falar a verdade o SASS aceita qualquer valor que não vai gerar erro nenhum</strong> 😊</p>\n<hr>\n<h2>Conclusão</h2>\n<p>Variável é algo muito útil no desenvolvimento com SASS, eu particularmente uso bastante esse recurso.</p>\n<p>Eu sempre crio um arquivo chamado <strong><a href=\"https://github.com/nandomoreirame/nandomoreira-jekyll-theme/blob/master/_assets/sass/settings/_variables.scss\">variables.scss</a></strong> para agrupar as variáveis globais do meu projeto.</p>\n<p>Se você for usar um determinado valor em vários lugares e/ou arquivos não exite em momento algum, crie uma variável e armazene esse valor, você vai me agradecer mais tarde.</p>\n<p>Abraço!</p>\n<hr>\n<ol>\n<li><a href=\"/conhecendo-o-pre-processador-sass-parte-1\">Conhecendo o pré-processador SASS - Instalação</a></li>\n<li>Conhecendo o pré-processador SASS - Variáveis</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><a href=\"/sass-parte-5-placeholder\">Conhecendo o pré-processador SASS - Placeholder</a></li>\n</ol>","excerpt":"Vamos continuar nossa série \"Conhecendo o pré-processador SASS\", mas agora falando de Variáveis. Se você quer saber o que é o SASS e como instalar…","timeToRead":3,"frontmatter":{"category":["sass"],"date":"há 11 anos","description":"Se você está começando agora no mundo do desenvolvimento você precisa ter uma base de como funciona variáveis.","path":"/sass-variaveis-parte-2","tags":["sass","css","pre-processador"],"title":"#2 - Conhecendo o pré-processador SASS | Variáveis","image":{"publicURL":"/static/conhecendo-o-pre-processador-sass-b6a1f24254111b01aa97dae9042b5345.jpg","name":"conhecendo-o-pre-processador-sass"}},"fields":{"readingTime":{"words":511}}}},{"node":{"id":"a66744cc-0eba-5c20-b726-ebaf289b0ddd","html":"<p>Na minha opinião todo desenvolvedor web deveria conhecer algum pré-processador CSS, seja ele <code class=\"language-text\">Less</code>, <code class=\"language-text\">SASS</code>, <code class=\"language-text\">Stylus</code> ou qualquer outro.</p>\n<p>Hoje vou começar uma série de artigos com algumas dicas sobre o pré-processador <strong>SASS</strong>... sei que existem muitos tutoriais e artigos bacanas por ai, mas eu vou explicar o meu ponto de vista sobre essa forma de escrever CSS.</p>\n<h2>O que é um pré-processador?</h2>\n<blockquote>\n<p>Um pré-processador é um programa que recebe texto e efectua conversões léxicas nele. As conversões podem incluir substituição de macros, inclusão condicional e inclusão de outros ficheiros.\n<small>Google.com (<a href=\"https://goo.gl/OeWJWB\">https://goo.gl/OeWJWB</a>)</small></p>\n</blockquote>\n<p>Pense num pré-processador como uma nova linguagem para escrever CSS.</p>\n<p>Chame de tradutor de linguagem, ou de compilador.. não tem problema, tudo vira CSS no final.</p>\n<h2>Mas o que é esse tal de SASS?</h2>\n<blockquote>\n<p>Sass is the most mature, stable, and powerful professional grade CSS extension language in the world.\n<small>sass-lang.com</small></p>\n</blockquote>\n<p>Resumidamente, <strong>SASS</strong> é um pré-processador de CSS. Com ele você tem vários recursos que não existem nativamente no CSS, como:</p>\n<ul>\n<li><em>variáveis</em></li>\n<li><em>funções</em></li>\n<li><em>includes</em></li>\n<li><em>mixins</em></li>\n<li><em>condicionais</em> <small>(if, else)</small></li>\n<li><em>repetições</em> <small>(for)</small></li>\n<li><em>entre outras coisas legais...</em></li>\n</ul>\n<p>Com ele você consegue organizar o seu CSS de forma modular, deixar cada componente em arquivos separados e usando <code class=\"language-text\">@import</code> importar todos em apenas um arquivo.</p>\n<p>Usando <strong>herança</strong> e <strong>variáveis</strong> você esquece o famoso <code class=\"language-text\">Ctrl+C</code> e <code class=\"language-text\">Ctrl+V</code>.</p>\n<p><strong>Cara isso é magnífico, mesmo!</strong></p>\n<h2>Ok, entendi, agora como eu uso o SASS?</h2>\n<p>Nosso amigo <strong>SASS</strong> é uma <strong>RubyGem</strong> então você precisa ter o Ruby instalado em seu computador.</p>\n<p>A instalação é bem simples, tendo o Ruby instalado e funcionando basta rodar o comando abaixo:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\"><span class=\"token function\">sudo</span> gem <span class=\"token function\">install</span> sass</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>Se nada falhar você já tem o SASS instalado em sua máquina, rode <code class=\"language-text\">sass -v</code> do seu terminal para certificar que tudo ocorreu bem.</p>\n<h2>123 testando..</h2>\n<p>Vamos criar um arquivo SASS para teste.</p>\n<p>Abra o seu editor favorito, crie um novo arquivo com o seguinte código:</p>\n<div class=\"gatsby-highlight\" data-language=\"sass\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-sass line-numbers\"><code class=\"language-sass\"><span class=\"token variable-line\"><span class=\"token variable\">$cor</span><span class=\"token punctuation\">:</span> #006699;</span>\n<span class=\"token variable-line\"><span class=\"token variable\">$bg</span><span class=\"token punctuation\">:</span> #f1f1f1;</span>\n\n<span class=\"token selector\">body {</span>\n<span class=\"token property-line\">  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$bg</span>;</span>\n<span class=\"token property-line\">  <span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span> 16px;</span>\n<span class=\"token selector\">}</span>\n\n<span class=\"token selector\">a {</span>\n<span class=\"token property-line\">  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> <span class=\"token variable\">$cor</span>;</span>\n\n<span class=\"token property-line\">  <span class=\"token property\">&amp;</span><span class=\"token punctuation\">:</span><span class=\"token property\">hover,</span></span>\n<span class=\"token property-line\">  <span class=\"token property\">&amp;</span><span class=\"token punctuation\">:</span><span class=\"token property\">focus</span> {</span>\n<span class=\"token property-line\">    <span class=\"token property\">text-decoration</span><span class=\"token punctuation\">:</span> none;</span>\n<span class=\"token property-line\">    <span class=\"token property\">border-top</span><span class=\"token punctuation\">:</span> 1px dashed <span class=\"token variable\">$cor</span>;</span>\n  <span class=\"token selector\">}</span>\n<span class=\"token selector\">}</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></pre></div>\n<p>Depois salve com a extensão <code class=\"language-text\">.scss</code> com o nome que preferir.. eu salvei como <code class=\"language-text\">style.scss</code>.</p>\n<p>No terminal rode:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-bash line-numbers\"><code class=\"language-bash\">sass --watch style.scss:style.css</code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n<p>No código acima nós executamos o SASS passando o parâmetro <code class=\"language-text\">--watch</code> para que ele fique assistindo nosso arquivo <code class=\"language-text\">style.scss</code>, assim a cada <code class=\"language-text\">Ctrl+S</code> que damos no arquivo ele executa e processa nosso CSS final.</p>\n<p>O código processado ficou assim:</p>\n<div class=\"gatsby-highlight\" data-language=\"sass\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-sass line-numbers\"><code class=\"language-sass\"><span class=\"token selector\">.box {</span>\n<span class=\"token property-line\">  <span class=\"token property\">background-color</span><span class=\"token punctuation\">:</span> #f1f1f1;</span>\n<span class=\"token property-line\">  <span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span> 16px;</span>\n<span class=\"token selector\">}</span>\n\n<span class=\"token selector\">.box p {</span>\n<span class=\"token property-line\">  <span class=\"token property\">margin</span><span class=\"token punctuation\">:</span> 0;</span>\n<span class=\"token selector\">}</span>\n\n<span class=\"token selector\">a {</span>\n<span class=\"token property-line\">  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> #006699;</span>\n<span class=\"token selector\">}</span>\n\n<span class=\"token property-line\"><span class=\"token property\">a</span><span class=\"token punctuation\">:</span><span class=\"token property\">hover,</span> <span class=\"token property\">a</span><span class=\"token punctuation\">:</span><span class=\"token property\">focus</span> {</span>\n<span class=\"token property-line\">  <span class=\"token property\">text-decoration</span><span class=\"token punctuation\">:</span> none;</span>\n<span class=\"token property-line\">  <span class=\"token property\">border-top</span><span class=\"token punctuation\">:</span> 1px dashed #006699;</span>\n<span class=\"token selector\">}</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></pre></div>\n<p>Incrível não?!</p>\n<p>Esse é só o começo de uma longa jornada com o <strong>Pré-processador SASS</strong>, logo vou explicar detalhes do código acima e muito mais.</p>\n<p>Aguardem..</p>\n<hr>\n<ol>\n<li>Conhecendo o pré-processador SASS - Instalação</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><a href=\"/sass-parte-5-placeholder\">Conhecendo o pré-processador SASS - Placeholder</a></li>\n</ol>","excerpt":"Na minha opinião todo desenvolvedor web deveria conhecer algum pré-processador CSS, seja ele , ,  ou qualquer outro. Hoje vou começar uma série de…","timeToRead":3,"frontmatter":{"category":["SASS"],"date":"há 11 anos","description":"Todo desenvolvedor web deveria conhecer algum pré-processador CSS, seja ele Less, SASS, Stylus ou qualquer outro","path":"/conhecendo-o-pre-processador-sass-parte-1","tags":["sass","css","pre-processador"],"title":"#1 - Conhecendo o pré-processador SASS | Instalação","image":{"publicURL":"/static/conhecendo-o-pre-processador-sass-b6a1f24254111b01aa97dae9042b5345.jpg","name":"conhecendo-o-pre-processador-sass"}},"fields":{"readingTime":{"words":510}}}}]}},"pageContext":{"limit":12,"skip":24,"numPages":4,"currentPage":3}}}