Files
EPEEAIKit/docs/art-agent/VISUAL-STYLE-GUIDE.md

10 KiB
Raw Blame History

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. 排版

字体

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 白纱玻璃面板

.glass-panel {
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(20px) saturate(1.1);
  border: 1px solid var(--border);
}

白色半透明底 + 毛玻璃模糊,模拟薄纱覆于绢面的质感。

6.2 静态发光边框

.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: 0hover 时 opacity: 1transition 600ms
.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 山雾背景

背景使用多层缓慢漂移的淡雅云雾(极低透明度,在白底上若隐若现):

/* 远景雾 — 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 雾气滚动边缘

主要滚动区域(聊天消息、会话列表)的顶部和底部使用渐变遮罩, 让内容看起来消失在云雾中:

.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 设计融合:

  • 绢本留白:白底如绢纸铺展,给青绿色块留出呼吸空间
  • 青绿设色:石青石绿只用于框体边框、高亮和交互反馈,克制而鲜明
  • 自然动效:所有动画模拟自然现象(云烟飘动),而非机械闪烁
  • 墨色可读:正文使用接近纯黑的墨色,在白底上对比度极佳
  • 雾气意境:从边框云烟到背景漂移到滚动渐隐,统一的"雾"意象贯穿全站