Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Interactive UI Showcase</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> | |
/* Custom CSS for elements that need more precise styling */ | |
.gradient-bg { | |
background: linear-gradient(135deg, #6e8efb, #a777e3); | |
} | |
.card-hover { | |
transition: all 0.3s ease; | |
} | |
.card-hover:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
} | |
.animated-button { | |
position: relative; | |
overflow: hidden; | |
} | |
.animated-button::after { | |
content: ''; | |
position: absolute; | |
top: 50%; | |
left: 50%; | |
width: 5px; | |
height: 5px; | |
background: rgba(255, 255, 255, 0.5); | |
opacity: 0; | |
border-radius: 100%; | |
transform: scale(1, 1) translate(-50%); | |
transform-origin: 50% 50%; | |
} | |
.animated-button:focus:not(:active)::after { | |
animation: ripple 1s ease-out; | |
} | |
@keyframes ripple { | |
0% { | |
transform: scale(0, 0); | |
opacity: 0.5; | |
} | |
100% { | |
transform: scale(20, 20); | |
opacity: 0; | |
} | |
} | |
.floating { | |
animation: floating 3s ease-in-out infinite; | |
} | |
@keyframes floating { | |
0% { transform: translateY(0px); } | |
50% { transform: translateY(-15px); } | |
100% { transform: translateY(0px); } | |
} | |
</style> | |
</head> | |
<body class="bg-gray-50 min-h-screen"> | |
<!-- Navigation --> | |
<nav class="bg-white shadow-lg"> | |
<div class="max-w-6xl mx-auto px-4"> | |
<div class="flex justify-between"> | |
<div class="flex space-x-7"> | |
<div> | |
<a href="#" class="flex items-center py-4 px-2"> | |
<i class="fas fa-cube text-purple-600 text-2xl mr-2"></i> | |
<span class="font-semibold text-gray-500 text-lg">CubeUI</span> | |
</a> | |
</div> | |
<div class="hidden md:flex items-center space-x-1"> | |
<a href="#" class="py-4 px-2 text-purple-600 border-b-4 border-purple-600 font-semibold">Home</a> | |
<a href="#" class="py-4 px-2 text-gray-500 font-semibold hover:text-purple-600 transition duration-300">Services</a> | |
<a href="#" class="py-4 px-2 text-gray-500 font-semibold hover:text-purple-600 transition duration-300">About</a> | |
<a href="#" class="py-4 px-2 text-gray-500 font-semibold hover:text-purple-600 transition duration-300">Contact</a> | |
</div> | |
</div> | |
<div class="hidden md:flex items-center space-x-3"> | |
<a href="#" class="py-2 px-2 font-medium text-gray-500 rounded hover:bg-purple-600 hover:text-white transition duration-300">Log In</a> | |
<a href="#" class="py-2 px-3 font-medium text-white bg-purple-600 rounded hover:bg-purple-700 transition duration-300">Sign Up</a> | |
</div> | |
<div class="md:hidden flex items-center"> | |
<button class="outline-none mobile-menu-button"> | |
<i class="fas fa-bars text-gray-500 text-xl"></i> | |
</button> | |
</div> | |
</div> | |
</div> | |
<div class="hidden mobile-menu"> | |
<ul> | |
<li class="active"><a href="#" class="block text-sm px-2 py-4 text-white bg-purple-600 font-semibold">Home</a></li> | |
<li><a href="#" class="block text-sm px-2 py-4 hover:bg-purple-600 hover:text-white transition duration-300">Services</a></li> | |
<li><a href="#" class="block text-sm px-2 py-4 hover:bg-purple-600 hover:text-white transition duration-300">About</a></li> | |
<li><a href="#" class="block text-sm px-2 py-4 hover:bg-purple-600 hover:text-white transition duration-300">Contact</a></li> | |
</ul> | |
</div> | |
</nav> | |
<!-- Hero Section --> | |
<div class="gradient-bg text-white py-20"> | |
<div class="container mx-auto px-6 flex flex-col md:flex-row items-center"> | |
<div class="md:w-1/2 mb-10 md:mb-0"> | |
<h1 class="text-4xl md:text-6xl font-bold mb-4">Build Amazing UIs</h1> | |
<p class="text-xl mb-8">With the power of HTML, CSS, and JavaScript, create stunning interfaces that captivate your users.</p> | |
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4"> | |
<button class="animated-button bg-white text-purple-600 font-bold py-3 px-6 rounded-full hover:bg-gray-100 transition duration-300 focus:outline-none"> | |
Get Started | |
</button> | |
<button class="animated-button bg-transparent border-2 border-white text-white font-bold py-3 px-6 rounded-full hover:bg-white hover:text-purple-600 transition duration-300 focus:outline-none"> | |
Learn More | |
</button> | |
</div> | |
</div> | |
<div class="md:w-1/2 flex justify-center"> | |
<div class="relative w-64 h-64 md:w-80 md:h-80"> | |
<div class="absolute inset-0 bg-white bg-opacity-20 rounded-full filter blur-xl"></div> | |
<div class="relative flex items-center justify-center w-full h-full"> | |
<img src="https://cdn-icons-png.flaticon.com/512/1063/1063249.png" alt="UI Illustration" class="w-3/4 floating"> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Features Section --> | |
<section class="py-20 bg-white"> | |
<div class="container mx-auto px-6"> | |
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">Key Features</h2> | |
<div class="grid grid-cols-1 md:grid-cols-3 gap-8"> | |
<!-- Feature 1 --> | |
<div class="bg-gray-50 p-8 rounded-lg card-hover"> | |
<div class="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mb-6"> | |
<i class="fas fa-bolt text-purple-600 text-2xl"></i> | |
</div> | |
<h3 class="text-xl font-semibold text-gray-800 mb-3">Lightning Fast</h3> | |
<p class="text-gray-600">Optimized for performance with minimal dependencies and efficient code.</p> | |
</div> | |
<!-- Feature 2 --> | |
<div class="bg-gray-50 p-8 rounded-lg card-hover"> | |
<div class="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mb-6"> | |
<i class="fas fa-mobile-alt text-purple-600 text-2xl"></i> | |
</div> | |
<h3 class="text-xl font-semibold text-gray-800 mb-3">Responsive Design</h3> | |
<p class="text-gray-600">Looks great on any device, from mobile phones to large desktop screens.</p> | |
</div> | |
<!-- Feature 3 --> | |
<div class="bg-gray-50 p-8 rounded-lg card-hover"> | |
<div class="w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mb-6"> | |
<i class="fas fa-paint-brush text-purple-600 text-2xl"></i> | |
</div> | |
<h3 class="text-xl font-semibold text-gray-800 mb-3">Customizable</h3> | |
<p class="text-gray-600">Easily modify colors, spacing, and components to match your brand.</p> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Interactive Demo Section --> | |
<section class="py-20 bg-gray-100"> | |
<div class="container mx-auto px-6"> | |
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12">Interactive Demo</h2> | |
<div class="flex flex-col md:flex-row items-center"> | |
<div class="md:w-1/2 mb-10 md:mb-0"> | |
<div class="bg-white p-6 rounded-lg shadow-lg"> | |
<div class="flex justify-between items-center mb-4"> | |
<h3 class="text-xl font-semibold">Theme Customizer</h3> | |
<button id="reset-btn" class="text-sm text-purple-600 hover:text-purple-800">Reset</button> | |
</div> | |
<div class="space-y-4"> | |
<div> | |
<label class="block text-sm font-medium text-gray-700 mb-1">Primary Color</label> | |
<div class="flex space-x-2"> | |
<button data-color="purple" class="color-btn w-8 h-8 rounded-full bg-purple-600 border-2 border-white shadow"></button> | |
<button data-color="blue" class="color-btn w-8 h-8 rounded-full bg-blue-600 border-2 border-white shadow"></button> | |
<button data-color="green" class="color-btn w-8 h-8 rounded-full bg-green-600 border-2 border-white shadow"></button> | |
<button data-color="red" class="color-btn w-8 h-8 rounded-full bg-red-600 border-2 border-white shadow"></button> | |
</div> | |
</div> | |
<div> | |
<label class="block text-sm font-medium text-gray-700 mb-1">Dark Mode</label> | |
<label class="relative inline-flex items-center cursor-pointer"> | |
<input type="checkbox" id="dark-mode-toggle" class="sr-only peer"> | |
<div class="w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-purple-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-purple-600"></div> | |
<span class="ml-3 text-sm font-medium text-gray-700">Toggle</span> | |
</label> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="md:w-1/2"> | |
<div id="demo-card" class="bg-white p-6 rounded-lg shadow-lg transition-all duration-300"> | |
<div class="flex items-center mb-4"> | |
<div class="w-12 h-12 rounded-full bg-purple-100 flex items-center justify-center mr-4"> | |
<i class="fas fa-user text-purple-600 text-xl"></i> | |
</div> | |
<div> | |
<h3 class="font-semibold">John Doe</h3> | |
<p class="text-sm text-gray-600">UI Designer</p> | |
</div> | |
</div> | |
<p class="text-gray-700 mb-4">This is a preview card that changes based on your selections. Try customizing the theme!</p> | |
<div class="flex space-x-2"> | |
<button class="bg-purple-600 text-white px-4 py-2 rounded hover:bg-purple-700 transition duration-300">Follow</button> | |
<button class="border border-gray-300 px-4 py-2 rounded hover:bg-gray-100 transition duration-300">Message</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Newsletter Section --> | |
<section class="py-16 gradient-bg text-white"> | |
<div class="container mx-auto px-6 text-center"> | |
<h2 class="text-3xl font-bold mb-6">Stay Updated</h2> | |
<p class="text-xl mb-8 max-w-2xl mx-auto">Subscribe to our newsletter for the latest updates and tips on UI development.</p> | |
<div class="flex flex-col sm:flex-row justify-center max-w-md mx-auto"> | |
<input type="email" placeholder="Enter your email" class="flex-grow px-4 py-3 rounded-l-full sm:rounded-r-none rounded-r-full mb-2 sm:mb-0 focus:outline-none text-gray-800"> | |
<button class="animated-button bg-white text-purple-600 font-bold px-6 py-3 rounded-r-full sm:rounded-l-none rounded-l-full hover:bg-gray-100 transition duration-300 focus:outline-none"> | |
Subscribe | |
</button> | |
</div> | |
</div> | |
</section> | |
<!-- Footer --> | |
<footer class="bg-gray-800 text-white py-12"> | |
<div class="container mx-auto px-6"> | |
<div class="grid grid-cols-1 md:grid-cols-4 gap-8"> | |
<div> | |
<h3 class="text-xl font-semibold mb-4">CubeUI</h3> | |
<p class="text-gray-400">Creating beautiful, functional user interfaces with pure web technologies.</p> | |
</div> | |
<div> | |
<h4 class="font-semibold mb-4">Quick Links</h4> | |
<ul class="space-y-2"> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Home</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Features</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Pricing</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Blog</a></li> | |
</ul> | |
</div> | |
<div> | |
<h4 class="font-semibold mb-4">Resources</h4> | |
<ul class="space-y-2"> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Documentation</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Tutorials</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Support</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition duration-300">API Reference</a></li> | |
</ul> | |
</div> | |
<div> | |
<h4 class="font-semibold mb-4">Connect</h4> | |
<div class="flex space-x-4"> | |
<a href="#" class="text-gray-400 hover:text-white transition duration-300"><i class="fab fa-twitter text-xl"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white transition duration-300"><i class="fab fa-facebook text-xl"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white transition duration-300"><i class="fab fa-instagram text-xl"></i></a> | |
<a href="#" class="text-gray-400 hover:text-white transition duration-300"><i class="fab fa-github text-xl"></i></a> | |
</div> | |
</div> | |
</div> | |
<div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400"> | |
<p>© 2023 CubeUI. All rights reserved.</p> | |
</div> | |
</div> | |
</footer> | |
<script> | |
// Mobile menu toggle | |
const mobileMenuButton = document.querySelector('.mobile-menu-button'); | |
const mobileMenu = document.querySelector('.mobile-menu'); | |
mobileMenuButton.addEventListener('click', () => { | |
mobileMenu.classList.toggle('hidden'); | |
}); | |
// Theme customization | |
const colorButtons = document.querySelectorAll('.color-btn'); | |
const darkModeToggle = document.getElementById('dark-mode-toggle'); | |
const demoCard = document.getElementById('demo-card'); | |
const resetBtn = document.getElementById('reset-btn'); | |
colorButtons.forEach(button => { | |
button.addEventListener('click', () => { | |
const color = button.getAttribute('data-color'); | |
// Update all elements with primary color | |
document.querySelectorAll('.gradient-bg').forEach(el => { | |
el.classList.remove('gradient-bg'); | |
el.classList.add(`bg-${color}-600`); | |
}); | |
document.querySelectorAll('.text-purple-600').forEach(el => { | |
el.classList.remove('text-purple-600'); | |
el.classList.add(`text-${color}-600`); | |
}); | |
document.querySelectorAll('.bg-purple-600').forEach(el => { | |
el.classList.remove('bg-purple-600'); | |
el.classList.add(`bg-${color}-600`); | |
}); | |
document.querySelectorAll('.bg-purple-100').forEach(el => { | |
el.classList.remove('bg-purple-100'); | |
el.classList.add(`bg-${color}-100`); | |
}); | |
document.querySelectorAll('.border-purple-600').forEach(el => { | |
el.classList.remove('border-purple-600'); | |
el.classList.add(`border-${color}-600`); | |
}); | |
document.querySelectorAll('.peer-focus:ring-purple-300').forEach(el => { | |
el.classList.remove('peer-focus:ring-purple-300'); | |
el.classList.add(`peer-focus:ring-${color}-300`); | |
}); | |
document.querySelectorAll('.peer-checked:bg-purple-600').forEach(el => { | |
el.classList.remove('peer-checked:bg-purple-600'); | |
el.classList.add(`peer-checked:bg-${color}-600`); | |
}); | |
}); | |
}); | |
darkModeToggle.addEventListener('change', () => { | |
document.body.classList.toggle('bg-gray-900'); | |
document.body.classList.toggle('bg-gray-50'); | |
if (darkModeToggle.checked) { | |
demoCard.classList.remove('bg-white'); | |
demoCard.classList.add('bg-gray-800'); | |
document.querySelectorAll('.text-gray-800').forEach(el => { | |
el.classList.remove('text-gray-800'); | |
el.classList.add('text-white'); | |
}); | |
document.querySelectorAll('.bg-white').forEach(el => { | |
el.classList.remove('bg-white'); | |
el.classList.add('bg-gray-800'); | |
}); | |
document.querySelectorAll('.bg-gray-50').forEach(el => { | |
el.classList.remove('bg-gray-50'); | |
el.classList.add('bg-gray-700'); | |
}); | |
} else { | |
demoCard.classList.remove('bg-gray-800'); | |
demoCard.classList.add('bg-white'); | |
document.querySelectorAll('.text-white').forEach(el => { | |
if (el.closest('footer') || el.closest('.gradient-bg')) return; | |
el.classList.remove('text-white'); | |
el.classList.add('text-gray-800'); | |
}); | |
document.querySelectorAll('.bg-gray-800').forEach(el => { | |
if (el.closest('footer')) return; | |
el.classList.remove('bg-gray-800'); | |
el.classList.add('bg-white'); | |
}); | |
document.querySelectorAll('.bg-gray-700').forEach(el => { | |
el.classList.remove('bg-gray-700'); | |
el.classList.add('bg-gray-50'); | |
}); | |
} | |
}); | |
resetBtn.addEventListener('click', () => { | |
// Reset colors to purple | |
document.querySelectorAll('[class*="bg-"]').forEach(el => { | |
if (el.classList.contains('gradient-bg')) return; | |
if (el.classList.contains('bg-white') || el.classList.contains('bg-gray-50') || | |
el.classList.contains('bg-gray-800') || el.classList.contains('bg-gray-700') || | |
el.classList.contains('bg-gray-100') || el.classList.contains('bg-gray-900')) return; | |
el.classList.remove(el.classList[1]); | |
el.classList.add('bg-purple-600'); | |
}); | |
document.querySelectorAll('.text-purple-600').forEach(el => { | |
el.classList.remove('text-purple-600'); | |
el.classList.add('text-purple-600'); | |
}); | |
document.querySelectorAll('.bg-purple-100').forEach(el => { | |
el.classList.remove('bg-purple-100'); | |
el.classList.add('bg-purple-100'); | |
}); | |
document.querySelectorAll('.border-purple-600').forEach(el => { | |
el.classList.remove('border-purple-600'); | |
el.classList.add('border-purple-600'); | |
}); | |
document.querySelectorAll('.peer-focus:ring-purple-300').forEach(el => { | |
el.classList.remove('peer-focus:ring-purple-300'); | |
el.classList.add('peer-focus:ring-purple-300'); | |
}); | |
document.querySelectorAll('.peer-checked:bg-purple-600').forEach(el => { | |
el.classList.remove('peer-checked:bg-purple-600'); | |
el.classList.add('peer-checked:bg-purple-600'); | |
}); | |
// Reset gradient background | |
document.querySelectorAll('.gradient-bg').forEach(el => { | |
el.classList.remove('bg-purple-600'); | |
el.classList.add('gradient-bg'); | |
}); | |
// Reset dark mode | |
darkModeToggle.checked = false; | |
document.body.classList.remove('bg-gray-900'); | |
document.body.classList.add('bg-gray-50'); | |
demoCard.classList.remove('bg-gray-800'); | |
demoCard.classList.add('bg-white'); | |
document.querySelectorAll('.text-white').forEach(el => { | |
if (el.closest('footer') || el.closest('.gradient-bg')) return; | |
el.classList.remove('text-white'); | |
el.classList.add('text-gray-800'); | |
}); | |
document.querySelectorAll('.bg-gray-800').forEach(el => { | |
if (el.closest('footer')) return; | |
el.classList.remove('bg-gray-800'); | |
el.classList.add('bg-white'); | |
}); | |
document.querySelectorAll('.bg-gray-700').forEach(el => { | |
el.classList.remove('bg-gray-700'); | |
el.classList.add('bg-gray-50'); | |
}); | |
}); | |
// Animate elements when they come into view | |
const observer = new IntersectionObserver((entries) => { | |
entries.forEach(entry => { | |
if (entry.isIntersecting) { | |
entry.target.classList.add('animate-fadeIn'); | |
} | |
}); | |
}, { threshold: 0.1 }); | |
document.querySelectorAll('.card-hover').forEach(card => { | |
observer.observe(card); | |
}); | |
</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=logicaldata/minepage" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |