Noções básicas de SASS
Este artigo explica os fundamentos do SASS.
Vamos explicar os recursos básicos do SASS passo a passo e demonstrar como usá-los com exemplos práticos de código.
YouTube Video
Noções básicas de SASS
SASS (Syntactically Awesome Stylesheets) é uma linguagem de folhas de estilo que estende o CSS. Ao usar SASS, você pode aproveitar recursos avançados que não estão disponíveis em CSS, como variáveis, aninhamento, mixins e herança. Isso torna o gerenciamento e a reutilização das folhas de estilo muito mais fáceis.
O que é SASS?
SASS é uma linguagem que simplifica a escrita do CSS, permitindo estilos mais flexíveis e poderosos. SASS também oferece a sintaxe SCSS (Sassy CSS), que é semelhante à sintaxe padrão do CSS. Aqui está um exemplo:.
Exemplo de SCSS
1$base-font: Arial, sans-serif;
2$bg-color: #f4f4f4;
3
4body {
5 font-family: $base-font;
6 background-color: $bg-color;
7}Exemplo de CSS
1body {
2 font-family: Arial, sans-serif;
3 background-color: #f4f4f4;
4}Configurando o SASS
Como instalar
Para usar SASS, primeiro instale o Node.js e depois instale o SASS usando o seguinte comando:.
1npm install -g sassComo compilar
Para compilar arquivos SASS (.scss ou .sass) para CSS, use o seguinte comando:.
1sass input.scss output.cssVocê também pode usar a opção watch para monitorar alterações nos arquivos e realizar a compilação em tempo real.
Variáveis
O SASS permite usar variáveis para reutilizar valores como cores e tamanhos de fonte.
Código de Exemplo
1$primary-color: #3498db;
2$font-stack: 'Roboto', sans-serif;
3
4body {
5 color: $primary-color;
6 font-family: $font-stack;
7}- Este código utiliza variáveis SASS para definir cores e fontes, reutilizando-as dentro do seletor
bodypara melhorar a consistência e a manutenção.
Resultado compilado
1body {
2 color: #3498db;
3 font-family: 'Roboto', sans-serif;
4}Aninhamento
O SASS melhora a legibilidade do código permitindo que os seletores CSS sejam aninhados.
Código de Exemplo
1nav {
2 ul {
3 list-style: none;
4 margin: 0;
5 padding: 0;
6
7 li {
8 display: inline-block;
9
10 a {
11 text-decoration: none;
12 color: #333;
13
14 &:hover {
15 color: #3498db;
16 }
17 }
18 }
19 }
20}- Este código utiliza hierarquia aninhada para esclarecer visualmente a estrutura dos estilos.
Resultado compilado
1nav ul {
2 list-style: none;
3 margin: 0;
4 padding: 0;
5}
6
7nav ul li {
8 display: inline-block;
9}
10
11nav ul li a {
12 text-decoration: none;
13 color: #333;
14}
15
16nav ul li a:hover {
17 color: #3498db;
18}Mixins
Mixins permitem reutilizar código em vários seletores.
Código de Exemplo
1@mixin border-radius($radius) {
2 border-radius: $radius;
3 -webkit-border-radius: $radius;
4 -moz-border-radius: $radius;
5}
6
7button {
8 @include border-radius(10px);
9}
10
11.card {
12 @include border-radius(5px);
13}- Este código define um estilo de
border-radiususando@mixine o reutiliza embuttone.cardusando@include, permitindo uma estilização eficiente sem duplicidade.
Resultado compilado
1button {
2 border-radius: 10px;
3 -webkit-border-radius: 10px;
4 -moz-border-radius: 10px;
5}
6
7.card {
8 border-radius: 5px;
9 -webkit-border-radius: 5px;
10 -moz-border-radius: 5px;
11}Herança (@extend)
Herança permite aplicar estilos existentes a outros seletores.
Código de Exemplo
1%button-style {
2 padding: 10px 20px;
3 color: white;
4 background-color: #3498db;
5}
6
7button {
8 @extend %button-style;
9 border: none;
10}
11
12.link-button {
13 @extend %button-style;
14 text-decoration: none;
15}- Este código define um seletor placeholder
%button-stylee utiliza@extendpara aplicar estilos comuns tanto aobuttonquanto ao.link-button, promovendo reutilização e consistência.
Resultado compilado
1button, .link-button {
2 padding: 10px 20px;
3 color: white;
4 background-color: #3498db;
5}
6
7button {
8 border: none;
9}
10
11.link-button {
12 text-decoration: none;
13}Condicionais e loops
O SASS suporta condicionais e loops para gerar estilos dinamicamente.
Exemplo de instrução condicional
1$theme: dark;
2
3body {
4 background-color: if($theme == light, #fff, #333);
5 color: if($theme == light, #333, #fff);
6}- Este código utiliza a função
ifdo SASS para alternar as cores de fundo e do texto com base no valor de$theme, permitindo a geração dinâmica de estilos por meio de condicionais.
Exemplo de loop
1@for $i from 1 through 3 {
2 .column-#{$i} {
3 width: calc(100% / $i);
4 }
5}- Este código utiliza o loop
@fordo SASS para gerar dinamicamente classes de.column-1até.column-3.
Resultado compilado
1body {
2 background-color: #333;
3 color: #fff;
4}
5
6.column-1 {
7 width: 100%;
8}
9
10.column-2 {
11 width: 50%;
12}
13
14.column-3 {
15 width: 33.3333%;
16}Divisão e importação de arquivos
SASS permite dividir arquivos e reutilizá-los usando @use ou @import.
Estrutura de arquivos
styles/
_variables.scss
_mixins.scss
main.scss_variables.scss
1$primary-color: #3498db;_mixins.scss
1@mixin flex-center {
2 display: flex;
3 justify-content: center;
4 align-items: center;
5}main.scss
1@use 'variables';
2@use 'mixins';
3
4header {
5 background-color: variables.$primary-color;
6 @include mixins.flex-center;
7}Resultado compilado
1header {
2 background-color: #3498db;
3 display: flex;
4 justify-content: center;
5 align-items: center;
6}Resumo
Usar SASS agiliza a escrita do CSS e melhora a reutilização e a manutenção do código.
Você pode acompanhar o artigo acima usando o Visual Studio Code em nosso canal do YouTube. Por favor, confira também o canal do YouTube.