< Return to Video

FEMD CAP01 2025 VA04 REACT ESTILIZACAO

  • 0:08 - 0:10
    Estilização com React.
  • 0:10 - 0:13
    O React pode ser personalizado
    de várias formas.
  • 0:13 - 0:19
    Existem várias bibliotecas de estilos
    que favorecem essa personalização.
  • 0:19 - 0:22
    Temos o Styled Components,
    temos Tailwind
  • 0:22 - 0:24
    e uma infinita gama de ferramentas
  • 0:24 - 0:26
    que você pode escolher
    qual é melhor para você.
  • 0:26 - 0:29
    Vou falar hoje sobre
    o Styled Components.
  • 0:29 - 0:32
    Para isso, vamos criar um componente
    e customizá-lo
  • 0:32 - 0:35
    utilizando todo o benefício
    que o Styled Components já tem
  • 0:35 - 0:37
    pronto e embarcado.
  • 0:37 - 0:38
    Qual é a vantagem disso tudo?
  • 0:38 - 0:40
    Se a gente for olhar
  • 0:40 - 0:42
    o que temos de personalização
    disponível no mercado,
  • 0:42 - 0:45
    a gente pode utilizar várias
    de acordo com as preferências.
  • 0:45 - 0:48
    O React utilizado
    com o Styled Components
  • 0:48 - 0:49
    tem algumas especiais
  • 0:49 - 0:53
    e a gente consegue trazer um pouco
    de benefício nessas customizações.
  • 0:53 - 0:55
    Mas, explicando melhor,
  • 0:55 - 0:59
    para que serve essa estilização
    com bibliotecas e terceiros,
  • 0:59 - 1:01
    imagina a construção de um site
  • 1:01 - 1:04
    e você precisa customizar
    várias partes do seu site.
  • 1:04 - 1:08
    Antigamente,
    a gente usava CSS para tudo.
  • 1:08 - 1:12
    Imagina que cada pedaço
    do seu código, da sua tela,
  • 1:12 - 1:14
    seja customizada com CSS.
  • 1:14 - 1:16
    Você tem que pegar
    elemento por elemento,
  • 1:16 - 1:19
    chamar no CSS e atribuir um parâmetro
    na propriedade
  • 1:19 - 1:23
    de cor, de estilos,
    de espaçamento,
  • 1:23 - 1:27
    para que isso ficasse
    um pouco melhor a visualização.
  • 1:27 - 1:30
    O Styled Components já tem isso
    muito embarcado na sua aplicação
  • 1:30 - 1:31
    e para isso,
  • 1:31 - 1:34
    a gente precisa só chamar
    esse pedaço de estilo
  • 1:34 - 1:36
    dentro do nosso código
    e trazer um pouco de benefício
  • 1:36 - 1:38
    para a nossa explicação.
  • 1:38 - 1:41
    Vamos ao código e eu te explico melhor
    como isso funciona.
  • 1:41 - 1:47
    Eu criei aqui um componente
    chamado "BotaoEstilizado".
  • 1:47 - 1:51
    Esse botão está importando o Styled
    que vem do Styled Components.
  • 1:51 - 1:54
    Então, eu criei uma variável "botao".
  • 1:54 - 1:56
    Essa variável vai receber
    todos os estilos
  • 1:56 - 1:58
    que o Styled Components já tem.
  • 1:58 - 2:01
    Perceba que o Styled aqui,
    simbolizado nesse import,
  • 2:01 - 2:03
    vai trazer tudo
    que o Styled Components tem
  • 2:03 - 2:07
    e permitir que eu utilize
    dentro do meu botão.
  • 2:07 - 2:08
    Esses exemplos,
  • 2:08 - 2:11
    background-color, color,
    padding, border,
  • 2:11 - 2:16
    eu passo como função
    apenas no conceito de chave e valor.
  • 2:16 - 2:19
    Eu tenho um background-color,
    eu quero trazer uma cor para ele.
  • 2:19 - 2:22
    Então, essa cor azul,
    um pouco mais clara,
  • 2:22 - 2:24
    traz a customização
    do meu botão.
  • 2:24 - 2:27
    A cor branca é o label do meu botão.
  • 2:27 - 2:30
    É melhor explicando isso
    mostrando na tela, tá?
  • 2:30 - 2:32
    Então, como é que a gente faz
    para rodar mesmo?
  • 2:32 - 2:36
    Lá no começo do nosso capítulo,
    eu expliquei para vocês
  • 2:36 - 2:38
    que para rodar
    a nossa aplicação React,
  • 2:38 - 2:43
    a gente tem que digitar "npm run dev"
    para que rode a nossa aplicação.
  • 2:43 - 2:45
    Então, eu vou startar aqui,
    dando o enter,
  • 2:45 - 2:48
    e vamos ver o que acontece aqui
    na nossa tela.
  • 2:48 - 2:51
    Ele está falando que minha aplicação
    já está disponível
  • 2:51 - 2:53
    dentro do localhost 5173.
  • 2:53 - 2:57
    Você perceba que ele fez o hot reload,
    mas quebrou a minha aplicação.
  • 2:57 - 2:58
    Ele quebrou de propósito.
  • 2:59 - 3:03
    Eu fiz isso justamente para você visualizar que não basta apenas você
  • 3:03 - 3:06
    declarar os atributos do estado de component para você utilizar.
  • 3:07 - 3:09
    É preciso que ele seja embarcado na sua aplicação.
  • 3:10 - 3:12
    E para isso, precisaremos instalar.
  • 3:13 - 3:16
    Então, para não perder aqui o meu código que já está rodando, mesmo
  • 3:16 - 3:18
    com erro, eu vou dividir meu terminal.
  • 3:19 - 3:23
    E para isso, você clica aqui nesse botão chamado Split Terminal.
  • 3:23 - 3:25
    Ele vai dividir nosso terminal em duas partes.
  • 3:26 - 3:31
    E vai me entregar aqui uma nova sessão para que eu digite o código
  • 3:31 - 3:32
    que eu preciso para instalar.
  • 3:33 - 3:37
    Então, o comando que eu vou utilizar é o npm install installed
  • 3:37 - 3:38
    -components.
  • 3:38 - 3:42
    Explicando esse comando, eu estou pedindo para o Node Package Manager
  • 3:42 - 3:46
    instalar essa biblioteca que está disponível a partir das nossas
  • 3:46 - 3:49
    interfaces pré-prontas dentro da internet.
  • 3:50 - 3:54
    Digitando npm install installed-components, basta dar o Enter, ele
  • 3:54 - 3:56
    vai baixar a biblioteca para o meu projeto.
  • 3:57 - 3:59
    Vamos aguardar o término.
  • 3:59 - 4:02
    E já, muito rápido, ele já instalou a biblioteca.
  • 4:02 - 4:06
    A gente pode conferir isso olhando para o nosso Package.json. O nosso
  • 4:06 - 4:09
    Package.json, ele trouxe aqui dentro das nossas dependências, além do
  • 4:09 - 4:13
    React, do React DOM, que já é natural da aplicação, ele trouxe agora
  • 4:13 - 4:14
    o installed-component.
  • 4:15 - 4:18
    Então, significa dizer que agora sim eu posso utilizar o que está
  • 4:18 - 4:18
    importado.
  • 4:19 - 4:23
    Voltando para o nosso código, lembrem que eu instalei aqui, importei,
  • 4:23 - 4:27
    aliás, o installed do installed-component.
  • 4:27 - 4:32
    E aí permitiu que eu usasse o installed-button para decorar esse
  • 4:32 - 4:32
    botão.
  • 4:33 - 4:36
    Não está rodando aqui ainda porque eu tenho que quebrar a minha
  • 4:36 - 4:41
    aplicação com o comando Ctrl-C, onde está dando o erro aqui, eu dou
  • 4:41 - 4:48
    o Ctrl-C e rodo novamente a minha aplicação com o comando npm rundev.
  • 4:49 - 4:53
    Dando o Enter, ele vai fazer o hot reload e vai atualizar
  • 4:53 - 4:54
    instantaneamente aqui a minha tela com o erro.
  • 4:55 - 4:59
    Ele já trouxe o meu botão totalmente decorado, com o clique aqui, que
  • 4:59 - 5:04
    está sendo chamado dentro do meu botão estilizado, que é esse botão
  • 5:04 - 5:08
    aqui, e as propriedades de estilos.
  • 5:10 - 5:14
    Esse componente que eu criei foi só para dar a decoração para o meu
  • 5:14 - 5:14
    botão.
  • 5:14 - 5:18
    E a função aqui embaixo é onde ele renderiza o botão estilizado.
  • 5:19 - 5:21
    Então vamos entender esse código e como ele funciona.
  • 5:22 - 5:25
    Tenho aqui meu botão, esse botão está recebendo tudo o que o
  • 5:25 - 5:32
    installed fornece, eu pego o botão dele e coloco para esse botão.
  • 5:32 - 5:38
    Então eu escrevo o seguinte, vale inclusive olhar que nós temos aqui
  • 5:38 - 5:44
    uma crase, que é uma aspa invertida, ele abre aqui em cima e fecha
  • 5:44 - 5:45
    aqui embaixo.
  • 5:46 - 5:49
    É dentro dessa crase aqui, que a gente chama de literals, que eu
  • 5:49 - 5:51
    posso passar meu conceito de chave valor.
  • 5:52 - 5:57
    Onde está o meu botão, a cor do meu botão, a cor do label
  • 5:57 - 6:00
    do botão e todos os atributos que ele precisa para funcionar e ficar
  • 6:00 - 6:00
    desse estilo aqui.
  • 6:00 - 6:02
    Vamos fazer uns testes.
  • 6:02 - 6:05
    Então perceba que eu tenho aqui a cor branca do meu label, e se
  • 6:05 - 6:09
    eu quiser trocar a cor do meu botão para um laranja, vamos dizer
  • 6:09 - 6:15
    assim, basta eu passar, e se eu souber de cor é claro, a cor
  • 6:15 - 6:18
    do meu hexa, eu passo aqui e ele vai trocar a cor do meu
  • 6:18 - 6:20
    botão para laranja.
  • 6:20 - 6:23
    Não, a leitura não ficou muito boa, vamos deixar com o branco mesmo
  • 6:23 - 6:24
    para continuar o nosso exemplo.
  • 6:24 - 6:25
    Perceba que está branco aqui.
  • 6:26 - 6:31
    O padding 10 e 20 significa dizer que eu tenho 10 pixels para cima
  • 6:31 - 6:36
    e para baixo, que é esse espaçamento aqui, entre o clique aqui e o
  • 6:36 - 6:39
    topo do botão e a parte baixa do botão, e 20 pixels para a
  • 6:39 - 6:42
    direita e para a esquerda, onde está aqui o meu i e onde está
  • 6:42 - 6:43
    o meu c.
  • 6:43 - 6:44
    Eu tenho 20 pixels.
  • 6:44 - 6:48
    Posso aumentar, e você vai continuar visualizando ali
  • 6:48 - 6:51
    instantaneamente, que esse botão está se comportando a partir do
  • 6:51 - 6:53
    momento que você modifica alguns parâmetros do que o estado de
  • 6:53 - 6:55
    componente já trouxe para ele ser pré-definido.
  • 6:57 - 7:01
    O border radius, que é essa curvinha que o meu botão faz, ele está
  • 7:01 - 7:02
    com 5 pixels.
  • 7:02 - 7:06
    Se eu passar 25 pixels aqui, ele já muda e deixa mais arredondado
  • 7:06 - 7:07
    ainda.
  • 7:07 - 7:10
    Então você consegue perceber que apesar de você ter a biblioteca
  • 7:10 - 7:14
    pronta, você consegue dar um pouco de personalização ao estilo que
  • 7:14 - 7:15
    ele está te fornecendo também.
  • 7:15 - 7:19
    E esse pointer aqui é o dedinho do mouse.
  • 7:19 - 7:21
    Quando eu encosto o mouse aqui, ele tem uma seta.
  • 7:22 - 7:24
    Quando eu encosto no botão, ele assume o dedinho para clique.
  • 7:25 - 7:27
    Então ele está nesse cursor pointer.
  • 7:27 - 7:31
    E quando eu passo o mouse no meu botão, ele muda de cor para
  • 7:31 - 7:32
    um azul um pouco mais escuro.
  • 7:32 - 7:34
    Está sendo passado aqui nesse background color.
  • 7:35 - 7:38
    Caso você queira trocar o comportamento, basta você alterar o valor
  • 7:38 - 7:42
    dessas chaves que estão setadas no nosso estilo.
  • 7:43 - 7:47
    Exporto aqui a função botão estilizado com o botão clique aqui e
  • 7:47 - 7:52
    utilizo ele dentro do meu app.jsx, onde ele fica disponibilizado
  • 7:52 - 7:52
    aqui.
  • 7:53 - 7:59
    Se eu quiser duplicar, basta eu criar um segundo botão e faço as
  • 7:59 - 8:01
    cores para outro botão.
  • 8:01 - 8:07
    Posso usar aqui o botão 2 e aqui no botão 2 eu crio outras
  • 8:07 - 8:10
    diversidades de estilos para esse meu botão.
  • 8:10 - 8:15
    Se eu estou passando aqui o botão 2 como o meu botão, eu preciso
  • 8:15 - 8:19
    criar aqui uma nova função, botão 2, e estilizar da forma que eu
  • 8:19 - 8:20
    desejo.
  • 8:20 - 8:24
    Como eu quero manter como está, eu vou deixar o botão 1 com as
  • 8:24 - 8:24
    mesmas cores.
  • 8:25 - 8:29
    Só para você entender que componente a gente pode reaproveitar tanto
  • 8:29 - 8:32
    a parte padronizada dele que você já deu, como você pode customizar
  • 8:32 - 8:34
    um para cada estilo que você desejar.
  • 8:35 - 8:39
    Utilizando esse conceito de reaproveitar componentes estilizados,
  • 8:40 - 8:43
    você pode ver no exemplo bem simples aqui que eu fiz no botão, você
  • 8:43 - 8:48
    pode expandir essa mesma forma para um card, para um título, para um
  • 8:48 - 8:51
    input, um formulário completo que você queira personalizar.
  • 8:52 - 8:55
    E toda a página que você precisa customizar, você precisa declarar
  • 8:55 - 8:59
    essa página onde você quer importar o estilo personalizado.
  • 8:59 - 9:04
    Como eu falei anteriormente, o estilo de componente é só um meio de
  • 9:04 - 9:06
    biblioteca que a gente tem disponível para estilizar.
  • 9:06 - 9:10
    Você pode explorar outras bibliotecas aí e visualizar lá no get
  • 9:10 - 9:13
    started dele como você faz para instalar essa biblioteca no seu
  • 9:13 - 9:14
    projeto.
  • 9:14 - 9:17
    Olhe sempre para o npm install dele.
  • 9:17 - 9:20
    Não basta apenas você ter essa biblioteca dentro do seu projeto, você
  • 9:20 - 9:25
    precisa trazer toda a parte de estilos que ela fornece para você para
  • 9:25 - 9:26
    dentro do seu projeto.
  • 9:26 - 9:29
    Ele tem que ser global, ele não pode ser só colocado na página que
  • 9:29 - 9:30
    você quer colocar.
  • 9:30 - 9:35
    Você precisa ter ele declarado, importado e quando você for utilizar
  • 9:35 - 9:38
    o seu projeto, você pode fazer a instalação dele e reaproveitar ele
  • 9:38 - 9:40
    em qualquer parte do seu código.
  • 9:41 - 9:44
    Eu espero que tenha sido proveitoso essa explicação de estilos.
  • 9:44 - 9:50
    Como eu reforcei, você pode modificá-la como você desejar e entender
  • 9:50 - 9:54
    que toda a parte de componentes tem seu estilo próprio ou você pode
  • 9:54 - 9:58
    reaproveitar o que vem nativo do React ou você pode importar outra
  • 9:58 - 10:02
    biblioteca de estilo para que você coloque a sua personalização.
  • 10:03 - 10:07
    Vale ressaltar que por mais que existam várias formas de você fazer
  • 10:07 - 10:11
    essa customização, não use muitas bibliotecas de estilos no mesmo
  • 10:11 - 10:12
    projeto.
  • 10:12 - 10:15
    Isso vai contribuir com que seu projeto perca um pouco da
  • 10:15 - 10:19
    personalização que você criou, uma vez que esses elementos têm
  • 10:19 - 10:23
    comportamentos próprios e você precisa trazer ele exclusivo na classe
  • 10:23 - 10:25
    exclusiva que você quer personalizar.
  • 10:26 - 10:28
    Quando você coloca mais que uma biblioteca de estilo no seu projeto,
  • 10:28 - 10:31
    você acaba perdendo essa flexibilidade de personalização.
  • 10:32 - 10:32
    Agora é a sua vez.
  • 10:32 - 10:36
    Você viu que durante esse capítulo a gente criou uma aplicação React
  • 10:36 - 10:40
    do zero e fizemos algumas adições de estilos, de eventos, de
  • 10:40 - 10:42
    comportamento que a biblioteca fornece pra gente.
  • 10:42 - 10:45
    É hora de praticar e testar com suas aplicações na vida real.
Title:
FEMD CAP01 2025 VA04 REACT ESTILIZACAO
Video Language:
Portuguese, Brazilian
Duration:
10:49

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions