Dando Poderes Ao Css Com Sass Parte 01
Pois é, se você leu o título e achou estranho fique tranquilo, a ideia é transformar nosso CSS em um super herói com super poderes:
CSS with superpowers
Como podem ver, esse é o slogan que o próprio SASS usa, “CSS com super poderes”.
O que é SASS?
SASS é uma linguagem de extensão para o CSS, com ela conseguimos escrever códigos que não seriam possíveis apenas com CSS puro, por isso, eles costumam chamar esses recursos (features) ou extensões adicional de “super poderes”.
A ideia do post não é focar muito em “o que é” e sim “o que faz”, portanto, caso deseja saber mais informações sobre o SASS, sugiro acessar a página oficial.
Instalando o SASS
Para não extender mais o post não irei abordar a forma de instalar o SASS em sua máquina, pois, a mesma pode ser feita de diferentes formas baseando-se no sistema operacional a ser utilizado.
Para realizar a instalação do SASS, leia a documentação e escolha de acordo com seu sistema operacional, acredito que o processo não deve ser complicado, basta seguir as instruções.
Escrevendo nosso primeiro código
Para escrever códigos utilizando a linguagem (vou chamar de linguagem por questões de facilidade) SASS devemos criar arquivos com duas extensões diferentes, sendo elas: .sass ou .scss, agora, com toda certeza do mundo você deve estar se perguntando:
Porque duas extensões diferentes? Qual a diferença entre elas? Qual eu devo utilizar?

Entendendo a diferença de extensões
Basicamente a única diferença entre as extensões .sass e .scss é referente a sintaxe, os arquivos .scss são bem parecidos com os .css, com chaves e pontos e virgulas, porém, os arquivos .sass não utilizam chaves ou pontos e virgulas, veja um exemplo:
Abaixo um exemplo de um arquivo utilizando a sintaxe do .sass:
Agora um arquivo utilizando a sintaxe do .scss:
Essa é a diferença entre ambos, o modo de escrever, um parece bastante com o CSS normal, enquanto o outro fica um pouco mais diferente, porém, ambos podem utilizar todo o poder que o SASS tem a nos oferecer.
Para continuar o exemplo do post vou abordar a sintaxe do .sass.
Executando o SASS
Para executar o SASS devemos acessar o terminal (mac ou linux) ou cmd (windows), o mesmo pode ser executado de duas maneiras diferentes:
Compilando
Apenas para compilar um arquivo em SASS podemos utilizar sass ARQUIVO.[sass ou scss], seguido por dois pontos (:) e pelo nome do arquivo de saída, assim o mesmo será compilado para um ou mais arquivos .css.
Compilando e observando
O exemplo anterior apenas compila e finaliza, para continuar escutando modificações nos arquivos devemos passar o parâmetro --watch, ficando da seguinte maneira:
Compilando em arquivo mínificado
Podemos também já pedir para o SASS gerar um arquivo .css mínificado:
Conhecendo os poderes do SASS
Agora vamos começar a ver os poderes que o SASS introduz a linguagem CSS, vou mostrá-los de forma separada, sendo assim, ao término do post você deve ser capaz de mesclá-los e formar seus arquivos.
Variáveis
Um dos grandes poderes do SASS é a utilização de variáveis (eu sei que hoje em dia podemos utilizar tal recurso apenas com CSS puro):
Vejam que devemos seguir a seguinte sintaxe:
Criando a variável
Para criar a variável devemos utilizar o cifrão ou dolar ($) seguido pelo seu nome, dois pontos (:) e seu valor:
Lendo variável
Para ler o valor armazenado em uma variável, precisamos apenas informar o seu nome seguido pelo cifrão ou dolar ($):
Obs: Uma observação sobre as variáveis é que elas possuem escopo, portanto:
Código válido:
Código inválido:
A variável cor existe apenas no escopo do .botao.
Nested Rules
Tenho toda certeza do mundo que você já viu, leu ou escreveu um código CSS parecido com:
Veja o tanto de repetições da classe .menu, será que não existe algo menos verboso? Pois dessa maneira, se um dia precisarmos mudar o nome da classe de nosso menu, deveremos procurar onde estamos à informando e substituí-la pelo seu novo valor.
Pensando nisso o pessoal do SASS criou o Nested Rules, poderíamos substituir o código anterior por:
Como pode ver, declaramos a classe pai apenas uma vez, nesse caso a nossa classe .menu, depois utilizamos o & para informar filhos de .menu, repare que os filhos devem ser informados seguindo a indentação do código, ou seja, deve ser informado dentro de .menu.
O Nested Rule também pode ser utilizado com pseudo classes (pseudo-class) ou pseudo elementos (pseudo-elements):
Poderíamos facilmente trocar por:
Ainda teríamos o mesmo resultado.
Nested Properties
No exemplo anterior aprendemos a declarar elementos pais e filhos, mas, também podemos seguir a mesma ideia com atríbutos:
Aqui, veja novamente o quanto esse código pode ser melhorado, estamos repetindo muitas vezes a palavra font-, será que não podemos fazer da mesma maneira, ou seja, definir um pai e informar os filhos? Sim, isso é chamado de Nested Properties:
Ambos os códigos possuem o mesmo resultado visual.
Herdando atributos
Se você conhece linguagens orientadas á objetos, com certeza já deve ter ouvido falar em herança, pois é, com SASS também podemos fazer uso de tal recurso (poder), imagine que temos o esqueleto de um botão seguido por seus estilos:
Esse código irá funcionar sem problemas, porém em nosso HTML será necessário informar duas vezes as classes do botão, uma para o esqueleto e outra para o estilo, conhecido como CSS Orientado à Objetos
Com o SASS podemos facilmente diminuir o código à seguir:
Veja que estamos utilizando @extend, assim, dizemos para ele herdar todos os atributos de uma determinada classe, em nosso caso, estamos herdando de .botao.
Agora em nosso HTML, precisamos adicionar apenas uma classe referente aos nossos botões, pois a mesma já possuí todos os atríbutos da herdada:
Importando arquivos
Se você já fez algum site ou práticou um pouco de HTML e CSS, já deve ser deparado com a seguinte situação:
Estamos tendo múltiplos arquivos importados em nosso HTML, com SASS poderíamos possuir os imports em um único arquivo:
Veja que não informamos a extensão .sass nos imports, porque a extensão é opcional, o próprio SASS sabe que deve importar um arquivo com extensão .sass ou .scss.
Para o post não ficar muito extenso vou parar por aqui, nos próximos posts irei abordando mais poderes do SASS.
Caso queira treinar ou praticar a sintaxe do SASS, existe um editor e compilador online chamado SassMeister.
E você, já conhecia o SASS? Não deixe de comentar.
