| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Interactive Space Explorer</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> |
| |
| .planet-card { |
| transition: all 0.3s ease; |
| transform-style: preserve-3d; |
| } |
| .planet-card:hover { |
| transform: translateY(-10px) scale(1.05); |
| box-shadow: 0 20px 25px -5px rgba(255, 255, 255, 0.1), 0 10px 10px -5px rgba(255, 255, 255, 0.04); |
| } |
| .star { |
| position: absolute; |
| background-color: white; |
| border-radius: 50%; |
| animation: twinkle var(--duration) infinite ease-in-out; |
| } |
| @keyframes twinkle { |
| 0%, 100% { opacity: 0.2; } |
| 50% { opacity: 1; } |
| } |
| .spaceship { |
| animation: float 6s ease-in-out infinite; |
| } |
| @keyframes float { |
| 0%, 100% { transform: translateY(0); } |
| 50% { transform: translateY(-20px); } |
| } |
| .gradient-bg { |
| background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%); |
| } |
| </style> |
| </head> |
| <body class="gradient-bg text-white min-h-screen font-sans overflow-x-hidden"> |
| |
| <div id="stars-container" class="fixed inset-0 overflow-hidden z-0"></div> |
|
|
| |
| <header class="relative z-10 py-8 px-4 sm:px-6 lg:px-8"> |
| <div class="container mx-auto flex flex-col items-center"> |
| <div class="flex items-center mb-6"> |
| <i class="fas fa-rocket text-4xl text-purple-400 mr-4 spaceship"></i> |
| <h1 class="text-4xl md:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-400 to-blue-500"> |
| Space Explorer |
| </h1> |
| </div> |
| <p class="text-lg text-gray-300 max-w-2xl text-center mb-8"> |
| Explore our solar system's wonders. Click on planets to discover fascinating facts about each celestial body. |
| </p> |
| <div class="relative w-full max-w-xl"> |
| <input |
| type="text" |
| id="search-planets" |
| placeholder="Search planets..." |
| class="w-full bg-gray-800 bg-opacity-50 border border-gray-700 rounded-full py-3 px-6 text-white focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-transparent" |
| > |
| <button class="absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-white"> |
| <i class="fas fa-search"></i> |
| </button> |
| </div> |
| </div> |
| </header> |
|
|
| <main class="relative z-10 py-8 px-4 sm:px-6 lg:px-8"> |
| |
| <div class="container mx-auto mb-16"> |
| <h2 class="text-2xl font-semibold mb-6 flex items-center"> |
| <i class="fas fa-solar-panel mr-3 text-yellow-400"></i> |
| Our Solar System |
| </h2> |
| |
| <div class="relative h-64 md:h-96 w-full mb-12 overflow-hidden rounded-xl bg-black bg-opacity-30 border border-gray-800"> |
| |
| <div class="absolute inset-0 flex items-center justify-center"> |
| <div class="orbit mercury-orbit"></div> |
| <div class="orbit venus-orbit"></div> |
| <div class="orbit earth-orbit"></div> |
| <div class="orbit mars-orbit"></div> |
| <div class="orbit jupiter-orbit"></div> |
| <div class="orbit saturn-orbit"></div> |
| <div class="orbit uranus-orbit"></div> |
| <div class="orbit neptune-orbit"></div> |
| </div> |
| |
| |
| <div |
| class="sun absolute left-1/4 top-1/2 transform -translate-x-1/2 -translate-y-1/2 w-16 h-16 md:w-20 md:h-20 rounded-full bg-gradient-to-br from-yellow-500 to-red-600 shadow-lg shadow-yellow-500/50 cursor-pointer" |
| onclick="showPlanetInfo('sun')" |
| ></div> |
| |
| |
| </div> |
| |
| |
| <div id="planet-cards" class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"> |
| |
| </div> |
| </div> |
| |
| |
| <div class="container mx-auto mb-16"> |
| <h2 class="text-2xl font-semibold mb-6 flex items-center"> |
| <i class="fas fa-star mr-3 text-blue-400"></i> |
| Space Facts |
| </h2> |
| <div class="grid grid-cols-1 md:grid-cols-3 gap-6"> |
| <div class="bg-gray-800 bg-opacity-50 p-6 rounded-xl border border-gray-700 hover:border-blue-400 transition-all"> |
| <div class="text-blue-400 text-3xl mb-4"> |
| <i class="fas fa-temperature-high"></i> |
| </div> |
| <h3 class="text-xl font-semibold mb-2">Extreme Temperatures</h3> |
| <p class="text-gray-300">Mercury's surface temperature varies from -173°C at night to 427°C during the day.</p> |
| </div> |
| <div class="bg-gray-800 bg-opacity-50 p-6 rounded-xl border border-gray-700 hover:border-purple-400 transition-all"> |
| <div class="text-purple-400 text-3xl mb-4"> |
| <i class="fas fa-wind"></i> |
| </div> |
| <h3 class="text-xl font-semibold mb-2">Powerful Winds</h3> |
| <p class="text-gray-300">Neptune has the strongest winds in the solar system, reaching speeds of 2,100 km/h.</p> |
| </div> |
| <div class="bg-gray-800 bg-opacity-50 p-6 rounded-xl border border-gray-700 hover:border-yellow-400 transition-all"> |
| <div class="text-yellow-400 text-3xl mb-4"> |
| <i class="fas fa-expand"></i> |
| </div> |
| <h3 class="text-xl font-semibold mb-2">Gigantic Size</h3> |
| <p class="text-gray-300">Jupiter is so large that all other planets in the solar system could fit inside it.</p> |
| </div> |
| </div> |
| </div> |
| </main> |
|
|
| |
| <div id="planet-modal" class="fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 hidden"> |
| <div class="bg-gray-900 rounded-xl max-w-2xl w-full mx-4 p-6 relative border border-gray-700"> |
| <button onclick="closeModal()" class="absolute top-4 right-4 text-gray-400 hover:text-white"> |
| <i class="fas fa-times text-2xl"></i> |
| </button> |
| <div class="flex flex-col md:flex-row gap-6"> |
| <div class="flex-shrink-0"> |
| <div id="modal-planet-image" class="w-32 h-32 md:w-48 md:h-48 rounded-full"></div> |
| </div> |
| <div> |
| <h2 id="modal-planet-name" class="text-3xl font-bold mb-2"></h2> |
| <div id="modal-planet-tags" class="flex flex-wrap gap-2 mb-4"></div> |
| <p id="modal-planet-description" class="text-gray-300 mb-4"></p> |
| <div class="grid grid-cols-2 gap-4"> |
| <div> |
| <p class="text-gray-400">Distance from Sun</p> |
| <p id="modal-planet-distance" class="text-lg"></p> |
| </div> |
| <div> |
| <p class="text-gray-400">Diameter</p> |
| <p id="modal-planet-diameter" class="text-lg"></p> |
| </div> |
| <div> |
| <p class="text-gray-400">Orbital Period</p> |
| <p id="modal-planet-period" class="text-lg"></p> |
| </div> |
| <div> |
| <p class="text-gray-400">Surface Temp</p> |
| <p id="modal-planet-temp" class="text-lg"></p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <footer class="relative z-10 py-8 px-4 sm:px-6 lg:px-8 border-t border-gray-800"> |
| <div class="container mx-auto text-center text-gray-400"> |
| <p>© 2023 Space Explorer. All astronomical data is approximate.</p> |
| <div class="flex justify-center space-x-4 mt-4"> |
| <a href="#" class="hover:text-white"><i class="fab fa-twitter"></i></a> |
| <a href="#" class="hover:text-white"><i class="fab fa-github"></i></a> |
| <a href="#" class="hover:text-white"><i class="fab fa-linkedin"></i></a> |
| </div> |
| </div> |
| </footer> |
|
|
| <script> |
| |
| function createStars() { |
| const container = document.getElementById('stars-container'); |
| const starCount = 200; |
| |
| for (let i = 0; i < starCount; i++) { |
| const star = document.createElement('div'); |
| star.classList.add('star'); |
| |
| |
| const size = Math.random() * 3; |
| const posX = Math.random() * 100; |
| const posY = Math.random() * 100; |
| const duration = 2 + Math.random() * 5; |
| |
| star.style.width = `${size}px`; |
| star.style.height = `${size}px`; |
| star.style.left = `${posX}%`; |
| star.style.top = `${posY}%`; |
| star.style.setProperty('--duration', `${duration}s`); |
| |
| container.appendChild(star); |
| } |
| } |
| |
| |
| const planets = [ |
| { |
| name: "Mercury", |
| color: "bg-gray-400", |
| size: "w-4 h-4 md:w-6 md:h-6", |
| position: "left-[32%] top-1/2", |
| description: "The smallest planet in our solar system and closest to the Sun. Mercury is only slightly larger than Earth's Moon.", |
| distance: "57.9 million km", |
| diameter: "4,879 km", |
| orbitalPeriod: "88 Earth days", |
| temperature: "-173°C to 427°C", |
| tags: ["Rocky", "No moons", "Fastest orbit"], |
| icon: "fas fa-temperature-low" |
| }, |
| { |
| name: "Venus", |
| color: "bg-yellow-200", |
| size: "w-6 h-6 md:w-8 md:h-8", |
| position: "left-[36%] top-1/2", |
| description: "Similar in size to Earth, Venus has a toxic atmosphere of carbon dioxide with clouds of sulfuric acid.", |
| distance: "108.2 million km", |
| diameter: "12,104 km", |
| orbitalPeriod: "225 Earth days", |
| temperature: "462°C", |
| tags: ["Hottest planet", "Retrograde rotation", "No moons"], |
| icon: "fas fa-fire" |
| }, |
| { |
| name: "Earth", |
| color: "bg-blue-500", |
| size: "w-6 h-6 md:w-8 md:h-8", |
| position: "left-[40%] top-1/2", |
| description: "Our home planet is the only known place in the universe confirmed to host life, with liquid water on the surface.", |
| distance: "149.6 million km", |
| diameter: "12,742 km", |
| orbitalPeriod: "365.25 days", |
| temperature: "-88°C to 58°C", |
| tags: ["Water", "Life", "Moon"], |
| icon: "fas fa-globe-americas" |
| }, |
| { |
| name: "Mars", |
| color: "bg-red-400", |
| size: "w-5 h-5 md:w-7 md:h-7", |
| position: "left-[44%] top-1/2", |
| description: "The Red Planet is dusty, cold desert world with a very thin atmosphere. There is strong evidence Mars was wetter in the past.", |
| distance: "227.9 million km", |
| diameter: "6,779 km", |
| orbitalPeriod: "687 Earth days", |
| temperature: "-153°C to 20°C", |
| tags: ["Red planet", "2 moons", "Olympus Mons"], |
| icon: "fas fa-mountain" |
| }, |
| { |
| name: "Jupiter", |
| color: "bg-yellow-600", |
| size: "w-10 h-10 md:w-14 md:h-14", |
| position: "left-[50%] top-1/2", |
| description: "The largest planet in our solar system, a gas giant with a Great Red Spot that's a storm larger than Earth.", |
| distance: "778.3 million km", |
| diameter: "139,820 km", |
| orbitalPeriod: "12 Earth years", |
| temperature: "-108°C", |
| tags: ["Gas giant", "79 moons", "Great Red Spot"], |
| icon: "fas fa-ring" |
| }, |
| { |
| name: "Saturn", |
| color: "bg-yellow-300", |
| size: "w-9 h-9 md:w-12 md:h-12", |
| position: "left-[56%] top-1/2", |
| description: "Famous for its beautiful ring system, Saturn is a gas giant made mostly of hydrogen and helium.", |
| distance: "1.4 billion km", |
| diameter: "116,460 km", |
| orbitalPeriod: "29 Earth years", |
| temperature: "-139°C", |
| tags: ["Rings", "82 moons", "Gas giant"], |
| icon: "fas fa-ring" |
| }, |
| { |
| name: "Uranus", |
| color: "bg-teal-300", |
| size: "w-7 h-7 md:w-9 md:h-9", |
| position: "left-[62%] top-1/2", |
| description: "An ice giant that rotates on its side, Uranus has a blue-green color from methane in its atmosphere.", |
| distance: "2.9 billion km", |
| diameter: "50,724 km", |
| orbitalPeriod: "84 Earth years", |
| temperature: "-197°C", |
| tags: ["Ice giant", "Sideways rotation", "13 rings"], |
| icon: "fas fa-icicles" |
| }, |
| { |
| name: "Neptune", |
| color: "bg-blue-600", |
| size: "w-7 h-7 md:w-9 md:h-9", |
| position: "left-[68%] top-1/2", |
| description: "The windiest planet with the strongest winds in the solar system. Neptune was the first planet located through mathematical calculations.", |
| distance: "4.5 billion km", |
| diameter: "49,244 km", |
| orbitalPeriod: "165 Earth years", |
| temperature: "-201°C", |
| tags: ["Windiest", "14 moons", "Great Dark Spot"], |
| icon: "fas fa-wind" |
| }, |
| { |
| name: "Sun", |
| color: "bg-gradient-to-br from-yellow-500 to-red-600", |
| size: "w-16 h-16 md:w-20 md:h-20", |
| position: "left-1/4 top-1/2", |
| description: "The star at the center of our solar system. It accounts for 99.86% of the mass in the solar system and is nearly a perfect sphere of hot plasma.", |
| distance: "Center of solar system", |
| diameter: "1.39 million km", |
| orbitalPeriod: "225-250 million years (galactic orbit)", |
| temperature: "5,500°C (surface), 15 million°C (core)", |
| tags: ["Star", "G2V type", "Solar flares"], |
| icon: "fas fa-sun" |
| } |
| ]; |
| |
| |
| function positionPlanets() { |
| const solarSystem = document.querySelector('.relative.h-64'); |
| |
| planets.forEach(planet => { |
| if (planet.name === "Sun") return; |
| |
| const planetEl = document.createElement('div'); |
| planetEl.className = `planet absolute ${planet.position} transform -translate-y-1/2 rounded-full ${planet.color} ${planet.size} cursor-pointer shadow-md`; |
| planetEl.setAttribute('onclick', `showPlanetInfo('${planet.name.toLowerCase()}')`); |
| |
| solarSystem.appendChild(planetEl); |
| }); |
| } |
| |
| |
| function generatePlanetCards() { |
| const container = document.getElementById('planet-cards'); |
| |
| planets.forEach(planet => { |
| const card = document.createElement('div'); |
| card.className = 'planet-card bg-gray-800 bg-opacity-50 rounded-xl overflow-hidden border border-gray-700 hover:border-purple-500 cursor-pointer'; |
| card.setAttribute('onclick', `showPlanetInfo('${planet.name.toLowerCase()}')`); |
| |
| card.innerHTML = ` |
| <div class="h-40 ${planet.color} flex items-center justify-center"> |
| <i class="${planet.icon} text-4xl text-white opacity-80"></i> |
| </div> |
| <div class="p-6"> |
| <h3 class="text-xl font-semibold mb-2">${planet.name}</h3> |
| <div class="flex flex-wrap gap-2 mb-3"> |
| ${planet.tags.map(tag => `<span class="text-xs px-2 py-1 bg-gray-700 rounded-full">${tag}</span>`).join('')} |
| </div> |
| <p class="text-gray-300 text-sm line-clamp-2">${planet.description}</p> |
| </div> |
| `; |
| |
| container.appendChild(card); |
| }); |
| } |
| |
| |
| function showPlanetInfo(planetName) { |
| const planet = planets.find(p => p.name.toLowerCase() === planetName); |
| if (!planet) return; |
| |
| document.getElementById('modal-planet-name').textContent = planet.name; |
| document.getElementById('modal-planet-description').textContent = planet.description; |
| document.getElementById('modal-planet-distance').textContent = planet.distance; |
| document.getElementById('modal-planet-diameter').textContent = planet.diameter; |
| document.getElementById('modal-planet-period').textContent = planet.orbitalPeriod; |
| document.getElementById('modal-planet-temp').textContent = planet.temperature; |
| |
| const tagsContainer = document.getElementById('modal-planet-tags'); |
| tagsContainer.innerHTML = planet.tags.map(tag => |
| `<span class="text-sm px-3 py-1 bg-gray-800 rounded-full">${tag}</span>` |
| ).join(''); |
| |
| const planetImage = document.getElementById('modal-planet-image'); |
| planetImage.className = `w-32 h-32 md:w-48 md:h-48 rounded-full ${planet.color} flex items-center justify-center shadow-lg`; |
| planetImage.innerHTML = `<i class="${planet.icon} text-4xl text-white"></i>`; |
| |
| document.getElementById('planet-modal').classList.remove('hidden'); |
| } |
| |
| |
| function closeModal() { |
| document.getElementById('planet-modal').classList.add('hidden'); |
| } |
| |
| |
| document.getElementById('search-planets').addEventListener('input', function(e) { |
| const searchTerm = e.target.value.toLowerCase(); |
| const cards = document.querySelectorAll('.planet-card'); |
| |
| cards.forEach(card => { |
| const planetName = card.querySelector('h3').textContent.toLowerCase(); |
| if (planetName.includes(searchTerm)) { |
| card.classList.remove('hidden'); |
| } else { |
| card.classList.add('hidden'); |
| } |
| }); |
| }); |
| |
| |
| document.addEventListener('DOMContentLoaded', function() { |
| createStars(); |
| positionPlanets(); |
| generatePlanetCards(); |
| }); |
| </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=longdiyao/space1" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |