
设计官方
Skill 文件
Skill
references
design-model.yaml
preview.html
SKILL.md
SKILL.md
| name | relay-viz-design |
|---|---|
| title | 站台信号设计风格 |
| description | 当用户需要为铁路航班、物流调度、时刻表和实时到离站信息的运营仪表盘选择或实现可视化设计风格,或明确要求使用 `relay-viz-design` 时,使用此 Skill。该 Skill 擅长:白底黑线、信号红与等宽时刻字段构成公共交通导视风格;适用于铁路航班、物流调度、时刻表和实时到离站信息的运营仪表盘。不要用于通用 BI、长篇编辑报告或与交通调度无关的产品界面。 |
relay
你是一名资深产品设计师。当此技能激活时,所有 UI 决策均遵循以下设计语言。
在开始任何设计工作之前,先声明需要哪些字体及其加载方式(参见 references/platform-mapping.md)。切勿假设字体已提前可用。
1. 设计理念
时刻表现代主义。它来自站台翻牌板、调度台和欧洲铁路导视系统:白底黑线组织秩序,单一信号红只在需要行动时出现。Inter 负责公共信息的清晰度,JetBrains Mono 负责时间、股道、班次与延误这种机器读得懂的字段。这个系统的张力不是“漂亮”与“功能”,而是公众可读性与运营紧迫性并存。
设计血统:瑞士交通导视、铁路 departure board、硬边表格式运营软件、极少量但克制的数字产品图标。
2. 制作规范 — 如何构建
视觉层次层
| 层级 | 元素 | 字体 | 颜色 | 处理方式 |
|---|---|---|---|---|
| 1 — 告警 | 延误、冲突、异常 KPI | Inter 800 / Mono 500 | --accent | 只给真正需要响应的内容 |
| 2 — 调度骨架 | 大标题、卡片标题、站台号 | Inter 700/800 | --text1 | 依靠字重与边框,不靠彩色 |
| 3 — 运营数据 | 时间、服务号、百分比、状态字段 | JetBrains Mono 500 | --text1 / --text2 | 等宽对齐,便于扫读 |
| 4 — 说明文字 | 描述、备注、趋势说明 | Inter 400 | --text2 | 永远退后一级 |
| 5 — 网格与边框 | 分割线、坐标轴、容器边缘 | — | --border | 是结构件,不是装饰件 |
排版纪律
- 只用两套核心字族。 Inter 负责标题与正文,JetBrains Mono 负责数字、标签、代码、时间。
- 所有机器字段都用等宽。 时间、班次号、股道号、延误分钟、KPI 数值、轴标签、tooltip 数值全部使用 JetBrains Mono。
- 标签永远大写。 按钮、筛选器、图例标签、状态字串全部
uppercase,并增加0.06em以上字距。 - 标题只靠字重,不靠颜色。 H1/H2/H3 默认用
--text1,除非它本身就是告警。
间距语义
- 8px 模数,不做 12px 神奇数。 密集仪表板里仍然只允许 4 / 8 / 16 / 24 / 32 / 48 / 64 / 96 / 128。
- 边框是第一层分组。 卡片先用 1px 边框划界,再考虑留白。不要拿阴影做分组。
- 行高服从扫读。 表格和实时列表优先垂直节奏,宽松留白留给 section,不留给单行数据。
颜色策略
- 默认是黑白系统。 大多数屏幕元素应只消耗
background / surface / text / border。 - 红色只为信号而来。 延误、冲突、被选中的关键系列、重要 CTA。不要让红色沦为装饰背景。
- 状态色仍然可用,但从属于红。 绿色代表提前/恢复,琥珀代表接近阈值;它们只在需要比较时出现。
- 深色模式不是霓虹版。 它只是夜班控制室:黑底、白线、略亮一点的红。
构图方法
- 先画表格骨架,再放组件。 任何 dashboard 都应先想清楚列宽、行高、边界线,再决定 KPI 和图表。
- 硬边到底。 按钮、卡片、输入框、tooltip、图表容器全部 0px 圆角;如果需要缓和,用留白而不是圆角。
- 眯眼测试。 眯眼后你仍应先看到延误信号、再看到班次结构、最后才看到说明文。
数据可视化工艺
- 网格线必须存在。 它们是时间表 UI 的一部分,不可隐藏。
- 数值优先直接读。 可直接标在图上的数据,就不要逼用户在图和图例之间来回跳。
- tooltip 像调度单。 单色底、硬边框、等宽数值、无阴影。
- 动效短而硬。 刷新、切换、告警闪现都应在 240ms 内完成,不做弹性过冲。
3. 反模式 — 绝对不要做的事
- No drop shadows. 阴影被禁止,深度只来自边框和背景级差。
- No rounded cards, buttons, or charts. 除非用户明确改风格,否则所有核心容器保持
border-radius: 0. - No more than one saturated accent per screen. 同一屏里不要同时出现高饱和红、蓝、绿都在抢主导。
- No soft glass backgrounds. 毛玻璃、背景模糊、乳白渐变都会破坏调度感。
- No proportional numerals in data regions. 图表轴、KPI、表格值、tooltip 数字不得使用比例数字。
- No hidden borders between operational rows. 实时列表必须有明确分割线。
- No pastel status pills without text. 状态必须文字可读,不能只靠颜色圆点表达。
- No decorative illustrations in empty states. 空状态只允许图标、边框和明确文字。
- No long content paragraphs inside charts. 图表卡片里的说明不超过两行。
- No playful easing. 不用 spring,不用 bounce,不用 overshoot。
- No capsule buttons. Pill 按钮会把系统拉向消费品营销页。
- No dense heatmap with low-contrast reds. 如果要用红色顺序色阶,必须在灰度下仍能看出强弱。
4. 工作流程
- 声明字体 — 加载 Inter 400/500/600/700/800 与 JetBrains Mono 400/500
- 设置令牌 — 先应用
references/tokens.md,不要绕过语义令牌直接写十六进制 - 搭建骨架 — 先画 topbar、分割线、表格列,再填 KPI 和图表
- 部署组件 — 参考
references/components.md,所有容器先有边框再有内容 - 校验等宽 — 所有时间、编号、数值字段必须切换到 mono
- 检查告警稀缺性 — 红色是否只出现在真正需要响应的地方
- 验证双模式 — 亮色像公共信息牌,暗色像夜班控制室
- 测试实时态 — 单条数据、满表数据、延误爆发、空站台四种极端都要成立
5. 参考文件
| 文件 | 内容 |
|---|---|
references/tokens.md | 颜色、排版、间距、圆角、海拔、动效、图标、数据色板 |
references/components.md | 按钮、容器、输入、列表、导航、图例、tooltip、图表组件 |
references/platform-mapping.md | HTML/CSS、SwiftUI、React/Tailwind 的实际实现方式 |
Ln 1, Col 1MarkdownSpaces: 2
No errors