官方发布微信小程序设计规范

liyibu 7年前
   <p>微信小程序设计的基本原则是微信设计中心针对在微信类上线的小程序页面总结的设计指南及建议。以下设计原则都是基于对用户的尊重的基础上的,旨在微信生态类建立有号、高效、一致的用户体验的同时,最大程度顺应和支持各业务需求设计,实现用户与程序的共赢。</p>    <h2><strong>一、有好礼貌</strong></h2>    <p>为了避免用户在微信中使用小程序服务时,注意力被周围复杂环境干扰,小程序哎设计时应该注意减少无关的设计元素对用户目标干扰,礼貌地向用户展示程序侧提供的服务,友好地引导用户进行操作。</p>    <p>1. 重点突出</p>    <p>每个页面都应有明确的重点,以便于用户每进入一个新页面的时候都能快速地理解页面内容,在确定了重点的前提下,应尽量避免页面上出现其他干扰项影响用户的决策和操作。</p>    <p><strong>反例示意</strong></p>    <p>此页面的主题是查询,却添加了诸多与查询不相关的业务入口,与用户的预期不符,易造成用户的迷失。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c1ed4da63bfe41ff2bf248dd8d1b80b1.jpg"></p>    <p><strong>纠正示意</strong></p>    <p>去掉任何与用户目标不相关的内容,明确页面主题,在技术和页面控件允许的前提下提供有助于用户目标的帮助内容,比如最近搜索词,常用搜索词等。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/43695d071001c9d9c80820c7751b3ee3.jpg"></p>    <p><strong>反例示意</strong></p>    <p>操作没有注册,让用户无从选择</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/97b5dd8064b7ca9b7bbc7869b18a7b0d.jpg"></p>    <p><strong>纠正示意</strong></p>    <p>首先要避免并列过多操作让用户选择,在不得不并列多个操作时,需区分操作主次,减轻用户的选择难度。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/f48518c73378ed1c058a74b1616e700f.jpg"></p>    <p>2. 流程明确</p>    <p>为了让用户顺畅地使用页面,在用户进行某一个操作流程时,应避免出现用户目标流程之外的内容而打断用户。</p>    <p><strong>反例示意</strong></p>    <p>用户本打算进行搜索,在进入页面时却被突如其来的抽奖弹窗所打断;对于抽奖没有兴趣的用户是非常不友好的干扰,平添一份对开发团队的恼怒;而即使有部分用户确实被“诱人”的抽奖活动所吸引,离开主流程去抽奖之后可能就遗忘了原本的目标,进而失去了对产品真正价值的利用和认识。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/500ad08ff1f7df57619a0ac7187d5924.jpg"></p>    <h2><strong>二、清晰明确</strong></h2>    <p>作为一个负责任的开发者,一旦用户进入我们的小程序页面,就有责任和义务清晰明确告知用户身在何处、又可以往何处去,确保用户在页面中游刃有余地穿梭而不迷路,这样才能为用户提供安全的愉悦的使用体验。</p>    <p>1. 导航明确,来去自如</p>    <p>导航是确保用户在网页中浏览跳转时不迷路的最关键因素。导航需要告诉用户,我在哪,我可以去哪,如何回去等问题。首先在微信系统内的所有小程序的全部页面,均会自带微信提供的导航栏,统一统一解决我在哪,如何回去的问题。在微信层级导航保持体验一致,有益用户在微信内形成较为统一的体验和交互认知,无需在各小程序和微信切换中新增学习成本或使用习惯。</p>    <p><strong>微信导航栏</strong></p>    <p>微信导航栏,直接继承于客户端,除导航栏颜色之外,开发者无需亦不可以对其中的内容进行自定义。但开发者需要规定小程序各个页面的跳转关系,让导航系统能够以合理的方式工作。</p>    <p>微信导航栏分为导航区域、标题区域以及操作区域。其中导航区控制程序页面进程。目前导航栏分深浅两种基本配色,在iOS和Android展示有所不同,如下图所示:</p>    <p>导航区(iOS)</p>    <p>导航区通常只有一个操作,即返回上一级界面。开发者可定义其内容,不可对样式进行修改。</p>    <p>导航区(Android)</p>    <p>通常情况下,系统导航左侧唯一的操作为“离开小程序,回到微信,程序后台运行”。</p>    <p>当用户进入小程序次级页面后,我们建议小程序自身可以设计返回操作,同事用户也可以通过安卓系统自带的硬件返回按钮返回上一级。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/4e598b35adfe28c446938969b5b17471.jpg"></p>    <p>微信导航栏自定义颜色规则(iOS和Android)</p>    <p>小程序导航栏支持基本的背景颜色自定义功能,选择的颜色需要在满足可用性前提下,和谐搭配微信提供的两套主导航栏图标。建议参考以下选色效果:</p>    <p>选色方案示例:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/9135a90440cb93417a32f554c82cb621.jpg"></p>    <p><strong>页面内导航</strong></p>    <p>开发者可根据自身功能合计需要在页面内添加自有导航。并保持不同页面间导航一致。但是受限于手机屏幕尺寸的限制,小程序页面的导航应尽量简单,若仅为一般线性浏览的页面建议仅使用微信导航栏即可。</p>    <p>微信控件库提供tab导航供开发者选择。tab栏可固定在页面顶部或者底部,便于用户在不同的tab页面间作切换。为确保点击区域,tab项不得超过4项。一个页面也不应出现一组以上的tab栏。</p>    <p>2. 减少等待,反馈及时</p>    <p>页面的过长时间的等待会引起用户的不良情绪,使用微信小程序项目提供的技术已能很大程度缩短等待时间。即便如此,当不可避免的出现了加载和等待的时候,需要予以及时的反馈以舒缓用户等待的不良情绪。</p>    <p><strong>启动页设计</strong></p>    <p>小程序启动也是小程序在微信内容一定程度上展现品牌特征的页面之一。</p>    <p>本页面将突出展示小程序品牌特征和加载状态。</p>    <p>启动页除LOGO品牌展示外,页面上的其他所有元素如加载进度指示,由微信统一提供且不能更改。无需开发者开发。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/0a5c3f8a65b224336bff3397d38f311c.jpg"></p>    <p><strong>下拉标示区</strong></p>    <p>微信类所有小程序页面,都会再下拉时出现微信为其统一设计的标示区。品牌展示区由品牌名称和微信小程序提示组成。目的是强化品牌和用户对小程序的产品感知。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/a76ebf956584a786f181e21d9fee28e6.jpg"></p>    <p><strong>下拉标示(iOS深浅两色方案)</strong></p>    <p>微信提供深浅两套配色方案,如此处标示所示,文字颜色不可自定义,开发者在自定义背景色时,应注意保证下拉标示的辨识度。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/31fb3930d7b16fb20a617963ded291cc.jpg"></p>    <p><strong>下拉标示(Android深浅两色方案)</strong></p>    <p>微信下拉提示用于给用户明确的小程序归属者,防止造假与作弊。此处标示提供深浅两套方案,文字颜色不可自定义,开发者在自定义背景色时,应注意保证下拉标示的辨识度。</p>    <p><strong>页面刷新交互(iOS)</strong></p>    <p>开发者可自定义需要通过下拉交互完成刷新的页面,此类交互微信将提供标准能力和样式。在样式上,刷新图标与下拉标示配色已捆绑,分为深浅两套方案,开发者在使用时,应注意头部文字、下拉标示与刷新图标的和谐统一。但用户在该类页面做出下拉交互时,出现微信小程序页面标准加载动画。开发者无需自行开发样式。</p>    <p>在开发者没有在页面顶部设计tab的情况下,若定义该页面可通过下拉动作刷新,则刷新后加载状态提示语小程序品牌展示区出现在标题栏之下,页面顶部。</p>    <p>开发者暂无法执行定义此加载效果。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/e39bffafeaa016c1f9cc89238f630fd2.jpg"></p>    <p>在开发者定义了页面顶部tab并定义该Tab下的内容页面可通过下拉动作刷新,则刷新后加载状态提示语小程序品牌展示区出现在顶部Tab之下,且仅刷新当前页面内容。开发者暂无法自行定义此加载效果。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/ac99d188943e758fe4812b9f20fe7871.jpg"></p>    <p><strong>页面刷新交互(Android)</strong></p>    <p>与iOS相同,在样式上,Android下刷新图标与下拉标示配色已捆绑,分为深浅两套方案,开发者在使用时,应注意头部文字、下拉标识与刷新图标的和谐统一。</p>    <p><strong>微信下拉标示错误使用案例</strong></p>    <p>请避免以下错误使用情况,确保信息的可见性和页面的可用性。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/fff9502bc7f144245bd014a5defb6455.jpg"></p>    <p><strong>页面内导航</strong></p>    <p>微信控件库提供深浅tab导航方案供开发者选择。tab栏需固定在页面顶部,便于用户在不同的tab页面间作切换。为确保点击区域,tab项不得超过4项。一个页面也不应出现一组以上的tab栏。</p>    <p>Tab栏选中态默认为100%实色,未选中态带有60%,其中选中态颜色可自定义。在自定义颜色选择中,务必保持Tab的可用性、可视性和可操作性。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/8c692c37f5fb5fe9e1d994dae68a50da.jpg"></p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/82b0d0bb1f3591776f1eba5ba523e19a.jpg"></p>    <p><strong>页面内加载反馈</strong></p>    <p>开发者可在小程序里自定义页面内容的加载样式。建议不管是使用在局部还是全体,自定义加载样式都应该尽可能简洁,并使用简单动画告知用户加载过程。开发者也可以使用微信提供的,统一的页面加载样式,如图中例所示。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/65d38071a56cc0d706d121562bcec955.jpg"></p>    <p><strong>模态加载</strong></p>    <p>模态的加载样式将覆盖整个页面的,由于无法明确告知具体加载的位置或内哦让那个将可能引起用户的焦虑感,因此应谨慎使用。除了在某些全局性操作下不要使用模态的菊花。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/26d60e6f45ca3c4d00f21d0eda9dba00.jpg"></p>    <p><strong>局部加载反馈</strong></p>    <p>即旨在触发加载的页面局部进行反馈,这样的反馈机制更加有针对性,页面改动小,是微信推荐的反馈方式。例如:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/3cdef013605930d189a544733c228e2c.jpg"></p>    <p><strong>加载反馈注意事项</strong></p>    <p>若加载时间较长,应提供取消操作,并使用进度条显示载入的进度。</p>    <p>载入过程中,应保持动画效果;无动画效果的加载很容易让人产生该界面已经卡死的错觉。</p>    <p>不要再同一个页面使用超过1个加载动画。</p>    <p><strong>结果反馈</strong></p>    <p>除了在用户等待的过程中需予以及时反馈外,对操作的结果也需要予以明确反馈。根据实际情况看,可选择不同的结果反馈样式。对于页面局部的操作,可在操作区域予以直接反馈,对于页面级操作结果,可使用toast、弹窗或结果页面展示。</p>    <p><strong>页面局部操作结果反馈</strong></p>    <p>对于页面局部的操作,可在操作区域予以直接反馈,例如点击多选控件前后如下图。对于常用控件,微信设计中心已提供控件库及WeUI控件库,其中的控件都已设计有完整的操作反馈。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/ee059068e8b6a2526dd2a9912ea0e2e0.jpg"></p>    <p>页面全局操作结果——toast</p>    <p>其中toast适用于轻量级的成功提示,1.5秒后自动消失,并不打断流程,对用户影响较小,适用于不需要强调成功专题的操作提醒。特别注意toast形式不适用于任何错误提醒。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/3828f3dc36b2ca7401b849f83087cbcf.jpg"></p>    <p>页面全局操作结果——弹框</p>    <p>对于需要用户明确知晓的操作结果状态可通过弹框来提示,并可附带下一步操作指引。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/9fd78df2a9c36b9681d4686156990d80.jpg"></p>    <p>页面全局操作结果——结果页</p>    <p>对于操作结果已经是当前流程的终结的情况,可使用操作结果页来反馈。这种方式最为强烈和明确的告知用户操作已经完成,并可根据实际情况给出下一步操作的指引。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/63bea3b7095e9721bd6c320a76bbe0dc.jpg"></p>    <p>3. 异常可控,有路可退</p>    <p>在设计任何的任务和流程时,异常状态和流程往往容易被忽略,而这些异常场景往往是用户最为沮丧和需要帮助的时候,因此需要格外注意异常状态的设计,在出现异常时予以用户必要的状态提示,并告知解决方案,使其有路可退。</p>    <p>要杜绝异常状态下,用户莫名其妙又无处可去,卡在某一个页面的情况。2.2中所提到的弹窗和结果页面都可作为异常状态的提醒方式。除此之外,在表单页面中尤其是表单项较多的页面中,还应明确指出出错项目,以便用户修改。</p>    <p><strong>异常状态——表单出错</strong></p>    <p>表单报错,在表单顶部告知错误原因,并标识出错误字段提示用户修改。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/aa4a1f5f3522bad081513251d2b4e7b4.jpg"></p>    <h2><strong>三、便捷优雅</strong></h2>    <p>从PC时代的物理键盘鼠标到移动端时代手指,虽然输入设备极大精简,但是手指操作的准确性却大大不如键盘鼠标精确。为了适应这个变化,需要开发者在设计过程中充分利用手机特性,让用户便捷优雅的操控界面。</p>    <p>1. 减少输入</p>    <p>由于手机键盘区域小且密集,输入困难的同时还易引起输入错误,因此在设计小程序页面时因尽量减少用户输入,理由现有接口或其他一些易于操作的选择控件来改善用户输入的体验。</p>    <p><strong>减少输入,巧用接口</strong></p>    <p>例如下图中,在添加银行卡时,采用摄像头识别SDK接口来帮助用户输入。除此之外微信团队还对外开放例如地理位置接口等多种SDK接口(详见微信JS-SDK),充分利用这些接口将大大提高用户输入的效率和准确性,进而优化体验。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/47173baa4ecac8bb00fd6708968cd50e.jpg"></p>    <p>除了利用接口外,在不得不让用户进行手动输入时,应尽量让用户做选择而不是键盘输入。一方面,回忆易于记忆,让用户在有限的选项中做选择通常来说是容易于完全靠记忆输入;另一方面,仍然是考虑到手机键盘密集的单键输入极易造成输入错误。例如图中,在用户搜索时提供搜索历史快捷选项将帮助用户快速进行搜索,而减少或避免不必要的键盘输入。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/a411b05134e6b01f9b992a430ae1edf3.jpg"></p>    <p>2. 避免误操作</p>    <p>一位内在手机上我们通过手指触摸屏幕来操控界面,手指的点击精确度远不如鼠标,因此在设计页面上需点击的控件时,需要充分考虑到其热区面积,避免由于可点击区域过小或过于密集而造成误操作。当简单的将原本在电脑屏幕上使用的界面不做任何适配直接移植到手机上时,往往就容易出现这样的问题。由于手机屏幕分辨率各不相同,因此最适宜点击像素尺寸也不完全一致,但换算成物理尺寸后大致是在7mm-9mm之间。在微信提供的标准控件库中,各种控件均已考虑到了页面点击效果以及不同屏幕的适配,因此再次推荐使用或模仿标准控件尺寸进行设计。</p>    <p>3. 利用接口提升性能</p>    <p>微信设计中心已推出了一套网页标准控件库,包括sketch设计控件库和WeUI重构代码库,这些控件都已充分考虑了移动端页面的特点,能够保证其在移动端页面上的可用性和操作性能;同事微信web开发团队也在不断完善和扩充微信JS-SDK接口,并提供微信公共库,利用这些资源不但能够为用户提供更加快捷的服务,而且对页面性能的提高有极大作用,无形之中提升了用户体验。</p>    <h2><strong>四、统一稳定</strong></h2>    <p>除了以上所提到的种种原则,建议接入微信的小程序还应该时刻注意不同页面间的统一性和延续性,在不同的页面尽量使用一致的控件和交互方式。</p>    <p>统一的页面体验和有延续性的界面元素都将帮助用最少的学习成本达成使用目标,减轻页面跳动所造成的不适感。正因如此,小程序可根据需要使用微信提供的标准控件,以达到统一稳定的目的。</p>    <h2><strong>五、视觉规范</strong></h2>    <p>为方便设计师进行设计,微信提供一套可供Web设计和小程序使用的基础控件库;同时方便开发者调用。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/9ce3b9448610445d6e8aae428e851c41.jpg"></p>    <p> </p>    <p>1. 字体规范</p>    <p>常用字号为20,18,17,16,14,13,11(pt),使用场景具体如下:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/e19d3c1a115541e7382bc382950565d2.jpg"></p>    <p>微信类字体的使用与所运行的系统字体保持一致,以导航为例,iOS与Android对应字体如下:</p>    <p><strong>导航(iOS和Android)</strong></p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/9617777bbcb5cc03271934180fb8120c.jpg"></p>    <p><strong>字体颜色</strong></p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/246ebd23ab5d4eaeb80eddc3b100ea6a.jpg"></p>    <p>主内容Black黑色,次要内容Grey灰色;时间戳与表单缺省值Light灰色;大段的说明内容而且属于主要内容用Semi黑;</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c742d57855b89eaffc565d38f7181ae8.jpg"></p>    <p>蓝色为链接用色,绿色为完成字样颜色,红色为出错用色Press与Disable状态分别降低透明度为20%与10%;</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/ec50001cce4cc02c1abf618564a9150b.jpg"></p>    <p>2. 列表视觉规范</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/ecb25f01e79a61685c4846dcd8bb9d16.jpg"></p>    <p>3. 表单输入视觉规范</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/70259522ae70e7ea561981771fd1ee49.jpg"></p>    <p>4. 按钮使用原则</p>    <p><strong>列表外按钮上文字标准</strong></p>    <p>按钮高度为44px下使用:颜色#000000 / #353535 字号18pt</p>    <p>可点状态下文字调整透明度为60%</p>    <p>不可点状态下文字调整透明度为30%</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/159c011f6be0fab9ccbfb8f475f98a90.jpg"></p>    <p>列表外按钮上文字标准</p>    <p>按钮高度为25px下使用:颜色#000000 / #353535 字号14pt</p>    <p>页面线性按钮上文字标准</p>    <p>按钮高度为35px下使用:颜色#09BB07 / #353535 字号16pt</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/4fefdcd2038bd43f637903dd0c2075d7.jpg"></p>    <p>5. 图标使用原则</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/c4ab949525d21b39f7b49a5c0e59b3ce.jpg"></p>    <p> </p>    <p> </p>    <p> </p>    <p>来自:http://www.jianshu.com/p/6b72c2de738b</p>    <p> </p>