Frontends com Vibecoding · Capítulo 23 de 30 · 25 min
Construir o projeto final, medir a cara de IA e revisar
Você sai com uma entrega que integra briefing, versão candidata, medição, crítica e entrega revisada.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding. Para marcar como concluído e salvar o progresso, abra este capítulo na página do curso.
Um gráfico que some no tema escuro e um filtro que volta ao padrão a cada recarga são defeitos que a demonstração esconde e o primeiro dia de uso revela.
Toda tela que sai de uma conversa com um agente (o assistente de inteligência artificial que escreve código por você) esconde o mesmo risco, o de parecer pronta sem estar. Um checklist por família de defeito nomeia o sintoma que aparece na tela, o antídoto que você pede ao agente e a contraprova do que a entrega boa tem antes de publicar.
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á.
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.
A escolha insegura é frequente. A Veracode publicou, em julho de 2025, um teste com mais de 100 modelos e 80 tarefas montadas para admitir uma saída segura e uma insegura. O código gerado trouxe falha do OWASP Top 10 em 45% dos casos. A injeção de conteúdo na página, o XSS, passou de 85% de falha. 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.
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.
A parte visual do checklist são 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 e abra a tela a 390 pixels nos dois temas. Procure os cinco sinais de paleta padrão no código e 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.
Medir a cara de IA: sete dimensões e o laço de avaliação
Uma varredura de mil sites declarados como feitos com inteligência artificial, entre janeiro e março de 2026, deu nota média de 61,4 em 100 na cara de IA. Os 200 sites desenhados por agências e marcas ficaram em 24,8, e nota alta é o lado ruim da escala. A distância mede sete dimensões: cor, tipografia, espaçamento, layout, padrões de componente, decoração e estrutura de conteúdo.
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.
A mediana foi 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.
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, e 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 do seu negócio, 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.
O projeto final em três pedidos, com plano, revisão e autocrítica
Três pedidos ao agente (o assistente de inteligência artificial que codifica por você) bastam para um painel responder a uma pergunta só, como quantas turmas abrem no próximo semestre. 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.
A regra de ouro é 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 exercício 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.
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.
A régua final é 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 o briefing com conteúdo real. Peça o plano compacto sem código, depois a revisão com a pergunta do briefing parecido, e só então 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.
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.
Todos os capítulos de Frontends com Vibecoding
- 01Projetar o briefing, o repertório da marca e o custo de manter
- 02Dirigir o prompt e avaliar a entrega do agente
- 03Escolher a stack e projetar suas dependências
- 04Investigar uma stack e priorizar atualizações
- 05Construir a identidade com tokens, CSS moderno e DESIGN.md
- 06Construir componentes, usar o registro e publicar o catálogo
- 07Projetar uma linguagem de ícones e ilustração
- 08Projetar menus, popovers e modais acessíveis
- 09Adaptar o layout ao celular e ao contêiner
- 10Projetar movimento, assinatura e narrativas por rolagem
- 11Preparar imagens, ícones e vídeo para a web
- 12Construir profundidade e dirigir a montagem de vídeo
- 13Construir formulários e estados de interação
- 14Publicar conteúdo encontrável em vários idiomas
- 15Projetar gráficos e painéis pela decisão
- 16Dimensionar tabelas e organizar o cálculo das métricas
- 17Escolher mapas, diagramas e cenas espaciais
- 18Comparar direção visual em Stripe e Apple
- 19Avaliar busca, conversão e padrões de comércio
- 20Auditar acessibilidade e contraste nos dois temas
- 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
- 26Supervisionar o modelo que opera o computador
- 27Configurar ambiente, skills e o contêiner de contexto
- 28Aplicar direção de arte, UX writing e padrões de código
- 29Construir um aplicativo instalável e resiliente
- 30Produzir apresentações e PDF com critérios de entrega