cosmo/frontend/src/components/Header.tsx

37 lines
1.6 KiB
TypeScript
Raw Normal View History

2025-11-29 15:10:00 +00:00
/**
2025-11-29 16:58:58 +00:00
* Header component - simple branding
2025-11-29 15:10:00 +00:00
*/
2025-11-29 16:58:58 +00:00
export function Header({ selectedBodyName, bodyCount }: { selectedBodyName?: string, bodyCount: number }) {
2025-11-29 15:10:00 +00:00
return (
2025-11-29 16:58:58 +00:00
<header className="absolute top-0 left-0 right-0 z-50 pointer-events-none">
<div className="px-6 py-4 bg-gradient-to-b from-black/90 via-black/60 to-transparent">
<div className="flex items-center gap-4 pointer-events-auto inline-flex">
<div className="flex items-center gap-3">
<div className="w-10 h-10 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center shadow-lg shadow-blue-500/30">
<span className="text-2xl">🌌</span>
2025-11-29 15:10:00 +00:00
</div>
2025-11-29 16:58:58 +00:00
<div>
<h1 className="text-2xl font-bold text-white tracking-tight drop-shadow-md">Cosmo</h1>
<p className="text-xs text-gray-400 font-medium tracking-wide">DEEP SPACE EXPLORER</p>
2025-11-29 15:10:00 +00:00
</div>
</div>
2025-11-29 16:58:58 +00:00
{/* Status Info */}
<div className="ml-4 px-3 py-1 bg-white/10 backdrop-blur-md rounded-full border border-white/10">
<p className="text-xs text-gray-300">
{selectedBodyName ? (
<>
<span className="text-cyan-400 animate-pulse"></span> : <span className="text-white font-bold ml-1">{selectedBodyName}</span>
</>
) : (
<>
<span className="text-green-400"></span> {bodyCount} 线
</>
2025-11-29 15:10:00 +00:00
)}
2025-11-29 16:58:58 +00:00
</p>
2025-11-29 15:10:00 +00:00
</div>
</div>
2025-11-29 16:58:58 +00:00
</div>
</header>
2025-11-29 15:10:00 +00:00
);
2025-11-29 16:58:58 +00:00
}