chore: wave-0 baseline (Tauri2+React shell, platform detect, fake catalog)

This commit is contained in:
AgentDock 施工员
2026-08-25 00:21:13 +08:00
commit 296843215f
137 changed files with 6696 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
/* ============================================================
* 设计 Token · 配色(color
* 来源:视觉规范 v1.2 §2.1(施工唯一品味依据)
* 禁止在此文件之外出现任何魔法色值;改动需先征得总管同意。
* ============================================================ */
:root {
/* ---- 底色(深空阶梯,由深到浅)---- */
--ad-bg-0: #070B14; /* 应用窗口底色 */
--ad-bg-1: #0D1420; /* 面板、卡片底色 */
--ad-bg-2: #131C2E; /* 浮层、弹窗、下拉、mono chip 底 */
--ad-bg-3: #1A2438; /* 悬浮态、按下态的填充 */
--ad-border: #22304A; /* 常规 1px 分隔线 */
--ad-border-bright: #35507A; /* 悬浮/选中的边框 */
/* ---- 霓虹强调色(全系统只有这两个霓虹色)---- */
--ad-primary: #00E5FF; /* 主操作、链接、聚焦、选中态(青) */
--ad-primary-hover: #4DEFFF; /* 主操作悬浮 */
--ad-primary-pressed: #00B4CC; /* 主操作按下 */
--ad-primary-dim: rgba(0, 229, 255, 0.12); /* 选中项底、标签底 */
--ad-accent: #FF4DDB; /* 可更新标记、重要提醒(品红,克制使用) */
--ad-accent-dim: rgba(255, 77, 219, 0.12); /* 品红标签底 */
/* ---- 状态色(诊断四级 + 通用语义,六色语义表 v1.2 定稿)---- */
--ad-success: #2EE6A8; /* 正常 / 已安装 / 已授权 / 已自动修复 */
--ad-attention: #A78BFA; /* 需要留意:提示级 + 待授权 / 未授权(紫) */
--ad-warning: #FFB020; /* 警告 / 需要你注意的异常 */
--ad-danger: #FF4D5E; /* 错误 / 需要你处理 / 高危操作 */
--ad-success-dim: rgba(46, 230, 168, 0.12); /* 状态色 12% 透明底色 */
--ad-attention-dim: rgba(167, 139, 250, 0.12); /* 状态色 12% 透明底色 */
--ad-warning-dim: rgba(255, 176, 32, 0.12); /* 状态色 12% 透明底色 */
--ad-danger-dim: rgba(255, 77, 94, 0.12); /* 状态色 12% 透明底色 */
/* ---- 文字 ---- */
--ad-text-1: #E8EEF7; /* 主文案 */
--ad-text-2: #9AA8BD; /* 次要说明(承载信息的最低允许色,对比度 ≥ 4.5:1) */
--ad-text-3: #5E6E87; /* 仅占位、禁用、纯装饰(禁止承载信息) */
/* ---- 侧边栏选中态(v1.2 §3.0:左缘生长光晕,无独立指示条)---- */
--ad-nav-selected-bg: linear-gradient(
90deg,
rgba(0, 229, 255, 0.30),
rgba(0, 229, 255, 0.12) 45%,
rgba(0, 229, 255, 0.05)
);
--ad-nav-selected-border: inset 0 0 0 1px rgba(0, 229, 255, 0.38);
/* ---- 组件表面(§3.0 / §3.1 明示值)---- */
--ad-surface-card: radial-gradient(120% 100% at 50% 0%, #16233A 0%, #0D1420 60%); /* KPI 卡悬浮玻璃板 */
--ad-card-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.06); /* 卡片上缘高光 */
--ad-warning-chip-border: rgba(255, 176, 32, 0.5); /* 环境警告 chip 描边 */
/* ---- 状态角标描边(§3.1.4 / §3.2 明示值)---- */
--ad-primary-border: rgba(0, 229, 255, 0.4);
--ad-accent-border: rgba(255, 77, 219, 0.5);
--ad-attention-border: rgba(167, 139, 250, 0.5);
--ad-success-border: rgba(46, 230, 168, 0.4);
}
+39
View File
@@ -0,0 +1,39 @@
/* ============================================================
* 设计 Token · 阴影与辉光(effects
* 来源:视觉规范 v1.2 §2.4 / §2.6 / §3.0
* 辉光只给:主按钮、选中导航项、聚焦输入框、需处理状态指示灯、
* 可更新角标、环境警告 chip。列表每行都发光 = 全部不发光,禁止。
* ============================================================ */
:root {
/* ---- 阴影 ---- */
--ad-shadow-panel: 0 8px 24px rgba(0, 0, 0, 0.45);
--ad-shadow-pop: 0 12px 40px rgba(0, 0, 0, 0.6);
/* ---- 辉光 ---- */
--ad-glow-primary: 0 0 12px rgba(0, 229, 255, 0.35), 0 0 32px rgba(0, 229, 255, 0.12);
--ad-glow-accent: 0 0 12px rgba(255, 77, 219, 0.35);
--ad-glow-warning: 0 0 10px rgba(255, 176, 32, 0.28); /* 仅警告 chip / 警告状态灯 */
--ad-glow-danger: 0 0 12px rgba(255, 77, 94, 0.35);
/* ---- 主按钮(§2.6v1.2 hover 双层扩散辉光)---- */
--ad-btn-primary-bg: linear-gradient(180deg, #33D9EE 0%, #06BCD9 55%, #049EBB 100%);
--ad-btn-primary-text: #03252E;
--ad-btn-primary-inner: inset 0 1px 0 rgba(255, 255, 255, 0.30),
inset 0 -1px 0 rgba(2, 20, 26, 0.35);
--ad-btn-primary-glow: 0 0 10px rgba(0, 229, 255, 0.22);
--ad-btn-primary-glow-hover: 0 0 14px rgba(0, 229, 255, 0.30),
0 0 36px rgba(0, 229, 255, 0.12);
/* 品红更新按钮(全应用唯一允许品红做按钮的场景) */
--ad-btn-accent-bg: linear-gradient(180deg, #F26AD9 0%, #D633B8 55%, #B5209C 100%);
--ad-btn-accent-glow-hover: 0 0 14px rgba(255, 77, 219, 0.30),
0 0 36px rgba(255, 77, 219, 0.12);
/* ---- 背景网格(§3.0:要么可见要么不做)---- */
--ad-grid-color: rgba(0, 229, 255, 0.05); /* 透明度固定 5%,施工员不许再调 */
--ad-grid-size: 40px;
--ad-grid-mask: radial-gradient(120% 90% at 50% 40%, #000 30%, transparent 75%);
/* ---- 弹窗遮罩(§3.6---- */
--ad-modal-mask: rgba(4, 7, 13, 0.7);
}
+21
View File
@@ -0,0 +1,21 @@
/* ============================================================
* 设计 Token · 动效(motion
* 来源:视觉规范 v1.2 §2.5 / §4
* 通则:只动 transform 与 opacity;辉光可用 box-shadow 过渡但仅限单个聚焦元素。
* ============================================================ */
:root {
/* ---- 缓动曲线 ---- */
--ad-ease-out: cubic-bezier(0.16, 1, 0.3, 1); /* 进场、浮现,主力曲线 */
--ad-ease-inout: cubic-bezier(0.65, 0, 0.35, 1); /* 展开收起、位移、呼吸 */
--ad-ease-linear: linear; /* 仅环境循环动画 */
/* ---- 时长 ---- */
--ad-dur-micro: 120ms; /* 按下、勾选 */
--ad-dur-fast: 200ms; /* 悬浮、淡入淡出 */
--ad-dur-med: 320ms; /* 面板展开、页面切换 */
--ad-dur-slow: 600ms; /* 仅入场编排,一次性 */
/* ---- 状态点呼吸(§4.5---- */
--ad-breathe-duration: 2400ms;
--ad-breathe-min-opacity: 0.4; /* 透明度下限 40%,再低像灭了 */
}
+24
View File
@@ -0,0 +1,24 @@
/* ============================================================
* 设计 Token · 间距 / 圆角(space
* 来源:视觉规范 v1.2 §2.3
* 赛博感靠小圆角 + 发光描边,不做大圆角。
* ============================================================ */
:root {
/* ---- 间距(4px 基数)---- */
--ad-space-1: 4px;
--ad-space-2: 8px;
--ad-space-3: 12px;
--ad-space-4: 16px;
--ad-space-5: 20px;
--ad-space-6: 24px;
--ad-space-8: 32px;
--ad-space-10: 40px;
/* ---- 圆角 ---- */
--ad-radius-s: 4px; /* 标签、小按钮、chip */
--ad-radius-m: 8px; /* 卡片、输入框、弹窗 */
--ad-radius-l: 12px; /* 主面板 */
/* ---- 描边 ---- */
--ad-border-width: 1px; /* 描边统一 1px;发光描边 = 1px 实色 + 外辉光,不加粗 */
}
+59
View File
@@ -0,0 +1,59 @@
/* ============================================================
* 设计 Token · 性能档位(tiers
* 来源:视觉规范 v1.2 §5(性能降级策略)/ 架构 §8.3
*
* 三档:高 / 中 / 低,默认 balanced(自动降档由 JS 判定后设置
* data-fx-tier 属性,见 src/main.tsx)。
* - prefers-reduced-motion 强制 low
* - low:仅 L0 + 必要过渡,无循环动画、无辉光、无切角
* ============================================================ */
:root {
--ad-fx-tier: balanced;
}
@media (prefers-reduced-motion: reduce) {
:root {
--ad-fx-tier: low;
}
}
/* ---- 低档:移除辉光、循环动画、过渡、切角 ---- */
[data-fx-tier="low"] *,
[data-fx-tier="low"] *::before,
[data-fx-tier="low"] *::after {
animation: none !important;
transition: none !important;
box-shadow: none !important;
}
[data-fx-tier="low"] .clip-notch {
clip-path: none !important;
}
/* ---- 中档:只保留单层辉光(半径减半),循环动画停用 ---- */
[data-fx-tier="balanced"] .fx-multilayer-glow {
box-shadow: 0 0 6px rgba(0, 229, 255, 0.3);
}
/* 背景网格漂移(§4.8,60s 一周,仅高档/中档) */
[data-fx-tier="low"] .grid-drift {
animation: none;
}
.grid-drift {
animation: grid-drift 60s linear infinite;
}
@keyframes grid-drift {
from { background-position: 0 0; }
to { background-position: 40px 40px; }
}
/* 状态点呼吸(§4.5:仅警告/错误/授权可能过期呼吸;低档停用) */
[data-fx-tier="low"] .status-dot-breathe {
animation: none;
}
.status-dot-breathe {
animation: ad-breathe var(--ad-dur-slow) var(--ad-ease-inout) infinite;
}
@keyframes ad-breathe {
0%, 100% { opacity: 1; }
50% { opacity: var(--ad-breathe-min-opacity); }
}
+31
View File
@@ -0,0 +1,31 @@
/* ============================================================
* 设计 Token · 字体(typography
* 来源:视觉规范 v1.2 §2.2
* 不加任何外联 Web 字体(离线可用、安装包不膨胀)。
* ============================================================ */
:root {
/* ---- 字体栈 ---- */
--ad-font-ui: "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei",
"Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;
--ad-font-mono: "Cascadia Code", "JetBrains Mono", Consolas,
"Noto Sans Mono CJK SC", monospace;
/* ---- 字阶(字号 / 行高 / 字重)---- */
--ad-text-xs-size: 12px; --ad-text-xs-height: 18px; --ad-text-xs-weight: 400;
--ad-text-s-size: 13px; --ad-text-s-height: 20px; --ad-text-s-weight: 400;
--ad-text-m-size: 14px; --ad-text-m-height: 22px; --ad-text-m-weight: 400;
--ad-text-l-size: 16px; --ad-text-l-height: 24px; --ad-text-l-weight: 500;
--ad-text-xl-size: 20px; --ad-text-xl-height: 28px; --ad-text-xl-weight: 600;
--ad-text-num-size: 28px; --ad-text-num-height: 36px; --ad-text-num-weight: 600;
/* ---- Mono chip(§2.2 对比度三件套之二)----
* 正文/列表中内联出现的文件名、版本号、命令一律套此样式:
* 12px 等宽、--ad-bg-2 底、1px --ad-border、--ad-radius-s、内边距 1px 6px、文字 --ad-text-1 */
--ad-mono-chip-font: var(--ad-font-mono);
--ad-mono-chip-size: 12px;
--ad-mono-chip-bg: var(--ad-bg-2);
--ad-mono-chip-border: 1px solid var(--ad-border);
--ad-mono-chip-radius: var(--ad-radius-s);
--ad-mono-chip-padding: 1px 6px;
--ad-mono-chip-color: var(--ad-text-1);
}