Aprenda como o SASS pode turbinar o seu CSS, tornando-o mais organizado, poderoso e fácil de manter.

O objetivo deste tutorial é apresentar de forma simples e rápida as principais funcionalidades que o SASS oferece, como variáveis, importação de arquivos, mixins e funções — além de mostrar uma estrutura de organização de arquivos muito utilizada em projetos reais.

Ao final, vamos colocar tudo em prática criando um mini-projeto, onde você poderá aplicar os conceitos abordados e entender melhor como o SASS pode te ajudar no dia a dia do desenvolvimento.

Para um estudo mais aprofundado, recomendo a leitura da Documentação Oficial do Sass.

Requisitos

  • HTML5
  • CSS3

Sumário

1. Introdução

O SASS (Syntactically Awesome Style Sheets), é um dos principais pré-processadores para CSS, ele serve basicamente para facilitar a codificação CSS, com o Sass seus codigos ficam mais bem organizados e fáceis de ler e consequentemente mais fáceis de dar manutenção em seus projetos.

Para instalar o Sass em sua máquina basta inserir a seguinte linha de comando em seu terminal, pode ser no terminal do VS Code caso esteja-o usando:

npm install -g sass

Pronto! após a instalação você pode verificar a versão com o comando:

sass --version

Exemplo de Código

Imagine que você precisa estilizar um botão simples, que mude de cor ao passar o cursor do mouse por cima e também altere o icone do curso para aquela "mãozinha".

Fazer isso usando CSS ficaria assim:

.botao{
  padding: 15px 40px;
  border-radius: 5px;
  background: #5352ed;
  font-family: Arial;
  font-weight: 600;
  color: #fbfbfb;
}
.botao:hover{
  background-color: #3131ca;
  cursor: pointer;
}

Agora usando Sass esse mesmo trecho de código fica assim:

.botao{
  padding: 15px 40px;
  border-radius: 5px;
  background: #5352ed;
  font-family: Arial;
  font-weight: 600;
  color: #fbfbfb;
  :hover{
    background-color: #3131ca;
    cursor: pointer;
  }
}

Essa funcionalidade se chama Aninhamento, onde em vez de criar vários blocos de código, um para cada alteração, com o Sass você faz toda a codificação do elemento dentro de somente um bloco de código. A primeira vista não parece ter mudado muito, mas imagine um arquivo CSS com centenas de linhas e vários blocos de código, ler e dar manutenção a cada bloco de codigo individualmente se torna bem mais trabalhoso sem o Sass.

Mas não é só isso que é possível fazer com o Sass, também podemos criar Variáveis, Importações, Mixins e Funções. Tudo isso você irá ver no decorrer da leitura. E no final quando estivermos codando o mini-projeto, você irá entender melhor tudo isso.

2. Variáveis

Usar variáveis em Sass é muito simples, a declaração é como em qualquer outra linguagem:

$cor_principal:#5352ed;
$cor_secundaria:#3131ca;
$tipografia: Arial;

No Sass, usa-se o caractere especial $ (Dollar Sign), no inicio de cada variável.

Feito isso, podemos usa-las como desejar, veja como fica o nosso exemplo do botão:

.botao{
  background: $cor_primaria;
  font-family: $tipografia;
  :hover{
    background-color: $cor_secundaria;
    cursor: pointer;
  }
}

3. Importação

A importação no Sass funciona igual como nas linguagens de programação, você consegue acesso a outros arquivos Sass, possibilitando importar mixins, funções, variáveis e também consiliar com o código CSS de outros arquivos de folha de estilo.

A seguir alguns exemplos:

@import "cor_primaria";
@import "cor_secundaria";
@import "tipografia";

Veremos mais detalhadamente sobre a importação quando formos implementar nosso projeto, inclusive a importação de folhas de estilo, que ainda não citei até esse momento.

4. Mixins

Com os Mixins é possível declarar grupos de código CSS para serem reutilizados da maneira que você quiser.

Veja o nosso exemplo do botão:

@mixin botao{
  padding: 15px 40px;
  border-radius: 5px;
  background: $cor_primaria;
  font-family: $tipografia;
  font-weight: 600;
  :hover{
    background-color: $cor_secundaria;
    cursor: pointer;
  }
}

body{
  @include botao;
}

Fazendo isso, tornamos o estilo, um padrão que pode ser usado a qualquer momento, usamos a diretiva @include para isso.

Também podermos adicionar mudanças a esse estilo, para isso usamos os argumentos dentro dos mixins.

Veja no exemplo:

@mixin botao($font-color, $font-size: 1em) {
  font-size: $font-size;
  padding: $font-size/2;
  background-color: $cor_primaria;
  color: $font-color;
}

.button{
  @include botao(#fff);
}

5. Funções

Com as Funções você pode realizar operações complexas e retornar valores usando a regra @return, diferente dos mixins, as funções retornam só um valor.

Veja o exemplo:

@function pow($base, $exponent) {
  $result: 1;
  @for $_ from 1 through $exponent {
    $result: $result * $base;
  }
  @return $result;
}

.sidebar {
  float: left;
  margin-left: pow(4, 3) * 1px;
}

E claro, também é possível adicionar argumentos às funções:

@function invert($color, $amount: 100%) {
  $inverse: change-color($color, $hue: hue($color) + 180);
  @return mix($inverse, $color, $amount);
}

$primary-color: #036;
.header {
  background-color: invert($primary-color, 80%);
}

6. Estrutura de Arquivos

A medida que o projeto vai crescendo e ficando mais complexo, a quantidade de arquivos vai aumentando, e ter uma boa organização se torna algo essencial para a qualidade do projeto.

Neste tutorial introdutório, irei utilizar uma estrutura simples por ser um projeto pequeno, para se aprofundar melhor no assunto, veja esse tutorial completo sobre madeiras de estruturar o SASS.

Estrutura Simples

Melhor para projetos pequenos, essa estrutura divide a codificação dos estilos site em partes, dessa forma fica mais simples para fazer alterações e buscar blocos de código mais facilmente, melhor para codar e dar manutenção.

A estrutura que vou utilizar é a seguinte:

_base.sass - Aqui é onde ficará as variáveis, os mixins e classes.
_layout.sass - Aqui fica todo código que trata do layout da página.
_components.sass - Aqui fica tudo que pode ser reutilizado como botões etc.
main.sass - Repare que neste não usavos o simbolo _(soblinhado),
esse arquivo será responsável pelas importações dos demais arquivos acima.

Além disso, é importante criar uma folha de estilo para cada página de seu site, caso tenha mais de uma, ela deve ser nomeada com o mesmo nome da página seguindo o padrão da estrutura assim: _pagina.sass.

Agora só um adendo importante. Originalmente a extensão usada nos arquivos era a .SASS mas atualmente a extensão oficial é a .SCSS, o que muda entre as duas? Somente um pouco da sintaxe, .sass não possuí chaves nem ponto e vírgula, mas a funcionalidade das duas é a mesma. Vou utilizar a extesão .SCSS por ter a sintaxe mais parecida com o CSS, mas fica a seu critério a qual usar.

7. Mini-Projeto

Antes de começarmos a codar, precisamos fazer uma pequena configuração no nosso VS Code. Na aba de extensões, pesquise por Live Sass Compiler, precisamos dessa extensão para compilar o Sass.

Instale também a extensão Live Server, caso não a tenha, essa cria um servidor local para observar-mos as mudanças em tempo real.

Feito isso, podemos começar nosso projeto. Primeiro vamos criar nosso arquivo index.html com sua estrutura básica.

Dica: para criar a estrutura básica do HTML5 basta digitar ! dentro da página vazia, e uma opção aparecerá. Batas teclar Enter e a estrutura básica do HTML5 será criada.

Esse é o código HTML que será criado:

</span>
 lang="pt-br">

     charset="UTF-8">
     http-equiv="X-UA-Compatible" content="IE=edge">
     name="viewport" content="width=device-width, initial-scale=1.0">
    CSS com Super Poderes








    Enter fullscreen mode
    


    Exit fullscreen mode
    




Você pode adicionar um titulo de desejar.Agora iremos criar uma pasta chamada css, nela vamos criar as folhas de estilo de nossa estruta de arquivos sass. Crie os seguintes arquivos dentro da pasta:

_base.scss 
_componentes.scss 
_layout.scss
main.scss



    Enter fullscreen mode
    


    Exit fullscreen mode
    




Feito isso, agora vou explicar como a compilação do sass funciona nos arquivos. Mas antes disso primeiro vamos abrir o arquivo main.scss e importar as outras folhas de estilo para ele, lembra que ele será o responsavel por juntar tudo.Veja abaixo e siga a importação na mesma sequência mostrada:

@import 'base';
@import 'components';
@import 'layout';



    Enter fullscreen mode
    


    Exit fullscreen mode
    




Essa sequência é importante para o que será carregado primeiro em nossa página.Depois que fazer a importação abrir o no arquivo _base.scss e vamos adicionar um estilo qualquer só para verificar se tudo está pronto ao compilar-mos o nosso SASS, vou adicionar um reset simples para nossa página:

*{
  margin: 0;
  padding: 0;
  border: 0;
}



    Enter fullscreen mode
    


    Exit fullscreen mode
    




Quando executarmos o compilador, o sass criará os arquivos main.css esse conterá todos os estilos dos outros arquivos .scss e estarão mimificados ou seja, será removido todos os estaços e tabulações deixando os codigos compactados, isso serve para economizar processamento na hora de carregar a página, e também criará um aquivo main.css.map.Antes de executar o compilador, vamos chamar o arquivo main.css dentro do html:


   rel="stylesheet" href="/css/main.css">




    Enter fullscreen mode
    


    Exit fullscreen mode
    




Depois feito tudo isso, podemos executar o nosso compilador, não se esqueça de salvar os arquivos e em seguida, na parte inferio do VS Code, na barra de status, você verá o botão da extensao Live Sass Compiler, clique em Watch Sass e espere compilar, é rapidinho, se estiver tudo certo aparecerá a saída com Watching... e seu sass já está funcionando e pronto para darmos início ao nosso projeto.Para esse projeto, iremos criar um formulário de login, bem simples que nos ajudará a entender melhor os conceitos apresentados anteriormente.Vamos iniciar criando nosso formulário na página index.html, dentro do corpo do site (body), juntamente com cada classe que precisaremos usar pra estilizar nosso formulário.Veja abaixo:


     class="login-box">
        Login
         action="">
             class="user-box">
                 type="text" name="user" required="required">
                 for="">Usuário
            
             class="user-box">
                 type="text" name="password" required="required">
                 for="">Senha
            
             href="">Entrar
        
    




    Enter fullscreen mode
    


    Exit fullscreen mode
    




Formulário criado, agora vamos começar a estiliza-lo, primeiro vamos abrir o _base.scss, nele vamos adicionar algumas váriaveis, um reset simples para o body um @mixin para a tipografia.

$tipografia: font-family: Roboto;
$cor_fundo: #e9e9e9;
$cor_principal: #ed2553;
$cor_secundaria: #666666;

body{
  margin: 0;
  padding: 0;
}

@mixin tipografia($color, $size, $family){
  $family:$tipografia;
  $color:$cor_secundaria;
  $size: font-size: 16px;
}



    Enter fullscreen mode
    


    Exit fullscreen mode
    




Agora sempre que precisarmos usar uma cor, ou editar o estilo da tipografia do site, poderemos usar as variáveis e o mixin.O próximo que iremos editar será o _layout.scss, nele iremos tratar todo o estilo da interface da página, que no nosso caso é o formulário de loguin.

.login-box {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 400px;
  padding: 40px;
  transform: translate(-50%, -50%);
  background-color: #fff;
  box-sizing: border-box;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
  border-radius: 6px;
  h2 {
    margin: 70px 50px 30px;
    @include tipografia($size: 38px);
    color: #ed2553;
    padding: 0;
    text-align: center;
  }
}

.login-box .user-box {
  position: relative;
  input {
    width: 100%;
    padding: 10px 0;
    @include tipografia($size: 16px, $color: #000);
    margin-bottom: 30px;
    border: none;
    border-bottom: 1px solid #ed2553;
    outline: none;
    background-color: transparent;
  }
  label {
    position: absolute;
    top: 0;
    left: 0;
    padding: 10px 0;
    @include tipografia($size: 16px, $color: #000);
    pointer-events: none;
    transition: .5s;
  }
}

.login-box .user-box input:focus~label,
.login-box .user-box input:valid~label {
  top: -20px;
  left: 0;
  @include tipografia($size: 12px, $color: #ed2553);
}



    Enter fullscreen mode
    


    Exit fullscreen mode
    




Agora vamos para a página _components.scss, nela iremos estilzar nosso unico componente que é o botão de entrar.

.login-box form a {
  display: inline-block; 
  padding: 10px 20px; 
  color: #ed2553;
  font-size: 16px;
  text-decoration: none;
  text-transform: uppercase;
  transition: .5s;
  margin-top: 40px;
  border: 1px solid #ed2553;
  border-radius: 6px;
}

.login-box a:hover {
  background: #ed2553;
  color: #fff;
  border-radius: 5px;
}



    Enter fullscreen mode
    


    Exit fullscreen mode
    





  
  
  Conclusão
Neste tutorial, você aprendeu um pouco sobre como o SASS pode ajudar a criar um CSS mais limpo, modular e fácil de manter.Espero que tenha gostado do conteúdo e, mais importante, que coloque em prática tudo o que aprendeu. A prática é essencial para consolidar o conhecimento — e, se quiser dominar o SASS de verdade, recomendo fortemente que confira a documentação oficial.
  
  
  Referências

Documentação Oficial do Sass: Sass-lang.com/documentation.
Documentação do Sass em português: Introdução ao Sass.