数据表格UI系统 是做什么的?
目的
数据表格UI系统技能提供了一种组织和呈现结构化、多属性数据的方法。它通过建立对齐、间距、层次结构和表格内交互元素的明确规则,确保大型数据集易于扫描、比较和操作。
使用场景
- 为SaaS仪表盘设计库存、用户管理或账单视图。
- 为电子商务或营销网站创建产品对比矩阵。
- 为技术应用实现日志查看器或审计跟踪。
- 以结构化视图组织财务数据或性能指标。
- 为“数据表格”或“数据网格”建立组件库标准。
何时不使用
- 简单的键/值对: 如果你只有两列(例如标签:值),请使用描述列表(
<dl>)或简单列表。 - 叙事内容: 长篇文章或故事应使用标准排版和章节结构,而不是表格。
- 布局网格: 使用
responsive-grid-system进行页面布局;表格严格用于数据。 - 低数据量卡片: 如果数据高度可视化且属性较少,请使用
card-ui-system以获得更好的参与度。
输入
- 数据Schema: 要显示的数据类型(字符串、数字、日期、布尔值、操作)。
- 列优先级: 哪些属性是识别身份所必需的,哪些是次要细节。
- 用户任务: 用户需要查找特定行、比较跨行值还是执行批量操作?
- 数据量预期: 典型视图中预计有多少行和列?
输出
- 表格结构规格: 定义区域(表头、行、单元格、表尾)及其内部间距。
- 对齐矩阵: 基于数据类型的水平对齐规则。
- 密度变体: 紧凑、标准和宽松行高的定义。
- 交互映射: 排序、筛选、行选择和行内操作的行为规范。
工作流程
1. 定义列类型和对齐
应用“对齐经验法则”以确保可扫描性:
- 文本/默认: 左对齐(帮助眼睛跟随单词开头)。
- 数字/指标: 右对齐(对齐小数点,便于快速比较大小)。
- 日期/状态标签: 居中对齐或左对齐(取决于列宽)。
- 操作: 右对齐(通常是最后一列)。
2. 建立视觉层次(表头)
表格表头必须清晰地区别于数据:
- 样式: 对
<th>元素使用不同的背景色、粗体或全大写样式。 - 粘性: 对于长表格,使用粘性表头,使用户在滚动时不会丢失上下文。
3. 设置行密度和节奏
根据使用场景选择密度级别:
- 紧凑: 高数据密度(例如,高度32px)。最适合高级用户和仪表盘。
- 标准: 均衡(例如,高度48px)。最适合通用用途。
- 宽松: 低密度(例如,高度64px)。最适合营销或简单列表。 使用斑马纹或微妙边框来分隔行,减少“跳行”。
4. 设计交互式数据
定义用户如何操作数据:
- 排序: 在支持排序的表头添加指示符(箭头)。
- 行状态: 定义行的悬停、选中和聚焦状态。
- 批量操作: 如果需要,在最左侧添加一个复选框列。
5. 规划内容差异
处理数据长度的边界情况:
- 截断: 对不重要且过长的标识文本使用省略号。
- 换行: 对重要的描述性文本允许换行。
- 固定宽度: 为稳定的列(例如,状态、日期)分配固定宽度,为主要标识符列(例如,名称)分配流体宽度。
决策规则
- 可扫描性规则: 第一列应始终是最重要的标识符(例如,名称、ID),作为行的锚点。
- 数字对齐: 如果主要任务是数值比较,则对数字使用等宽字体,以使数字完美对齐。
- 斑马纹与边框: 对于非常宽的表格,使用斑马纹帮助眼睛水平跟踪;对于较短、较简单的表格,使用边框。
- 操作位置: 将操作分组放在最后一列,或使用可见的“更多”菜单保持界面整洁。
- 空单元格: 切勿让单元格留白。使用破折号(—)或“N/A”来确认数据缺失,而不是加载错误。
约束条件
- 无障碍性: 必须使用语义化的
<table>标签。表头必须有scope="col"。必须使用表格标题(<caption>)提供上下文。粘性表头不得遮挡滚动到其下方的单元格或行操作的焦点指示器(WCAG 2.2 SC 2.4.11)。行内操作按钮/链接必须满足24x24px的最小触控目标尺寸(SC 2.5.8)。 - 响应式: 当视口缩小时,表格必须遵循
responsive-data-tables模式(滚动、堆叠或切换)。 - 对比度: 表头文本和状态指示器必须满足WCAG AA级(4.5:1)。
常见失败模式
- 数字未对齐: 左对齐数字使得无法快速比较大小。
- “文字墙”: 使用高密度行但不采用斑马纹或清晰的表头区分,导致“视觉疲劳”。
- 不可见的表头: 表头看起来与数据过于相似,使得难以知道列代表什么。
- 缺少操作提示: 单元格内的按钮或链接太小,无法点击或看起来不可交互。
- 缺少空状态: 显示空白表格而没有“未找到结果”的消息。
验证标准
- 列对齐遵循数据类型规则(文本=左对齐,数字=右对齐)。
- 表头视觉上区别于行数据。
- 主要标识符锚定在第一列。
- 使用语义化HTML(
<table>,<th>,scope)构建结构。 - 空单元格使用占位符(例如,—)而不是留空。
- 清晰地定义了交互状态(悬停/选中)。
- 设计能够优雅地处理长内容(截断或换行)。
- 粘性表头永远不会遮挡行或单元格操作上的焦点指示器(WCAG 2.2 SC 2.4.11)。
- 行操作满足24x24px的最小触控目标尺寸(WCAG 2.2 SC 2.5.8)。