Pedágio Digital

Protótipo de Cashback: v0.2 → v0.3

Mesma regra, mesmas rotas e os mesmos fluxos. Mudou a cara, que agora segue o Figma do Pedágio Digital, e o acabamento: movimento, Web e acessibilidade.

Branch feat/design-v0-3Commit 649688444 telas comparadas02/10/2026 · CAISLAB
01 · O que mudou

Em linguagem simples

Cara do Pedágio DigitalCores, cantos, sombras e tipografia saíram do Figma do PD: lima #E5FF51, fundo branco para cinza, cartões com cantos de 24 px e fonte Ubuntu.
Logo e carro oficiaisO logo e a imagem do carro foram tirados do próprio arquivo do Figma, sem redesenho.
Navegação Liquid GlassA barra de baixo virou a pílula de vidro do Figma, com o item ativo em lima e o botão de IA separado.
Carteira do FigmaCartão escuro com brilho lima e o cashback dentro do cartão, como na Carteira V1.
Web segue o FigmaA partir de 1024 px: barra lateral com ícones, lista "Meus veículos" e área principal. A recarga abre como janela sobre a carteira.
Cadastro mais claroBarra de passos (1 de 3), campos no padrão rótulo e valor, e prévia da placa Mercosul enquanto a pessoa digita.
Movimento com propósitoTransições de 160 a 280 ms só quando a tela muda, chave e valores animados e check desenhado no sucesso. Tudo some com "reduzir movimento".
Feedback de processamentoPagar e recarregar mostram "processando" por 480 ms (o limite era 600 ms) e não travam a tela.
AcessibilidadeContraste AA, foco visível de 3 px, alvos de toque de 44 px e nada cortado em 1280, 1440 ou com 720 px de altura.
02 · O que ficou igual

O que o brief mandou não mexer

  • Regra de negócio: src/servico-campanha.js é o mesmo arquivo da v0.2 (SHA-256 igual).
  • Rotas, deep link pdapp://, ordem dos passos e travas de fluxo.
  • Todos os data-teste, data-acao, data-tela, data-forma, data-tipo, aria-label, #endereco e .erro da v0.2 (conferido por teste).
  • Painel da demo, seletor de canal, barra de endereço editável, "Reiniciar demonstração", faixa de ambiente de demonstração e noindex.
  • Textos de regra com o mesmo sentido. Nenhuma tela nova.
03 · Diferenças

O que não bateu com o Figma, e por quê

Diferenças de desenho

  • Telas escuras (login, cadastro, sucesso)A leitura dessas páginas do Figma travou na troca de página. Mantive o degradê escuro da v0.2 com os tokens do Figma aplicados.
  • Ubuntu LightO peso 300 não estava disponível para embutir. Onde o Figma pede Light, uso o Regular (400).
  • Liquid GlassAproximado em CSS com desfoque, brilho e borda. Não é o material nativo do iOS.
  • Tons um ponto mais escurosPara passar AA: cinza #707275 → #6A6B6E, oliva #819709 → #5B6D06 em texto pequeno, placeholder #98999C → #76777B e verde de status escurecido.

Decisões de layout

  • Alvos de 44 pxO Figma usa 39 a 40 px em alguns botões. Subi para 44 px, às vezes com área de toque invisível para não mudar o desenho.
  • Web sem referência no FigmaPagamento, recibo, cashback, perfil, login e cadastro não têm tela Web no Figma. Mantive a coluna central, porque o brief proíbe inventar layout de desktop.
  • Boas-vindas no WebO Figma não tem essa folha no Web. Virou um diálogo central sobre o layout Web do Figma.
04 · Pendências

O que faltou receber

  • Pasta original e os 45 testesNão recebi src/, build.js nem tests/cenarios.test.js. Reconstruí o código a partir do HTML da v0.2 (o build reproduz o arquivo original byte a byte). Os 45 testes originais seguem pendentes; no lugar, rodei a suíte abaixo.
  • Logo em SVGUsei o PNG oficial do Figma (247 × 74). Para peças grandes da campanha, pedir o SVG à marca.
  • Telas Web de Login e CadastroNão consegui extrair do Figma. Se existirem, aplico na próxima rodada.
  • Notas da Carteira V2As anotações dessa versão não vieram na extração. Segui a Carteira V1.
  • Fonte Ubuntu LightArquivo do peso 300 para embutir.
05 · Verificação

Testes rodados na v0.3

SuíteResultadoO que cobre
Regra de negócio17 de 17Inclui o SHA-256 do serviço, teto de R$ 10, 10% da 1ª passagem, uso inteiro, expiração e token.
Contrato da interface10 de 10Nada da v0.2 sumiu: data-*, aria-label, ações, rotas, #endereco, .erro e noindex.
Roteiro ponta a ponta21 de 21 passosLanding → cadastro → pagamento → recibo → carteira → uso → expiração, sem erro de console.
Piso de qualidadesem pendênciasContraste AA, alvos de 44 px, foco visível, sem rolagem horizontal e nada cortado em 1280 × 800, 1440 × 900 e 1280 × 720, mais movimento reduzido.
Capturas44 telas23 no Web e 21 no App, nas duas versões.

Os testes são da CAISLAB, escritos nesta rodada. A suíte original de 45 testes não veio no pacote. Para rodar: node build.js, node --test tests/*.test.js, node tests/e2e.js, node tests/qualidade.js.

06 · Antes e depois

Tela a tela, nos dois canais

Capturas em 1440 × 900 com o mesmo roteiro e dados de demonstração. Clique numa imagem para ampliar.

01

Landing da campanha

Logo oficial no lugar do símbolo provisório. Selo "Campanha de cashback", título maior e celular com a carteira real do app. Textos da regra iguais aos da v0.2.

Antes · v0.2
Depois · v0.3
02

Landing · como funciona

Passos em cartões com número em lima e "Duas formas de usar" com exemplos reais da interface (carteira e chave "Usar cashback").

Antes · v0.2
Depois · v0.3
03

Cadastro · dados

Barra de progresso "Passo 1 de 3". Campos no padrão do Figma: rótulo à esquerda, valor à direita. Aviso "Cashback vinculado" em cartão de vidro.

Antes · v0.2
Depois · v0.3
04

Cadastro · veículo

Prévia da placa Mercosul enquanto a pessoa digita. Botão principal fixo no rodapé.

Antes · v0.2
Depois · v0.3
05

Cadastro · senha

Mesmo padrão de campos e botão no rodapé. A regra da senha aparece como texto de apoio.

Antes · v0.2
Depois · v0.3
06

Sucesso

Check desenhado com animação curta. Selo do cashback em pílula. Botão "Acessar minha conta" no rodapé.

Antes · v0.2
Depois · v0.3
07

Início · boas-vindas

Logo oficial no topo. No App, folha inferior; no Web, diálogo central sobre o layout do Figma.

Antes · v0.2
Depois · v0.3
08

Início · cashback garantido

Faixa de cashback com selo, veículo com a imagem oficial do Figma e navegação Liquid Glass com o botão de IA separado.

Antes · v0.2
Depois · v0.3
09

Início · com débito

Resumo "Valor total" com botão "Pagar" e aviso de pagamento automático, como no Figma.

Antes · v0.2
Depois · v0.3
10

Débitos · seleção

Débitos agrupados por data, cabeçalho com voltar e barra com o total selecionado e "Pagar".

Antes · v0.2
Depois · v0.3
11

Pagamento · ganho previsto

Formas de pagamento com ícones e seleção clara. Aviso do cashback previsto junto ao resumo. Pagar mostra "processando" por 480 ms.

Antes · v0.2
Depois · v0.3
12

Recibo · cashback ganho

Check lima no topo, valores com contagem rápida e aviso do cashback que não cobre os botões.

Antes · v0.2
Depois · v0.3
13

Carteira com cashback

Cartão escuro do Figma com brilho lima. O cashback fica dentro do cartão. Extrato com filtro.

Antes · v0.2
Depois · v0.3
14

Detalhe do cashback

Cartão de saldo com selo "Ativo" e prazo. "Como funciona" em lista com checks e histórico abaixo.

Antes · v0.2
Depois · v0.3
15

Início · cashback ativo

A faixa mostra o valor ganho e até quando usar.

Antes · v0.2
Depois · v0.3
16

Pagamento · usar cashback

Chave "Usar cashback" anima ao ligar. O desconto entra no resumo e o total atualiza com contagem.

Antes · v0.2
Depois · v0.3
17

Recarga

Chips de valor com o selecionado em preto e resumo com a taxa. No Web abre como janela sobre a carteira, como no Figma.

Antes · v0.2
Depois · v0.3
18

Veículos

Lista com a imagem oficial do carro e o botão "Adicionar veículo".

Antes · v0.2
Depois · v0.3
19

Perfil

Avatar com iniciais e as seções "Minha conta" e "Ajuda e informações" do Figma.

Antes · v0.2
Depois · v0.3
20

Login

Logo oficial, campos no padrão do Figma e botão no rodapé.

Antes · v0.2
Depois · v0.3
21

Início · prazo acabando

Selo laranja "Faltam 5 dias" na faixa de cashback.

Antes · v0.2
Depois · v0.3
22

Carteira · cashback expirado

O cartão avisa que o saldo expirou e o extrato mostra o movimento "Cashback expirado".

Antes · v0.2
Depois · v0.3
23

Cadastro sem link da campanha

Sem o aviso de cashback, como na v0.2: a regra não mudou.

Antes · v0.2
Depois · v0.3