Estilos ReactJS – Utilizando styled-components

Para o desenvolvimento de uma aplicação utilizando a biblioteca ReactJS, a adição de estilos pode ocorrer de muitas formas, desde nomear as tags do JSX com className ou usando bibliotecas auxiliares nos estilos de sua aplicação. No presente artigo, será demonstrado como é utilizar a biblioteca styled-components, para a adição de estilos nas páginas de sua aplicação.

1. Instalação

Para instalação desta lib, o seu projeto em ReactJS já deve estar criado, utilizando o comando npx create-react-app nome_aplicativo. Com isso, na pasta de seu projeto, no terminal de sua IDE (no caso, do Visual Studio Code) ou do seu Prompt de Comando, digite o comando:

npm install styled-components

Após digitar o comando, é necessário teclar ENTER e, aguardar a instalação da lib. Pode ser um procedimento demorado, dependendo de sua internet.

2. Como usar?

Depois que a lib foi instalada, é necessário importar ela no começo dos arquivos que ela será utilizada. Para isso, é necessário digitar:

import styled from ‘styled-components’;

Figura 01 — Importação da lib nos arquivos desejados. Fonte: Autoria própria.
Figura 01 — Importação da lib nos arquivos desejados. Fonte: Autoria própria.

Feito isso, para estilizar as tags do JSX, que são similares ao HTML (input, h1, div, p, label), elas deverão ser atribuídas a uma variável e, usar o prefixo styled antes das mesmas, conforme exemplo:

const Label = styled.label

O que está à esquerda (antes do sinal de igualdade) seria a declaração de uma variável Label e o que está à direita (depois do sinal de igualdade) seria a junção de uma tag JSX com o prefixo styled. Qualquer tag, conforme mencionado acima, pode ser prefixada com o styled, seja ela uma div ou um parágrafo (p).

Para atribuir estilos para essa variável Label, são utilizadas crases, para fazer o que é similar a uma interpolação de strings (“). Veja o exemplo:

Figura 02 - Utilizando a propriedade label para estilização. Fonte: Autoria própria.

Os estilos são iguais ao do CSS puro, contudo, todo conteúdo de atribuição de estilos a variável Label precisa estar dentro de crases (“).

Por conseguinte, para utilização desse estilo em sua aplicação, o uso é similar ao de um componente. O uso seria uma tag <Label></Label>, nos pontos desejados de utilização, conforme exemplo abaixo:

Figura 03 - Exemplo prático de utilização do componente criado no arquivo de estilos. Fonte: Autoria própria.

tag é utilizada e não há necessidade de replicar a tag <label></label> novamente.

Esses estilos são muito fáceis de serem utilizados, não é? Lembrando que somente uma tag pode ser prefixada com o styled, não podendo ter algo como:

const Input_Label = styled.input.label`

Estilos

`

(O comando acima não funciona, pois juntou a tag input junto com a label).

Alguns outros exemplos utilizados:

const Input = styled.input`
width: 400px;
height: 30px;
font-size: 1rem;
padding 0.625rem;
border: 1px solid #111;
border-radius: 10px;
margin-left: 30rem;
`;
const Title = styled.h1`
text-align: center;
font-size: 1rem;
font-family: "Verdana";
`;
const Paragraph = styled.p`
display: flex;
justify-content: center;
font-family: "Verdana";
`;
view raw app.js hosted with ❤ by GitHub
return <>
<Title>Calculadora de MB - GB (Megabytes para Gigabytes)</Title> <br/>
<Label>Valor em MB:</Label><br/>
<Input
type="number"
value={megabytes}
onChange={(e) => setMegaBytes(parseFloat(e.target.value))}
/>
<br/><br/>
<hr />
{ megabytes > 0 &&
<div>
<Paragraph>Valor em MB: {megabytes} MB</Paragraph>
<Paragraph>Valor em GB: {calculo} GB</Paragraph>
</div>
}
</>
}
view raw app.js hosted with ❤ by GitHub

O projeto exemplificado com os códigos acima, está disponível no Youtube um vídeo demo para demonstração de como ficou.