Até o momento, nossa template já possui:
- Compatibilidade entre múltiplos editores
- Padronização de Código automatizado
- Embelezamento de código automatizado
Agora, iremos configurar funcionalidades extra para nosso projeto. Uma delas, é o tão famoso Styled Components, que mudou a forma como escrevemos CSS/SCSS em projetos React. Vamos lá?
O que é o Styled Components?
Este é um pacote que surgiu por volta de 2016 e veio da necessidade do CSS se adequar a componentização proposta pelo React em sua criação. A ideia do Styled Components é criar componentes React com seu CSS individual e que pode ser facilmente replicado em outras páginas e outros projetos.
No exemplo abaixo, vemos a construção de um componente feito em Styled Components com estruturação de temas e aplicação em um JSX.
const Button = styled.button` background: transparent; border-radius: 3px; border: 2px solid palevioletred; color: palevioletred; margin: 0.5em 1em; padding: 0.25em 1em; ${props => props.primary && css` background: palevioletred; color: white; `} `; const Container = styled.div` text-align: center; ` render( <Container> <Button>Normal Button</Button> <Button primary>Primary Button</Button> </Container> );
Legal não é? Vamos configura-lo em nossa template.
Instalando Styled Components
Para instalar o pacote, basta executar o comando abaixo:
yarn add styled-components # Logo após yarn add @types/styled-components -D
Pronto, já está instalado. Agora, vamos utilizar uma configuração muito especial e que o Styled Components nos disponibiliza, a configuração de estilos globais.
Configurando Global Style
A configuração do Global Style ajuda a configurarmos um CSS comum a todas as páginas. Essa é uma pratica comum entre desenvolvedores para sobrescrever certas configurações padrão do navegador, além de configurar fontes e cores padrão. O Global Style também é um componente React que será importado em nosso App.tsx.
Vamos criar, dentro da pasta src uma pasta chamada styles e dentro dela o arquivo global.ts.
Para configurar o global style, apenas importamos essa configuração do styled components e exportamos o componente funcional criado:
import { createGlobalStyle } from 'styled-components'; export default createGlobalStyle` `;
Aqui, a configuração fica a seu critério, mas, mostro abaixo a configuração comum que uso em meus projetos.
import { createGlobalStyle } from 'styled-components'; export default createGlobalStyle` * { margin: 0; padding: 0; box-sizing: border-box; outline: 0; } body { background: #312e38; color: #fff; -webkit-font-smoothing: antialiased; } body, input, button { font-family: 'Roboto Slab', serif; font-size: 16px; } h1, h2, h3, h4, h5, h6, strong { font-weight: 500; } button { cursor: pointer; } `;
Ativando Global Style
Em nosso App.tsx, basta importarmos nosso componente e inseri-lo no retorno do App.
import React from 'react'; import GlobalStyle from './styles/global'; function App() { return ( <> <GlobalStyle /> </> ); } export default App;
Pronto! Mais uma configuração feita em nossa template. Ela está disponível no github.
No próximo artigo, configuraremos o react-app-rewired que sobrescreve as configurações do webpack.
Te aguardo lá!
Obrigado pela leitura!
Top comments (1)
Seu artigo me ajudou muito! vlw :D