{"componentChunkName":"component---src-templates-single-template-tsx","path":"/conhecendo-o-pre-processador-sass-parte-1","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://blog.nandomoreira.dev","author":{"name":"Fernando Moreira","site":"https://nandomoreira.dev","social":{"disqus":"fernandomoreira"}}}},"markdownRemark":{"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","datePublished":"2015-09-01T00:00:00.000Z","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":{}}}