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