我是如何为 Mac 应用 Flinto 设计 UI 图标的

2023-10-18 19:10
文章标签 设计 应用 ui mac 图标 flinto

本文主要是介绍我是如何为 Mac 应用 Flinto 设计 UI 图标的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文讲的是我是如何为 Mac 应用 Flinto 设计 UI 图标的,

我参与了Flinto新的Mac版本的用户界面部分和用户体验部分的设计,就在他发布之前的几个月。但是因为Flinto是一个特殊的工具,我们越是深入思考每一部分的用户体验,我们越感觉到Flinto需要大量的定制icons。譬如说Flinto应用的列表(List),工具栏(Toolbar),动画的设计面板(Transition Designer),下拉手势(Gestures dropdown)都需要他们独自的一套图标。所以,如何快速的设计图标变成了我的主要工作。

当设计大型应用的图标和菜单的时候,你采用什么样的设计策略?

设计总是情境驱动的。我惊奇的发现专业Mac应用的情境设计是最复杂的工作之一,就算你只是设计图标。工具栏(Toolbar)的图标大小必须一致,而且最好根据图标知道用途。这与侧边栏的图标和下拉菜单看到的图标的设计原则上有所差异。 一些图标会以不同的尺寸和不同的样式重复出现在不同的地方。不是只要调整图标尺寸或者样式就能够适用于每一个用户界面的,所以我在设计图标的时候需要考虑到图标是否具有通用性以及不破坏用户界面的整体一致性。

我都是在纸上开始设计图标的,我一直坚信这个原则。我会在纸上画下我想象中这个图标的所有可能性,譬如设计的这个图标包含了什么暗喻以及图标可能需要/产生的变化。所以在概念设计的这个阶段上,我尽量让自己将所有的内容都写在我的纸上,甚至是一些不相关的想法。下一步则分析概念设计中的内容如何能够更好符合我们设计的目标,已有的限制以及这个图标的情境联系。

我发现将绘图构思和评估这两个过程分开进行是很至关重要的。前者的工作需要想象力,好奇心,而且持有自己主观的判断,是一个加法的过程,是心血来潮的创作。评估则需要批判性,实用性,以及需要考虑图标背后一连串所延伸出来的隐喻,是一个做减法的过程。如果你尝试同时做这两件事情,那么你会考虑不过来从而得不到任何结果。

我最近还在网上授课讲述我认为在设计图标中最重要的原则。里面还包含了我是如何来评估我的想法和草稿的。

通常来说,只有一部分的设计想法会被保存到电脑里面。使用sketch可以提高我的生产效率并且在生产的过程中会有一些创造性的决定。但最主要的目的还是要完善和精炼图标的形式,保证每一个图标都是像素完美的。我对此具备相当大的热情,我对其他忽视这个细节的人感到很烦恼。

能够为我们再稍微解释一下什么是“像素完美”和如何实现?

像素完美其实意味着很多东西,它更像是一个想法而不是一个能够具体描述的特征。像“注意细节”一样,当被忽视的时候我们能够很容易的感觉出来。完美的像素对小图标的可辨别度有巨大的影响。想要实现像素完美不仅仅是将设计元素的像素网格对齐(如下图)。这基本上来说就是在和锯齿做斗争。使用抗锯齿是很好的一件事情,但它会让图像一些地方产生模糊,尤其是在对角线和曲线中。

举个例子,我们想在图层列表中加上一些注释来表明哪些层是被隐藏或者是被锁住的。当然给图层加上隐藏和锁定是很简单的事情,只需要点击按钮操作一下就好了。我们考虑的是我们有一个小的注释,他会占用一小部分空间,来注释两个已经隐藏和锁定图标。为了完成这个目标,我们的图标必须要做到像素完美。我对我设计的8x8大小的图标感到非常的自豪。

对于使用retina显示屏的读者,我们显示**“一半尺寸”**的位图,如图1x的全像素图标。对于非retina显示屏的读者,则使用**“双倍尺寸”**的位图,如图2x的全像素图标。 请以横向模式显示上图来获得最好的显示效果。

在一个理想的世界中,一枚制作精良矢量图标可以轻易地适应各种像素密度的输出,并在所有对应尺寸中显示效果良好。但是大部分时候,使用一倍大小的图标并不能够处理得到更高尺寸的图标。你可能需要先做一个完美的两倍尺寸的图标,然后再调整成一倍尺寸来创建一个新的视觉满意的图标。在Flinto中至少一半的图标都有其对应1倍和2倍尺寸,譬如贯穿整个过渡动画设计面板的"概念图层"图标。

针对于这块感兴趣的读者,这里有我是如何对Flinto图标的抗锯齿进行细调的技术细节。

  • 重新调整和重新定位图形来获得看上去视觉舒服的图形,尽管这样处理后位置或者像素值会有小数点,但在这个阶段视觉是重点。
  • 只使用曲线或者圆角时,至少要使用2px来渲染 90° 角的半径圆,或者使用3px渲染180°角的半径圆,来作为圆的线段末尾(如下图)。1pt大小线的线段的圆角线帽的效果是很糟糕的,至少我们使用的屏幕都会将其放大三倍来显示。

没有人想要模糊的线帽!只有三倍大小(或者更大)的显示器才能够对1pt大小的线条渲染清晰可见的圆角线帽。
  • 为了让线条粗细更加一致,调整边框宽度/粗细来达到稍宽或者稍厚会比使用1pt的细曲线或者斜线更好。
  • 消除不必要的模糊像素。这在你需要使用图形自身标记自己的时候将会很有效。
  • 通过复制图形或者边框(同一方向)来轻微调整图形的粗细。
  • 如果图标可以有小模糊锯齿能够为图标的其他部分提供一定帮助,这也是可以的。

当然还有其他有关于如何平滑抗锯齿的技巧,但是我刚才所说的是我从中获益最大的。

什么造就了一枚好图标?

这是个问题!尤其是当图标包含了很多设计原则的时候。我在我的图标设计课程里面通过讲我在Flinto工作遇到的一些故事来描述我是如何造就一枚好图标的。

其中的一个原则就是使用熟悉的符号并且让他显眼。当我们开始为Flinto的主页面的画布设计图标的时候,内森有一个想法,我们可以设计一个图标让我们回忆起艾西勒的住宅。艾西勒是一位建筑师,他设计了中世纪现代建筑的住宅,这种风格的住宅在加州很流行。

艾西勒的中世纪现代建筑的住宅给了我们灵感去探索设计一个独特的“home”图标。

我们认为这个想法很酷而且内森也买了一套使用这种设计元素的房子,所以我们对这个想法很有热情。我做了很多个home图标的概念设计,尝试着将艾西勒住宅的特点萃取到一个16*16正方形的图标里面,而且在图标不添加色彩和透明度效果。我们发现这些看似巧妙的图标并没有很好展现图标本身的职责而且作为home图标也不够显眼。于是我们决定做一个直观并且能够表达艾西勒住宅不对称特点而且对其他用户而言有高辨别度的图标。

直观胜过巧妙,我们选择了底部中间图标作为home键。

另外评价一个好图标的原则是他是否能够与周围的元素看上去融洽。这些元素包括图标周围的UI,邻接文本的大小和字重,操作系统的习惯(譬如说,在mac os下cmd+s是保存,而在win下则是ctrl + s),以及其他图标的集合。

所以尽管home图标基本上是单独存在的,但是工具图标,手势图标,排版图标都是集合方式存在的。设计图标的集合的挑战是很大的。你会在设计一个图标集合设计到一半的时候发现你所使用的视觉隐喻不能够适应每一个这个集合里面需要的图标,这意味着你需要重新做一遍。 :see_no_evil:

这种情况通常发生在手势图标上(上图是以200%比例显示)现在这些图标看上去很简单和直观,然而我们在设计他时是有很多限制条件的,并且还要考虑未来的兼容性。一些我们在这里展示的图标还没有出现在Flinto中...但很重要的一点是,在遇到有需要的时候,我们设计的图标集能够扩展并且容纳它们。





原文发布时间为:2016年05月11日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。

这篇关于我是如何为 Mac 应用 Flinto 设计 UI 图标的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/234595

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert