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

299 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 设计融合:
- **绢本留白**:白底如绢纸铺展,给青绿色块留出呼吸空间
- **青绿设色**:石青石绿只用于框体边框、高亮和交互反馈,克制而鲜明
- **自然动效**:所有动画模拟自然现象(云烟飘动),而非机械闪烁
- **墨色可读**:正文使用接近纯黑的墨色,在白底上对比度极佳
- **雾气意境**:从边框云烟到背景漂移到滚动渐隐,统一的"雾"意象贯穿全站