🚀 Capítulo 06: Estilos - Camuflagem
🎯 Objetivo da Aula
Ao final desta aula, você saberá como aplicar estilos dinâmicos no Vue.js usando a ligação de classes (:class) e entenderá a importância do estilo escopado (<style scoped>).
🏢 O Cenário Prático (Seu Desafio)
A sua nave precisa entrar em Modo Furtivo! Seu desafio hoje é criar um botão que, ao ser clicado, muda a classe CSS da nave para deixá-la invisível (camuflada), alterando a cor de fundo do painel!
🧠 Fundamentos: A Teoria Traduzida
1. Estilo Escopado (scoped)
Como vimos no Capítulo 2, colocar a palavra scoped na tag de estilo garante que aquele CSS só funcione dentro daquele arquivo. Isso evita que você mude a cor de um botão em uma tela e acabe mudando em todo o site sem querer.
2. Classes Dinâmicas (:class)
No HTML comum, a classe é fixa: class="ativo". No Vue, podemos usar o : (v-bind) para dizer que a classe depende de uma variável reativa!
- Sintaxe com Objeto:
:class="{ 'nome-da-classe': variavelBooleana }"- Se
variavelBooleanafortrue, a classe é aplicada. Se forfalse, ela é removida.
- Se
📖 Exemplo Guiado: Modo Furtivo
Vamos criar a camuflagem da nave.
🛠️ Passo a Passo
Abra o arquivo src/App.vue e altere o código:
<template>
<div>
<h1>🛸 Sistema de Camuflagem</h1>
<!-- A classe 'furtivo' só será aplicada se modoFurtivo for true -->
<div class="nave" :class="{ 'furtivo': modoFurtivo }">
<p>{{ modoFurtivo ? '👻 Modo Furtivo Ativado' : '🔴 Visível no Radar' }}</p>
</div>
<button @click="alternarCamuflagem">
{{ modoFurtivo ? 'Desativar Camuflagem' : 'Ativar Camuflagem' }}
</button>
</div>
</template>
<script setup>
import { ref } from 'vue';
const modoFurtivo = ref(false);
function alternarCamuflagem() {
modoFurtivo.value = !modoFurtivo.value;
}
</script>
<style scoped>
.nave {
padding: 20px;
border: 2px solid #ccc;
text-align: center;
background-color: #f0f0f0;
color: #333;
transition: all 0.5s ease;
}
/* Classe que será aplicada dinamicamente */
.furtivo {
background-color: #1a1a1a;
color: #00ff00;
border-color: #00ff00;
}
</style>🕹️ Como Executar e Testar no VS Code
- Salve e veja o navegador.
- Clique no botão. A caixa mudará de cinza para preto com letras verdes, simulando a camuflagem!
🛠️ Prática Obrigatória 1
Crie uma nova classe no CSS chamada .alerta com fundo vermelho e texto branco. Adicione uma nova variável reativa emPerigo = ref(false) e use o :class para aplicar essa classe quando emPerigo for verdadeiro.
🛠️ Prática Obrigatória 2
Use o :style (estilo inline dinâmico) para mudar o tamanho da fonte do texto baseado em um número (ex: :style="{ fontSize: tamanho + 'px' }").
🔑 Gabarito de Código/Fórmulas
Prática 1:
No <template>:
<div :class="{ 'alerta': emPerigo }">