style: UI 主题改版 — 暗色→暖色调亮色主题

- 奶白背景 (#FAF7F2) + 珊瑚橙主色 (#E8734A)
- 圆润柔和设计: radius 8-20px, 柔和阴影
- 紫色辅助色 (Think/推理), 金色标签 (Token)
- 终端区域保留深色 (#2D2016 暖棕) 保证可读性
- 窗口背景色、导出 HTML、theme-color 同步更新
- 字体升级: Inter + JetBrains Mono
This commit is contained in:
thzxx
2026-04-17 13:52:55 +08:00
parent b4c7da87b7
commit 5ea958e5c1
4 changed files with 547 additions and 508 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ function createMainWindow(): BrowserWindow {
minHeight: 600,
icon: process.platform === 'win32' ? ICO_PATH : ICON_PATH,
title: APP_NAME,
backgroundColor: '#202020',
backgroundColor: '#FAF7F2',
show: false,
autoHideMenuBar: true,
webPreferences: {
+5 -5
View File
@@ -431,11 +431,11 @@ export async function exportAsMarkdown(session: ChatSession): Promise<void> {
export async function exportAsHtml(session: ChatSession): Promise<void> {
let html = `<!DOCTYPE html><html><head><meta charset="UTF-8"><title>${escapeHtml(session.title)}</title>
<style>body{max-width:800px;margin:0 auto;padding:20px;font-family:system-ui;line-height:1.6;background:#202020;color:#fff;}
.user{background:rgba(25,25,60,0.5);padding:12px;border-radius:8px;margin:8px 0;}
.assistant{background:rgba(96,205,255,0.03);padding:12px;border-radius:8px;margin:8px 0;border:1px solid rgba(96,205,255,0.08);}
pre{background:rgba(0,0,0,0.3);padding:12px;border-radius:8px;overflow-x:auto;}
code{background:rgba(0,0,0,0.2);padding:2px 6px;border-radius:4px;}</style></head><body>
<style>body{max-width:800px;margin:0 auto;padding:20px;font-family:system-ui;line-height:1.6;background:#FAF7F2;color:#2D2016;}
.user{background:#F5F0E8;padding:12px;border-radius:12px;margin:8px 0;border:1px solid rgba(0,0,0,0.06);}
.assistant{background:#fff;padding:12px;border-radius:12px;margin:8px 0;border:1px solid rgba(0,0,0,0.06);box-shadow:0 1px 4px rgba(45,32,22,0.04);}
pre{background:#2D2016;color:#F5F0E8;padding:14px;border-radius:12px;overflow-x:auto;}
code{background:#F5F0E8;color:#E8734A;padding:2px 6px;border-radius:4px;}</style></head><body>
<h1>${escapeHtml(session.title)}</h1><p>${formatTime(session.createdAt)} · ${session.model}</p><hr>`;
session.messages.forEach(m => {
html += `<div class="${m.role}"><strong>${m.role === 'user' ? '👤 用户' : '🤖 AI'}</strong><br>${(m.content || '').replace(/\n/g, '<br>')}</div>`;
+4 -4
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="theme-color" content="#202020">
<meta name="theme-color" content="#FAF7F2">
<meta name="description" content="Metona Ollama Desktop - TypeScript + Electron AI 聊天客户端">
<link rel="icon" href="/assets/icons/llama.ico" type="image/x-icon">
<title>Metona Ollama</title>
@@ -431,9 +431,9 @@
<div style="margin-top:6px;display:flex;align-items:center;gap:8px;">
<label style="margin:0;font-size:11px;color:var(--text-secondary);">执行模式:</label>
<select id="selectRunCommandMode" style="font-size:11px;padding:2px 6px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-default);border-radius:4px;">
<option value="confirm" style="background:#2d2d2d;color:#fff;">需确认</option>
<option value="auto" style="background:#2d2d2d;color:#fff;">自动执行</option>
<option value="disabled" style="background:#2d2d2d;color:#fff;">禁用</option>
<option value="confirm">需确认</option>
<option value="auto">自动执行</option>
<option value="disabled">禁用</option>
</select>
</div>
</div>
File diff suppressed because it is too large Load Diff