用途
本指南用于设计数据集合类界面,例如商品列表、文件浏览器、用户管理、订单表、任务列表等。资料的核心观点是:复杂数据集合没有单一正确视图,不同任务需要不同视图,应把选择权交给用户。
视图模式
资料建议在数据同时具有视觉维度和细节维度时提供多种视图:
- 网格:适合视觉型条目,如商品、图片、文件、卡片;当条目视觉上彼此区分、浏览是主要任务时设为默认。
- 列表:适合中等细节内容,如任务、邮件、文章;当某段文字或元数据驱动选择时使用。
- 表格:适合密集数据,如订单、报表、用户管理;当需要比较多列数据时使用。
视图切换控件放在集合右上方、排序筛选控件附近,使用带提示的图标按钮(网格、列表、表格),并将会话选择持久化到 localStorage。移动端应收起到最适合内容的单一视图:视觉内容用网格,文本用列表;除非两种视图都真正可用,否则小屏不提供切换。
资料提出“超过少量条目,卡片应变成表格”:卡片边框在少量并排比较时才有价值,重复十五次后边框不再提供分隔信息,反而增加噪音。超过大约六项时改用表格,行间用横线或斑马纹,去掉侧边和外框。例外是卡片中包含行无法承载的内容,如图片、图表、每项控件组、必须换行的正文,这些在任何数量下都保留卡片。判断标准是边框包围的是什么:包围一行文字和数值就是表格行上的装饰;包围一个布局才是卡片。此时应让表头承担原由边框提供的强调:更重字重,或更小字号加字距的大写,或更深的底色。
选择
资料指出复选框是较小的目标,要求用户点击 16×16 像素复选框来选行是不必要的摩擦,触摸设备尤其如此。默认应让整行或整卡成为选择区域:点击行任意位置即可选中(背景变化、复选框勾选),复选框只是状态指示,不是唯一选择方式。键盘支持:空格选中聚焦行,Shift+点击扩展选择,Ctrl/Cmd+点击切换单项。
选中状态的视觉语言:用背景色变化传达状态,而不只是复选框勾选。背景使用品牌主色高度去饱和、提亮到约 5–8% 不透明度的 --color-primary-subtle;可选在列表和表格行左侧加 3px 主色边框;复选框勾选并填充主色,作为次要信号。不要用高对比或饱和背景表示选中,以免与内容竞争。
批量操作
当一个或多个条目被选中时,批量操作出现;没有选中时消失。位置是集合顶部的上下文工具栏(选中时替换或补充标准工具栏)。应首先显示选中数量“3 selected”,确认操作范围;只显示适用于当前选择的动作,若某些动作仅适用于单项,多选时禁用;清除按钮取消所有选择并关闭工具栏。破坏性批量操作(如删除)必须弹出确认对话框并写明数量。全选方面,表头复选框选择当前页全部条目,次级操作“Select all 247”将选择扩展到整个数据集。
排序与筛选
表格视图中的列排序:点击列头升序,再点降序,第三次清除排序;活动排序列显示方向箭头;只有可排序列可点击,不可排序列表头无悬停状态。
筛选方面,资料强调获取参数与结果筛选应分开放置:表单承载需要重新获取的条件(日期范围、负责人、地点)及其提交按钮;结果上方的工具栏承载缩小已加载行的条件,如开关、分段筛选、可见/总数计数,以及使用结果的操作。混在一起会让用户分不清哪些控件需要提交按钮。持久筛选放在侧边栏或集合上方筛选栏;活动筛选以可单独移除的标签显示;“清除所有筛选”一次性移除;有筛选时筛选按钮显示数量徽标。空状态需区分:筛选无结果时显示“没有符合这些筛选的结果”并提供清除筛选,不要显示通用空状态;集合真正为空时显示创建第一项的号召性用语。
搜索与自动补全
搜索必须感觉即时且结果可识别。资料建议从第一次按键(最多第 2–3 次)开始返回结果,不必输入完成或按回车;结果以下拉列表实时出现。每个结果应提供不止一个裸字符串:视觉型条目的缩略图/图片、所属分类/区域、类型化领域(商品、备件、服务)可用分类图标和颜色、结果中高亮匹配文本。始终提供“查看‘…’的全部结果”入口,打开带筛选的完整结果页。搜索需完全支持键盘导航:方向键移动建议、回车选择、Esc 关闭,同时也要能用鼠标操作。
表格特定模式
- 固定表头:垂直滚动时列头固定在顶部。
- 固定首列:宽表格水平滚动时,首列(行标识,名称或 ID)固定在左侧。
- 行操作:每行操作(编辑、删除、查看)在悬停时出现在最右列,静止时不显示以减少视觉噪音。单向操作的结果显示在自己的槽位中,例如生成的引用、时间戳或简短状态,不要让单独的状态列重复按钮已经表达的信息;槽位尺寸与按钮一致以保持行对齐。
- 列宽调整与重排:企业数据表允许拖动表头边界调整列宽、拖动表头重排列,并持久化布局。
- 空单元格:不要写“N/A”。它是不易翻译的英文行话,同时表示两种含义(不适用、不可用),重复出现会压过真实值。缺失值用弱化文本的短横线(–),与列值对齐,并提供屏幕阅读器文本替代(如“No value”);连字符在数字旁会被读成负号。只在大多数行都没有值的稀疏列中留空,其他留空会被读成仍在加载或已损坏。零是值,写 0。原因重要时用文字说明:“Not measured”“Pending”。存在但未知的值可以显示“?”。
让数字可理解
资料认为原始数字本身难以判断,呈现数据不只是排列数字,还要给出让用户一眼理解的上下文和形态:给数字一个参照(百分比、平均值、变化量或比较),比较往往才是洞察;当故事是模式时用可视化,趋势、分布、比较或关系用图比一列数字更快;任何会随时间演变的值展示轨迹而不只是当前快照;选择熟悉、广泛理解的图表类型,如柱状、折线、面积、饼/环、迷你图,避免桑基、雷达、弦、矩形树图等增加理解成本的花哨类型;配色限制在最多 2–3 种,每种只表示一个含义,需要更多区分时加图例或提示而非增加色相。
在指示器与图例方面:一个指示器承载其主题的全部信息,每页最多一个图例;描述单个事物(行、卡片、记录)的内容都放进同一指示器,值和标识放在标记本身而非旁边的条形图加列表或键。空间不足时逐步降级:完整标签、仅数字、无可视内容,完整文本放入提示或标题和无障碍名称。两个并排图形应分工:一个编码位置,另一个编码距离;两个都编码位置的图在重复同一信息。
仪表盘与行的处理
仪表盘是汇总而非罗列:每张卡片给两三个数字和最多两行示例作为证据,并提供“查看全部 (n)”在原地打开完整列表。把完整列表堆叠到一页会变成碰巧带卡片的报表,强迫读者扫描全部内容才能找到关心的行,也失去层级。示例行两行而非五行:一行像排序偶然,五行已经开始了卡片本应避免的列表。
当用户操作的对象是“行”本身(选择、编辑、计数),应把行保留为表格行,分组用轻量分组头行加分组切换开关呈现;不要把行嵌套在必须先打开的父亲之下:手风琴让父级成为单位,每组多一次点击,隐藏行无法排序,且一行离开父级就会破坏结构。分组头行保持单一可排序列表,仍可按组全选,并可按另一键重新分组。
标记只表达数据本身
内部评分从不以百分比显示:用于排名或加权的计算值不是读者能核对的测量,屏幕上没有对象是任何东西的 21%。应把结论显示为词,并在其下显示实际比较的值。重复标记只在每个元素都携带数据时才绘制:时间线、迷你图或网格只有在每个条或单元格都编码信息时才值得占用宽度;八个空条加一个亮条仍像图表,读者会读到从未测量过的历史。正负号表示前后对比:只有同一事物在两个时间点比较时才使用增减标记;并列比较时,一方缺少的值用文字说明缺失,不加差异标记。
标题即链接,卡片保持惰性
在记录列表中,记录名称负责打开它。把链接拉伸到整张卡片会没有空间放置第二个目标(除非嵌套锚点),让悬停样式覆盖整个表面,并使每次文本选择都变成导航。第二个目标(如线上站点)应在名称旁有自己的图标。
限制与未提供信息
资料未提供收费、价格、平台、安装命令或具体工具版本等信息。本指南是设计模式建议,不是可直接安装的软件包,使用前需根据实际产品调整。