品牌更名为「云微」并替换为终端风格图标

- 面板/PWA/iOS/fnOS 显示名统一改为「云微」(英文项目名 WechatOnCloud 保留)
- favicon 改为绿底 macOS 终端风格(>_ 提示符),重新编译 180/192/512 PNG
- 登录页 logo 复用同款终端图标

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Gloridust
2026-05-29 22:43:07 +08:00
parent 5c5e9c8540
commit 484d625d69
10 changed files with 26 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
appname=wechat-on-cloud appname=wechat-on-cloud
version=1.0.0 version=1.0.0
display_name=云上微信 display_name=云
desc=在飞牛 NAS 上运行服务端微信,浏览器多端共享同一会话;支持多实例与按账号的访问权限。面板为唯一对外入口,微信实例由面板按需创建。 desc=在飞牛 NAS 上运行服务端微信,浏览器多端共享同一会话;支持多实例与按账号的访问权限。面板为唯一对外入口,微信实例由面板按需创建。
platform=all platform=all
source=thirdparty source=thirdparty

View File

@@ -7,9 +7,9 @@
<meta name="theme-color" content="#07C160" /> <meta name="theme-color" content="#07C160" />
<meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="云微" /> <meta name="apple-mobile-web-app-title" content="云微" />
<link rel="apple-touch-icon" href="/icon-180.png" /> <link rel="apple-touch-icon" href="/icon-180.png" />
<title>云微</title> <title>云微</title>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>

View File

@@ -1,4 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
<rect width="100" height="100" rx="22" fill="#07C160"/> <defs>
<text x="50" y="50" font-family="-apple-system, 'PingFang SC', sans-serif" font-size="56" font-weight="700" fill="#ffffff" text-anchor="middle" dominant-baseline="central"></text> <linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#13D873"/>
<stop offset="1" stop-color="#05A852"/>
</linearGradient>
</defs>
<rect width="100" height="100" rx="23" fill="url(#bg)"/>
<rect x="3.5" y="3.5" width="93" height="93" rx="20" fill="none" stroke="#ffffff" stroke-opacity="0.18" stroke-width="2"/>
<circle cx="22" cy="36" r="3.4" fill="#ffffff" fill-opacity="0.92"/>
<g fill="none" stroke="#ffffff" stroke-width="7.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M34 30 L48 44 L34 58"/>
<path d="M56 60 L72 60"/>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 769 B

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -56,7 +56,7 @@ export default function Dashboard() {
return ( return (
<div className="page"> <div className="page">
<header className="topbar"> <header className="topbar">
<span className="topbar-title"></span> <span className="topbar-title"></span>
<button className="btn-text" onClick={() => logout()}> <button className="btn-text" onClick={() => logout()}>
退 退
</button> </button>

View File

@@ -28,8 +28,8 @@ export default function Login() {
<div className="center-screen"> <div className="center-screen">
<form className="card login-card" onSubmit={submit}> <form className="card login-card" onSubmit={submit}>
<div className="brand"> <div className="brand">
<div className="brand-logo"></div> <div className="brand-logo"><img src="/favicon.svg" alt="" /></div>
<h1></h1> <h1></h1>
<p className="muted">访 NAS </p> <p className="muted">访 NAS </p>
</div> </div>
<input <input

View File

@@ -132,6 +132,11 @@ button {
box-shadow: var(--crease-accent); box-shadow: var(--crease-accent);
overflow: hidden; overflow: hidden;
} }
.brand-logo img {
width: 100%;
height: 100%;
display: block;
}
.brand-logo::before { .brand-logo::before {
content: ''; content: '';
position: absolute; position: absolute;

View File

@@ -12,8 +12,8 @@ export default defineConfig({
registerType: 'autoUpdate', registerType: 'autoUpdate',
includeAssets: ['favicon.svg', 'icon-180.png'], includeAssets: ['favicon.svg', 'icon-180.png'],
manifest: { manifest: {
name: '云微', name: '云微',
short_name: '云微', short_name: '云微',
description: '在浏览器访问 NAS 上的微信', description: '在浏览器访问 NAS 上的微信',
lang: 'zh-CN', lang: 'zh-CN',
theme_color: '#07C160', theme_color: '#07C160',