设计原则
这边引用支付宝ant-design的设计原则,希望对大家有所帮助。
亲密性
如果信息之间关联性越高,它们之间的距离就应该越接近,也越像一个视觉单元。反之,则它们的距离就应该越远,也越像多个视觉单元。亲密性的根本目的是实现组织性,让用户对页面结构和信息层次一目了然。
纵向间距关系
通过『小号间距』、『中号间距』、『大号间距』这三种规格来划分信息层次。
在这三种规格不适用的情况下,可以通过加减『基础间距』的倍数,或者增加元素来拉开信息层次。
增加元素示例 通过增加『分割线』来拉开层次。
横向间距关系
为了适用不同尺寸的屏幕,在横向采用栅格布局来排布组件,从而保证布局的灵活性。
在一个组件内部,元素的横向间距也应该有所不同。
对齐
正如『格式塔学派』中的连续律(Law of Continuity)所描述的,在知觉过程中人们往往倾向于使知觉对象的直线继续成为直线,使曲线继续成为曲线。在界面设计中,将元素进行对齐,既符合用户的认知特性,也能引导视觉流向,让用户更流畅地接收信息。
格式塔学派(德语:Gestalttheorie) :是心理学重要流派之一,兴起于 20 世纪初的德国,又称为完形心理学;主张人脑的运作原理是整体的,『整体不同于其部件的总和』。——摘自『维基百科』
文案类对齐
如果页面的字段或段落较短、较散时,需要确定一个统一的视觉起点,一般文案左对齐。
表单类对齐
冒号对齐(右对齐)能让内容锁定在一定范围内,让用户眼球顺着冒号的视觉流,就能找到所有填写项,从而提高填写效率。
数字类对齐
为了快速对比数值大小,建议所有数值取相同有效位数,并且右对齐。
对比
对比是增加视觉效果最有效方法之一,同时也能在不同元素之间建立一种有组织的层次结构,让用户快速识别关键信息。
注:要实现有效的对比,对比就必须强烈,切不可畏畏缩缩。
主次关系对比
为了让用户能在操作上(类似表单、弹出框等场景)快速做出判断, 来突出其中一项相对更重要或者更高频的操作。
在一些需要用户慎重决策的场景中,系统应该保持中立,不能替用户或者诱导用户做出判断。
总分关系对比
通过调整排版、字体、大小等方式来突出层次感,区分总分关系,使得页面更具张力和节奏感。
状态关系对比
通过改变颜色、增加辅助形状等方法来实现状态关系的对比,以便用户更好的区分信息。常见类型有「静态对比」、「动态对比」。
静态对比示例——用不同颜色点,来表明不同状态。
动态对比示例——鼠标悬停时展示不同的效果
重复
相同的元素在整个界面中不断重复,不仅可以有效降低用户的学习成本,也可以帮助用户识别出这些元素之间的关联性。
重复元素可以是一条粗线、一种线框,某种相同的颜色、设计要素、设计风格,某种格式、空间关系等。
直截了当
需要在哪里输出,就要允许在哪里输入,不要为了编辑内容而打开另一个页面,应该直接在上下文中实现编辑。常见方法有单字段行内编辑、多字段行内编辑、直接拖放、直接选择等。
单字段行内编辑
当「易读性」远比「易编辑性」重要时,可以使用「单击编辑」。当「易读性」为主,同时又要突出操作行的「易编辑性」时,可使用「文字链/图标编辑」。
多字段行内编辑
编辑模式在不破坏整体性的前提下,可扩大空间,以便放下「输入框」等表单元素;其中,在 Table 中进行编辑模式切换时,需要保证每列的不跳动。
利用拖放
只能限制在一个维度(上/下或者左/右)进行拖放。
足不出户
能在这个页面解决的问题,就不要去其它页面解决。因为任何页面刷新和跳转都会引起变化盲视(Change Blindness),导致用户心流(Flow)被打断。频繁的页面刷新和跳转,就像在看戏时,演员说完一行台词就安排一次谢幕一样。
覆盖层
二次确认覆盖层:避免滥用 Modal 进行二次确认,应该勇敢的让用户去尝试,给用户机会「撤消」即可。
用户点击『删除』后,直接操作;出现 Message 告知用户操作成功,并提供用户『撤消』的按钮;用户进行下一个操作或者 1 分钟内不进行任何操作, Message 消失,用户无法再『撤消』。
特例:在执行某些无法『撤消』的操作时,可以点击『删除』后,出现 Popconfirm 进行二次确认,在当前页面完成任务。
嵌入层
列表嵌入层:在列表中,显示某条列表项的详情信息,保持上下文不中断。
标签页:将多个平级的信息进行整理和分类了,一次只显示一组信息。
流程处理
渐进式展现:基于用户的操作/某种特定规则,渐进式展现不同的操作选项。
配置程序:通过提供一系列的配置项,帮助用户完成任务或者产品组装。
弹出框覆盖层:虽然弹出框的出现会打断用户的心流,但是有时候在弹出框中使用「步骤条」来管理复杂流程也是可行的。
简化交互
费茨法则:如果用户鼠标移动距离越少、对象相对目标越大,那么用户越容易操作。
实时可见工具
如果某个操作非常重要,就应该把它放在界面中,并实时可见。
悬停即现工具
如果某个操作不那么重要,或者使用「实时可见工具」过于啰嗦会影响用户阅读时,可以在悬停在该对象上时展示操作项。
开关显示工具
如果某些操作只需要在特定模式时显示,可以通过开关来实现。
交互中的工具
如果操作不重要或者可以通过其他途径完成时,可以将工具放置在用户的操作流程中,减少界面元素,降低认知负担,给用户小惊喜。
可视区域 ≠ 可点击区域
在使用 Table 时,文字链的点击范围受到文字长短影响,可以设置整个单元格为热区,以便用户触发。
当需要增强按钮的响应性时,可以通过增加用户点击热区的范围,而不是增大按钮形状,从而增强响应性,又不缺失美感。
提供邀请
很多富交互模式(例如『拖放』、『行内编辑』、『上下文工具』)都有一个共同问题,就是缺少易发现性。所以『提供邀请』是成功完成人机交互的关键所在。
邀请就是引导用户进入下一个交互层次的提醒和暗示,以表明在下一个界面可以做什么。
静态邀请
引导操作邀请:一般以静态说明形式出现在页面上,不过它们在视觉上也可以表现出多种不同样式。 常见类型:「文本邀请」、「白板式邀请」、「未完成邀请」。
漫游探索邀请:是向用户介绍新功能的好方法,尤其是对于那些设计优良的界面。但是它不是「创口贴」,仅通过它不能解决界面交互的真正问题。
动态邀请
悬停邀请:在鼠标悬停期间提供邀请。
推论邀请:用于交互期间,合理推断用户可能产生的需求。
更多内容邀请:用于邀请用户查看更多内容。(在 Modal 中会出现前后切换的箭头)
巧用过渡
在界面中,适当的加入一些过渡效果,能让界面保持生动,同时也能增强用户和界面的沟通。
在视图变化时保持上下文
滑入与滑出:可以有效构建虚拟空间。
传送带:可极大地扩展虚拟空间。
折叠窗口:在视图切换时,有助于保持上下文,同时也能拓展虚拟空间。
解释刚刚发生了什么
对象增加:在列表/表格中,新增了一个对象。
对象删除:在列表/表格中,删除了一个对象。
对象更改:在列表/表格中,更改了一个对象。
对象呼出:点击页面中元素,呼出一个新对象。
改善感知性能
当无法有效提升「实际性能」时,可以考虑适当转移用户的注意力,来缩短某项操作的感知时间,改善感知性能
即时反应
「提供邀请」的强大体现在交互之前给出反馈,解决易发现性问题;「巧用过渡」的有用体现在它能够在交互期间为用户提供视觉反馈;「即时反应」的重要性体现在交互之后立即给出反馈。
查询模式
自动完成:用户输入时,下拉列表会随着输入的关键词显示匹配项。 根据查询结果分类的多少,可以分为「确定类目」、「不确定类目」两种类型。
实时搜索:随着用户输入,实时显示搜索结果。「自动完成」、「实时建议」的近亲。
微调搜索:随着用户调整搜索条件,实时调整搜索结构。
反馈模式
实时预览:在用户提交输入之前,让他先行了解系统将如何处理他的输入。
渐进式展现:在必要的时候提供必要的提示,而不是一股脑儿显示所有提示,导致界面混乱,增加认知负担。
进度指示:当一个操作需要一定时间完成时,就需要即时告知进度,保持与用户的沟通。 常见的进度指示:『按钮加载』、『表格加载』、『富列表加载』、『页面加载』。可根据操作的量级和重要性,展示不同类型的进度指示。
点击刷新:告知用户有新内容,并提供按钮等工具帮助用户查看新内容。
定时刷新:无需用户介入,定时展示新内容。