feat: features 025-032 - favoritos, contatos, trabalhe-conosco, area-cliente, navbar, hero-light-dark, performance-homepage
Some checks failed
CI/CD → Deploy via SSH / Build & Push Docker Images (push) Successful in 1m0s
CI/CD → Deploy via SSH / Deploy via SSH (push) Successful in 4m35s
CI/CD → Deploy via SSH / Validate HTTPS & Endpoints (push) Failing after 46s

- feat(025): favoritos locais com FavoritesContext, HeartButton, PublicFavoritesPage
- feat(026): central de contatos admin (leads/contatos unificados)
- feat(027): configuração da página de contato via admin
- feat(028): trabalhe conosco - candidaturas com upload e admin
- feat(029): UX área do cliente - visitas, comparação, perfil
- feat(030): navbar UX - menu mobile, ThemeToggle, useFavorites
- feat(031): hero light/dark - imagens separadas por tema, upload, preview, seed
- feat(032): performance homepage - Promise.all parallel fetches, sessionStorage cache,
  preload hero image, loading=lazy nos cards, useInView hook, will-change carrossel,
  keyframes em index.css, AgentsCarousel e HomeScrollScene via props
- fix: light mode HomeScrollScene - gradiente, cores de texto, scroll hint

migrations: g1h2i3j4k5l6 (source em leads), h1i2j3k4l5m6 (contact_config),
            i1j2k3l4m5n6 (job_applications), j2k3l4m5n6o7 (hero theme images)
This commit is contained in:
MatheusAlves96 2026-04-22 22:35:17 -03:00
parent 6ef5a7a17e
commit cf5603243c
106 changed files with 11927 additions and 1367 deletions

View file

@ -0,0 +1,105 @@
# Quickstart — 030-navbar-topo-ux
Guia curto para implementar e validar a revisão UX/UI da navbar do topo.
---
## Pré-requisitos
- Ambiente do projeto iniciado via `./start.ps1` na raiz.
- Frontend disponível em `http://localhost:5174`.
- Branch de trabalho: `030-navbar-topo-ux`.
Credenciais úteis encontradas no frontend atual:
- Admin: `admin@demo.com` / `admin1234`
- Usuário: `usuario@demo.com` / `demo1234`
---
## Superfícies de implementação
Arquivos com maior probabilidade de edição:
- `frontend/src/components/Navbar.tsx`
- `frontend/src/contexts/AuthContext.tsx`
- `frontend/src/index.css`
- Opcionalmente `frontend/src/layouts/ClientLayout.tsx` e `frontend/src/layouts/AdminLayout.tsx` se houver ajuste fino de offset/spacing
---
## Ordem recomendada de trabalho
### 1. Revisar a arquitetura local da navbar
- Mapear os grupos de links públicos, cliente e admin.
- Definir o modelo de estado único para overlays/contextos abertos.
- Garantir fechamento em clique fora, troca de rota e logout.
### 2. Ajustar a hierarquia visual desktop
- Reequilibrar logo, links primários, CTA e ações de conta.
- Limitar ruído visual e reforçar separação entre navegação pública e contextual.
- Validar truncamento do nome e destaque do CTA em ambos os temas.
### 3. Ajustar o comportamento mobile
- Garantir ordem lógica dos destinos no menu hambúrguer.
- Exibir seções `Minha Conta` e `Admin` apenas para os perfis corretos.
- Validar alvo de toque, foco e estados abertos/fechados.
### 4. Refinar logout e previsibilidade
- Conferir se logout fecha menus e retorna imediatamente ao estado visual de visitante.
- Se necessário, ajustar o comportamento atual de redirecionamento em `AuthContext.tsx` para evitar fricção visual desnecessária.
---
## Validação executável
Na pasta `frontend/`:
```bash
npm run build
```
Esse é o guardrail mínimo obrigatório antes de concluir a implementação.
---
## Checklist manual por persona
### Visitante
- Desktop: links principais legíveis, CTA `Anunciar imóvel` destacado e ação `Entrar` visível.
- Mobile: hambúrguer abre e fecha corretamente, com os mesmos destinos públicos em ordem lógica.
- Tema claro/escuro: contraste suficiente em texto, hover e estado ativo.
### Usuário autenticado
- Desktop: avatar/inicial, primeiro nome truncado e dropdown `Minha conta` funcionam.
- Dropdown: `Favoritos`, `Comparar`, `Visitas`, `Minha conta` e `Sair` fecham menu após clique.
- Mobile: seção `Minha Conta` aparece apenas quando autenticado não-admin.
### Admin
- Desktop: gatilho `Admin` visível e separado da navegação pública.
- Dropdown: atalhos admin navegam corretamente e fecham o menu.
- Mobile: seção `Admin` aparece e não conflita com outros contextos.
---
## Checklist de comportamento global
- Abrir dropdown admin fecha dropdown cliente.
- Abrir dropdown cliente fecha dropdown admin.
- Trocar de rota fecha menu mobile e dropdowns.
- Clique fora fecha o contexto aberto.
- `Tab`, `Enter` e `Espaço` funcionam nos gatilhos relevantes.
- Em 320 px, 768 px, 1024 px e 1280 px não há quebra ou sobreposição.
---
## Risco conhecido para implementação
O comportamento atual de logout em `AuthContext.tsx` usa redirecionamento forçado para `/login`. Isso é funcional, mas pode entrar em tensão com o objetivo da spec de “retornar à navbar de visitante” com mínima fricção visual. A implementação deve decidir se mantém esse fluxo por regra de produto ou se o suaviza no frontend sem alterar segurança.