zippyverse-vdeepsite / index.html
GoZippy's picture
undefined - Initial Deployment
feb93d3 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nebula Trader - Space Trading Adventure</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.galaxy-view {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
}
.ui-overlay {
position: relative;
z-index: 1;
pointer-events: none;
}
.ui-overlay * {
pointer-events: auto;
}
.planet-info-card {
backdrop-filter: blur(10px);
background-color: rgba(15, 23, 42, 0.7);
}
.commodity-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
}
.ship-display {
perspective: 1000px;
}
.ship-model {
transform-style: preserve-3d;
animation: float 6s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0) rotateY(0); }
50% { transform: translateY(-10px) rotateY(5deg); }
}
.pulsate {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); }
70% { box-shadow: 0 0 0 10px rgba(59, 130, 246, 0); }
100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); }
}
</style>
</head>
<body class="bg-gray-900 text-gray-100 font-sans overflow-hidden h-screen flex flex-col">
<!-- 3D Galaxy View -->
<div id="galaxy-view" class="galaxy-view"></div>
<!-- Main Game UI -->
<div class="ui-overlay flex flex-col h-full">
<!-- Header -->
<header class="bg-gray-800/80 border-b border-gray-700 p-4 flex justify-between items-center">
<div class="flex items-center space-x-4">
<h1 class="text-2xl font-bold bg-gradient-to-r from-blue-400 to-purple-500 bg-clip-text text-transparent">
Nebula Trader
</h1>
<div class="text-sm bg-gray-700/50 px-3 py-1 rounded-full flex items-center">
<span class="w-2 h-2 bg-green-400 rounded-full mr-2"></span>
<span>Online</span>
</div>
</div>
<div class="flex items-center space-x-6">
<div class="text-right">
<div class="text-xs text-gray-400">Credits</div>
<div class="text-xl font-mono">1,250,500 <span class="text-blue-400"></span></div>
</div>
<div class="text-right">
<div class="text-xs text-gray-400">Ship</div>
<div class="text-lg">Mercury Starhauler</div>
</div>
<div class="relative group">
<img src="https://i.pravatar.cc/40" class="rounded-full w-10 h-10 border-2 border-blue-400 cursor-pointer" alt="Player">
<div class="absolute right-0 mt-2 w-48 bg-gray-800 rounded-md shadow-lg z-50 hidden group-hover:block">
<div class="py-1">
<a href="#" class="block px-4 py-2 text-sm hover:bg-gray-700">Profile</a>
<a href="#" class="block px-4 py-2 text-sm hover:bg-gray-700">Settings</a>
<a href="#" class="block px-4 py-2 text-sm hover:bg-gray-700">Logout</a>
</div>
</div>
</div>
</div>
</header>
<!-- Main Content -->
<div class="flex flex-1 overflow-hidden">
<!-- Left Sidebar - Navigation -->
<nav class="w-16 bg-gray-800/80 border-r border-gray-700 flex flex-col items-center py-4 space-y-6">
<button class="nav-btn active" title="Galaxy Map">
<i class="fas fa-map text-xl"></i>
</button>
<button class="nav-btn" title="Trade">
<i class="fas fa-exchange-alt text-xl"></i>
</button>
<button class="nav-btn" title="Ship">
<i class="fas fa-rocket text-xl"></i>
</button>
<button class="nav-btn" title="Quests">
<i class="fas fa-scroll text-xl"></i>
</button>
<button class="nav-btn" title="Comms">
<i class="fas fa-comments text-xl"></i>
</button>
<div class="flex-1"></div>
<button class="nav-btn" title="Help">
<i class="fas fa-question-circle text-xl"></i>
</button>
</nav>
<!-- Center Content - Current Planet -->
<main class="flex-1 overflow-y-auto p-6">
<div class="max-w-6xl mx-auto">
<div class="flex justify-between items-center mb-8">
<div>
<h2 class="text-3xl font-bold">New Terra Prime</h2>
<div class="flex items-center mt-2 space-x-4 text-sm">
<span class="flex items-center"><i class="fas fa-globe-americas text-blue-400 mr-1"></i> Class M Planet</span>
<span class="flex items-center"><i class="fas fa-users text-green-400 mr-1"></i> Population: 4.2B</span>
<span class="flex items-center"><i class="fas fa-shield-alt text-yellow-400 mr-1"></i> Security: High</span>
</div>
</div>
<div class="flex space-x-3">
<button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-md flex items-center">
<i class="fas fa-compass mr-2"></i> Explore
</button>
<button class="px-4 py-2 bg-gray-700 hover:bg-gray-600 rounded-md flex items-center">
<i class="fas fa-info-circle mr-2"></i> Info
</button>
</div>
</div>
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<!-- Planet Info Card -->
<div class="planet-info-card border border-gray-700 rounded-lg p-6 col-span-1">
<h3 class="text-xl font-semibold mb-4 flex items-center">
<i class="fas fa-info-circle text-blue-400 mr-2"></i> Planet Details
</h3>
<div class="space-y-3">
<div>
<div class="text-sm text-gray-400">Government</div>
<div>Corporate Democracy</div>
</div>
<div>
<div class="text-sm text-gray-400">Tech Level</div>
<div class="flex items-center">
<div class="w-full bg-gray-700 rounded-full h-2.5">
<div class="bg-blue-600 h-2.5 rounded-full" style="width: 85%"></div>
</div>
<span class="ml-2 text-sm">Advanced</span>
</div>
</div>
<div>
<div class="text-sm text-gray-400">Economy</div>
<div class="flex items-center">
<div class="w-full bg-gray-700 rounded-full h-2.5">
<div class="bg-green-600 h-2.5 rounded-full" style="width: 72%"></div>
</div>
<span class="ml-2 text-sm">Prosperous</span>
</div>
</div>
<div>
<div class="text-sm text-gray-400">Specialty</div>
<div class="flex items-center">
<i class="fas fa-microchip text-purple-400 mr-2"></i>
<span>Advanced Electronics</span>
</div>
</div>
</div>
</div>
<!-- Trade Market -->
<div class="planet-info-card border border-gray-700 rounded-lg p-6 col-span-2">
<h3 class="text-xl font-semibold mb-4 flex items-center">
<i class="fas fa-exchange-alt text-green-400 mr-2"></i> Trade Market
</h3>
<div class="mb-4 flex justify-between items-center">
<div class="relative w-64">
<input type="text" placeholder="Search commodities..." class="w-full bg-gray-700 border border-gray-600 rounded-md py-2 px-4 pl-10 focus:outline-none focus:ring-2 focus:ring-blue-500">
<i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
</div>
<div class="text-sm">
<span class="text-gray-400">Cargo:</span>
<span class="font-mono">125/500</span>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
<!-- Commodity Card -->
<div class="commodity-card bg-gray-800/50 border border-gray-700 rounded-lg p-4 transition-all duration-200 cursor-pointer hover:border-blue-400">
<div class="flex justify-between items-start mb-2">
<h4 class="font-medium">Quantum Processors</h4>
<span class="text-xs bg-blue-900 text-blue-200 px-2 py-1 rounded">High Tech</span>
</div>
<div class="flex justify-between text-sm mb-3">
<div>
<div class="text-gray-400">Buy</div>
<div class="text-green-400">1,250 Ⓝ</div>
</div>
<div class="text-right">
<div class="text-gray-400">Sell</div>
<div class="text-red-400">950 Ⓝ</div>
</div>
</div>
<div class="flex justify-between items-center text-xs">
<span class="text-gray-400">Stock: 42</span>
<div class="flex space-x-2">
<button class="w-6 h-6 bg-blue-600 hover:bg-blue-700 rounded flex items-center justify-center">
<i class="fas fa-plus text-xs"></i>
</button>
<button class="w-6 h-6 bg-gray-700 hover:bg-gray-600 rounded flex items-center justify-center">
<i class="fas fa-minus text-xs"></i>
</button>
</div>
</div>
</div>
<!-- Commodity Card -->
<div class="commodity-card bg-gray-800/50 border border-gray-700 rounded-lg p-4 transition-all duration-200 cursor-pointer hover:border-blue-400">
<div class="flex justify-between items-start mb-2">
<h4 class="font-medium">Plasma Rifles</h4>
<span class="text-xs bg-red-900 text-red-200 px-2 py-1 rounded">Military</span>
</div>
<div class="flex justify-between text-sm mb-3">
<div>
<div class="text-gray-400">Buy</div>
<div class="text-green-400">3,450 Ⓝ</div>
</div>
<div class="text-right">
<div class="text-gray-400">Sell</div>
<div class="text-red-400">2,800 Ⓝ</div>
</div>
</div>
<div class="flex justify-between items-center text-xs">
<span class="text-gray-400">Stock: 18</span>
<div class="flex space-x-2">
<button class="w-6 h-6 bg-blue-600 hover:bg-blue-700 rounded flex items-center justify-center">
<i class="fas fa-plus text-xs"></i>
</button>
<button class="w-6 h-6 bg-gray-700 hover:bg-gray-600 rounded flex items-center justify-center">
<i class="fas fa-minus text-xs"></i>
</button>
</div>
</div>
</div>
<!-- Commodity Card -->
<div class="commodity-card bg-gray-800/50 border border-gray-700 rounded-lg p-4 transition-all duration-200 cursor-pointer hover:border-blue-400">
<div class="flex justify-between items-start mb-2">
<h4 class="font-medium">Bio-Nutrients</h4>
<span class="text-xs bg-green-900 text-green-200 px-2 py-1 rounded">Agricultural</span>
</div>
<div class="flex justify-between text-sm mb-3">
<div>
<div class="text-gray-400">Buy</div>
<div class="text-green-400">320 Ⓝ</div>
</div>
<div class="text-right">
<div class="text-gray-400">Sell</div>
<div class="text-red-400">250 Ⓝ</div>
</div>
</div>
<div class="flex justify-between items-center text-xs">
<span class="text-gray-400">Stock: 156</span>
<div class="flex space-x-2">
<button class="w-6 h-6 bg-blue-600 hover:bg-blue-700 rounded flex items-center justify-center">
<i class="fas fa-plus text-xs"></i>
</button>
<button class="w-6 h-6 bg-gray-700 hover:bg-gray-600 rounded flex items-center justify-center">
<i class="fas fa-minus text-xs"></i>
</button>
</div>
</div>
</div>
<!-- Commodity Card -->
<div class="commodity-card bg-gray-800/50 border border-gray-700 rounded-lg p-4 transition-all duration-200 cursor-pointer hover:border-blue-400">
<div class="flex justify-between items-start mb-2">
<h4 class="font-medium">Neutronium Ore</h4>
<span class="text-xs bg-yellow-900 text-yellow-200 px-2 py-1 rounded">Industrial</span>
</div>
<div class="flex justify-between text-sm mb-3">
<div>
<div class="text-gray-400">Buy</div>
<div class="text-green-400">780 Ⓝ</div>
</div>
<div class="text-right">
<div class="text-gray-400">Sell</div>
<div class="text-red-400">620 Ⓝ</div>
</div>
</div>
<div class="flex justify-between items-center text-xs">
<span class="text-gray-400">Stock: 87</span>
<div class="flex space-x-2">
<button class="w-6 h-6 bg-blue-600 hover:bg-blue-700 rounded flex items-center justify-center">
<i class="fas fa-plus text-xs"></i>
</button>
<button class="w-6 h-6 bg-gray-700 hover:bg-gray-600 rounded flex items-center justify-center">
<i class="fas fa-minus text-xs"></i>
</button>
</div>
</div>
</div>
<!-- Commodity Card -->
<div class="commodity-card bg-gray-800/50 border border-gray-700 rounded-lg p-4 transition-all duration-200 cursor-pointer hover:border-blue-400">
<div class="flex justify-between items-start mb-2">
<h4 class="font-medium">Luxury Goods</h4>
<span class="text-xs bg-purple-900 text-purple-200 px-2 py-1 rounded">Consumer</span>
</div>
<div class="flex justify-between text-sm mb-3">
<div>
<div class="text-gray-400">Buy</div>
<div class="text-green-400">1,850 Ⓝ</div>
</div>
<div class="text-right">
<div class="text-gray-400">Sell</div>
<div class="text-red-400">1,450 Ⓝ</div>
</div>
</div>
<div class="flex justify-between items-center text-xs">
<span class="text-gray-400">Stock: 23</span>
<div class="flex space-x-2">
<button class="w-6 h-6 bg-blue-600 hover:bg-blue-700 rounded flex items-center justify-center">
<i class="fas fa-plus text-xs"></i>
</button>
<button class="w-6 h-6 bg-gray-700 hover:bg-gray-600 rounded flex items-center justify-center">
<i class="fas fa-minus text-xs"></i>
</button>
</div>
</div>
</div>
<!-- Commodity Card -->
<div class="commodity-card bg-gray-800/50 border border-gray-700 rounded-lg p-4 transition-all duration-200 cursor-pointer hover:border-blue-400">
<div class="flex justify-between items-start mb-2">
<h4 class="font-medium">Medical Supplies</h4>
<span class="text-xs bg-pink-900 text-pink-200 px-2 py-1 rounded">Pharma</span>
</div>
<div class="flex justify-between text-sm mb-3">
<div>
<div class="text-gray-400">Buy</div>
<div class="text-green-400">2,300 Ⓝ</div>
</div>
<div class="text-right">
<div class="text-gray-400">Sell</div>
<div class="text-red-400">1,950 Ⓝ</div>
</div>
</div>
<div class="flex justify-between items-center text-xs">
<span class="text-gray-400">Stock: 15</span>
<div class="flex space-x-2">
<button class="w-6 h-6 bg-blue-600 hover:bg-blue-700 rounded flex items-center justify-center">
<i class="fas fa-plus text-xs"></i>
</button>
<button class="w-6 h-6 bg-gray-700 hover:bg-gray-600 rounded flex items-center justify-center">
<i class="fas fa-minus text-xs"></i>
</button>
</div>
</div>
</div>
</div>
<div class="mt-6 pt-4 border-t border-gray-700 flex justify-between items-center">
<div class="text-sm text-gray-400">
<span class="text-white">Total:</span> 0 items selected (0 Ⓝ)
</div>
<div class="flex space-x-3">
<button class="px-4 py-2 bg-gray-700 hover:bg-gray-600 rounded-md">
Clear
</button>
<button class="px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-md flex items-center">
<i class="fas fa-shopping-cart mr-2"></i> Buy Selected
</button>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- Right Sidebar - Ship & Navigation -->
<aside class="w-80 bg-gray-800/80 border-l border-gray-700 p-4 overflow-y-auto hidden lg:block">
<div class="space-y-6">
<!-- Ship Display -->
<div class="ship-display bg-gray-900/50 rounded-lg p-4 border border-gray-700">
<h3 class="text-lg font-semibold mb-3 flex items-center">
<i class="fas fa-rocket text-blue-400 mr-2"></i> Mercury Starhauler
</h3>
<div class="ship-model w-full h-40 bg-gray-800 rounded mb-4 flex items-center justify-center">
<i class="fas fa-space-shuttle text-5xl text-blue-400 opacity-50"></i>
</div>
<div class="space-y-3">
<div>
<div class="flex justify-between text-sm mb-1">
<span class="text-gray-400">Hull Integrity</span>
<span>92%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-green-500 h-2 rounded-full" style="width: 92%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span class="text-gray-400">Shields</span>
<span>100%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-blue-500 h-2 rounded-full" style="width: 100%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span class="text-gray-400">Fuel</span>
<span>78%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-yellow-500 h-2 rounded-full" style="width: 78%"></div>
</div>
</div>
</div>
</div>
<!-- Navigation -->
<div class="bg-gray-900/50 rounded-lg p-4 border border-gray-700">
<h3 class="text-lg font-semibold mb-3 flex items-center">
<i class="fas fa-map-marked-alt text-green-400 mr-2"></i> Navigation
</h3>
<div class="mb-4">
<div class="flex justify-between items-center mb-2">
<span class="text-sm text-gray-400">Current Sector</span>
<span class="text-sm font-mono">X-12.5 / Y-7.3</span>
</div>
<div class="w-full bg-gray-800 rounded-md p-3 text-sm">
<div class="flex justify-between mb-1">
<span>New Terra Prime</span>
<span class="text-blue-400">0.0 AU</span>
</div>
<div class="flex justify-between mb-1">
<span>Orion Outpost</span>
<span class="text-gray-400">3.7 AU</span>
</div>
<div class="flex justify-between mb-1">
<span>Vega Colony</span>
<span class="text-gray-400">5.2 AU</span>
</div>
<div class="flex justify-between mb-1">
<span>Deneb Trade Hub</span>
<span class="text-gray-400">8.9 AU</span>
</div>
</div>
</div>
<div class="space-y-3">
<div class="flex items-center justify-between">
<span class="text-sm text-gray-400">Warp Capability</span>
<span class="text-sm">Class 3</span>
</div>
<div class="flex items-center justify-between">
<span class="text-sm text-gray-400">Fuel Cost</span>
<span class="text-sm">50 Ⓝ/AU</span>
</div>
<div class="flex items-center justify-between">
<span class="text-sm text-gray-400">Travel Time</span>
<span class="text-sm">~2.5 hrs/AU</span>
</div>
</div>
<div class="mt-4 pt-3 border-t border-gray-700">
<div class="relative">
<input type="text" placeholder="Enter destination..." class="w-full bg-gray-700 border border-gray-600 rounded-md py-2 px-4 pr-10 focus:outline-none focus:ring-2 focus:ring-blue-500">
<i class="fas fa-search absolute right-3 top-3 text-gray-400"></i>
</div>
<button class="w-full mt-3 py-2 bg-blue-600 hover:bg-blue-700 rounded-md flex items-center justify-center">
<i class="fas fa-paper-plane mr-2"></i> Plot Course
</button>
</div>
</div>
<!-- Notifications -->
<div class="bg-gray-900/50 rounded-lg p-4 border border-gray-700">
<h3 class="text-lg font-semibold mb-3 flex items-center">
<i class="fas fa-bell text-yellow-400 mr-2"></i> Alerts
</h3>
<div class="space-y-3">
<div class="p-3 bg-blue-900/30 border border-blue-800 rounded-md text-sm flex items-start">
<i class="fas fa-info-circle text-blue-400 mt-1 mr-2"></i>
<div>
<div class="font-medium">New trade route detected</div>
<div class="text-gray-400 text-xs">Vega Colony needs Medical Supplies (+15% profit)</div>
</div>
</div>
<div class="p-3 bg-yellow-900/30 border border-yellow-800 rounded-md text-sm flex items-start">
<i class="fas fa-exclamation-triangle text-yellow-400 mt-1 mr-2"></i>
<div>
<div class="font-medium">Pirates in sector</div>
<div class="text-gray-400 text-xs">Increased activity near Deneb Trade Hub</div>
</div>
</div>
<div class="p-3 bg-purple-900/30 border border-purple-800 rounded-md text-sm flex items-start">
<i class="fas fa-envelope text-purple-400 mt-1 mr-2"></i>
<div>
<div class="font-medium">Message from Guild</div>
<div class="text-gray-400 text-xs">New contract available at Orion Outpost</div>
</div>
</div>
</div>
</div>
</div>
</aside>
</div>
</div>
<script>
// Initialize Three.js scene
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({ alpha: true, antialias: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.getElementById('galaxy-view').appendChild(renderer.domElement);
// Create stars
const starsGeometry = new THREE.BufferGeometry();
const starsMaterial = new THREE.PointsMaterial({
color: 0xffffff,
size: 0.1,
transparent: true,
opacity: 0.8
});
const starsVertices = [];
for (let i = 0; i < 5000; i++) {
const x = (Math.random() - 0.5) * 2000;
const y = (Math.random() - 0.5) * 2000;
const z = (Math.random() - 0.5) * 2000;
starsVertices.push(x, y, z);
}
starsGeometry.setAttribute('position', new THREE.Float32BufferAttribute(starsVertices, 3));
const stars = new THREE.Points(starsGeometry, starsMaterial);
scene.add(stars);
// Create a nebula
const nebulaGeometry = new THREE.SphereGeometry(100, 32, 32);
const nebulaMaterial = new THREE.MeshBasicMaterial({
color: 0x440066,
transparent: true,
opacity: 0.2
});
const nebula = new THREE.Mesh(nebulaGeometry, nebulaMaterial);
nebula.position.set(50, 0, -200);
scene.add(nebula);
// Create planets
const planets = [];
const planetColors = [0x3498db, 0xe74c3c, 0x2ecc71, 0xf1c40f, 0x9b59b6];
for (let i = 0; i < 5; i++) {
const size = 5 + Math.random() * 10;
const geometry = new THREE.SphereGeometry(size, 32, 32);
const material = new THREE.MeshPhongMaterial({
color: planetColors[i % planetColors.length],
shininess: 30
});
const planet = new THREE.Mesh(geometry, material);
// Position planets in a ring
const angle = (i / 5) * Math.PI * 2;
const distance = 100 + Math.random() * 50;
planet.position.x = Math.cos(angle) * distance;
planet.position.z = Math.sin(angle) * distance - 150;
planet.position.y = (Math.random() - 0.5) * 50;
// Add glow effect
const glowGeometry = new THREE.SphereGeometry(size * 1.2, 32, 32);
const glowMaterial = new THREE.MeshBasicMaterial({
color: planetColors[i % planetColors.length],
transparent: true,
opacity: 0.3
});
const glow = new THREE.Mesh(glowGeometry, glowMaterial);
planet.add(glow);
scene.add(planet);
planets.push(planet);
}
// Add ambient light
const ambientLight = new THREE.AmbientLight(0x333333);
scene.add(ambientLight);
// Add directional light
const directionalLight = new THREE.DirectionalLight(0xffffff, 1);
directionalLight.position.set(1, 1, 1);
scene.add(directionalLight);
// Set camera position
camera.position.z = 50;
camera.position.y = 30;
// Animation loop
function animate() {
requestAnimationFrame(animate);
// Rotate planets
planets.forEach((planet, index) => {
planet.rotation.y += 0.005;
const angle = (index / planets.length) * Math.PI * 2 + Date.now() * 0.0001;
planet.position.x = Math.cos(angle) * (100 + Math.random() * 50);
planet.position.z = Math.sin(angle) * (100 + Math.random() * 50) - 150;
});
// Rotate nebula
nebula.rotation.x += 0.0005;
nebula.rotation.y += 0.0005;
renderer.render(scene, camera);
}
animate();
// Handle window resize
window.addEventListener('resize', () => {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
});
// Game UI Interactions
document.querySelectorAll('.nav-btn').forEach(btn => {
btn.addEventListener('click', function() {
document.querySelectorAll('.nav-btn').forEach(b => b.classList.remove('active'));
this.classList.add('active');
});
});
document.querySelectorAll('.commodity-card').forEach(card => {
card.addEventListener('click', function() {
this.classList.toggle('border-blue-400');
this.classList.toggle('bg-gray-800');
});
});
// GSAP animations for UI elements
gsap.from('.commodity-card', {
duration: 0.5,
y: 20,
opacity: 0,
stagger: 0.1,
ease: "back.out"
});
gsap.from('nav button', {
duration: 0.5,
x: -20,
opacity: 0,
stagger: 0.1,
ease: "power2.out"
});
// Pulsing effect for important buttons
setInterval(() => {
const alertBtn = document.querySelector('button[title="Comms"]');
alertBtn.classList.toggle('pulsate');
}, 2000);
</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=GoZippy/zippyverse-vdeepsite" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>