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.
This commit is contained in:
Francisco Ignácio Fontoura Solla 2026-08-02 16:13:13 -03:00
parent c2c18b6f0c
commit ada1ab1511

View file

@ -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