Aula 14 – Estilização Moderna 🎨
Uma aplicação excelente não apenas funciona bem, mas também é agradável de usar. No Vue.js, temos várias formas de gerenciar estilos de forma organizada.
🔐 Scoped CSS
Como já vimos, o atributo scoped garante que o CSS de um componente não "vaze" para os outros. O Vue faz isso adicionando um atributo único (ex: data-v-123) ao HTML e ao CSS durante o build.
📦 CSS Modules
Uma alternativa ao Scoped CSS, onde as classes se tornam objetos JavaScript.
<template>
<h1 :class="$style.titulo">Olá Mundo</h1>
</template>
<style module>
.titulo { color: red; }
</style>
🌊 Introdução ao Tailwind CSS
O Tailwind é um framework "utility-first" que permite estilizar sua aplicação sem sair do HTML. Ele é extremamente popular no ecossistema Vue.
Por que usar?
- Velocidade: Não precisa inventar nomes de classes.
- Consistência: Sistema de design pré-definido.
- Responsividade: Prefixos simples como
md:,lg:.
Exemplo:
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
Botão Tailwind
</button>
📱 Responsividade no Vue
graph LR
A[Layout Único] --> B{Breakpoints}
B -- "sm (mobile)" --> C[Coluna Única]
B -- "md (tablet)" --> D[Duas Colunas]
B -- "lg (desktop)" --> E[Grid Complexo]
🧠 Dicas de UX
Feedback Visual
Sempre adicione estados de :hover, :active e :disabled aos seus botões e links. Isso faz a aplicação parecer "viva".
Transições
O Vue oferece o componente <Transition> para animar a entrada e saída de elementos (ex: ao usar v-if).
💻 Prática Sugerida
- Adicione o Tailwind ao seu projeto:
npx tailwindcss init -p. - Estilize seu "Task Manager" da Aula 08 usando apenas classes utilitárias do Tailwind.
📝 Exercício
- Qual a diferença entre Scoped CSS e CSS Modules?
- Como o Tailwind ajuda na manutenção a longo prazo de grandes aplicações?
- Crie um componente que mude de cor de fundo dependendo de uma variável reativa
isError.
🚀 Próxima Aula: Vamos preparar nosso app para o mundo real com Build e Deploy!