Spaces:
Build error
Build error
File size: 7,608 Bytes
d9194f8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | import React from 'react';
import { X, Orbit, Globe, Calendar, Wind, Thermometer } from 'lucide-react';
const PlanetInfo = ({ planet, onClose }) => {
if (!planet) return null;
const planetData = {
mercury: {
name: "Mercury",
description: "The smallest planet in the Solar System and the closest to the Sun. It is only slightly larger than Earth's Moon.",
facts: {
diameter: "4,879 km",
distance: "57.9 million km",
orbit: "88 Earth days",
temperature: "-173°C to 427°C",
moons: "0"
},
color: "bg-gray-400"
},
venus: {
name: "Venus",
description: "The second planet from the Sun. It has a thick atmosphere that traps heat, making it the hottest planet.",
facts: {
diameter: "12,104 km",
distance: "108.2 million km",
orbit: "225 Earth days",
temperature: "462°C",
moons: "0"
},
color: "bg-yellow-200"
},
earth: {
name: "Earth",
description: "Our home planet! The third planet from the Sun and the only place we know of so far that’s inhabited by living things.",
facts: {
diameter: "12,742 km",
distance: "149.6 million km",
orbit: "365.25 days",
temperature: "-88°C to 58°C",
moons: "1"
},
color: "bg-blue-400"
},
mars: {
name: "Mars",
description: "The fourth planet from the Sun and the second-smallest planet. It's often called the 'Red Planet'.",
facts: {
diameter: "6,779 km",
distance: "227.9 million km",
orbit: "687 Earth days",
temperature: "-113°C to 35°C",
moons: "2"
},
color: "bg-red-500"
},
jupiter: {
name: "Jupiter",
description: "The largest planet in the Solar System. A gas giant with a mass one-thousandth that of the Sun.",
facts: {
diameter: "139,820 km",
distance: "778.5 million km",
orbit: "11.86 Earth years",
temperature: "-108°C",
moons: "79"
},
color: "bg-orange-200"
},
saturn: {
name: "Saturn",
description: "The sixth planet from the Sun and the second-largest. It's famous for its prominent ring system.",
facts: {
diameter: "116,460 km",
distance: "1.4 billion km",
orbit: "29.45 Earth years",
temperature: "-139°C",
moons: "82"
},
color: "bg-yellow-100"
},
uranus: {
name: "Uranus",
description: "The seventh planet from the Sun. It has the third-largest planetary radius and fourth-largest planetary mass.",
facts: {
diameter: "50,724 km",
distance: "2.9 billion km",
orbit: "84 Earth years",
temperature: "-197°C",
moons: "27"
},
color: "bg-cyan-300"
},
neptune: {
name: "Neptune",
description: "The eighth and farthest-known solar planet from the Sun. It's known for its strong winds.",
facts: {
diameter: "49,244 km",
distance: "4.5 billion km",
orbit: "164.8 Earth years",
temperature: "-201°C",
moons: "14"
},
color: "bg-blue-500"
}
};
const data = planetData[planet.toLowerCase()] || planetData.earth;
return (
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-4">
<div className="bg-gray-900 rounded-2xl border border-white/10 w-full max-w-2xl max-h-[90vh] overflow-y-auto shadow-2xl">
<div className="relative">
<div className={`h-32 ${data.color} relative overflow-hidden`}>
<div className="absolute inset-0 bg-gradient-to-b from-transparent to-gray-900/80" />
<button
onClick={onClose}
className="absolute top-4 right-4 text-white/70 hover:text-white p-2 rounded-full hover:bg-white/10"
>
<X className="h-6 w-6" />
</button>
<div className="absolute bottom-6 left-6">
<h2 className="text-4xl font-bold text-white mb-2">{data.name}</h2>
<p className="text-white/80 text-lg max-w-xl">{data.description}</p>
</div>
</div>
<div className="p-6">
<h3 className="text-xl font-semibold text-white mb-4">Key Statistics</h3>
<div className="grid grid-cols-2 md:grid-cols-3 gap-4">
<div className="bg-gray-800/50 p-4 rounded-xl">
<Globe className="h-6 w-6 text-blue-400 mb-2" />
<p className="text-gray-400 text-sm">Diameter</p>
<p className="text-white font-medium">{data.facts.diameter}</p>
</div>
<div className="bg-gray-800/50 p-4 rounded-xl">
<Orbit className="h-6 w-6 text-purple-400 mb-2" />
<p className="text-gray-400 text-sm">Distance from Sun</p>
<p className="text-white font-medium">{data.facts.distance}</p>
</div>
<div className="bg-gray-800/50 p-4 rounded-xl">
<Calendar className="h-6 w-6 text-green-400 mb-2" />
<p className="text-gray-400 text-sm">Orbit Period</p>
<p className="text-white font-medium">{data.facts.orbit}</p>
</div>
<div className="bg-gray-800/50 p-4 rounded-xl">
<Thermometer className="h-6 w-6 text-red-400 mb-2" />
<p className="text-gray-400 text-sm">Temperature</p>
<p className="text-white font-medium">{data.facts.temperature}</p>
</div>
<div className="bg-gray-800/50 p-4 rounded-xl">
<Wind className="h-6 w-6 text-cyan-400 mb-2" />
<p className="text-gray-400 text-sm">Moons</p>
<p className="text-white font-medium">{data.facts.moons}</p>
</div>
</div>
<div className="mt-8 p-6 bg-gradient-to-r from-blue-900/20 to-purple-900/20 rounded-xl border border-white/5">
<h3 className="text-lg font-medium text-white mb-2">Did You Know?</h3>
<p className="text-gray-300">
{planet.toLowerCase() === 'venus' && "Venus is the hottest planet in our solar system, with surface temperatures around 462°C (864°F), hot enough to melt lead!"}
{planet.toLowerCase() === 'jupiter' && "Jupiter is so large that all the other planets in the solar system could fit inside it!"}
{planet.toLowerCase() === 'saturn' && "Saturn's rings are made mostly of ice particles, with some rock and dust mixed in."}
{planet.toLowerCase() === 'earth' && "Earth is the only planet known to support life and the only one with liquid water on its surface."}
{planet.toLowerCase() === 'mars' && "Mars is home to Olympus Mons, the tallest volcano in the solar system, standing nearly 22 km (13.6 miles) high."}
{planet.toLowerCase() === 'mercury' && "Mercury is the smallest planet and has the most extreme temperature swings, from -173°C to 427°C."}
{planet.toLowerCase() === 'uranus' && "Uranus rotates on its side, with its axis tilted at 98 degrees, making it unique among the planets."}
{planet.toLowerCase() === 'neptune' && "Neptune has the strongest winds in the solar system, reaching speeds of up to 2,100 km/h (1,300 mph)."}
</p>
</div>
</div>
</div>
</div>
</div>
);
};
export default PlanetInfo; |