, Correçoes UX

This commit is contained in:
2026-08-28 16:14:38 -03:00
parent 19a0c7a302
commit 0e57e48214
7 changed files with 126 additions and 16 deletions

View File

@@ -301,6 +301,64 @@ manual e pontual, mas é o primeiro candidato a virar download em segundo plano
o volume crescer ou se dois operadores baixarem ao mesmo tempo. **Não** compare
esse número com o do PDF de um veículo: são unidades diferentes (1 folha × 72).
## Caso 10 — Mobile: quebras visuais (varredura)
Roda em **todas** as telas do roteiro com `agent-browser set device "iPhone 16"`
(393×852), logado. São três medições objetivas; anote o número, não só passou/falhou.
### 10a — Rolagem horizontal
Nenhuma tela pode ter rolagem lateral no celular (diretriz 3: nada que exija zoom).
```bash
agent-browser set device "iPhone 16"
for u in /dashboard /dashboard/operacoes "/consolidacoes?visao=lista" "/consolidacoes?visao=motoristas" /admin/romaneios /admin/romaneios/13; do
agent-browser open "https://teste.reemtransportes.com.br$u" >/dev/null
agent-browser eval "document.documentElement.scrollWidth+'/'+document.documentElement.clientWidth"
done
```
**PASSOU se**: os dois números são iguais (ex.: `393/393`) em todas.
Para achar o culpado quando falhar:
```bash
agent-browser eval "(()=>{const vw=document.documentElement.clientWidth; return [...document.querySelectorAll('*')].filter(e=>{const b=e.getBoundingClientRect(); return b.right>vw+2 && b.width>40 && getComputedStyle(e).position!=='fixed';}).slice(0,5).map(e=>e.tagName+'.'+String(e.className).split(' ').slice(0,2).join('.')+' right='+Math.round(e.getBoundingClientRect().right)).join(' || ');})()"
```
> ⚠️ Causa recorrente: contêiner `flex` **sem `flex-wrap`** com botões que não cabem,
> ou `<input class="flex-1">` **sem `min-w-0`** (input não encolhe abaixo da largura
> intrínseca). Foram as duas causas de 28/08/2026.
### 10b — Menu inteiro alcançável
Todo item do menu tem que ser alcançável rolando — inclusive o **Sair**, o último.
```bash
agent-browser open "https://teste.reemtransportes.com.br/dashboard"
agent-browser snapshot -i | grep -i "menu" # pegar o ref do botão "Abrir menu"
agent-browser click @eN
agent-browser eval "(()=>{const nav=document.querySelector('#sidebar nav'); if(!nav) return 'NAV AUSENTE'; const ult=[...document.querySelectorAll('#sidebar a')].at(-1); return 'nav rola='+(nav.scrollHeight>nav.clientHeight)+' overflowY='+getComputedStyle(nav).overflowY+' | ultimo item: '+ult.textContent.trim()+' | fora da tela por '+Math.max(0, Math.round(ult.getBoundingClientRect().bottom-window.innerHeight))+'px';})()"
```
**PASSOU se**: `overflowY=auto` e "fora da tela por 0px" (o item pode estar abaixo
da dobra, desde que o `<nav>` role até ele).
**FALHOU se**: `overflowY=visible` ou o último item aparece fora por N px — foi o
bug de 28/08/2026, em que 7 itens (incluindo Sair) eram inalcançáveis no celular.
> O que segura isso é o `flex flex-col` no `<aside id="sidebar">`: sem ele o
> `flex-1 overflow-y-auto` do `<nav>` não tem efeito nenhum.
### 10c — Alvos de toque
```bash
agent-browser eval "(()=>{const p=[...document.querySelectorAll('a,button,input,select,summary')].filter(e=>{const b=e.getBoundingClientRect(); return b.height>0 && b.height<44;}); return p.length+' alvos <44px';})()"
```
**Linha de base após as correções de 28/08/2026** (iPhone 16): dashboard tinha
**63** antes do ajuste da paginação; as demais telas ficam entre 3 e 5. Um número
que **cresce** entre execuções é regressão — vale investigar o que foi
adicionado, não apenas registrar.
## Relatório final (obrigatório)
Terminar a execução com uma tabela e a lista de falhas:
@@ -317,6 +375,7 @@ Terminar a execução com uma tabela e a lista de falhas:
| 7 Notificações | … | … |
| 8 PIN motorista | … | … |
| 9 Performance | … | tabela de tempos |
| 10 Mobile (10a/b/c) | … | larguras, menu, alvos |
Depois da tabela, listar **somente as falhas**, cada uma com: URL, o que era
esperado, o que aconteceu (mensagem de erro/console) e o caminho do screenshot.