一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
· 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
· 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
· 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
横向流程图每步写清页面/功能/操作/完成判据。
· 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
· 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
· 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。
二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。
三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
12 KiB
受 Slack 启发的设计系统
Category: 生产力与 SaaS 职场通讯平台。以深茄紫为主色,多色调 Logo 调色板,明亮界面搭配深色侧边栏,温暖而亲切。
1. 视觉主题与氛围
Slack 的品牌形象建立在"工作也可以充满人情味,甚至有点趣味"的理念之上。标准界面是明亮的——白色内容区搭配深茄紫(#4A154B)侧边栏——与深色优先工具形成反差。这种对比是刻意为之:侧边栏是沉稳、始终存在的导航锚点,而内容区则明亮开阔。
Logo 调色板——蓝、绿、黄、红——主要出现在井号图标和营销场景中,而非散落于整个 UI。在产品本身中,Slack 使用克制、专业的配色系统,以茄紫色作为唯一的品牌锚点。
核心特征:
- 明亮优先的内容界面:白色
#FFFFFF与近白色#F8F8F8 - 深茄紫
#4A154B侧边栏——品牌最具辨识度的 UI 元素 - 四种 Logo 强调色(蓝、绿、黄、红)仅少量用作高亮
- 标题使用 Larsseit(营销场景),UI 使用系统无衬线字体
- 圆润但不卡通:大多数组件圆角为 4–8px
- 紧凑而透气:消息行紧密,线程层级清晰
- 温暖对话的语调——表情符号、回应和插图是一等公民
2. 色彩规范与用途
品牌主色
| 变量 | Hex | 用途 |
|---|---|---|
--color-aubergine |
#4A154B |
侧边栏背景,品牌主色 |
--color-aubergine-dark |
#350d36 |
茄紫界面上的悬停状态 |
--color-aubergine-light |
#611f69 |
侧边栏活跃项高亮 |
Logo 强调色(少量使用——仅用于高亮、图标、营销)
| 变量 | Hex | 名称 | 用途 |
|---|---|---|---|
--color-blue |
#36C5F0 |
天蓝 | 频道图标、链接、信息状态 |
--color-green |
#2EB67D |
青绿 | 在线状态、成功状态 |
--color-yellow |
#ECB22E |
金黄 | 离开状态、警告、高亮 |
--color-red |
#E01E5A |
宝石红 | 通知、错误、提及徽章 |
界面背景色
| 变量 | Hex | 用途 |
|---|---|---|
--bg-primary |
#FFFFFF |
主消息区、弹窗 |
--bg-secondary |
#F8F8F8 |
线程面板、次级界面 |
--bg-tertiary |
#F1F1F1 |
输入框背景、悬停状态 |
--bg-sidebar |
#4A154B |
左侧边栏(茄紫色) |
--bg-sidebar-hover |
rgba(255,255,255,0.1) |
侧边栏项悬停 |
--bg-sidebar-active |
rgba(255,255,255,0.2) |
活跃侧边栏项 |
--bg-message-hover |
#F8F8F8 |
消息行悬停 |
文字颜色
| 变量 | Hex | 用途 |
|---|---|---|
--text-primary |
#1D1C1D |
主要正文(近黑色) |
--text-secondary |
#616061 |
时间戳、静音标签 |
--text-sidebar |
rgba(255,255,255,0.9) |
侧边栏频道名 |
--text-sidebar-muted |
rgba(255,255,255,0.6) |
侧边栏未激活项 |
--text-link |
#1264A3 |
消息内联链接 |
--text-mention |
#1264A3 |
@提及文字颜色 |
语义色
| 变量 | Hex | 用途 |
|---|---|---|
--color-success |
#2EB67D |
成功提示、积极状态 |
--color-warning |
#ECB22E |
警告状态 |
--color-danger |
#E01E5A |
错误状态、破坏性操作 |
--color-info |
#36C5F0 |
信息性高亮 |
边框与分隔线
| 变量 | Hex | 用途 |
|---|---|---|
--border-default |
#DDDDDD |
标准分隔线、卡片边框 |
--border-subtle |
#F1F1F1 |
行间微妙分隔线 |
--border-focus |
#1264A3 |
焦点环颜色 |
3. 排版规则
字体
| 用途 | 官方字体 | 网页回退 |
|---|---|---|
| 展示 / 营销标题 | Larsseit | 'Larsseit', 'Helvetica Neue', Arial, sans-serif |
| UI / 正文 / 框架 | Slack Lato(定制) | system-ui, -apple-system, BlinkMacSystemFont, sans-serif |
| 代码 / 等宽 | — | 'Monaco', 'Menlo', 'Courier New', monospace |
Slack 营销标题使用 Larsseit,产品内 UI 使用定制版 Lato。网页使用时,
system-ui是最安全的回退方案。
字号层级
| 层级 | 大小 | 字重 | 行高 | 字间距 | 用途 |
|---|---|---|---|---|---|
| Display XL | 48px | 800 | 1.1 | -1px | 营销主视觉标题 |
| Display L | 36px | 700 | 1.15 | -0.5px | 区块主视觉 |
| Heading 1 | 28px | 700 | 1.25 | normal | 弹窗标题、页面标题 |
| Heading 2 | 22px | 700 | 1.3 | normal | 卡片标题、设置区块 |
| Heading 3 | 18px | 700 | 1.35 | normal | 子区块标题 |
| Body L | 16px | 400 | 1.5 | normal | 消息文本、描述 |
| Body | 15px | 400 | 1.46667 | normal | 默认 UI 文字(Slack 基础字号) |
| Body SM | 13px | 400 | 1.38462 | normal | 次要元数据 |
| Caption | 12px | 400 | 1.33 | normal | 时间戳、提示 |
| Code | 12px | 400 | 1.5 | normal | 行内代码、代码块 |
排版规则
- Slack 基础正文字号为 15px——比 16px 略小,以提高密度
- 未读频道:字重 700——粗体是主要的未读指示器
- 时间戳:12px
--text-secondary,仅悬停时显示 - 代码块:背景
#F8F8F8,边框1px solid #DDDDDD,圆角 4px - 不使用 12px 以下的字号
- 营销标题:大展示尺寸使用字间距
-1px
4. 组件样式
按钮
/* Primary */
.btn-primary {
background: #4A154B;
color: #FFFFFF;
border-radius: 4px;
padding: 0 16px;
height: 36px;
font-size: 15px;
font-weight: 700;
border: none;
}
.btn-primary:hover { background: #611f69; }
/* Secondary */
.btn-secondary {
background: #FFFFFF;
color: #1D1C1D;
border: 1px solid #DDDDDD;
border-radius: 4px;
padding: 0 16px;
height: 36px;
font-size: 15px;
font-weight: 700;
}
.btn-secondary:hover { background: #F8F8F8; }
/* Danger */
.btn-danger {
background: #E01E5A;
color: #FFFFFF;
border-radius: 4px;
}
.btn-danger:hover { background: #B3114A; }
输入框
.input {
background: #FFFFFF;
border: 1px solid #DDDDDD;
border-radius: 4px;
color: #1D1C1D;
font-size: 15px;
padding: 8px 12px;
height: 36px;
}
.input:focus {
border-color: #1264A3;
box-shadow: 0 0 0 2px rgba(18,100,163,0.25);
outline: none;
}
侧边栏频道项
.channel-item {
height: 28px;
padding: 0 16px;
border-radius: 6px;
color: rgba(255,255,255,0.7);
font-size: 15px;
font-weight: 400;
}
.channel-item:hover {
background: rgba(255,255,255,0.1);
color: #FFFFFF;
}
.channel-item.active {
background: rgba(255,255,255,0.2);
color: #FFFFFF;
}
.channel-item.unread {
color: #FFFFFF;
font-weight: 700;
}
未读徽章
.badge {
background: #E01E5A;
color: #FFFFFF;
border-radius: 8px;
font-size: 11px;
font-weight: 700;
padding: 1px 6px;
min-width: 18px;
}
消息附件 / 卡片
.attachment {
border-left: 4px solid #DDDDDD;
background: #F8F8F8;
border-radius: 0 4px 4px 0;
padding: 8px 12px;
margin: 4px 0;
}
回应
.reaction {
border: 1px solid #DDDDDD;
border-radius: 24px;
background: #F8F8F8;
padding: 2px 8px;
font-size: 13px;
cursor: pointer;
}
.reaction:hover { background: #F1F1F1; }
.reaction.active {
background: rgba(18,100,163,0.1);
border-color: #1264A3;
}
5. 布局原则
三栏布局
┌──────────────┬──────────────────────────────┬─────────────┐
│ Sidebar │ Message Area │ Thread │
│ (240px) │ (flex: 1) │ (400px) │
│ #4A154B │ #FFFFFF │ optional │
└──────────────┴──────────────────────────────┴─────────────┘
间距系统(基础单位 4px)
| 变量 | 数值 | 用途 |
|---|---|---|
--space-1 |
4px | 紧凑间隙 |
--space-2 |
8px | 组件内边距 |
--space-3 |
12px | 输入框内边距 |
--space-4 |
16px | 标准内边距 |
--space-6 |
24px | 卡片内边距 |
--space-8 |
32px | 区块间距 |
侧边栏结构
[工作区名称 ▼]
────────────────────
Threads
All DMs
Drafts & Sent
────────────────────
▼ Channels
# general
# random
# design ● (unread)
────────────────────
▼ Direct Messages
John Doe
Jane Smith
消息编辑器
- 固定在消息区底部
border: 1px solid #DDDDDD,border-radius: 8px,margin: 0 16px 16px- 工具栏:表情、附件、格式化、发送按钮
6. 深度与层级
Slack 在明亮界面上使用轻柔阴影:
| 层级 | 用途 | 阴影 |
|---|---|---|
| 扁平 | 消息行、侧边栏项 | none |
| 低 | 卡片、输入框 | 0 1px 3px rgba(0,0,0,0.08) |
| 中 | 下拉菜单、弹出层 | 0 4px 12px rgba(0,0,0,0.12) |
| 高 | 模态框、对话框 | 0 8px 24px rgba(0,0,0,0.15) |
| 遮罩 | 模态背景遮罩 | rgba(0,0,0,0.5) |
7. 应该与不应该
✅ 应该
- 侧边栏使用茄紫色
#4A154B——这是 Slack 最标志性的 UI 元素 - 保持主内容区白色和明亮
- 所有正文使用
#1D1C1D(近黑色),而非纯黑 - 用粗体频道名表示未读状态——字重是指示器
- 四种强调色仅用于语义角色(成功、警告、危险、信息)
- 消息附件和嵌入内容使用
border-left: 4px - 仅在悬停时显示时间戳
- 链接和焦点状态使用
#1264A3 - 侧边栏项保持紧凑:高度 28px,圆角 6px
❌ 不应该
- 不要使用深色主内容区——Slack 是明亮优先的
- 不要将蓝/绿/黄/红作为装饰性强调色散落各处
- 不要使用纯黑
#000000作为文字颜色 - 不要使用气泡——消息是扁平行
- 不要将按钮做成大圆角——4px 是标准
- 不要永久显示时间戳
- 不要将频道名全大写
- 不要使用 12px 以下的字号
8. 响应式行为
断点
| 断点 | 宽度 | 布局 |
|---|---|---|
| 移动端 | < 768px | 单面板,侧边栏作为左抽屉 |
| 平板 | 768–1024px | 侧边栏 + 仅消息区 |
| 桌面端 | > 1024px | 完整三栏布局 |
移动端适配
- 侧边栏:左抽屉,向右滑动打开
- 底部标签栏:首页、私信、动态、我
- 线程面板:全屏覆盖层
- 编辑器:固定在键盘上方
- 频道列表项:44px 触摸目标高度
- 移动端保留茄紫色顶部标题栏
9. Agent 提示指南
生成 Slack 风格设计时,遵循以下方法:
颜色应用:
将
background: #FFFFFF设为主画布。侧边栏使用#4A154B(茄紫色)。所有主要文字使用#1D1C1D。链接和焦点环使用#1264A3。四种 Logo 颜色——#36C5F0、#2EB67D、#ECB22E、#E01E5A——仅作语义用途:信息、成功、警告、危险。
排版:
所有 UI 使用
system-ui, -apple-system, sans-serif。基础字号为 15px。未读频道:字重 700。正文:字重 400。时间戳:12px#616061,仅悬停显示。代码:Monaco, Menlo, monospace,12px,背景#F8F8F8。
布局:
三栏:240px 茄紫色侧边栏 + 弹性白色消息区 + 可选 400px 线程面板。侧边栏项:高度 28px,圆角 6px,未读时加粗。编辑器:固定底部,
border: 1px solid #DDDDDD,border-radius: 8px。
组件:
按钮:圆角 4px,高度 36px,茄紫色主按钮。输入框:
1px solid #DDDDDD边框,#1264A3焦点环。消息行:扁平,无气泡,36px 圆形头像。回应:胶囊形border: 1px solid #DDDDDD,border-radius: 24px。
语调:
Slack 是温暖、专业且充满人情味的。空状态使用友好插图。行动号召直接明确:"Send message"、"Get started"。错误信息清晰且有帮助。绝不令人感到警觉。
需要避免的反模式:
不要深色内容区。不要气泡。不要纯黑文字。不要散落的多色强调。不要全大写频道名。不要低于 12px 的字号。不要大圆角按钮。