feat: add favicon for web/server mode browser tabs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
BIN
public/icon-128x128.png
Normal file
BIN
public/icon-128x128.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
BIN
public/icon-32x32.png
Normal file
BIN
public/icon-32x32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
36
public/icon.svg
Normal file
36
public/icon.svg
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<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:#dcdfe9"/>
|
||||||
|
<stop offset="100%" style="stop-color:#cdd1e2"/>
|
||||||
|
</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="0" y="0" width="512" height="512" rx="90" ry="90" fill="#1a1a2e"/>
|
||||||
|
|
||||||
|
<!-- 代码尖括号 < > -->
|
||||||
|
<polyline points="180,186 100,256 180,326"
|
||||||
|
fill="none" stroke="url(#code)" stroke-width="32" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<polyline points="332,186 412,256 332,326"
|
||||||
|
fill="none" stroke="url(#code)" stroke-width="32" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
|
||||||
|
<!-- 中间三个圆点(横排) -->
|
||||||
|
<circle cx="206" cy="256" r="30" fill="url(#bubble1)" opacity="0.95"/>
|
||||||
|
<circle cx="256" cy="256" r="36" fill="url(#bubble2)" opacity="0.95"/>
|
||||||
|
<circle cx="306" cy="256" r="30" fill="url(#bubble3)" opacity="0.95"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/app/favicon.ico
Normal file
BIN
src/app/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 602 B |
@@ -16,6 +16,13 @@ const jetbrainsMono = JetBrains_Mono({
|
|||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "codeg",
|
title: "codeg",
|
||||||
description: "AI Coding Agent Conversation Manager",
|
description: "AI Coding Agent Conversation Manager",
|
||||||
|
icons: {
|
||||||
|
icon: [
|
||||||
|
{ url: "/icon-32x32.png", sizes: "32x32", type: "image/png" },
|
||||||
|
{ url: "/icon.svg", type: "image/svg+xml" },
|
||||||
|
],
|
||||||
|
apple: { url: "/icon-128x128.png", sizes: "128x128", type: "image/png" },
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default async function RootLayout({
|
export default async function RootLayout({
|
||||||
|
|||||||
Reference in New Issue
Block a user