Frontends com Vibecoding · Capítulo 2 de 35 · 14 min
Escrever o pedido de uma tela sem deixar buraco
Você sai com um briefing em sete partes que nomeia assunto, público e tarefa, separa os eixos visuais fixos dos livres e fecha com o critério de sucesso.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding.
O capítulo anterior mostrou as três camadas e o que uma tela publicada custa. Falta transformar esse entendimento em um pedido com assunto, público, tarefa e critério de sucesso.
Um pedido de tela sem assunto, público e tarefa nomeados devolve a média de tudo o que o agente de IA já viu. Agente de IA é o programa que escreve o código do seu pedido, e essa média custa três rodadas de correção.
Escrito por partes, um briefing nomeia essas três coisas, fixa os eixos visuais que importam e diz o que conta como entrega boa. Eixo visual é cada decisão de aparência: cor, tipo de letra, fundo, ritmo das seções. Escrever tudo isso troca correção repetida por aprovação na primeira rodada.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Escreva o pedido em sete partes, na mesma ordem: objetivo, público, tokens (cores e espaçamentos da marca guardados com nome), layout, estados, acessibilidade e dados de exemplo. Layout é o arranjo das partes na tela, e acessibilidade é a página servir também quem enxerga pouco ou usa só o teclado.
Cada parte fecha um buraco onde o agente inventaria sozinho, e por isso pular uma delas transfere a decisão para o acaso.
A parte mais esquecida é a quinta, os estados. Estado é a situação em que a tela aparece: vazia, carregando, com erro e com sucesso. O rascunho bonito desenha só a última, e as outras três chegam com o cliente na frente do celular.
Um critério de aceite é a frase que diz, antes de começar, o que conta como entrega boa. "Contraste de 4,5:1 no texto" é critério de aceite; "bonito e moderno" é gosto.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O objetivo ganha três nomes concretos: o assunto da tela, o público que a usa e o trabalho principal que ela faz. A skill frontend-design (o roteiro de projeto visual que o agente lê) manda propor esses três quando o pedido não os traz, e confirmar com você.
Dessas três coisas saem as escolhas visuais próprias. A indústria, os materiais e o vocabulário do negócio decidem cor, tipo de letra e ritmo da página. Um brinquedo para meninas de oito a 11 anos e um painel para analista financeiro pedem desenhos que ninguém confunde.
No mesmo ramo vale o padrão. Uma pousada na serra tem madeira, lareira e hóspede cansado; um escritório de contabilidade tem prazo, guia de imposto e cliente que quer o número certo. Um agente que não recebe esses nomes desenha a mesma página para os dois, com o mesmo azul e o mesmo cartão arredondado.
Quem constrói por vibecoding, isto é, por conversa com o agente, instala a skill no próprio ambiente. Quem contrata escreve o mesmo briefing e pede que o fornecedor o use.
Divida os eixos visuais em dois grupos. Os que você fixa (a cor da marca, a fonte do logotipo, o fundo claro) o agente segue à risca. As palavras do briefing vencem a opinião dele, mesmo quando pedem um visual que ele acha batido.
Os que você deixa livres (o tipo de letra do corpo, o ritmo das seções, a ilustração) vêm com uma restrição. Nesses eixos o agente não pode gastar a liberdade nos padrões genéricos que aparecem em qualquer página gerada. A restrição precisa estar escrita, porque sem ela o agente escolhe o padrão.

Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Cinco padrões genéricos têm nome e cara, e você reconhece cada um em cinco segundos quando sabe o que procurar. Por isso a proibição vai pelo nome do padrão: pedir que a página não pareça feita por IA não dá ao agente nenhum critério de recusa.
Cinco padrões genéricos que o agente escolhe quando ninguém decide
| Padrão genérico | Como reconhecer | O que escrever no briefing |
|---|---|---|
| Fundo creme, título em serifa e detalhe cor de argila | Parece a página de qualquer produto de IA | Fundo e paleta fixados pela marca; sem tom terracota |
| Fundo quase preto com um único verde ácido ou vermelho | Parece site de startup de tecnologia | Tema claro por padrão; cor de destaque só a da marca |
| Colunas densas de jornal, linhas finas e canto reto | Parece jornal impresso na tela | Uma coluna de leitura; cantos e linhas conforme a marca |
| Tudo em cartões iguais, mesmo raio e mesma sombra cinza | Conteúdo picado em caixinhas idênticas | Cartão só onde há item repetido; hierarquia por tamanho |
| Rótulo em caixa alta sobre cada título, ponto no meio e seta no botão | O mesmo enfeite em qualquer assunto | Sem rótulo acima de título; o botão diz o que acontece |
Fixe o que a marca decide e proíba o resto pelo nome.
Fonte: Lista de calibração da skill frontend-design (anthropics/skills, commit 41bbe19 de 03/09/2026), traduzida e resumida pelo autor.
BRIEFING DE INTERFACE: página de matrícula da Escola de Idiomas Aurora
1. Objetivo: a família reserva uma aula experimental em até três toques, no celular.
2. Assunto, público e tarefa: escola de idiomas de bairro; pais de crianças de [6 a 12] anos, lendo à noite no celular; tarefa única: escolher idioma, turma e horário e confirmar.
3. Eixos fixos (siga à risca): verde da marca [#1f6f4a], fundo claro, fonte do logotipo [nome da fonte].
4. Eixos livres, com restrição: tipo de letra do corpo, ritmo das seções e ilustração. Proibido: fundo creme com título em serifa e detalhe terracota; fundo quase preto com verde ácido; cartões iguais com a mesma sombra; rótulo em caixa alta acima dos títulos; seta no texto do botão.
5. De onde vem o visual: [caderno pautado, giz, mapa-múndi na parede]; cor, textura e ilustração saem desses materiais, em vez de ícones genéricos.
6. Layout: uma coluna no celular; seletor de idioma, lista de turmas e botão de confirmar fixo no rodapé, acima da barra de gestos.
7. Estados: sem turma aberta ("Nenhuma turma aberta para [idioma]. Deixe seu telefone e avisamos."), carregando, erro de conexão e reserva confirmada.
8. Acessibilidade: contraste de 4,5:1 no texto, foco visível no teclado, alvo de toque de 44 px.
9. Dados de exemplo: idiomas [Inglês, Espanhol, Francês]; turmas às terças, 18h, e aos sábados, 9h; responsável "Marina Costa".
10. Critério de sucesso: a reserva sai em três toques, os quatro estados existem e o contraste foi medido.
Antes de escrever código, liste as escolhas de cor, tipo de letra e arranjo com o motivo de cada uma. Se alguma for a que você faria para qualquer escola, troque e diga o que trocou.Os materiais do assunto vencem o ícone de catálogo. Uma clínica de fisioterapia pedia a página com um estetoscópio genérico e trocou o pedido por maca, faixa elástica e toalha branca. O azul-petróleo da marca ficou fixo, e a ilustração ficou livre.
Dizer em voz alta o que a tela mostra quando não há horário livre é o teste de que o estado vazio já foi escrito. Quando a frase não sai, o estado não existe no briefing.
Antes de abrir o agente, escreva o briefing em sete partes. Nomeie assunto, público e tarefa em três linhas e separe os eixos que fixa dos que deixa livres, com a proibição dos cinco padrões genéricos.
Liste os quatro estados com o texto de cada um e feche com um dado de exemplo do seu ramo e o critério de sucesso com número. Confira se o texto cabe em dez linhas antes de colar na conversa com o agente.
Guia prático: o briefing que vira configuração do agente e teste automático
O briefing deste capítulo diz assunto, público, tarefa e critério de aceite. Entre maio e setembro de 2026, três peças passaram a carregar esse texto para dentro da máquina: skills que ensinam o agente a escolher recurso do navegador pelo público, servidores MCP (o protocolo que deixa o agente abrir e inspecionar um programa) para Chrome e Safari, e uma auditoria do Lighthouse que lista os recursos da página. Você sai daqui com uma linha de compatibilidade no briefing e cada critério medível transformado em teste.
Funções, casos de uso e aplicações
Funções
O que leva o briefing da conversa para a ferramenta
| Função ou recurso | O que faz | Quando usar | Desde |
|---|---|---|---|
| Modern Web Guidance (skills do Chrome para agentes) | Ensina ao agente práticas atuais de HTML, CSS, acessibilidade e segurança, e escolhe recurso e reserva pelo alvo Baseline que você declarar | No primeiro pedido de tela, junto com a linha de compatibilidade do briefing; está em prévia | 19/05/2026 |
| Baseline Checker com Google Analytics | Cruza o recurso com as visitas reais do site e mostra a fatia do público que já o tem | Antes de escrever o alvo de compatibilidade, para decidir pela fatia real do seu público | 19/05/2026 |
| Safari MCP (safaridriver --mcp) | Abre a página no Safari para o agente ler DOM, console, rede, acessibilidade e tirar print | Público com muito iPhone; exige Safari 27 ou Technology Preview, num Mac | 01/07/2026 |
| Auditoria Baseline Features do Lighthouse | Lista os recursos de plataforma que a página usa, inclusive de scripts de terceiros, com o selo Widely, Newly ou Limited | Como critério de aceite: nenhum recurso Limited sem reserva escrita | 27/07/2026 |
| Chrome DevTools MCP, edição de outubro | Plugins de agente, inspeção sem executar JavaScript, ferramentas de PWA e pilha de chamadas nas mensagens do console | Aceite de console limpo e de app instalável conferido pelo próprio agente | 22/09/2026 |
Baseline é o selo público que diz se um recurso já roda nos navegadores principais: Widely (há 30 meses), Newly (acabou de chegar a todos) ou Limited (falta em algum).
Casos de uso
Gerente de marketing de uma escola de idiomas em Belo Horizonte
Educação
Dor
A landing da matrícula de janeiro chegou com um seletor de turma bonito no computador do fornecedor e quebrado nos iPhones dos pais, que são a maioria das visitas.
Solução
Abriu o Baseline Checker com o Google Analytics da escola, escreveu no briefing "alvo Baseline Widely; recurso Newly só com reserva" e pediu ao agente que conferisse a página no Safari pelo Safari MCP antes de devolver.
Resultado
O que observar: na auditoria Baseline Features do Lighthouse, nenhum recurso Limited sem reserva; no GA4, a taxa de envio do formulário em iPhone contra Android nas duas semanas após a publicação.
Custo apurado: Sem custo de ferramenta; o Safari MCP pede um Mac com Safari 27.
Cenário construído para fins didáticos. Números não correspondem a cliente específico.
Dona de uma agência de tráfego pago em Florianópolis que entrega seis landings por mês
Marketing digital
Dor
Cada cliente recebia uma página com um defeito diferente no celular, e a revisão manual em três larguras tomava uma tarde por entrega.
Solução
Passou a escrever o critério de aceite como frases medíveis e pediu ao agente um teste do Playwright para cada uma, rodado antes de toda entrega: sem rolagem lateral em 390, 768 e 1440 px, botão principal visível sem rolar.
Resultado
O que observar: quantas entregas voltam do cliente com defeito de celular no mês seguinte, comparado ao mês anterior.
Cenário construído para fins didáticos. Números não correspondem a cliente específico.
Na prática
Neste portal, o critério de aceite do painel /admin tinha uma frase que qualquer pessoa confere olhando: nenhuma rolagem horizontal em 390, 768 e 1440 px. Ela virou o arquivo e2e/admin-sem-rolagem-horizontal.spec.ts, que abre oito rotas em cada largura e compara a largura do conteúdo com a da janela. O teste corta as chamadas externas e liga o movimento reduzido, para que a medida dependa só do layout. O mesmo caminho serve para qualquer frase do briefing que se responde com sim ou não.
const LARGURAS = [390, 768, 1440];
for (const largura of LARGURAS) {
test(`sem rolagem horizontal a ${largura} px nas oito rotas`, async ({ page }, info) => {
await preparar(page, info.project.use.baseURL);
await page.setViewportSize({ width: largura, height: 900 });
const estouros: string[] = [];
for (const rota of ROTAS) {
await page.goto(rota);
const medida = await page.evaluate(() => {
const raiz = document.documentElement;
return [raiz.scrollWidth, raiz.clientWidth];
});
// conteúdo mais largo que a janela = rolagem lateral
if (medida[0] > medida[1]) estouros.push(`${rota}: documento ${medida[0]} > ${medida[1]}`);
}
expect(estouros).toEqual([]);
});
}Do briefing ao teste que reprova a entrega
Passo 1: Leia o público antes de escolher o alvo
Abra o Baseline Checker ligado ao Google Analytics do site, ou a fatia de navegadores no GA4, e veja quanto das visitas vem de Safari e de aparelho antigo.
Deu certo quando: Você escreve o alvo Baseline com o número do público ao lado.
Erro comum: Copiar "funciona em todos os navegadores", frase que o agente não consegue testar.
Passo 2: Reescreva cada critério como pergunta de sim ou não
Troque "bom no celular" por "sem rolagem lateral em 390 px" e "rápido" por um número de LCP.
Deu certo quando: Cada linha do aceite pode ser conferida por uma máquina.
Erro comum: Deixar adjetivo no aceite e receber a opinião do agente como resposta.
Passo 3: Dê ao agente as ferramentas de conferência
Instale o servidor MCP do navegador que o público usa (Chrome DevTools ou Safari) e as skills do Modern Web Guidance, e diga no pedido que ele deve usá-los antes de devolver.
Deu certo quando: A resposta do agente traz o que ele abriu, o que viu e o que corrigiu.
Erro comum: Instalar o MCP e não pedir a conferência: ele fica parado.
Passo 4: Guarde os testes no repositório
Os testes do aceite ficam em e2e/ e rodam antes de toda entrega, da primeira à última.
Deu certo quando: A segunda versão da página passa pelos mesmos testes da primeira.
Erro comum: Apagar o teste quando ele reprova, em vez de corrigir a página.
No fim você tem: Um briefing que o agente executa e uma entrega que só chega a você depois de passar no próprio aceite.
Armadilhas
Critério que a máquina confere contra critério que ninguém mede
Evite
Coluna a evitar
- "Compatível com todos os navegadores", sem dizer qual alvo
- Aceitar a página porque o agente disse que testou, sem ver o relatório
- Tratar o Modern Web Guidance como auditoria de acessibilidade: é prévia e não cobre todo padrão
- Rodar a conferência só no Chrome quando metade das visitas vem do iPhone
Prefira
Coluna recomendada
- Alvo Baseline escrito, com a fatia real do público ao lado
- Pedir a lista da auditoria Baseline Features e o resultado dos testes na resposta
- Teclado, leitor de tela e contraste conferidos por você, mesmo com skill instalada
- Conferência no navegador que o público usa, pelo MCP correspondente
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 “Escrever o pedido de uma tela sem deixar buraco”.
- Frontend vs Backendsugerido pelo grafoApresenta o conceito “Frontend”, usado em “Escrever o pedido de uma tela sem deixar buraco”.
- CursoSíntese e didática com IAsugerido pelo grafoDepois de escolher a informação essencial e desenhar hierarquia, gráficos e fluxos compreensíveis, o aluno pode aplicar esses critérios às interfaces do curso de frontend. A ponte conecta clareza da mensagem, acessibilidade e decisões de apresentação.
Depois, siga para
- CursoAPI Design: REST, GraphQL e Boas Práticassugerido pelo grafoAs aulas de formulários do curso de frontend compartilham a validação entre navegador e servidor, e o estudo da Stripe separa o campo do cartão do sistema da loja. API Design aprofunda essa fronteira com contratos REST e GraphQL, autenticação e limites de chamadas no servidor.
- CursoPrompt Engineering para Executivossugerido pelo grafo6 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
- Skills de IA com Vibecoding e TerminalProjeto 1: Sua Primeira Skill FuncionalExaminar conexões de Projeto 1: Sua Primeira Skill Funcional
- Escrever bem com IAPedir a forma visual pelo defeito de leituraExaminar conexões de Pedir a forma visual pelo defeito de leitura
- Astra profundoConstruir um briefing com referências úteisExaminar conexões de Construir um briefing com referências úteis
- Síntese e didática com IAMonte sua biblioteca de prompts de síntese e revisãoExaminar conexões de Monte sua biblioteca de prompts de síntese e revisão
Terminou a leitura?
Marque como concluído para o capítulo contar no seu painel e no certificado.
Voltar ao capítulo anterior: Enxergar as três camadas de uma tela e o custo de manter
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
- 01Enxergar as três camadas de uma tela e o custo de manter
- 02Escrever o pedido de uma tela sem deixar buraco
- 03Levar o repertório da marca para o briefing antes do prompt
- 04Dirigir o prompt e avaliar a entrega do agente
- 05Escolher a stack e projetar suas dependências