Publicado em: 17/04/2024

Como usar o Sass no Next?


Neste artigo, vamos explorar como integrar Sass em projetos Next.js, aproveitando seus recursos avançados enquanto mantemos a modularidade e escopo local do CSS.

O que é Sass?

Sass (Syntactically Awesome Style Sheets) é um pré-processador CSS que adiciona recursos poderosos como:

  • Variáveis para valores reutilizáveis
  • Aninhamento de seletores
  • Mixins e funções
  • Modularização com imports
  • Operações matemáticas

No Next.js, podemos usar Sass combinado com CSS Modules para obter o melhor dos dois mundos.

Configuração Básica

Para começar a usar Sass no Next.js, siga estes passos:

  1. Instale o pacote Sass:
    1npm install sass
  2. Crie arquivos com extensão .module.scss (para CSS Modules com Sass)
  3. Importe os estilos como faria com CSS Modules normais

Estrutura de Projeto Recomendada

1src/ components/ Card/ index.tsx styles.module.scss styles/ _variables.scss _mixins.scss

Esta estrutura permite:

  • Manter estilos específicos de componentes localizados
  • Compartilhar variáveis e mixins entre componentes
  • Manter uma organização clara e escalável

Exemplo Prático: Criando um Card

Vamos implementar um componente Card com estilos em Sass:

1. Arquivo de Variáveis (_variables.scss)

1$primary-color: #3498db; $border-radius: 8px; $transition-speed: 0.3s;

2. Estilos do Card (styles.module.scss)

1@import "../../styles/variables";
2 .card {
3 padding: 1rem;
4 border: 2px solid #eee;
5 border-radius: $border-radius;
6 transition: all $transition-speed ease;
7 h2 { font-size: 1.5rem;
8 margin-bottom: 0.5rem;
9 }
10 p { font-size: 1rem;
11 color: #666;
12 }
13 &:hover {
14 border-color: $primary-color;
15 color: $primary-color;
16 p {
17 color: inherit;
18 } } }

3. Componente React (index.tsx)

1import styles from "./styles.module.scss";
2 interface CardProps {
3 children: React.ReactNode; }
4 export function Card({ children }: CardProps) {
5 return <div className={styles.card}>{children}</div>; }

Vantagens da Abordagem

Combinar Sass com CSS Modules no Next.js oferece:

  • Escopo local: Evita conflitos de nomes de classes
  • Produtividade: Sintaxe mais limpa e poderosa
  • Manutenibilidade: Código mais organizado e reutilizável
  • Performance: Next.js otimiza o CSS resultante
  • Compatibilidade: Funciona com Server Components

Considerações Finais

Integrar Sass ao Next.js é simples e traz benefícios significativos:

  1. Comece pequeno: Adicione Sass gradualmente ao seu projeto
  2. Organize seus estilos: Crie um sistema de design com variáveis e mixins
  3. Aproveite os módulos: Mantenha o escopo local dos estilos
  4. Explore recursos avançados: Como herança com @extend e funções

Para projetos maiores, considere:

  • Implementar um sistema de design com tokens
  • Criar mixins para media queries responsivas
  • Automatizar prefixos de vendor com autoprefixer
  • Usar source maps para depuração

Sass no Next.js permite escrever estilos mais expressivos e mantáveis, enquanto aproveita toda a potência do ecossistema Next.js para performance e renderização otimizada.

Fernando Cunha
Artigo deFernando Cunha

Com mais de 15 anos de experiência em tecnologia e formado pela FAAP em Administração de empresas, hoje é o CEO da Mestres da Web, empresa referência no mercado nacional e com projeções de expansão internacional.

últimos vídeos

veja nossos vídeos mais recentes e esteja por dentro de muitas novidades.

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN
play

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN

Explorando a estrutura gerada pelo Create React App, entendendo o papel das pastas public e src, os conceitos de Virtual DOM, JSX e componentes, além de como o CSS é aplicado nos projetos React.

Autor deste artigo
Fernando Cunha17/03/2025
Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN
play

Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN

Explorando a criação de um layout fixo para a aplicação React, com barra lateral, barra superior e área dinâmica para conteúdo. Utilizando o React Router Dom v6 para gerenciar navegação entre rotas.

Autor deste artigo
Fernando Cunha17/03/2025
Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN
play

Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN

Abordando técnicas para organizar estilos em React, utilizando seletores CSS, CSS Modules, integração com React Router, reset CSS eficiente e boas práticas para garantir consistência visual e manutenibilidade.

Autor deste artigo
Fernando Cunha17/03/2025