feat: 添加品牌 Logo、favicon、Apple Touch Icon 和 OG 分享图
- 新增 icon.png (96x96) 和 apple-icon.png (180x180) 作为浏览器/iOS 图标 - 新增 opengraph-image.png 用于微信等社交媒体分享预览 - 新增 BrandLogo SVG 组件,首页标题上方展示品牌图标
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 954 KiB |
+3
-1
@@ -7,6 +7,7 @@ import { Plus, LogIn, Loader2, MapPin, Navigation, X, Users, Heart, Sparkles, Ch
|
|||||||
import { getUserId, getCachedProfile, getCachedPreferences } from "@/lib/userId";
|
import { getUserId, getCachedProfile, getCachedPreferences } from "@/lib/userId";
|
||||||
import { getAvatarBg } from "@/lib/avatars";
|
import { getAvatarBg } from "@/lib/avatars";
|
||||||
import AuthModal from "@/components/AuthModal";
|
import AuthModal from "@/components/AuthModal";
|
||||||
|
import BrandLogo from "@/components/BrandLogo";
|
||||||
import { SCENES, getSceneConfig } from "@/lib/sceneConfig";
|
import { SCENES, getSceneConfig } from "@/lib/sceneConfig";
|
||||||
import type { UserProfile, SceneType } from "@/types";
|
import type { UserProfile, SceneType } from "@/types";
|
||||||
|
|
||||||
@@ -283,7 +284,8 @@ export default function LandingPage() {
|
|||||||
animate={{ y: 0, opacity: 1 }}
|
animate={{ y: 0, opacity: 1 }}
|
||||||
transition={{ duration: 0.5 }}
|
transition={{ duration: 0.5 }}
|
||||||
>
|
>
|
||||||
<h1 className="text-3xl font-black tracking-tight text-zinc-900">
|
<BrandLogo size={56} />
|
||||||
|
<h1 className="mt-2.5 text-3xl font-black tracking-tight text-zinc-900">
|
||||||
NoWhatever
|
NoWhatever
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-0.5 text-sm font-medium tracking-widest text-zinc-400">
|
<p className="mt-0.5 text-sm font-medium tracking-widest text-zinc-400">
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
export default function BrandLogo({ size = 48 }: { size?: number }) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
width={size}
|
||||||
|
height={size}
|
||||||
|
viewBox="0 0 120 120"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
role="img"
|
||||||
|
aria-label="NoWhatever"
|
||||||
|
>
|
||||||
|
<rect width="120" height="120" rx="28" fill="url(#logo-grad)" />
|
||||||
|
|
||||||
|
{/* Tilted card */}
|
||||||
|
<g transform="translate(60,56) rotate(-15)">
|
||||||
|
<rect x="-26" y="-32" width="52" height="64" rx="7" fill="white" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
{/* Fork */}
|
||||||
|
<g transform="translate(48,50) rotate(-15)" fill="white" opacity="0.92">
|
||||||
|
<path d="M-4,-14 L-4,-4 Q-4,0 0,0 Q4,0 4,-4 L4,-14 M-4,-14 L-4,-20 M4,-14 L4,-20 M0,-14 L0,-20 M0,0 L0,10" stroke="#10b981" strokeWidth="2.5" strokeLinecap="round" fill="none" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
{/* Heart */}
|
||||||
|
<g transform="translate(72,52) rotate(-15)">
|
||||||
|
<path d="M0,4 Q0,0 -4,-2 Q-8,-4 -8,0 Q-8,4 0,10 Q8,4 8,0 Q8,-4 4,-2 Q0,0 0,4Z" fill="#10b981" opacity="0.85" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="logo-grad" x1="0" y1="0" x2="120" y2="120" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stopColor="#34d399" />
|
||||||
|
<stop offset="1" stopColor="#059669" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user