Refresh brand assets around the new app logo

The desktop app and documentation need to present the new logo consistently, so the canonical 1024px source icon now feeds the Tauri icon family, desktop public assets, README images, and VitePress brand imagery.

Constraint: Tauri bundle icons are generated assets and must be refreshed from the source icon rather than relying on README or public image replacement alone
Rejected: Rename logo paths | existing README, desktop, and docs references can keep stable paths and pick up the new files directly
Confidence: high
Scope-risk: moderate
Directive: Regenerate desktop/src-tauri/icons whenever desktop/src-tauri/app-icon.png changes
Tested: cd desktop && bun run build; npm run --loglevel=error docs:build; git diff --check; iconutil expanded icon.icns size ladder
Not-tested: full local quality gate per request
This commit is contained in:
程序员阿江(Relakkes) 2026-05-12 20:51:53 +08:00
parent fc3a6ea2e1
commit 7f08e7a3bc
73 changed files with 34 additions and 287 deletions

View File

@ -13,7 +13,7 @@
[![License](https://img.shields.io/github/license/NanmiCoder/cc-haha)](https://github.com/NanmiCoder/cc-haha/blob/main/LICENSE)
[![中文](https://img.shields.io/badge/🇨🇳_中文-Available-green)](README.md)
[![English](https://img.shields.io/badge/🇺🇸_English-当前-blue)](README.en.md)
[![Docs](https://img.shields.io/badge/📖_Documentation-Visit-D97757)](https://claudecode-haha.relakkesyang.org)
[![Docs](https://img.shields.io/badge/📖_Documentation-Visit-FF7A00)](https://claudecode-haha.relakkesyang.org)
</div>
@ -30,7 +30,7 @@ A Claude Code build repaired from the source leaked from Anthropic's npm registr
The Claude Code Haha desktop app brings sessions, multi-project navigation, branch / Worktree controls, right-side file changes, code diffs, permission review, provider setup, and remote access into one graphical workspace for daily development flows beyond the terminal.
<p align="center">
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_Download_Desktop-macOS_%7C_Windows-D97757?style=for-the-badge" alt="Download Desktop"></a>
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_Download_Desktop-macOS_%7C_Windows-FF7A00?style=for-the-badge" alt="Download Desktop"></a>
&nbsp;
<a href="docs/desktop/04-installation.md"><img src="https://img.shields.io/badge/📖_Install_Guide-Guide-gray?style=for-the-badge" alt="Install Guide"></a>
</p>

View File

@ -13,7 +13,7 @@
[![License](https://img.shields.io/github/license/NanmiCoder/cc-haha)](https://github.com/NanmiCoder/cc-haha/blob/main/LICENSE)
[![中文](https://img.shields.io/badge/🇨🇳_中文-当前-blue)](README.md)
[![English](https://img.shields.io/badge/🇺🇸_English-Available-green)](README.en.md)
[![Docs](https://img.shields.io/badge/📖_文档站点-Visit-D97757)](https://claudecode-haha.relakkesyang.org)
[![Docs](https://img.shields.io/badge/📖_文档站点-Visit-FF7A00)](https://claudecode-haha.relakkesyang.org)
</div>
@ -30,7 +30,7 @@ Claude Code Haha 基于 2026-03-31 从 Anthropic npm registry 泄露的 Claude C
Claude Code Haha 的桌面端把会话、多项目、分支 / Worktree、右侧代码改动、代码 Diff、权限确认、提供商配置和远程入口集中到一个图形化工作台里适合不想长期停留在终端里的日常开发工作流。
<p align="center">
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_下载桌面端-macOS_%7C_Windows-D97757?style=for-the-badge" alt="下载桌面端"></a>
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_下载桌面端-macOS_%7C_Windows-FF7A00?style=for-the-badge" alt="下载桌面端"></a>
&nbsp;
<a href="docs/desktop/04-installation.md"><img src="https://img.shields.io/badge/📖_安装指南-Guide-gray?style=for-the-badge" alt="安装指南"></a>
</p>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 672 KiB

View File

@ -1,17 +1,3 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="accent" x1="684" y1="298" x2="834" y2="726" gradientUnits="userSpaceOnUse">
<stop stop-color="#F6B34C"/>
<stop offset="1" stop-color="#FF8A2A"/>
</linearGradient>
</defs>
<g>
<path d="M310 350 L510 512 L310 674" stroke="#20242E" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="440" y="690" width="120" height="48" rx="20" fill="#20242E"/>
<path d="M684 298 H834 V726 H684" stroke="url(#accent)" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M592 334L608.8 385.2L660 402L608.8 418.8L592 470L575.2 418.8L524 402L575.2 385.2L592 334Z" fill="#F5A623"/>
</g>
<svg width="1024" height="1024" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<image width="1024" height="1024" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
</svg>

Before

Width:  |  Height:  |  Size: 773 B

After

Width:  |  Height:  |  Size: 193 B

View File

@ -1,44 +1,3 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="panel" x1="190" y1="168" x2="842" y2="860" gradientUnits="userSpaceOnUse">
<stop stop-color="#231916"/>
<stop offset="1" stop-color="#18110F"/>
</linearGradient>
<linearGradient id="panelGlow" x1="256" y1="172" x2="744" y2="852" gradientUnits="userSpaceOnUse">
<stop stop-color="#7A3B20"/>
<stop offset="1" stop-color="#2B1813"/>
</linearGradient>
<radialGradient id="spark" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(592 402) rotate(90) scale(130)">
<stop stop-color="#FFD56A"/>
<stop offset="1" stop-color="#F6B23E"/>
</radialGradient>
<filter id="sparkGlow" x="470" y="280" width="244" height="244" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation="18" result="blur"/>
<feColorMatrix in="blur" type="matrix" values="1 0 0 0 0.95 0 1 0 0 0.63 0 0 1 0 0.14 0 0 0 0.7 0"/>
<feBlend in="SourceGraphic"/>
</filter>
<linearGradient id="accent" x1="684" y1="298" x2="834" y2="726" gradientUnits="userSpaceOnUse">
<stop stop-color="#F6B34C"/>
<stop offset="1" stop-color="#FF8A2A"/>
</linearGradient>
<linearGradient id="sheen" x1="244" y1="224" x2="448" y2="430" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0.22"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
</defs>
<g transform="translate(512 512) scale(1.0612244898) translate(-512 -512)">
<rect x="120" y="120" width="784" height="784" rx="180" fill="url(#panel)"/>
<rect x="124" y="124" width="776" height="776" rx="176" stroke="url(#panelGlow)" stroke-width="8"/>
<path d="M236 260C324 190 464 170 612 206" stroke="#5C2E1D" stroke-width="18" stroke-linecap="round" opacity="0.58"/>
<path d="M214 760C366 824 566 824 718 754" stroke="#5C2E1D" stroke-width="18" stroke-linecap="round" opacity="0.4"/>
<ellipse cx="370" cy="292" rx="136" ry="92" fill="url(#sheen)"/>
<path d="M310 350L510 512L310 674" stroke="#F5F0E6" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="440" y="690" width="120" height="48" rx="20" fill="#F5F0E6"/>
<path d="M684 298H834V726H684" stroke="url(#accent)" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<g filter="url(#sparkGlow)">
<path d="M592 334L608.8 385.2L660 402L608.8 418.8L592 470L575.2 418.8L524 402L575.2 385.2L592 334Z" fill="url(#spark)"/>
</g>
</g>
<svg width="1024" height="1024" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<image width="1024" height="1024" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 KiB

View File

@ -1,16 +1,3 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="accent" x1="684" y1="298" x2="834" y2="726" gradientUnits="userSpaceOnUse">
<stop stop-color="#F6B34C"/>
<stop offset="1" stop-color="#FF8A2A"/>
</linearGradient>
</defs>
<g>
<path d="M310 350 L510 512 L310 674" stroke="#20242E" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="440" y="690" width="120" height="48" rx="20" fill="#20242E"/>
<path d="M684 298 H834 V726 H684" stroke="url(#accent)" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M592 334L608.8 385.2L660 402L608.8 418.8L592 470L575.2 418.8L524 402L575.2 385.2L592 334Z" fill="#F5A623"/>
</g>
<svg width="1024" height="1024" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<image width="1024" height="1024" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
</svg>

Before

Width:  |  Height:  |  Size: 772 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 838 B

After

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 493 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -58,7 +58,7 @@
## 🖼️ 配图说明
所有配图采用深色背景(#1a1a2e+ Anthropic 品牌橙铜色(#D97757)风格,与 Claude Code 官方文档一致。
所有配图采用深色背景(#1a1a2e+ Claude Code Haha 橙蓝品牌色(#FF7A00)风格,与 Claude Code 官方文档一致。
| 图片 | 说明 | 所属文档 |
|------|------|----------|

View File

@ -58,7 +58,7 @@ Deconstructing the architecture behind Claude Code's agent framework from source
## Illustration Notes
All diagrams use a dark background (#1a1a2e) with Anthropic brand copper-orange (#D97757), consistent with Claude Code's official documentation style.
All diagrams use a dark background (#1a1a2e) with Claude Code Haha orange-blue accent (#FF7A00), consistent with Claude Code's official documentation style.
| Image | Description | Document |
|-------|-------------|----------|

View File

@ -25,7 +25,7 @@ A deep dive into the design and implementation of Claude Code's Channel system f
## Illustrations
All illustrations use dark background (#1a1a2e) with Anthropic brand copper-orange (#D97757) accent color.
All illustrations use a dark background (#1a1a2e) with Claude Code Haha orange-blue accents (#FF7A00).
| Image | Description | Document |
|-------|-------------|----------|

View File

@ -55,7 +55,7 @@ Claude's "dreaming" mechanism -- a deep dive into background silent memory conso
## Illustrations
All illustrations use a dark background (#1a1a2e) + Anthropic brand copper-orange (#D97757) style, consistent with the official Claude Code documentation.
All illustrations use a dark background (#1a1a2e) + Claude Code Haha orange-blue accent (#FF7A00) style, consistent with the official Claude Code documentation.
| Image | Description | Size |
|-------|-------------|------|

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 672 KiB

View File

@ -1,26 +1,3 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="g1" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(592 402) rotate(90) scale(130)">
<stop stop-color="#FFD56A"/>
<stop offset="1" stop-color="#F6B23E"/>
</radialGradient>
<filter id="glow" x="470" y="280" width="244" height="244" filterUnits="userSpaceOnUse">
<feGaussianBlur stdDeviation="18" result="blur"/>
<feColorMatrix in="blur" type="matrix" values="1 0 0 0 0.95 0 1 0 0 0.63 0 0 1 0 0.14 0 0 0 0.7 0"/>
<feBlend in="SourceGraphic"/>
</filter>
<linearGradient id="accent" x1="684" y1="298" x2="834" y2="726" gradientUnits="userSpaceOnUse">
<stop stop-color="#F6B34C"/>
<stop offset="1" stop-color="#FF8A2A"/>
</linearGradient>
</defs>
<g>
<path d="M310 350 L510 512 L310 674" stroke="#F5F0E6" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="440" y="690" width="120" height="48" rx="20" fill="#F5F0E6"/>
<path d="M684 298 H834 V726 H684" stroke="url(#accent)" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<g filter="url(#glow)"><path d="M592 334L608.8 385.2L660 402L608.8 418.8L592 470L575.2 418.8L524 402L575.2 385.2L592 334Z" fill="url(#g1)"/></g>
</g>
<svg width="1024" height="1024" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<image width="1024" height="1024" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 672 KiB

View File

@ -1,17 +1,3 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="accent" x1="684" y1="298" x2="834" y2="726" gradientUnits="userSpaceOnUse">
<stop stop-color="#F6B34C"/>
<stop offset="1" stop-color="#FF8A2A"/>
</linearGradient>
</defs>
<g>
<path d="M310 350 L510 512 L310 674" stroke="#20242E" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="440" y="690" width="120" height="48" rx="20" fill="#20242E"/>
<path d="M684 298 H834 V726 H684" stroke="url(#accent)" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M592 334L608.8 385.2L660 402L608.8 418.8L592 470L575.2 418.8L524 402L575.2 385.2L592 334Z" fill="#F5A623"/>
</g>
<svg width="1024" height="1024" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<image width="1024" height="1024" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
</svg>

Before

Width:  |  Height:  |  Size: 773 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 672 KiB

View File

@ -1,17 +1,3 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="accent" x1="684" y1="298" x2="834" y2="726" gradientUnits="userSpaceOnUse">
<stop stop-color="#F6B34C"/>
<stop offset="1" stop-color="#FF8A2A"/>
</linearGradient>
</defs>
<g>
<path d="M310 350 L510 512 L310 674" stroke="#20242E" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="440" y="690" width="120" height="48" rx="20" fill="#20242E"/>
<path d="M684 298 H834 V726 H684" stroke="url(#accent)" stroke-width="64" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M592 334L608.8 385.2L660 402L608.8 418.8L592 470L575.2 418.8L524 402L575.2 385.2L592 334Z" fill="#F5A623"/>
</g>
<svg width="1024" height="1024" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<image width="1024" height="1024" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
</svg>

Before

Width:  |  Height:  |  Size: 773 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

After

Width:  |  Height:  |  Size: 426 KiB

View File

@ -1,83 +1,9 @@
<svg width="2752" height="921" viewBox="0 0 2752 921" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="bannerBg" x1="166" y1="84" x2="2550" y2="902" gradientUnits="userSpaceOnUse">
<stop stop-color="#2C1814"/>
<stop offset="0.48" stop-color="#1D110F"/>
<stop offset="1" stop-color="#120B0A"/>
</linearGradient>
<radialGradient id="bannerGlowLeft" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(726 322) rotate(28) scale(734 480)">
<stop stop-color="#FF7A37" stop-opacity="0.4"/>
<stop offset="0.54" stop-color="#FF5B2E" stop-opacity="0.22"/>
<stop offset="1" stop-color="#FF5B2E" stop-opacity="0"/>
</radialGradient>
<radialGradient id="bannerGlowRight" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(2296 222) rotate(180) scale(560 320)">
<stop stop-color="#FFD15C" stop-opacity="0.18"/>
<stop offset="1" stop-color="#FFD15C" stop-opacity="0"/>
</radialGradient>
<linearGradient id="iconAccent" x1="256" y1="180" x2="796" y2="606" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF5B2E"/>
<stop offset="0.5" stop-color="#FF8134"/>
<stop offset="1" stop-color="#FFD15C"/>
</linearGradient>
<linearGradient id="promptStroke" x1="542" y1="236" x2="650" y2="236" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF8F1"/>
<stop offset="1" stop-color="#FFE7B3"/>
</linearGradient>
<linearGradient id="hahaText" x1="2080" y1="262" x2="2648" y2="494" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF5B2E"/>
<stop offset="0.6" stop-color="#FF7C38"/>
<stop offset="1" stop-color="#FFB340"/>
</linearGradient>
<linearGradient id="chipBg" x1="1154" y1="568" x2="1662" y2="568" gradientUnits="userSpaceOnUse">
<stop stop-color="#4A231B"/>
<stop offset="1" stop-color="#2B1712"/>
</linearGradient>
<filter id="tileShadow" x="152" y="124" width="714" height="714" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feDropShadow dx="0" dy="26" stdDeviation="28" flood-color="#B54216" flood-opacity="0.28"/>
</filter>
</defs>
<rect width="2752" height="921" rx="56" fill="url(#bannerBg)"/>
<rect x="24" y="24" width="2704" height="873" rx="36" stroke="#3B231D" stroke-width="2"/>
<ellipse cx="742" cy="338" rx="762" ry="486" fill="url(#bannerGlowLeft)"/>
<ellipse cx="2260" cy="216" rx="562" ry="328" fill="url(#bannerGlowRight)"/>
<path d="M132 176C330 70 630 76 842 180" stroke="#7A3926" stroke-width="8" stroke-linecap="round" opacity="0.55"/>
<path d="M98 748C332 824 688 812 914 712" stroke="#7A3926" stroke-width="8" stroke-linecap="round" opacity="0.42"/>
<path d="M1972 150H2640" stroke="#4B2B24" stroke-width="6" stroke-linecap="round"/>
<path d="M2128 764H2644" stroke="#4B2B24" stroke-width="6" stroke-linecap="round"/>
<circle cx="2112" cy="230" r="14" fill="#FFD15C"/>
<circle cx="2368" cy="142" r="10" fill="#FF7C38"/>
<circle cx="2514" cy="238" r="8" fill="#FF5B2E"/>
<path d="M2380 254L2394 290L2430 304L2394 318L2380 354L2366 318L2330 304L2366 290L2380 254Z" fill="#FFD15C"/>
<path d="M2560 118L2572 146L2600 158L2572 170L2560 198L2548 170L2520 158L2548 146L2560 118Z" fill="#FFB340"/>
<g filter="url(#tileShadow)">
<rect x="216" y="166" width="586" height="586" rx="170" fill="#211514"/>
<rect x="219" y="169" width="580" height="580" rx="167" stroke="#422621" stroke-width="6"/>
</g>
<path d="M364 282L500 418L364 554" stroke="url(#iconAccent)" stroke-width="58" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M572 246H650V574H572" stroke="url(#promptStroke)" stroke-width="44" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M464 514H544" stroke="url(#iconAccent)" stroke-width="28" stroke-linecap="round"/>
<path d="M506 236L524 288L576 270L540 310L576 350L524 334L506 386L488 334L436 350L472 310L436 270L488 288L506 236Z" fill="#FFD15C"/>
<text x="962" y="440" fill="#FFF5EC" font-family="Avenir Next, SF Pro Display, Inter, Helvetica Neue, Arial, sans-serif" font-size="222" font-weight="800" letter-spacing="-7">
Claude Code
</text>
<text x="2200" y="440" fill="url(#hahaText)" font-family="Avenir Next, SF Pro Display, Inter, Helvetica Neue, Arial, sans-serif" font-size="222" font-weight="800" letter-spacing="-7">
Haha
</text>
<text x="968" y="560" fill="#D2B9AC" font-family="JetBrains Mono, SFMono-Regular, Menlo, monospace" font-size="44" font-weight="700" letter-spacing="8">
NEXT-GEN PERSONAL AI AGENT
</text>
<rect x="1148" y="604" width="520" height="70" rx="35" fill="url(#chipBg)" stroke="#6C382A" stroke-width="2"/>
<text x="1210" y="650" fill="#FFE8B8" font-family="Avenir Next, SF Pro Display, Inter, Helvetica Neue, Arial, sans-serif" font-size="34" font-weight="700" letter-spacing="3">
DESKTOP EDITION
</text>
<path d="M970 714H1830" stroke="url(#iconAccent)" stroke-width="10" stroke-linecap="round"/>
<path d="M1866 714H1984" stroke="#FFD15C" stroke-width="10" stroke-linecap="round"/>
<rect width="2752" height="921" rx="56" fill="#F7FAFC"/>
<rect x="64" y="64" width="2624" height="793" rx="48" fill="#FFFFFF"/>
<image x="176" y="160" width="600" height="600" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
<text x="900" y="390" fill="#122033" font-family="SF Pro Display, Avenir Next, Inter, Helvetica Neue, Arial, sans-serif" font-size="220" font-weight="800">Claude Code</text>
<text x="900" y="580" fill="#0F8CEB" font-family="SF Pro Display, Avenir Next, Inter, Helvetica Neue, Arial, sans-serif" font-size="170" font-weight="800">Haha</text>
<path d="M902 664H1608" stroke="#FF7A00" stroke-width="22" stroke-linecap="round"/>
<path d="M1652 664H1848" stroke="#12C7E8" stroke-width="22" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -1,68 +1,8 @@
<svg width="2200" height="640" viewBox="0 0 2200 640" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="iconAura" x1="48" y1="70" x2="500" y2="426" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF5B2E"/>
<stop offset="0.52" stop-color="#FF8A2B"/>
<stop offset="1" stop-color="#FFD15C"/>
</linearGradient>
<linearGradient id="accentRibbon" x1="86" y1="122" x2="424" y2="384" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF5B2E"/>
<stop offset="0.46" stop-color="#FF7C38"/>
<stop offset="1" stop-color="#FFB340"/>
</linearGradient>
<linearGradient id="promptStroke" x1="263" y1="152" x2="345" y2="152" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFF7EF"/>
<stop offset="1" stop-color="#FFE8B8"/>
</linearGradient>
<linearGradient id="hahaText" x1="1508" y1="174" x2="2040" y2="308" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF5B2E"/>
<stop offset="0.55" stop-color="#FF7A37"/>
<stop offset="1" stop-color="#FFB340"/>
</linearGradient>
<linearGradient id="taglineLine" x1="598" y1="434" x2="1572" y2="434" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFB340"/>
<stop offset="0.52" stop-color="#FF7A37"/>
<stop offset="1" stop-color="#FF5B2E"/>
</linearGradient>
<filter id="softBlur" x="-120" y="-120" width="760" height="760" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation="46"/>
</filter>
<filter id="tileShadow" x="42" y="44" width="464" height="464" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feDropShadow dx="0" dy="18" stdDeviation="18" flood-color="#B64516" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#softBlur)" opacity="0.34">
<ellipse cx="264" cy="250" rx="188" ry="150" fill="url(#iconAura)"/>
</g>
<path d="M80 166C152 114 248 96 354 116" stroke="url(#accentRibbon)" stroke-width="26" stroke-linecap="round" opacity="0.9"/>
<path d="M98 404C194 456 318 458 414 410" stroke="url(#accentRibbon)" stroke-width="22" stroke-linecap="round" opacity="0.82"/>
<circle cx="110" cy="286" r="10" fill="#FFD15C"/>
<circle cx="418" cy="166" r="11" fill="#FF7A37"/>
<circle cx="450" cy="338" r="8" fill="#FF5B2E"/>
<path d="M390 96L400 122L426 132L400 142L390 168L380 142L354 132L380 122L390 96Z" fill="#FFD15C"/>
<g filter="url(#tileShadow)">
<rect x="96" y="102" width="356" height="356" rx="108" fill="#211514"/>
<rect x="98" y="104" width="352" height="352" rx="106" stroke="#3A2522" stroke-width="4"/>
</g>
<path d="M184 186L268 270L184 354" stroke="url(#accentRibbon)" stroke-width="36" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M300 168H364V372H300" stroke="url(#promptStroke)" stroke-width="30" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M234 324H270" stroke="url(#accentRibbon)" stroke-width="18" stroke-linecap="round"/>
<path d="M262 162L272 191L302 181L281 204L301 227L272 218L262 247L252 218L223 227L243 204L222 181L252 191L262 162Z" fill="#FFD15C"/>
<text x="598" y="292" fill="#271714" font-family="Avenir Next, SF Pro Display, Inter, Helvetica Neue, Arial, sans-serif" font-size="188" font-weight="800" letter-spacing="-7">
Claude Code
</text>
<text x="1558" y="292" fill="url(#hahaText)" font-family="Avenir Next, SF Pro Display, Inter, Helvetica Neue, Arial, sans-serif" font-size="188" font-weight="800" letter-spacing="-7">
Haha
</text>
<text x="602" y="394" fill="#7A5C51" font-family="JetBrains Mono, SFMono-Regular, Menlo, monospace" font-size="36" font-weight="700" letter-spacing="7">
NEXT-GEN PERSONAL AI AGENT
</text>
<path d="M602 434H1548" stroke="url(#taglineLine)" stroke-width="8" stroke-linecap="round"/>
<path d="M1578 434H1682" stroke="#FFD15C" stroke-width="8" stroke-linecap="round"/>
<rect width="2200" height="640" rx="64" fill="#FFFFFF"/>
<image x="104" y="80" width="480" height="480" href="app-icon.png" preserveAspectRatio="xMidYMid meet"/>
<text x="680" y="300" fill="#122033" font-family="SF Pro Display, Avenir Next, Inter, Helvetica Neue, Arial, sans-serif" font-size="168" font-weight="800">Claude Code</text>
<text x="680" y="448" fill="#0F8CEB" font-family="SF Pro Display, Avenir Next, Inter, Helvetica Neue, Arial, sans-serif" font-size="132" font-weight="800">Haha</text>
<path d="M1040 414H1502" stroke="#FF7A00" stroke-width="16" stroke-linecap="round"/>
<path d="M1538 414H1666" stroke="#12C7E8" stroke-width="16" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 794 B

View File

@ -55,7 +55,7 @@ Claude 的"做梦"机制——后台静默整合记忆的深度解析,涵盖
## 🖼️ 配图说明
所有配图采用深色背景(#1a1a2e+ Anthropic 品牌橙铜色(#D97757)风格,与 Claude Code 官方文档一致。
所有配图采用深色背景(#1a1a2e+ Claude Code Haha 橙蓝品牌色(#FF7A00)风格,与 Claude Code 官方文档一致。
| 图片 | 说明 | 尺寸 |
|------|------|------|

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

After

Width:  |  Height:  |  Size: 426 KiB