FunBot AI

<!DOCTYPE html> <html lang="pt-PT"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>FunBot AI Studio</title> <!-- Tailwind CSS --> <script src="https://cdn.tailwindcss.com"></script> <!-- Lucide Icons --> <script src="https://unpkg.com/lucide@latest"></script> <style> /* Personalização das barras de deslocamento */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.05); } ::-webkit-scrollbar-thumb { background: rgba(156, 163, 175, 0.5); border-radius: 9999px; } ::-webkit-scrollbar-thumb:hover { background: rgba(107, 114, 128, 0.8); } .bg-custom-wallpaper { background-size: cover; background-position: center; background-repeat: no-repeat; } .glass-panel { background: rgba(255, 255, 255, 0.88); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .dark .glass-panel { background: rgba(17, 24, 39, 0.88); } .glass-card { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(8px); } .dark .glass-card { background: rgba(31, 41, 55, 0.7); } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 15px rgba(245, 158, 11, 0.4); } 50% { box-shadow: 0 0 25px rgba(6, 182, 212, 0.6); } } .bot-avatar-glow { animation: pulse-glow 3s infinite; } </style> </head> <body class="bg-gray-100 dark:bg-gray-900 text-gray-800 dark:text-gray-100 font-sans h-screen flex flex-col overflow-hidden transition-colors duration-200"> <!-- Container Principal --> <div id="mainApp" class="flex-1 flex h-full relative bg-custom-wallpaper"> <!-- Camada de sobreposição visual --> <div id="bgOverlay" class="absolute inset-0 bg-gray-900/30 dark:bg-black/60 backdrop-blur-[2px] transition-all pointer-events-none"></div> <!-- Sidebar / Barra Lateral --> <aside id="sidebar" class="w-80 glass-panel border-r border-gray-200/50 dark:border-gray-800/50 flex flex-col z-20 transition-all duration-300 absolute md:relative inset-y-0 left-0 -translate-x-full md:translate-x-0 shadow-xl md:shadow-none"> <!-- Cabeçalho do Robot Avatar --> <div class="p-4 border-b border-gray-200/50 dark:border-gray-800/50 flex items-center justify-between"> <div class="flex items-center space-x-3"> <div class="relative group"> <img id="botAvatar" src="1786194392710.png" onerror="this.onerror=null; this.src=DEFAULT_ROBOT_AVATAR" alt="FunBot Avatar" class="w-12 h-12 rounded-2xl object-cover border-2 border-yellow-400 shadow-md bot-avatar-glow transition-transform group-hover:scale-105"> <span class="absolute -bottom-1 -right-1 w-4 h-4 bg-emerald-500 border-2 border-white dark:border-gray-900 rounded-full" title="Online"></span> </div> <div> <h1 class="font-bold text-lg leading-tight flex items-center gap-1.5"> FunBot AI <span class="text-[10px] px-2 py-0.5 rounded-full font-black uppercase tracking-wider text-black" style="background-color: var(--theme-color, #f59e0b);">PRO</span> </h1> <p class="text-xs text-gray-500 dark:text-gray-400">GPT-5.6 & Nano Banana 🍌</p> </div> </div> <button id="closeSidebarBtn" class="md:hidden p-1.5 hover:bg-gray-200 dark:hover:bg-gray-800 rounded-lg"> <i data-lucide="x" class="w-5 h-5"></i> </button> </div> <!-- Ações Principais e Seleção de Modos --> <div class="p-3 space-y-2"> <button id="btnNewChat" class="w-full py-2.5 px-4 rounded-xl text-white font-medium shadow-md flex items-center justify-center gap-2 hover:opacity-95 transition active:scale-[0.98]" style="background-color: var(--theme-color, #f59e0b);"> <i data-lucide="plus" class="w-5 h-5"></i> <span>Nova Conversa</span> </button> <!-- Ferramentas Principais --> <div class="grid grid-cols-3 gap-1 pt-1"> <button id="modeChatTab" onclick="switchMode('chat')" class="mode-tab active p-2 rounded-xl border border-gray-200 dark:border-gray-700/60 bg-white dark:bg-gray-800 flex flex-col items-center text-[11px] font-semibold gap-1 text-center hover:bg-white dark:hover:bg-gray-800 transition"> <i data-lucide="message-square" class="w-4 h-4 text-cyan-500"></i> <span>Chat IA</span> </button> <button id="modeImageTab" onclick="switchMode('image')" class="mode-tab p-2 rounded-xl border border-gray-200 dark:border-gray-700/60 bg-white/50 dark:bg-gray-800/50 flex flex-col items-center text-[11px] font-semibold gap-1 text-center hover:bg-white dark:hover:bg-gray-800 transition"> <i data-lucide="sparkles" class="w-4 h-4 text-yellow-500"></i> <span>Imagens</span> </button> <button id="modeVideoTab" onclick="switchMode('video')" class="mode-tab p-2 rounded-xl border border-gray-200 dark:border-gray-700/60 bg-white/50 dark:bg-gray-800/50 flex flex-col items-center text-[11px] font-semibold gap-1 text-center hover:bg-white dark:hover:bg-gray-800 transition"> <i data-lucide="clapperboard" class="w-4 h-4 text-purple-500"></i> <span>Vídeos</span> </button> </div> </div> <!-- Histórico de Conversas --> <div class="flex-1 overflow-y-auto px-3 py-2 space-y-1" id="chatList"> <div class="text-xs font-semibold px-2 py-1 text-gray-400 uppercase tracking-wider">Histórico de Conversas</div> </div> <!-- Rodapé da Barra Lateral --> <div class="p-3 border-t border-gray-200/50 dark:border-gray-800/50 space-y-2"> <button id="btnOpenTheme" class="w-full py-2 px-3 rounded-xl bg-gray-200/70 dark:bg-gray-800/70 hover:bg-gray-300 dark:hover:bg-gray-700 text-xs font-medium flex items-center justify-between transition"> <span class="flex items-center gap-2"> <i data-lucide="palette" class="w-4 h-4 text-purple-500"></i> <span>Mudar Tema e Cores</span> </span> <i data-lucide="chevron-right" class="w-4 h-4"></i> </button> <div class="flex items-center justify-between px-2 pt-1 text-xs text-gray-500"> <span id="storageInfo">Conversas ilimitadas</span> <button id="btnClearAll" title="Eliminar Tudo" class="hover:text-red-500 transition"> <i data-lucide="trash-2" class="w-4 h-4"></i> </button> </div> </div> </aside> <!-- Área Principal de Conteúdo --> <main class="flex-1 flex flex-col h-full z-10 relative overflow-hidden"> <!-- Barra Superior --> <header class="glass-panel h-16 border-b border-gray-200/50 dark:border-gray-800/50 flex items-center justify-between px-4"> <div class="flex items-center gap-3"> <button id="openSidebarBtn" class="md:hidden p-2 rounded-xl hover:bg-gray-200 dark:hover:bg-gray-800"> <i data-lucide="menu" class="w-5 h-5"></i> </button> <div> <h2 id="currentChatTitle" class="font-bold text-base line-clamp-1">Conversa com FunBot</h2> <div class="flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400"> <div class="relative inline-block"> <select id="modelSelector" class="bg-transparent font-medium text-xs border-none focus:ring-0 cursor-pointer py-0 pr-6 pl-0 text-cyan-600 dark:text-cyan-400 font-semibold"> <option value="gpt-5.6">🤖 FunBot GPT-5.6 Ultra</option> <option value="nano-banana">🍌 Nano Banana Pro (Arte & Visão)</option> <option value="gemini-2.5" selected>⚡ Gemini 2.5 Flash Ultra</option> </select> </div> <span>•</span> <span class="flex items-center gap-1 text-emerald-500"> <span class="w-2 h-2 rounded-full bg-emerald-500 animate-pulse"></span> On-line </span> </div> </div> </div> <div class="flex items-center gap-2"> <button id="themeToggleBtn" class="p-2.5 rounded-xl hover:bg-gray-200/60 dark:hover:bg-gray-800/60 transition" title="Alternar Modo Escuro/Claro"> <i data-lucide="moon" class="w-5 h-5 dark:hidden text-gray-700"></i> <i data-lucide="sun" class="w-5 h-5 hidden dark:block text-yellow-400"></i> </button> <button id="quickCustomizeBtn" class="p-2.5 rounded-xl bg-gray-200/70 dark:bg-gray-800/70 hover:opacity-80 transition" title="Personalizar Visual"> <i data-lucide="sliders" class="w-5 h-5 text-yellow-500"></i> </button> </div> </header> <!-- SECÇÃO 1: Chat de Conversa IA --> <section id="chatSection" class="flex-1 flex flex-col overflow-hidden relative"> <div id="messagesContainer" class="flex-1 overflow-y-auto p-4 md:p-6 space-y-4"> <!-- Boas-Vindas Inicial --> <div id="welcomeMessage" class="max-w-xl mx-auto my-8 text-center space-y-4 p-6 glass-card rounded-3xl border border-white/40 dark:border-gray-700/40 shadow-lg"> <div class="relative w-20 h-20 mx-auto"> <img id="welcomeAvatar" src="1786194392710.png" onerror="this.onerror=null; this.src=DEFAULT_ROBOT_AVATAR" class="w-full h-full rounded-3xl object-cover border-4 border-yellow-400 shadow-xl"> <div class="absolute -bottom-2 -right-2 bg-yellow-400 text-black text-xs font-black px-2 py-0.5 rounded-full shadow"> 🤖 Olá! </div> </div> <h3 class="text-xl font-bold">Olá! Eu sou o <span class="text-yellow-500">FunBot</span> 💡🧠</h3> <p class="text-sm text-gray-600 dark:text-gray-300"> Estou pronto para conversar sem limites, criar ideias, sintetizar voz, gerar imagens incríveis com <b>Nano Banana 🍌</b> e personalizar tudo a teu gosto! </p> <div class="flex flex-wrap justify-center gap-2 pt-2"> <button onclick="sendQuickPrompt('Conta-me uma piada super divertida de robôs!')" class="px-3 py-1.5 rounded-full text-xs bg-white/80 dark:bg-gray-800/80 hover:scale-105 border border-yellow-500/30 transition shadow-sm"> 🤖 Piada de Robô </button> <button onclick="sendQuickPrompt('Cria uma história mágica de ficção científica em poucas linhas')" class="px-3 py-1.5 rounded-full text-xs bg-white/80 dark:bg-gray-800/80 hover:scale-105 border border-cyan-500/30 transition shadow-sm"> 📖 História Mágica </button> <button onclick="sendQuickPrompt('Dá-me 5 ideias criativas para publicar no TikTok!')" class="px-3 py-1.5 rounded-full text-xs bg-white/80 dark:bg-gray-800/80 hover:scale-105 border border-purple-500/30 transition shadow-sm"> 💡 Ideias Criativas </button> <button onclick="switchMode('image')" class="px-3 py-1.5 rounded-full text-xs bg-yellow-400 text-black font-semibold hover:scale-105 transition shadow-sm"> 🎨 Criar Imagem IA </button> </div> </div> </div> <!-- Pré-visualização de Imagem Anexada --> <div id="imagePreviewContainer" class="hidden px-4 py-2 bg-gray-100/90 dark:bg-gray-800/90 border-t border-gray-200 dark:border-gray-700 flex items-center gap-3"> <div class="relative"> <img id="imagePreview" class="w-12 h-12 rounded-lg object-cover border border-gray-300 dark:border-gray-600"> <button id="removeImageBtn" class="absolute -top-2 -right-2 bg-red-500 text-white rounded-full p-0.5 shadow"> <i data-lucide="x" class="w-3 h-3"></i> </button> </div> <span class="text-xs text-gray-500 dark:text-gray-400">Imagem anexada para o FunBot analisar!</span> </div> <!-- Formulário de Envio --> <div class="p-3 md:p-4 glass-panel border-t border-gray-200/50 dark:border-gray-800/50"> <form id="chatForm" class="max-w-4xl mx-auto flex items-end gap-2 bg-white/80 dark:bg-gray-800/80 p-2 rounded-2xl border border-gray-200 dark:border-gray-700 shadow-inner"> <label title="Anexar imagem" class="p-2.5 rounded-xl hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer text-gray-500 dark:text-gray-400 hover:text-yellow-500 transition"> <i data-lucide="image-plus" class="w-5 h-5"></i> <input type="file" id="chatImageInput" accept="image/*" class="hidden"> </label> <textarea id="chatInput" rows="1" placeholder="Escreve uma mensagem ao FunBot..." class="flex-1 bg-transparent border-none focus:ring-0 text-sm py-2 px-1 resize-none max-h-32 text-gray-800 dark:text-gray-100 placeholder-gray-400"></textarea> <button type="submit" id="sendBtn" class="p-3 rounded-xl text-white shadow-md hover:opacity-90 active:scale-95 transition flex items-center justify-center" style="background-color: var(--theme-color, #f59e0b);"> <i data-lucide="send" class="w-5 h-5"></i> </button> </form> </div> </section> <!-- SECÇÃO 2: Criador de Imagens IA --> <section id="imageSection" class="hidden flex-1 overflow-y-auto p-4 md:p-6 space-y-6"> <div class="max-w-3xl mx-auto glass-card p-6 rounded-3xl border border-white/50 dark:border-gray-700/50 shadow-xl space-y-4"> <div class="flex items-center gap-3"> <div class="p-3 rounded-2xl bg-yellow-400/20 text-yellow-600 dark:text-yellow-400"> <i data-lucide="palette" class="w-7 h-7"></i> </div> <div> <h3 class="text-xl font-bold flex items-center gap-2"> Estúdio de Criatividade Nano Banana 🍌 </h3> <p class="text-xs text-gray-500 dark:text-gray-400">Gera imagens incríveis sem limites utilizando Inteligência Artificial!</p> </div> </div> <div class="space-y-3"> <div> <label class="block text-xs font-semibold text-gray-600 dark:text-gray-300 mb-1">O que pretendes criar?</label> <textarea id="imagePrompt" rows="3" placeholder="Ex: Um robô fofo parecido com o FunBot no espaço sideral com luzes néon, estilo animação 3D Pixar, ultra detalhado..." class="w-full rounded-2xl border border-gray-300 dark:border-gray-700 bg-white/70 dark:bg-gray-800/70 p-3 text-sm focus:ring-2 focus:ring-yellow-400 outline-none"></textarea> </div> <div class="grid grid-cols-1 sm:grid-cols-2 gap-3"> <div> <label class="block text-xs font-semibold text-gray-600 dark:text-gray-300 mb-1">Estilo Artístico</label> <select id="imageStyle" class="w-full rounded-xl border border-gray-300 dark:border-gray-700 bg-white/70 dark:bg-gray-800/70 p-2.5 text-xs font-medium"> <option value="3D Pixar Digital Art">🎨 Animação 3D / Pixar</option> <option value="Photorealistic 8k highly detailed">📸 Fotorrealista 8K</option> <option value="Anime Cyberpunk Neon">⚡ Anime Cyberpunk Néon</option> <option value="Watercolor Illustration">🖌️ Pintura a Aguarela</option> <option value="Pixel Art 16-bit retro">🎮 Pixel Art Retrô</option> </select> </div> <div> <label class="block text-xs font-semibold text-gray-600 dark:text-gray-300 mb-1">Modelo da IA</label> <select id="imageEngine" class="w-full rounded-xl border border-gray-300 dark:border-gray-700 bg-white/70 dark:bg-gray-800/70 p-2.5 text-xs font-medium"> <option value="imagen-4">🍌 Nano Banana Pro (Imagen 4.0)</option> </select> </div> </div> <button id="generateImgBtn" onclick="generateImage()" class="w-full py-3 rounded-2xl text-white font-bold shadow-lg hover:opacity-95 active:scale-[0.99] transition flex items-center justify-center gap-2" style="background-color: var(--theme-color, #f59e0b);"> <i data-lucide="wand-2" class="w-5 h-5"></i> <span>Gerar Imagem Agora</span> </button> </div> </div> <!-- Galeria de Imagens --> <div class="max-w-4xl mx-auto space-y-3"> <h4 class="font-bold text-sm uppercase tracking-wider text-gray-500 dark:text-gray-400 flex items-center gap-2"> <i data-lucide="image" class="w-4 h-4"></i> As Minhas Criações Recentes </h4> <div id="generatedGallery" class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4"> <div class="col-span-full text-center py-12 text-gray-400 text-sm glass-card rounded-2xl"> Nenhuma imagem criada ainda nesta sessão. Utiliza o formulário acima para criar! </div> </div> </div> </section> <!-- SECÇÃO 3: Gerador de Vídeos/Roteiros --> <section id="videoSection" class="hidden flex-1 overflow-y-auto p-4 md:p-6 space-y-6"> <div class="max-w-3xl mx-auto glass-car

Public Last updated: 2026-08-08 01:41:36 PM