📸 A foto parada não mostra a dança
Novo aqui? Um screenshot é uma foto parada da tela num instante exato — pixel por pixel, congelado. É a base do laço que você aprendeu no módulo 5.3: o agente tira a foto, compara com o que devia estar ali, e ajusta o CSS até bater.
Imagine pedir pra alguém julgar se uma dança ficou boa comparando duas fotos: uma do início do movimento, outra do fim. Você vai ver as duas posições dos braços — mas não vai ver a trajetória, a velocidade, se o movimento foi suave ou truncado, se o timing bateu com a música. É exatamente essa a limitação do laço de screenshot: ele mostra estados, nunca a transição entre eles.
Legenda: as duas fotos (início e fim) são tudo que o laço de screenshot enxerga. Tudo que acontece entre elas — a curva do movimento — fica invisível para uma comparação de imagens.
💡 Conceito Principal
O laço de screenshot é excelente comparando estados. Ele não enxerga transições.
- •Layout, cor, espaçamento, alinhamento — tudo isso é estado. O laço acerta.
- •Uma transição suave de 300ms entre dois estados — isso é movimento. O laço não vê.
✅ O que o laço pega bem
Antes de falar do que falta, vale reforçar onde o laço é ótimo — porque a lição deste módulo não é "não confie no laço", é "saiba onde ele para". Tudo que é estado visual estático (a aparência da tela num instante parado, sem considerar o que veio antes ou depois) o laço compara com precisão de pixel.
✓ O laço pega
- ✓Espaçamento errado, elemento desalinhado, margem quebrada
- ✓Cor fora da paleta, contraste insuficiente
- ✓Texto cortado, overflow, quebra de linha ruim
- ✓Layout quebrado em mobile vs. desktop
- ✓Elemento sobrepondo outro, z-index errado
✗ O laço perde
- ✗Se uma transição de hover está suave ou truncada
- ✗Se o timing de uma animação de entrada "bate" com o conteúdo
- ✗Se um parallax de fundo dá sensação de profundidade real
- ✗Se um gradiente animado flui ou trava (jank)
- ✗Se o "feel" geral da interface parece caro ou barato
🔍 Por dentro
A regra prática: se a diferença entre "certo" e "errado" aparece numa foto parada, o laço resolve sozinho. Se a diferença só aparece ao vivo, com o tempo passando, o laço precisa de ajuda.
🎬 As duas cegueiras: animação e fundo em movimento
Novo aqui? Animação CSS é uma mudança gradual de propriedade visual (posição, cor, tamanho) ao longo do tempo, controlada pelo navegador. Hover é o estado de um elemento quando o mouse passa por cima dele — normalmente disparando uma transição. Parallax é a técnica de mover camadas de fundo em velocidades diferentes da rolagem, criando sensação de profundidade.
São duas famílias de coisas que escapam do laço:
Animação — transição, hover, efeito de entrada
O agente tira duas fotos (antes e depois do hover, por exemplo) e as duas parecem certas isoladamente. Mas o easing (a curva de aceleração/desaceleração do movimento — "suave no início, rápido no meio" é diferente de "linear o tempo todo") pode estar errado, e nenhuma foto mostra isso.
Fundo em movimento — parallax, partículas, vídeo, gradiente animado
Mesma limitação, escala maior: uma foto do fundo parado nunca mostra fluidez, nem se o movimento é constante ou engasga (o jank — travamento visual quando o navegador não consegue desenhar quadros a tempo).
Legenda: a bolinha em movimento (ponto ciano pulsante) percorre uma curva suave — mas as duas câmeras só capturam início e fim. O "meio" do movimento, onde mora o easing, nunca vira imagem.
💡 Dica Prática
Se o agente disser "comparei os screenshots antes e depois do hover, está tudo certo" — pergunte especificamente sobre a suavidade da transição. É bem provável que ele esteja certo sobre o estado final e não tenha checado nada sobre o caminho até lá.
🔬 Por que isso acontece — a raiz técnica
Não é falta de esforço do agente — é uma limitação de ferramenta. O screenshot automatizado captura a tela num instante único (um frame, um quadro parado). Para "ver" movimento de verdade, seria preciso capturar uma sequência de frames ao longo do tempo e depois interpretar a diferença entre eles — muito mais caro, mais lento, e ainda assim mais difícil de julgar "bonito" ou "feio" do que comparar duas imagens.
Passo 1 — o agente escreve o CSS de uma animação
Ele define a `transition` ou `@keyframes`, com base no que leu no design ou pediu você.
Passo 2 — tira um screenshot do estado inicial
Isso é confiável e rápido de comparar.
Passo 3 — dispara o efeito e tira outro screenshot
De novo, um instante — no fim da transição, ou num ponto arbitrário no meio dela.
Passo 4 — compara as duas fotos e "aprova"
Aqui mora o risco: as duas fotos batem com o esperado, mas ninguém checou como foi o trajeto entre elas — se travou, se ficou rápido demais, se o timing combinou com o resto da página.
⚠️ Atenção
O agente pode genuinamente "achar" que está tudo certo — não é má-fé, é a ferramenta que ele tem na mão só enxergando estados. É por isso que este limite precisa ser conhecido por você, não só corrigido por ele.
🛠️ Construir: trabalhar direto no código quando o laço falha
Quando a peça é movimento, a solução não é insistir em mais screenshots — é mudar de método: pedir pro agente (1) ler os valores exatos de CSS que controlam o movimento (duração, easing, delay), (2) explicar o que cada valor faz em palavras simples, e (3) abrir o navegador de verdade pra você observar o movimento acontecendo ao vivo, em vez de confiar só na comparação automática de imagens.
Preciso que você ajuste a animação do botão ""
no arquivo .
Antes de mexer, faça isto:
1. Leia o CSS atual da transição/animação desse elemento e me diga, em português simples,
qual é a duração, o easing e o delay usados hoje.
2. Não confie só em screenshot pra validar o resultado. Depois de editar, abra o navegador
de verdade (ou peça pra eu abrir) e descreva o que observou no movimento ao vivo:
ficou suave? ficou rápido demais? travou (jank) em algum ponto?
3. Só then ajuste o valor - o objetivo é .
Ao final, me diga exatamente qual linha de CSS mudou e por quê.
Forçar o agente a olhar os valores reais de CSS e observar o movimento ao vivo, não só comparar imagens.
O prompt acima, adaptando elemento, arquivo e resultado desejado entre os colchetes.
Abra você mesmo a página no navegador e passe o mouse/dispare o efeito. Se parecer certo pro seu olho, está certo — esse julgamento não terceiriza.
🔍 Por dentro
- Duração: quanto tempo o movimento leva (ex.: `transition: all 300ms`) — muito rápido parece um "pulo", muito lento parece "pesado".
- Easing: a curva de velocidade do movimento (`ease-in-out`, `ease-out`, `linear`) — é o que dá a sensação de "natural" ou "robótico".
- Delay: quanto tempo espera antes de começar — útil pra encadear várias animações em sequência.
📊 Os 40% que faltam — onde entra o seu julgamento
Vale fechar com o número que vai acompanhar o resto desta trilha: o laço de screenshot leva um front-end de genérico a sólido — algo como os primeiros 60% do caminho até "profissional". Os últimos 40% — movimento, timing, "feel", a diferença entre parecer produto caro e parecer template — ainda dependem de alguém olhando a tela de verdade e decidindo. Essa fronteira não é um defeito do laço, é onde a IA ajuda sozinha termina e onde entra o julgamento humano.
Legenda: a barra mostra os 60% que o laço automatizado cobre bem (estado visual) e os 40% finais, onde movimento e timing exigem alguém olhando a tela de verdade.
🎯 Conceito Principal
- •O laço não é substituído — ele continua fazendo os 60% mais rápido do que você faria na mão.
- •Os 40% finais são onde você intervém: abrindo o navegador, olhando o movimento, decidindo se "está bom".
Checagem rápida (opcional): por que o laço de screenshot não pega bem uma transição de hover mal ajustada?
✏️ Exercício
Pegue qualquer botão ou card com efeito de hover que o agente já ajustou usando o laço de screenshot (módulo 5.3). Abra a página no navegador, passe o mouse devagar e observe o movimento ao vivo por 10 segundos.
- 1.O movimento parece suave ou dá um "pulo" perceptível?
- 2.Se não gostou, use o prompt do tópico 5 pedindo pro agente ler os valores de CSS e ajustar olhando o código, não só comparando prints.
- 3.Repita o teste ao vivo depois do ajuste — essa é a única forma de fechar o ciclo aqui.