Projeto 3: Trocador de Cores de Fundo
Crie um botão que, ao ser clicado, muda a cor de fundo da página.
Este projeto é pequeno no tamanho, mas gigante no aprendizado. O Trocador de Cores de Fundo mostra, de forma muito visual, como o JavaScript pode reagir a uma ação do usuário e mudar o que aparece na tela na mesma hora.
Pense assim: o HTML é a parede, o CSS é a tinta, e o JavaScript é a pessoa com o rolo na mão mudando a cor quando alguém pede. Esse é o coração da interatividade na web.
O que você vai praticar neste projeto
Mesmo sendo simples, este projeto reforça vários pilares importantes:
- Seleção de elementos com DOM.
- Escuta de eventos com clique.
- Manipulação de estilo com JavaScript.
- Uso de funções para organizar lógica.
- Uso de arrays para guardar opções de cor.
- Geração de valores aleatórios.
- Atualização de conteúdo textual na interface.
Ideia geral do funcionamento
A lógica pode ser resumida em poucos passos:
- Criar um botão "Trocar cor".
- Criar uma lista de cores possíveis.
- Ao clicar no botão, escolher uma cor da lista.
- Aplicar essa cor no fundo da página.
- Mostrar o nome ou código da cor atual na tela.
Esse fluxo é muito parecido com sistemas maiores: o usuário faz uma ação, o JavaScript processa, e a interface responde.
Exemplo completo (HTML + CSS + JS em um arquivo)
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Trocador de Cores</title>
<style>
body {
margin: 0;
min-height: 100vh;
display: grid;
place-items: center;
font-family: Arial, sans-serif;
transition: background-color 0.3s ease;
background-color: #f4f4f4;
}
.card {
background: white;
padding: 24px;
border-radius: 12px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
text-align: center;
width: 300px;
}
h1 {
margin-top: 0;
font-size: 1.3rem;
color: #222;
}
p {
margin: 12px 0 18px;
color: #444;
}
button {
border: none;
background: #2563eb;
color: white;
padding: 10px 16px;
border-radius: 8px;
cursor: pointer;
font-size: 0.95rem;
}
button:hover {
background: #1e4fc2;
}
</style>
</head>
<body>
<div class="card">
<h1>Trocador de Cores</h1>
<p>Cor atual: <strong id="cor-atual">#f4f4f4</strong></p>
<button id="trocar-cor">Trocar cor</button>
</div>
<script>
const botaoTrocarCor = document.getElementById("trocar-cor");
const textoCorAtual = document.getElementById("cor-atual");
const cores = ["#FF6B6B", "#4ECDC4", "#1A535C", "#FFD166", "#6A4C93", "#F72585", "#4361EE"];
function pegarIndiceAleatorio(max) {
return Math.floor(Math.random() * max);
}
function trocarCorDeFundo() {
const indice = pegarIndiceAleatorio(cores.length);
const novaCor = cores[indice];
document.body.style.backgroundColor = novaCor;
textoCorAtual.textContent = novaCor;
}
botaoTrocarCor.addEventListener("click", trocarCorDeFundo);
</script>
</body>
</html>
Entendendo os conceitos-chave
addEventListener("click", ...): fica "ouvindo" o clique no botão.document.body.style.backgroundColor: altera o estilo diretamente pelo JavaScript.- Array
cores: funciona como uma paleta pronta para usar. Math.random()eMath.floor(): ajudam a escolher uma cor aleatória.- Funções pequenas: deixam o código mais limpo e fácil de evoluir.
Boas práticas aplicadas aqui
- Nomes de variáveis claros.
- Separação da lógica em funções.
- Evitar repetição de código.
- Atualizar interface junto com o estado visual (mostrar cor atual).
Ideias para evoluir o projeto
Depois da versão básica, você pode testar:
- Gerar cor hexadecimal aleatória em vez de usar lista fixa.
- Copiar código da cor com um botão "Copiar".
- Mostrar histórico das últimas cores usadas.
- Bloquear repetição da mesma cor em cliques consecutivos.
- Criar modo automático que troca a cor a cada 1 segundo com
setInterval.
Esse projeto é uma excelente ponte entre fundamentos e criatividade: com poucos comandos, você cria uma experiência interativa completa.