From c2c18b6f0ce43633967767da5606fcb7057c1d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Ign=C3=A1cio=20Fontoura=20Solla?= Date: Sun, 2 Aug 2026 16:10:13 -0300 Subject: [PATCH 1/2] =?UTF-8?q?docs(plans):=20B130=20=E2=80=94=20sidebar?= =?UTF-8?q?=20sem=20logo=20e=20chips=20de=20escopo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Intention plan for removing sidebar logo/header and CampaignScopeBadge chips everywhere in /campanha. Related #271. --- docs/plans/sidebar-sem-logo-escopo.md | 74 +++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 docs/plans/sidebar-sem-logo-escopo.md diff --git a/docs/plans/sidebar-sem-logo-escopo.md b/docs/plans/sidebar-sem-logo-escopo.md new file mode 100644 index 00000000..81fb9ace --- /dev/null +++ b/docs/plans/sidebar-sem-logo-escopo.md @@ -0,0 +1,74 @@ +# Sidebar /campanha — sem logo; chips de escopo fora de /campanha + +Status: rascunho +Atualizado em: 2026-08-02 +Issue: #271 +Priority: P2 +Model: composer-2.5 +Impeccable: B — shell da sidebar + headers de páginas que ainda mostram chip de escopo +Appetite: ~0,5–1 dia eng; remoção de chrome + alinhamento visual +Responsável: — + +## Intenção + +No topo da sidebar de `/campanha`, o logo e o chip de escopo (ícone de olho + papel, ex. “Coordenador Geral”) não ajudam a navegar: o papel já está no perfil/avatar do rodapé, e o logo não informa onde o usuário está. A faixa do logo ainda desalinha a sidebar em relação ao header da área de conteúdo. + +O mesmo chip de escopo (olho + papel/carteira) aparece também em headers de páginas (municípios, apoiadores, …) e repete informação sem desbloquear decisão. Produto decidiu: **sumir com esse chip em qualquer superfície de `/campanha`**, não só na sidebar. + +## Persona e fluxo + +- **Persona / contexto:** staff (coordenador, candidato, assessor) e liderança na shell diária — mesa ou mobile Sheet. +- **Job principal:** navegar e ler a página sem chrome de escopo/papel; entrar na rota certa sem degrau visual no topo da sidebar. +- **Fluxo desejado:** + 1. Abre `/campanha` (ou Sheet) → navegação começa no topo, sem logo e sem badge de papel. + 2. Abre qualquer lista/detalhe que hoje mostra o chip de escopo → o header da página **não** exibe olho + papel/carteira. +- **Anti-goals de produto:** não redesenhar a sidebar inteira; não tirar o logo da tela de login; não confundir este chip com outros badges (tipo de município, “Nossa campanha” na comparação, etc.). + +## Objetivo e aceite + +- O topo da sidebar (desktop e Sheet mobile) **não** mostra o logo; o bloco de header some → a lista de itens começa no topo (**decisão A**). +- Em **nenhuma** superfície de `/campanha` aparece o chip de escopo de papel/carteira (olho + “Coordenador Geral” / variantes por role ou “Importação · …”). +- Sem “degrau” vertical entre sidebar e header da área principal causado pelo logo. +- Papel do usuário continua acessível no rodapé / perfil. +- Login e shells de autenticação **mantêm** o logo. + +## Dados (intenção) + +- **Vou apresentar dados?** Não +- **Decisões desbloqueadas:** N/A — chrome estrutural, sem métrica +- **Forma:** *adiada ao plano de implementação* +- Dados: N/A — remoção de UI, sem KPI/mapa + +## Direção no codebase (hipótese) + +- **Áreas prováveis:** `src/components/campaign/shell/CampaignSidebar.tsx` (remover `SidebarHeader` + logo + badge); call sites de `CampaignScopeBadge` em rotas `/campanha` (ex. municípios, apoiadores e subpáginas); limpeza do componente/helpers órfãos se sobrarem só para esse chip; `campaign-logo` permanece em `CampaignAuthPageShell` +- **Precedente a olhar:** B118 (listas mobile sem título/chip) — já escondeu parte no mobile; este item **completa** a remoção do chip de escopo em todo lugar +- **Risco de acoplamento:** não reestilizar badges que só reutilizam a variante visual `scope` para **outro** significado (kind do município, marcador “Nossa campanha” na comparação); leader lockdown / nav por role intactos + +## Dependências + +- Nenhuma + +## Fora de escopo + +- Redesign do rodapé da sidebar, avatar, logout ou nav secundária +- Trocar branding / favicon / PWA icons +- Colapsar/expandir sidebar (outros planos) +- Remover ou redesenhar badges que **não** são o chip de escopo/papel (ex. kind do município, “Nossa campanha” na tabela de comparação) — a menos que o executor veja que só existiam como twin visual do mesmo padrão e produto confirme + +## Rabbit holes de produto + +- **Apagar todo `Badge variant="scope"`.** Se alguém “só completar”: some marcadores de kind/referência que não são o chip de papel. **Corte neste item:** alvo = chip de escopo/papel (olho + role/carteira / copy de importação), tipicamente `CampaignScopeBadge`. +- **Substituir o logo por outro branding no topo.** **Corte:** remoção do header, sem peça nova. + +## Questões em aberto (produto) + +- _(resolvidas no gate)_ Header após logo: **A** — bloco some, nav cola no topo. Chips de escopo: **em lugar algum** em `/campanha`. + +## Referências + +- GitHub Issue #271 +- `src/components/campaign/shell/CampaignSidebar.tsx` +- `src/components/campaign/shared/CampaignScopeBadge.tsx` e call sites em `src/app/(campaign)/campanha/(app)/…` +- `src/components/campaign/auth/CampaignAuthPageShell.tsx` (logo permanece) +- B118 — listas mobile; este item amplia a remoção do chip From ada1ab1511c5425777173fde7383fb7b199e649e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Ign=C3=A1cio=20Fontoura=20Solla?= Date: Sun, 2 Aug 2026 16:13:13 -0300 Subject: [PATCH 2/2] docs(plans): B130 scoped to sidebar only Keep app-wide scope-chip removal as future intention; this issue accepts only logo/header + sidebar chip removal. Related #271. --- docs/plans/sidebar-sem-logo-escopo.md | 55 +++++++++++++-------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/docs/plans/sidebar-sem-logo-escopo.md b/docs/plans/sidebar-sem-logo-escopo.md index 81fb9ace..6813a4b5 100644 --- a/docs/plans/sidebar-sem-logo-escopo.md +++ b/docs/plans/sidebar-sem-logo-escopo.md @@ -1,49 +1,48 @@ -# Sidebar /campanha — sem logo; chips de escopo fora de /campanha +# Sidebar /campanha — sem logo nem chip de escopo no topo Status: rascunho Atualizado em: 2026-08-02 Issue: #271 Priority: P2 Model: composer-2.5 -Impeccable: B — shell da sidebar + headers de páginas que ainda mostram chip de escopo -Appetite: ~0,5–1 dia eng; remoção de chrome + alinhamento visual +Impeccable: B — encaixe no shell da sidebar (`CampaignSidebar`) +Appetite: ~0,5 dia eng; remoção de chrome + alinhamento visual Responsável: — ## Intenção -No topo da sidebar de `/campanha`, o logo e o chip de escopo (ícone de olho + papel, ex. “Coordenador Geral”) não ajudam a navegar: o papel já está no perfil/avatar do rodapé, e o logo não informa onde o usuário está. A faixa do logo ainda desalinha a sidebar em relação ao header da área de conteúdo. +No topo da sidebar de `/campanha`, o logo e o chip de escopo (ícone de olho + papel, ex. “Coordenador Geral”) não ajudam a navegar: o papel já está no perfil/avatar do rodapé, e o logo não informa onde o usuário está. Além disso, a faixa do logo desalinha verticalmente a sidebar em relação ao header da área de conteúdo. Remover os dois deixa a navegação começar limpa e alinhada. -O mesmo chip de escopo (olho + papel/carteira) aparece também em headers de páginas (municípios, apoiadores, …) e repete informação sem desbloquear decisão. Produto decidiu: **sumir com esse chip em qualquer superfície de `/campanha`**, não só na sidebar. +**Direção de produto (mais longa):** o chip de escopo tende a sumir de `/campanha` por completo noutro dia — **não neste item**. Este issue é só o chrome da sidebar. ## Persona e fluxo -- **Persona / contexto:** staff (coordenador, candidato, assessor) e liderança na shell diária — mesa ou mobile Sheet. -- **Job principal:** navegar e ler a página sem chrome de escopo/papel; entrar na rota certa sem degrau visual no topo da sidebar. -- **Fluxo desejado:** - 1. Abre `/campanha` (ou Sheet) → navegação começa no topo, sem logo e sem badge de papel. - 2. Abre qualquer lista/detalhe que hoje mostra o chip de escopo → o header da página **não** exibe olho + papel/carteira. -- **Anti-goals de produto:** não redesenhar a sidebar inteira; não tirar o logo da tela de login; não confundir este chip com outros badges (tipo de município, “Nossa campanha” na comparação, etc.). +- **Persona / contexto:** staff (coordenador, candidato, assessor) e liderança usando a shell diária — mesa ou mobile Sheet; foco em achar a próxima rota, não em branding. +- **Job principal:** entrar na área certa sem chrome que empurra ou repete o papel no topo da nav. +- **Fluxo desejado:** abre `/campanha` (ou Sheet no mobile) → o primeiro bloco útil é a lista de itens de navegação (e filtros salvos de Municípios, quando houver) → sem logo acima nem badge de papel acima dos itens. +- **Anti-goals de produto:** não redesenhar a sidebar inteira; não tirar identidade da tela de login; não limpar chips de escopo das páginas de conteúdo neste item (intenção futura, issue à parte). ## Objetivo e aceite -- O topo da sidebar (desktop e Sheet mobile) **não** mostra o logo; o bloco de header some → a lista de itens começa no topo (**decisão A**). -- Em **nenhuma** superfície de `/campanha` aparece o chip de escopo de papel/carteira (olho + “Coordenador Geral” / variantes por role ou “Importação · …”). -- Sem “degrau” vertical entre sidebar e header da área principal causado pelo logo. -- Papel do usuário continua acessível no rodapé / perfil. +- O topo da sidebar (desktop e Sheet mobile) **não** mostra o logo da campanha; o bloco de header some → a lista de itens começa no topo (**decisão A**). +- O topo da lista de itens da sidebar **não** mostra o badge de escopo/papel (olho + “Coordenador Geral” / variantes por role). +- A faixa superior da sidebar deixa de empurrar o conteúdo: o início da navegação alinha-se de forma coerente com o header da área principal (sem “degrau” causado pelo logo). +- Papel do usuário continua acessível onde já vive (rodapé / perfil) — não some a noção de quem está logado. - Login e shells de autenticação **mantêm** o logo. +- Chips de escopo em headers de página (municípios, apoiadores, …) **permanecem** neste item. ## Dados (intenção) - **Vou apresentar dados?** Não -- **Decisões desbloqueadas:** N/A — chrome estrutural, sem métrica -- **Forma:** *adiada ao plano de implementação* -- Dados: N/A — remoção de UI, sem KPI/mapa +- **Decisões desbloqueadas:** N/A — chrome de navegação, sem métrica +- **Forma:** _adiada ao plano de implementação_ +- Dados: N/A — remoção de UI estrutural, sem KPI/mapa ## Direção no codebase (hipótese) -- **Áreas prováveis:** `src/components/campaign/shell/CampaignSidebar.tsx` (remover `SidebarHeader` + logo + badge); call sites de `CampaignScopeBadge` em rotas `/campanha` (ex. municípios, apoiadores e subpáginas); limpeza do componente/helpers órfãos se sobrarem só para esse chip; `campaign-logo` permanece em `CampaignAuthPageShell` -- **Precedente a olhar:** B118 (listas mobile sem título/chip) — já escondeu parte no mobile; este item **completa** a remoção do chip de escopo em todo lugar -- **Risco de acoplamento:** não reestilizar badges que só reutilizam a variante visual `scope` para **outro** significado (kind do município, marcador “Nossa campanha” na comparação); leader lockdown / nav por role intactos +- **Áreas prováveis:** `src/components/campaign/shell/CampaignSidebar.tsx` (header com logo + `CampaignScopeBadge` acima do menu); `campaign-logo` permanece para auth (`CampaignAuthPageShell`); o componente `CampaignScopeBadge` segue vivo para as páginas +- **Precedente a olhar:** B118 (listas mobile sem título/chip de escopo) — superfície **diferente** (página de lista, não sidebar) +- **Risco de acoplamento:** não tocar call sites de `CampaignScopeBadge` fora da sidebar; respeitar leader lockdown / nav por role já existentes ## Dependências @@ -51,24 +50,24 @@ O mesmo chip de escopo (olho + papel/carteira) aparece também em headers de pá ## Fora de escopo +- Remover chips de escopo no **conteúdo** das listas/detalhes (intenção futura app-wide — issue à parte quando produto pedir) - Redesign do rodapé da sidebar, avatar, logout ou nav secundária - Trocar branding / favicon / PWA icons -- Colapsar/expandir sidebar (outros planos) -- Remover ou redesenhar badges que **não** são o chip de escopo/papel (ex. kind do município, “Nossa campanha” na tabela de comparação) — a menos que o executor veja que só existiam como twin visual do mesmo padrão e produto confirme +- Colapsar/expandir sidebar (já coberto por outros planos, ex. tablet) ## Rabbit holes de produto -- **Apagar todo `Badge variant="scope"`.** Se alguém “só completar”: some marcadores de kind/referência que não são o chip de papel. **Corte neste item:** alvo = chip de escopo/papel (olho + role/carteira / copy de importação), tipicamente `CampaignScopeBadge`. -- **Substituir o logo por outro branding no topo.** **Corte:** remoção do header, sem peça nova. +- **“Já que o chip vai sumir de tudo…”.** Se alguém “só completar”: limpar municípios/apoiadores e apagar `CampaignScopeBadge`. **Corte neste item:** só logo + badge no topo da sidebar. +- **Substituir o logo por outro branding.** **Corte:** remoção do header, sem peça nova no topo. ## Questões em aberto (produto) -- _(resolvidas no gate)_ Header após logo: **A** — bloco some, nav cola no topo. Chips de escopo: **em lugar algum** em `/campanha`. +- _(resolvidas no gate)_ Header após logo: **A** — bloco some, nav cola no topo. Escopo deste issue: **só sidebar**; remoção app-wide do chip = intenção futura, não aceite deste item. ## Referências - GitHub Issue #271 - `src/components/campaign/shell/CampaignSidebar.tsx` -- `src/components/campaign/shared/CampaignScopeBadge.tsx` e call sites em `src/app/(campaign)/campanha/(app)/…` +- `src/components/campaign/shared/CampaignScopeBadge.tsx` (permanece — usado fora da sidebar) - `src/components/campaign/auth/CampaignAuthPageShell.tsx` (logo permanece) -- B118 — listas mobile; este item amplia a remoção do chip +- B118 / listas mobile sem chip — não confundir superfície