MÓDULO 2.5

🎛️ Tweaks: edições permanentes, não prévias

Como Tweaks realmente funcionam. Protocolo EDITMODE, postMessage, como pedir Tweaks customizados, e como projetar um painel discreto.

6
Tópicos
30
Minutos
Inter.
Nível
Técnico
Tipo

⚙️ Mecanismo: como um Tweak vira mudança em disco

Você move slider"primaryColor → #2ea0ff" HTML do mockpostMessage(__edit_mode_set_keys) Host parseiamerge de chaves recebidas Regrava arquivoEDITMODE-BEGIN/END HTML resultante (persistido em disco) const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "primaryColor": "#2ea0ff", <-- mudança persistida "fontSize": 16, }/*EDITMODE-END*/;
1

💾 Tweaks gravam no disco

Esse é o ponto central. Não existe "preview reversível". Cada slide, cada clique no color picker, cada dropdown — regrava o arquivo HTML. O que você vê é literalmente o que sai no export.

⚠️ Implicação prática

Se você "testar" 20 cores em sequência — cada uma foi gravada. Não há "undo para antes do teste". Use Tweaks com intenção, não como playground.

2

🧩 Protocolo EDITMODE-BEGIN/END

O mecanismo técnico: Claude envolve os defaults num JSON válido dentro de comentários marcadores. Host acha esse bloco via regex, parseia, aplica merge e regrava.

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "primaryColor": "#D97757",
  "fontSize": 16,
  "dark": false,
  "heroVariant": "A",
  "density": "normal"
}/*EDITMODE-END*/;

Regras não-negociáveis

  • JSON válido (aspas duplas nas chaves e strings)
  • Exatamente 1 bloco no HTML raiz
  • • Deve estar dentro de <script> inline
  • • Não pode ter comentários JS dentro do bloco (quebra JSON)
3

📡 postMessage protocol

Quatro mensagens coordenam o ciclo:

MensagemDireçãoSignificado
__edit_mode_availablemock → host"Eu suporto Tweaks, mostra o toggle"
__activate_edit_modehost → mockUsuário ligou Tweaks — renderize o painel
__deactivate_edit_modehost → mockUsuário desligou — esconda o painel
__edit_mode_set_keysmock → hostUsuário mudou valor X — persista

⚠️ Ordem importa

Registre o listener de __activate_edit_mode ANTES de mandar __edit_mode_available. Se inverter, host pode ativar antes de você estar pronto — toggle falha silenciosamente.

4

🎨 Tweaks customizados no chat

Os Tweaks default são genéricos (cor, fonte, densidade). Os customizados são onde mora produtividade real.

Prompts que funcionam

// Variantes de layout
"Adicione Tweak para alternar entre hero-left
 e hero-center."

// Feature flag visual
"Crie Tweak para mostrar/esconder seção de FAQ."

// Numérico customizado
"Adicione Tweak de contagem regressiva em dias
 (default 7, slider 1-30)."

// Texto editável persistente
"Expose headline como Tweak de texto —
 o usuário digita e persiste."

// Toggle de tema além de dark/light
"Adicione Tweak de 3 temas: Editorial,
 Terminal-core e Cinematic-dark."
5

🔬 Design do painel Tweaks

Claude projeta a UI dos Tweaks. Regras do system prompt:

✓ Faça

  • • Painel flutuante no canto inferior direito
  • • Título "Tweaks" (bate com toggle da toolbar)
  • • Pequena superfície — 3-6 controles max
  • • Controles inline se espacialmente possível

✗ Evite

  • • Painel enorme cobrindo metade da tela
  • • Tweaks que podem quebrar o layout
  • • 15+ controles num design simples
  • • Labels longos — "primaryColor" > "Cor principal do CTA"
6

✅ Hide quando off: design finalizado

Quando o toggle de Tweaks está desligado, o design deve parecer finalizado. Esconda COMPLETAMENTE os controles — não deixe resquícios de "editor" visíveis.

💡 Por quê?

Stakeholders que viram seu export (PDF / HTML) não podem ver controles. Claude faz isso automaticamente se você pediu Tweaks no chat — mas sempre confirme no modo Present antes de exportar.

Resumo do Módulo

Tweaks gravam em disco — não é preview. Use com intenção.
EDITMODE-BEGIN/END — 1 bloco JSON válido por HTML raiz.
4 postMessage coordenam — listener ANTES de anunciar disponibilidade.
Customizados > defaults — peça variantes, feature flags, texto persistente.
Painel discreto — flutuante, 3-6 controles max, título "Tweaks".
Hide quando off — export não deve ter resquícios de editor.

Próximo Módulo:

2.6 — 🔀 Variações: pedir 5 em vez de 3