import Link from "next/link"; type LogoSize = "sm" | "md" | "lg" | "xl"; interface LogoProps { size?: LogoSize; href?: string | null; className?: string; } // 高度由 size 控制,宽度按 logo.png 实际比例(约 5.41:1,单行 CYBER STAR + 星环)自适应 const HEIGHT_PX: Record = { sm: 24, md: 44, lg: 64, xl: 88, }; export default function Logo({ size = "md", href = "/", className = "", }: LogoProps) { const h = HEIGHT_PX[size]; // 用原生 绕开 Next/Image 的格式转换 —— 某些环境下 sharp 把透明 PNG // 转 webp/avif 时会铺白底,导致 logo 在深色 nav 上出现白色矩形。 // ?v=2 缓存破坏:logo 改版时 +1,浏览器立刻拉新版而不读老缓存。 const inner = ( CYBER STAR ); if (!href) return inner; return ( {inner} ); }