contact-widget
Ajuda seu agente a criar um widget de chat flutuante. Ele é fácil de usar, com uma tela de boas-vindas e opções para contato.
O que ela faz
Cria um pequeno botão flutuante que, ao ser clicado, abre uma janela de chat. Essa janela pode exibir uma mensagem de boas-vindas, links para redes sociais, um botão para agendar reuniões e um campo para enviar mensagens.
Quando usar
- ✓Quando você quer adicionar um canal de contato fácil em um site.
- ✓Para oferecer suporte rápido aos visitantes do seu site.
- ✓Para facilitar o agendamento de reuniões com clientes.
Exemplo do que pedir para a IA
“Crie um widget de chat para meu site com um botão de agendamento e links para WhatsApp e Instagram.”
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
Ele gera um arquivo de código (HTML) que você pode adicionar ao seu site. Esse código cria o visual do chat e os botões, sem precisar de outras ferramentas.
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 nexu-io/open-design --skill contact-widgetOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/nexu-io/open-design/main/design-templates/contact-widget/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.
Widget de Contato
O que esta habilidade produz
Um único arquivo HTML autônomo com um widget de chat flutuante que inclui:
- Bolha de chat — botão circular fixo no canto inferior direito, abre/fecha o painel
- Tela de boas-vindas — avatar do agente + nome + status online + mensagem de saudação
- Entrada de mensagem — campo de texto com ícones de emoji/envio (apenas UI; conecte ao seu próprio backend)
- Links sociais — linha de ícones circulares (Telegram, WhatsApp, Instagram, Messenger, Discord, Slack — apenas os que o usuário fornecer)
- Cartão de reunião — entrada opcional "Marcar uma reunião" com ícone de calendário, links para URL fornecido pelo usuário (Calendly, Cal.com, Lark, etc.)
- Formulário offline — formulário de contato de fallback (nome, e-mail, mensagem) quando
is_available=false - Responsivo para celular — largura total em viewports pequenas
A saída é puro front-end. Sem rastreamento, sem "phone-home", sem serviços externos obrigatórios. Funciona offline após o carregamento.
Direção de design
Estética limpa e minimalista de SaaS. Parece um widget de produto real, não um demo de brinquedo:
- Tipografia: Inter (Google Fonts), 14px base, títulos semi-negrito
- Cores: Uma única
primary_colorescolhida pelo usuário impulsiona a bolha, o avatar, o botão de envio e o destaque. Todo o resto é uma paleta neutra de ardósia (#1e293b/#64748b/#f1f5f9). Sem gradientes roxos, sem glassmorphism, sem acentos arco-íris estilo IA. - Raio: 16px em cartões, totalmente redondo em bolha e avatares
- Sombras:
0 8px 32px rgba(0,0,0,0.12)sutil no painel do widget,0 4px 12pxna bolha - Espaçamento: 16px de preenchimento interno, 12px de lacunas entre os elementos
- Estados: Hover escurece os botões em ~5%, ativo escala a bolha para 0.95
Entradas
A habilidade aceita estes parâmetros do usuário:
| Entrada | Tipo | Padrão | Descrição |
|---|---|---|---|
primary_color |
cor | #4F7CFF |
Impulsiona a bolha, cabeçalho, botão de envio, acentos |
agent_name |
string | Assistant |
Exibido na saudação do cabeçalho |
greeting |
string | Hello! How can I help you today? |
Subtítulo no cabeçalho |
is_available |
booleano | true |
Status online; false mostra o formulário offline |
social_telegram |
string | (vazio) | Link do Telegram — omitido se vazio |
social_whatsapp |
string | (vazio) | Link do WhatsApp — omitido se vazio |
social_instagram |
string | (vazio) | Link do Instagram — omitido se vazio |
meeting_url |
string | (vazio) | URL de agendamento (Calendly, Cal.com, etc.) — omitido se vazio |
offline_message |
string | We're currently offline. Leave a message and we'll get back to you! |
Exibido quando is_available=false |
Fluxo de trabalho
- Resolva a cor primária, nome do agente, texto de saudação, estado online/offline, links sociais e URL de reunião opcional da solicitação e do contexto conhecido. Use os padrões documentados e omita links opcionais vazios. Solicite um formulário consolidado apenas se um valor ausente alterar materialmente o widget solicitado e não puder ser padronizado com segurança.
- Gere um arquivo HTML com todos os valores fornecidos embutidos como literais (sem engine de template, sem placeholders
{{ }}na saída) - Abra o painel do widget por padrão na primeira renderização para que a prévia seja útil
- Não adicione nenhum
<script src="…">apontando para SDKs de terceiros, a menos que o usuário solicite explicitamente a integração com o backend. A saída deve rodar do disco sem chamadas de rede além do CSS do Google Fonts.
Integração com backend (opcional, apenas orientada pelo usuário)
O widget gerado é um artefato de UI e envia zero código de fornecedor por padrão. A bolha, o painel, os links sociais e o botão de reunião funcionam prontos para uso sem nenhum backend. Apenas a entrada de mensagem precisa ser conectada se o usuário quiser conversas bidirecionais.
Se o usuário solicitar explicitamente a conexão da entrada de mensagem a um backend real, ofereça estas opções em ordem de comprometimento crescente:
Nível 1 — Sem backend (padrão)
O widget já funciona como uma superfície de contato via links sociais + URL de reunião. Deixe como está.
Nível 2 — Mensagens únicas, sem histórico de chat
mailto:fallback — substitua o manipuladorsendporwindow.location.href = 'mailto:you@example.com?subject=...&body=' + encodeURIComponent(text). Infraestrutura zero, mas o cliente de e-mail do visitante abre.- Endpoint
/api/contactpróprio —fetch('/api/contact', { method: 'POST', body: JSON.stringify({ text }) }). O usuário é o proprietário da entrega (SendGrid, Resend, seu próprio SMTP, um webhook do Notion/Airtable, etc.).
Nível 3 — Chat em tempo real (visitante ↔ agente, histórico, digitação, presença)
…
Perguntas frequentes
O que acontece se eu não estiver online?
Se você definir que não está disponível, o widget mostrará um formulário para a pessoa deixar uma mensagem e um email.
Preciso de um programador para usar isso?
Não, o resultado é um arquivo de código pronto para ser usado. Você só precisa copiá-lo e colar no seu site.
Posso mudar as cores e os textos?
Sim, você pode escolher a cor principal, o nome do assistente e a mensagem de boas-vindas.
Detalhes
Descrição original do autor
Self-contained floating chat widget with welcome screen, social links, meeting button, and message input. Single HTML file, zero dependencies.
repo: nexu-io/open-design
Popularidade
- Estrelas no GitHub
- 101 mil
- Posição no ranking
- #407
- Licença
- Apache-2.0
- Atualizada em
- 16/10/2026
Comentários
- …
Mais skills deste repositório
sample-plugin
Faz seu agente criar um arquivo de metadados para testes. Ele ajuda a garantir que o código funcione corretamente em diferentes situações.
nexu-io/open-design
aster-atelier
Ajuda seu agente a criar um site artístico com visual clássico. Ele usa imagens elegantes, céus azuis e fontes serifadas para um visual cinematográfico.
nexu-io/open-design
audio-jingle
Faz seu agente gerar áudio como jingles e efeitos sonoros. Ele pode criar músicas e vozes, salvando o resultado em um arquivo de áudio.
nexu-io/open-design
blog-post
Ajuda seu agente a escrever artigos longos ou posts de blog. Ele inclui espaços para imagens, citações e informações do autor.
nexu-io/open-design
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