Files
Starlight_Lancher/.agents/skills/oil-frontend/references/information-and-action-contract.md

8.1 KiB
Raw Blame History

信息与动作规则

当任务涉及可见文案、动作层级、图标、点击反馈或视觉强调时读取;数据范围和空间布局由对应规则负责。

可见信息

每段文字和每个视觉元素必须至少完成一项职责:

  • 标识当前对象;
  • 区分相邻对象;
  • 表达当前状态;
  • 说明无法从结构推断的规则、限制或风险;
  • 说明可执行动作;
  • 反馈动作结果。

不承担这些职责就删除。

当对象、操作顺序、控件和反馈已经通过界面结构清楚表达时,不再用说明文案重复解释流程。添加帮助文字前,先检查能否通过更准确的标题、按钮文案、布局、默认值或状态反馈直接解决;不能用长说明掩盖结构和动作关系不清。

只有以下信息不能从当前界面可靠推断时才补充说明:

  • 非共识的业务规则;
  • 系统限制或数据作用范围;
  • 容易造成真实损失的误操作风险;
  • 危险或不可逆动作的具体后果。

必须删除:

  • 重复页面标题、重复状态和重复入口;
  • 重述按钮含义的段落;
  • 解释显而易见布局的文字;
  • 不影响下一步动作、作用范围或结果判断的状态复述,如 3 selected20 itemsFilter applied
  • 仅用于填空的说明、徽章和图标;
  • 原始数据库 ID、内部枚举、存储路径和系统时间戳等实现信息除非它们直接用于当前判断、搜索、复制或排障。

空状态只说明为空的原因,并提供一个恢复动作。同一创建或恢复意图不能同时出现在页面 Header 和空状态中。

即使实现信息确有用途,也只能作为辅助信息或按需复制项,不得取代用户能够识别的名称、图片和区分字段。

容器强调边

左侧或顶部的彩色强调边、色带和装饰性轨道属于强调边卡片accent-border card视觉语言源自 callout、引用块和状态提示。它会主动争夺注意力不应成为普通卡片、列表项或内容分组的默认装饰。

  • 只有强调边持续表达可复用的状态、类别、选择或告警含义时才使用。
  • 分类文字、图标或状态已经表达同一信息时,删除重复的强调边。
  • 不为制造层次、填补空白或让相邻卡片“看起来不同”而给每项配置不同颜色的强调边。
  • 普通集合优先使用对齐、留白、文字层级、轻量分隔线或背景差异建立结构。
  • 项目确有符合本规范的稳定提示、引用、告警或选中模式时,由共享组件和按用途命名的组件变体统一维护;页面不得临时拼装彩色边线。

用户已有认知

  • 常见的浏览、选择、编辑、保存、删除、返回和关闭任务使用用户已经理解的结构和动作含义。
  • 同一对象、状态和动作在不同页面使用相同名称;不得用不同术语包装同一件事。
  • 不改变共识图标和动作的惯常含义,也不为普通任务创造自定义手势或新操作模型。
  • 只有标准模式无法表达真实任务时才新增交互模式,并明确显示它的对象、动作和结果。

动作层级

层级 用途 呈现
主操作 完成当前页面、弹窗或操作区域的主要任务 一个高强调文字按钮
次级操作 高频但非主要 低强调文字按钮
管理操作 重命名、重新处理、复制、可撤销删除 “更多”菜单
危险操作 永久删除或其他不可恢复、高损失操作 菜单分隔 + 确认
导航操作 返回、关闭、翻页 上下文明确时可用共识图标

同一页面、弹窗或操作区域出现两个高强调按钮时,重新判断主任务。批量工作台可以同时提供不同任务动作,但只能有一个与当前阶段直接相关的主导动作。

上下文操作与按需呈现

不是所有操作都需要始终平铺显示。根据当前对象和用户正在进行的任务,只显示此刻需要的操作:

  • 主操作、关键状态和完成当前任务必须先发现的入口保持可见。
  • 卡片、列表项或表格行中的次级操作,可以在 hover、聚焦或选中当前项后显示。
  • 重命名、复制、重新处理等低频管理操作优先放入“更多”菜单,不在每一项中长期平铺。
  • 操作出现前预留稳定位置,不挤压文字,也不让列表或卡片发生布局跳动。
  • 触屏设备没有 hover 时,通过点击选中当前项,或使用始终可见的“更多”入口提供相同操作。
  • 不隐藏用户必须先发现,才能理解当前状态或完成主要任务的操作。

按钮与图标

  • 使用能够说明结果的“动作 + 对象”文案,避免只有“处理”“管理”“继续”等无法判断结果的词。
  • 图标只有在能加快识别,并明确表达对象、动作、状态或结果时才使用;移除后不影响理解和扫描的图标应删除,不为标题、标签、菜单项或卡片机械配图标。
  • 同一图标保持相同含义图标与文字同时出现时表达同一件事。非共识图标必须显示文字tooltip 不能代替标签;纯图标只用于上下文明确的共识动作。
  • AI 只是实现方式时,图标表达摘要、翻译、生成图片、转写、编辑等实际动作或结果,不额外叠加通用 AI 标记。
  • 星星、闪光、机器人、脑形和魔法棒不作为生成、增强、助手等功能的默认图标;只有表达收藏、真实机器人或 Agent 对象等本来含义,或项目已有不违背本规范的稳定含义时才使用。
  • AI 身份本身影响用户判断时优先显示明确名称、模型、Logo 或真实 Agent 身份不用抽象的“AI 图标”代替对象。
  • Check 只表示选中、确认、保存或完成,不表示查看;Refresh 只表示刷新、重试或重新分析,对象不明确时显示文字。
  • 状态不得做成看似可点击的按钮。

点击区域与鼠标反馈

  • 所有可点击按钮、链接、卡片、表格行、菜单项、选择器选项、分页项和上传区域必须显示 cursor: pointer
  • cursor: pointer 必须覆盖完整点击区域,不只覆盖图标或文字。
  • 点击区域必须有可见 hover 反馈,例如背景、边框或文字颜色变化。
  • 按下状态必须与 hover 有区别。
  • 禁用控件不是可点击区域,使用禁用视觉和 cursor: not-allowed
  • 非交互卡片、标签、状态和装饰图标不得显示 pointer。
  • 整张卡片可点击时,卡片根节点负责 pointer 和 hover不要让用户猜只有哪一小块能点。
  • 卡片或表格行内存在独立控件时,各控件保持自己的点击范围,不触发外层点击。

pointer、hover、active 和 disabled 样式由共享组件负责,使用组件的页面不得逐个补充。

“更多”菜单

  • 菜单项显示文字。
  • 点击外部关闭菜单。
  • 删除与普通操作分隔。
  • 当前状态不允许的操作直接隐藏;不要留下无法解释的灰色图标。
  • 菜单触发器与菜单项都显示 cursor: pointer

检查

  • 删除某段文字后,用户是否仍能正确判断?
  • 删除流程说明后,用户是否仍能通过对象、顺序、控件和反馈完成任务?如果不能,问题来自真实规则还是界面结构不清?
  • 图标是否要求用户猜含义?
  • 每个图标是否有明确职责,移除无意义图标后是否仍能正常理解和扫描?
  • AI 功能的图标是否表达真实动作或对象,还是只使用了星星、机器人、脑形等通用装饰?
  • 所有可点击区域是否显示 pointer 和 hover
  • pointer 是否误加到不可点击内容?
  • 低频操作是否仍平铺在主界面?
  • 次级操作是否只在相关对象进入 hover、聚焦或选中状态后出现触屏设备是否有同等入口
  • 按需出现的操作是否造成文字位移或布局跳动?
  • 是否展示了不能帮助识别、判断或操作的实现信息?
  • 容器左侧或顶部的强调边是否表达稳定含义,还是只在重复标签或装饰页面?
  • 常见任务是否要求用户重新学习术语或操作方式?