Pular para o conteúdo
Ramos da Informática - Comunidade de Desenvolvedores

Torne-se um desenvolvedor FullStack: Pacote completo de formação desenvolvedor Frontend e Backend utilizando as linguagens de programação e frameworks mais procurados no mercado de trabalho. Mais informações, aqui. Faça o download do E-BookGuia Completo Para Se Tornar um(a) Desenvolvedor(a) Full-Stack, Começando do ZERO”.

Engenheiro de Software, autor de livros sobe tecnologia e negócios. É mantenedor do site Ramos da Informática. Hobbies: investir em ações, natação e finanças.

Engenheiro de Software, autor de livros sobe tecnologia e negócios. É mantenedor do site Ramos da Informática. Hobbies: investir em ações, natação e finanças.

admin

Todos os artigos deste autor

Como usar tema Dark e Light com Styled-components

Chatbots com Whatsapp e Cielo integrados Nesse curso, eu vou te mostrar como o consumidor poder realizar um pagamento por dentro do aplicativo do WhatsApp, aonde o seu cliente vai entrar numa conversa como entraria numa conversa com qualquer pessoa ou com a sua empresa, navegar entre os produtos/serviços em menus simples enviados pelo chatbot, adicionar esses produtos/serviços no carrinho de compras, e num determinado ponto do chat, um link exclusivo é enviado para o cliente preencher os dados do cartão de crédito. No final, a análise é devolvida para o Whatsapp no qual a conversa foi iniciada. Inscreva-se.

Hoje vou falar de uma coisa bem legal, que é a possibilidade de criar nossas aplicações com estilização Dark e Light. Para isso iremos utilizar a lib styled-components e você verá como é fácil.

Para este artigo, vou partir do pressuposto que você já tenha um projeto ReactJs recém criado, ok? Se não tiver, criei um antes de continuar.

Há, não se esqueça de instalar a lib styled-components.

yarn add styled-components

Criando os Temas

A primeira coisa que vamos fazer é criar os temas, neste caso eu criei dois, o tema escuro e o claro.

Para que tudo funcione bem, é importante que as variáveis de cor dos dois temas tenham os mesmos nomes.

Pare isso, usei uma pasta styles e o arquivo theme.js

// styles/theme.js
export const lightTheme =
background: ‘#EBF4F8’,
titles: ‘#2C2738’,
text: ‘#2C2738’,
accent: ‘#0880AE’,

export const darkTheme =
background: ‘#1C2025’,
titles: ‘#D6E1DF’,
text: ‘#D6E1DF’,
accent: ‘#8A85FF’,

Estilizando com o Tema

Após criar o tema é hora de estilizar nossa aplicação utilizando as cores dos temas. Dentro da mesma pasta styles eu criei o arquivo globalStyles.js.

// styles/globalStyles.js
import createGlobalStyle from ‘styled-components’

export default createGlobalStyle`
*
box-sizing: border-box;
margin: 0;
outline: 0;
transition: 0.1s;

.container
margin: auto;
width: 50%;
padding: 10px;
text-align: center;

body
background: $(props) => props.theme.background;
color: $props => props.theme.text;

h1
color: $props => props.theme.titles;

.accent
background-color: $props => props.theme.accent;
color: $props => props.theme.text;
height: 30px;

`

Para fins didáticos, toda a estilização da minha aplicação ficou no arquivo global. Mas você vai poder estilizar seus componentes criados com styled-components usando a propriedade theme. Veja o exemplo abaixo:

export const Text = styled.divfont-size: 14px;
font-weight: 500;
color: $( theme ) => theme.text;
;

No exemplo acima foi criado uma div para exibir um texto e utilizado a cor vinda do tema atual da aplicação.

Configurando o tema na aplicação

Agora que já temos nossos dois temas criados e já estilizamos nossos componentes com ele é hora de aplicar o tema e descobrir como trocar de tema.

O grande protagonista aqui é ThemeProvider do styled-components. Esse cara é o responsável por fornecer a variável theme para toda nossa aplicação. E foi a partir dessa variável theme que utilizamos as cores.

Basta então passarmos para o ThemeProvider na propriedade theme um dos dois temas que criamos no arquivo theme.js. Eu coloquei um botão para gente fazer a troca de tema em tempo real e ver o efeito massa disso funcionando.

 

Então no nosso App.js ficou assim:

import React, useState from ‘react’
import ThemeProvider from ‘styled-components’
import lightTheme, darkTheme from ‘./styles/theme’
import GlobalStyles from ‘./styles/globalStyles’

function App ()
const [isDarkTheme, setIsDarkTheme] = useState(false)

return (
<ThemeProvider theme=isDarkTheme ? darkTheme : lightTheme>
<div className=”container”>
<GlobalStyles />
<h1>Dark Theme</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat.
</p>
<button className=”accent”
onClick=() => setIsDarkTheme(!isDarkTheme)>
Trocar Tema
</button>
</div >
</ThemeProvider>
)

export default App;

E é isso! Você já tem uma aplicação tem React com tema escuro e claro. 😦

Se desejar, aqui está o repositório deste projeto lá no Github.

Concluindo

Neste artigo mostrei como criar uma aplicação com mais de um tema utilizando o ThemeProvider do styled-components.

Gostou? então compartilha…😎

Forte abraço e até o próximo post.

 

LEIA TAMBÉM:

Facebook
LinkedIn
Twitter
Pinterest
Reddit
Telegram
WhatsApp
Email
Print

Relacionados

Deixe uma resposta