feat(v3): 配色体系对齐 deepseek-harness Web(D7 视觉)

- 提取 dsh design-platform 官方色板为设计令牌:品牌蓝 #4176e6、bluish 灰阶、
  语义状态色、透明描边(rgba 0.04-0.1)
- 侧栏改近白(sidebar-fill),扁平化阴影,悬停/滚动条/缓动全部对齐 dsh
- 六视图旧硬编码蓝批量令牌化,视觉单一来源
This commit is contained in:
tzt
2026-09-01 21:48:05 +08:00
parent 1ae9ffb159
commit 943eecc5ef
26 changed files with 164 additions and 128 deletions
+66 -40
View File
@@ -1,74 +1,101 @@
/* ============================================================
端云协同 LLM 系统 · 全局设计令牌与基础样式
(浅色主题;深色侧边栏壳见 App.vue)
配色体系对齐 deepseek-harness Webdesign-platform.css):
近白侧栏 + 纯白表面 + 极淡透明描边 + 近黑文字 + DeepSeek 品牌蓝
============================================================ */
:root {
/* 色板 */
--c-bg: #f4f6fb; /* 页面底 */
--c-surface: #ffffff; /* 卡片/面板 */
--c-border: #e6e9f2;
--c-border-soft: #eef1f7;
/* —— DeepSeek 色板(取自 dsw-static-*)—— */
--ds-blue-50: #edf3fe; /* rgb(237,243,254) */
--ds-blue-100: #e4edfd; /* rgb(228,237,253) */
--ds-blue-300: #b7c8fe; /* rgb(183,200,254) */
--ds-blue-400: #6786fe; /* rgb(103,158,254) */
--ds-blue-500: #4176e6; /* rgb(65,118,230) 品牌主色 */
--ds-neutral-bluish-00: #ffffff;
--ds-neutral-bluish-50: #f9fafb;
--ds-neutral-bluish-60: #f5f6f7;
--ds-neutral-bluish-75: #f1f3f5;
--ds-neutral-bluish-100: #ebeef2;
--ds-neutral-bluish-200: #e1e5ee;
--ds-neutral-bluish-400: #adb2b8;
--ds-neutral-bluish-600: #818588;
--ds-neutral-bluish-700: #61666b;
--ds-neutral-bluish-1000: #0f1115;
--c-text: #1a2233;
--c-text-2: #5b6478;
--c-text-3: #9aa3b5;
/* —— 语义令牌(各视图使用)—— */
--c-bg: var(--ds-neutral-bluish-60); /* 页面底(模块平台灰) */
--c-surface: #ffffff; /* 卡片/面板 */
--c-border: rgba(16, 20, 26, 0.1); /* border-l2 */
--c-border-soft: rgba(16, 20, 26, 0.05); /* border-l1 */
--c-primary: #4f6ef7;
--c-primary-strong: #3d5cf5;
--c-primary-soft: #eef1fe;
--c-primary-ring: rgba(79, 110, 247, 0.16);
--c-text: var(--ds-neutral-bluish-1000);
--c-text-2: var(--ds-neutral-bluish-700);
--c-text-3: var(--ds-neutral-bluish-600);
--c-caption: var(--ds-neutral-bluish-400);
--c-ok: #16a34a;
--c-ok-soft: #dcfce7;
--c-warn: #d97706;
--c-warn-soft: #fef3c7;
--c-err: #dc2626;
--c-err-soft: #fee2e2;
--c-primary: var(--ds-blue-500);
--c-primary-strong: var(--ds-blue-400); /* 悬停(dsh:变亮) */
--c-primary-soft: var(--ds-blue-50);
--c-primary-tint: var(--ds-blue-100);
--c-primary-ring: rgba(65, 118, 230, 0.2);
/* 侧边栏(深色) */
--c-side-bg: #151b2c;
--c-side-bg-2: #1b2338;
--c-side-text: #aeb7cd;
--c-side-text-active: #ffffff;
--c-side-active: rgba(255, 255, 255, 0.09);
--c-hover: rgba(38, 49, 72, 0.06); /* dsh 交互悬停 */
/* 形状与影 */
--c-ok: #22c55e;
--c-ok-soft: #e6faed;
--c-warn: #dd8629;
--c-warn-soft: #fef5e7;
--c-err: #ec1313;
--c-err-soft: #fef2f2;
/* —— 侧边栏(近白,dsh sidebar-fill)—— */
--c-side-bg: var(--ds-neutral-bluish-50);
--c-side-text: var(--ds-neutral-bluish-700);
--c-side-text-active: var(--ds-neutral-bluish-1000);
--c-side-active: var(--ds-neutral-bluish-100);
--c-side-hover: var(--ds-neutral-bluish-75);
--c-side-border: var(--c-border-soft);
--c-accent: var(--ds-blue-500);
/* —— 形状与影(dsh:扁平,描边负责层次)—— */
--radius: 10px;
--radius-sm: 7px;
--shadow-card: 0 1px 2px rgba(16, 24, 40, 0.04), 0 4px 16px rgba(16, 24, 40, 0.06);
--shadow-pop: 0 10px 40px rgba(16, 24, 40, 0.16);
--shadow-card: 0 1px 2px rgba(16, 24, 40, 0.03);
--shadow-pop: 0 8px 30px rgba(16, 24, 40, 0.12);
--font-mono: ui-monospace, Consolas, "Courier New", monospace;
--font-mono: 'SF Mono', 'JetBrains Mono', 'Fira Code', Consolas,
'Liberation Mono', Menlo, Courier, 'PingFang SC', 'Microsoft YaHei', monospace;
--ds-ease: cubic-bezier(0.4, 0, 0.2, 1);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body, #app {
height: 100%;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
"Microsoft YaHei", Roboto, sans-serif;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
'Hiragino Sans GB', 'Microsoft YaHei', Roboto, sans-serif;
font-size: 14px;
color: var(--c-text);
background: var(--c-bg);
-webkit-font-smoothing: antialiased;
}
/* ---------- 统一滚动条 ---------- */
/* ---------- 统一滚动条dshneutral-200 圆头) ---------- */
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-thumb {
background: #c9cfdd;
background: #e5e5e5;
border-radius: 8px;
border: 2px solid transparent;
background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background-color: #aab2c5; }
::-webkit-scrollbar-thumb:hover { background-color: #d4d4d4; }
::-webkit-scrollbar-track { background: transparent; }
/* ---------- 基础元素统一 ---------- */
button, input, select, textarea { font-family: inherit; color: inherit; }
h2 { font-size: 19px; font-weight: 700; letter-spacing: 0.2px; }
h2 { font-size: 19px; font-weight: 700; letter-spacing: 0.2px; color: var(--c-text); }
a { color: var(--c-primary); }
@@ -83,12 +110,12 @@ input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-
/* ---------- 通用卡片质感(供各页复用) ---------- */
.surface {
background: var(--c-surface);
border: 1px solid var(--c-border);
border: 1px solid var(--c-border-soft);
border-radius: var(--radius);
box-shadow: var(--shadow-card);
}
/* 各页卡片统一阴影(配合各自 scoped 样式) */
/* 各页卡片统一描边与阴影(配合各自 scoped 样式) */
.settings-section,
.metric-card,
.ev-card {
@@ -104,13 +131,12 @@ input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-
}
.page-head .sub { margin-top: 3px; }
/* 细节:数字/代码味道 */
.mono { font-family: var(--font-mono); }
/* 平滑出现 */
/* 平滑出现dsh 缓动曲线) */
@media (prefers-reduced-motion: no-preference) {
.ev-card, .metric-card, .settings-section {
animation: fade-up 0.18s ease both;
animation: fade-up 0.2s var(--ds-ease) both;
}
}
@keyframes fade-up {