Sass (Syntactically Awesome Stylesheets) é um pré-prcessador de CSS, onde podemos definir variáveis e reutilizá-las para um projeto inteiro. Você também pode gerar classes e reutilizar trechos de código com “mixins” ou “estender” suas classes com propriedades usadas anteriormente. Todos estes são análogos às funções em linguagens de programação, pois podemos aplicar os conceitos de programação orientada a objetos.
Sass consiste em duas sintaxes. A sintaxe original (.sass), chamado de sintaxe de indentação, usa uma sintaxe semelhante ao Haml. Ele usa indentação para bloco de código separados e caracteres de nova linha para separar regras. A sintaxe (.scss), usa bloco de formatação CSS, usando chaves para denotar blocos de código e ponto e vírgula após os valores das propriedades.
body { font: 100%$font-stack; color: $primary-color; }
Particularmente eu prefiro a sintaxe (.scss), por ser mais próximo da sintaxe CSS.
Instalação
Para utilizar o SASS, você precisa ter o Ruby, instalado na máquina. O site do SASS, mostra 2 formas de instalação do mesmo.
Praticamente sempre uso a forma, utilizando o terminal:
1
gem install sass
Para verificarmos se o mesmo está instalando, podemos conferir com o comando:
1
sass -v
Utilização
Após a instalação, se tem várias formas para rodar o pré-processador. Você pode usar um software como o Koala, usar um automatizador de tarefas como Grunt (grunt-sass) ou Gulp (gulp-sass), ou o próprio terminal.
Como exemplo, podemos usar o terminal:
*watch * - flag para que sempre quando tenha alteração dos arquivos .scss que estão sendo observados, seja gerado o css
style.scss - [caminho da pasta dos arquivos scss ou caminho + nome especifico do arquivo a ser observado]
style.css - [caminho da pasta de destino ou caminho + nome especifico do arquivo a ser gerado]
Um ponto importante ao se observar uma pasta, é com relação aos arquivos que serão gerados. Digamos que na pasta source/, temos 3 arquivos e queremos que apenas 2 sejam gerados. Resolvemos isso com o prefixo _(undescore).
Com o Sass, você pode aninhar os seus seletores CSS, evitando a repetição de escrita. Mas cuidado, não podemos exagerar nos níveis, senão a manutenção fica inviável.
1 2 3 4 5 6 7 8 9 10 11
// SCSS // Não faça isso !!!! ul { li { .link { .text { color : red; } } } }
1 2 3 4
// CSS ulli.link.text { color: red; }
Vamos para a boa prática e também utilizar o caractere &, que representa o seletor pai.
Os mixins permitem que você reutilize propriedades CSS e seletores. No SCSS, precisamos definir o @mixin e atribuir um nome. Depois, podemos acrescentar algumas propriedades, criar uma classe ou elemento e utilizar com @include. Na sintaxe original, é um pouco diferente e podemos comparar abaixo:
Com SASS você pode fazer com que um selector herde os estilos de outro, sem duplicar as propriedades CSS. Tenha em mente que se você tem muitas propriedades duplicadas, você poderá enfrentar problemas de desempenho. Este recurso permite que você herde qualquer estilo já utilizado em qualquer classe anterior.
Vamos dizer que eu quero usar as propriedades de “.message” em “.success” e “.error”. Para atingir este objetivo é necessário criar “.success” , “.error” e acrescentar “@extend .message”.
O CSS é muito importante para um projeto web. E é muito importante ter um pré-processador para organizar, reutilizar código e facilitar muito na manutenção. O SASS oferece muitos recursos e não vejo desvantagens, sendo comparado ao se escrever com apenas em CSS puro. Temos outros pré-processadores no mercado, e veremos em outros artigos.