# EPEEKit 视觉风格指南 > 设计语言:**白底青绿 · 绢本山水**(灵感来源于《千里江山图》) > 更新日期:2026-04-16 ## 1. 设计语言总结 ### 核心风格关键词 - **绢本白底** — 画卷绢纸的微暖白色,取代暗色系背景 - **石青石绿** — 千里江山图中的矿物质颜料色,用于框体边框和高亮 - **云烟雾气** — 所有发光和动画效果模拟山间云烟缓慢飘散 - **白纱玻璃** — 白色半透明毛玻璃面板,如薄纱覆于绢面 - **赭金点缀** — 点景人物宫殿的暖色调,用于收藏星标等少量强调 - **墨色文字** — 正文使用接近墨黑色,清晰可读 ### 视觉感受 > 整体氛围应该是:白色绢底铺展,青绿山色点缀于框体和光效之中, > 文字如墨书于纸上,偶有赭金灯火点缀其间。 > 像在白昼中远眺千里江山,青绿分明而不压迫。 --- ## 2. 色彩体系 ### 主色调 | 语义 | 变量名 | 色值 | 色彩隐喻 | |------|--------|------|---------| | 背景主色 | `--bg-primary` | `#FAFAF7` | 绢本微暖白 | | 背景次级 | `--bg-secondary` | `#F2F1EC` | 绢纸淡米色 | | 背景三级 | `--bg-tertiary` | `#E8E6DF` | 染旧的纸色 | | 卡片表面 | `--bg-card` | `rgba(255, 255, 255, 0.8)` | 白纱覆面 | | 主高亮色 | `--accent` | `#2E8B7A` | 石青 — 千里江山图的石青 | | 高亮 hover | `--accent-hover` | `#3AA38E` | 石青亮态 | | 辅助高亮 | `--accent-secondary` | `#3A7FB8` | 石绿蓝 — 千里江山图的石绿 | | 热门/警告 | `--hot` | `#C4654A` | 赭石红 — 点景人物/宫殿暖色 | | 文字主色 | `--text-primary` | `#1A1A1A` | 墨黑 | | 文字次级 | `--text-secondary` | `#6B7B8A` | 灰蓝 | | 边框色 | `--border` | `rgba(46, 139, 122, 0.15)` | 石青半透明 | | 发光边框 | `--border-glow` | `rgba(46, 139, 122, 0.30)` | 石青发光态 | | 雾气基础 | `--mist` | `rgba(46, 139, 122, 0.04)` | 淡雅云雾 | | 赭金点缀 | `--gold` | `#B8935A` | 用于收藏星标等极少量暖色 | ### 色彩来源说明 石青(`#2E8B7A`)和石绿蓝(`#3A7FB8`)取自《千里江山图》中使用的矿物质颜料色, 经过适度加深以确保在白底 UI 上对比度足够、清晰可辨。 赭石红(`#C4654A`)来源于画中点景人物和宫殿使用的暖色颜料。 ### 与旧版(暗绿底)的关键差异 真正的千里江山图是**青绿设色于绢本白底之上**——山体的石青石绿占据画面, 但大面积留白(云、水、天际)给了青绿色块呼吸感。旧版将背景设为墨绿深色, 导致全屏绿色信息量过载,层次反而被压扁。新版回归绢本白底,让青绿色作为 框体和高亮的点缀,更贴近原画精髓。 --- ## 3. 排版 ### 字体 ```css font-family: 'Inter', system-ui, -apple-system, sans-serif; ``` ### 尺寸梯度 | 用途 | 大小 | 字重 | |------|------|------| | 页面标题 | 20px | 700 | | 区块标题 | 16px | 600 | | 正文/卡片名 | 14px | 500 | | 辅助文字 | 12px | 400 | | 标签/徽章 | 11px | 600 | --- ## 4. 布局架构 ### 整体结构 ``` ┌─────────────────────────────────────────────────────┐ │ Top Nav (56px) — 白纱玻璃面板 │ ├──────────┬──────────────────────────────────────────┤ │ 侧边栏 │ 主内容区(对话 / 资源库) │ │ (280px) │ (flex-1) │ │ 会话列表 │ ┌────────────────────────────────────┐ │ │ 标签筛选 │ │ 对话消息 / 图片网格 │ │ │ (fog-scroll) │ │ (fog-scroll 雾气边缘) │ │ │ │ └────────────────────────────────────┘ │ │ │ 输入区 │ └──────────┴──────────────────────────────────────────┘ ``` ### 间距系统 - 面板间间距:0(紧贴,用边框分隔) - 卡片网格间距:16px - 内容区内边距:20px - 面板内边距:16px --- ## 5. 组件风格规范 ### 5.1 导航栏 - 高度 56px,背景 `--bg-secondary` + 毛玻璃 - Logo 方块使用 `--accent` 背景 + 白色文字 + 石青发光阴影 - 导航项带图标 + 文字 - 活动项使用 `.glow-border`(云烟边框) - 非活动项 hover 时只显示静态边框,不触发动画 ### 5.2 侧边栏 - 白纱玻璃背景:`bg-[var(--bg-secondary)] backdrop-blur-xl` - 对话图标带石青色 drop-shadow 微光 - 会话列表使用 `.fog-scroll` 实现顶底雾气渐隐 - 活动会话使用 `.glow-border` ### 5.3 聊天消息区 - 用户消息:`--accent/8` ~ `--accent/15` 渐变背景,左上切角,墨色文字 - 助手消息:`.surface-2`(白纱玻璃)+ 石青左边框 - 加载动画:石青色脉冲圆点 - 滚动区域使用 `.fog-scroll` ### 5.4 资源库卡片 - 圆角 12px - 使用 `.neon-border` 静态发光边框 - Hover 时边框微微变亮 + 图片 scale(1.03) - 底部信息区:`--bg-secondary/80` 毛玻璃 ### 5.5 图片详情面板 - 白纱玻璃背景:`--bg-secondary/90 backdrop-blur-xl` - 操作按钮区:石青主色 + 三级背景辅助色 --- ## 6. 视觉效果 ### 6.1 白纱玻璃面板 ```css .glass-panel { background: rgba(255, 255, 255, 0.65); backdrop-filter: blur(20px) saturate(1.1); border: 1px solid var(--border); } ``` 白色半透明底 + 毛玻璃模糊,模拟薄纱覆于绢面的质感。 ### 6.2 静态发光边框 ```css .neon-border { border: 1px solid var(--border); /* rgba(46, 139, 122, 0.15) */ transition: border-color 200ms ease, box-shadow 200ms ease; } .neon-border:hover { border-color: var(--border-glow); /* rgba(46, 139, 122, 0.30) */ box-shadow: 0 0 18px rgba(46, 139, 122, 0.08), inset 0 0 12px rgba(46, 139, 122, 0.03); } ``` ### 6.2.1 云烟缭绕边框 用于导航活动项、活动会话等"选中态"组件。 **交互模式**: - **常态(选中)**:石青色微弱均匀静态发光边框 + box-shadow - **hover**:云烟缓慢缭绕效果通过 `opacity 600ms ease` 平滑淡入 - **鼠标移开**:云烟通过 `opacity 600ms ease` 平滑淡散,无跳变 **视觉感受**:hover 时边缘有一团朦胧的云烟缓慢飘过,而非锐利的光线旋转。 **技术实现**: - `@property --glow-angle` 注册可动画角度属性 - `conic-gradient` 使用 40-50% 的宽弧段,更柔和 - 旋转周期 6s,模拟云烟的悠缓 - `::before` — 云烟边框层,mask-composite 裁出 1.5px 边框 - `::after` — 雾气扩散层,`blur(12px)` - 两层伪元素默认 `opacity: 0`,hover 时 `opacity: 1`,transition 600ms ```css .glow-border { border: 1px solid rgba(46, 139, 122, 0.20); box-shadow: 0 0 10px rgba(46, 139, 122, 0.06); } .glow-border::before, .glow-border::after { animation: mistSpin 6s linear infinite; opacity: 0; transition: opacity 600ms ease; } .glow-border:hover::before, .glow-border:hover::after { opacity: 1; } ``` ### 6.3 山雾背景 背景使用多层缓慢漂移的淡雅云雾(极低透明度,在白底上若隐若现): ```css /* 远景雾 — 60s 缓慢漂移 */ .fog-layer-far { inset: -10%; background: radial-gradient(ellipse 80% 50% at 15% 75%, rgba(46, 139, 122, 0.04) ...), radial-gradient(ellipse 60% 40% at 75% 25%, rgba(58, 127, 184, 0.03) ...), radial-gradient(ellipse 90% 60% at 50% 50%, rgba(46, 139, 122, 0.02) ...); animation: fogDriftFar 60s ease-in-out infinite; } /* 近景雾 — 45s 不同速率漂移 */ .fog-layer-near { inset: -15%; background: radial-gradient(ellipse 70% 45% at 80% 70%, rgba(46, 139, 122, 0.03) ...), radial-gradient(ellipse 50% 60% at 25% 30%, rgba(58, 127, 184, 0.025) ...); animation: fogDriftNear 45s ease-in-out infinite; } ``` 两层雾使用不同的漂移速率和方向,模拟远山和近山的视差效果。 透明度远低于暗色版本,在白底上呈现为淡淡的青绿色氤氲。 ### 6.4 雾气滚动边缘 主要滚动区域(聊天消息、会话列表)的顶部和底部使用渐变遮罩, 让内容看起来消失在云雾中: ```css .fog-scroll { mask-image: linear-gradient( to bottom, transparent 0px, black 36px, black calc(100% - 36px), transparent 100% ); } ``` 纯 CSS 实现,无 JS 开销。36px 的渐变区域提供柔和的过渡。 ### 6.5 过渡动画 - 所有交互元素:`transition: all 200ms ease` - 云烟淡入淡出:600ms ease - 面板展开/折叠:250ms ease-in-out - 新消息出现:`fadeIn 200ms ease-out` + `translateY(8px → 0)` - 背景雾气漂移:45-60s ease-in-out infinite --- ## 7. 与旧版(暗绿底 Cyberpunk 风格)的对比 | 维度 | 旧版暗绿 | 新版白底青绿 | |------|----------|------------| | 底色 | 墨绿黑 `#0C1210` | 绢本白 `#FAFAF7` | | 高亮色 | 石青 `#4DB8A4` | 石青 `#2E8B7A`(加深适配白底) | | 文字色 | 微绿月白 `#E0E8E2` | 墨黑 `#1A1A1A` | | 面板质感 | 绿底毛玻璃 | 白色毛玻璃 | | 背景雾气 | 中等透明度(暗底上可见) | 极低透明度(白底上若隐若现) | | 发光效果 | 柔和云烟缓慢缭绕 | 保持,但阴影更轻柔 | | 整体感受 | 深夜远山 | 白昼绢本 | | 可读性 | 浅色字暗底,OK | 墨色字白底,更佳 | --- ## 8. 响应式断点 | 断点 | 布局 | |------|------| | ≥768px (md) | 双栏:侧边栏(280px) + 主内容区(flex-1) | | <768px | 单栏:侧边栏为固定抽屉 + 主内容区全宽 | --- ## 9. 设计哲学 本风格将中国传统青绿山水画的色彩语言与现代白色 UI 设计融合: - **绢本留白**:白底如绢纸铺展,给青绿色块留出呼吸空间 - **青绿设色**:石青石绿只用于框体边框、高亮和交互反馈,克制而鲜明 - **自然动效**:所有动画模拟自然现象(云烟飘动),而非机械闪烁 - **墨色可读**:正文使用接近纯黑的墨色,在白底上对比度极佳 - **雾气意境**:从边框云烟到背景漂移到滚动渐隐,统一的"雾"意象贯穿全站