Compare commits
2 commits
main
...
plans/plan
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67f32b5602 | ||
|
|
a114277a83 |
4 changed files with 351 additions and 0 deletions
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
263
docs/plans/home-campanha-sem-carrossel-desktop-ui-draft.html
Normal file
263
docs/plans/home-campanha-sem-carrossel-desktop-ui-draft.html
Normal file
|
|
@ -0,0 +1,263 @@
|
|||
<!doctype html>
|
||||
<html lang="pt-BR">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
|
||||
<title>UI draft — Home de campanha sem carrossel no desktop</title>
|
||||
</head>
|
||||
<body class="bg-zinc-950 text-zinc-100 antialiased">
|
||||
<main class="mx-auto max-w-6xl p-8">
|
||||
<p class="max-w-3xl text-sm text-zinc-400">
|
||||
Visitante da home pública de campanha (jorgesolla1313) em desktop. As seções "Por que essa
|
||||
eleição importa" (3 cards) e "Nossa caminhada" (6 cards) deixam de ser carrossel no desktop:
|
||||
todo o conteúdo fica visível de uma vez. Mobile (~390px) mantém o carrossel atual.
|
||||
</p>
|
||||
|
||||
<!-- ============ CENA: desktop ============ -->
|
||||
<section data-shot="desktop" class="mt-8 rounded-2xl bg-white p-8 text-zinc-900 shadow-xl">
|
||||
<p class="mb-6 text-center text-xs font-bold tracking-widest text-zinc-500 uppercase">
|
||||
Desktop ≥ 1024px — conteúdo inteiro visível, sem carrossel
|
||||
</p>
|
||||
|
||||
<!-- ===== SEÇÃO: Por que essa eleição importa ===== -->
|
||||
<div class="rounded-xl bg-zinc-900 px-8 pt-7 pb-8 text-white">
|
||||
<p class="text-[11px] font-extrabold tracking-[0.14em] text-zinc-400 uppercase">
|
||||
Por que essa eleição importa
|
||||
</p>
|
||||
<h2 class="mt-3 max-w-[616px] text-2xl leading-tight font-extrabold">
|
||||
Eleger deputado é coisa séria<br /><span class="text-zinc-300"
|
||||
>O Congresso tem nas mãos vidas reais e o SUS</span
|
||||
>
|
||||
</h2>
|
||||
<p class="mt-3 max-w-[716px] text-sm leading-relaxed text-zinc-300">
|
||||
É no Congresso que se define o orçamento do SUS, o piso da enfermagem, a recompra de
|
||||
Mataripe e o fim da escala 6×1. Reeleger Lula não basta: é preciso eleger uma bancada
|
||||
aliada.
|
||||
</p>
|
||||
|
||||
<!-- 3 cards lado a lado -->
|
||||
<div class="mt-7 flex gap-[21px]">
|
||||
<!-- card 1 -->
|
||||
<div class="w-[355px] overflow-hidden rounded-[10px] bg-zinc-800">
|
||||
<div
|
||||
class="flex h-[280px] items-center justify-center bg-zinc-600 text-xs font-semibold text-zinc-300"
|
||||
>
|
||||
foto (fundo.avif)
|
||||
</div>
|
||||
<div class="p-4">
|
||||
<h3 class="text-[15px] leading-snug font-bold">Pelo fim da escala 6x1!</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-400">
|
||||
Jornadas longas aumentam o risco de AVC e infarto. Descanso é saúde pública…
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- card 2 -->
|
||||
<div class="w-[355px] overflow-hidden rounded-[10px] bg-zinc-800">
|
||||
<div
|
||||
class="flex h-[280px] items-center justify-center bg-zinc-600 text-xs font-semibold text-zinc-300"
|
||||
>
|
||||
foto (53569851134_02afc18fb4_o.avif)
|
||||
</div>
|
||||
<div class="p-4">
|
||||
<h3 class="text-[15px] leading-snug font-bold">Pra valorizar o SUS</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-400">
|
||||
O SUS é o sistema de saúde de todo brasileiro. Com Lula, a saúde voltou a receber
|
||||
recursos…
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- card 3 -->
|
||||
<div class="w-[355px] overflow-hidden rounded-[10px] bg-zinc-800">
|
||||
<div
|
||||
class="flex h-[280px] items-center justify-center bg-zinc-600 text-xs font-semibold text-zinc-300"
|
||||
>
|
||||
foto (52396285023_561ffc0ff6_o.avif)
|
||||
</div>
|
||||
<div class="p-4">
|
||||
<h3 class="text-[15px] leading-snug font-bold">Pra defender os baianos</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-400">
|
||||
A Refinaria de Mataripe foi vendida no governo Bolsonaro e segue nas mãos de
|
||||
estrangeiros…
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="h-6" aria-hidden="true"></div>
|
||||
|
||||
<!-- ===== SEÇÃO: Nossa caminhada ===== -->
|
||||
<div class="rounded-xl bg-zinc-100 px-8 pt-7 pb-8 text-zinc-900">
|
||||
<p class="text-[11px] font-extrabold tracking-[0.14em] text-red-700 uppercase">
|
||||
Nossa caminhada
|
||||
</p>
|
||||
<h2 class="mt-3 max-w-[664px] text-2xl leading-tight font-extrabold">
|
||||
Junto com o trabalhador e<br /><span class="text-red-700"
|
||||
>do lado de quem mais precisa, sempre.</span
|
||||
>
|
||||
</h2>
|
||||
<p class="mt-3 max-w-[730px] text-sm leading-relaxed text-zinc-500">
|
||||
Não é promessa de palanque, é a experiência de quem já fez na gestão do SUS, do
|
||||
Ministério da Saúde e da saúde da Bahia.
|
||||
</p>
|
||||
|
||||
<!-- sem chips: grade 3 colunas x 2 linhas -->
|
||||
<div class="mt-7 grid grid-cols-3 gap-[14px]">
|
||||
<div class="rounded-[10px] bg-white p-4">
|
||||
<h3 class="text-sm leading-snug font-bold">Defender o SUS e valorizar quem cuida</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-500">
|
||||
Saúde é direito, não mercadoria. Fim do subfinanciamento, piso da enfermagem e dos
|
||||
agentes pagos…
|
||||
</p>
|
||||
</div>
|
||||
<div class="rounded-[10px] bg-white p-4">
|
||||
<h3 class="text-sm leading-snug font-bold">Fim da escala 6×1 e jornada de 40h</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-500">
|
||||
Sem redução de salário. Jornada longa é questão de saúde pública: quem trabalha
|
||||
demais adoece…
|
||||
</p>
|
||||
</div>
|
||||
<div class="rounded-[10px] bg-white p-4">
|
||||
<h3 class="text-sm leading-snug font-bold">
|
||||
Educação em tempo integral e federais no interior
|
||||
</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-500">
|
||||
IFs, campus federal, escola de tempo integral: o interior não pode ficar para trás…
|
||||
</p>
|
||||
</div>
|
||||
<div class="rounded-[10px] bg-white p-4">
|
||||
<h3 class="text-sm leading-snug font-bold">Recomprar a Refinaria de Mataripe</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-500">
|
||||
Recomprar a refinaria é defender a Bahia e a soberania do Brasil. Preço justo de
|
||||
combustível…
|
||||
</p>
|
||||
</div>
|
||||
<div class="rounded-[10px] bg-white p-4">
|
||||
<h3 class="text-sm leading-snug font-bold">
|
||||
Salário mínimo forte, emprego e moradia
|
||||
</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-500">
|
||||
Valorização do mínimo, Bolsa Família, Minha Casa Minha Vida e agricultura familiar
|
||||
como motor…
|
||||
</p>
|
||||
</div>
|
||||
<div class="rounded-[10px] bg-white p-4">
|
||||
<h3 class="text-sm leading-snug font-bold">Defesa intransigente da democracia</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-500">
|
||||
Participação popular, instituições fortes e combate à desinformação. Eleger o
|
||||
parlamento é coisa séria…
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============ CENA: mobile (referência — carrossel mantido) ============ -->
|
||||
<section
|
||||
data-shot="mobile"
|
||||
class="mt-8 w-[390px] rounded-2xl bg-zinc-900 p-8 text-white shadow-xl"
|
||||
>
|
||||
<p class="mb-6 text-center text-[11px] font-bold tracking-widest text-zinc-500 uppercase">
|
||||
Mobile ~390px — carrossel atual preservado (referência)
|
||||
</p>
|
||||
|
||||
<!-- problema: 1 card por tela + dots -->
|
||||
<div class="rounded-xl bg-zinc-950 p-5">
|
||||
<p class="text-[10px] font-extrabold tracking-[0.14em] text-zinc-400 uppercase">
|
||||
Por que essa eleição importa
|
||||
</p>
|
||||
<h2 class="mt-2 text-lg leading-tight font-extrabold">
|
||||
Eleger deputado é coisa séria<br /><span class="text-zinc-300"
|
||||
>O Congresso tem nas mãos vidas reais e o SUS</span
|
||||
>
|
||||
</h2>
|
||||
<p class="mt-2 text-xs leading-relaxed text-zinc-400">
|
||||
É no Congresso que se define o orçamento do SUS, o piso da enfermagem, a recompra de
|
||||
Mataripe e o fim da escala 6×1…
|
||||
</p>
|
||||
<div class="mt-4 w-[355px] max-w-full overflow-hidden rounded-[10px] bg-zinc-800">
|
||||
<div
|
||||
class="flex h-[240px] items-center justify-center bg-zinc-600 text-xs font-semibold text-zinc-300"
|
||||
>
|
||||
foto (fundo.avif)
|
||||
</div>
|
||||
<div class="p-4">
|
||||
<h3 class="text-[15px] leading-snug font-bold">Pelo fim da escala 6x1!</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-400">
|
||||
Jornadas longas aumentam o risco de AVC e infarto…
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dots -->
|
||||
<div class="mt-3 flex items-center justify-center gap-1.5" aria-hidden="true">
|
||||
<span class="h-1.5 w-6 rounded-full bg-zinc-300"></span>
|
||||
<span class="h-1.5 w-1.5 rounded-full bg-zinc-600"></span>
|
||||
<span class="h-1.5 w-1.5 rounded-full bg-zinc-600"></span>
|
||||
</div>
|
||||
<p class="mt-2 text-center text-[10px] text-zinc-500">1 de 3 · auto-avanço ~4s</p>
|
||||
</div>
|
||||
|
||||
<div class="h-5" aria-hidden="true"></div>
|
||||
|
||||
<!-- bandeiras: chips + 1 card por tela -->
|
||||
<div class="rounded-xl bg-zinc-100 p-5 text-zinc-900">
|
||||
<p class="text-[10px] font-extrabold tracking-[0.14em] text-red-700 uppercase">
|
||||
Nossa caminhada
|
||||
</p>
|
||||
<h2 class="mt-2 text-lg leading-tight font-extrabold">
|
||||
Junto com o trabalhador e<br /><span class="text-red-700"
|
||||
>do lado de quem mais precisa, sempre.</span
|
||||
>
|
||||
</h2>
|
||||
<p class="mt-2 text-xs leading-relaxed text-zinc-500">
|
||||
Não é promessa de palanque, é a experiência de quem já fez na gestão do SUS…
|
||||
</p>
|
||||
<!-- chips -->
|
||||
<div class="mt-4 flex gap-1.5 overflow-hidden" aria-hidden="true">
|
||||
<span
|
||||
class="rounded-full bg-zinc-800 px-3 py-1.5 text-[10px] font-bold text-white uppercase"
|
||||
>
|
||||
Saúde
|
||||
</span>
|
||||
<span
|
||||
class="rounded-full bg-zinc-300 px-3 py-1.5 text-[10px] font-bold text-zinc-500 uppercase"
|
||||
>
|
||||
Educação
|
||||
</span>
|
||||
<span
|
||||
class="rounded-full bg-zinc-300 px-3 py-1.5 text-[10px] font-bold text-zinc-500 uppercase"
|
||||
>
|
||||
Renda
|
||||
</span>
|
||||
<span
|
||||
class="rounded-full bg-zinc-300 px-3 py-1.5 text-[10px] font-bold text-zinc-500 uppercase"
|
||||
>
|
||||
Democracia
|
||||
</span>
|
||||
<span
|
||||
class="rounded-full bg-zinc-300 px-3 py-1.5 text-[10px] font-bold text-zinc-500 uppercase"
|
||||
>
|
||||
Bahia
|
||||
</span>
|
||||
<span
|
||||
class="rounded-full bg-zinc-300 px-3 py-1.5 text-[10px] font-bold text-zinc-500 uppercase"
|
||||
>
|
||||
Trabalho
|
||||
</span>
|
||||
</div>
|
||||
<div class="mt-3 rounded-[10px] bg-white p-4">
|
||||
<h3 class="text-sm leading-snug font-bold">Defender o SUS e valorizar quem cuida</h3>
|
||||
<p class="mt-1.5 text-xs leading-relaxed text-zinc-500">
|
||||
Saúde é direito, não mercadoria. Fim do subfinanciamento, piso da enfermagem e dos
|
||||
agentes pagos, concursos públicos, vacinação e ciência.
|
||||
</p>
|
||||
</div>
|
||||
<p class="mt-2 text-center text-[10px] text-zinc-500">
|
||||
1 de 6 · deslize para ver as próximas
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
88
docs/plans/home-campanha-sem-carrossel-desktop.md
Normal file
88
docs/plans/home-campanha-sem-carrossel-desktop.md
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
# Home de campanha sem carrossel no desktop — "Por que essa eleição importa" + "Nossa caminhada" (S6)
|
||||
|
||||
Status: registrado
|
||||
Atualizado em: 2026-08-18
|
||||
Issue: #34
|
||||
Priority: P2
|
||||
Model: composer-2.5
|
||||
Impeccable: B — mudança de layout em duas seções visíveis da home pública de campanha
|
||||
Rascunho UI: docs/plans/home-campanha-sem-carrossel-desktop-ui-draft.html + PNGs embutidos abaixo
|
||||
Appetite: ~0,5–1 dia eng; só layout responsivo, sem dados novos
|
||||
Responsável: —
|
||||
|
||||
## Intenção
|
||||
|
||||
As duas seções centrais de mensagem da home pública (jorgesolla1313.com.br) rodam carrossel em **todas** as larguras, com auto-avanço (~4s). No desktop o conteúdo inteiro cabe na página — não há motivo para o carrossel ativo: ele esconde cards, impõe ritmo de leitura e move a tela sozinho. Quem visita em desktop (imprensa, parceiros, eleitor no computador) deve ver toda a mensagem de uma vez: os 3 cards de "Por que essa eleição importa" lado a lado e os 6 cards de "Nossa caminhada" em grade 3 colunas × 2 linhas. O mobile (maioria do tráfego, onde o carrossel faz sentido) fica exatamente como está.
|
||||
|
||||
## Persona e fluxo
|
||||
|
||||
- **Persona / contexto:** visitante em desktop (imprensa, parceiros, eleitor no computador) rolando a home de campanha; lê com calma e não tem o gesto de swipe do mobile.
|
||||
- **Job principal:** entender os argumentos da campanha sem esperar o auto-avanço nem perder cards ocultos.
|
||||
- **Fluxo desejado:** rola a home → seção "Por que essa eleição importa" mostra os 3 cards inteiros → continua → seção "Nossa caminhada" mostra as 6 bandeiras em grade → lê tudo no seu ritmo.
|
||||
- **Anti-goals de produto:** o mobile NÃO muda (carrossel segue); a seção "Acompanhe de perto" (S1, já em bento no desktop) NÃO é tocada; nada de redesenho de cards/copy/imagens.
|
||||
|
||||
### Rascunho UI (B)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Fonte iterável: [`home-campanha-sem-carrossel-desktop-ui-draft.html`](home-campanha-sem-carrossel-desktop-ui-draft.html).
|
||||
|
||||
## Objetivo e aceite
|
||||
|
||||
- Desktop (≥1024px): "Por que essa eleição importa" mostra os **3 cards lado a lado**, todos visíveis, sem auto-avanço, sem rolagem oculta e sem indicadores de carrossel.
|
||||
- Desktop (≥1024px): "Nossa caminhada" mostra os **6 cards em grade 3 colunas × 2 linhas**, sem auto-avanço; os chips de navegação não aparecem no desktop (ver questões em aberto).
|
||||
- Mobile (<1024px): comportamento atual 100% preservado (carrossel 1 card por tela, auto-avanço ~4s com pausa em hover/foco/toque, chips sincronizados, swipe).
|
||||
- Mesma copy, mesmas imagens, mesma ordem de cards; nenhuma mudança de conteúdo.
|
||||
- As seções continuam sem sobreposição e com respiro (alturas recalibradas para o conteúdo inteiro visível).
|
||||
- Acessibilidade: no desktop, nada de foco em elemento inativo de carrossel; a leitura não é interrompida por movimento.
|
||||
- Zero mudança de schema/migration/Consent; zero dados novos.
|
||||
|
||||
## Dados (intenção)
|
||||
|
||||
- **Vou apresentar dados?** Não — só layout de conteúdo já existente (cards estáticos).
|
||||
- **Decisões desbloqueadas:** nenhuma nova (a pessoa lê os cards no próprio ritmo).
|
||||
- **Forma:** _adiada ao plano de implementação_ — restrição de produto: sem contadores, sem elementos novos.
|
||||
|
||||
## Direção no codebase (hipótese)
|
||||
|
||||
- **Áreas prováveis:** `src/app/(frontend)/(home)/page.tsx` (seções `problem` e `flags`, itens `problemItems`/`flagItems`); `src/components/CampaignCarousel.tsx` (componente compartilhado das duas seções — como o desktop deixa de ser carrossel fica a critério de quem executa: variante estática em `lg` ou estado desativado no desktop); bloco `[data-theme='campaign-site']` de `src/app/(frontend)/styles.css` (alturas fixas das seções, posicionamento absoluto de eyebrow/título/copy/carrossel, insets e gaps do track).
|
||||
- **Precedente a olhar:** `docs/plans/secao-conteudos-home-artigos.md`/`-impl.md` (S1 — a seção "Acompanhe de perto" já resolveu bento no desktop + carrossel no mobile, com `CampaignContentCarousel`, módulo separado); e2e `tests/e2e/frontend.e2e.spec.ts` (o teste de auto-avanço/controles hoje roda em viewport desktop — precisa virar asserção de grade estática no desktop e/ou migrar o teste de carrossel para viewport mobile); unit `tests/unit/campaignCarousel.unit.spec.tsx` (comportamento mobile do componente permanece).
|
||||
- **Risco de acoplamento:** as duas seções usam altura fixa com elementos posicionados em absoluto (eyebrow/título/copy/carrossel em `top:` com `clamp`) — a troca para grade exige recalibrar as alturas para o conteúdo inteiro visível; a seção S1 usa `CampaignContentCarousel` (módulo próprio) e não é afetada.
|
||||
|
||||
## Dependências
|
||||
|
||||
- Nenhuma.
|
||||
- Soft: `docs/plans/secao-conteudos-home-artigos.md` (S1) — referência de como a home já resolveu "bento no desktop + carrossel no mobile".
|
||||
|
||||
## Fora de escopo
|
||||
|
||||
- Mudar o comportamento mobile (carrossel preservado).
|
||||
- Redesenhar cards, copy, imagens, cores ou espaçamento interno das seções — só a disposição (grade) e os elementos de carrossel.
|
||||
- Remover o carrossel da seção "Acompanhe de perto" (S1 já é bento no desktop).
|
||||
- Layout dedicado novo para tablets (segue carrossel abaixo de 1024px, como hoje).
|
||||
- Qualquer outra seção da home ou do site.
|
||||
|
||||
## Rabbit holes de produto
|
||||
|
||||
- **Redesenho dos cards de bandeira no desktop.** Se alguém "só completar": entra foto/ícone/cor por bandeira, reescreve copy, e o item vira redesign de seção. **Corte neste item:** mantém o card atual (título + corpo) só mudando a disposição para grade 3×2.
|
||||
- **Ajustes de respiro em outras seções.** Se alguém "só completar": recalibra hero, prova social e S1 junto. **Corte:** só as alturas das duas seções afetadas, o mínimo para a grade caber.
|
||||
- **"Melhorar" o carrossel no meio do caminho.** Se alguém "só completar": troca o comportamento mobile junto. **Corte:** mobile é intocável neste item.
|
||||
|
||||
## Questões em aberto (produto)
|
||||
|
||||
- **Chips de "Nossa caminhada" no desktop?** **Opções:** A) somem no desktop (a grade estática é a navegação; chip é chrome de carrossel) | B) ficam como rótulos estáticos não-clicáveis acima da grade | C) viram âncoras para a própria seção. **Recomendação:** A — na grade, chips não têm função e pareceriam clicáveis sem efeito. _(assumido — A, validar no gate)_
|
||||
- **Proporção dos cards de bandeira no desktop?** **Opções:** A) grade 3×2 com cards preenchendo a coluna (~374px de largura, altura definida pelo conteúdo com respiro — rascunho acima) | B) manter o card horizontal baixo atual (~327×100) forçando 3 colunas estreitas. **Recomendação:** A — o card baixo existe porque o carrossel empilha; na grade, título + corpo respiram melhor. _(assumido — A, validar no gate)_
|
||||
- **Breakpoint da grade?** **Opções:** A) `lg` (1024px, o mesmo do carrossel atual) | B) outro valor. **Recomendação:** A — manter o breakpoint que já governa as larguras dos cards. _(assumido — A)_
|
||||
- **Nome da seção dos 6 cards.** O pedido chama de "Nossa campanha"; no site a seção se chama **"Nossa caminhada"** (eyebrow, mesma que usa o carrossel de 6 cards). Confirmar que é esta — assumido que sim, dada a grade 3×2.
|
||||
|
||||
## Referências
|
||||
|
||||
- GitHub Issue #34
|
||||
- Rascunho UI (gate): `docs/plans/home-campanha-sem-carrossel-desktop-ui-draft.html` + PNGs acima
|
||||
- `src/app/(frontend)/(home)/page.tsx` — seções `problem` (3 cards) e `flags` (6 cards)
|
||||
- `src/components/CampaignCarousel.tsx` — componente carrossel das duas seções (variants `problem`/`flags`)
|
||||
- `src/app/(frontend)/styles.css` — alturas/posicionamento das seções, insets/gaps do track
|
||||
- `tests/e2e/frontend.e2e.spec.ts` — testes de auto-avanço/controles (hoje em viewport desktop)
|
||||
- `docs/plans/secao-conteudos-home-artigos.md` (S1) — precedente bento desktop + carrossel mobile
|
||||
Loading…
Reference in a new issue