Information architecture 信息架构

页面该长成什么形状。这件事要在挑颜色、定间距之前决定。

这一节的其他几页回答的是零件的问题。本页回答的是排在它们前面的那个问题:这块屏幕要装的东西这么多,用户到底是来做什么的,什么样的排布能让他做成。

页面 回答
信息架构(本页) 页面该是什么形状
设计系统 令牌是什么:词汇表
设计规范 做界面时怎么在它们之间取舍
主题系统 运行时怎么切换和覆盖

适用场景:要做一块同时装着多个对象、多种状态以及它们之间关系的屏幕,比如控制台、仪表盘、后台、工作台、监控页。落地页和单一转化的表单不算,那类页面的成败取决于说服力,而不是用户能不能在密集信息里判断准确。

数据齐了不等于页面设计好了。接口返回的字段一个不落,筛选、状态标签、批量操作也都在,用户照样不知道该先看哪儿。缺的不是信息,是顺序。

动组件之前先回答三个问题

  1. 用户打开页面,最该先看到的是哪一件事? 这是页面的主信息。
  2. 为了看懂它,还必须同时看到什么? 关联资源、关联模型、上下文。
  3. 看完之后他要做什么? 作判断、执行操作,或者接着往下想。

这三个问题要在打开组件清单之前答完。三个答案清楚的页面很少选错形状;跳过它们的页面,最后都是照着接口返回的结构长出来的。

一个页面只有一个主模型。 辅助模型可以帮着理解和操作主模型,但不能来抢首屏。

形状由任务决定,不由返回值决定

大部分形状不对的页面,都出自这两个顺手的选择:

  • 接口返回了数组,于是做成表格。
  • 路由里带了一个 ID,于是做成详情页。

这两件事都不构成理由。同一个对象在不同任务下是不同的形状:查找时 issue 是一个集合,处理时是一条状态流,协作时是一条讨论线索,审计时是一串事件序列。记录里有日期,只能说明数据里有日期,不能说明这一页就该是日历。

怎么选表达骨架

选那个能让用户最少转几道弯就回答出主问题的排布。

用户眼前要回答的问题 必须放在一起的信息 表达骨架
这些之间差在哪儿? 参与比较的字段,列的位置固定 二维对照表
是哪一个,我要点进去 名称、标识、状态 列表 / 资源目录
是哪一个,看图就认得出来 图放在最显眼处,名称和字段围着它排 卡片网格
这个对象是什么,现在什么状态? 身份、状态、主操作,然后才是属性 分区详情
它属于哪里? 路径、父级、同级 层级树
谁依赖它,改了会影响到谁? 上下游、影响范围 关系列表
我走到第几步了,接下来是什么? 阶段、当前输入、后面的步骤 分步向导
每一条在哪个阶段,推动它就是干活 列代表阶段,卡片带身份和阻塞点 看板
为什么卡住了? 阶段概要,再到单步结果,再到原始日志 追踪下钻
现在健康吗,影响面有多大? 对象名、状态,以及把状态改掉的那个事件 状态墙
发生了什么,先后顺序,谁干的? 时间、操作者、事件类型 事件时间线
谁提了什么,别人怎么回的? 作者、发言、回复结构 讨论线程
改之前和改之后差在哪儿? 两个版本并排 并排比较
趋势怎么样,异常在哪儿? 指标、它的比较基准、进明细的入口 仪表盘
这段时间被谁占着,会不会撞车? 开始、结束、时长放在同一根轴上 日历排期
我接下来该处理哪一条? 一侧是队列,另一侧是这一条的详情 主从工作台
哪些规则生效,会影响到什么? 配置项、生效范围、造成的后果 配置表单
这段正文说了什么? 正文按顺序读,旁边给一份大纲 连续文档
它在哪儿? 位置、边界、分布 地图与画布

最容易选反的几对

  • 时间线还是分步向导。 时间线讲已经发生过什么,按先后排;分步向导讲你现在在哪一步、下一步是什么。两者长得像,指向的时间方向却相反。
  • 看板还是筛选。 只有当拖动卡片本身就是那个操作时,看板才成立。列如果只是几组存下来的筛选条件,那就是做了个要拖一下才能用的筛选器。
  • 日历还是时间线。 日历回答的是占用和冲突,时间线回答的是先后。记录里的日期不负责在这两者之间做选择,问题才负责。
  • 卡片网格还是表格。 图要么是识别的锚点,要么不是。如果选择是靠比数字做出来的,把预览缩成第一列的小图,反而压掉了真正决定结果的字段。
  • 关系图还是关系列表。 只有当路径本身或影响怎么扩散就是判断依据时,才值得画图。否则一份分好组的上下游列表读起来更快。
  • 正文还是字段格子。 需要顺着读下来的文字就让它保持文字。把每一段都切成卡片或者键值对,正好毁掉了它原本好读的地方。

不要因为做得出来就把三种视图都做一遍。每多一种视图,就多一套筛选、多一份状态映射、多一组要同步维护的操作。等到第二种用法确实高频了再加,而不是为了以防万一先加上。

每一类信息该放在哪里

信息 回答的问题 该放在 不该落到
身份 这是什么? 标题、对象概要 表格最后一列,或者某个标签页后面
状态 现在怎么样? 标题区或概要区 只能在详情字段里翻到
属性 它是什么样的? 详情正文,按人理解的方式分组 照着接口字段顺序摊平
关联 它和谁有关系? 自己的区块或标签页,归属、依赖、引用分开表达 混进属性表里
变更 和之前差在哪儿? 差异区块、时间线 只显示改完之后的值
证据 凭什么这么判断? 紧挨着这个判断,可以展开 另开一个日志页
操作 现在我能做什么? 主操作在标题区,其余的挨着各自作用的对象 塞进「更多」里
反馈 刚才那下做成了吗? 紧挨着操作,保住任务上下文 一个和上下文断开的全局提示

每条信息只有一个权威位置。 别处只放摘要或入口,并且指回那个权威位置。

阅读顺序

页面身份
→ 当前状态或异常
→ 主任务和主操作
→ 判断所需的信息
→ 关联、变更、证据
→ 次要信息和低频操作
  • 一页只有一个视觉上的主标题。 分节标题靠语义推进,不要用字号假装层级。
  • 一个任务区里最多一个主操作。 主按钮代表最可能、价值最高的下一步,不是最危险的那一步。危险操作用危险语义表达,不该长期占着最重的视觉分量。
  • 警告色和危险色留给真正需要用户注意的状态。整页都是绿的,信号就已经花掉了。
  • 徽标、标签、横幅共用同一份注意力预算。只强调那些会改变判断和动作的信息。

信息密度

密度不是单位面积里塞了多少控件,而是用户一眼能拿走多少可用来判断的信息。把间距收紧只提高了视觉密度,有效密度原地不动;删掉不相关的字段、把需要对比的东西摆到一起,才是真的提高。

档位 适用场景 换来什么
宽松 首次使用、低频配置、高风险确认 解释的空间、更大的分组间距、看得见的影响预览
标准 大多数列表、详情和表单 可扫读性和每屏信息量之间的默认平衡
紧凑 高频专家工作台:监控、运维、审计 稳定的列宽、短文案、键盘效率、可保存的视图
  • 一个页面里最多用相邻的两档。标准页面里嵌一张紧凑的表格没问题,每个区块各发明一套标尺不行。
  • 紧凑不等于「字号和点击区域一起缩小」。容器留白和行高可以收紧,正文的可读性、看得见的焦点圈和指针目标尺寸不能。
  • 对专家用户来说,列管理、保存视图、批量操作和快捷键,都比一次显示更多内容更有用。

怎么维持任务上下文

骨架定下来之后,再决定辅助内容放在哪儿:

用户正在… 就给他
在对象或证据之间反复切换 主从分栏:一侧队列,一侧当前这条
瞥一眼很轻、看完就走的内容 可展开行(r-disclosure-row)或气泡卡(r-popover
处理可以分享出去、或者需要宽度的内容 一条独立路由
做一次确认,或者填一个字段 弹窗(r-modal

弹窗不是一层导航。 只要需要可复制的链接、浏览历史、并排比较,或者刷新之后工作还得在,就给它一条路由。

这一层 ranui 能给你什么

ranui 在页面形状上是刻意不表态的:它提供基础件和令牌,不提供页面模板。这一层它能给的是:

  • r-section 划出骨架的各个内容带,r-card 承载真正独立的重复条目。卡片里不要再套卡片;表单字段用小标题或分隔线分组就够了。
  • r-tabs 表达同一个对象的平级视图(它的讨论、它的检查、它的差异),不要拿来放互不相干的模块,那是导航的事。
  • r-disclosure-row 做渐进展开,r-popoverr-dropdown 承载临时上下文,r-modal 只做上面那张表允许它做的事。
  • r-state-dot 表达状态,并且永远带上文字标签:不能只靠颜色
  • 首屏加载时用 r-skeleton,长到会让人犯嘀咕的操作配 r-progress,结果用 r-message 告诉他。

ranui 没有表格、树、日历、看板和时间线。自己实现时,用令牌设计规范去搭,不要另起一套视觉体系:间距取自标尺,字体按角色定,颜色来自语义令牌,每一个可达状态都要设计到。

典型做坏的方式

  • 接口返回的每个字段都变成一行详情,身份、状态、关联和证据以同样的分量一起涌出来。
  • 用卡片、颜色和装饰性间距堆出层次感,却没说清该先看哪儿、要据此作出什么判断。
  • 几个操作同时用主按钮样式,或者把一个低频操作摆进标题区。
  • 状态、属性、关联和变更混进同一张表,结果哪儿都比不出来。
  • 用户只是想查个名字和状态,却给了他一张关系图。
  • 用弹窗装一条长流程、一次比较,或者别人一定会想发链接出去的内容。
  • 同一句话在标题、概要、标签页和表格里各出现一遍,哪一次都没带来新信息。

页面上线前的检查清单

  • 主信息、关联信息、用户的下一步动作,三样都写下来了。
  • 表达骨架是从问题选出来的,不是从返回值的形状推出来的。
  • 页面只有一个主模型,辅助视图服务于它而不是和它抢。
  • 不看需求文档,五秒内能说出这一页的对象、当前状态和主操作。
  • 比较发生在同一个地方,不需要跨标签页或跨页面记住某个值。
  • 每条信息只有一个权威位置,别处都指回去。
  • 密度与使用频次匹配,且没有出现超过相邻两档的情况。
  • 长文本、大数字和窄屏都不会把信息顺序打乱。
  • 对判断没有帮助的区块、字段、标签和按钮,都删掉了。