Aula 05 – Estilização: CSS Modules e Styled Components 🎨
Existem várias formas de estilizar um projeto React. Hoje vamos conhecer as técnicas que evitam conflitos de nomes e tornam o CSS mais dinâmico.
📦 1. CSS Modules
O CSS Modules permite escrever CSS normal, mas garante que os nomes das classes sejam únicos por componente.
Como usar:
- Crie um arquivo chamado
Botao.module.css. - Importe no seu componente:
import styles from './Botao.module.css'.
Vantagem
O CSS Modules renomeia suas classes no navegador (ex: btnPrimario_abc123), eliminando o risco de um estilo "vazar" para outro componente.
💅 2. Styled Components (CSS-in-JS)
O Styled Components permite escrever CSS diretamente dentro do arquivo JavaScript, usando a sintaxe de Tagged Templates.
Instalação:
Exemplo de Uso:
import styled from 'styled-components';
const BotaoCustomizado = styled.button`
background-color: ${props => props.color || 'blue'};
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
&:hover {
filter: brightness(0.9);
}
`;
🌈 CSS Condicional
Com React, é fácil mudar o estilo baseado no estado ou em props.
🚀 Prática da Aula
Vamos criar uma "Biblioteca de Botões" temática.
- Crie um componente
Botaousando Styled Components. - Adicione as variantes:
success,dangerewarning. - O botão deve mudar de cor dependendo da prop recebida.
📊 Comparativo de Técnicas
| Técnica | Pró | Contra |
|---|---|---|
| CSS Modules | Nativo do Vite, fácil de aprender. | Menos dinâmico, arquivos separados. |
| Styled Components | Super dinâmico, CSS vira componente. | Precisa de biblioteca extra, curva de aprendizado. |
| Tailwind CSS | Desenvolvimento ultra rápido. | HTML fica "poluído" com muitas classes. |
Qual escolher?
Em projetos grandes, costuma-se usar uma combinação de Styled Components (para lógica de UI) e classes utilitárias.