Estilização Moderna 🎨
Aula 14 - CSS no Ecossistema Vue.js
🎨 O Desafio do CSS no Frontend
- Conflitos de nomes (Global Scope)
- Dificuldade em manter temas (Light/Dark)
- Arquivos gigantes e difíceis de ler
🛡️ O Salvador: CSS Scoped
- O Vue gera um atributo único (data-v-xxxx) - O estilo NUNCA vaza para fora do componente - Segurança total para o desenvolvedor 🌊 CSS Global vs Scoped
- Use arquivos
.cssglobais apenas para: - Resets (Normalize)
- Variáveis de cores principais
- Fontes e Tipografia básica
⚡ Tailwind CSS
- Abordagem Baseada em Utilitários
- Você estiliza sem sair do HTML
- Combina perfeitamente com a componentização do Vue
🚀 Por que Tailwind?
- Não precisa inventar nomes de classes (
.container-inner-wrapper-v2) - Menos arquivos CSS para gerenciar
- Design System pronto e consistente
🧠 CSS Reativo (v-bind no Style)
- O Vue 3 permite usar variáveis JS no CSS!
🎭 Classes Dinâmicas (:class)
- Alternar estilos com base no estado:
- Muito mais limpo que fazer
if/elseno template
📦 Bibliotecas de Componentes (UI Frameworks)
- Não reinvente a roda!
- Vuetify / Element Plus / PrimeVue / Shadcn-vue
- Oferecem botões, modais e tabelas prontas e acessíveis
🖼️ Ícones Inteligentes
- Fuja de fontes de ícones pesadas!
- Use ícones como SVG
- Bibliotecas como Iconify permitem importar apenas o ícone que você usa
📊 Fluxo de Estilização Profissional
graph LR
HTML[SFC Template] --> TW[Tailwind Classes]
HTML --> Scoped[Scoped CSS]
TW --> PostCSS[Processamento Build]
Scoped --> PostCSS
PostCSS --> Minified[CSS Pequeno e Rápido] 🌓 Dark Mode Prático
- Use classes de utilitário (
dark:bg-black) - Salve a preferência do usuário no LocalStorage
- Otimize imagens para ambos os modos
📱 Responsividade de Componente
- Um componente deve saber se adaptar
- Use Media Queries dentro do
style scoped - Pense no "Mobile First"
🏗️ Desafio da Aula
- Estilizar um formulário usando Tailwind CSS
- Implementar uma barra de progresso que muda de cor (verde para vermelho) conforme o valor via
v-bindno style - Criar um botão com hover animado
🏁 Resumo
scopedevita conflitosv-bind()une JS e CSS- Tailwind e UI Frameworks aceleram o trabalho
🏁 Dúvidas?
Vejam como o site fica lindo! Próxima aula: Build, Deploy e Produção.