DEV Community

Cover image for Parte 2: Configurando Styled Components
Ary Barros
Ary Barros

Posted on

Parte 2: Configurando Styled Components

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>
);
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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`
`;
Enter fullscreen mode Exit fullscreen mode

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;
  }
`;
Enter fullscreen mode Exit fullscreen mode

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;

Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
marcythany profile image
Marcy Sobral

Seu artigo me ajudou muito! vlw :D