E6.06.1empty-state kinds设计
空状态需区分无数据、无结果与出错
别名: 空态分类 · zero data · 无搜索结果
概念解释
列表、画布、收件箱没有可见项时,屏幕上那一块叫空状态(empty state)。它不是一种装饰插画,而是三种不同诊断共用的表面:无数据(这个容器从来没有过内容)、无结果(内容在,当前筛选或搜索把它滤没了)、出错(内容可能在,但这次没取到)。三种空看起来都是空白,用户要做的下一件事完全不同。混用同一张「暂无内容」图,会把过滤过猛当成还没开始用,或把故障当成真的没有邮件。
机制
人用「这里为什么是空的」来选择下一步:创造第一项、放宽条件、还是重试。空白本身不携带原因,原因只能靠文案、图标和残留的上下文来给。无数据时,周围不该还留着筛选芯片,因为没有可筛的集合;无结果时,必须能看见刚才那串查询或那些过滤条件,否则用户不知道空是自己造成的;出错时,要留下「这不是空集合」的信号,否则重试没有动机。三种诊断若共用一张插画,分类器失效,用户会拿最常见的解释(还没有东西)去套所有情况。空状态的第一职责是把原因说清楚,引导和动作是后面才接得上的。
边界
权限不够看到任何项,既不是无数据也不是查询落空,是第四种:不可见。把它写成「暂无内容」会鼓励用户去创建自己无权看的对象。加载尚未结束时的空白是骨架或指示器的工作,提前换成空状态会闪一下「没有」再跳出内容。对象存在但被归档、被别人删掉,对当前用户像无数据,对系统不是;文案应偏向「你这边没有」,而不是「系统里没有」。嵌套列表里父级有子级、当前这一层没有,范围要写到这一层,免得被读成整个项目是空的。
怎么落地
- 为容器建立三种模板:无数据、无结果、出错,禁止共用一句「暂无内容」。
- 无结果必须回显查询词和仍生效的筛选,并提供清空;出错必须可重试,且不要画成空插画。
- 无数据不要展示过滤条的「零结果」样式;没有集合就没有过滤。
- 验证:分别制造从未用过、搜错词、拔网线三种空。若三张屏幕互相可以替换而不被发现,分类就失败了。