Kit + skill · sites com IA

Sua referência vira o estilo do site

Junte 2 a 5 imagens de que você gosta. A IA pergunta antes de gerar, cria todas as imagens no mesmo estilo, monta a página com movimento e confere se o visitante ainda acha o botão.

Banner do site-inspirado: referências impressas sobre a mesa virando uma página web
Em resumo

O site-inspirado é um kit com uma skill para o Claude Code que cria sites que não têm cara de "feitos por IA". Você entrega imagens de referência (do Pinterest, do convite já impresso, da foto da loja) e a IA faz perguntas e pesquisa antes de gerar qualquer coisa. Depois ela mede o estilo dessas imagens, gera as imagens do site no mesmo estilo pelo Codex e monta a página com transições. No fim, um teste automático confere se o botão principal aparece e se a página funciona no celular. Para usar, você precisa do Claude Code, do Codex logado na sua assinatura, de Python e de Node.

O que é

O processo é o diferencial, não o código

Pedir "faz um site bonito" dá o mesmo site de sempre. Dar referência, responder perguntas e conferir o resultado dá um site com cara própria.

As seis etapas do site-inspirado: referências, perguntas, estilo medido, imagens no estilo, movimento e portão

🎯 Pergunta antes de gerar

Um roteiro de perguntas por tipo de site (evento, negócio, serviço, portfólio). O que a pessoa não respondeu é pesquisado ou fica de fora.

🖌️ Estilo medido

O estilo.py tira a paleta das referências e calcula o contraste. Todas as imagens recebem o mesmo prompt de estilo e as mesmas referências.

✅ Portão antes de publicar

O portao.js abre a página no computador e no celular e barra o site que esconde o botão, quebra ou ignora "reduzir movimento".

Como funciona

Seis etapas, uma conferência em cada

Nenhuma etapa começa sem a anterior aprovada. O guia abaixo tem 8 passos: instalar, estas 6 etapas (passos 2 a 7) e publicar. O "portão" é o teste automático do fim.

refs/→ BRIEF.md→ estilo.json→ img/ + folha.jpg→ index.html→ portão: PASSA
Pré-requisitos

O que precisa estar instalado

Funciona no Linux e no Mac (no Windows, use o WSL, o Linux dentro do Windows). Tudo roda na sua máquina. As imagens saem pelo Codex na sua assinatura, sem chave de API.

Codex CLI logado

Gera as imagens com o image_gen (o gerador de imagem do Codex), anexando as referências. O script roda o Codex sem pedir confirmação a cada imagem (--dangerously-bypass-approvals-and-sandbox): use numa pasta só do site.

npm i -g @openai/codex   # instala (erro EACCES: rode com sudo na frente)
codex login              # entra com a conta do ChatGPT
codex login status       # confere

Python 3 + Pillow

Mede a paleta e monta a folha de contato.

python3 -m pip install --user pillow
# se der "externally-managed-environment":
sudo apt install python3-pil   # Ubuntu/Debian
brew install pillow            # Mac
python3 -c "import PIL"  # confere

Node 18+ e GitHub CLI

Instale o Node primeiro (o npm do Codex vem com ele) e o git. O Node roda o portão (que abre a página num navegador sem janela, instalado no passo 1). O gh publica no passo 8.

brew install node git gh   # Mac (ou nodejs.org)
sudo apt install nodejs npm git gh   # Ubuntu/Debian
node -v             # 18 ou mais
gh auth login      # gh: cli.github.com
Guia de uso · passo a passo

Do zero ao site no ar

T é a pasta do seu site (uma por site). S é a pasta da skill. Os passos 3 e 6 você faz conversando com o Claude Code; os outros são comandos no terminal.

1

Instale a skill

Clone o repositório e ligue a skill ao Claude Code. $T é a pasta meu-site dentro da sua pasta pessoal: as referências vão em meu-site/refs. S e T só valem no terminal em que você as criou: num terminal novo, rode a terceira linha de novo. Rode as linhas na pasta onde quer guardar o kit (o ln -s usa a pasta atual).

git clone https://github.com/inematds/site-inspirado
mkdir -p ~/.claude/skills && ln -sfn "$PWD/site-inspirado/skill/site-inspirado" ~/.claude/skills/site-inspirado
S=~/.claude/skills/site-inspirado; T=~/meu-site; mkdir -p $T/refs
cd $S/scripts && npm install && npx playwright install --with-deps chromium && cd -  # navegador do portão
2

Junte as referências

De 2 a 5 imagens em $T/refs/: o que você já tem (convite, logo, foto da loja) e inspiração (no Pinterest, busque "site padaria" ou "wedding website watercolor"). Uma imagem do que você NÃO quer também ajuda.

3

Deixe a IA perguntar primeiro

Abra o Claude Code dentro da pasta do site (assim o BRIEF, o estilo e a página ficam todos em $T) e diga a frase que muda o resultado. As perguntas por tipo de site estão em referencias/perguntas.md; as respostas vão para $T/BRIEF.md, junto com o tipo: negocio (o site existe para uma ação: encomendar, agendar) ou visual (evento, portfólio: pode ter mais movimento).

Os passos 4, 5 e 7, o cp do passo 6 e o passo 8 são comandos de terminal: abra um segundo terminal (o primeiro fica com o Claude Code) e rode nele a linha S=…; T=… do passo 1 antes.

# no terminal
cd $T && claude
# dentro do Claude Code (digite, não é comando de terminal)
/site-inspirado "Quero o site da minha padaria. Antes de gerar nada, me pergunte tudo o que precisa e pesquise o que um site deste tipo costuma ter."
4

Meça o estilo

O script mede a paleta das referências e sugere fundo, texto e destaque com o contraste calculado. O prompt de estilo descreve técnica, luz e cores, em inglês: peça ao Claude Code para escrevê-lo olhando suas referências. O número com ":1" é o contraste entre texto e fundo (abaixo de 4,5:1 fica difícil de ler).

python3 $S/scripts/estilo.py $T/refs $T/estilo.json --prompt "honest food photography, warm window light, dark walnut, terracotta"
# estilo.json: 12 cores · fundo #110a04 · tinta #ebdbce (14.55:1) · acento #b07042
5

Gere as imagens no mesmo estilo

Escreva $T/plano.json (uma linha por imagem: nome, prompt do assunto, largura, altura). Cada imagem leva as 2 primeiras referências (em ordem alfabética: dê nomes como 1-convite.jpg às que mais importam) e a primeira imagem gerada como modelo (a "âncora"), para a série sair com a mesma mão. No fim sai a folha.jpg, uma folha com todas as imagens lado a lado: olhe e refaça o que destoar. Não precisa escrever o JSON à mão: peça ao Claude Code "escreva o plano.json a partir do BRIEF" ou copie pilotos/padaria/plano.json e troque os textos. Cada imagem leva cerca de 1 minuto e usa a cota da sua assinatura do Codex.

# plano.json: [{"nome": "hero", "prompt": "pães esfriando na mesa", "largura": 1536, "altura": 1024}, ...]
python3 $S/scripts/imagens.py $T/plano.json $T/estilo.json $T/img --refs $T/refs
python3 $S/scripts/imagens.py $T/plano.json $T/estilo.json $T/img --refs $T/refs --so croissant  # refaz uma
6

Monte a página com movimento

Peça ao Claude Code: "monte a página com o BRIEF, o estilo e as imagens". Ele desenha uma página para o assunto e marca o botão principal (o CTA, a ação que você quer que o visitante faça) com data-cta. As transições vêm do movimento.js, por atributo: data-revela faz o bloco entrar ao aparecer na tela, data-parallax faz a imagem andar mais devagar que a rolagem, data-intro é uma abertura curta, data-conta conta um número e data-contagem mostra os dias até uma data. Tudo para quando o sistema pede "reduzir movimento". Copie o movimento.js para a pasta do site antes do portão:

<section data-revela="cortina"> … sobe | surge | lado | zoom | cortina
<img data-parallax="0.12">  <b data-conta="36">  <div data-intro="900">
<a data-cta href="#encomendar">Encomendar</a>
<script src="movimento.js"></script>
cp $S/runtime/movimento.js $T/
7

Passe no portão

Abre a página em 1440×900 e 390×844, com e sem "reduzir movimento". Use o --tipo que está no BRIEF (negocio ou visual). Se sair NÃO PASSA, a lista diz o motivo: cole no Claude Code e peça a correção. Só publique com PASSA.

node $S/scripts/portao.js $T/index.html --tipo negocio --fotos ~/fotos-portao
# portão visual × conversão — meu-site (negocio)
#   desktop          CTA na 1ª tela: sim · CTAs: 3 · peso 0.22 MB · erros 0
#   celular          CTA na 1ª tela: sim · CTAs: 3 · peso 0.55 MB · erros 0
#   desktop+reduzir  … · celular+reduzir  …
# PASSA
8

Publique

A pasta $T já é um site estático completo. Suba para o GitHub e ligue o GitHub Pages, a hospedagem grátis de páginas do GitHub (ou use a Vercel ou a hospedagem do cliente). Troque SEU_USUARIO pelo seu usuário do GitHub. O site abre em https://SEU_USUARIO.github.io/meu-site/ alguns minutos depois.

# não publique os dados do cliente nem os rascunhos:
printf 'BRIEF.md\nrefs/\nfotos/\nimg/.codex/\nimg/folha.jpg\n' > $T/.gitignore
git config --global user.name "Seu Nome"; git config --global user.email "voce@email.com"  # só na 1ª vez
cd $T && git init -b main && git add -A && git commit -m "site"
gh repo create meu-site --public --source=. --push
gh api -X POST repos/SEU_USUARIO/meu-site/pages -f "source[branch]=main" -f "source[path]=/"
Exemplos

Dois pilotos, dois estilos que não são o nosso

Mesmo kit, referências diferentes. Nomes, lugares e preços são fictícios. Clique para abrir.

Piloto evento: convite de casamento em aquarela com vinhedo, capela e ipê-rosa
Evento (visual): aquarela vinho e sálvia, véu de abertura, contagem regressiva, história em cortina, confirmação pelo WhatsApp.
Piloto padaria: pães sobre mesa escura e botão de encomendar na primeira tela
Padaria (negócio): foto quente de forno a lenha, botão de encomenda na 1ª tela e barra fixa no celular.
Visual × conversão

Bonito demais também atrapalha

Um site existe para alguém fazer alguma coisa. O tipo no BRIEF decide quanto movimento cabe. O portão mede o botão (na 1ª tela em 1,5 s no tipo negócio), o peso, o celular e o "reduzir movimento"; o resto da dose (abertura curta, barra fixa) é regra da skill, e você confere nas fotos do portão.

🧁 Negócio

Botão na 1ª tela em até 1,5 s, sem abertura, barra fixa no celular, até 3 MB.

# padaria
PASSA

💐 Visual

Abertura de até 1,2 s, cortina, parallax e contagem; o botão pode vir depois, mas tem de aparecer. Até 8 MB.

# evento
PASSA

🚫 Página "imersiva"

Abertura que ocupa uma tela e meia, botão lá embaixo e animação infinita. É o teste tests/ruim.html.

# ruim.html
NÃO PASSA: CTA fora da primeira tela
animação rodando com "reduzir movimento"
Roadmap

O que existe e o que vem

O que está marcado como feito está no repositório e foi testado.

v1 · feito
Kit + skill + 2 pilotosPerguntas, estilo medido, imagens pelo Codex, movimento.js, portão e testes (bash tests/rodar.sh).
próximo
Vídeo curto a partir das imagensClipe animado como fundo (Kling e similares), opcional e só com autorização para o serviço; hoje todo o movimento é código.
próximo
Mais tipos no roteiro de perguntasClínica, curso, imobiliária: cada um com suas perguntas e a dose certa de movimento.