教程利用SketchLibraries建立产品组件库经验/观点

结合实际工作经验,讲讲如何建立自己产品的sketchLibraries,让设计更加规范与高效。

一、前期准备:

正所谓巧妇难为无米之炊,Libraries的建立是在已经有一批确定的设计稿的时候。我这里所谓的“确定”,指的是设计稿已经上线或已经在测试阶段的情况。因为在小公司的缘故,前端、产品经常会变更原型(做完之后因为原型变动返工的事情我已经经历了很多次了,很悲伤)或者在落地设计稿的时候出现一些变动(嗯...),当然这个因人和因公司而异。

二、建立Libraries:

我个人的习惯是把图层样式、元素和组件、文字样式(当然如果有的页面形式经常被复用,不妨多建立一个模块库)等拆开分别保存,防止搞混,因此一个app的Libraries文件(sketch文件啦)一共有四个,分别是图层样式、文字样式、元素和组件以及模块库(这个我没有做)。

首先要整理的是图层样式和文字样式。

有筒子可能会问,我之前做界面的时候,已经设定好文字样式了,而且之后建立Libraries的时候又会做组件库,所以单独做文字和图层样式有什么意义呢?

在设计app的时候,我经常头疼于不同信息层级的文字颜色色值、字号、行间距记不住,各种背景色、品牌色、阴影色值弄混等问题,后来我开始使用文字样式和图层样式以及万能的option+command+C/V去解决问题。但是当我新建一个文件,又想用之前做的app的样式而非组件的时候,不建立字体和颜色的Libraries的话就会非常麻烦,而且组件库的建立也是由文字样式、图层样式、还有一些元素(element)构成,就和房子要打地基一样,这些基础都要打好,也便于自己的房子日后从“小平房”变成别墅准备~

那么闲话少叙,我们现在开始。

(需要整理在图层样式库中的内容举例)

整理颜色样式我一般是根据上述说的内容,依次从设计稿中进行样式的复制(option+command+C/V)到作为Libraries的文件中来。为了避免最后变成杂乱无章的一堆,所以我对图层样式的摆放进行了简单的整理。

(正在整理中的图层样式)

整理完毕后就开始建立图层样式吧。我图层样式的命名规范是采用英文命名的方式,方便和同事进行交接,命名格式为:base/colors/bg(或者card、content、mask、btn、icon/颜色色值或作用)。

敲小黑板,插一句简单讲一下“/”的意思。在sketch里,“/”的作用是进行分组,或者你可以把base理解为一个文件夹,colors是base文件夹下的一个子文件夹,而bg则是在colors文件夹下的一个子文件夹,一层套一层的关系。

通常我对于黑白红品牌色等易区分且或相似颜色的图层样式的命名基本直接用色值或颜色,如base/colors/bg/#FFFFFF或base/colors/bg/white,对于代表两种状态(如按钮可点击或不可点击状态)的颜色使用颜色+状态的命名方式,如:base/colors/btn/blue/nor及base/colors/btn/blue/sel

最终建立完毕图层样式看到的是这个样子:

(图层样式整理完毕)

然后将图层样式库保存,储存在一个特定文件夹内(最好不要在建立Libraries后移动位置,也不要和设计源文件混在一起),然后设置为Libraries。

(添加到library中)

然后我们可以打开一个新文件来验证一下Libraries是否可用。

(新建一个文件实验是否可用)

(我这里尽管按钮颜色和icon中都使用了品牌蓝色,但是为了区分以及万一后期需要单独修改icon颜色,因此对icon中使用的品牌色单独建立了一个图层样式,灰色同理)

ok,没有问题,在command+N的新文件中图层样式组件库时可用的,那么就准备开始下一步吧!

然后来建立文字的Libraries。关于文字样式的设置,其实在进行设计的过程中我们就会为了便于样式的复用用而建立一些字体样式,但是可能从命名规范、样式的完整程度上并不是那么尽如人意,因此我们在这里也需要对现有的字体样式进行整理,且添加一些新的样式。

步骤还是和图层样式库的建立一致,先进行收集和整理,然后进行命名和设定文字样式。需要特别注意的是,尽管单行文字和多行文字可能字号、字重、对齐方式、颜色等一致,但是行高不同,因此在设置时我会使用两种文字样式来分别代表单行样式和多行样式。对于单行文字,根据开发的习惯,我会将line值调整为和文字大小一致。多行文字则line值一般为文字大小乘以1.2-1.5,因此这两个在建立的时候也要进行区别。

(单行文字和多行文字要在line值上有所区别)

我这边一般设计使用的字体为pingfangSC,在字体使用上不会出现区分,因此在命名的时候就不考虑字体的区分问题了,我个人命名的规则是:字体/字号/字重/对齐方式/颜色/单行(or段落),这个规则也是可以因人而异进行更改的。

拿刚才的单行和多行文字为例:

单行文字:PF/12pt/regular/left/darkgrey#999999/line12

多行文字:PF/12pt/regular/left/darkgrey#999999/line16

如果没有单行和多行的区分,则不用考虑此项(命名方式看个人习惯,我说的也只是参考,大家结合自己具体工作中遇到了什么来定就可以)。

最终,整理之后的文字样式是这个样子的

(整理完毕后的文本样式)

可以看出因为这个设计稿在我接手之前有很多设计师去做,但是没有一个标准的规范,所以每一个设计师都按照自己的习惯和感觉去进行设计,最终交到我手里时候,设计稿里各种大小颜色的字基本都有,整理的我要吐血了。诚然,现在进行统一和规范是可以的,但是不建议,因为现阶段我负责的产品已经上线,所以如果贸然进行调整容易之后再和前端交付的时候出现问题,忘记了哪里调整了,哪里没有调整,因此先按照目前的设计稿进行Libraries的建立,之后还要结合线上版本逐步进行调整和规范,总之是一个非常麻烦的工作量,难受。

然后依旧按照建立图层样式的方式,将文本样式放在固定位置并设置为Libraries,这样一个Libraries的基石就打好了,现在我们要准备继续搬砖啦~

接下来是制作元素(element)库和组件(component)库,等这两个库做出来之后,距离我们通常意义上的一个软件的所有Libraries库建立就基本完成了。

那么可能有好奇宝宝又要问了,我现在储存了常用的颜色和图层样式、也对自己用的字体进行了规范,为什么不直接一步到位来制作组件(component)库,而是还要再做一个元素库?

对此我的理解是:通常一说起组件库,我们往往想到如何同语雀插件一样,由一个模块一个模块的组件们构成。诚然,组件化能够让设计更加方便和快捷,但是相应的,我们在工作中遇到的原型、功能可能并不能完全照搬现有的组件,因此除了成型的组件外,我们还需要比组件更细致的“零件”们来构成界面与创造丰富的新的界面。因此在制作组件库(component)之前,我们还需要建立一个元素(element)库。

为什么这两个要一起说呢?因为一开始我也经常搞不清楚元素和组件以及模块的区别以及制作他们的意义。不过经过工作中的整理和不断尝试,我发现如果将组件区分的越仔细,那么组件库的拓展性越强。

好了好了,如果你觉得上面一段话宛如天书,内心中充满什么是元素库、什么是组件库、什么是模块库的黑人问号,那就先看下文,再回头来琢磨上文。

我先来说说我是如何判定什么是元素(element)、什么是组件(component)、什么是模块(module),希望能对大家的工作有所帮助,当然如果有更好的区分方法也非常欢迎斧正。

我们来用比较常见的商品卡片为例来进行说明:

这三者的关系非常像化学里的分子、原子关系,一环包含一环。所以在做这一部分的整理时,我通常是三者同时进行。

如何进行整理呢,我们依旧用商品卡片为例。

(以商品卡片为例进行说明)

我们可以看到商品卡片的样式会有有特价或热销标签的样式(显示原价)、没有特价热销标签的样式(不显示原价),商品名称为单行的样式、商品名称为两行的样式,这些要怎么进行整理呢?每一种卡片建立一个symbol?那样组件库整理出来会非常庞大,所以我的做法是这样的。

首先,通过观察我们发现,上方的两个卡片其实是下方的两张卡片的高配版本(增加了价签和划掉的原价),因此只要整理上面两张卡片的样式即可包括下面卡片的样式了。

于是我们先将这两张卡片粘贴至在元素库或者组件库文件中(目前这两个现在一个sketch文件中制作)中,然后使用之前整理的文本样式库和图层样式库对卡片中的文字和bg进行添加样式(如果在设计的时候已经使用Libraries进行规范,这一步请跳过)

(让页面由图层样式和文本样式组成)

然后我们将页面中的元素进行整理和建立元素库。在这里先说一下什么是元素(element),我认为可以放到元素库中的内容包含但不限于Icon、Btn、头像、线条、输入框、弹窗、标签、制作成symbol的文字以及其他难以单独分类的杂项(misc)等,这些在工作中遇到的时候大家根据自己的app实际情况去分析就好。继续用商品卡片去说,首先我们将元素规范命名、建立成为symbol,命名原则比较像之前的图层样式及文字样式命名原则,以卡片上方的“热”和“特”标签命名为例,我是这么进行命名的:element/tag/cardtag/hot以及element/tag/cardtag/discount

(这里注意之所以在cardtag前增加一个tag的分组是因为我的app中tag样式并不止这一种,所以为了进行快速选择和区分,多增加了一个层级)

然后就可以在选中这个tag标签的时候惊喜的发现,能够快速的进行这两个tag样式间的切换了!

(两个tag样式之间可以进行切换)

同理,我们也对页面中的占位图和商品图片,以及划去的原价文字进行建立symbol操作(为什么只有这里的文字为什么要建立symbol请往后看)。然后,我们对除了tag之外的商品卡片基础款(两种样式,商品名称一行时和商品名称两行时)分别进行symbol建立,当然卡片因为是由各种元素组成的,是一个组件,所以在命名上格式为component/card/2line(1line),在做完这一步之后,然后我们就发现当点击中卡片后,单行样式卡片和双行样式卡片可以进行切换了。

(卡片样式单双行进行切换)

同时,我们发现当选中被划掉的原价那一项时,除了更改里面数字的数值外,还能选择“none”不显示,然后该项就消失啦。

(选择none则此项不显示)

这样的商品卡片内容不正是前文中说的没有标签的“基本款样式”嘛。然后我们将商品卡片的symbol(这是一个component)和标签的symbol(这是一个element)组合为一个带标签的symbol,不过他本质还是一个商品卡片,所以在命名的时候依旧使用component来进行命名。这个时候我们的商品卡片完全可以用一个symbol来囊括所有卡片样式了。这样一个卡片的元素和组件库就算建立完成了。app中其他的部分同理用这个方式进行整理即可。最终得到的文件是一个元素和组件库混合而成的源文件。当我们打开symbol页面的时候可能会发现,所有的element和component都混在了一起,非常的混乱,怎么办呢?

(未经过整理的symbols页面)

打开symbols页面有可能是这个样子,当然如果内容特别多的话也有可能更乱这个时候给大家安利一个插件:SymbolOrganizer,使用它进行整理后,他可以自动根据你命名时候的“/”对相同层级归类的内容进行整理,最终得到的是这样的一个页面。

(使用插件整理完毕后)

(归拢好的组件库结构图)

再次感谢您的阅读~

22人已收藏

永远保持好奇心和不满足

你确定要举报【教程】利用SketchLibraries建立产品组件库?

THE END
1.开源项目fossphotolibraries常见问题解决方案使用Docker 运行:如果本地环境配置复杂,建议使用 Docker 来运行项目。项目通常会提供 Dockerfile 或 Docker Compose 文件,按照文档中的步骤启动容器即可。 查看文档:如果仍然遇到问题,查看项目的 README 文件或相关文档,寻找解决方案。 通过以上步骤,新手可以更好地理解和使用foss_photo_libraries项目,避免常见的错误和问https://blog.csdn.net/gitblog_00473/article/details/144418185
2.管理库MicrosoftLearn必须首先使用 16 位 LIB 提取该对象,然后才能将提取的对象文件作为 32 位 LIB 的输入。默认情况下,LIB 使用第一个对象或库文件的基文件名和扩展名 .lib 来命名输出文件。输出文件放置在当前目录下。如果已存在同名文件,输出文件将替换现有文件。若要保留现有库,请使用 /OUT 选项为输出文件指定名称。https://learn.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2012/e17b885t(v=vs.110)
3.Library一个星期的使用心得3.使用library与使用symbol的方法很相似,在sketch文件的左上角有个“Insert”的按钮,点击就可以看到带着library标记的icon,选择自己想要的相应library的symbol文件就可以了。 4.library更新后,使用该library的文件右上角会有“Library Update Avaliable”的提示,点击进去更新相应的文件就行~ 对个人整理文件的作用 如果自https://zhuanlan.zhihu.com/p/30466991
4.launcherwasunabletolocateitscompanionsharedlibrarylibraries是什么文件夹? JRE System Library,Java EE 5 Libraries,Referenced Libraries这三个都是各种JAR包(库文件)的集合名称,名称可以任意取,只不过这是MyEclipse默认. mc启动失败,提示loadlibrary failed with error 1114:动态链接库(DLL)初始化例程失败? https://www.shiwaiyun.com/article/post/203034.html
5.哪里可以找到"Libraries“文件夹(NetbeansJAR)在NetBeans IDE中,可以通过以下步骤找到"Libraries"文件夹(NetBeans JAR): 1. 打开NetBeans IDE。 2. 在主菜单中,选择"File"(文件)。 https://cloud.tencent.com/developer/information/%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%22Libraries%E2%80%9C%E6%96%87%E4%BB%B6%E5%A4%B9(Netbeans%20JAR)
6.[Bug]勾选关闭文件校验后PCL仍会尝试补全Libraries,即使文件检查项 我已在 Issues 页面 和 常见&难检反馈及问题列表 中搜索,确认了这一 Bug 未被提交过。 描述 勾选关闭文件校验后 PCL 仍会尝试补全 Libraries 重现步骤 替换掉 Libraries 内的 OptiFine,PCL 依旧会尝试补全文件 日志与附件 Log1.txthttps://github.com/Hex-Dragon/PCL2/issues/3792
7.RTThread国产MCU移植手把手教你使用RTLibraries文件夹包含兆易创新提供的HAL库,这个直接在兆易创新的官网就可以下载。 下载地址 然后将HAL库复制到libraries目录下,重命名为GD32F4xx_HAL,其他的系列类似。 GD32F4xx_HAL就是官方的文件,基本是不用动的,只是在文件夹中需要添加构建工程的脚本文件SConscript,其实也就是Python脚本。 https://club.rt-thread.org/ask/article/dcb4e9b8f7ebc7b3.html
8.ituneslibrary是什么文件夹,如何删除?解决方法如下;1、找到目录:C:\Users\你的电脑上的本地账户文件夹名\Music\iTunes\Previous iTunes Libraries(若安装在其它盘请在其它盘以此查找)删除里面的 iTunes Library.itl 文件即可。2、可能目前使用的itunes 版本过低,不能读取列表,请先卸载旧版本,重新下载安装最新版本的itunes ,然后再https://zhidao.baidu.com/question/692225403444211252.html
9.我的世界文件结构介绍文件结构介绍在国内大部分玩家都是使用游戏文件+盗版启动器的方式进行游戏,因此大家一般都能够在和启动器同一目录下找到这个文件夹,它叫“.minecraft”,这个里面包含了所有游戏相关的文件。在教程中称这个文件夹为主文件夹。 在玩家从未使用任何启动器启动游戏之前,主文件夹内只有这3个文件夹:assets、libraries 和 versions。 https://www.3dmgame.com/gl/3894256.html
10.国产MCU移植手把手教你制作国产MCU的BSP参考https://www.jianshu.com/p/e4b,了解scons的基本语法,本次移植主要是复制一个与移植芯片相近的工程,本次我参考的是bsp下的mm32f327x,移植需要修改三个sconscript,一个是application文件夹里的、一个是drivers文件夹里的、一个是libraries文件夹里的。根据自己的sdk去修改相应的脚本文件,后面都是展示源码https://www.douban.com/note/811580739/
11.如何清除“系统找不到指定的文件”错误?一些用户声称,通过导航到Libraries文件夹,他们能够摆脱该错误消息。但是,值得注意的是,在Windows 10上,默认情况下该文件夹是隐藏的。要访问它,请按照以下说明进行操作: 在键盘上,按Windows Key + E。这样做将启动文件资源管理器。 现在,双击“这台PC”。 http://zh-cn.fairsyndication.com/357-how-to-remove-the-system-cannot-find-the-file-specified-error
12.AndroidStudio使用Kotlin时,修改代码后运行不生效的解决方法一、 删除.idea下的libraries文件夹(临时解决办法) 一开始是删除项目的.idea下的libraries的文件夹。重新编译就可以啦(实在不行,把module的.iml、project下面的.iml都删除)。终于,可以开心coding … 好景不长,高兴了没多长时间发现又不行啦,接着删除libraries文件,编译,coding … https://www.jb51.net/article/182853.htm
13.我的世界文件夹介绍因为版本的不同,有些文件夹不一样,但是主体部分都是一样的,那么这些文件夹都是做什么用的呢?https://m.edu.iask.sina.com.cn/jy/2xDlceJg4OV.html
14.指南者stm32单片机keil5新建工程和组织目录的那些事5. 此外:资源文件夹: 三,工程文件Add的内容 *首先创建五个文件夹: STARTUP:启动文件 CMSIS:添加c文件(来自刚才文件目录结构的CMSIS文件,请查看Libraries文件夹) FWLIB:固件库与外设相关的(也在Libraries目录下)导入src全部c文件 User:添加User目录下的c文件 https://www.ucloud.cn/yun/119143.html
15.STM32f4uCOS移植4) uCOS-II 文件夹是uC/OS 内核的核心文件,移植要用到里面的所有文件。 5) uC-Serial 文件夹是关于串行通信协议的文件,移植时根据需要添加文件。 2、 STM32F4 固件库介绍 STM32F4固件库解压后的目录结构如下。 1 )_htmresc 文件夹主要是2 个图标文件,对移植使用上没什么作用完全可以删掉。 2 ) Librarieshttps://www.mayiwenku.com/p-26715484.html
16.python安装在centos哪个文件夹?Worktile社区3. /usr/local/lib/pythonX.X/: 当你使用自定义的Python安装路径时,Python解释器和标准库通常被存储在这个目录下。其中,X.X代表Python的具体版本号。该路径下的libraries文件夹中包含了常见的Python库,例如numpy、pandas等。 4. /usr/local/bin/: 自定义安装的Python解释器的可执行文件通常位于这个目录下。你可以https://worktile.com/kb/ask/100438.html
17.如何安装/导入Arduino库文件及库文件的不同位置与区别(以eFLL中在Arduino中,库可以有三种方式存放,也就是有位于3个不同位置存放有libraries文件夹:(1)Arduino IDE安装的文件夹(2)Arduino的核文件夹(3)项目文件夹。以上三种安装库的方式中,除了最后一种库导入方式使得库的位置具有选择性,前两种的库的位置可在项目文件夹中libraries中找到。 1. Arduino IDE安装的文件夹(也叫https://blog.51cto.com/u_15127619/3281168
18.SDK15蓝牙5.0笔记2:(蓝牙初步篇)SDK15工程包结构详解.pdf免费◎device_nrf 文件夹:处理器硬件外设的驱动。老版本里包含了比如时钟、串口等外设驱动, 新版本SDK15 把这部分分离到modules文件夹中了,所以这里面只剩下部分驱动,读者可以直接调 用编程。 ◎iot 文件夹:Internet ofThings 的缩写,物联网的一些驱动文件库。 ◎libraries 文件夹:外设应用的库文件。以上面device_nrfhttps://max.book118.com/html/2019/0426/6214034203002024.shtm
19.Librariesfor修改文件夹名 3年前 examples 修改文件夹名 3年前 generator 增加TFT二维码显示程序块及库 4年前 language 更新zh-hans.js和make.xml 4年前 libraries 修改文件夹名 3年前 media 删除不用的图标 4年前 常用软件 更新 4年前 文档 更新README.md、CHANGELOG.md,添加MCP9808温度传感器 https://gitee.com/smilebrightly/Libraries_for_Mixly
20.arduinolibraries下载下载arduino后是没有库文件的,需要自己去配置 step1 在arduino中找到文件住储存的位置 step2 在里面的libraries文件夹里有个readme.txt 这算是一个小彩蛋吧,链接是官网给出的下载库的教程 查看原文 ROS kinetic 与arduino 的通信 ROS kinetic 与arduino的通信 通过查阅网上各种大神的相关博文,最终成功通信,现将https://www.pianshen.com/article/92321227536/
21.eclipse删除jar包的方法是什么问答在Eclipse中删除jar包的方法有两种:1. 手动删除:在Eclipse中找到项目的“Referenced Libraries”文件夹,右键点击需要删除的jar包,选择“Build Path”https://www.yisu.com/ask/34531645.html
22.arduino中的库究竟是个啥?(1)[项目]——[加载库]——[添加一个.ZIP库] (2)选择库文件的压缩包 选择库文件的压缩包 (3)导入成功后就可以在IDE上直接查看到与库相关的例子 看起来好像很麻烦!嘿嘿,那就说一条捷径吧……直接将压缩包解压到IDE安装路径下的libraries文件夹。简单快捷便利!!!https://www.jianshu.com/p/509713fb2e3c