教程利用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.管理库MicrosoftLearn重写环境库路径并将其设置为 dir。 有关详细信息,请参阅 LINK /LIBPATH 选项的说明。/LIST 将有关输出库的信息显示到标准输出。 可以将输出重定向到某个文件。 可以使用 /LIST 来确定现有库的内容,无需修改它。/NAME: filename 当生成导入库时,filename 指定正在为其生成导入库的 DLL 的名称。/https://docs.microsoft.com/zh-CN/cpp/build/reference/managing-a-library?view=msvc-140
2.assembly怎么指定lib只包含某一个环境下的lib作为一个初学者,整了一下午才弄明白,在这里写出来分享给像我一样的初学者 C#的Assembly.Load.CreateInstance是C#反射机制的一部分因为论坛上有个人问了个类似的问题,然后之前看设计模式上还提到了这个,当时没弄明白而且还可耻的误导了。。。 C#的Assembly.Load.CreateInstance方法的使用是这样的: https://blog.51cto.com/u_14120/12793077
3.静态库的建立cmake配置静态库当我们想要保护自己的代码而不被其他人看到源代码,并能让其他人使用的时候,这个时候就需要将自己的代码建立成静态库文件(.lib文件)。当我们把.lib文件发给对方后,他就可以调用并正常使用。 二、如何建立静态库文件 以VS2019为例子 步骤:建立新项目-->建立源文件-->建立.h头文件-->将项目设置为静态库 https://blog.csdn.net/2402_88991786/article/details/144385969
4.如何创建Android库以及掌握.aar文件的使用技巧?4、修改build.gradle文件:打开库模块的build.gradle文件,确保插件设置为com.android.library,而不是com.android.application,这是将模块识别为库的关键。 5、同步项目:点击Sync Project with Gradle Files按钮,确保所有更改生效。 6、编译AAR文件:在Gradle窗口中,选择assembleRelease或assembleDebug任务,编译成功后,可以在https://www.kdun.com/ask/1395108.html
5.Eclipse中自定义Library时选中Systemlibraries是如何使用的具体是:菜单 Window ==> Preferences ==>Java==> Build Path ==> User Libraries ==> New ==> System library(added to the boot class path) 打上勾后变成System libraries,如何使用呢?与不打勾有何区别?作用是什么? 创建前我们可以看提示是说:System libraries will be added to the boot class pathhttps://cloud.tencent.com/developer/article/1396720
6.SDL入门教程(一):2VisualC++下的安装与设置SDL入门教程(一):2、Visual C++ 下的安装与设置 作者:龙飞 2.1:获得Visual C++ 2008 Express Edition。 使用盗版不是一个好习惯。与其背上贼名,我更愿意放弃华丽的外表,使用朴实无华的免费软件。你可能知道Linux和GNU,但是也许你还不知道$M也提供一些“免费的午餐”。Visual Studio 的Edition版本就是这样的一种http://www.cppblog.com/lf426/archive/2008/01/31/42289.html
7.vray材质库(.mat文件)使用教程含贴图设置教程.pdf关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览全文 vray材质库(*.mat文件)使用教程-含贴图设置教程 准备工作: A、将材质文件(.mat文件)拷贝到max安装目录下的“materiallibraries”文件夹中 B、将贴图(图片)拷贝到max安装目录下的“maps”文件夹中(可以在maps文件夹 下新建一个目录 如:“Archshadershttps://max.book118.com/html/2021/1129/8043102106004046.shtm
8.STM32CubeMX系列教程06本教程由作者strongerHuang于2019年03月原创发布。 标签:STM32、 STM32CubeMX、 LL库、 HAL库 版权所有:禁止商用 申明:该文档仅供个人学习使用,转载请公众号联系作者授权。 1写在前面 STM32CubeMX的Project Manager工程管理器包含:Project工程管理、 Code Generator代码生成、 Advanced Settings高级设置三部分内容。 https://www.wxworm.com/article/61328.html
9.[GD32小白笔记1]创建GD32F4xx的模板工程工程设置配置 后记 前言 笔者之前主要是学习STM32,近期由于朋友工作需要,询问GD32相关事宜,想着国产芯片可以学习一下,于是开始记录学习的笔记。 主要还是使用keil进行学习 安装必要工具 Keil安装教程就不赘述了,许多教程写得很明确了。 下载芯片对应固件包和支持包 笔者使用的是单片机GD32F405RG,使用搜索引擎便可以快速https://zhuanlan.zhihu.com/p/684136520
10.vray材质库使用教程含贴图设置教程3.选择材质库 4.打开你下载的.mat文件(找到max根目录中“materiallibraries”文件夹下的材质文件)4.https://www.3d66.com/changjianwenti/tiwen_73203.html
11.SketchLibraries功能图文详解Mac教程团队作战的设计师们则可以充分利用Libraries的同步能力来确保设计方案中的UI元素属于最新版本,或是及时获取最新的品牌风格定义。Libraries被隔离于工作文件之外,你可以通过其存放媒介所提供的安全策略设置来确保其不会被错误的变更;对于任何升级变更,你也有机会在同步之前对其进行预览确认。 https://mac.wmzhe.com/article/10085.html
12.PreScan教程:2.道路设置PreScan教程:2.道路设置 道路片段选取 PreScan的场景搭建少不了道路的设置,在 PreScan GUI 的侧边栏 Infrastructure → Road Segment 中,所提供的道路片段可拼装大部分常见道路。 以 Staight Road 为例,直接从左侧拖拽至右侧即可。 车道数量、方向设置 道路默认为两车道,可在右侧 Property Editor 中,修改 Nuhttps://www.pianshen.com/article/71771071549/
13.Revit2017族库样板项目样板离线包安装以及设置教程视频–Nao4、同样方法安装Libraries文件。 5、打开路径: C:ProgramDataAutodeskRVT 2017,就可以看到刚刚安装好的文件。 6、打开Revit软件,依次点击“文件-选项-文件位置” 7、点击”+”,添加各个项目样板,修改对应名称。更改族样板的默认路径为:C:ProgramDataAutodeskRVT 2017Family TemplatesChinese。如果是其他版本,直接修改Revithttp://www.naoket.com/yinan/293.html
14.TeraTerm怎么安装?TeraTerm安装使用详细图文教程编程开发Tera Term是一款串口调试工具,下文小编就为大家带来Tera Term安装使用详细图文教程,需要的朋友可以看看 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用! 【如果你想靠AI翻身,你先需要一个靠谱的工具!】 Tera Term是来自国外的一款界面简洁,功能实用的串口调试工具。它是Microsoft Windows的终端仿真器,支持串行端口https://www.jb51.net/softjc/619365.html
15.win7家庭版没有个性化设置怎么恢复win7家庭版没有个性化设置恢复win7家庭版没有个性化设置恢复教程 1、在桌面新建一个txt文本文档; 2、把下面代码复制到新建的文本中; [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace {031E4825-7B94-4dc3-B131-E946B44C8DD5}] @=“UsersLibraries” https://www.dadighost.com/help/46339.html
16.EndNote设置图文详解与优化基础教程Office办公Libaries指打开EndNote时做什么,是打最近常用的数据库(Open the most recently used library),还是打开特定的数据库(Open the specified libraries,需要设置哪个数据库),还是提示用户打开数据库(Prompt to select a library),或者什么都不做(Do noting)。 https://www.sucai999.com/officebg/110035.html
17.在Python中设置Pandas数据框的背景颜色和字体颜色极客教程# Importing the necessary libraries -->importpandasaspdimportnumpyasnp# Seeding random data from numpynp.random.seed(24)# Making the DataFramedf=pd.DataFrame({'A':np.linspace(1,10,10)})df=pd.concat([df,pd.DataFrame(np.random.randn(10,4),columns=list('BCDE'))],axis=1)# DataFrame whttps://geek-docs.com/pandas/pandas-examples/set-pandas-dataframe-background-color-and-font-color-in-python.html
18.ISE和Modelsim安装破解教程本教程内容: ISE和Modelsim安装及破解教程 ISE 联合 Modelsim 仿真设置 软件版本: Xilinx 官方提供的 ISE14.7 版本 Modelsim_10.1c 软件下载地址: ISE链接:https://pan.baidu.com/s/17z64cN0iSbEKNjAZ_uMqcA 提取码:hqp4 Modelsim链接:https://pan.baidu.com/s/1bpC1lw6rOZ0nZA60JU3PqA 提取码:xmz8 https://m.elecfans.com/article/2194353.html
19.Git教程之设置.gitignore,IDEA安装插件以及设置全局文件Git 教程之 设置 .gitignore, IDEA 安装插件以及设置全局文件 在使用GitHub 或者 GitLab 等分布式代码管理平台时,我们在进行代码提交的时候,往往不需要把所有的东西,比如一些无用的文件或者隐私的文件不需要进行上传,那个Git 提供 .gitignore 文件用来忽略不想要上传的问题。 https://www.jianshu.com/p/2522d711b323
20.新提醒Engine2.1采样器图文安装入库教程WIN简单设置以及入库教程 安装完毕之后,运行桌面上的Engine 2图标。首次运行会提示我们进行声卡和输入设备的设置。 大家根据自己的声卡进行选择、我用的是Yamaha的UR22 mk2。选择好点击OK。 MIDI键盘也就是输入设备In我用的是KeyLab 88。 然后Out输出我们要选择我们的声卡。选择好点击OK。 http://www.360doc.com/content/20/1002/14/11593497_938538450.shtml
21.Axure画原型图的入门教程在打开画布后,首先可以根据设计的目标设备来设置页面尺寸,Axure 画原型图提供了许多不同的设备尺寸,在“ Style ” 中就能搜索自己需要的原型尺寸并应用。 3、使用部件库 在选择完原型尺寸之后,就可以使用 Axure 画原型图的部件库来开始自己接下来的设计。Axure 画原型图的部件库在 “ Libraries ” 窗格中,只需要https://js.design/special/article/axure-painting-prototype-tutorial.html
22.CircuitCAM中文教程下面是一个DC启动文件的实例,它包含了几乎所有重要的设置,下文将结合该实例解释启动文件中各项设置的具体含义。 例1-1(一个DC启动文件): search_path= search_path + {“.”, synopsys_root + “/dw/sim_ver” } search_path= search_path + { “~/risc32/synthesis/libraries” } target_library={ https://m.360docs.net/doc/info-edd68b0feff9aef8941e06ef.html
23.电路设计软件系列教程(一),ProtelDXP电路设计软件之基础操作在你开始绘制电路图之前首先要做的是设置正确的文件夹选项。完成以下步骤: 1、从菜单选择 Design > Options , 文件夹选项对话框打开。作为本教程,在此我们唯一需要修改的是将图纸大小( sheet size ) 设置为标准A4格式。在 Sheet Options 标签,找到 Standard Styles 栏。点击输入框旁的箭头将看见一个图纸样式的列表http://www.chinaaet.com/article/3000111893