3 KiB
3 KiB
UX pós-critique: C110 — refinamentos do feedback visual do arrasto da agenda
Status: rascunho Atualizado em: 2026-08-10 Issue: — (registrar via agent:register após o plano) Priority: P3 Model: cursor-grok-4.5-medium Impeccable: B — encaixes na superfície já entregue (preview do arrasto do C110) Canvas UI: N/A — superfície existente Appetite: ~0,5 dia eng fill-in
Intenção
O C110 (#589, entregue) trouxe o feedback visual do arrasto com um preview do período adjacente — aprovação do gate com o canvas, corte de fidelidade aceito ("preview aproximado; Opção 2 se destoar"). Este lote colhe os débitos pós-/simplify que ficaram abaixo do limiar de Issue individual, agrupados por superfície (o preview do arrasto): uma validação de leitura de produto (chevron) e dois polimentos visuais dentro da aproximação aceita.
Escopo do lote
- Chevron: confirmar a leitura "direção da mudança" (origem: /simplify). O aceite diz "um chevron na borda revelada indica a direção da mudança (próximo/anterior)"; o canvas do gate desenhou o chevron apontando para o lado revelado (direita quando o próximo é revelado à direita). Implementado seguindo o canvas. Fase: validar com um usuário da persona (coordenador/assessor) qual leitura prevalece; se "direção da mudança" (apontar na direção do gesto) vencer, flip de 1 linha (ChevronLeft/Right) no
ActivityAgendaSwipePreview+ ajuste do e2e se assertar a classe. - Dots do mês ancorados ao frame do grid (origem: /simplify). Os dots do preview no mês posicionam contra o bloco do conteúdo (chevron/label inclusos), não contra o frame skeleton — a primeira fileira pode sobrepor a área do rótulo. Fase: envolver head+frame+dots num container posicionado único para os dots ancorarem no frame.
- Gradiente de colunas duplicado no CSS (origem: /simplify). A base do frame e a camada do mês repetem o mesmo
repeating-linear-gradientde 14.285%. Fase: custom property--swipe-frame-columnsse o lote já mexer nesse CSS (senão descartar — a var valeria mais indireção que as ~5 linhas).
Fora de escopo / já resolvido
- Já resolvido no /simplify da sessão: helpers
clampDisplacement/isVerticalDrag;civilDatePartsfundido (year);civilInstantAtBahia→allDayStartInstant; seed e2e generalizado;dispatchTouchDragunificado; CSS sem regras mortas (background-size,position: relativeno frame, regra--next); paridade de label foldada nos unit tests. - Decisões travadas (não reabrir): direção do gesto travada no claim;
touchcancelsintético no claim; range do mês de 42 dias; transform imperativo no hook (sem estado por frame).
Rabbit holes
- Redesenho do preview (Opção 2 do aceite — só seta) — não reabrir sem evidência nova de que o preview destoa.
- Animar mais superfícies da agenda (título do header, criação inline) — anti-goals do C110.
Questões em aberto
- Nenhuma — o gate é a validação do chevron com usuário (fase 1).