正文
移动互联网时代的到来,用户的互联网环境已经逐步迁移到了手机。于是对于设计师和用户大家开始接触到了 iOS、Android、Microsoft 等新的平台,开始与这些新的组件打交道。
事实上这些元素并没有发生太大的变化,它们很多只是基于屏幕大小和可触控的新特性发生了进化。而我们所看到的那些组件在不同平台上的差异性更多是源于系统平台本身以及它们的设计理念差异。
这个现状给设计师带来了更多的麻烦,我们在设计产品的同时还需要更多的关注不同操作平台的组件差异性,以顺应不同用户的使用习惯。
当然,随着行业的不断发展我们所面临的麻烦会更多,我们现在所能看到的 VR 设备、线下实体以及我们还未看到的新的形式都会让 Components 不断的进化,也变得更复杂。
Patterns 是什么?
相对于 Components,Patterns 要处理的事情会更复杂一些。它的目标是为完成一个任务提供基础操作,是解决一系列问题的全局解决方案。
举一个直接的案例,在 Material Design 中有一个叫做 Confirmation & Acknowledgement (确认与知会)的 Pattern(见上图)。
简单来说当用户在 App 中执行了一个操作,我们需要给予反馈,告知用户,而这个 Pattern 要解决的问题就是为这一系列场景提供一套设计解决方案。
其实无论是 Components 还是 Pattern,它们都是目标都是为具体的问题提供实际、可复用的解决方案,为整个产品开发过程提供一致性保障、提供决策依据以及提升效率降低开发成本。
Components 与 Patterns 有什么差异?
基于上面的描述,大家应该对 Components 和 Patterns 有了一个基础认知,但它俩之间的具体差异还是比较模糊,所以接下来我们从功能角度来接着聊聊它俩的差异。
事实上大多数的 Design System 并没有特别清晰的去定义它俩,有些只给出了 Components,有些只给出 Patterns,比如下图中的 Salesforce、Carbon、MailChimp。这背后其实与对应的业务领域及这些 System的理念有很大的关系,我们在后面会再提及。