Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Interactive Greeting</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 float { | |
| 0%, 100% { transform: translateY(0); } | |
| 50% { transform: translateY(-20px); } | |
| } | |
| .floating { | |
| animation: float 3s ease-in-out infinite; | |
| } | |
| .gradient-text { | |
| background: linear-gradient(45deg, #3b82f6, #8b5cf6, #ec4899); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| color: transparent; | |
| } | |
| .pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.05); } | |
| 100% { transform: scale(1); } | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gradient-to-br from-blue-50 to-purple-50 min-h-screen flex flex-col items-center justify-center p-4"> | |
| <div class="max-w-2xl w-full bg-white rounded-2xl shadow-xl overflow-hidden transition-all duration-500 transform hover:scale-[1.02]"> | |
| <div class="bg-gradient-to-r from-blue-500 to-purple-600 p-6 text-white"> | |
| <div class="flex items-center space-x-4"> | |
| <div class="floating"> | |
| <div class="w-16 h-16 rounded-full bg-white/20 flex items-center justify-center"> | |
| <i class="fas fa-smile-beam text-3xl text-white"></i> | |
| </div> | |
| </div> | |
| <div> | |
| <h1 class="text-3xl font-bold">Hello There!</h1> | |
| <p class="opacity-90">How are you today?</p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="p-8"> | |
| <div class="mb-8"> | |
| <p class="text-gray-700 mb-6 text-lg"> | |
| I'm doing <span class="gradient-text font-bold">wonderfully</span> today! | |
| The sun is shining (at least in my digital world ☀️) and I'm excited to create something amazing with you. | |
| </p> | |
| <div class="bg-blue-50 rounded-lg p-4 mb-6 border-l-4 border-blue-500"> | |
| <p class="text-blue-800"> | |
| <i class="fas fa-lightbulb text-blue-500 mr-2"></i> | |
| Did you know? This greeting is powered by pure HTML, CSS, and JavaScript! | |
| </p> | |
| </div> | |
| </div> | |
| <div class="mb-8"> | |
| <h2 class="text-xl font-semibold text-gray-800 mb-4">How about you?</h2> | |
| <div class="grid grid-cols-2 md:grid-cols-4 gap-3"> | |
| <button onclick="selectMood('happy')" class="mood-btn bg-green-100 hover:bg-green-200 border-green-300"> | |
| <i class="fas fa-laugh-beam text-green-500"></i> Happy | |
| </button> | |
| <button onclick="selectMood('good')" class="mood-btn bg-blue-100 hover:bg-blue-200 border-blue-300"> | |
| <i class="fas fa-smile text-blue-500"></i> Good | |
| </button> | |
| <button onclick="selectMood('okay')" class="mood-btn bg-yellow-100 hover:bg-yellow-200 border-yellow-300"> | |
| <i class="fas fa-meh text-yellow-500"></i> Okay | |
| </button> | |
| <button onclick="selectMood('sad')" class="mood-btn bg-purple-100 hover:bg-purple-200 border-purple-300"> | |
| <i class="fas fa-sad-tear text-purple-500"></i> Sad | |
| </button> | |
| </div> | |
| </div> | |
| <div id="response-area" class="hidden pulse bg-gradient-to-r from-blue-50 to-purple-50 rounded-lg p-4 border border-gray-200"> | |
| <div class="flex items-start"> | |
| <div class="mr-3 text-blue-500"> | |
| <i class="fas fa-comment-dots text-2xl"></i> | |
| </div> | |
| <div> | |
| <p id="response-text" class="text-gray-700"></p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-8 pt-6 border-t border-gray-200 flex justify-between items-center"> | |
| <div class="text-sm text-gray-500"> | |
| <i class="fas fa-clock mr-1"></i> <span id="current-time"></span> | |
| </div> | |
| <button onclick="showConfetti()" class="px-4 py-2 bg-gradient-to-r from-pink-500 to-orange-500 text-white rounded-full hover:shadow-lg transition-all flex items-center"> | |
| <i class="fas fa-sparkles mr-2"></i> Celebrate! | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <div id="confetti-container" class="fixed inset-0 pointer-events-none overflow-hidden hidden"></div> | |
| <script> | |
| // Update current time | |
| function updateTime() { | |
| const now = new Date(); | |
| document.getElementById('current-time').textContent = now.toLocaleTimeString(); | |
| } | |
| setInterval(updateTime, 1000); | |
| updateTime(); | |
| // Mood selection | |
| function selectMood(mood) { | |
| const responseArea = document.getElementById('response-area'); | |
| const responseText = document.getElementById('response-text'); | |
| const responses = { | |
| happy: "That's fantastic! 😊 Your happiness is contagious. Let's make today even better!", | |
| good: "Great to hear you're doing well! 🌟 Ready to create something amazing together?", | |
| okay: "That's okay! Every day has its ups and downs. Let's make this one better together.", | |
| sad: "I'm sorry to hear that. 💙 Remember, even cloudy days make the sunshine brighter when it returns." | |
| }; | |
| responseText.textContent = responses[mood]; | |
| responseArea.classList.remove('hidden'); | |
| // Add floating animation to response | |
| responseArea.classList.add('animate__animated', 'animate__fadeInUp'); | |
| } | |
| // Confetti effect | |
| function showConfetti() { | |
| const container = document.getElementById('confetti-container'); | |
| container.classList.remove('hidden'); | |
| // Create confetti elements | |
| for (let i = 0; i < 100; i++) { | |
| const confetti = document.createElement('div'); | |
| confetti.className = 'absolute w-2 h-2 rounded-full'; | |
| // Random colors | |
| const colors = ['bg-red-500', 'bg-yellow-500', 'bg-green-500', 'bg-blue-500', 'bg-purple-500', 'bg-pink-500']; | |
| const randomColor = colors[Math.floor(Math.random() * colors.length)]; | |
| confetti.classList.add(randomColor); | |
| // Random position | |
| confetti.style.left = Math.random() * 100 + 'vw'; | |
| confetti.style.top = '-10px'; | |
| // Random animation | |
| const animationDuration = Math.random() * 3 + 2; | |
| confetti.style.animation = `fall ${animationDuration}s linear forwards`; | |
| container.appendChild(confetti); | |
| // Remove confetti after animation | |
| setTimeout(() => { | |
| confetti.remove(); | |
| }, animationDuration * 1000); | |
| } | |
| // Hide container after animation | |
| setTimeout(() => { | |
| container.classList.add('hidden'); | |
| container.innerHTML = ''; | |
| }, 3000); | |
| // Add CSS for falling animation | |
| const style = document.createElement('style'); | |
| style.innerHTML = ` | |
| @keyframes fall { | |
| to { | |
| transform: translateY(100vh) rotate(360deg); | |
| opacity: 0; | |
| } | |
| } | |
| `; | |
| document.head.appendChild(style); | |
| } | |
| </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 <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=3rd3y3/wsdomsaura-0" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |