ui-screenshots
Ajuda seu agente a tirar 'prints' de aplicativos web. Ele captura telas inteiras ou partes específicas. Útil para documentar ou mostrar o visual de interfaces durante o desenvolvimento.
O que ela faz
Esta ferramenta tira 'fotos' de sites ou aplicativos enquanto você os está desenvolvendo. Ela ajuda a ver como as coisas estão mudando visualmente.
Quando usar
- ✓Para registrar como um site está antes de fazer alterações.
- ✓Para mostrar estados específicos, como um menu que aparece ao passar o mouse.
- ✓Para capturar apenas uma parte de uma tela sem ter que tirar uma foto de tudo de novo.
Exemplo do que pedir para a IA
“Tire uma foto do meu site em http://meusite.com”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa um programa chamado Playwright para 'ver' o site e tirar uma foto completa. Depois, ela usa outra ferramenta (PIL) para cortar a foto e mostrar apenas a parte que você quer.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill ui-screenshotsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/ui-screenshots/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Capturas de Tela da UI
Capture capturas de tela de aplicativos web e UIs gráficas durante o desenvolvimento para documentar mudanças visuais.
Quando Usar Esta Habilidade
Use esta habilidade quando precisar:
- Capturar o estado atual de um aplicativo web em execução
- Documentar uma UI antes e depois de uma mudança de código
- Fazer capturas de tela de estados interativos (tooltips, hovers, elementos selecionados)
- Capturar seções específicas de uma página sem precisar tirar uma nova captura de tela
Pré-requisitos
pip install playwright Pillow -q
playwright install chromium
Fluxo de Trabalho Principal
1. Tire uma captura de tela bruta de página inteira
from playwright.async_api import async_playwright
async def capture(url="http://localhost:3000", out="screenshot-raw.png", width=1400, height=5000):
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page(viewport={"width": width, "height": height})
await page.goto(url, wait_until="networkidle")
await page.wait_for_timeout(4000) # let charts/animations render
await page.screenshot(path=out, full_page=True)
await browser.close()
- Use uma viewport alta (altura=5000) para que a página renderize tudo sem rolagem
wait_until="networkidle"+wait_for_timeout(4000)garantem que os gráficos assíncronos sejam carregadosfull_page=Truecaptura todo o conteúdo rolável
2. Visualize a imagem bruta e, em seguida, corte com PIL
NÃO tente obter cortes perfeitos através do parâmetro clip do Playwright. Ele é não confiável com capturas de página inteira.
from PIL import Image
img = Image.open("screenshot-raw.png")
cropped = img.crop((left, top, right, bottom)) # adjust based on what you see
cropped.save("screenshot-final.png")
- Tire a captura de tela bruta
- Visualize-a para ver as posições reais dos pixels
- Corte com PIL com base no que você vê
- Visualize o resultado — se não estiver certo, corte novamente (instantâneo, sem necessidade de nova captura)
3. Itere no corte, não na captura
- Tirar novas capturas de tela é lento (inicialização do navegador + carregamento da página + espera de renderização)
- Cortar novamente é instantâneo (apenas PIL)
- Obtenha uma boa captura bruta e, em seguida, fatie-a quantas vezes forem necessárias
4. Estados interativos
element = page.locator("selector").first
await element.hover()
await page.wait_for_timeout(1000) # let tooltip appear
await page.screenshot(path="screenshot-hover.png", full_page=True)
Para o estado "selecionado" sem efeito de hover, mova o mouse para longe após clicar:
await element.click()
await page.mouse.move(300, 300) # move away so hover doesn't show
await page.wait_for_timeout(500)
await page.screenshot(path="screenshot-selected.png", full_page=True)
5. Capturas específicas de seções
Corte diferentes seções de uma única captura de tela de página inteira:
img.crop((0, 200, 920, 900)).save("screenshot-header.png")
img.crop((0, 900, 920, 1600)).save("screenshot-main.png")
Diretrizes
- Sempre capture o estado ANTES de fazer qualquer alteração — se você esquecer, terá que reverter o código para obter uma captura "antes"
- Pares de antes/depois devem usar a mesma largura de viewport e corte — caso contrário, a comparação é inútil
- Para obter um "antes" depois de já ter alterado o código: use
git checkout HEAD~1 -- <files>para reverter, tirar a captura de tela e, em seguida,git checkout HEAD -- <files>para restaurar - Para estados interativos: capture antes E depois para cada estado — não assuma que o "normal" antes cobre todos os casos
- Use
device_scale_factor=1no Playwright para forçar pixels 1x para que as capturas de tela correspondam ao que os usuários veem com zoom de 100% - Gráficos precisam de tempo de espera extra — Plotly, D3, etc. renderizam de forma assíncrona; 4s no mínimo após networkidle
- Viewport estreita revela bugs de renderização — alguns problemas de borda/alinhamento só aparecem em larguras específicas
Capturas de Tela de Aplicativos Não Web
Para aplicativos de desktop (VS, WPF, WinForms, aplicativos de console, terminais) onde o Playwright não pode alcançar.
mss + ctypes (recomendado para janelas de desktop)
Encontre uma janela pelo título via API Win32, capture sua região com mss. Testado a ~33ms por captura.
import ctypes
from ctypes import c_int, Structure, byref, windll
import mss
from PIL import Image
user32 = windll.user32
def find_window(title_contains):
"""Encontra janelas visíveis que correspondem a uma substring do título."""
results = []
WNDENUMPROC = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_void_p)
def cb(hwnd, _):
if user32.IsWindowVisible(hwnd):
buf = ctypes.create_unicode_buffer(256)
user32.GetWindowTextW(hwnd, buf, 256)
…
Perguntas frequentes
Preciso instalar algo?
Sim, você precisa instalar as ferramentas 'playwright' e 'Pillow' e depois baixar os componentes do Playwright para o navegador Chromium.
Por que não posso simplesmente cortar a foto diretamente no Playwright?
Cortar diretamente no Playwright pode ser impreciso, especialmente com páginas inteiras. É mais fácil tirar uma foto completa e depois usar a ferramenta PIL para cortar com precisão.
E se eu quiser tirar uma foto de um aplicativo que não está na web, como o VS Code?
Para aplicativos de desktop, você pode usar uma abordagem diferente com as bibliotecas 'mss' e 'ctypes' para encontrar a janela e tirar uma foto dela, desde que ela esteja visível na tela.
Detalhes
Descrição original do autor
Capture screenshots of web apps during development using Playwright and PIL. Supports full-page captures, interactive states, and an iterate-on-crop workflow that avoids slow re-screenshots.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5403
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
design-system
Ajuda seu agente a criar um sistema de design a partir de um código existente. Ele extrai informações visuais e verifica a consistência, gerando um relatório e uma prévia interativa.
affaan-m/ECC
liquid-glass-design
Ajuda seu agente a criar interfaces de usuário com efeito 'Liquid Glass' para iOS. Permite adicionar efeitos visuais dinâmicos e interativos em SwiftUI e UIKit.
affaan-m/ECC