Communitygithub.com

Layout Witness

Construa e refine layouts web com guias persistentes do navegador, da estrutura da página aos controles individuais. Use ao implementar ou revisar alinhamento, espaçamento, tipografia, ícones ou layout responsivo em uma página em execução.

O que é Layout Witness?

Layout Witness é uma habilidade para assistentes de IA (como Claude Code, Cursor ou Codex) que permite inspecionar e ajustar layouts web diretamente no navegador, com guias visuais persistentes e medições precisas. Ela se conecta a uma aba de desenvolvimento existente via extensão Chrome e um servidor local, fornecendo comandos de terminal para selecionar elementos, medir suas propriedades (box model, margens, preenchimento, tipografia, grade) e comparar com regras de projeto. Opcionalmente, possui um modo autônomo com Playwright para capturas em diferentes larguras de viewport e temas, ideal para automação. É útil durante a implementação ou revisão de alinhamento, espaçamento, tipografia, ícones e layout responsivo, ajudando a garantir consistência visual e aderência aos tokens de design.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/byceebee/skills/tree/HEAD/skills/layout-witness

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Layout Witness faz?

Torce a página mais fácil de escanear e usar. Dê a elementos relacionados um agrupamento claro, mantenha componentes repetidos consistentes e preserve essas relações conforme o conteúdo e o tamanho da viewport mudam. Use os guias para decidir o que corrigir enquanto edita.

Use a extensão Chrome na aba de desenvolvimento existente. Emparelhe sua conexão de agente local para controlar guias e ler medições de página e elementos como JSON no terminal. Use a CLI opcional do Playwright para capturas não supervisionadas em contextos de navegador frescos.

Conectar-se à aba existente

Carregue o diretório completo da habilidade layout-witness como uma extensão não empacotada em chrome://extensions. Use Chrome 116 ou posterior.

  1. Defina WITNESS_DIR como o diretório da habilidade instalada. Execute (cd "$WITNESS_DIR" && npm ci --omit=dev) uma vez, depois inicie node "$WITNESS_DIR/scripts/agent.mjs" serve em um terminal persistente.
  2. Abra o Layout Witness na barra de ferramentas na aba de desenvolvimento. Em Agent access, cole a URL de emparelhamento impressa pelo terminal e escolha Connect agent. Isso autoriza a aba. Se o acesso estiver ausente, peça ao usuário para emparelhar essa aba uma vez.
  3. Use a CLI de qualquer terminal na mesma máquina. Mantenha o servidor local em execução durante as edições.
node "$WITNESS_DIR/scripts/agent.mjs" start
node "$WITNESS_DIR/scripts/agent.mjs" select 'header [aria-label="Search"]'
node "$WITNESS_DIR/scripts/agent.mjs" measure
# Edite o CSS do projeto e aguarde o servidor de desenvolvimento aplicá-lo.
node "$WITNESS_DIR/scripts/agent.mjs" measure

measure imprime regiões da página, resultados de verificação e o elemento atualmente selecionado quando disponível. Esse elemento pode incluir sua caixa renderizada, margem, borda, preenchimento, valores de grade e gap, tipografia (incluindo linha de base Y da viewport quando mensurável) e geometria SVG. Use um seletor que corresponda a um elemento visível. Mantenha a seleção enquanto edita e leia seu JSON novamente depois que o navegador aplicar a alteração.

Use status para verificar a conexão, clear para remover apenas o guia do elemento, pick para seleção manual por clique, import <rules.json> para carregar regras do projeto e defaults para restaurar regras padrão. Use stop para remover ambos os guias e limpar a seleção para uma revisão limpa. Use start e select para retomar. Use disconnect quando terminar se a aba deve parar de aceitar comandos. Recarregamentos de mesma origem podem restaurar guias e uma seleção na mesma rota. Uma origem diferente ou fechamento da aba encerra o emparelhamento.

Para revisão manual, use Start guides, Inspect element e Stop guides no pop-up da barra de ferramentas. Download report está disponível quando você deseja salvar uma cópia.

Trabalhar com os guias ativos

  1. Defina o layout esperado. Leia as regras de layout e componente do projeto, depois verifique os tokens existentes e componentes irmãos aceitos. Anote as relações que importam para a tarefa, como uma borda de leitura compartilhada, um gap entre grupos de navegação ou o preenchimento inline de um botão. Em uma nova página, escolha essas relações a partir do briefing e registre suas suposições. Trate a grade padrão da extensão como um guia exploratório.
  2. Inspecione da página ao elemento. Inicie os guias antes de editar. Capture o ponto de partida renderizado e selecione o elemento que possui o problema. Use o relatório para medições exatas quando os rótulos estiverem sobrepostos. Para uma nova página, inicie assim que a estrutura for renderizada e mantenha os guias ativos enquanto adiciona seções e controles.
  3. Edite o código-fonte com a seleção ativa. Compare o valor medido com o esperado. Corrija o CSS ou componente compartilhado que possui a relação. Quando o servidor de desenvolvimento aplicar a edição, verifique os guias e medições do mesmo elemento antes de escolher outro. Se um recarregamento substituir o elemento, confirme que a seleção restaurada ainda se refere ao controle pretendido. Registre o valor real, o valor esperado e o resultado medido.
  4. Revise a renderização limpa. Capture o guia corrigido primeiro, depois desligue os guias e inspecione a página real. Verifique agrupamento, hierarquia, alinhamento, quebra de linha e foco visível nas larguras onde o layout muda. Inclua rótulos longos ou conteúdo traduzido e estados relevantes abertos, recolhidos ou densos. Relate problemas restantes e as larguras e estados que você verificou.
EscopoO que inspecionar
Estrutura da páginaUse os guias da página para verificar bordas de leitura compartilhadas, margens externas e como o cabeçalho, barra lateral, área principal e rodapé se adaptam nos breakpoints. Na renderização limpa, verifique se as ações recorrentes permanecem fáceis de encontrar e a tarefa principal recebe a ênfase visual mais forte.
Grupos e componentes repetidosUse trilhas de grade locais para verificar alinhamento e extensões dentro de uma região. Compare o espaço entre grupos separadamente do preenchimento e gaps dentro de cada componente. Mantenha itens relacionados visivelmente agrupados e verifique a ordem de leitura quando os grupos empilham.
Elementos individuaisSelecione o controle para inspecionar sua caixa, preenchimento e gap entre ícone e rótulo. Compare a altura da linha e a linha de base entre rótulos que devem se alinhar. Revise o tamanho do ícone e traço dentro da mesma família, depois julgue o equilíbrio óptico no tamanho renderizado. Meça o destino interativo separadamente do seu glifo.

Para uma barra lateral congestionada, primeiro verifique se links relacionados são lidos como um grupo e se seções adjacentes têm um gap claro. Em seguida, selecione uma linha e compare seu recuo e gap entre ícone e rótulo com linhas equivalentes. Se o componente compartilhado exige 16 px em cada lado e o guia mostra 8 px em um lado, restaure o token e remeça a mesma seleção. Desligue o guia para verificar a barra lateral expandida e recolhida no contexto.

Use verificações rigorosas para expectativas explícitas como valores de tokens, alinhamento entre bordas nomeadas e overflow. Julgue hierarquia e equilíbrio óptico na página renderizada. Use a escala tipográfica do projeto para decidir se uma linha de base deve se alinhar.

Referências de design

  • Adobe Spectrum 2 explica como a proximidade sinaliza relacionamentos, como o espaçamento difere por escopo e como revisar espaçamento e traço de ícones dentro de uma família. Espaçamento · Fundamentos de ícones
  • Figma mostra como escolher guias para a página, regiões aninhadas, preenchimento de componentes e linhas de base de texto. Grades de layout
  • A reformulação do design do Linear é um estudo de caso em ações de cabeçalho previsíveis e hierarquia visual em um espaço de trabalho denso. Reformulação do design

Quando acessibilidade estiver no escopo, use WCAG para verificar reflow, substituições de espaçamento de texto do usuário e alvos de ponteiro reais, incluindo exceções aplicáveis. Reflow · Espaçamento de texto · Tamanho do alvo

Capturas não supervisionadas opcionais

Use a CLI quando a automação precisar de contextos de navegador frescos em diferentes larguras de viewport ou temas. Requer Node.js 22+ e Playwright Chromium. Defina WITNESS_DIR como o diretório da habilidade instalada e instale suas dependências lá:

(cd "$WITNESS_DIR" && npm ci && npx --no-install playwright install chromium)

Execute a CLI a partir do projeto para que seu caminho de configuração e saída sejam resolvidos lá:

node "$WITNESS_DIR/scripts/witness.mjs" capture http://localhost:3000 \
  --config ./layout-witness.json --width 1440 --width 390 --strict \
  --out .layout-witness/review

Leia a sobreposição gerada e o relatório JSON. O modo de captura abre uma nova página para cada largura e tema. Consulte a referência de regras para definições de região e verificação. Use watch para o fluxo de trabalho interativo da CLI.

Habilidades Relacionadas