| <!DOCTYPE html> |
| <html lang="pt-BR"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>EncontreAqui - Conectando você aos melhores estabelecimentos</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <style> |
| @keyframes fadeIn { |
| from { opacity: 0; transform: translateY(10px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| |
| .fade-in { |
| animation: fadeIn 0.3s ease-out forwards; |
| } |
| |
| .notification-badge { |
| position: absolute; |
| top: -5px; |
| right: -5px; |
| width: 20px; |
| height: 20px; |
| border-radius: 50%; |
| background-color: #FF5722; |
| color: white; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 12px; |
| font-weight: bold; |
| } |
| |
| .chat-bubble { |
| max-width: 70%; |
| padding: 10px 15px; |
| border-radius: 18px; |
| margin-bottom: 5px; |
| position: relative; |
| } |
| |
| .user-message { |
| background-color: #3B82F6; |
| color: white; |
| align-self: flex-end; |
| border-bottom-right-radius: 0; |
| } |
| |
| .business-message { |
| background-color: #E5E7EB; |
| color: #111827; |
| align-self: flex-start; |
| border-bottom-left-radius: 0; |
| } |
| |
| .star-rating { |
| color: #E4E5E9; |
| } |
| |
| .star-rating .active { |
| color: #FFD700; |
| } |
| |
| .slide-up { |
| transform: translateY(100%); |
| transition: transform 0.3s ease-out; |
| } |
| |
| .slide-up.show { |
| transform: translateY(0); |
| } |
| |
| .skeleton { |
| background-color: #E5E7EB; |
| border-radius: 4px; |
| animation: pulse 1.5s infinite; |
| } |
| |
| @keyframes pulse { |
| 0%, 100% { opacity: 1; } |
| 50% { opacity: 0.5; } |
| } |
| </style> |
| </head> |
| <body class="bg-gray-50 font-sans"> |
| |
| <div class="max-w-md mx-auto bg-white min-h-screen shadow-lg relative overflow-hidden"> |
| |
| <header class="bg-blue-600 text-white p-4 flex justify-between items-center sticky top-0 z-10"> |
| <button id="menuBtn" class="text-white"> |
| <i class="fas fa-bars text-xl"></i> |
| </button> |
| <h1 class="text-xl font-bold">EncontreAqui</h1> |
| <button id="notificationBtn" class="relative"> |
| <i class="fas fa-bell text-xl"></i> |
| <span id="notificationCount" class="notification-badge">3</span> |
| </button> |
| </header> |
| |
| |
| <main class="p-4 pb-20"> |
| |
| <div class="mb-6 fade-in"> |
| <div class="relative"> |
| <input type="text" placeholder="O que você está procurando?" |
| class="w-full p-3 pl-10 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500"> |
| <i class="fas fa-search absolute left-3 top-3.5 text-gray-400"></i> |
| </div> |
| <div class="flex mt-3 space-x-2 overflow-x-auto pb-2"> |
| <button class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Restaurantes</button> |
| <button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Bares</button> |
| <button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Lojas</button> |
| <button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Serviços</button> |
| <button class="bg-gray-100 text-gray-800 px-3 py-1 rounded-full text-sm whitespace-nowrap">Promoções</button> |
| </div> |
| </div> |
| |
| |
| <div class="bg-blue-50 p-4 rounded-lg mb-6 fade-in"> |
| <h2 class="font-semibold text-gray-800 mb-2">Filtrar por orçamento</h2> |
| <div class="flex items-center space-x-2"> |
| <input type="range" min="0" max="500" value="200" class="w-full h-2 bg-blue-200 rounded-lg appearance-none cursor-pointer"> |
| <span class="text-blue-800 font-medium">R$ 200</span> |
| </div> |
| <div class="flex justify-between text-xs text-gray-500 mt-1"> |
| <span>R$ 0</span> |
| <span>R$ 500+</span> |
| </div> |
| </div> |
| |
| |
| <section class="mb-6 fade-in"> |
| <div class="flex justify-between items-center mb-3"> |
| <h2 class="font-semibold text-lg text-gray-800">Recomendados para você</h2> |
| <a href="#" class="text-blue-600 text-sm">Ver todos</a> |
| </div> |
| <div class="grid grid-cols-2 gap-3"> |
| |
| <div class="bg-white rounded-lg shadow-md overflow-hidden border border-gray-100"> |
| <div class="relative"> |
| <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Restaurante" class="w-full h-32 object-cover"> |
| <div class="absolute top-2 right-2 bg-white bg-opacity-90 rounded-full p-1"> |
| <i class="fas fa-heart text-red-500"></i> |
| </div> |
| </div> |
| <div class="p-3"> |
| <h3 class="font-semibold text-gray-800">Bistro Moderno</h3> |
| <div class="flex items-center mt-1"> |
| <div class="star-rating flex"> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star"></i> |
| </div> |
| <span class="text-gray-500 text-xs ml-1">(128)</span> |
| </div> |
| <div class="flex justify-between items-center mt-2"> |
| <span class="text-sm text-gray-600">$$ • 1.2 km</span> |
| <span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="bg-white rounded-lg shadow-md overflow-hidden border border-gray-100"> |
| <div class="relative"> |
| <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Cafeteria" class="w-full h-32 object-cover"> |
| <div class="absolute top-2 right-2 bg-white bg-opacity-90 rounded-full p-1"> |
| <i class="far fa-heart text-gray-400"></i> |
| </div> |
| </div> |
| <div class="p-3"> |
| <h3 class="font-semibold text-gray-800">Café Aconchego</h3> |
| <div class="flex items-center mt-1"> |
| <div class="star-rating flex"> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star"></i> |
| <i class="fas fa-star"></i> |
| </div> |
| <span class="text-gray-500 text-xs ml-1">(64)</span> |
| </div> |
| <div class="flex justify-between items-center mt-2"> |
| <span class="text-sm text-gray-600">$ • 0.8 km</span> |
| <span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| </section> |
| |
| |
| <section class="mb-6 fade-in"> |
| <h2 class="font-semibold text-lg text-gray-800 mb-3">Categorias</h2> |
| <div class="grid grid-cols-4 gap-3"> |
| <div class="flex flex-col items-center"> |
| <div class="bg-blue-100 w-14 h-14 rounded-full flex items-center justify-center mb-1"> |
| <i class="fas fa-utensils text-blue-600 text-xl"></i> |
| </div> |
| <span class="text-xs text-center">Restaurantes</span> |
| </div> |
| <div class="flex flex-col items-center"> |
| <div class="bg-purple-100 w-14 h-14 rounded-full flex items-center justify-center mb-1"> |
| <i class="fas fa-cocktail text-purple-600 text-xl"></i> |
| </div> |
| <span class="text-xs text-center">Bares</span> |
| </div> |
| <div class="flex flex-col items-center"> |
| <div class="bg-green-100 w-14 h-14 rounded-full flex items-center justify-center mb-1"> |
| <i class="fas fa-shopping-bag text-green-600 text-xl"></i> |
| </div> |
| <span class="text-xs text-center">Lojas</span> |
| </div> |
| <div class="flex flex-col items-center"> |
| <div class="bg-yellow-100 w-14 h-14 rounded-full flex items-center justify-center mb-1"> |
| <i class="fas fa-cut text-yellow-600 text-xl"></i> |
| </div> |
| <span class="text-xs text-center">Beleza</span> |
| </div> |
| </div> |
| </section> |
| |
| |
| <section class="fade-in"> |
| <div class="flex justify-between items-center mb-3"> |
| <h2 class="font-semibold text-lg text-gray-800">Próximos de você</h2> |
| <a href="#" class="text-blue-600 text-sm">Ver todos</a> |
| </div> |
| |
| <div class="space-y-4"> |
| |
| <div class="flex items-center bg-white p-3 rounded-lg shadow-sm border border-gray-100"> |
| <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Padaria" class="w-16 h-16 rounded-lg object-cover"> |
| <div class="ml-3 flex-1"> |
| <h3 class="font-medium text-gray-800">Padaria Doce Lar</h3> |
| <div class="flex items-center mt-1"> |
| <div class="star-rating flex"> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star-half-alt active"></i> |
| </div> |
| <span class="text-gray-500 text-xs ml-1">(243)</span> |
| </div> |
| <div class="flex justify-between items-center mt-1"> |
| <span class="text-sm text-gray-600">$ • 0.5 km</span> |
| <span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="flex items-center bg-white p-3 rounded-lg shadow-sm border border-gray-100"> |
| <img src="https://images.unsplash.com/photo-1580828343064-fde4fc206bc6?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Pizzaria" class="w-16 h-16 rounded-lg object-cover"> |
| <div class="ml-3 flex-1"> |
| <h3 class="font-medium text-gray-800">Pizzaria Forno a Lenha</h3> |
| <div class="flex items-center mt-1"> |
| <div class="star-rating flex"> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star"></i> |
| <i class="fas fa-star"></i> |
| </div> |
| <span class="text-gray-500 text-xs ml-1">(87)</span> |
| </div> |
| <div class="flex justify-between items-center mt-1"> |
| <span class="text-sm text-gray-600">$$ • 1.5 km</span> |
| <span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Aberto</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| </section> |
| </main> |
| |
| |
| <nav class="bg-white border-t border-gray-200 fixed bottom-0 w-full max-w-md flex justify-around py-3"> |
| <button class="text-blue-600 flex flex-col items-center"> |
| <i class="fas fa-home text-xl"></i> |
| <span class="text-xs mt-1">Início</span> |
| </button> |
| <button class="text-gray-500 flex flex-col items-center"> |
| <i class="fas fa-search text-xl"></i> |
| <span class="text-xs mt-1">Buscar</span> |
| </button> |
| <button class="text-gray-500 flex flex-col items-center"> |
| <i class="fas fa-map-marker-alt text-xl"></i> |
| <span class="text-xs mt-1">Mapa</span> |
| </button> |
| <button class="text-gray-500 flex flex-col items-center"> |
| <i class="fas fa-user text-xl"></i> |
| <span class="text-xs mt-1">Perfil</span> |
| </button> |
| </nav> |
| |
| |
| <div id="sideMenu" class="fixed inset-0 bg-black bg-opacity-50 z-20 hidden"> |
| <div class="absolute left-0 top-0 h-full w-3/4 bg-white shadow-lg transform transition-transform duration-300 ease-in-out -translate-x-full"> |
| <div class="p-4 border-b border-gray-200 flex items-center"> |
| <img src="https://randomuser.me/api/portraits/women/44.jpg" alt="User" class="w-12 h-12 rounded-full object-cover"> |
| <div class="ml-3"> |
| <h3 class="font-medium">Ana Silva</h3> |
| <p class="text-sm text-gray-500">Orçamento: R$ 200</p> |
| </div> |
| </div> |
| <nav class="p-2"> |
| <a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100"> |
| <i class="fas fa-user-circle text-gray-600 mr-3"></i> |
| <span>Meu Perfil</span> |
| </a> |
| <a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100"> |
| <i class="fas fa-heart text-gray-600 mr-3"></i> |
| <span>Favoritos</span> |
| </a> |
| <a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100"> |
| <i class="fas fa-history text-gray-600 mr-3"></i> |
| <span>Histórico</span> |
| </a> |
| <a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100"> |
| <i class="fas fa-cog text-gray-600 mr-3"></i> |
| <span>Configurações</span> |
| </a> |
| <a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100"> |
| <i class="fas fa-store text-gray-600 mr-3"></i> |
| <span>Cadastrar Estabelecimento</span> |
| </a> |
| <a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100"> |
| <i class="fas fa-question-circle text-gray-600 mr-3"></i> |
| <span>Ajuda</span> |
| </a> |
| <a href="#" class="flex items-center p-3 rounded-lg hover:bg-gray-100"> |
| <i class="fas fa-sign-out-alt text-gray-600 mr-3"></i> |
| <span>Sair</span> |
| </a> |
| </nav> |
| </div> |
| </div> |
| |
| |
| <div id="notificationsPanel" class="fixed inset-0 bg-black bg-opacity-50 z-20 hidden"> |
| <div class="absolute right-0 top-0 h-full w-3/4 bg-white shadow-lg transform transition-transform duration-300 ease-in-out translate-x-full"> |
| <div class="p-4 border-b border-gray-200 flex justify-between items-center"> |
| <h3 class="font-medium text-lg">Notificações</h3> |
| <button id="closeNotifications" class="text-gray-500"> |
| <i class="fas fa-times"></i> |
| </button> |
| </div> |
| <div class="overflow-y-auto h-full pb-20"> |
| <div class="p-3 border-b border-gray-100"> |
| <div class="flex items-start"> |
| <div class="bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center mr-3"> |
| <i class="fas fa-bell text-blue-600"></i> |
| </div> |
| <div> |
| <p class="text-sm"><span class="font-medium">Bistro Moderno</span> tem uma nova promoção!</p> |
| <p class="text-xs text-gray-500 mt-1">10% de desconto em jantares às quintas</p> |
| <p class="text-xs text-gray-400 mt-1">Há 2 horas</p> |
| </div> |
| </div> |
| </div> |
| <div class="p-3 border-b border-gray-100 bg-blue-50"> |
| <div class="flex items-start"> |
| <div class="bg-green-100 w-10 h-10 rounded-full flex items-center justify-center mr-3"> |
| <i class="fas fa-check-circle text-green-600"></i> |
| </div> |
| <div> |
| <p class="text-sm">Seu cadastro foi aprovado!</p> |
| <p class="text-xs text-gray-500 mt-1">Agora você pode avaliar estabelecimentos</p> |
| <p class="text-xs text-gray-400 mt-1">Ontem</p> |
| </div> |
| </div> |
| </div> |
| <div class="p-3 border-b border-gray-100"> |
| <div class="flex items-start"> |
| <div class="bg-yellow-100 w-10 h-10 rounded-full flex items-center justify-center mr-3"> |
| <i class="fas fa-star text-yellow-600"></i> |
| </div> |
| <div> |
| <p class="text-sm"><span class="font-medium">Café Aconchego</span> respondeu sua avaliação</p> |
| <p class="text-xs text-gray-500 mt-1">"Obrigado pelo feedback! Estamos melhorando nosso atendimento."</p> |
| <p class="text-xs text-gray-400 mt-1">2 dias atrás</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div id="businessModal" class="fixed inset-0 bg-black bg-opacity-50 z-30 hidden flex items-end"> |
| <div class="bg-white w-full rounded-t-3xl slide-up max-h-[90vh] overflow-y-auto"> |
| <div class="p-4 sticky top-0 bg-white z-10 border-b border-gray-200 flex justify-between items-center"> |
| <h3 class="font-semibold text-lg">Detalhes</h3> |
| <button id="closeBusinessModal" class="text-gray-500"> |
| <i class="fas fa-times"></i> |
| </button> |
| </div> |
| |
| <div class="relative"> |
| <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Restaurante" class="w-full h-48 object-cover"> |
| <div class="absolute bottom-4 left-4 bg-white bg-opacity-90 rounded-full p-2 shadow-md"> |
| <i class="fas fa-heart text-red-500 text-xl"></i> |
| </div> |
| </div> |
| |
| <div class="p-4"> |
| <h2 class="text-2xl font-bold mb-1">Bistro Moderno</h2> |
| <div class="flex items-center mb-3"> |
| <div class="star-rating flex"> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star"></i> |
| </div> |
| <span class="text-gray-500 text-sm ml-2">128 avaliações</span> |
| </div> |
| |
| <div class="flex items-center text-gray-600 mb-4"> |
| <i class="fas fa-map-marker-alt mr-2"></i> |
| <span>Rua das Flores, 123 - Centro</span> |
| </div> |
| |
| <div class="bg-blue-50 p-3 rounded-lg mb-4"> |
| <div class="flex justify-between items-center mb-2"> |
| <span class="font-medium">Orçamento médio</span> |
| <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-sm">R$ 150-250</span> |
| </div> |
| <div class="flex justify-between items-center"> |
| <span class="font-medium">Horário</span> |
| <span class="text-sm">11:00 - 23:00</span> |
| </div> |
| </div> |
| |
| <div class="mb-4"> |
| <h4 class="font-semibold mb-2">Sobre</h4> |
| <p class="text-gray-600">Bistro Moderno oferece uma experiência gastronômica única com pratos contemporâneos preparados com ingredientes locais e frescos. Ambiente aconchegante perfeito para encontros e celebrações.</p> |
| </div> |
| |
| <div class="mb-4"> |
| <h4 class="font-semibold mb-2">Fotos</h4> |
| <div class="grid grid-cols-3 gap-2"> |
| <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Foto 1" class="h-24 w-full object-cover rounded"> |
| <img src="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Foto 2" class="h-24 w-full object-cover rounded"> |
| <img src="https://images.unsplash.com/photo-1580828343064-fde4fc206bc6?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" |
| alt="Foto 3" class="h-24 w-full object-cover rounded"> |
| </div> |
| </div> |
| |
| <div class="mb-4"> |
| <h4 class="font-semibold mb-2">Avaliações</h4> |
| <div class="space-y-3"> |
| |
| <div class="border-b border-gray-100 pb-3"> |
| <div class="flex justify-between"> |
| <div> |
| <span class="font-medium">Carlos M.</span> |
| <div class="star-rating flex mt-1"> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| </div> |
| </div> |
| <span class="text-gray-500 text-sm">2 semanas atrás</span> |
| </div> |
| <p class="text-gray-600 mt-1">Excelente atendimento e comida deliciosa! Recomendo o risoto de cogumelos.</p> |
| <div class="bg-gray-50 p-2 mt-2 rounded"> |
| <p class="text-sm font-medium text-gray-800">Resposta do estabelecimento:</p> |
| <p class="text-sm text-gray-600">Obrigado, Carlos! Ficamos felizes que tenha gostado. Volte sempre!</p> |
| </div> |
| </div> |
| |
| |
| <div class="border-b border-gray-100 pb-3"> |
| <div class="flex justify-between"> |
| <div> |
| <span class="font-medium">Ana L.</span> |
| <div class="star-rating flex mt-1"> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star active"></i> |
| <i class="fas fa-star"></i> |
| </div> |
| </div> |
| <span class="text-gray-500 text-sm">1 mês atrás</span> |
| </div> |
| <p class="text-gray-600 mt-1">Ambiente muito agradável e comida de qualidade. Só achei um pouco caro.</p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="flex space-x-3 sticky bottom-0 bg-white py-3 border-t border-gray-200"> |
| <button class="flex-1 bg-blue-600 text-white py-3 rounded-lg font-medium flex items-center justify-center"> |
| <i class="fas fa-comment-dots mr-2"></i> Chat |
| </button> |
| <button class="flex-1 bg-green-600 text-white py-3 rounded-lg font-medium flex items-center justify-center"> |
| <i class="fas fa-directions mr-2"></i> Rota |
| </button> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div id="chatModal" class="fixed inset-0 bg-black bg-opacity-50 z-40 hidden flex items-end"> |
| <div class="bg-white w-full rounded-t-3xl slide-up max-h-[90vh] flex flex-col"> |
| <div class="p-4 sticky top-0 bg-white z-10 border-b border-gray-200 flex justify-between items-center"> |
| <div class="flex items-center"> |
| <button id="backToBusiness" class="mr-3 text-gray-500"> |
| <i class="fas fa-arrow-left"></i> |
| </button> |
| <div> |
| <h3 class="font-semibold">Bistro Moderno</h3> |
| <p class="text-xs text-gray-500">Online agora</p> |
| </div> |
| </div> |
| <button id="closeChatModal" class="text-gray-500"> |
| <i class="fas fa-times"></i> |
| </button> |
| </div> |
| |
| <div class="flex-1 overflow-y-auto p-4 space-y-3"> |
| |
| <div class="flex"> |
| <div class="chat-bubble business-message"> |
| <p>Olá! Como podemos te ajudar hoje?</p> |
| <p class="text-xs text-gray-500 mt-1 text-right">11:30</p> |
| </div> |
| </div> |
| |
| |
| <div class="flex justify-end"> |
| <div class="chat-bubble user-message"> |
| <p>Oi! Gostaria de saber se preciso reservar para sexta à noite.</p> |
| <p class="text-xs text-gray-100 mt-1 text-right">11:32</p> |
| </div> |
| </div> |
| |
| |
| <div class="flex"> |
| <div class="chat-bubble business-message"> |
| <p>Para sexta à noite recomendamos reserva sim, especialmente para grupos maiores que 4 pessoas. Quantas pessoas serão?</p> |
| <p class="text-xs text-gray-500 mt-1 text-right">11:33</p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="sticky bottom-0 bg-white p-3 border-t border-gray-200"> |
| <div class="flex items-center"> |
| <input type="text" placeholder="Digite sua mensagem..." |
| class="flex-1 border border-gray-300 rounded-full py-2 px-4 focus:outline-none focus:ring-1 focus:ring-blue-500"> |
| <button class="ml-2 bg-blue-600 text-white p-2 rounded-full"> |
| <i class="fas fa-paper-plane"></i> |
| </button> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <script> |
| |
| const menuBtn = document.getElementById('menuBtn'); |
| const sideMenu = document.getElementById('sideMenu'); |
| const notificationBtn = document.getElementById('notificationBtn'); |
| const notificationsPanel = document.getElementById('notificationsPanel'); |
| const closeNotifications = document.getElementById('closeNotifications'); |
| const businessModal = document.getElementById('businessModal'); |
| const closeBusinessModal = document.getElementById('closeBusinessModal'); |
| const chatModal = document.getElementById('chatModal'); |
| const closeChatModal = document.getElementById('closeChatModal'); |
| const backToBusiness = document.getElementById('backToBusiness'); |
| const notificationCount = document.getElementById('notificationCount'); |
| |
| |
| const businessCards = document.querySelectorAll('.bg-white.rounded-lg.shadow-md'); |
| |
| |
| menuBtn.addEventListener('click', () => { |
| sideMenu.classList.remove('hidden'); |
| setTimeout(() => { |
| sideMenu.querySelector('div').classList.remove('-translate-x-full'); |
| }, 10); |
| }); |
| |
| sideMenu.addEventListener('click', (e) => { |
| if (e.target === sideMenu) { |
| sideMenu.querySelector('div').classList.add('-translate-x-full'); |
| setTimeout(() => { |
| sideMenu.classList.add('hidden'); |
| }, 300); |
| } |
| }); |
| |
| notificationBtn.addEventListener('click', () => { |
| notificationsPanel.classList.remove('hidden'); |
| setTimeout(() => { |
| notificationsPanel.querySelector('div').classList.remove('translate-x-full'); |
| }, 10); |
| |
| notificationCount.textContent = '0'; |
| notificationCount.classList.add('hidden'); |
| }); |
| |
| closeNotifications.addEventListener('click', () => { |
| notificationsPanel.querySelector('div').classList.add('translate-x-full'); |
| setTimeout(() => { |
| notificationsPanel.classList.add('hidden'); |
| }, 300); |
| }); |
| |
| notificationsPanel.addEventListener('click', (e) => { |
| if (e.target === notificationsPanel) { |
| notificationsPanel.querySelector('div').classList.add('translate-x-full'); |
| setTimeout(() => { |
| notificationsPanel.classList.add('hidden'); |
| }, 300); |
| } |
| }); |
| |
| |
| businessCards.forEach(card => { |
| card.addEventListener('click', () => { |
| businessModal.classList.remove('hidden'); |
| setTimeout(() => { |
| businessModal.querySelector('.slide-up').classList.add('show'); |
| }, 10); |
| }); |
| }); |
| |
| closeBusinessModal.addEventListener('click', () => { |
| businessModal.querySelector('.slide-up').classList.remove('show'); |
| setTimeout(() => { |
| businessModal.classList.add('hidden'); |
| }, 300); |
| }); |
| |
| businessModal.addEventListener('click', (e) => { |
| if (e.target === businessModal) { |
| businessModal.querySelector('.slide-up').classList.remove('show'); |
| setTimeout(() => { |
| businessModal.classList.add('hidden'); |
| }, 300); |
| } |
| }); |
| |
| |
| const chatButtons = document.querySelectorAll('.fa-comment-dots, .fa-comment-alt'); |
| chatButtons.forEach(btn => { |
| btn.addEventListener('click', (e) => { |
| e.stopPropagation(); |
| businessModal.querySelector('.slide-up').classList.remove('show'); |
| setTimeout(() => { |
| businessModal.classList.add('hidden'); |
| chatModal.classList.remove('hidden'); |
| setTimeout(() => { |
| chatModal.querySelector('.slide-up').classList.add('show'); |
| }, 10); |
| }, 300); |
| }); |
| }); |
| |
| closeChatModal.addEventListener('click', () => { |
| chatModal.querySelector('.slide-up').classList.remove('show'); |
| setTimeout(() => { |
| chatModal.classList.add('hidden'); |
| }, 300); |
| }); |
| |
| backToBusiness.addEventListener('click', () => { |
| chatModal.querySelector('.slide-up').classList.remove('show'); |
| setTimeout(() => { |
| chatModal.classList.add('hidden'); |
| businessModal.classList.remove('hidden'); |
| setTimeout(() => { |
| businessModal.querySelector('.slide-up').classList.add('show'); |
| }, 10); |
| }, 300); |
| }); |
| |
| chatModal.addEventListener('click', (e) => { |
| if (e.target === chatModal) { |
| chatModal.querySelector('.slide-up').classList.remove('show'); |
| setTimeout(() => { |
| chatModal.classList.add('hidden'); |
| }, 300); |
| } |
| }); |
| |
| |
| setInterval(() => { |
| const randomCount = Math.floor(Math.random() * 5) + 1; |
| if (Math.random() > 0.3) { |
| notificationCount.textContent = randomCount; |
| notificationCount.classList.remove('hidden'); |
| |
| |
| notificationCount.classList.add('animate-pulse'); |
| setTimeout(() => { |
| notificationCount.classList.remove('animate-pulse'); |
| }, 1000); |
| } |
| }, 20000); |
| |
| |
| document.addEventListener('DOMContentLoaded', () => { |
| const fadeElements = document.querySelectorAll('.fade-in'); |
| fadeElements.forEach((el, index) => { |
| setTimeout(() => { |
| el.style.opacity = '1'; |
| el.style.transform = 'translateY(0)'; |
| }, index * 100); |
| }); |
| }); |
| </script> |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <a href="https://enzostvs-deepsite.hf.space" style="color: #fff;" target="_blank" >DeepSite</a> <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;"></p><p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=WizardImon/mobile-first-ecommerce" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |