诸如Atomic Design之类的UI方法将逻辑和结构带入各个屏幕。现在是时候将这种想法

2017-10-10 17:12


这里有一点谜。为什么会这样 - 有点像宿醉和流行音乐 - 大多数产品似乎随着年龄的增长而变得更糟?

你会认为相反的情况应该是真的:有一个伟大的团队花费多年的时间迭代产品应该最终导致一些完美完美的成品。相反,十年后,您的手机解锁突然变得更加困难为什么?

长期痛苦的答案是不合规范的。项目随着时间的推移而增长 更多的人加入,一些早期的人离开,设计愿景的清晰度恶化。业务决定追逐新市场,新功能如圣诞装饰品一样。内部协作变得更加困难,小组开发自己的设计理念。要求来自更多样化客户群的洪水。需要通过增加更多的东西来保持竞争。蔓延在一起。不久之后,在黑暗之后,单独进入一些屏幕并不安全。好的产品会降级。它发生在我们最好的人身上。

较短的答案是大多数产品团队不坚持坚实的底层设计系统将产品的概念构建单元,用户界面的细节以及事物的命名方式整合到一起并指导体验的各个方面。

因此,如果您遇到设计成功的不断增长的产品时遇到的,那么考虑到您的设计的各个方面,您可以在单个系统中挽救您 - 在腐烂之前。

TL; DR

鉴于这是互联网,您可能已经有动物视频观看,我会切断追逐:

  1. 50年前,平面设计师发现,设计一些相关的东西时,最好提出一些共同的基本规则。
  2. 数字产品设计师意识到这也是确保您的按钮总是看起来一样的好方法。“设计系统”成为建立一致用户界面的有用方式。
  3. 但大多数设计系统实际上只是图案库:一个可以以无限方式组合的大型UI乐高零件。所有的片段可能是一致的,但这并不意味着组合的结果将是。
  4. 您的产品不仅仅是一堆可重用的UI元素。它具有结构和意义。它不是一个通用的网页,它是一个概念系统的体现。
  5. 通过在设计系统中体现产品概念,设计人员可以超越一致的UI来创建一致的产品。

这是简单的版本。如果你已经得到它,godspeed

具有结构完整性的软件

制作软件不像建桥。建筑工人有一个明确的目标,目标是成熟的方法和理解的材料,其中大多数穿得更好。大多数行业比软件开发更加稳定。这很好 - 大多数人通常喜欢驾驶不是使用白板标记设计的桥梁,而是由谷歌设计的错误消息。

 

正在建设的曼哈顿大桥,1909年

曼哈顿大桥在建,1909年。©Irving Underhill /国会图书馆

 

数字产品设计还处于起步阶段。当我们走的时候,我们正在弄清楚这个事情。一旦我们确定了一些事情,事情就会再次发生变化 - 技术改进,团队发展,竞争就会出现 - 而你终于想到的这个过程再次破裂。几乎一旦你制定了这些计划就已经过时了。

没有一个蓝图,依赖这并不奇怪,这么多的软件最终在自己的重量下扣。

很清楚,我们需要一些东西来设定并保持我们的路线。使产品开发困难的部分更容易,使部分更慢的部分更加快速,并且为了使我们远离庞大的复杂坑,所有产品似乎都随着时间的推移而被吸引。

进入设计系统。

设计系统的简史

一种味道的设计系统已经有一段时间了。简单地说,一个设计系统对于您不仅要设计一件事情,而且需要一整套想要像一个连贯的家庭一样感觉到的东西是有用的。如果您提出了一个模板,并且始终坚持下去,那么您将得到一致的免费。

因此,您不必设计一个地铁标志,您可能会想出一套图形标准,允许您设计一整套协调一致的标志和符号。还可以带回戒指吗?老学校很酷

 

纽约市交通局图形标准手册Massimo Vignelli和Bob Noorda,1970年

纽约市交通局图形标准手册Massimo Vignelli和Bob Noorda,1970 来源

 

或者,不是为组织设计徽标,而是可以开发用于在各种不同上下文中表示该组织的视觉系统。太空探索和经典平面设计,什么不爱?

 

1975年,Richard Danne和Bruce Blackburn的NASA图形标准手册

1975年的Richard Danne和Bruce Blackburn的NASA图形标准手册来源

 

像Twitter Bootstrap这样的CSS框架将这些想法拖到了Web开发的世界中,提供了可重用的代码片段,以轻松构建一致的UI元素,如按钮和下拉列表。美妙的,即使世界上每个网站基本上看起来都一样。

 


Twitter Bootstrap,最初由Mark Otto和Jacob Thornton创建,2011年

 

布拉德·弗罗斯特(Brad Frost)有影响力的原子设计方法提出了更为结构化 Atomic Design并不是分散在屏幕上的“原子”元素(例如标签,输入,按钮),而是将UI元素的一小部分视为有意义的组件(例如页脚,一个登录表单)。在这个想法中,我们会再来一次。

 

Brad Frost的原子设计方法,2013

Brad Frost的原子设计方法,2013

 

最后,Google的材料设计指南进一步推动了这一概念,为更广泛的平台上构建UI元素带来了更深层的正式理性,大胆的审美和资源和指导。(我在Google工作,并为Android Wear平台撰写了第一套指南)。

 

Google的材料设计,2014年

Google的材料设计,2014年

 

今天,许多较大的公司已经建立了自己的定制的内部设计系统,试图摆脱不可避免的不一致的蠕动。Airbnb,Salesforce和Uber已经建立了全面的系统来保持自己的产品UI。

模式库的局限性

也许这不是你的消息。也许你已经有一个人在你自己的团队中保持一个漂亮的小图案库。(如果你不确定谁,只是寻找不能停止制作乐高类比的人。)

那么你不能检查框并继续前进?或者图案库和设计系统之间有区别吗?

我的意思是肯定的。但是是的。

大多数图案库采用网页的形式,列出所有UI元素的不同样式:所有不同大小的标题,所有按钮样式,用于构建UI的所有下拉列表。如果您团队中的所有设计师和工程师都同意只使用这些元素,则您的UI会自动保持一致。如果您想在整个应用程序中进行设计更改,它还可以将这些样式调整到道路上。一点也不差。

 


对讲机的老旧现在的模式库。需要一些按钮?我们得到了

 

但是模式库有一些问题。是的,它们允许您保持所有最小的元素一致。但他们对于如何组合起来并没有意见。他们不了解您的产品或背后的概念。

要回到我们的乐高类比,只需要有一个有限的模式图库来选择,不排除我构建一些非常疯狂的狗屎。

 


令人印象深刻但不完全一致的设计 - 这只是窗帘。资源

 

现在想想那些可以购买的品牌乐高套件。每件作品都有更多的意见。它知道将要用于什么。仍然存在泛型件,但是当您以某种方式将它们组合在一起时,它们会形成特定的东西,如AT-AT Walker的腿。这是一个设计系统。

(注意事项:那些高度规定的品牌套件实际上是无聊的,没有乐高比一大堆砖和想象力更好,一致性是严格的成年人。)

从原子设计到全套设计系统

这种方法与我之前提到的Atomic Design方法不同。原子设计会告诉你要把你的一些基本元素(标签,输入,按钮)粘在一起,称之为分子。那么您可以一次又一次地重用该分子。此外,您可以将一些分子粘在一起形成可重复使用的生物体。

我遇到的这样一个系统的每一个现实世界的例子的问题是,他们仍然不知道正在建造的产品。

当您为特定产品创建定制设计系统时,您有机会将常见的UI元素组合在一起,而是在许多层面上实际表达您的核心产品概念。我称之为全堆栈设计系统

以下是完整堆栈设计系统可能包括的内容:

  • 您产品的共享概念模型这是您在白板上绘制的图表,以说明您的产品在系统级别的工作原理。您的产品中的主要对象是什么?他们如何互动?
  • 您团队中的每个人使用的共享语言来引用您的对象。记住,话语重要如果设计师,工程师和支持人员都用相同的词来形容同样的事情,那么组织的雾气就会消失。我们的内容策略主管丽莎白在Intercom的电话中称之为“从代码到客户的相同语言”。
  • 共享的设计资源可以快速创建准确反映我们设计系统的模型。这通常采用每个人都可以访问的单个Sketch文件的形式。该文件包含每个对象的符号,通常用于显示不同大小或不同上下文中相同对象的多个变体。
  • 共享代码组件,允许工程师构建这些组件及其变体,通常使用单行代码。Sketch中应该有1:1的对象映射。

最重要的是,通过所有这些层次都有一个统一的线索。对讲机中的“对话” - 我们的核心对象之一 - 是非常具体的东西,无论是被绘制,描述,设计还是编码。如果我们想以某种方式改变对象,我们可以在各个层面上一直改变它。队伍被锁定,歧义消失。以这种方式,系统的总和变得比零件大得多。

在每种情况下,对象不仅仅描述UI小部件。它们意味着在产品上下文中非常具体的内容。

完整的堆栈设计系统将原子设计的基于组件的想法扩展到我们的产品,并与所有参与制作的人员直接相关。

一个现实的例子

为了说明,我们来看看在构建对讲机时如何使用对话对象。

首先,我们概述了Build中的Conversation对象,内部网站可以解释每个对象是什么以及它与更广泛的系统的交互方式:


Build中列出的每个对象都有一个漂亮的链接,可以直接在我们设计师的共享草图文件中打开该对象:

另一个打开工程师用来实现对象的代码段:
 
我们的支持团队帮助文档作者始终使用相同的语言:

在这个堆栈的所有层次 - 系统模型,用户界面,实施,文档 - 我们的目标是以一致,有意义的方式捕获我们的产品的结构。

 

为什么这对对讲机有用

这个想法对于我们在Intercom的设计成功至关重要。我们仍然是一个相当小的公司,但我们正在建立多种不同功能的产品。我们很容易陷入“复杂坑”。然而,我们渴望反对潮流,实际上使我们的产品更加简洁和优雅,即使我们添加到可以做的事情。

我们实现这一目标的策略是使用我们可以链接到特定工作流程中的这一小小的核心对象。每当我们在对讲机上建立新的东西,我们会问自己如何使用我们已经拥有的材料来解决问题。新概念根据需要自然而然地爬行,但是有意识地引入了自己,当我们有机会的时候,我们也很努力地合并概念。

尽管能力不断提高,产品仍然保持精准和精确。我们可以将我们的核心对象抛光,使其随着时间的推移变得更好,这些改进在所有产品的许多地方都会出现。重用允许我们更快地移动。

最重要的是,我们的用户没有数百个概念来保持头脑。当他们采用新的对讲产品时,它已经很熟悉了,因为它是由同样的东西组成的。

系统工作

所以这是如何保持你的产品离开坑。想想你正在设计的不是一系列屏幕,而是作为一个对象系统,然后在每个层面上实现这些对象:概念,设计,构建,营销,支持。

我会说实话:我甚至不知道这是否会完全奏效。我已经尝试了,我老实说,不能想到任何兼具灵活性和优雅性的产品,欢迎您提出建议!也许这是不可能的,坑等待着我们所有人。但是,结束博客文章似乎并不是一件好事。

此外,我不想相信这是真的。对于在日益增长的面向产品的公司进行大规模设计工作而言,这非常有挑战性。

早期的迹象很有希望。在所有类型的复杂系统中,从代码库到架构,清晰度来自于将整体理解为一系列模块,然后放大以单独思考每个模块。约翰·加尔在他的同名法律中写道:

一个复杂的工作系统总是被发现是从一个简单的系统发展而来的。相反的命题也似乎是真实的:从零开始设计的复杂系统从来没有工作,不能工作。你必须重新开始,从一个简单的系统开始。

可以设计复杂的系统,但要做到这一点,您必须先画出轮廓。只有这样,才能开始填写细节。

同样,为了发展和改进复杂的系统,您必须始终保持整体系统。我们已经知道替代方案不起作用:零零碎碎的新思路,抵制增长产品的需要,允许许多竞争方式共存。

生产产品是一种永恒的平衡行为。将设计系统方法应用到您的产品的每个级别 - 而不仅仅是UI - 将帮助您保持对该平衡的控制,并防止任何一个力量控制太多。

如果你想建设自己的网站,请联系 重庆网站建设 小李:15683785239


服务支持

我们珍惜您每一次在线询盘,有问必答,用专业的态度,贴心的服务。

让您真正感受到我们的与众不同!

合作流程
合作流程

重庆网站建设流程从提出需求到网站建设报价,再到网站建设,每一步都是规范和专业的。

常见问题
常见问题

什么是网站定制?网站报价如何?网站常见问题。

常见问题
售后保障

网站建设不难,难的是一如既往的热情服务及技术支持。我们知道:做网站就是做服务,就是做售后。