设计了一个图标来替换默认的软件图标
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 974 B After Width: | Height: | Size: 1.7 KiB |
BIN
src-tauri/icons/64x64.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 903 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 33 KiB |
40
src-tauri/icons/icon.svg
Normal file
@@ -0,0 +1,40 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<defs>
|
||||
<!-- 代码符号渐变 -->
|
||||
<linearGradient id="code" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#e0e7ff"/>
|
||||
<stop offset="100%" style="stop-color:#c7d2fe"/>
|
||||
</linearGradient>
|
||||
<!-- 色料三元色 -->
|
||||
<linearGradient id="bubble1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#ff4081"/>
|
||||
<stop offset="100%" style="stop-color:#e91e63"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="bubble2" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#ffeb3b"/>
|
||||
<stop offset="100%" style="stop-color:#fdd835"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="bubble3" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#29b6f6"/>
|
||||
<stop offset="100%" style="stop-color:#03a9f4"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 圆角矩形背景 -->
|
||||
<rect x="16" y="16" width="480" height="480" rx="96" ry="96" fill="#1a1a2e"/>
|
||||
|
||||
<!-- 代码尖括号 < > -->
|
||||
<polyline points="190,180 120,240 190,300"
|
||||
fill="none" stroke="url(#code)" stroke-width="32" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<polyline points="322,180 392,240 322,300"
|
||||
fill="none" stroke="url(#code)" stroke-width="32" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
|
||||
<!-- 中间斜杠 / -->
|
||||
<line x1="280" y1="160" x2="232" y2="320"
|
||||
stroke="url(#code)" stroke-width="28" stroke-linecap="round" opacity="0.7"/>
|
||||
|
||||
<!-- 底部三个圆点 -->
|
||||
<circle cx="176" cy="396" r="28" fill="url(#bubble1)" opacity="0.95"/>
|
||||
<circle cx="256" cy="396" r="28" fill="url(#bubble2)" opacity="0.95"/>
|
||||
<circle cx="336" cy="396" r="28" fill="url(#bubble3)" opacity="0.95"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
66
src/components/app-icon.tsx
Normal file
@@ -0,0 +1,66 @@
|
||||
export function AppIcon({ className }: { className?: string }) {
|
||||
return (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 512 512"
|
||||
className={className}
|
||||
>
|
||||
<defs>
|
||||
<linearGradient id="ai-code" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stopColor="#e0e7ff" />
|
||||
<stop offset="100%" stopColor="#c7d2fe" />
|
||||
</linearGradient>
|
||||
<linearGradient id="ai-b1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stopColor="#ff4081" />
|
||||
<stop offset="100%" stopColor="#e91e63" />
|
||||
</linearGradient>
|
||||
<linearGradient id="ai-b2" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stopColor="#ffeb3b" />
|
||||
<stop offset="100%" stopColor="#fdd835" />
|
||||
</linearGradient>
|
||||
<linearGradient id="ai-b3" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stopColor="#29b6f6" />
|
||||
<stop offset="100%" stopColor="#03a9f4" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect
|
||||
x="16"
|
||||
y="16"
|
||||
width="480"
|
||||
height="480"
|
||||
rx="96"
|
||||
ry="96"
|
||||
fill="#1a1a2e"
|
||||
/>
|
||||
<polyline
|
||||
points="190,180 120,240 190,300"
|
||||
fill="none"
|
||||
stroke="url(#ai-code)"
|
||||
strokeWidth="32"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
<polyline
|
||||
points="322,180 392,240 322,300"
|
||||
fill="none"
|
||||
stroke="url(#ai-code)"
|
||||
strokeWidth="32"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
/>
|
||||
<line
|
||||
x1="280"
|
||||
y1="160"
|
||||
x2="232"
|
||||
y2="320"
|
||||
stroke="url(#ai-code)"
|
||||
strokeWidth="28"
|
||||
strokeLinecap="round"
|
||||
opacity="0.7"
|
||||
/>
|
||||
<circle cx="176" cy="396" r="28" fill="url(#ai-b1)" opacity="0.95" />
|
||||
<circle cx="256" cy="396" r="28" fill="url(#ai-b2)" opacity="0.95" />
|
||||
<circle cx="336" cy="396" r="28" fill="url(#ai-b3)" opacity="0.95" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
"use client"
|
||||
|
||||
import { useEffect, useState } from "react"
|
||||
import { MessageCircleCode } from "lucide-react"
|
||||
import { AppIcon } from "@/components/app-icon"
|
||||
import { useTranslations } from "next-intl"
|
||||
import { getCurrentAppVersion } from "@/lib/updater"
|
||||
|
||||
@@ -18,8 +18,8 @@ export function SoftwareInfo() {
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className="w-full flex gap-4 px-6 py-8">
|
||||
<MessageCircleCode className="size-12" />
|
||||
<div className="w-full flex items-center gap-4 px-6 py-8">
|
||||
<AppIcon className="size-12" />
|
||||
<div className="flex flex-col">
|
||||
<span className="text-base">Codeg</span>
|
||||
<span className="text-sm text-muted-foreground">
|
||||
|
||||