feat: replace icon

This commit is contained in:
2026-03-25 11:45:54 +08:00
parent e1f8dac74d
commit 3a3bbbc0fc
7 changed files with 185 additions and 3 deletions

View File

@@ -3,9 +3,9 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/texpixel-icon-1024.svg" /> <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" type="image/png" href="/favicon.png" /> <link rel="icon" type="image/png" href="/favicon.png" />
<link rel="apple-touch-icon" href="/texpixel-icon-1024.svg" /> <link rel="apple-touch-icon" href="/texpixel-app-icon.svg" />
<link rel="manifest" href="/site.webmanifest" /> <link rel="manifest" href="/site.webmanifest" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />

68
public/favicon.svg Normal file
View File

@@ -0,0 +1,68 @@
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<defs>
<!-- Light mode: dark lines -->
<linearGradient id="l1" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="20%" stop-color="#111111" stop-opacity="0.9"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.9"/>
</linearGradient>
<linearGradient id="l2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="24%" stop-color="#111111" stop-opacity="0.6"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="l3" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="22%" stop-color="#111111" stop-opacity="0.35"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.35"/>
</linearGradient>
<linearGradient id="l4" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="28%" stop-color="#111111" stop-opacity="0.18"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.18"/>
</linearGradient>
<!-- Dark mode: white lines -->
<linearGradient id="d1" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="20%" stop-color="#ffffff" stop-opacity="0.95"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.95"/>
</linearGradient>
<linearGradient id="d2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="24%" stop-color="#ffffff" stop-opacity="0.65"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.65"/>
</linearGradient>
<linearGradient id="d3" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="22%" stop-color="#ffffff" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.4"/>
</linearGradient>
<linearGradient id="d4" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="28%" stop-color="#ffffff" stop-opacity="0.22"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.22"/>
</linearGradient>
</defs>
<style>
.light-icon { display: block; }
.dark-icon { display: none; }
@media (prefers-color-scheme: dark) {
.light-icon { display: none; }
.dark-icon { display: block; }
}
</style>
<!-- Light mode group -->
<g class="light-icon">
<rect x="3" y="7" width="24" height="2.2" rx="1.1" fill="url(#l1)"/>
<rect x="4" y="12.5" width="18" height="2.2" rx="1.1" fill="url(#l2)"/>
<rect x="3" y="18" width="20" height="2.2" rx="1.1" fill="url(#l3)"/>
<rect x="5" y="23.5" width="14" height="2.2" rx="1.1" fill="url(#l4)"/>
</g>
<!-- Dark mode group -->
<g class="dark-icon">
<rect x="3" y="7" width="24" height="2.2" rx="1.1" fill="url(#d1)"/>
<rect x="4" y="12.5" width="18" height="2.2" rx="1.1" fill="url(#d2)"/>
<rect x="3" y="18" width="20" height="2.2" rx="1.1" fill="url(#d3)"/>
<rect x="5" y="23.5" width="14" height="2.2" rx="1.1" fill="url(#d4)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -8,7 +8,7 @@
"theme_color": "#6366f1", "theme_color": "#6366f1",
"icons": [ "icons": [
{ {
"src": "/texpixel-icon-1024.svg", "src": "/texpixel-app-icon.svg",
"sizes": "any", "sizes": "any",
"type": "image/svg+xml", "type": "image/svg+xml",
"purpose": "any maskable" "purpose": "any maskable"

View File

@@ -0,0 +1,29 @@
<svg width="1024" height="1024" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="line1" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="25%" stop-color="#ffffff" stop-opacity="0.92"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.92"/>
</linearGradient>
<linearGradient id="line2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="30%" stop-color="#ffffff" stop-opacity="0.62"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.62"/>
</linearGradient>
<linearGradient id="line3" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="28%" stop-color="#ffffff" stop-opacity="0.38"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.38"/>
</linearGradient>
<linearGradient id="line4" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="35%" stop-color="#ffffff" stop-opacity="0.2"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.2"/>
</linearGradient>
</defs>
<rect x="4" y="4" width="120" height="120" rx="28" fill="#000000"/>
<rect x="24" y="42" width="74" height="3" rx="1.5" fill="url(#line1)"/>
<rect x="26" y="56" width="56" height="3" rx="1.5" fill="url(#line2)"/>
<rect x="24" y="70" width="64" height="3" rx="1.5" fill="url(#line3)"/>
<rect x="28" y="84" width="44" height="3" rx="1.5" fill="url(#line4)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,29 @@
<svg width="1024" height="1024" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="line1" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="25%" stop-color="#ffffff" stop-opacity="0.92"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.92"/>
</linearGradient>
<linearGradient id="line2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="30%" stop-color="#ffffff" stop-opacity="0.62"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.62"/>
</linearGradient>
<linearGradient id="line3" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="28%" stop-color="#ffffff" stop-opacity="0.38"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.38"/>
</linearGradient>
<linearGradient id="line4" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="35%" stop-color="#ffffff" stop-opacity="0.2"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.2"/>
</linearGradient>
</defs>
<rect x="4" y="4" width="120" height="120" rx="28" fill="#000000"/>
<rect x="24" y="42" width="74" height="3" rx="1.5" fill="url(#line1)"/>
<rect x="26" y="56" width="56" height="3" rx="1.5" fill="url(#line2)"/>
<rect x="24" y="70" width="64" height="3" rx="1.5" fill="url(#line3)"/>
<rect x="28" y="84" width="44" height="3" rx="1.5" fill="url(#line4)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,28 @@
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="line1" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="20%" stop-color="#ffffff" stop-opacity="0.95"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.95"/>
</linearGradient>
<linearGradient id="line2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="24%" stop-color="#ffffff" stop-opacity="0.65"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.65"/>
</linearGradient>
<linearGradient id="line3" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="22%" stop-color="#ffffff" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.4"/>
</linearGradient>
<linearGradient id="line4" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0"/>
<stop offset="28%" stop-color="#ffffff" stop-opacity="0.22"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.22"/>
</linearGradient>
</defs>
<rect x="3" y="7" width="24" height="2.2" rx="1.1" fill="url(#line1)"/>
<rect x="4" y="12.5" width="18" height="2.2" rx="1.1" fill="url(#line2)"/>
<rect x="3" y="18" width="20" height="2.2" rx="1.1" fill="url(#line3)"/>
<rect x="5" y="23.5" width="14" height="2.2" rx="1.1" fill="url(#line4)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,28 @@
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="line1" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="20%" stop-color="#111111" stop-opacity="0.9"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.9"/>
</linearGradient>
<linearGradient id="line2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="24%" stop-color="#111111" stop-opacity="0.6"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.6"/>
</linearGradient>
<linearGradient id="line3" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="22%" stop-color="#111111" stop-opacity="0.35"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.35"/>
</linearGradient>
<linearGradient id="line4" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#111111" stop-opacity="0"/>
<stop offset="28%" stop-color="#111111" stop-opacity="0.18"/>
<stop offset="100%" stop-color="#111111" stop-opacity="0.18"/>
</linearGradient>
</defs>
<rect x="3" y="7" width="24" height="2.2" rx="1.1" fill="url(#line1)"/>
<rect x="4" y="12.5" width="18" height="2.2" rx="1.1" fill="url(#line2)"/>
<rect x="3" y="18" width="20" height="2.2" rx="1.1" fill="url(#line3)"/>
<rect x="5" y="23.5" width="14" height="2.2" rx="1.1" fill="url(#line4)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB