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 sass
Como compilar
Para compilar arquivos SASS (.scss
ou .sass
) para CSS, use o seguinte comando:.
1sass input.scss output.css
Você 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
body
para 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-radius
usando@mixin
e o reutiliza embutton
e.card
usando@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-style
e utiliza@extend
para aplicar estilos comuns tanto aobutton
quanto 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
if
do 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
@for
do SASS para gerar dinamicamente classes de.column-1
até.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.