首页

怪了!为什么你单个设计细节好看,整体看却不行?

涛涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

在设计的时候,各种视觉要素以有序的方式排列,设计师需要通过对各部分空间的精妙设置来实现这一点。通常而言,我们的目光总会被最引人注目的部分吸引——无论它是视觉主体还是负空间。视觉主体和负空间,两者都很重要,尤其当你需要平和地呈现一个和谐、连贯、天衣无缝的设计。那么在一个网页设计作品中,设计师到底利用空间传达出怎样的一个故事呢?这就牵涉到我们今天要聊的主题了,格式塔原理。

人类的大脑天生就能把规律性的散点连接起来,并对目之所及的事物赋予意义。设计是一个创造性的领域,是形式和空间的相互融合,并随之创造各种各样的体验。无论我们接触到什么样的设计作品,我们的大脑都会本能地将作品解构为更简单的各个组件,这些组件由基本的形状和不同的形态组成,而这些形状和形态则与空间息息相关。过往丰富的体验与经历,使得我们的脑海中充满了各种各样的记忆,于是我们很容易就能识别出这些特定的设计形式。

正空间,或者说显著的设计主体,构成了设计的「肉体」,它是你看到形状、颜色、图案等部分。相反,负空间多数情况下是指背景或大量留白。

文森特·梵高(Vincent Van Gogh)的这幅广受欢迎的作品,是一个以正负空间之间有着强对比的经典设计案例。

就像正空间似乎支配着负空间一样,两者都被用来平衡地传达一个和谐、连贯的设计理念。

在平衡的构图中,设计的正负空间都是相互配合、相互补充的,形成一个无缝、美观的整体。相反,不平衡的构图会让观众感到不适,传达出一个不完整的、扭曲的故事。

我们的设计在表达什么?

网页设计的好坏很大程度上取决于它的实用性和可用性。如果你的设计技巧很差,那么网页设计的整体效果和表现都会受到影响。但从另一个角度来看,在「内容为王」的时代,如果空间布局使用不当,内容将对您的网站产生显著的负面影响。

如果你认为你的开发技能很棒,但你的设计技能可能需要更多的改进,那这篇文章对你就太合适了。在本文中,我们将讨论:

  • 正负空间之间的关系、重要性及应用;
  • 空间与认知知觉的关系;
  • 格式塔原理及其它在网页设计中的应用。

我们还将讨论一些真实的网页设计实例,探讨每个案例如何体现格式塔原理,以及它对空间的创造性使用。

话不多说,一起开始学习吧。

一、正负空间的关系、重要性及应用

空间由两个主要维度组成:正空间和负空间。正空间是可被直接感知到的视觉元素,负空间则为元素以外的留白和间隙。如前所述,正的是物体,负的是物体后面可以通常被忽略的留白区域。一个是焦点,另一个是背景。在前者产生活动和刺激时,后者则保持静止和模糊。一个是月亮,另一个是环绕着它的暗夜。

在网页设计中,正负空间相互作用,共同形成构图,传达理念。只有当正负空间通过对比来区分,同时又向更大的区域延伸时,才会产生视觉层次(脑补一下阴阳太极图吧)。

正负空间的交汇之处就是信息的交汇点。负空间拱卫着正空间元素,让后者更加突出和显著。

通常而言,正空间在绝大多数时候起主导作用,实际上负空间同样重要。负空间的优点在于:

  • 创建易于遵循的视觉层次;
  • 吸引注意力,营造焦点,减少分心;
  • 帮助营造边界,突出焦点;
  • 让页面更容易被扫读;
  • 使页面看起来自然;
  • 不借助外力的情况下,阐明视觉元素之间的关系;
  • 有助于保持页面干净清爽;
  • 强化网页的视觉风格和外观。

设计中的负空间相反并不是负面的。当正负空间比例平衡得当时,两者在视觉上会显得非常舒适。而当其中一个占据主导地位,并给人一种「过于拥挤」或「空洞无物」的印象时,混乱才会发生。在这两种情况下,受众都无法处理如此复杂的信息,因此,而这样的空间设计是不符合网页设计的基本原则和设计动机的。

这是一个网页模板,它展现了何为「内容错位」和「空间混乱」:

△ 布局混乱

△ 空间失衡

△ 适当的布局调整

△ 网页设计中空间的合理运用

有意思的是,当谈到空间的概念和布局出现时,质疑声也随之而起。

  • 是正空间被负空间包围,还是负空间被正空间吞噬?
  • 如何确定正负空间的比例?
  • 两种空间类型中,哪一个作为焦点对象?
  • 是否必须突出其中一个而忽略另一个,以便向观众传达设计师的预期感知?
  • 我将如何通过正负空间之间的变化让设计出现质的变化?

类似的问题只能在理解基本概念后再来作答。黄金经验法则告诉我们——简单是最好的策略。

在文章开头,我曾提到在设计网页的时候,尽量创建简单的用户界面,这是一举两得的举措,既可以造福你自己,也可以惠及用户。或从表面上看,网页设计的重点在于增加网站的视觉吸引力,使用户操作更为简便。

二、空间与认知知觉之间的联系

我们的大脑总是在扮演侦探的角色,试图寻找隐藏的线索和空间之间缺失的联系。因此它会将当前的视觉信息与之前的经验进行比对。为了成为一名的网页设计师,你必须先了解大脑是如何感知周围环境的。它可以帮助你选择特定的视觉元素,利用它们来影响观众的感知。

伟大的设计师明白心理学在视觉感知中所扮演的强大角色。当某人的目光与你的设计作品相遇时会发生什么?他们对你的文章所传达的信息有何反应?——劳拉·布什,Autodesk 品牌内容策略师

作为设计师,你必须清楚地了解视觉设计和心理学是如何相互联系、相互影响的。换句话说,开发以用户为中心的简单界面,借助正负空间进行设计主要依靠格式塔原理,它可以帮助你理解和控制视觉和心理的联系。

三、网页设计中的「格式塔原则」

格式塔在德语中是「形式」的意思。它更多的是一个概念而不是一个单纯的词汇,它最基本的概念是:

整体大于各个部分的总和。——库尔特·考夫卡(美籍德裔心理学家,格式塔心理学的代表人物之一)

当单个部分的集合以某种方式统一时,它们在我们的感知当中就是一组。我们把元素看作一个整体,这一概念或理论基本适用于所有的设计媒介:我们不把文本、颜色和形状看作单独的元素,而是把整个网页看作一个整体。同样的道理也适用于森林:我们看到的不仅仅是一堆树,就像我们在看海洋时看不到水滴一样。

格式塔原则描述了当特定的条件出现时,人类大脑是如何感知视觉成分的。它帮助大脑创造视觉图像。因此,格式塔原理通常会应到下面六个主要类别:

  • 图形和背景
  • 接近性原则
  • 对称和秩序
  • 相似性
  • 封闭性
  • 连续性

1. 图像和背景

「图形」是直观地、明显地与背景分离的物体。

目前最经典的例子是圣杯——两个镜面对称轮廓构成了花瓶。当你第一次看到这张照片的时候,你的眼睛会立即被吸引到画面上看起来最聚焦的视觉主体上,可能是相互对立的面孔,也可能是花瓶。当你的大脑在调整你的焦点时,背景或花瓶被模糊了,在那一刻,你的大脑直觉地在图像中感知到背景。

过了一会儿,你会注意到背景中的花瓶,并意识到它本来就在那里。尽管图形和基本原则看起来模棱两可,设计师常常创造视觉上吸引人的超现实和虚幻艺术,并将之运用于网页设计。

有时,图形与背景之间的关系是稳定的,而这种稳固的视觉关系使得两者之间,产生区别。这种关系有的时候又是不稳定的,这意味着图形和背景是无法清晰区分的。由于这种关系的模糊性,用户会很自然地开始困惑。

为了让大家直观地感受到图形和背景之间的关系,让我们详细的拿几个案例来进行讨论。这些例子都集中在图形-背景关系中的三个主要方面:对比度、Box 区块和阴影。这三方面涉及到诸多属性,包括颜色、尺寸和信息量,它们关系到内容的区分和视觉的纵深。

在下面的第一个例子中,Trellis 使用了一个全屏大图背景,并且搭配上清晰的 CTA 元素,图形-背景关系明确,该关系清楚地展示出了细节、色彩和尺寸上的差异。

页面中的文字是位于中央的手写风格字体,与背景中的图像相比显得很突出。和灰色背景图片构成对比的白色文本是吸引用户注意力的焦点,这使得文本在画面中是高度可见的。从另一个角度来看,背景图片是模糊的,所以清晰的文本会非常醒目。这些都表明,这里的文本被优先考虑为图形或正空间,而模糊的图像被用作背景或负空间,从而强烈地暗示了图形和背景之间的关系。

下一个案例是下图方框里的内容。 Ocean Health Index 巧妙地利用了框内区域的内容将图片与背景分离开来。这是你在浏览他们的网站时看到的:

当你第一次浏览这个页面时,哪个部分会吸引你的注意力?你会发现,它的主要文本为白色和蓝色背景构成对比,而更加醒目的是是两个与文字对比鲜明的 Box 区块。前者借助了深色背景和文本色彩上的差异,构造对比度。而 Box 区块本身的色彩和背景色构成对比的同时,还和更靠前的文本构成色彩对比。

背景使用了微妙的色调,使数字得以鲜明地展现,并突出细节。方框的运用使它们在页面上清晰可见。

一些网站还通过添加阴影来表现物与背景的关系,产生一种图象被置于背景之上的感觉。以下截图来自于 serious unsweet.com:

Seriously Unsweetened 的着陆页使用了不止一种方法来保持图形与背景的平衡关系。明亮颜色和阴影的配合;背景是纯粹的白色,使得前景元素更容易从中出来。背景之上的元素都是「正空间」,图中的物体呈现在背景的映衬下,有一种被置于「顶部」的错觉。而阴影并没有直接用在图片和文本上,而是应用在图片的内部,这让我们注意到在主要图像内部还有另一层视觉元素,这意味着里面还有一层图片-背景关系——这是一个非常智慧的设计。

2. 接近性原理

接近性是指页面中元素之间的接近程度。网页中的不同元素可以组合在一起,不同的接近程度会带来不同的关联属性。除了视觉特征上的接近性之外,这些元素与其他页面元素之间的距离接近度也会自动地在观众的脑海中产生关联感。

从图像到文本、导航栏到网页表单,这种接近性原则在网页设计中适用范围非常广。将类似的内容组合在一起时,它将在元素之间创建关联,为观者提供更好的视觉体验。

以下是 Mashable 网站导航显示的运用接近度的案例:

在上方的截图中,我们可以清楚地看到如何将相同类别的元素放在一起,以显示它们与主菜单的关系。由于颜色和文本大小的选择,使观者的目光自动被吸引到主标题下的子栏目上。

除了导航栏外,基于网格的内容也符合黄金比例的接近性。亚马逊的产品列表就是最好的例子:

这个案例体现的是接近性还是相似性还有待讨论。如你所见,具备视觉接近性的同类产品使用狭窄的留白进行分组和分隔。这种接近性会指示用户在类似的产品列表中,对其目标产品基于购买偏好进行排序。此外,封闭性原则也在类似项目的清单中发挥了作用。

现在,我们来仔细看看 Basecamp 的网页表单设计,它在网页设计中显示了另一种接近性的理想情况:

可以看到上图中的表单是被划分为两个主要部分的:个人信息和 ID 生成两个部分。第一部分被暗示为最重要的字段,第二部分则是一个次要的需求。这两个部分的标题都因颜色和字体大小的不同而产生区别。在这个网页表单中,接近度是一个重要指标,它将网页中呈现的信息按优先级排列。

3. 对称和秩序

对称是指两个元素呈现出镜像关系。它可以被看作是把一个物体一分为二的平衡。真实的对称图形包括等边三角形、圆形和正方形等几何图像。

人类的大脑会本能地渴望在面孔中找寻「平衡」和「对称」,这在美学上是令人愉悦的。大脑也倾向于在其他物体中找到对称,因为对称创造和谐,让观者在观看图像时感到舒适。

下面是 HvD Fonts 在网页设计中体现对称性的一个很好的案例:

这个页面不仅显示了典型的图形-背景关系,而且强调了对称性原则的运用。页面被分成四等份,字体大小和颜色相似。四个部分中的每个部分的背景都具有相同的主题色和灰度效果。你也可以注意到负空间不一定是白色的,黑色甚至其他的颜色也可以以图像作为背景。

对称性原则还可以衍生出了另一个概念:在网页设计中,不对称会使观感不佳,必须谨慎使用。许多网站使用不对称作为平衡间距的元素——非常规的正空间元素与中性的背景相互平衡,反之亦然。而 Xplode 的营销理念是不对称,Xplode 以独特的美观悦目的方式引发不对称。

这个网页利用视觉错觉和不对称,抓住了观者的眼球。作为正空间的物体被放置在一个不对称的布局之下,在负空间中创造了强烈的视觉吸引力。色彩是两个空间和谐的主要因素,并为观者创造了一种自然的联系。左边的图形也有很强的平衡性,而右边的则是带来更强的视觉吸引力。你觉得这个设计如何呢?

4. 相似性原理

相似性与接近性原理密切相关的原因,是相似分组对象之间共享属性的质量。无论是颜色、形状、形态、大小、方向或任何其他属性,当这些属性中的一个或多个在邻近对象中共享时,相似性将占上风。

即使正空间的元素看起来没有明显的联系,由于相似性原理,它们也会与负空间元素区分开。

看看这些 UrbanDecay 的商品列表:

虽然上面的商品各不相同,但在位置、色彩、产品布局、表现方式等方面却有一定的相似性。唯一不同的是左上角的眼影广告,在同类产品中独树一帜。这显然是一种营销策略,目的是在不损害页面整体对称和美观的情况下吸引注意力。这里要考虑的另一点是,尺寸上的相似性使其他图像与相似的产品类别区分开来。

除了产品展示之外,正空间可以与相似度结合使用,也可以与负空间结合使用。

让我们来看看 influenster 的着陆页:

上面例子中对齐的边框也运用了相似性原理。虽然每个正空间元素是不同的,但是相似的感觉是通过整个页面中一致的文本字段来传达的。风格、布局和主题都是相似的,因此带来了统一的视觉效果。

5. 封闭性原理

你是否曾经遇到过这样一幅画面,看上去是闭合的,但实际上是开放的?这是由于它采用封闭性原理。我们的大脑倾向于「脑补」不完整物体的空白,并利用我们的视觉感知来使图形完整化。

正空间和负空间一起构成一个整体。最好的案例就是负空间中隐藏的形状和形式,这要求对正空间中要传达的信息进行评估。在封闭空间创造性地使用着正负空间,可以产生有趣但简单的设计。

下面是 Magu Kambucha 的设计图:

在这个案例中,可以看到封闭性和图形-背景关系的平衡。瓶子和后面的粗体文字构成对比,背景则是和两者都构成对比的柔粉色。封闭性体现在哪里?看到瓶子后面的文字了吗?虽然你不能完全看到它,但仍然知道它是「Kambucha」。除了第一个「K」和最后一个「A」,其他字母都是半隐藏的,这些字母都是凭观者的直觉自动完成的,整个形式开始成形,意义也随之成形。

下面是 Cult 的截图:

即使文本没有写得很清楚,我们的头脑可以很容易地读到 CULT 这个词。即使单词不完整,文本的排列和对齐也可以使其易于辨认。

6. 连续性原理

最后,根据一般格式塔原则,连续性遵循模式,即引导实现遵循一致的路径,建立从一个对象到另一个对象的线性模式。

在上面的图片中,尽管圆形色块的颜色变淡了,但是观者更倾向于将中间的间隙其看作一条直线。这使我们相信连续性的原理比色彩的力量更能引导用户的视觉感知。当我们借助负空间在视觉元素中画出路径,我们的眼睛倾向于优先感知正负空间之间的界限。

脑补出来的这条连续的线条是我们在设计中更应该引入的视觉线索。

让我们来看看 Crypton Trading 网站中的视觉线索设计:

看到页面右半部分设计的完美延续了吗?不管背景的明暗色调如何变化,图案在页面上的变化都非常显著。当你向下滚动时,你会看到图案和颜色是如何以连续和无缝的运动变化的。在这里,色调的变化是可以忽略的,我们所看到的是一个连续的线和点的模式。

另一个很好的例子是 OscilloScope 网站:

该网站借用连续性法则,将网站用户引入到工作室的 360 度视角中,他们可以在导航中选择所需的子栏目。

影片《Cargo》的着陆页也使用了连续性法则:滚动式的导航,以线性运动的方式让文本漂浮在网站上。由于 LOGO 是垂直展现的,所以用户必须向下滚动才能看到它的全貌。当页面向下滚动时,静态 LOGO 开始与并行的文本块一起浮动。导航引导用户经历不同层次的体验,而不会干扰隐藏在下面的内容。

由于我们的眼睛通常遵循最平滑的路径,设计师可以使用这样的方式来创建引导路径。

总结

在这篇文章中,我们讨论了格式塔原则与网站 UI 的正负空间之间的关系。通过一些真实的案例,让大家清楚地知道如何运用简单有效的方法来改变设计的观感。关键是使用这些原理来设计的时候,可以达到 1 + 1 > 2 的效果。

人类是根据感知来思考的——主要是基于视觉。根据格式塔原理,我们倾向于看到更大的整体性图景,而不是第一眼看到的某一单个元素。

正负空间帮助我们区分、回忆、感知并识别理解。在格式塔原理的引导下,我们能够更好地在网页设计中利用不同元素来创造吸引人的作品。因为空间对于任何设计师来说都是一件复杂的事情,所以最好的方法就是保持格式塔原则的完整性。只有这样才能真正认识到空间在设计中的重要性、有效性,继而使自己成为网页设计领域的佼佼者。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

大厂怎么做设计?免费送你腾讯高级设计师自用的交互稿模板!

涛涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

作为交互设计师,天天画的就是交互稿了。而对于很多新手交互设计师以及想转行做交互的同学们来说,一定都非常想知道大厂的交互设计师画出来的交互稿具体是什么样子的。

但和视觉稿不同,交互稿里面体现了太多产品本身的逻辑,难免涉及到一些敏感内容,所以具体的交互稿不太适合直接分享,这就是比较尴尬的问题了。

不过,这不妨碍我为你们做一份交互稿模板。一来我自己也在用,二来可以帮助大家,何乐而不为。

但我必须重点强调一句话:框架是死的,人是活的,不一定要拘泥于某种形式,你可以根据自己的需要自由修改。

模版一:PPT  型的分页交互稿

第一个是 PPT 型的分页交互稿,这个样式最早是从腾讯 CDC 团队流传下来的,我在第二家公司的时候就从他们的博客中看到过,当时还用 InDesign 做过一个模板。而我现在所在的团队用的也是这个,因此我过来后就自己重新用 Sketch 做了一版,方便以后使用。

1. 封面

封面很简单,就是文档标题和作者,顶部有一个通用的文档标题栏,上面的内容包括:

  • 项目名称:阿尔法项目(示意)
  • 页面标题:iOS 主界面框架(示意,根据每页的内容进行变化)
  • 版本号:1.0(每修改一次都要 + 0.1,当然你也可以直接变成 2.0、3.0)
  • 修改日期:2018-07-24
  • 页码:分为当前页码和总页数

我在 Sketch 中为这个模板中需要改动的内容都定义了 Symbol,比如这个标题栏,你只要选中之后,就可以在右边的属性面板中自定义里面的内容。

2. 修订记录

修订记录这页,记录了从文档建立开始,每次更新的主要内容,以及相关人员,方便后期交接的时候给对应的产品经理、游戏策划和设计师查看。有时候交互稿更新一次只是修改一小处地方,如果不备注对方就会很难找到,可能以后你自己都会遗忘。

这一块我也定义了 Symbol 元件,你可以直接复制一行,然后修改里面的内容,「更新内容」的文本支持多行输入。

3. 目录

这种分页型的文档一定要有目录,备注好每个模块对应的页码,否则十几页看下来都晕了,每次想找到对应的界面还得重新翻一遍。

4. 内容页面

具体的内容页面才是交互稿的核心,一般会用小气泡和箭头进行标注,然后在右侧用对应的数字和它们对应,写下详细的交互说明。

结构可以有很多种,比如上面这种竖屏的界面可以是左右结构,如果是横屏界面还可以是上下结构等等,根据情况自由调整。文字段落的样式我已经定义好了,直接修改套用就行。

其中最重要的气泡我也做了元件,选中之后直接在右边修改数字即可。

5. 导出方式

使用这套模板做好交互稿后,使用 Sketch 的 File -> Export Artboards to PDF 即可将交互稿导出成 PDF 文档。我很喜欢这个格式,与 PPT 相比,PDF 在任何平台都可以通用,包括手机、Mac,不用特地装什么软件都能很好地打开。

模版二:长图型的流程交互稿

另一种是更常见的交互稿形式,这也是我这几年进腾讯后一直使用的格式。

如果你曾经用过上文介绍的 PPT 型模板,你一定会发现:它的好处是 PDF 分页格式非常整齐,比较适合一次性做一个大产品的交互功能介绍,而不适合小功能的频繁修改。

今天介绍的这第二种,则是更加轻便快捷的类型。

1. 内容模块

这种长图型的交互稿,优点很明显:

  • 发挥空间大,可以直接在一片空白上尽情地阐释每个界面、每个流程,展开说各种细节。
  • 分享和阅读都很方便,最终格式是一张 PNG 长图,能随手发给老板、产品经理和其他相关同事,电脑手机都能看。
  • 不存在分页和各种格式限制,所以画起来和修改起来都很快,小迭代要的就是效率。

来看一张基本样例:

它的结构分为:

交互稿标题、日期

按照项目、模块和功能的方式命名(如:电脑管家 V12 -清理垃圾-深度清理图标化改版),可以地规范交互稿名称,让其他人很容易理解交互稿涉及的是什么内容。

相关负责人

对应的产品经理,交互稿的作者,方便评审时或者交接后找人。

需求背景

简单介绍为什么要做这次设计,出发点是什么,遇到了什么问题。

主要界面

这次设计中,涉及到的所有主要界面,先陈列出来方便大家快速评审和讨论,视觉接手后可以根据这些来进行风格设计。

流程说明

有了主要界面后,我们还可能需要对一些操作流程进行说明,比如怎样发送一条语音消息,怎样删除一条会话等等。

异常状态

最后还要记得检查一下,每个界面在没有内容时的空状态、断网时的异常状态,弹出各种通知的位置等等,千万不要等到开发同学找你的时候才想起来。

上面所说的,就是一份交互稿的常见内容模块了。

2. 模板使用

该模板是专门给 Mac 平台的 Sketch 用的。

下载后(下载方式见文末),打开你会看到这个界面:

里面的每个模块我都做了 Symbol 元件,你只要选中就可以在右侧更改内容了。

比如下面的文档基本信息:

我还把可能会用到的各种字体大小、颜色、对齐方式都做成了文字样式:

选中文字后,在右侧下拉框中选择你要的样式就好。

交互稿用的都是黑白灰,还有蓝色作为标注。

我一直用的这几种,足够用。

是不是很心动?别着急,先把这个 Sketch 文件保存成 Template(模板)。

然后,你就可以在新建文件时,选择从模板处新建,直接用这个模板开始画稿。

源文件下载

下载链接:https://pan.baidu.com/s/1Jrv7-JDyf2j2SDvvg0-wrA

提取码:npq2

备用链接:https://pan.baidu.com/s/1yIMSWw7pJuHF4H3BgoyrPA

作者:WingST(寇敬),男,33岁,腾讯高级交互设计师、腾讯学院认证讲师,9 年工作经验的资深互联网人,曾任 MIG 桌面安全产品部轩辕设计组组长,目前在腾讯游戏 NEXT Studios 工作室负责《乐高无限》创造型沙盒游戏的用户体验设计。

负责过的产品有腾讯电脑管家 V11.0、加速小火箭 V2.0、腾讯手游助手、腾讯网游助手等。曾在 OPPO 手机、金蝶软件等企业工作,有着 PC、Web、移动端等多平台的丰富设计经验。

结语

感谢大家的阅读,末尾做个小广告,我的新书《交互思维:详解交互设计师技能树》马上就要上市了,这是我自己九年多来做交互设计师的经验总结,也是市面上第一本详细介绍交互设计师所应该掌握的职业技能的书,适合所有希望了解交互、学习交互的设计师和产品经理。同时书中也有我进腾讯的成长故事,以及一些个人工作和学习方法的分享,绝对物超所值 → https://item.jd.com/12576242.html

这是我所总结的「交互设计师技能树」。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

Vue中使用Axios拦截器

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

需求是拦截前端的网络请求和相应。
废话不多说,直接上干货。



我用的是vue-cli3所以这个config文件是我自己创建的。

先介绍env.js

//根据不同的环境更改不同的baseUrl
let baseUrl = '';
 
//开发环境下
if (process.env.NODE_ENV == 'development') {
    baseUrl = '';
 
} else if (process.env.NODE_ENV == 'production') {
    baseUrl = '生产地址';
}
 
export {
    baseUrl,//导出baseUrl
}
在这里我首先设置了开发环境和生产环境的地址,并向外抛出。

在看一下axios.js

import {
    baseUrl, //引入baseUrl
} from "../config/env";
import axios from 'axios';
import qs from 'qs';
//引入vuex的js文件
import vuex from '../src/store/index';
 
// 创建 axios 实例
let service = axios.create({
    baseUrl: baseUrl,//请求前缀
    timeout: 20000,  // 请求超时时间
    crossDomain: true,//设置cross跨域
    withCredentials: true//设置cross跨域 并设置访问权限 允许跨域携带cookie信息
})
 
// 设置 post 默认 Content-Type
service.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
 
// 添加请求拦截器
service.interceptors.request.use(
 
    (config) => {
        // console.log()
        //下面的代码是如何在拦截器中调用vuex管理状态。
        //我这里主要是做了一个蒙层的遮盖
        // vuex.$store.commit('OPEN_LOADING');
 
 
        //判断请求方式是否为POST,进行转换格式
        config.method === 'post'
            ? config.data = qs.stringify({...config.data})
            : config.params = {...config.params};
        // 请求发送前进行处理
        return config
    },
    (error) => {
        // 请求错误处理
        return Promise.reject(error)
    }
)
 
// 添加响应拦截器
service.interceptors.response.use(
    (response) => {
        let { data } = response;
        return data
    },
    (error) => {
        let info = {},
            { status, statusText, data } = error.response
 
        if (!error.response) {
            info = {
                code: 5000,
                msg: 'Network Error'
            }
        } else {
            // 此处整理错误信息格式
            info = {
                code: status,
                data: data,
                msg: statusText
            }
        }
    }
)
 
/**
 * 向外抛出service
 */
export default service
最后将这个axios.js文件引入main.js中,并将引入的axios挂载到Vue实例上就ok了。

完美!如有不对的地方还请各位大佬指点,万分感谢。

踩过的坑:

    怎么在axios拦截器中使用vuex,首先我们要引入vuex的js文件,然后就可以用了,就这么简单。


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

2019草莓音乐节的主视觉设计太赞了!

用心设计

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

 

2019草莓音乐节的主题是“循环世界Circular World”。

摩登天空联合世界自然基金会(WWF)发起今年的音乐节主题“循环世界”,以环保为核心理念,携手海内外环保机构对草莓音乐节进行多方位环保实践,并聚合知乎、摩拜等多平台力量影响年轻人,让环保成为青年生活方式的一部分。

今年的主视觉海元素是被三个箭头环绕的草莓星球,表达了“循环世界”的主题。风格延续了去年的样式,色彩略有调整,并加入了太空元素。

今年的主视觉当然仍由摩登天空的当家工作室——MVM design label_工作室操刀。

这张是今年的主视觉海报。今年,MVM特地为各城市举办的2019草莓音乐节单独设计了专门的海报,一样的版式,不一样的内容,既统一又包含新意。

2019草莓音乐节武汉站

2019草莓音乐节成都站

2019草莓音乐节西安站

2019草莓音乐节上海站

2019草莓音乐节长沙站

在今年3月30日的“地球一小时”公益活动中,草莓音乐节把自己的参与定义为“草莓星球一小时”。

而武汉OYO酒店与摩登天空联合主办的活动中,一张以“音乐满房”为主题的插画也分外有趣——原来大家为了迎接音乐节,都关上门在房间里引吭高歌呀…

音乐节配套周边产品的销售,推广视觉设计也很有意思。

即使不是音乐迷,设计师对这样的设计也无法抗拒吧!

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计

B端产品 — 浅谈Atlas设计思路

涛涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

今天分享一款运维相关的B端产品,主要阐述自身的设计思路及产品的优化过程。

B端产品功能聚焦、讲究效能,对产品链路有着高流畅度与率的诉求。设计师在做B端产品的的时候要有全链路和小白用户视角,以体验及效率为先,我们需要协调全局一致性,遵循产品链路,在视觉上减少对于用户的负担和干扰,避免打断用户的使用流程,确保流畅、优质的用户体验。

在产品优化上,我们在每个版本迭代后,会对用户进行访谈及收集意见反馈,建议设计师可以制定一套自有的用户调研方式去了解用户的想法和自己产品的不足之处,这样的好处是可以让用户帮助你优化产品。

在产品的细节上我们可以深度地去挖掘和尝试更好更优的设计方式,对设计师来说打磨和优化每一个细节正是B端产品的魅力所在。

请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图请登录并验证邮箱后查看原图

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

Vue 全局变量,局部变量

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

全局组件和局部组件
* 1.先定义组件   Vue.component('组件名', { 组件模板对象 })
*   注意: 组件名不要使用原生的标签名, 若组件名定义时用的是驼峰命名法, 则调用时用中划线分割后小写
*                       例如: 组件-->mtText   使用时-->   <my-text></my-text>
* 2.配置组件的模板  注意: 组件的模板内容有且只有一个根元素
* 3.在视图层里调用 ,用双标签
* 4.组件是一个独立的作用域, 也可以看成一个特殊的vue实例, 可以有data, methods,computed等等
*   注意: 组件的data是函数, 函数中需要返回一个对象作为组件的data
全局组件案例

<body>
<div id="app">
    <my-component></my-component>
</div>
<script src="lib/vue-2.4.0.js"></script>
<script>
//全局组件
    Vue.component('myComponent',{
        //1.组件的内容/模板
        template: '<div><div>头部组件</div><h1 @click="fn">呵呵{{msg}}</h1></div>',
        data(){
            return {
                msg:'hello,组件'
            }
        },
        methods:{
            fn(){
                console.log(this.msg);
            }
        }
    })
    let vm = new Vue({
        el:"#app",
        data:{
        },
        methods:{

        },

    })
</script>
</body>
局部组件案例

<body>
<div id="app">
    <my-component></my-component>
    <my-test></my-test>
</div>
<template id="box1">
    <h1>haha</h1>
</template>
<template id="box2">
    <div>
        <ul>
            <li v-for="item in arr">
                {{ item }}
            </li>
        </ul>
    </div>
</template>
<script src="lib/vue-2.4.0.js"></script>
<script>
let vm = new Vue({
        el:"#app",
        data:{
        },
        methods:{

        },
        //局部子组件
        components:{
            // 组件名: {配置项}
            "myComponent":{
                template:'#box1',
                data(){
                    return {
                        msg:"哈哈"
                    }
                }
            },
            "myTest":{
                template:"#box2",
                data(){
                    return {
                        arr:[1,2,3,4]
                    }
                }
            }
        }
    })
</script>
</body>
组件切换:法一

<body>
<div id="app">
    <a href="" @click.prevent="flag=true">登录</a>
    <a href="" @click.prevent="flag=false">注册</a>
    <login v-if="flag"></login>
    <register v-else="flag"></register>
</div>
<script src="lib/vue-2.4.0.js"></script>
<script>
    Vue.component("login",{
        template:"<h1>登录组件</h1>"
    })
    Vue.component("register",{
        template:"<h1>注册组件</h1>"
    })
    let vm = new Vue({
        el:"#app",
        data:{
            flag: false
        },
        methods:{
        },
    })
</script>
</body>
组件切换:法二

 <style>
        .red{
            color:red;
        }
        .v-enter{
            opacity:0;
            transform: translateX(150px);
        }
        .v-leave-to{
            opacity:0;
            transform: translateX(-150px);
        }
        .v-enter-active,
        .v-leave-active{
            transition: all 0.5s;
            position: absolute;
        }
    </style>
</head>
<body>
<div id="app">
    <a href="" :class="{red: flag=='login'}" @click.prevent="flag='login'">登录</a>
    <a href="" :class="{red: flag=='register'}" @click.prevent="flag='register'">注册</a>
    <!--  vue提供了一个标签  component标签(理解为一个占位符), 用来展示对应名称的组件  :is属性设置指定的组件名  -->
    <transition>
        <component :is="flag"></component>
    </transition>
</div>
<script src="lib/vue-2.4.0.js"></script>
<script>
    Vue.component("login",{
        template:"<h1>登录组件</h1>"
    })
    Vue.component("register",{
        template:"<h1>注册组件</h1>"
    })
    let vm = new Vue({
        el:"#app",
        data:{
            flag: "login"
        },
        methods:{

        },
    })
</script>
</body>
父组件向子组件传值

<body>
<div id="app">
    <my-component :fromfather="father"></my-component>
</div>
<template id="box1">
    <h1 @click="change">
        {{ fromfather }}
        子组件的数据
    </h1>
</template>
<template id="grandSon">
    <h1>孙子组件的数据</h1>
</template>
<!--1.子组件不能访问父组件的数据
2. 解决办法: ①在引用子组件时, 通过属性绑定 v-bind方法, 把需要传递给子组件的数据以绑定的形式传过来
              ② 在子组件配置项里添加 props: ['传递过来的数据']-->
<script src="lib/vue-2.4.0.js"></script>
<script>
    let vm = new Vue({
        el:"#app",
        data:{
            father:'啊~~这是父组件的数据'
        },
        methods:{
        },
        //局部子组件
        components:{
            // 组件名: {配置项}
            "myComponent":{
                template:'#box1',
                data(){
                    return {
                        msg:"哈哈"
                    }
                },
                //在子组件配置项里添加 props: ['传递过来的数据']
                //注意: 组件中所有的props中的数据, 都是通过父组件传递给子组件的, props中的数据是只读, 无法修改
                props:['fromfather'],
                methods:{
                    change(){
                       // this.fromfather = "被修改了"
                    }
                },
                //局部子子组件
                components:{
                    'grandSon':{
                        template:'#grandSon'
                    }
                }
            }
        }
    })
</script>
</body>
蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

干货来袭!淘宝设计师谈动效的设计与交付

用心设计

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

 

在手机淘宝中,大至链路的衔接,小至一个按钮的点击响应,动效是体验无处不在的润滑剂,为用户每一步的操作提供了合理的预期与过渡。而通过动效衔接不同界面或不同响应状态,无论对流畅直观地表达流程意图,还是精雕细琢让体验更丝滑的微动效,动效设计都是淘宝设计师日常工作中非常重要的一环。

动效是体验链路散点间的“领路人”

针对项目不同阶段、不同使用需要,针对性地选用的工具,辅以便于理解的交付方式,是设计和落地环节沟通提效的关键。

相比提及动效首先都会想到的巨无霸AE而言,Flinto、Principle、Kite、Adobe XD等许多专门为体验设计量身打造的轻量级工具,更聚焦在互联网产品设计的高频功能上,多数工具都能快速输出视频或GIF,以及在移动端上进行实际的交互体验。

为体验设计量身打造的轻量级工具

这些工具在原型和动效快速表达方面独特的敏捷、的优势,让它们逐渐成为迭代频繁的国内互联网行业许多设计团队的新宠。

上述工具的核心功能都比较接近,各有千秋,差异多在于时间与属性之间关联的展现形式上,这里不做过多展开,也不做任何孰优孰劣的判断。毕竟工具只是兵器,提起趁手的兵器快刀斩乱麻,才是设计功力的体现。

本文将结合手机淘宝的动效设计实际案例,介绍淘宝设计师们在项目过程中进行动效设计、并与开发沟通的经验。

针对不同阶段,选把趁手的兵器

淘宝这样的大型应用中,任意提及一个细分链路都颇具复杂度,每个场景或大或小的版本迭代背后,都是设计师从交互流程设计、具体界面的视觉设计,再到最终交付落地,经历层层评审和修改完善的过程。

产品设计的2大不同阶段

那么在不同阶段,选用怎样的工具更符合我们对“”的追求?下面将按阶段拆分问题,分别进行分析:

1、广义的动效:流程Demo设计阶段

产品流程、交互行为的设计与串联,无论是作为可以实际体验的可交互原型,还是纯用作展示,实际上也是一种最基础的广义动效。

曾几何时,交互流程的设计输出物是用流程箭头清晰标注每个控件交互行为的交互稿。

但在淘宝内各子产品“小步快跑”的版本迭代极度频繁,每天提案、评审这类快速碰撞不断的情况下,即使经过了合理的流程拆解、耦合度不是非常高的交互稿,对设计师而言改动返工量依然巨大。

更何况无论业务方还是设计内部评审时,其实没有人有时间仔细阅读你精心撰写的交互说明。

只适合在交付开发阶段采用的静态交互文档

(鞋类测码功能为例)

因此,这类交互稿如今最大的用途只在交付开发的环节。在快速碰撞方案的阶段,通过轻量级的动效工具迅速产出可交互原型是目前团队内更同行的做法。在评审中直接演示,可以帮助团队成员更好地对方案实际效果有一个更直观的体验。

在流程设计阶段,Flinto是一个非常好用的工具。同为体验设计专属的轻量级设计软件,Flinto和Principle有很多共通之处,也经常被一起比较,但底层思路都是通过定义元素的各项属性变化来实现过渡。不过,两者在定义方式上却有比较大的不同,简单概括来说,Flinto是通过元素的附加事件,而Principle则是通过不同画板间的属性差。

Flinto更擅长流程级表达

这点上的不同,决定了Flinto优势在于流程级表达,而Principle更擅长界面级(或很短的流程级)交互细节表达。

以分享宝贝、邀请好友出主意的“帮我选”功能中的新建清单流程为例:

「帮我选」新建清单流程Demo

流程对应的Flinto实现方式如下:

「帮我选」新建清单流程对应的Flinto工程文件

产出流程Demo时,只需要表达基本的页面结构与跳转关系即可。转场无需表达得很准确,以不引起误解为原则即可,时间有限的情况下,最简单的处理方式就是统一用渐隐渐现。

各种与页面滚动位置有关的动效也暂时不用表达,例如下滑时顶栏的状态过渡。同样,也完全没有必要让每个元素都可点击,这些交互细节以及分支用例,都更建议在交付开发阶段通过交互说明表达,寥寥数语可能就足够准确传达了。

与页面滚动位置联动的动效,可以在界面级设计中细化

2、微交互动效:界面级设计阶段

当产品流程确定后,进入界面级设计阶段,就轮到对局部微动效逐一进行细化。

对不涉及位置联动的交互动效而言,在Flinto和Principle中的制作成本相差无几。例如纯粹由点击触发的事件:

不涉及位置联动的动效

但对于涉及位置联动的动效,Principle就比Flinto的表现优秀很多了。

Principle更擅长界面级动效表达

Principle中,时间轴和位置联动的设置比Flinto自由度更高,可以快速进行精细的设计和调整。例如在页面上滑过程中,导航栏跟随手指上滑动作而上移隐藏的动效:

导航栏随手指上滑动作而上移隐藏

下面是一些来自淘宝近年已上线项目有趣的动效示例:

案例一:手机淘宝导购产品“有好货”的商品列表中,会穿插视频及知识内容,在这些特殊内容滑动到用户视线中时会动态扩展,将内容自身特点完全呈现。注意,这些动效只能应用在特殊内容数量少、质量高的场景,否则会过于干扰。

视频形态扩展动效

知识形态扩展动效

案例二:用户在手淘中关注某个频道后,手淘首页会提供进入该频道的快捷入口,这个逻辑通过文案很难清晰的表达,因而采用了直观的动效呈现。

关注频道后的提示

实际项目中的动效产出方法

上文分别介绍了流程级和界面级动效的设计建议,那么在实际项目设计中,我们需要有什么样的产出呢?

依据设计稿所起的作用,大致分为3种:

3个阶段的不同产出物

1、用于实操的demo:根据自己所希望表达的侧重点(流程还是细节?)选用一种工具完成全部设计;

2、用于演示的视频:可以同时使用两种工具完成不同部分的设计,分别录制视频再合并;

3、用于开发的方案:对需要动态呈现的部分单独提供动效设计稿及说明等产出物,然后再将所有设计以Keynote等载体整合起来。

手淘在动效设计过程中,也摸索出了一套便于与开发同学沟通、最优最快实现设计效果的设计产出方法。产出物包括2部分:

1、效果演示demo和视频:使开发同学快速了解设计效果;以宝贝详情主图的扩容与评价联动气泡为例:

效果演示和视频

2、动效参数文档:将自己在设计动效时所设置的全部参数,翻译为开发可以轻松读懂的图形表达方式。对于比较复杂的动效,虽在撰写文档时会多花一些功夫,但能够让开发一次性还原出理想的设计效果,免去后期反复沟通修改的麻烦。

下面以手机淘宝首页的2018年双11主会场入口为例,说明动效设计的输出方式。

我们选用Principle制作了所有动效,整体效果如下:

手机淘宝首页的2018年双11主会场入口

可以看出,动效包含以下几个部分:

1、主会场入口背景图旋转

2、主会场商品图及按钮出现

3、“立即抢购”按钮文案切换

我们要分别输出以上3部分的视频示意以及具体的动效参数。以其中相对复杂的第2部分“主会场商品图的出现和切换”为例,提供给开发的视频如下。注意在这个案例中,因为开发是针对图形元素的容器来编写动效,所以我们需要将图形抽象为容器。

经抽象为图形元素容器的交付版本

同时需要提供给开发的是动效参数。下图是我们使用的参数图形化表达方式,纵向为各个元素,横向为动效时间轴。

动效参数产出物

实际上,各位同学也可以根据自己的实际情况来绘制,原则是清晰明确即可。

结语

从合理的工具选型,到严谨清晰的文档交付,技法层面的干货就写到这里。文章的最后,笔者想谈的是互联网产品中动效初心。

动效并非炫技的手段,而是实实在在用于衔接用户在各个体验散点之间的润滑剂,符合用户心理预期、不打扰用户,甚至让用户几乎无所察觉的动效,才是真正优秀的动效。

许多创意网站上初见确实惊艳的动效,如果在用户实际使用中过度使用,轻则有拖沓之感,重则引起焦躁。这一原则对于旨在让用户“买买买”更的淘宝而言,尤为重要。

动效技法只是基本功,在“不打扰”中体现同理心和精巧的构思,是动效设计更重要的导向。重剑无锋,大巧不工,与所有Motion designers共勉。

 

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计

看太多网上的灵感创意素材,也是一种设计时代病?

涛涛

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

互联网让全世界都无线互联,大家可以无视距离随时浏览世界另外一头的设计师所上传的设计作品。无论是 Dribbble、Behance、Pinterest 还是国内的各大社交媒体,想浏览别人作品获取灵感,几乎是0成本的事情。那么这样做对于做设计、激发灵感进行创造,真的有好处吗?它所引发的抄袭的问题,其实是最现实可见的,对此,昨天所发布的文章《如何界定借鉴和抄袭?看这7位设计大咖怎么说!》里,7位来自世界各地的设计师,已经对此发表了看法,而今天的文章里,99U 邀请了三位顶尖的创意人,阐述他们如何看待这种设计师中的「时代病」。

不断上网浏览别人的作品这种「灵感时代病」对于做设计激发创意而言,到底有哪些利弊?在的设计辩论中,Nadine Kolodziey、Thomas Kronbichler 和 Polina Joffe 对无休止的灵感素材的视觉进行了权衡分析。

插画师 Nadine Kolodziey

过于关注在线设计灵感类素材,会让设计思路趋于千篇一律,扼杀创意。这就是为什么我们必须明智地管理我们的个人信息流。——插画师 Nadine Kolodziey

我们每时每刻都在上网,这意味着我们将会不断地接触到各种各样的视觉刺激。

如果你总是在公交车上或休息时关注别人的设计作品,那么你就会不自觉地把它融入到自己的作品中。很快你就会意识到:「糟了,我刚刚做了一些看起来和其他人完全一样的东西。」你会发现,你在不断地复制和重复别人的东西,尽管可能一开始是下意识的,但最终你会成为潮流的一部分。你忽略了你个人独特的视角,别人的作品开始影响你的判断和直觉。

而属于你自己的那部分最独特的东西,才是最有力道的。

我完全理解为什么人们想成为潮流的一部分。客户可能想要一些入时的东西——在特定的圈子里以特定的方式行事,这样做是有所帮助的。但最终这种做法所带来的同质化,对双方的发展都会有所制约。插画师在他们的作品中没有个性,所有的客户都在购买类似的风格——这意味着他们的品牌缺乏独特性。

如果你想获得灵感,看其他的创意作品并不是最好的选择。

看看其他的设计作品固然重要,这可以让你紧跟行业发展步伐,但是要适度。如果你想获得灵感,看其他的创意作品并不是最好的选择。当我在网上关注其他插画家的作品时,我个人很难受到启发。我已经使用 Instagram 两年半了。起初我总是看其他插画家的作品,这是我的本职工作,我热爱插画。但后来我发现,这阻碍了我的创作潜力。

我开始注意到我的配色方案与其他人的相似。我注意到,看其他的作品降低了自己尝试新事物所需的勇气。当我看到另一位插画家的作品时,我不可能洞悉他的创作潜力。当我在模仿他人的时候,我不可能有属于自己的独特创造力。

但是这个问题并非是无解的。解决之道就在于有选择地关注。看同事的作品和看一般的图片是有区别的。我对线上的灵感素材很感兴趣,但是我更多地将这些素材视作为一个个「小贴士」,因此我注重于管理我的社交媒体所关注的账号。我不再关注 Instagram 上的其他插画家,而是关注那些在审美上吸引人的内容。例如,我将关注那些收集不同寻常的石头的人,或者为摆放得精美的和风食物拍照的人。

我特别喜欢「I’m Google」这个账号,它不是按主题而是按视觉来排列图片。当我看到这样的图片时,尤其是当我开始着手准备新项目的时候,它们会立即在我的脑海中激发出新的概念和全新的思路。这些资源成为我的灵感来源:当我滚动鼠标时,我将看到来自外太空的岩石图像,它的形状将启发我如何安排构图。

创意总监 Thomas Kronbichler

线上灵感素材固然可以鼓励国际交流和对话,但问题出现在这些图像在传播的时候脱离了相关语境。——Thomas Kronbichler Mut工作室的创始人 创意总监

在 Mut 工作室,我们是当之无愧的互联网拥簇,我们从不害怕灵感素材过载这种问题。我们是阿尔卑斯山脉中部一个叫做海蒂·兰德小镇上的一个小工作室,互联网不仅为我们提供了来自世界各地令人叹服的灵感,而且提供了一个展示自己作品的平台,这在10年前是不可想象的。

正是因为图片可以在网上广泛地传播,我们才能让欧洲和美国的用户看到我们的作品。由于有了在线订阅和社交媒体,平面设计社区现才有了如今繁荣的模样。当然,这也有负面影响,很多人说如今平面设计在审美上变得太相似了。但积极的一面是,现在有更多的平面设计作品涌现出来。任何地方的人都可以进入这个行业而不再受到地域的限制,平面设计行业变得更具包容性。例如,欧洲各地的小镇上都会有人在尝试更疯狂的创作,我们能透过网络在不同的地方跟进观察,支持彼此。丰富的网络灵感图片的流通,最终有利于平面设计作为一种艺术形式而广泛存在。

我并不是受到某张特定的图片启发,而是在听设计师讲述设计思路的过程中获益良多。

问题是对此互联网并没有过多关注。一些博客和自媒体上并没有关于图片来源的解释。为朋友设计的项目和为大公司做的项目都在同一个空间中流通,这很有趣,但同时也弱化了应有的差异化和环境。

作品背后的故事,以及设计过程中各种问题的解决过程,才是真正重要的内容。我并不会受到某张特定图片的启发,而是在听设计师讲述设计思路的过程中获益良多。了解设计师的独特理念,则更有可能启发我,我对设计师处理客户关系的部分也很感兴趣。当然,这一切是不能用一张简单的图像来进行概括的。

我已经不再浏览 Tumblr 和 Pinterest,因为我最感兴趣的点,是了解一个问题是如何解决的。最终,我在设计师会议上发言的视频实录中获得了最多的灵感。听设计师们讲述作品诞生的过程是最令人振奋的。我从一个人如何构建一个项目,以及如何实现它的过程中学到了很多。我喜欢听他们谈论客户关系,讲述他们遇到的困难以及如何克服它们。确切地说,更能鼓舞人心的是设计态度和思维方式。

在阿尔卑斯山的工作室中足不出户,我就可以看 Michael 所有的视频。

例如,就在上周,我狂看了所有 Michael Bierut 在线演讲的视频。我喜欢他展示作品的方式,喜欢他大方地和别人分享成果,我钦佩的是他的工作态度。在阿尔卑斯山的工作室中足不出户,我就可以看遍迈克尔所有的演讲视频,这简直太棒了。

艺术总监 Polina Joffe

对正在发生的事情有所知觉是非常重要的,而上网获取灵感会简化这个过程。——Polina Joffe,艺术总监和平面设计师

如果你知道别人在做什么,你可以选择参与其中,也可以选择拒绝。而形成自己的观点并做出明智决策的前提是你足够了解。

我一直在关注其他人在网上会做什么,我也会在博客和社交媒体上上传一些实用的干货。当涉及到具体的项目时,我会做具体的项目研究。我们会从互联网上获得大量的灵感,这使得研究阶段变得非常简单和。我经常会想起设计师们以前在社交媒体上使用过的概念和想法,然后我会把这些想法和我自己的想法进行重新转化,组合并且更新,这样它们就可以运用在我的设计大纲中了。

浏览在线灵感素材,然后它们会形成属于我自己的一个巨大的视觉词典,里面有我脑海中所有的概念和方法,每当我开始一项新的任务时,我都可以沉浸其中。

我们经常谈论来自内心的创造力,但我不确信我是否真的要相信这一点。万物皆有源头。

我最近为泰特伦敦美术馆的教育团队做了一个项目。这个项目是针对年轻人的。首先,如果你的目标受众是年轻人,了解年轻人都在做什么是很重要的事情了,因为这些信息很有参考价值。你需要运用观众能够理解的视觉语言。在项目的研究阶段,我看了其他设计师是如何处理和学习这些属于年轻人的理念的。最初我想用笔记本和活页夹做点什么。然后我想起了我在网上看到的那些用活页夹或记事本纸做的项目,然后我回去重新又看了一遍,看了其他人如何处理类似的主题,由此激发了我的新想法。

我们经常谈论来自内心的创造力,但我不确信我是否真的要相信这一点。万物皆有源头。我认为创造力通常是学习前人如何混搭各种想法,然后自己进行特定的调整组合,二次创造。

诚然,视觉交流的发展是一部复制、更新、转移的历史。但重复别人已经做了太多遍的东西,并使用类似的元素来直接窃取它们是有危险的。当你在做研究获取灵感时,你必须通过多种方式参考海量的资源。如果我们能妥善地使用现有的大量图像,就能鼓励创新,跟上时代发展的步伐。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

玩转javascript异步编程

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

一般知道,js脚步语言的执行环境是单线程的,就是它会等一个任务完成,才会进行第二个任务,然后一直向下进行,这样的执行环境简单,但是处理不了复杂的运用,当一个请求需要非常旧的时间的时候,下一个流程就会被搁浅,如果长时间得不到反馈,进程就这样的奔溃了。

为了解决这个硬性需求,Javascript语言提出了二种语言模式: 同步(Synchronous)和 异步 (Asynchronous)。

异步的几种常用方法

回调函数

订阅和发布模式

Promise

generator

async/await

回调函数方法

通过把一个函数(callback)作为参数传入另一个函数,当满足一定条件的时候,就执行callback函数。

用法:

640?wx_fmt=jpeg

通过回调函数的方式处理异步,是在异步早期的情况,其中jquery中的很多都是通过callback来实现回调的。但是这种模式代码编写比较耦合,不利于代码维护。

发布订阅模式

pub/sub模式是js设计模式中的一种,本身是借鉴于java的模式,但是在处理异步处理的时候非常有作用。通过一个信息中心EventCenter 来处理的监听(on)和触发(triggle)。

640?wx_fmt=jpeg

通过pub/sub模式,我们可以在信息中心清楚的看到有多少信号来源,方便的集中管理,更加方便于模块化的管理,但是如果整个项目都使用pub/sub模式的话,流程就变得不太清晰了,数据的得到和数据的处理分开,对于后期的维护也是一个很大的问题。

Promise

Promise构造函数成为承诺,它分为三种状态resolve, reject, pending ,一旦状态从pending改为其它2个状态之后,就不能修改了,就一个承诺一样。

Promise接收2个参数resolve , reject,分别表示成功后执行和失败后执行,可以通过实例的then()方法传递对于的函数。

640?wx_fmt=jpeg

这里看了之后,你可能会说,这个和异步处理有什么联系吗?你思考一下,当一个异步操作后,我们可以不去管它什么时候结束,什么时候出错,就像一个人承诺了,我只需要按照他的承诺去当这个事情已经被处理好了,是不是方便很多,下面直接上手一个例子。

640?wx_fmt=jpeg

我完全不用担心它里面怎么实现了,反正它已经承诺了会给我结果,我只需要通过then()方法去接受,我需要得到的值就可以了。

Promise.resolve(value) value可以是三种值

单个值

一个promsie实例

一个thenable对象

Promise.resolve(value).then((value) => {})

处理一个请求依赖另一个请求的情况

如果一个请求的结果是下一个请求的参数,如果我们使用原始的请求方法,就是出现一个像右的箭头的回调地狱。

一层层嵌套,非常的恐怖,不利于维护。那么通过prmise怎么处理回调地狱呢?

640?wx_fmt=jpeg

上面处理回调地狱是不是看着方便很多,代码也简单命令,依赖性也很强,后面我们会继续通过async/await继续简化。

处理多个请求并发的情况(不需要管服务器的返回顺序)

Promise.all(arr) 接受一个promise实例的数组,可以并发多个请求给服务器,但是并不能保证接受到的先后顺序,这个取决于服务器的处理速度。

640?wx_fmt=jpeg

处理多个请求并发,并且需要保证返回数据的顺序(运用场景比较少)

上面一个方法并不会保证请求返回的结果,按照你发送的顺序返回,如果我想把完整的响应的结果按照我

希望的顺序返回给我,那应该怎么办呢?

640?wx_fmt=jpeg

这样,会等待每一个请求完成后,并把得到的数据push到totalData中,就可以按照顺序得到我们想要的值了。当然使用async/await会更加的方便。之后我们会讲解。

generator构造器

generator是一个构造器,generator函数执行并不会执行函数体内部部分,而是返回一个构造器对象,通过构造器对象的next()方法调用函数主体,并且每当遇到yield都会暂停执行,并返回一个对象。

640?wx_fmt=jpeg

注意yield本身是不会反悔内容的,只是给构造器对象返回了内容,如果想yield表达式也返回内容,可以通过给下一个next()传递参数。

640?wx_fmt=jpeg

通过next()传递参数,我们可以做到值向内部传递,对于后面的异步处理很有帮助。

generator异步运用

利用构造器的暂停和继续的功能,我们可以很好的处理异步请求,得到数据后再进行其他内容。主要是运用yield表达式返回一个promise对象的原理。

640?wx_fmt=jpeg

这样我们就得到了接口请求的数据,相比于之前的promise函数的书写是不是要简单很多。和同步是一样的操作。

如果我们想内部对得到的数据进行进一步的处理呢?

640?wx_fmt=jpeg

简单的co模块处理generator多个函数请求

从上面我的调用方法就可以看出,利用Promise + generator的异步处理不断地通过then()方法处理数据。有没有一个方式是我可以直接运行一个函数,然后就可以得到我想要的值。 例如:

640?wx_fmt=jpeg

网上已经封装了很多的方法,例如常见的run库,co函数就是来处理这样的处理方式。但是当我们发送多个请求的时候,可能你会这样写:

640?wx_fmt=jpeg

这样写是会发送请求,但是并不是并发多个请求,而是等第一个请求p1之后,再进行第二个请求p2,在性能优化方面是不利的,也不符合我们的要求,怎么做到2个请求是独立的,并且我们还可以通过得到2个请求的结果后,进行其他请求。或许我们可以这样:

640?wx_fmt=jpeg

这样写是不是和我们之前写的Promise.all()很像?所以还可以改成这样的:

640?wx_fmt=jpeg

async/await异步处理

ES7出现了async/await进行异步的处理,使得异步操作就像同步代码一样简单,方便了使用,由于async/await内部封装了generator的 处理,所有就很少有人用generator来处理异步了,但是在异步的推动中generator起到了很大的作用。

await: 后面接受一个promise实例

**async: 返回一个promise对象 **

一个简单的异步请求

640?wx_fmt=jpeg

上面的例子是不是和generator中的异步请求很像?可以像同步一样的编写代码,但是相比generator,await后面加上promise后直接返回相应的数据,不像yield还需要从外部传入。

处理多个请求并发的情况(不需要管服务器的返回顺序)

用async/await处理多个请求并发,由于await后面需要添加Promise实例,是不是脑袋里面一下子就想到了一个Promise.all()

640?wx_fmt=jpeg

你可能会很好奇,为什么不需要像generator那样通过额外的函数来调用,因为async已经帮你想好了,内部已经调用了,是不是很爽?

处理多个请求并发,并且需要保证返回数据的顺序(运用场景比较少)

如果数据中没有相互的联系,但是又想一个个发送,可以这样

640?wx_fmt=jpeg


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

UX七大黄金定律在UI中的运用

用心设计

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

 

好的UI设计师应该是理论结合实践,好的理论是指导实践,所以今天我带来了这一篇文章。讲讲什么是黄金ux七大定律以及它们如何在UI中的运用。

1、费兹定律

费兹定律(fitts’law) 是心理学家 paul fitts 所提出的人机界面设计法则,主页定义了游标移动到目标之间的距离,目标的大小和所花费的时间之间的关系。

定律内容是从一个起始位置移动到一个最终目标所需的时间由两个参数来决定,到目标的距离和目标的大小

用数学公式表示为 时间T=a+blog2(D/W+1)

用这张图来说明,当d(起始点到目标之间的距离)越长,使用者所花费的时间越多;而当w(目标物平行于运动轨迹的长度)越长,则花费的时间越少,使用的效能也比较好。

我们来看新浪微博的转发功能,因为随着功能的复杂性,转发功能包含了下一层级三个子功能,分别为快转,转发,分享。这个转发icon一触发,在很近的距离,3个点击目标也设计的很大这样容易很快的操作,利用费兹定律,提升了用户的效能。

2、席克定律

当你走近一家餐厅,你看着琳琅满目的菜品是不是无从下手。在生活日常中你会对各种各样的选择而困扰,其实有时候不是你的问题,而是对方给予你的选择太多。

Hick’s Law (席克定律)中说道:“一个人面临的选择(n)越多,所花费做出决定的时间(T)就越长。

用数学公式表达为 RT=a+b log2(N)

  • RT:反应所需时间
  • a:与做决定无关的花费时间(阅读,操纵花费的时间)
  • b:根据对选项认识的处理时间
  • n:具有可能性的相似答案总数

划重点

当选择增加时,我们做决定的时间就会相应增加

如果在你的服务,产品中“时间就是关键”,应该将做决定的选项减少到最少,以减少所需反应的时间,降低犯错的概率。也可以对选项进行同类分类和多层次分布,提高用户的使用效果。

3、奥卡姆剃刀原则

奥卡姆剃刀原则也被称为:“简单有效原理“,由14世纪哲学家,圣方济修士奥卡姆.威廉(William ofOccam)提出。这个原理告诫人们“不要浪费较多东西去做用较少东西也可以做好的事情。”笔者认为和后来包豪斯密斯.凡德罗提出的:“少就是多”有异曲同工之妙。

一个简洁的网站能让用户快速找到他们所找到的东西,当你在销售产品时候尤为关键。如果你的网站充斥着很多无关紧要的东西。比如小弹窗,无用链接。用户会因为不能快速找到自己想要的东西而关闭网站。

合理的使用奥卡姆剃刀原则,能更好的传达你想要表达的内容,更容易吸引广告投放者,给访客带来更好的用户体验。

4、泰思勒定律

泰思勒定律又被称为:“复杂不灭定律”

中心思想是:“每一个程序都有必然有其与生俱来,无法缩减的复杂度,唯一的问题,就是谁来处理它。”

泰思勒定律定律认为每个过程都有其固有的复杂性,存在一个临界点,超过这个点过程就不能再简化了,你只能将固有的复杂性从一个地方移动到另外一个地方。

从手机的演变过程来看,智能手机简化了物理操作按键,通过技术手段降低了手机操作的复杂度,尤其是复杂的交互手势操作,杂度的降低是通过大量的技术和资金投入解决,体现了复杂守恒定律。

5、神奇数字7±法则

1956年乔治米勒对短时间记忆能力进行了定量研究,他发现人类大脑最好的状态能记忆含有7(±2)项信息块,在记忆里5-9项信息后人的大脑后开始出错。

6、防错法则

防错原则是通过设计来将过失降低到最小化。该原则及时地告诉用户哪里操作错了。比如在填写表单时,系统给出及时地报错提示;重要、谨慎的操作,系统通常会有二次确认;为用户提供撤销的机会;为用户提供纠错的机会

7、接近法则

接近法则是格式塔理论中我们最熟悉的,也最常运用的一项法则。当对象离的太近时候,意识会觉得它们是相关的

我们来看看利用接近法则在移动端的案例,相同的模块这两款app都用空间间隙来做出了区分,让人在移动的场景更能快速的寻找想要的信息。

总结

在UI设计中,不仅仅是为了美观的界面,更要有有理有据,在设计时应该学会运用这些法则,不仅可以让你的界面更专业,同时也更有说服力。


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计

日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档