Frontends com Vibecoding · Capítulo 23 de 33 · 33 min
Construir o projeto final, medir a cara de IA e revisar
Você entrega o projeto final em três pedidos, mede a cara de IA em sete dimensões e passa a tela por um checklist de defeito com antídoto nomeado.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding.
Um gráfico que some no tema escuro e um filtro que volta ao padrão a cada recarga são anti-padrões: soluções que parecem certas e cobram o preço depois. A demonstração esconde os dois, e o primeiro dia de uso revela os dois.
Toda tela que sai de uma conversa com um agente esconde o mesmo risco: o de parecer pronta sem estar. Agente é o assistente de inteligência artificial que escreve o código por você.
Um checklist por família de defeito resolve isso. Ele nomeia o sintoma que aparece na tela, o antídoto que você pede ao agente e a contraprova do que a entrega boa tem.
Os defeitos de código vêm primeiro porque não aparecem na tela. A key pelo índice (o crachá que o React dá a cada item) prende a marcação ao lugar: ordene a lista e o destaque cai em outro produto. O antídoto é o identificador do próprio dado como crachá.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
A biblioteca inventada (o pacote pronto que o agente importa) soa real e não existe no registro público: roda na sua máquina e quebra na reinstalação do zero. O terceiro é aceitar código sem ler: funcionou, mas ninguém explica por quê. Peça a explicação de cada trecho que não for óbvio e confirme cada dependência nova no registro do npm.
Outro defeito frequente é a escolha insegura. A Veracode publicou, em julho de 2025, um teste com mais de 100 modelos, em situações montadas para admitir uma saída segura e uma insegura.
O código gerado trouxe falha do OWASP Top 10 em 45% dos casos, e a injeção de conteúdo na página, o XSS, passou de 85% de falha. Por isso todo trecho que injeta conteúdo dinâmico entra na revisão manual.
As famílias de dado e gráfico são as que mais enganam quem aprova, porque a tela impressiona. Um painel com 40 indicadores e nenhuma decisão é bonito na demonstração e ninguém abre na segunda semana. Drill-down (abrir o número em partes) infinito no relatório de conselho e métrica sem fonte, meta, base de comparação ou dono são a mesma doença.
Velocímetro para tudo, pizza com muitas fatias e 3D decorativo impressionam sem esclarecer. No relatório de marketing, faltar custo de aquisição, prazo de retorno, incrementalidade e qualidade do funil transforma o relatório em enfeite. O BI embutido (o painel de outro sistema colado na sua tela) sem camada de narrativa deixa o leitor sozinho com os gráficos.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
As famílias técnicas dão sintoma na tela. Markdown cru (texto com marcas de asterisco e cerca) dentro do HTML quebra no celular; peça pre ou tabela. Gráfico em caixa oculta ou de largura zero aparece em branco, sem erro; SVG chamado como imagem ignora as cores do tema e some no escuro.
Classe do Tailwind (as classes utilitárias de estilo) montada por concatenação some no build, porque o compilador só enxerga texto literal. Conexão aberta sem fila de mensagens trava a tela quando o servidor acelera. PDF gerado de forma síncrona derruba o servidor em produção, e fonte remota num documento confidencial avisa o Google de que ele foi aberto.
O rótulo de menu de aplicativo numa navegação simples confunde o teclado. Aba, filtro e paginação fora do endereço da página se perdem ao recarregar, e a rolagem infinita apaga o rodapé que buscador e leitor de tela precisam.
O checklist por família: o sintoma que você vê e o antídoto que você pede
| Família | Sintoma na tela | Antídoto que você pede |
|---|---|---|
| Código | Funcionou e ninguém explica por quê | Explicação de cada trecho não óbvio antes de aprovar |
| Código | Pacote importado que o npm não encontra | Confirmar cada dependência no registro, na versão citada |
| Código | Ordenar a lista move a marcação para outro item | Identificador do dado como key, no lugar da posição |
| Painel e métrica | 40 indicadores e nenhuma decisão; ninguém abre na segunda semana | Uma pergunta por tela; cortar o número que não sustenta a decisão |
| Painel e métrica | Número sem fonte, meta, base ou dono; abrir em partes sem fim | Fonte, definição, data e dono a dois cliques; profundidade limitada |
| Gráfico | Velocímetro em tudo, pizza de muitas fatias, 3D de enfeite | Barra com meta, cascata para variação, tabela alternativa |
| Gráfico | Área em branco onde o gráfico deveria estar | Largura e altura definidas no contêiner antes de desenhar |
| Gráfico | SVG some no tema escuro | SVG inline com cor por variável do tema, em vez de img |
| Marketing report | Sem custo de aquisição, prazo de retorno, incrementalidade ou qualidade do funil | As quatro medidas e uma camada de narrativa sobre o BI embutido |
| Texto e tabela | Árvore em texto ou cerca de código quebrada no celular | Converter para pre ou tabela que rola dentro do bloco |
| Texto e tabela | Tabela estoura a tela abaixo de 390 pixels | Rolagem dentro do próprio bloco, testada a 390 pixels |
| Tema | Texto cinza que some no escuro | Cores que se adaptam ao tema e auditoria de contraste nos dois |
| Estilo | Classe bg-$cor-500 montada na hora some no build | Nomes de classe completos no código, num mapa de variantes |
| Tempo real e documento | Tela trava quando o servidor acelera | Fila com limite de mensagens antes de desenhar |
| Tempo real e documento | PDF gerado na hora derruba o servidor | Fila assíncrona e navegador reutilizado |
| Tempo real e documento | Fonte do Google num documento confidencial | Fonte embutida no arquivo |
| Navegação | role="menu" numa navegação comum confunde o teclado | Lista de links em nav; role="menu" só em menu de ação |
| Navegação | Aba, filtro ou página somem ao recarregar | Estado no endereço da página |
| Navegação | Rolagem infinita sem rodapé nem paginação | Paginação ou botão de carregar mais, onde busca e leitor de tela importam |
| Navegação | Janela modal sem fechar tocável | Botão de fechar de 44 pixels e tecla de escape |
Marque a linha pelo sintoma; o antídoto é o pedido que você faz ao agente.
Fonte: Manual de referência Recursos de frontend moderno, edição setembro de 2026, seção 25, fundido com o quadro do autor.
A contraprova é o que a entrega boa tem, pelas regras de ouro do manual. O relatório de conselho é um painel de decisão e o de marketing, um painel de crescimento, nunca a mesma tela. Quem lê descobre fonte, definição, data e dono de cada número em dois cliques, e a lógica da métrica vive em código versionado.
No lado visual, o checklist traz as cinco caras de tela gerada que a skill frontend-design (o roteiro de design do agente) lista para se calibrar. Nenhuma é proibida; todas são padrão em vez de escolha.
Se o seu pedido fixou o visual, ele vence; se deixou o eixo livre, a liberdade não pode ir para um padrão. Você confere procurando os cinco sinais na tela e os dois hexadecimais no código.
A tela genérica contra a entrega boa
Os cinco sinais de tela gerada por padrão
Padrão sem escolha
- Fundo creme perto de #F4F1EA, serifa alta e acento terracota perto de #D97757
- Quase-preto com um único acento ácido ou vermelhão
- Broadsheet: fios finos, canto reto e colunas densas de jornal
- Kit de cartões SaaS: mesmo raio, mesma sombra cinza e lavagem de gradiente em tudo
- Chrome de template: eyebrow em caixa alta, ponto médio entre metadados, seta no botão, monoespaçada nos rótulos e cinza-escuro no lugar do preto
O que a entrega boa tem, pelas regras de ouro
Escolha com regra
- Painel de decisão para conselho (narrativa, materialidade, risco, recomendação) e painel de crescimento para marketing
- Fonte, definição, data e dono de cada número em dois cliques
- Barra com meta em vez de velocímetro; cascata para variação de margem ou receita; small multiples e tabela de variância
- HTML e CSS puros para conselho; ECharts ou D3 no painel e JointJS ou GoJS no editor de fluxo, cada um na sua stack
- Lógica da métrica em código versionado (Cube ou dbt); nenhuma tela calcula ARR ou CAC sozinha
- Canvas e WebGL com camada de texto paralela; WASM só como acelerador pontual
- Orçamento de desempenho, profiling e OpenTelemetry desde o primeiro sprint
- Vocabulário de componentes executivos: kpi-card, variance-table, risk-matrix, waterfall-bridge, decision-card, confidence-badge, methodology-note
Antes de publicar qualquer tela construída por vibecoding, confira cada pacote novo no registro do npm. Depois abra a tela a 390 pixels de largura, nos dois temas, e procure os cinco sinais de paleta padrão.
Corrija cada linha marcada com o antídoto da tabela. Só aprove quando um número qualquer da tela chegar à fonte, à definição e ao dono em dois cliques.
Tirar a cara de IA da tela e medir a cada mudança
O checklist pega o defeito família por família, e a impressão de tela feita por máquina ainda pede medida própria, em dimensões fixas, repetida a cada mudança.
Uma varredura de mil sites declarados como feitos com inteligência artificial deu nota média de 61,4 em 100 na cara de IA. A nota mede o quanto a tela parece saída de máquina, e alta é o lado ruim da escala. Os 200 sites desenhados por agências e marcas ficaram em 24,8.
A distância entre os dois grupos mede sete dimensões: cor, tipografia, espaçamento, layout, padrões de componente, decoração e estrutura de conteúdo.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Uma tabela com número em cada dimensão mede o quanto uma tela ainda parece gerada antes de ela ir ao ar. Um laço de avaliação, a rotina que repete o mesmo teste a cada mudança, como a prova do forno, confirma se a correção pegou.
A distância é maior onde o olho bate primeiro. Em tipografia, a média dos sites gerados foi 66,7 contra 19,4 dos profissionais; em cor, 68,3 contra 22,1. Em estrutura de conteúdo a diferença encolhe (44,3 contra 25,1). O modelo acerta o HTML semântico (a marcação que diz o que cada trecho é) e erra o visual.
Os padrões andam em bando: o site mediano trazia nove dos 20 sinais mais frequentes, e a média piorou de 58,2 para 61,4 em seis meses. As cinco caras da aula anterior seguem como primeira olhada; a tabela põe número em cada dimensão e diz o que pedir.
Sete dimensões, o sinal mais comum e o que pedir
| Dimensão | Sinal mais comum nos sites gerados | O que pedir ao agente |
|---|---|---|
| Cor | Cor primária no arco azul-violeta em 72,1% dos sites | A primária pelo hexadecimal da marca e um acento com papel nomeado |
| Tipografia | Inter em 78,3%; uma só fonte para título e corpo em 67,1%; serifa em 8,4%, contra cerca de 35% nos sites profissionais | A fonte do letreiro no título, uma segunda no corpo e a escala escrita |
| Espaçamento | O mesmo respiro entre todas as seções, sem seção principal | A escala de espaçamento do sistema de design, com a seção principal mais larga |
| Layout | A ordem de sempre: nav, herói, features, depoimentos, preços, FAQ, CTA e rodapé | A ordem que a tarefa do leitor dita; cortar a seção sem tarefa |
| Componentes | Janela de terminal simulada com três bolinhas em 41,8%; cartões iguais em tudo | Componente adaptado aos tokens da marca; cartão só onde há item repetido |
| Decoração | Degradê e sombra como enfeite; nove dos 20 sinais mais frequentes no site mediano | Tirar um acessório por rodada e gastar o movimento numa única assinatura |
| Conteúdo | Nota 44,3 contra 25,1; frases como seamlessly, effortlessly, unlock the power of e built for the modern web | Texto com o vocabulário do ramo e as quatro frases proibidas pelo nome |
Percorra as sete linhas na tela renderizada e marque cada sinal que encontrar; cada marca vira um pedido.
Fonte: Sailop, The State of AI Web Design in 2026 (20 de março de 2026) e AI Slop: The Definitive 2026 Guide (22 de abril de 2026), com o pedido por dimensão escrito pelo autor.
A ferramenta pesa menos que a restrição. Em março de 2026, o mesmo pedido (a landing page de uma ferramenta de commit) rodou em seis ferramentas, cinco vezes cada.
Deu mediana de 92 no v0, 88 no Bolt, 84 no Lovable, 76 no Cursor e 69 no Claude Code. O último lê a skill de design (o roteiro visual do agente) e foi o menos marcado.
Um gerador com sistema procedural ficou em 24. O que separa 92 de 24 é a restrição que tira o modelo do atrator, a saída mais provável para onde ele volta se ninguém o segura. A capacidade era a mesma.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O contraste é a falha que a máquina deixa passar. O WebAIM Million de fevereiro de 2024 mediu um milhão de páginas iniciais. Delas, 95,9% tinham falha detectável da WCAG (a norma de acessibilidade da web), com média de 56,8 erros por página. Baixo contraste apareceu em cerca de 81%.
Ferramenta automática cobre de 30% a 40% dos critérios de sucesso. Os 57% que a Deque publica medem volume de problemas encontrados, que é outra conta. Somar os dois números é o erro mais comum em relatório de conformidade.
Meça na página renderizada, e não na folha de estilo. O que importa é o contraste que sobrou depois da cascata (a soma das regras de estilo que a página aplica). Texto corrido pede 4,5:1, e componente de interface, como a borda do campo, pede 3:1 pelo critério 1.4.11. Gere e depois verifique, nessa ordem.
A defesa que dura é o laço de avaliação com cenários congelados. A Vercel mantém sete cenários fixos: mesmo pedido, mesmos dados falsos, mesma janela. Todos rodam a cada mudança do design.md (o sistema de design escrito para o agente ler), em Claude Opus 4.8 e em Codex com GPT-5.5.
Pessoas julgam hierarquia, composição e se a página entrega o que o leitor veio buscar. Checagens automáticas pegam a falha mecânica, como a tabela que ignora a largura.
Cada correção aceita vai para o lugar mais estreito: julgamento vira prosa no design.md, mecânica repetível vira CSS, o que dá para checar vira teste. Pedido novo vira cenário novo. O arquivo nomeia os padrões gerados que a empresa nunca quer ver, porque o nome faz o agente reconhecê-los.
O laço de avaliação em quatro passos
| Passo | O que a Vercel faz | O que você faz no seu projeto |
|---|---|---|
| Cenário fixo | Sete cenários congelados, com o mesmo pedido, os mesmos dados falsos e a mesma janela | Três telas da sua empresa, com pedido e dados de exemplo guardados num arquivo |
| Gerar | Cada mudança do design.md roda os sete cenários em dois agentes | Cada mudança do seu sistema de design regenera as três telas |
| Julgar e medir | Pessoas julgam hierarquia, composição e tarefa; checagens determinísticas pegam falha mecânica | As sete dimensões da tabela, mais o contraste medido na página renderizada |
| Corrigir no lugar mais estreito | Julgamento vira prosa, mecânica vira CSS, o que dá para checar vira teste; pedido novo vira cenário | Cada marca da tabela vira uma linha no sistema de design, no CSS ou num teste |
O laço só funciona se o cenário não muda entre uma rodada e outra; mudar o pedido junto com o sistema esconde a causa.
Fonte: Vercel, How our agents build on-brand pages with design.md, 31 de agosto de 2026, com a coluna do leitor escrita pelo autor.
Duas medições cabem antes do código. A skill frontend-design manda revisar o plano contra o briefing com o teste do prompt vizinho. Se um pedido parecido daria o mesmo plano, o plano era default. Depois da tela pronta, a autocrítica com print e a regra de tirar um acessório fecham a rodada.
Montar componentes de um sistema é o que a IA já faz. Gosto curado, pesquisa e julgamento são o que resiste, e o laço guarda isso em cenário, nota e correção registrada.
Escolha três telas reais do seu projeto e guarde o pedido completo e os dados de exemplo de cada uma num arquivo fixo. Ajustar o pedido a cada rodada esconde se a melhora veio do sistema ou da sorte.
Gere as três sem retoque manual e marque os sinais das sete dimensões e o contraste na página renderizada, nos dois temas. Registre cada correção no lugar mais estreito, prosa no sistema de design, regra mecânica no CSS, checagem repetível em teste, antes de regenerar e comparar as contagens.
Construir o painel final em três pedidos e conferir antes de publicar
Com a medida e o laço de avaliação de pé, o projeto final pode ser pedido em três etapas: plano de tokens, revisão contra o briefing e construção com autocrítica.
Três pedidos ao agente bastam para um painel responder a uma pergunta só, como quantas turmas abrem no próximo semestre. O agente é o assistente de inteligência artificial que escreve o código por você. Plano, revisão contra o briefing e construção com autocrítica são as três etapas.
A revisão é o que pega o fundo creme com terracota que qualquer briefing genérico daria e o troca pela cor da marca. Uma tela que passa pelas dez perguntas de triagem antes de publicar nasce dessa mesma sequência de três pedidos.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Vale a regra de ouro de uma decisão por tela. Antes do primeiro pedido, escreva qual decisão aquela tela ajuda a tomar. Um painel que existe para responder "vou bater a meta do mês" precisa de poucos números certos; cada número a mais disputa atenção com a decisão.
Escreva também o briefing (o pedido com o que a tela faz, para quem e com que conteúdo real). A skill frontend-design (o roteiro de design do agente) manda identificar assunto, público e trabalho principal da tela antes de desenhar, e confirmar com você. Tela desenhada com conteúdo de mentira vira template.
O primeiro pedido produz só o plano compacto, sem código. Cor: quatro a seis hexadecimais com nome, cada um deles um token (o valor da cor guardado com nome, como a etiqueta na lata de tinta). Tipografia: uma ou duas famílias e o papel de cada uma.
Layout: o conceito numa frase, um wireframe em texto (o esboço em caixas, como a planta baixa da loja) e o alinhamento, à esquerda, centrado ou justificado. Princípios: o que torna esta tela diferente de qualquer outra. Pedir o gráfico antes desse plano obriga a refazer o gráfico depois, porque a cor e a grade mudam.
O segundo pedido revisa o plano contra o briefing com uma pergunta: um briefing parecido daria o mesmo resultado? O agente refaz o plano com um pedido semelhante e, onde chega ao mesmo lugar, aquela parte é padrão em vez de escolha. Ele troca essa parte e diz o que mudou e por quê.
Onde o seu briefing fixou o visual, ele vence, mesmo quando pede uma das cinco caras genéricas da aula anterior. Onde deixou o eixo livre, a liberdade não pode ir para um padrão. Só depois dessa revisão o agente escreve código, seguindo o plano revisado e cuidando da especificidade dos seletores de CSS para uma regra não anular a outra.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O terceiro pedido constrói e se autocritica. Ousadia num lugar só: um elemento memorável, tudo ao redor quieto, e um enfeite a menos antes de entregar. O piso de qualidade entra sem anúncio: responsivo até o celular, foco visível no teclado, menos movimento respeitado, contraste nos dois temas.
Nesse ponto o agente tira o print da tela e olha para ele antes de responder, porque uma imagem vale mil tokens de descrição. Dentro desse pedido ficam as três partes do painel.
A fundação traz as cores dos dois temas e a pergunta; os cartões, a tendência marcada por ícone e por palavra. O gráfico tem largura e altura definidas no contêiner e cor própria em cada texto, porque caixa de largura zero aparece em branco, sem erro.
Por fim, a régua é o checklist de dez perguntas do manual, antes de publicar. Cada resposta aponta uma ferramenta: SEO real (aparecer na busca) pede meta-framework, poucos elementos ricos pedem SVG, milhares de redesenhos pedem Canvas. A décima é a mais esquecida: orçamento e medição entram no primeiro sprint, e a tela que chega sem eles volta ao plano.
As dez perguntas de triagem antes de publicar
| Pergunta | O que a resposta decide |
|---|---|
| A busca do Google importa de verdade? | Sim pede meta-framework (Next.js ou Astro), que gera a página no servidor |
| São poucos elementos ricos na tela? | SVG, que o leitor de tela lê e o tema colore |
| São milhares de redesenhos por segundo? | Canvas ou WebGL, com camada de texto paralela |
| É um editor com conectores entre caixas? | JointJS ou GoJS |
| O dado chega em tempo real? | Comece em ECharts |
| Precisa de velocímetro com identidade própria? | D3 sobre SVG |
| O servidor só empurra novidade, sem resposta do usuário? | SSE (o canal de mão única do servidor para a tela) |
| Há cálculo pesado no navegador? | WASM, só nesse trecho |
| Quanto boilerplate a equipe aceita no estado? | Pouco: Zustand ou Pinia; auditoria: Redux Toolkit |
| Orçamento de desempenho e medição já entraram? | Entram no primeiro sprint, antes de qualquer tela |
Responda as dez antes de publicar; a resposta que muda de ferramenta volta ao plano.
Fonte: Manual de referência Recursos de frontend moderno, edição setembro de 2026, seção 26 (checklist de triagem do guia de stacks).
Antes de escrever o primeiro pedido, fixe a pergunta que a tela responde e monte o briefing com conteúdo real. Peça o plano compacto sem código, depois a revisão com a pergunta do briefing parecido.
Só então peça a construção, com print e autocrítica. Passe as dez perguntas de triagem e volte ao plano em qualquer resposta que aponte para outra ferramenta.
Guia prático: rodar um detector de antipadrões na página publicada
A nota de cara de IA deste capítulo depende de alguém olhar a tela. Um detector determinístico, programa que aplica sempre as mesmas regras e devolve sempre o mesmo resultado, faz a parte mecânica dessa conferência em segundos e sem gastar crédito de modelo. A skill Impeccable, pacote de instruções de design para agentes como o Claude Code, traz um com 60 regras e roda por linha de comando, sem chave de API.
As regras se dividem em duas famílias. As de qualidade medem o que tem número: contraste abaixo de 4,5 para 1, linha com mais de 80 caracteres, entrelinha abaixo de 1,3, texto de interface menor que 11 px. As de padrão genérico apontam os vícios de tela gerada: cartão dentro de cartão, gradiente ciano ou roxo, borda colorida grossa num lado só, rótulo pequeno em caixa alta acima do título.
O detector entrega evidência, e a decisão continua sendo sua. Rodado na página deste curso em 06/10/2026, ele devolveu 307 achados. Dos 104 de contraste, 96 repetiam a mesma leitura: texto e fundo com a mesma cor, 1,0 para 1. Aberta no navegador, a página não tinha nenhum elemento com aquele cinza de fundo. O programa leu o fundo errado 96 vezes, e quem aceitasse o total sem conferir sairia corrigindo um defeito que não existe.
# Página publicada, na largura de computador (1280 por 800 é o padrão)
npx impeccable detect https://seusite.com.br/pagina
# A mesma página na largura de um celular
npx impeccable detect --viewport 390x844 https://seusite.com.br/pagina
# Só tipografia e layout, em JSON, para contar por regra
npx impeccable detect --json --scope type,layout src/app > achados.json
# Registrar uma exceção decidida, com o motivo
npx impeccable ignores add-value overused-font Inter --reason "Fonte da marca"Analista de marketing de uma escola de idiomas, responsável pela página de matrícula gerada com um agente
Educação, matrícula por formulário
Dor
A página passou na revisão visual da equipe, e mesmo assim os anúncios no celular convertiam metade do que convertiam no computador. Ninguém sabia dizer o que estava diferente.
Solução
Ela rodou o detector duas vezes, na largura de computador e na de celular, e separou os achados em três pilhas: defeito com número, escolha de estilo e leitura errada do programa. Pediu ao agente a correção só da primeira pilha.
Resultado
A pilha de defeitos tinha três itens no celular: o texto do botão com contraste de 3,2 para 1, parágrafos de 95 caracteres por linha e um rótulo de 10 px. Os três foram corrigidos numa tarde e a segunda rodada veio limpa neles.
Cenário construído para fins didáticos. Números não correspondem a cliente específico.
Do relatório do detector à lista curta de correções
Seis passos. O relatório bruto assusta pelo volume; o trabalho é reduzi-lo ao que vale corrigir.
Passo 1: Rode na página publicada, não no arquivo
Passe a URL. O detector abre a página num navegador próprio e mede o que foi desenhado: cor calculada, largura real da linha, tamanho final da letra. No arquivo de código ele só lê o que está escrito.
Deu certo quando: O relatório cita valores medidos, como "3,2:1" e "~95 caracteres", e não só nomes de classe.
Erro comum: Rodar numa pasta de código com estilos montados em tempo de execução e concluir que a tela está limpa.
Passo 2: Repita na largura de celular
Acrescente --viewport 390x844. Linha longa some no celular e letra pequena aparece; as duas rodadas se completam.
Deu certo quando: Você tem dois relatórios e sabe qual achado pertence a qual largura.
Erro comum: Aprovar pela janela de 1280 px uma página cujo tráfego pago chega quase todo pelo celular.
Passo 3: Conte por regra antes de ler um por um
Com --json, peça ao agente a contagem por regra e o trecho mais repetido de cada uma. Na página deste curso, 82 achados eram etiquetas de 10 px repetidas nos cartões.
Deu certo quando: A lista de centenas de linhas vira uma tabela de 10 a 20 regras.
Erro comum: Corrigir achado por achado quando a causa é um único estilo compartilhado.
Passo 4: Separe em três pilhas
Defeito medido: contraste, linha longa, entrelinha, letra pequena, título fora de ordem. Escolha de estilo: gradiente, rótulo acima do título, fonte muito usada. Leitura errada: achado que não se confirma ao abrir a página.
Deu certo quando: Cada regra da tabela está em uma pilha, com uma frase de justificativa.
Erro comum: Tratar opinião de estilo como erro e trocar a identidade da marca para agradar o programa.
Passo 5: Confirme no navegador o que parecer estranho
Contraste de 1,0 para 1 repetido dezenas de vezes, ou a maior parte do texto dada como escondida, pede conferência: inspecione o elemento e leia a cor de fundo calculada.
Deu certo quando: Você sabe dizer, para cada achado estranho, se o defeito existe na tela.
Erro comum: Repassar o total bruto ao cliente como se fosse a quantidade de problemas da página.
Passo 6: Corrija a primeira pilha e registre as exceções
Peça ao agente a correção dos defeitos medidos, na causa compartilhada. O que ficou por decisão entra em impeccable ignores, com o motivo escrito, e rode de novo.
Deu certo quando: A segunda rodada mostra menos achados nas regras corrigidas e nenhuma exceção sem motivo.
Erro comum: Silenciar uma regra inteira para o número cair.
No fim você tem: Uma lista curta de defeitos com número, corrigidos na causa, e um arquivo de exceções em que cada item tem dono e motivo.
Na página deste curso, a triagem ficou assim. Entraram na pilha de defeitos os 49 parágrafos com linha acima de 80 caracteres, as etiquetas de 10 px e o texto justificado sem hifenização do bloco do e-book, que abre buracos entre as palavras em tela estreita. O bloco do e-book ganhou hifenização automática no mesmo dia e continuou justificado, como o restante do portal. O gradiente ciano e os rótulos acima dos títulos ficaram na pilha de estilo, e os 96 contrastes de 1,0 para 1 na de leitura errada.
Guia prático: auditor que não editou e nada na tela sem aprovação
Quem fez a página não enxerga os próprios erros, e com agente acontece o mesmo. No curso de edição de vídeo estudado em 07/10/2026, a primeira entrega do vídeo longo saiu com 150 erros. A partir daí, cada capítulo passou por um auditor independente, um agente que não editou nada, só lista o problema com prova e gravidade e propõe a correção. Ele encontrou de 9 a 17 erros por capítulo que o editor tinha dado como prontos.
A regra de conteúdo do mesmo curso vale para página: nada na tela que a pessoa não disse ou não aprovou. Número, nome e marca só aparecem se vieram dela. Quando o tema é de terceiros, entra o material real, como o logo oficial ou o número consultado na fonte, e a origem de cada item vai para um arquivo de entrega junto do trabalho, que lá se chama EDICAO.md.
O terceiro hábito é conferir por script o que o lint não vê. Um verificador abre a página, avança a animação de 0,2 em 0,2 segundo e mede cada caixa: texto cortado, caixa sobre caixa, texto pequeno demais. O material registra o tropeço que motivou isso: um ajudante marcou todo bloco como sobreposição permitida e deixou a checagem cega.
Você é o auditor desta página. Você não editou nada e não vai corrigir nada.
Página: [endereço da pré-visualização]
Pedido original: [arquivo do briefing]
O que foi aprovado: [arquivo com textos, números e imagens aprovados]
Abra a página em 390 px e em 1440 px. Liste cada problema numa tabela:
# | gravidade (alta, média, baixa) | onde | o que está errado | prova | correção proposta
Conte como problema:
- número, nome, logo ou depoimento que não está no arquivo de aprovados;
- texto cortado, caixa sobre caixa ou texto abaixo de 16 px;
- link que não leva a lugar nenhum.
Responda em no máximo 10 linhas além da tabela.Separar quem faz de quem confere
Cinco passos para a revisão final de uma página feita com agente.
Passo 1: Escreva o arquivo do que está aprovado
Liste textos, números, logos, depoimentos e imagens que você aprovou, com a origem de cada um. É a base contra a qual o auditor confere.
Deu certo quando: Todo elemento da página aparece no arquivo, com origem.
Erro comum: Aprovar pela conversa e não ter onde conferir depois.
Passo 2: Abra uma conversa nova para o auditor
O auditor não pode ser a mesma sessão que construiu. Passe o pedido do bloco de código, a página e os dois arquivos, e peça só a lista.
Deu certo quando: Você recebe uma tabela com prova em cada linha.
Erro comum: Pedir ao mesmo agente que construiu para revisar o próprio trabalho.
Passo 3: Tire da tela o que não foi aprovado
Item sem origem no arquivo sai ou espera aprovação. Material de terceiros entra real: logo oficial, número consultado na fonte com data, página de verdade.
Deu certo quando: Nenhum item da tabela de alta gravidade sobra sem decisão.
Erro comum: Manter a estatística bonita que o agente acrescentou porque "parece certa".
Passo 4: Rode o verificador de caixas
Peça um script que abra a página em três larguras e meça cada texto: cortado, sobreposto sem marca de intenção, abaixo do piso. Sobreposição de propósito ganha marca explícita, uma por uma.
Deu certo quando: O script volta sem achado ou com cada achado explicado.
Erro comum: Marcar tudo como sobreposição permitida para o script parar de reclamar.
Passo 5: Entregue com o arquivo de origem
Junto da página, guarde o arquivo de entrega: o que foi feito, de onde veio cada material, o que foi gerado por IA e o que você ainda precisa conferir antes de publicar.
Deu certo quando: Quem pegar o projeto amanhã sabe a origem de cada item da tela.
Erro comum: Publicar e perder o registro de onde veio cada número.
No fim você tem: Uma página revisada por quem não a construiu, sem nada que você não aprovou e com a origem de cada item guardada.
Coordenador de marketing de uma escola de idiomas em Recife, finalizando a página de matrícula do semestre
Educação, captação de matrícula
Dor
A página tinha uma faixa com a taxa de aprovação dos alunos e logos de universidades parceiras que ele nunca tinha informado. O agente tinha completado a seção de prova social por conta própria.
Solução
Ele montou o arquivo de aprovados com os dados da secretaria e abriu uma conversa nova como auditor. A tabela apontou a taxa e os logos sem origem; os dois saíram até a secretaria confirmar.
Resultado
A página foi ao ar só com dados que a escola consegue sustentar, e o arquivo de origem passou a acompanhar as próximas páginas.
Cenário construído para fins didáticos. Números não correspondem a cliente específico.
Laboratório visual: construir o projeto final, medir a cara de IA e revisar
Briefing, versão candidata, medição, crítica e entrega revisada
Escolha seu próximo encontro.
Oficina de cerâmica. Sábado, às 14h. Veja os horários antes de reservar.
Consultar horáriosA versão revisada oferece assunto, horário e uma ação específica. Compare a ordem de leitura e o espaço disponível.
Seu caderno neste capítulo
Abrir o caderno completoSelecione um trecho do capítulo para destacar ou anotar. Nos vídeos e áudios, use Anotar este momento. No teclado, selecione com Shift e as setas e use Alt+Shift+D para destacar ou Alt+Shift+N para anotar.
Salvo neste navegador. Entre na sua conta para levar o caderno a outros aparelhos.
Entre na sua conta para compartilhar o que aprendeu e convidar alguém para estudar com você.
Conexões deste capítulo
Veja o que estudar antes e para onde seguir depois, explore os conceitos e compare abordagens em outros cursos. Sugestões marcadas como “sugerido pelo grafo” vêm dos assuntos em comum, não do índice do curso.
Estude antes
- CursoClaude Code CLI: Programação com IA
- Anatomia de uma Skill: Divulgação Progressiva em Três Níveissugerido pelo grafoApresenta o conceito “Skill (Agent Skill)”, usado em “Construir o projeto final, medir a cara de IA e revisar”.
- Frontend vs Backendsugerido pelo grafoApresenta o conceito “Frontend”, usado em “Construir o projeto final, medir a cara de IA e revisar”.
- CursoVídeo com IA: Claude Code, Codex e ElevenLabssugerido pelo grafo20 capítulos de “Frontends com Vibecoding” usam conceitos apresentados em “Vídeo com IA: Claude Code, Codex e ElevenLabs”.
Depois, siga para
- CursoPrompt Engineering para Executivossugerido pelo grafo7 capítulos de “Prompt Engineering para Executivos” usam conceitos apresentados em “Frontends com Vibecoding”.
- CursoLLM FinOps: o custo da IA para quem assina o orçamentosugerido pelo grafo3 capítulos de “LLM FinOps: o custo da IA para quem assina o orçamento” usam conceitos apresentados em “Frontends com Vibecoding”.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- SEO ProgramáticoTestar o template no pior caso e achar o tetoExaminar conexões de Testar o template no pior caso e achar o teto
- Bastidores: Como Este Portal Foi ConstruídoO motor de cursos: conteúdo como códigoExaminar conexões de O motor de cursos: conteúdo como código
- Software e IA para executivosDecidir o que roda no servidor e o que vai ao celularExaminar conexões de Decidir o que roda no servidor e o que vai ao celular
- MCP com Chrome: Automação com IADescobrir o que a IA não vê na página que você vêExaminar conexões de Descobrir o que a IA não vê na página que você vê
Voltar ao capítulo anterior: Planejar a modernização e publicar com reversão
Leve uma ideia para a prática
Escolha uma atividade no painel e volte a este curso quando quiser.
Atividades e evolução ficam reunidas no painel da sua conta.
Laboratórios ao vivo deste curso
Cada laboratório monta a biblioteca real dentro da aula, com controles para você mexer e o código do exemplo para copiar. O texto de reserva descreve a demonstração para quem lê sem JavaScript. O link abre o capítulo já no ponto do laboratório.
Base UI
Prenda o foco num diálogo sem escrever o comportamento
Abra a janela Agendar visita, percorra os campos com Tab, feche com Esc e acompanhe no painel onde o foco está e para onde ele volta.
Pacote
Abrir no capítuloConstruir componentes, usar o registro e publicar o catálogo@base-ui/reactLucide e Iconify
Mantenha uma família de ícones coerente e nomeie cada botão
Mude tamanho, traço e cor da barra, veja o símbolo do Iconify acompanhar o Lucide e rode a auditoria de nomes acessíveis.
Pacote
Abrir no capítuloProjetar uma linguagem de ícones e ilustraçãolucide-react, @iconify/reactMotion
Testar os três sinais que autorizam o terceiro degrau
Reproduza a entrada em sequência, aperte o botão com mola e arraste o cartão; ajuste rigidez e amortecimento e veja o que muda.
Pacote
Abrir no capítuloProjetar movimento, assinatura e narrativas por rolagemmotionVidstack
Ver o que separa um player de um vídeo cru
Dê o play, troque a velocidade e ligue a legenda; o painel ao lado mostra o estado que o player publica e que a etiqueta crua esconde.
Pacote
Abrir no capítuloProjetar movimento, assinatura e narrativas por rolagem@vidstack/reactcmdk
Achar um destino entre quarenta digitando três letras
Abra a paleta, digite fat e escolha um item só pelo teclado; o painel embaixo conta o que o filtro deixou passar e quanto tempo levou.
Pacote
Abrir no capítuloConstruir formulários e estados de interaçãocmdknumber-flow
Animar indicadores que mudam ao vivo com formato pt-BR
Veja três indicadores fictícios rolarem a cada troca e compare com o número em texto puro. Pause, reinicie e observe o separador de milhar.
Pacote
Abrir no capítuloProjetar gráficos e painéis pela decisão@number-flow/reactApache ECharts
Medir o custo de desenhar 200 mil pontos com o ECharts
Troque o tipo de gráfico e o volume de pontos, leia o tempo de desenho e alterne o eixo em zero. Mude o tema do site e veja as cores refazerem.
Pacote
Abrir no capítuloProjetar gráficos e painéis pela decisãoechartssharp e svgo
Escolher a variante certa da imagem e conferir o teto de 150 KB
Arraste a largura da tela simulada, troque a densidade entre 1x e 2x e veja qual arquivo o navegador escolhe, quanto ele pesa e se cabe no orçamento.
Pacote
Abrir no capítuloValidar desempenho, autenticação e segurançasharp, svgoReact Flow (xyflow)
Disparar um pedido e ver o orquestrador distribuir, conferir e responder
Alterne paralelo e sequencial, ligue e desligue a verificação e use a medição real; observe o tempo de parede em cada combinação.
Pacote
Abrir no capítuloConstruir as cenas do orquestrador, do paralelismo e do robô@xyflow/reactGSAP, Web Workers e number-flow
Dividir mil tarefas entre trabalhadores reais e correr três ritmos de geração
Execute com um trabalhador, depois com quatro e oito, e compare o tempo; em seguida percorra a corrida e separe a espera inicial do ritmo.
Pacote
Abrir no capítuloConstruir as cenas do orquestrador, do paralelismo e do robôgsap, @number-flow/reactThree.js com React Three Fiber, drei, Rapier e XR
Carregar o braço robótico, ver a física trabalhar e entrar na cena com o visor
Carregue a cena pelo botão, inicie o ciclo, mostre os ângulos das juntas, troque a câmera e a velocidade; com visor, entre em realidade virtual.
Pacote
Abrir no capítuloConstruir as cenas do orquestrador, do paralelismo e do robôthree, @react-three/fiber, @react-three/drei, @react-three/rapier, @react-three/xrMotion
Ver quatro agentes em raias trocando mensagens e a revisão devolvendo um trecho
Reproduza os 60 s de modelo, percorra o tempo pelo controle e esconda as mensagens para comparar a leitura; repare no tempo de parede contra a soma.
Pacote
Abrir no capítuloEspecificar, medir e produzir as cenas da máquinamotionMediaRecorder, Canvas 2D e Long Animation Frames (plataforma)
Medir o quadro da cena e gravar seis segundos dela em vídeo
Suba as partículas, force um bloqueio de 300 ms e leia o medidor; depois grave seis segundos, veja o codec escolhido e baixe o arquivo.
Pacote
Abrir no capítuloEspecificar, medir e produzir as cenas da máquinasem pacotesigma.js, graphology com ForceAtlas2 e cosmos.gl
Ver o grafo real do curso e um grafo de milhares de nós se organizarem em aglomerados
Rode o layout no grafo real, passe o mouse pelos nós e busque uma entidade; troque para 20 mil nós e leia o medidor; depois carregue o modo massivo na placa de vídeo.
Pacote
Abrir no capítuloAnimar um grafo de conhecimento amplo em movimentosigma, graphology, graphology-layout-forceatlas2, graphology-generators, @cosmos.gl/graph
Capítulos vizinhos em Frontends com Vibecoding
- 21Validar desempenho, autenticação e segurança
- 22Planejar a modernização e publicar com reversão
- 23Construir o projeto final, medir a cara de IA e revisar
- 24Comparar modelos e interpretar benchmarks
- 25Calcular custo por tarefa e definir governança