首頁(yè)

Lottie 動(dòng)效設(shè)計(jì)

純純

動(dòng)效設(shè)計(jì),是 UI 設(shè)計(jì)當(dāng)中不可或缺的一環(huán)。大家對(duì)動(dòng)效的認(rèn)知也從最初認(rèn)為動(dòng)效只是為了美觀酷炫,到逐漸理解了動(dòng)效對(duì)于提升用戶體驗(yàn)和產(chǎn)品需求的重要作用。而導(dǎo)致這種認(rèn)知的轉(zhuǎn)變,相當(dāng)一部分原因是因?yàn)橛布阅艿陌l(fā)展和動(dòng)效輸出方式的優(yōu)化。

因?yàn)閯?dòng)效實(shí)現(xiàn)的過(guò)程就是設(shè)計(jì)師和開發(fā)之間互相博弈的過(guò)程。設(shè)計(jì)師可能通過(guò) AE 或者其他工具做出炫酷的效果,和開發(fā)對(duì)接就懵了。要么無(wú)法實(shí)現(xiàn),要么極其復(fù)雜。畢竟開發(fā)工程師要通過(guò)代碼把動(dòng)效實(shí)現(xiàn)出來(lái),設(shè)計(jì)師得用開發(fā)所能理解的語(yǔ)言來(lái)描述。就如同你能完美地解出一道數(shù)學(xué)題一樣,讓你把解題思路教給別人,你可能就沒(méi)那么順暢了。一方面取決于你的表述能力,而更重要的是對(duì)方的理解能力。過(guò)去所廣泛采用的通過(guò)動(dòng)效標(biāo)注輸出給開發(fā)的方式,都存在還原度的問(wèn)題。很多時(shí)候還原度達(dá)到 80% 可能都算比較好的了。

而今天要說(shuō)到的 Lottie 不僅可以 100% 還原動(dòng)效,而且無(wú)需動(dòng)效標(biāo)注。直接通過(guò) AE 輸出動(dòng)效文件給開發(fā)。開發(fā)人員直接調(diào)用,然后完美還原。

Lottie是什么?

Lottie 是 Airbnb 開源的一個(gè)動(dòng)畫渲染庫(kù),同時(shí)支持 Android、iOS、React Native 平臺(tái)。Lottie 支持渲染播放 AE 動(dòng)畫。通過(guò) AE 插件 bodymovie 導(dǎo)出 json 文件作為動(dòng)畫數(shù)據(jù)。


Lottie有什么用?

Lottie 可以應(yīng)用在 UI 設(shè)計(jì)的很多場(chǎng)景中。以下舉出幾個(gè)常用例子。

1. 動(dòng)態(tài)啟動(dòng)頁(yè)


2. 動(dòng)態(tài)圖標(biāo)/按鈕

3. 空頁(yè)面




以上僅列舉了部分常用案例,其實(shí) Lottie 的應(yīng)用場(chǎng)景遠(yuǎn)不止這些。在 APP 的多個(gè)模塊中都可以運(yùn)用,那么我們要如何將 Lottie 運(yùn)用在自己的工作項(xiàng)目中呢?那就要了解 Lottie 的原理了。


Lottie的原理是什么?

前面已經(jīng)提過(guò) Lottie 是 Airbnb 開源的一個(gè)動(dòng)畫渲染庫(kù)。我們可以理解為它是一個(gè)多功能的視頻播放器,開發(fā)人員需要將這個(gè)播放器部署到相應(yīng)的環(huán)境中。然后設(shè)計(jì)人員提供視頻(動(dòng)效文件)給開發(fā)人員,讓開發(fā)人員按照要求播放視頻文件,即可完成動(dòng)效的應(yīng)用。


假設(shè)該按鈕動(dòng)效一共10幀,整個(gè)按鈕切換分為兩部分,第一部分:從菜單切換到關(guān)閉(1-10幀);第二部分:從關(guān)閉切換到菜單(10-1)。我們可以讓開發(fā)通過(guò)以下控制方式,完成我們想要的效果。

按鈕動(dòng)效默認(rèn)顯示第1幀(菜單狀態(tài)),點(diǎn)擊按鈕以后開始播放動(dòng)效,動(dòng)效播放到第10幀的時(shí)候停止,并停在第10幀(關(guān)閉狀態(tài))。當(dāng)按鈕為關(guān)閉狀態(tài)(第10幀)時(shí),點(diǎn)擊按鈕以后動(dòng)效從第10幀倒放到第1幀(關(guān)閉狀態(tài)),并停在第1幀(菜單狀態(tài))。

通過(guò)以上方式就完成了對(duì)一個(gè)動(dòng)效按鈕的控制。而日常工作中我們可以靈活地運(yùn)用多種控制方式。

首先動(dòng)效的觸發(fā),可以是一次交互事件,比如點(diǎn)擊、滑動(dòng);也可以是監(jiān)聽到了廣播,比如網(wǎng)絡(luò)異常等。而觸發(fā)以后的動(dòng)效控制也多種多樣,可以從開始播放到結(jié)束,也可以進(jìn)行倒放;可以循環(huán)播放某一段動(dòng)效;也可以從某一幀播放到另一幀,或者某一個(gè)時(shí)間點(diǎn)播放到另一個(gè)時(shí)間點(diǎn);更多的控制方式需要大家在工作中慢慢挖掘。

Lottie支持的AE屬性

Lottie雖然能夠滿足多種場(chǎng)景需要,但是并非支持所有的 AE 效果。設(shè)計(jì)制作時(shí),需要考慮該效果是否支持。否則,會(huì)導(dǎo)致出錯(cuò)或者所用效果無(wú)法生效。



上圖為 Lottie 支持的主要 AE 屬性,此處有刪減掉部分不常用的屬性??梢源蜷_以下鏈接查看完整版http://airbnb.io/lottie/#/supported-features

需要注意的是文檔中雖然說(shuō)支持漸變,但是會(huì)出錯(cuò),所以大家在使用矢量圖形時(shí),請(qǐng)勿使用漸變效果。關(guān)于漸變效果的修復(fù)后續(xù)文章會(huì)提到,官網(wǎng)以后也會(huì)修復(fù)相關(guān)問(wèn)題,但是沒(méi)有確切時(shí)間。

通過(guò)上圖我們可以了解到,Lottie 支持的 AE 屬性基本包含以下幾類:

  • 基礎(chǔ)的形狀比如圓形、矩形、星形等,也可以支持鋼筆工具繪制的矢量形狀和從 AI 中導(dǎo)入的矢量圖形。
  • 支持位移、大小縮放、透明度、旋轉(zhuǎn)、修剪路徑、蒙版、遮罩這些基礎(chǔ)動(dòng)畫屬性。
  • 支持圖層間建立父子級(jí)關(guān)系(只支持圖層與圖層之間建立,當(dāng)圖層的屬性之間建立父子關(guān)系會(huì)失效,比如 A 圖層可以和 B 圖層建立父子關(guān)系,但是 A 圖層的位移屬性和 B 圖層的位移屬性單獨(dú)建立父子關(guān)系則不生效)。
  • 支持速度貝塞爾插值,可以搭配 Flow 插件生成各種緩動(dòng)效果。
  • 支持導(dǎo)入圖片。
  • 支持時(shí)間拉伸和時(shí)間重映射來(lái)通知時(shí)間和速度。

(原文章來(lái)源于:https://www.uisdc.com/lottie-dynamic-design-guide





inheritAttrs和$attrs的使用

seo達(dá)人

禁用繼承屬性inheritAttrs和$attrs的使用

Index.html:



<div id="app">

        <test-input

         v-bind:class="class1"

         v-bind:style="{fontSize:17+'px'}"

         v-bind:test1='test1'

         test2="test2"

         placeholder="placeholder test3"

        ></test-input>

    </div>



Index.js:



Vue.component('test-input', {

  inheritAttrs: false,

  template: &lt;label &gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;p v-bind="$attrs"&gt;測(cè)試&lt;/p&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input&nbsp; v-bind="$attrs"&gt;<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/label&gt;

})

new Vue({

  el:'#app',

  data:{

    class1:'class1note',

    test1:'test1note',

    test2:'test2note',

},

})



頁(yè)面結(jié)果:



當(dāng)將屬性修改為:inheritAttrs: true,的時(shí)候

頁(yè)面的結(jié)果:



包含了所有的屬性:



最后總結(jié):

當(dāng)inheritAttrs的屬性值為true(不寫該行屬性的結(jié)果同true,也就是inheritAttrs默認(rèn)為true),組件的根元素會(huì)自動(dòng)繼承所有的屬性!當(dāng)為false的時(shí)候,根元素只會(huì)繼承注冊(cè)的屬性,自建的屬性不會(huì)繼承??!

attrs:它包含了父組件所有的自建屬性!可以通過(guò)v?kind=“ attrs:它包含了父組件所有的自建屬性!可以通過(guò)v-kind=“attrs:它包含了父組件所有的自建屬性!可以通過(guò)v?kind=“attrs”將所有自建屬性賦給想要的元素上??!




交互設(shè)計(jì):如何做到周到?

資深UI設(shè)計(jì)者

在涉及體驗(yàn)細(xì)節(jié)的小需求上,避免所有的不周到,方才是周到


前兩篇,探討了個(gè)人對(duì)交互設(shè)計(jì)價(jià)值觀的理解,以及其對(duì)從業(yè)者和用戶的價(jià)值。


這一篇,我們就來(lái)探討一下,如何做到之前提到的 4 點(diǎn)價(jià)值觀。


先從“周到“開始。

僅為一家之言。歡迎留言交流,說(shuō)出你的看法。



01 怎樣算是周到?


本著嚴(yán)謹(jǐn)?shù)膽B(tài)度,先捋一捋概念。


常言道,金杯銀杯,不如百姓口碑。


同理,周不周到,最終還是用戶說(shuō)了算。那用戶是怎么評(píng)判的呢?通常是憑主觀感受。


拿上篇文章中網(wǎng)易號(hào)文章編輯頁(yè)面的例子來(lái)說(shuō),因?yàn)椤氨4妗焙汀按娌莞濉惫δ茏龅牟粔蚝?,所以給筆者留下了不夠周到的印象。


翻譯過(guò)來(lái),就是,一些體驗(yàn)細(xì)節(jié),影響了用戶的印象。


《設(shè)計(jì)師要懂心理學(xué)》這本書中有條原則,叫“整體認(rèn)知主要依靠周邊視覺(jué)而非中央視覺(jué)”。


講的是視覺(jué)和 UI 層面的用戶認(rèn)知。就是說(shuō),用戶會(huì)關(guān)注并不顯眼的邊邊角角的設(shè)計(jì),而且這些邊邊角角的設(shè)計(jì)會(huì)影響用戶對(duì)整體設(shè)計(jì)的認(rèn)知和印象。


舉個(gè)例子。假如說(shuō),微博信息流頁(yè)面的掃一掃圖標(biāo),在風(fēng)格、大小等方面和其它圖標(biāo)不統(tǒng)一,就會(huì)給用戶留下比較糟糕的印象,用戶很可能會(huì)覺(jué)得微博的設(shè)計(jì)不夠?qū)I(yè)。


這些是 UI 設(shè)計(jì)層面的。在交互設(shè)計(jì)層面,也是類似的道理:體驗(yàn)細(xì)節(jié)會(huì)影響用戶的認(rèn)知。


總的來(lái)說(shuō),至少在常用的交互細(xì)節(jié)上,不要給用戶留下負(fù)面印象,也不要讓用戶產(chǎn)生負(fù)面情緒,避免所有的不周到,才算是周到。



02 如何做到周到?


個(gè)人覺(jué)得,最關(guān)鍵的地方,是滿足好小需求。



啥是小需求?


個(gè)人觀點(diǎn),籠統(tǒng)的講, 小需求是一種共性需求, 主要是一些體驗(yàn)細(xì)節(jié)。比如信息的分類與展示、銜接不同頁(yè)面的各種彈窗與提示、對(duì)各種狀態(tài)的提示、對(duì)各種情況的到位解釋,等等。


有小需求,就有大需求。


所謂大需求,更多是一種個(gè)性需求, 不同的產(chǎn)品,會(huì)有不同的大需求。比如短視頻產(chǎn)品,它的大需求會(huì)包含視頻的拍攝、上傳、播放等;資訊類產(chǎn)品,它的大需求則包含文章的撰寫、編輯、發(fā)布、查看等。



工作經(jīng)歷,筆者見過(guò)一些交互設(shè)計(jì)不夠周到的產(chǎn)品。它們的共同特點(diǎn)就是: 大需求基本上得到了很好的滿足,小需求沒(méi)有得到很好的滿足。


這一大段,就圍繞如何更好的滿足小需求來(lái)展開。主要建議如下。



1 工欲善其事,必先利其器


筆者有個(gè)客戶,是從事教育行業(yè)的,之前并沒(méi)有接觸過(guò)互聯(lián)網(wǎng)行業(yè)的產(chǎn)品與設(shè)計(jì)工作。


這位客戶找到筆者的時(shí)候,是想要設(shè)計(jì)一款小程序的界面。當(dāng)時(shí)客戶非常自豪的對(duì)筆者說(shuō),這個(gè)(原型)是我用墨刀畫的,現(xiàn)學(xué)現(xiàn)做。


說(shuō)起墨刀,本人也用過(guò)。和 Axure 相比,確實(shí)好用太多,在簡(jiǎn)潔性和智能性方面,感覺(jué)和 Sketch 有異曲同工之處。


關(guān)于墨刀如何好用,網(wǎng)上已經(jīng)有太多溢美之詞。筆者就結(jié)合自己的使用經(jīng)歷,簡(jiǎn)單總結(jié)一下:

1 好用,上手快。零基礎(chǔ),只要會(huì)操作常用辦公軟件,簡(jiǎn)單學(xué)一下就能上手

2 內(nèi)置主流控件(iOS,安卓,WeUI等),非常方便

3 能在手機(jī)端預(yù)覽。加入鏈接和動(dòng)效后,會(huì)很酷

4 能查看頁(yè)面之間的跳轉(zhuǎn)邏輯。借助工作流功能,可實(shí)現(xiàn)這一點(diǎn)


以上主要是墨刀自身的優(yōu)點(diǎn)。結(jié)合本段主題,我們?cè)偬接懸幌?,?duì)于日常工作,墨刀這把利器有哪些優(yōu)勢(shì)。


1.1 可以把更多精力花在創(chuàng)作上


當(dāng)我們不會(huì)用一款工具時(shí),通常會(huì)有一些挫敗感。如果必須要用,接著很可能就會(huì)有一點(diǎn)焦灼了。


而墨刀,基本上不會(huì)讓我們體會(huì)到這些感覺(jué)。


我們也不用花無(wú)謂的時(shí)間去學(xué)習(xí)一些艱難的高深的技法,而是可以把更多的時(shí)間花在“創(chuàng)作”這件事上。


1.2 可以更好的去滿足小需求


部分公司,可能面臨如下情況。


公司沒(méi)有專門的交互設(shè)計(jì)師,產(chǎn)品的原型由產(chǎn)品經(jīng)理來(lái)畫。產(chǎn)品經(jīng)理本身還兼任項(xiàng)目經(jīng)理。


如果項(xiàng)目又特別趕,客觀上,產(chǎn)品經(jīng)理確實(shí)沒(méi)有太多時(shí)間去關(guān)注交互的體驗(yàn)細(xì)節(jié)。

主觀上,如果產(chǎn)品經(jīng)理對(duì)這些交互細(xì)節(jié)的興趣或重視程度不足、同時(shí)產(chǎn)品經(jīng)理上面的決策層也不去抓這些體驗(yàn)細(xì)節(jié),最終的結(jié)果,就是產(chǎn)品的原型上可能會(huì)丟失很多體驗(yàn)細(xì)節(jié)。


筆者就有類似的經(jīng)歷。


一款 App,產(chǎn)品經(jīng)理用 Axure 畫的原型。評(píng)審或宣講需求的時(shí)候,大家都是在電腦或會(huì)議室大屏幕上來(lái)看這個(gè)原型,同時(shí)所有人關(guān)注的是大需求。


理解完大需求,會(huì)有部分同學(xué)就大需求提出自己的看法或建議。最后,才會(huì)有部分同學(xué)就小需求指出不足并提出建議。


受限于職責(zé)、時(shí)間等各種因素,大家也不可能針對(duì)小需求提出太多建議。結(jié)果就是,仍然會(huì)有相當(dāng)數(shù)量的小需求被遺漏,或者沒(méi)有被很好的滿足。


墨刀有兩個(gè)功能,可以較好的規(guī)避這些問(wèn)題。一個(gè)是工作流功能,一個(gè)是手機(jī)端預(yù)覽功能。


工作流功能,類似流程圖,即把所有頁(yè)面以合乎邏輯的方式鏈接起來(lái)??陀^上,會(huì)促使我們畫出所有包含小需求的頁(yè)面,包括彈窗、狀態(tài)提示等。


支持多人的手機(jī)端預(yù)覽功能,使得我們?cè)谑謾C(jī)上,可以通過(guò)點(diǎn)擊等方式來(lái)模擬體驗(yàn)這款 App。這樣的環(huán)境下,我們會(huì)更容易理解大需求,也更容易發(fā)現(xiàn)小需求存在的問(wèn)題。


所以,個(gè)人的建議,就是用墨刀來(lái)畫原型,同時(shí)把工作流和多人手機(jī)端預(yù)覽(針對(duì) App、小程序)這兩項(xiàng),作為硬性標(biāo)準(zhǔn)。


2 去用去感受


一款產(chǎn)品,在體驗(yàn)或使用時(shí),非常容易發(fā)現(xiàn)問(wèn)題。


因?yàn)檫@時(shí)候,我們可以松弛下來(lái),把自己切換成普通用戶。忘掉所有費(fèi)腦子的需求和設(shè)計(jì)原理,只依賴經(jīng)驗(yàn)和直覺(jué)來(lái)用這款產(chǎn)品。我們的主觀感受,會(huì)告訴我們,這款產(chǎn)品的交互,到底周不周到。


據(jù)陸樹燊的《微信團(tuán)隊(duì)的實(shí)驗(yàn)室文化》一文顯示,張小龍?jiān)u審微信的功能,不看原型圖,不看設(shè)計(jì)稿,也不看 Demo,而是體驗(yàn)前后臺(tái)代碼開發(fā)好后的產(chǎn)品。這就意味著,如果一個(gè)功能在給到用戶前有 N 個(gè)方案,就會(huì)有 N 個(gè)方案對(duì)應(yīng)的前后臺(tái)代碼。


一定程度上,微信團(tuán)隊(duì)就是通過(guò)這種在正式發(fā)布前反復(fù)試錯(cuò)、不斷打磨的方式,最終給用戶提供了優(yōu)秀的交互體驗(yàn)。


估計(jì),絕大部分團(tuán)隊(duì)和公司,都做不到微信這樣,開發(fā) N 個(gè)版本,并去一一體驗(yàn)和比較這 N 個(gè)版本。


無(wú)法體驗(yàn)已經(jīng)開發(fā)好的 N 個(gè)版本。但是,在真實(shí)的設(shè)備上體驗(yàn) N 個(gè)原型,我們還是可以做到的。


原型雖然沒(méi)有開發(fā)好的產(chǎn)品那么順暢和流暢,但是,如果用墨刀在手機(jī)端體驗(yàn)一款加了鏈接和動(dòng)效的 App 原型,一樣可以發(fā)現(xiàn)很多問(wèn)題。


不過(guò),根據(jù)經(jīng)歷和觀察,筆者發(fā)現(xiàn),我們?nèi)祟?,是不喜歡體驗(yàn)原型的。

想一想,平常工作中,我們可能會(huì)樂(lè)此不疲的去體驗(yàn)開發(fā)好的測(cè)試版產(chǎn)品。但對(duì)于原型,大部分時(shí)候,都是匆匆忙忙就過(guò)掉了。


個(gè)人有個(gè)猜測(cè),就好像人類喜歡逗貓遛狗、卻不太喜歡逗桌子上的模型貓和模型狗一樣,我們?nèi)祟愂遣惶敢饣ㄙM(fèi)太多時(shí)間和精力去和原型這種“假產(chǎn)品”互動(dòng)的。


所以,某種程度上,體驗(yàn)原型,是一種反人性的行為。


但卻是一種非常經(jīng)濟(jì)和的方法。


因?yàn)槭紫?,大部分時(shí)候,我們都是先選中一個(gè)原型方案,然后去設(shè)計(jì)、去開發(fā);其次,等到開發(fā)好進(jìn)入測(cè)試環(huán)節(jié),這時(shí)候,原型往往就成了測(cè)試的標(biāo)準(zhǔn),依靠測(cè)試來(lái)優(yōu)化原型是不現(xiàn)實(shí)的。


所以,結(jié)合現(xiàn)狀,綜合來(lái)看,小需求能不能得到很好的滿足,很大程度上還是要依靠原型。


也就是說(shuō),很有必要對(duì)原型進(jìn)行優(yōu)化。具體方法,就是在真實(shí)的設(shè)備上體驗(yàn)原型、反復(fù)體驗(yàn)、多人體驗(yàn),并進(jìn)行相應(yīng)優(yōu)化。


3 參考設(shè)計(jì)規(guī)范


如前所述,用利器來(lái)創(chuàng)作原型,反復(fù)在原型里體驗(yàn)產(chǎn)品,這些強(qiáng)調(diào)的是內(nèi)部力量,即自身的努力。


下面,再談一談外部力量,即外界海量的知識(shí)與經(jīng)驗(yàn)。


說(shuō)起外界知識(shí),除了直接參考其他產(chǎn)品的設(shè)計(jì)以外,大家參考最多的,可能就是《iOS Human Interface Guidelines》和《Material Design》這些設(shè)計(jì)規(guī)范了。


根據(jù)筆者的實(shí)際經(jīng)驗(yàn),這兩個(gè)來(lái)自蘋果和谷歌的設(shè)計(jì)規(guī)范,很多時(shí)候,我們都是拿它們當(dāng)字典用。即哪一點(diǎn)不會(huì)或不太確定的時(shí)候,去翻一翻查一查。


雖然這倆規(guī)范很優(yōu)秀,但是卻很難被我們“物盡其用”,因?yàn)樗鼈兊闹R(shí)體系過(guò)于龐大,有點(diǎn)像一本字典。拿著“字典”里的每一條原則去檢驗(yàn)我們的交互設(shè)計(jì),這是很難做到的。


但是有一個(gè)設(shè)計(jì)規(guī)范,去非常適合拿來(lái)檢驗(yàn)我們的交互設(shè)計(jì),那就是尼爾森十大可用性原則。


太詳細(xì)的就不贅述了,這里我們?cè)俸?jiǎn)單回顧下這十條原則。


1) 狀態(tài)可見
用戶時(shí)刻清楚,正在發(fā)生什么


2) 環(huán)境貼切
營(yíng)造一個(gè)用戶熟悉的環(huán)境,比如語(yǔ)言、詞語(yǔ)、圖標(biāo)等


3) 用戶可控
控制權(quán)交給用戶,并且多數(shù)時(shí)候,考慮支持撤銷重做


4) 一致性
方方面面的統(tǒng)一,比如文案、視覺(jué)、操作等


5) 防錯(cuò)
盡最大可能,幫助用戶,避免用戶犯錯(cuò)


6) 易?。鹤R(shí)別比記憶好
通過(guò)把組件、按鈕等元素可見化,降低用戶記憶負(fù)擔(dān)


7) 靈活
優(yōu)先考慮人數(shù)最多的中級(jí)用戶,同時(shí)兼顧高級(jí)和初級(jí)用戶


8) 易掃:優(yōu)美且簡(jiǎn)約
閱讀體驗(yàn)要好,掃視體驗(yàn)也要好;保持簡(jiǎn)約和美觀


9) 容錯(cuò)
幫助用戶識(shí)別、診斷,并從錯(cuò)誤中恢復(fù)


10) 人性化幫助
日常的使用最好脫離幫助文檔,但有必要提供幫助文檔



個(gè)人非常建議,在日常工作中,把尼爾森十大可用性原則作為一把標(biāo)尺,來(lái)時(shí)時(shí)刻刻檢驗(yàn)我們的交互設(shè)計(jì)。



結(jié)語(yǔ)


交互設(shè)計(jì),在涉及體驗(yàn)細(xì)節(jié)的小需求上,避免所有的不周到,方才是周到。


用利器創(chuàng)作原型,要包含流程圖;多體驗(yàn)原型或產(chǎn)品,以體驗(yàn)結(jié)果為準(zhǔn)、而非討論結(jié)果為準(zhǔn);參考優(yōu)秀的設(shè)計(jì)規(guī)范,用尼爾森十大可用性原則來(lái)檢驗(yàn)原型。


以上三點(diǎn),可以幫助我們做到交互設(shè)計(jì)的周到。

其中,個(gè)人認(rèn)為,最為核心的是第二點(diǎn):多體驗(yàn)原型或產(chǎn)品,直到自己覺(jué)得周到為止。



文章來(lái)源:站酷

快速掌握黃金分割構(gòu)圖法

資深UI設(shè)計(jì)者

自從做設(shè)計(jì)以來(lái)經(jīng)常會(huì)看到一些很高大上的理論,例如:格式塔法則、網(wǎng)格系統(tǒng)、黃金分割法等等,這些詞語(yǔ)給人第一印象就是很高大上,很難學(xué)會(huì),也有很多設(shè)計(jì)師看到這些理論就被嚇到,認(rèn)為自己學(xué)不會(huì),也不想學(xué),因?yàn)槔碚撝R(shí)確實(shí)是學(xué)起來(lái)很枯燥。對(duì)于初學(xué)者的設(shè)計(jì)師來(lái)說(shuō),這些理論可以在短時(shí)間不用學(xué)太多,但是對(duì)已經(jīng)工作幾年的設(shè)計(jì)師來(lái)說(shuō),這些設(shè)計(jì)理論知識(shí)也是必不可少的。

只有掌握設(shè)計(jì)中必要的設(shè)計(jì)知識(shí),才能讓自己的設(shè)計(jì)眼界、技能得到提升。就我個(gè)人而言,我在設(shè)計(jì)初期也是很反感這些所謂的理論知識(shí),對(duì)于我來(lái)說(shuō)簡(jiǎn)單通俗的教學(xué)才是最容易讓人接受的,理論太深?yuàn)W,我真的無(wú)法從中體會(huì)到真正的奧秘。但是,越到后面,我越喜歡研究那些設(shè)計(jì)理論知識(shí),因?yàn)槲以絹?lái)越懂得那些理論的重要性,對(duì)我的設(shè)計(jì)也有很大的幫助。所以今天我采用通俗易懂的方法,教大家去理解和掌握這些高大上的設(shè)計(jì)理論知識(shí)。

今天主要分享我們經(jīng)常聽到的黃金分割構(gòu)圖法。

黃金分割構(gòu)圖法:是一種由古希臘人發(fā)明的幾何學(xué)公式,遵循這一規(guī)則的構(gòu)圖形式被認(rèn)為是「和諧」的,在欣賞一件形象作品時(shí)這一規(guī)則的意義在于提供了一條被合理分割的幾何線段。

黃金分割構(gòu)圖法的基本理論來(lái)自于黃金比例 ── 1 : 1.618。

黃金分割構(gòu)圖法運(yùn)用到海報(bào)設(shè)計(jì)、畫冊(cè)設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、繪畫、服裝設(shè)計(jì)、logo 設(shè)計(jì)、電視電影、建筑等等領(lǐng)域。在攝影中也經(jīng)常會(huì)引入黃金分割比例,可以讓照片感覺(jué)更自然、舒適,更能吸引觀賞者,給人一種賞心悅目的視覺(jué)感受。

優(yōu)秀案例分析

我們先賞析一些運(yùn)用黃金分割法的優(yōu)秀案例,通過(guò)賞析能讓我們體會(huì)到它的美和重要性。

1. 在海報(bào)中的應(yīng)用

從上面的 2 張人物海報(bào)案例中,可以看出都利用了黃金分割螺旋法的技巧,當(dāng)整張圖作為背景時(shí),我們不知道圖片主題位置的掌控時(shí),就可以采用黃金分割法的原則。對(duì)于人物,可以根據(jù)想要突出的人物某一部位,直接采用這種分割方法快速找到版面位置

下面2張海報(bào)是通過(guò)圖形和文字的結(jié)合,主題文字排版的位置也都剛剛好是黃金分割的編排,帶給人一種美的、舒適的畫面感,圖片和文字在版面的比例剛好是 1 : 0.618。

2. 在網(wǎng)頁(yè)中的應(yīng)用

上面 2 個(gè)網(wǎng)頁(yè)都采用了黃金分割的原則,大體將版面分為圖片區(qū)+文案區(qū),比例為 1 : 0.618。上面同時(shí)采用了網(wǎng)格重疊的形式,而下面的就是最基本的黃金分割比例。版面的編排整體給人一種呼吸感、有序的、層次分明的視覺(jué)感受,并且瀏覽的順序也是井井有條,如下圖閱讀順序指引:

3. 在繪畫上的應(yīng)用

像我們看熟悉的名畫「蒙娜麗莎」、「維納斯的誕生」等也符合黃金分割的比例。黃金分割比例也在這些作品上經(jīng)過(guò)了歷史認(rèn)證,利用黃金分割布局,讓畫面更耐看、更精致。

4. 在攝影上的應(yīng)用

在攝影中也經(jīng)常會(huì)引入黃金分割比例,可以讓照片感覺(jué)更自然、舒適,更能吸引觀賞者,給人一種賞心悅目的視覺(jué)感受。使用黃金分割的攝影可以制造出一種空曠、寂靜的視覺(jué)效果,也可以制造出一種特寫鏡頭的效果。不知道怎么拍照好看,學(xué)會(huì)這一招你的攝影立馬高大上。

5. 在建筑上的應(yīng)用

在建筑設(shè)計(jì)中的運(yùn)用也有很多案例,例如上面的金字塔和泰姬陵的多處布局都能看出黃金分割,第三張中國(guó)古建筑也都運(yùn)用了黃金分割構(gòu)圖。自古以來(lái)很多文化建筑都采用了這個(gè)構(gòu)圖,讓建筑看起來(lái)更加美觀、耐看、精致。

怎么畫螺旋黃金分割圖

了解了螺旋黃金分割法的用途和好處,我們最主要的是需要知道怎么來(lái)畫這個(gè)螺旋黃金圖。

1. 新建畫布

2. 畫正方形

這里畫正方形是最關(guān)鍵的一步,我們只要知道螺旋黃金圖的比例就可以很快的畫出來(lái)。

螺旋黃金圖比例為:13 : 8 : 5 : 3 : 2 : 1

只要知道螺旋黃金圖的比例我們就可以開始畫正方形了,簡(jiǎn)單的正方形不用我多說(shuō)吧。我們按 10 倍的比例來(lái)畫圖,簡(jiǎn)單的意思就是前面的螺旋黃金圖比例都乘 10,變?yōu)?130 : 80 : 50 : 30 : 20 : 10,再根據(jù)這個(gè)數(shù)字畫出 6 個(gè)正方形。

正方形畫好后按照這個(gè)轉(zhuǎn)圈的順序排好即可。

3. 畫圓弧線

正方形畫好后,畫圓弧線,可以通過(guò)畫正圓得到。

圓弧線為正圓的四分之一,圓的半徑為每個(gè)不同正方形的邊長(zhǎng),通過(guò)不同大小的正方形畫出不同大小的圓弧即可。

開始畫圓?。阂源笳叫蔚挠蚁陆菫閳A心畫正圓,注意相切位置,畫好后刪除多余的錨點(diǎn)。

△ 圓心位置

△ 相切位置

△ 刪除多余錨點(diǎn)

△ 圓弧畫完后

到了這一步基本也就出現(xiàn)我們想要的螺旋黃金圖,最后只需要將我們的正方形改成描邊的模式即可。

△ 最終圖形

這里展示一下第二種方法:

螺旋黃金比1 : 1.618在畫面中怎么看?

利用黃金分割法的案例實(shí)操

說(shuō)了這么多,沒(méi)有實(shí)際的操作案例你們是不是也很頭痛,到底拿到這個(gè)技巧怎么去使用呢?在我這里例舉一個(gè)橫版和一個(gè)豎版的案例。

1. 橫版

找素材

這里找來(lái)幾張圖片,因?yàn)槭亲龇治霭咐?,所以我就選擇我自己喜歡的圖,我選擇的是圖1。

圖片調(diào)整

圖片確定后,我們就需要把圖放到我們的畫布中。

但是問(wèn)題來(lái)了,一般我們的設(shè)計(jì)尺寸基本是不會(huì)和找到的素材是一樣大的,我們到底要怎樣放大圖片呢?圖片中哪些元素可以忽略,哪些需要重視?螺旋黃金分割法就可以用上了。

利用我們的螺旋黃金分割圖,放在我們的版面中。接下來(lái)就放大我們的素材圖片,分析圖片結(jié)構(gòu)。圖片上方都是天空,左邊是海和天空,只有右下比較復(fù)雜,有人和零碎的石頭,所以我們這里圖片就以人為畫面中的焦點(diǎn),那么我們的螺旋圖就需要改變一下位置。

調(diào)整圖片大小和位置,將圖片中的人物放在螺旋圖的焦點(diǎn)位置,這樣我們的版面就快速地確定了視覺(jué)焦點(diǎn)。

文字排版

將文字排版在畫布中,再根據(jù)文字豎排的樣式,和人閱讀的習(xí)慣,調(diào)整圖的方向和文字位置,使人看向主題文字,給人一種指引的方向。

總結(jié):主要利用螺旋黃金分割法調(diào)整圖片的位置焦點(diǎn),使畫面中心達(dá)到舒適耐看和精致的視覺(jué)效果。

標(biāo)記分析圖:

這個(gè)案例我就不做太多的講解,因?yàn)楹芎?jiǎn)單,直接利用螺旋黃金分割構(gòu)圖的方法,將版面按1 : 0.618的比例劃分,然后在這個(gè)比例畫布中排版文案和圖片。

2. 豎版案例

圖片位置排版

素材選擇上面的圖2,這里就做一張豎版的海報(bào)。

將素材圖放在畫布中,準(zhǔn)備好我們的螺旋黃金分割圖,也放在畫布中。根據(jù)圖片本身的特點(diǎn),人物只有上半身,所以將圖片放在底部最為合適。至于人物應(yīng)該靠中間還是靠邊,我們同可以根據(jù)圖片人物本身的姿勢(shì)判斷,根據(jù)人物是微抬頭向上看,角度約 30 度,所以選擇將人物靠邊。

再就是人物具體位置的掌控,我們同樣和上面的案例一樣直接利用螺旋黃金分割圖做參考位置選擇,所以就很快找到合適的位置,如上面右圖。

填充背景和文案

我們將背景顏色填充為天空統(tǒng)一的色彩,建立網(wǎng)格,將文案排版在畫布中,上面主要是海報(bào)中的主要文案及主題文案,文案和圖片的總體比例為1 : 0.618,遵循我們的黃金法則。

根據(jù)圖片的氣質(zhì),圖片中的色彩和人物都屬于文藝氣質(zhì),清新、寂靜、雅致的感覺(jué),所以我們這里可以選襯線體宋體,結(jié)合韓文來(lái)體現(xiàn)整體的氣質(zhì)。

效果展示

最后看看海報(bào)效果吧,主要講解螺旋黃金分割圖的使用,所以排版方面講解的比較簡(jiǎn)單,以及主題文字都采用最簡(jiǎn)單粗暴的字體,沒(méi)有過(guò)多的修飾。

總結(jié)

文章分享了螺旋黃金分割構(gòu)圖的用途,很廣泛,包含海報(bào)設(shè)計(jì)、畫冊(cè)設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、繪畫、服裝設(shè)計(jì)、logo設(shè)計(jì)、電視電影、建筑、攝影等等領(lǐng)域,以及分享了黃金分割圖形的畫法,3 個(gè)簡(jiǎn)單的案例實(shí)操,利用黃金分割構(gòu)圖來(lái)幫助我們構(gòu)圖和排版,最有利于我們對(duì)圖片焦點(diǎn)位置的選擇和排版分布的掌控。

文章來(lái)源:優(yōu)設(shè)

需求太多做不過(guò)來(lái)?試試KANO 模型!

資深UI設(shè)計(jì)者

在做項(xiàng)目做產(chǎn)品的過(guò)程中,作為互聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)師的我們,經(jīng)常會(huì)接到來(lái)自 PM/領(lǐng)導(dǎo)/業(yè)務(wù)方等等的各種需求。有的時(shí)候,哪怕一個(gè)小功能、次次次級(jí)頁(yè)面都會(huì)爭(zhēng)得不可開交。這個(gè)時(shí)候怎么辦呢?到底應(yīng)該聽誰(shuí)的呢?哪個(gè)需求優(yōu)先級(jí)高?哪種呈現(xiàn)方法是更靠譜的呢?

今天我們就來(lái)聊聊一個(gè)非常實(shí)用的需求分級(jí)方法 — KANO模型。

什么是KANO模型?

KANO 模型是東京理工大學(xué)教授狩野紀(jì)昭(Noriaki Kano)發(fā)明的對(duì)用戶需求分類和排序的工具。通過(guò)分析用戶對(duì)產(chǎn)品功能的滿意程度,對(duì)產(chǎn)品功能進(jìn)行分級(jí),從而確定產(chǎn)品實(shí)現(xiàn)過(guò)程中的優(yōu)先級(jí)。

KANO 模型是一個(gè)典型的定性分析模型,一般不直接用來(lái)測(cè)量用戶的滿意度,常用于識(shí)別用戶對(duì)新功能的接受度。幫助企業(yè)了解不同層次的用戶需求,找出顧客和企業(yè)的接觸點(diǎn),挖掘出讓顧客滿意至關(guān)重要的因素。

1. KANO模型的需求分類

在 KANO 模型中,根據(jù)不同類型的需求與用戶滿意度之間的關(guān)系,可將影響用戶滿意度的因素分為五類:基本型需求、期望型需求、興奮型需求、無(wú)差異需求、反向型需求。

興奮型需求

所謂暗處,用戶意想不到的,需要挖掘/洞察。若不提供此需求,用戶滿意度不會(huì)降低;若提供此需求,用戶滿意度會(huì)有很大的提升。

當(dāng)用戶對(duì)一些產(chǎn)品或服務(wù)沒(méi)有表達(dá)出明確的需求時(shí),企業(yè)提供給顧客一些完全出乎意料的產(chǎn)品屬性或服務(wù)行為,使用戶產(chǎn)生驚喜,用戶就會(huì)非常滿意,從而提高用戶忠誠(chéng)度。

這類需求往往是代表顧客的潛在需求,企業(yè)的做法就是去尋找發(fā)掘這樣的需求,領(lǐng)先對(duì)手。

期望型需求

所謂癢處。當(dāng)提供此需求,用戶滿意度會(huì)提升;當(dāng)不提供此需求,用戶滿意度會(huì)降低。

它是處于成長(zhǎng)期的需求,客戶、競(jìng)爭(zhēng)對(duì)手和企業(yè)自身都關(guān)注的需求,也是體現(xiàn)競(jìng)爭(zhēng)能力的需求。

對(duì)于這類需求,企業(yè)的做法應(yīng)該是注重提高這方面的質(zhì)量,力爭(zhēng)超過(guò)競(jìng)爭(zhēng)對(duì)手。

基本型需求

所謂痛點(diǎn)。對(duì)于用戶而言,這些需求是必須滿足的,理所當(dāng)然的。當(dāng)不提供此需求,用戶滿意度會(huì)大幅降低,但優(yōu)化此需求,用戶滿意度不會(huì)得到顯著提升。

對(duì)于這類需求,是核心需求,也是產(chǎn)品必做功能,企業(yè)的做法應(yīng)該是注重不要在這方面減分,需要企業(yè)不斷調(diào)查和了解用戶需求,并通過(guò)合適的方法在產(chǎn)品中體現(xiàn)這些要求。

無(wú)差異需求

用戶根本不在意的需求,對(duì)用戶體驗(yàn)毫無(wú)影響。

無(wú)論提供或不提供此需求,用戶滿意度都不會(huì)有改變。對(duì)于這類需求,企業(yè)的做法應(yīng)該是盡量避免。

反向型需求

用戶根本都沒(méi)有此需求,提供后用戶滿意度反而下降。

總而言之,我們做產(chǎn)品設(shè)計(jì)時(shí),需要盡量避免無(wú)差異型需求、反向型需求,至少做好基本型需求、期望型需求,如果可以的話再努力挖掘興奮型需求。

如何使用KANO模型?

KANO 模型分析方法主要是通過(guò)標(biāo)準(zhǔn)化問(wèn)卷進(jìn)行調(diào)研,根據(jù)調(diào)研結(jié)果對(duì)各因素屬性歸類,解決需求屬性的定位問(wèn)題,以提高用戶滿意度。

1. 明確目的

做之前,必須明白調(diào)研的目的是什么,是否合適用 KANO 模型解決,為什么要用 KANO 模型解決。

例如:企業(yè)為賣家開發(fā)的 CRM 工具,隨著賣家客戶的不斷增長(zhǎng),CRM 系統(tǒng)中需引入一些新的功能滿足其管理需求。而我們作為產(chǎn)品開發(fā)設(shè)計(jì)者,需要知道這些功能哪些是基本功能,哪些是增值功能,功能的優(yōu)先級(jí)又該如何排列等等。

KANO 模型就可以幫助我們很好的貼和業(yè)務(wù)需求,從具備程度和滿意程度這兩個(gè)維度出發(fā),將 CRM 中新增的功能進(jìn)行區(qū)分和排序,從而知道:哪些功能是一定要有,否則會(huì)直接影響用戶體驗(yàn)的(基礎(chǔ)屬性、期望屬性);哪些功能是沒(méi)有時(shí)不會(huì)造成負(fù)向影響,擁有時(shí)會(huì)給用戶帶來(lái)驚喜的(興奮屬性);哪些功能是可有可無(wú),具備與否對(duì)用戶都不會(huì)有大影響的(無(wú)差異因素)。

2. 設(shè)計(jì)問(wèn)卷

此問(wèn)卷調(diào)查表劃分維度有兩個(gè):提供時(shí)的滿意程度、不提供時(shí)的滿意程度。而滿意程度被劃分為 5 級(jí)(非常滿意、滿意、一般、不滿意、很不滿意),因?yàn)槿说臐M意程度往往是漸變的,而不是突變的。

滿意程度的文案可根據(jù)實(shí)際問(wèn)題靈活修改,如使用(非常喜歡、理應(yīng)如此、無(wú)所謂、勉強(qiáng)接受、很不喜歡 或者 非常有用、挺實(shí)用、無(wú)所謂、不實(shí)用、很不實(shí)用 )更加形象的描述。

例如:在「通訊錄」中,是否需要直接提供「撥打電話」的按鈕?問(wèn)卷設(shè)置正反兩題:

如果我們?cè)凇竿ㄓ嶄洝沟目蛻袅斜碇?,提供「撥打電話」的按鈕,你的感受是:

A.非常喜歡 B.理應(yīng)如此 C.無(wú)所謂 D.勉強(qiáng)接受 E.很不喜歡

如果我們?cè)凇竿ㄓ嶄洝沟目蛻袅斜碇?,沒(méi)有提供「撥打電話」的按鈕,你的感受是:

A.非常喜歡 B.理應(yīng)如此 C.無(wú)所謂 D.勉強(qiáng)接受 E.很不喜歡

為了更加形象且一目了然,我們可以如下設(shè)計(jì)。填問(wèn)卷的人只需要在空白處打勾打叉就好了,非常方便。

設(shè)計(jì)問(wèn)卷的過(guò)程中,有幾點(diǎn)要注意:

  • 問(wèn)卷中的每道題都涉及到正反兩面,應(yīng)適當(dāng)給予強(qiáng)調(diào),防止用戶看錯(cuò)(比如正反對(duì)立詞字體加粗/標(biāo)紅等等);
  • 在設(shè)計(jì)問(wèn)卷時(shí),盡量做到清晰易懂、語(yǔ)言盡量簡(jiǎn)單具體,避免語(yǔ)意產(chǎn)生歧義;
  • 選項(xiàng)給予說(shuō)明:由于每個(gè)人對(duì)「非常喜歡、理應(yīng)如此、無(wú)所謂、勉強(qiáng)接受、很不喜歡」等形容詞的理解都不一樣,所以最好有一個(gè)明確統(tǒng)一的說(shuō)明,讓用戶可以有個(gè)對(duì)照,方便填寫。

例如:

  • 非常喜歡:讓你感到滿意、開心、驚喜。
  • 理應(yīng)如此:你覺(jué)得是應(yīng)該的、必備的功能/服務(wù)。
  • 無(wú)所謂:無(wú)所謂喜不喜歡,都可以接受。
  • 勉強(qiáng)接受:你不喜歡,最好是沒(méi)有,有的話就勉強(qiáng)湊合。
  • 很不喜歡:讓你感到不開心、甚至沮喪,無(wú)法接受。

3. 清洗數(shù)據(jù)

在收集所有問(wèn)卷之后,注意清洗掉個(gè)別的明顯胡亂回答的個(gè)例。如全部問(wèn)題都選擇「我很喜歡」或「很不喜歡」的,這種回答毫無(wú)參考價(jià)值。

4. 整理分類

為了能夠?qū)⑿枨髤^(qū)分為基本型需求、期望型需求和興奮需求,需按照正向和負(fù)向問(wèn)題的回答對(duì)屬性進(jìn)行分類,具體分類對(duì)照下表。

當(dāng)正向問(wèn)題的回答是「我喜歡」,負(fù)向問(wèn)題的回答是「我不喜歡」,那么 KANO 評(píng)價(jià)表中,這項(xiàng)功能特性就為「O」,即期望型。

如果將用戶正負(fù)向問(wèn)題的回答結(jié)合后,為「M」或「A」,則該功能被分為基本型需求或興奮型需求。

其中,R 表示用戶不需要這種功能,甚至對(duì)該功能有反感;I 類表示無(wú)差異需求,用戶對(duì)這一功能無(wú)所謂。

Q 表示有疑問(wèn)的結(jié)果,一般不會(huì)出現(xiàn)這個(gè)結(jié)果(除非這個(gè)問(wèn)題的問(wèn)法不合理,或者是用戶沒(méi)有很好的理解問(wèn)題,或者是用戶在填寫問(wèn)題答案時(shí)出現(xiàn)錯(cuò)誤)。

簡(jiǎn)單來(lái)說(shuō)就是:

A:興奮型;O:期望型;M:必備型;I:無(wú)差異型;R:反向型;Q:可疑結(jié)果

注意:以上對(duì)照表只是的最常見的一種歸類方式。實(shí)際操作中,可因人而異,因產(chǎn)品、公司、地域而異(尤其是關(guān)于「R」和「O」的定義),因?yàn)闈M意度本身就難以衡量。

5. 量化表格

判斷 KANO 屬性

記錄所有合理的數(shù)據(jù),計(jì)算出各項(xiàng)占比,填寫在下面的對(duì)照表里面。

從上表中不難看出,「通訊錄中「撥打電話」「這個(gè)功能在 6 個(gè)維度上均可能有得分,將相同維度的比例相加后,可得到6 個(gè)屬性維度的占比總和。 總和最大的一個(gè)屬性維度,便是該功能的屬性歸屬。

可看出「在通訊錄中提供 ‘撥打電話’ 功能屬于興奮型需求。即說(shuō)明沒(méi)有這個(gè)功能,用戶不會(huì)有強(qiáng)烈的負(fù)面情緒,但是有了這個(gè)功能,會(huì)讓用戶感受到滿意和驚喜。

如果你只判斷這一個(gè)需求,那么進(jìn)行到這一步就可以到此為止了。如果涉及到多個(gè)需求的排序分級(jí),你還需進(jìn)行下一步。

計(jì)算 better-worse系數(shù)

Better-worse 系數(shù),表示某功能可以增加滿意或者消除不喜歡的影響程度。

Better,可以解讀為增加后的滿意系數(shù)。Better 的數(shù)值通常為正,代表如果產(chǎn)品提供某種功能或服務(wù),用戶滿意度會(huì)提升。正值越大/越接近 1,則表示用戶滿意度提升的效果會(huì)越強(qiáng),滿意度上升的越快。

Worse,可以叫做消除后的不滿意系數(shù)。Worse 的數(shù)值通常為負(fù),代表產(chǎn)品如果不提供某種功能或服務(wù),用戶的滿意度會(huì)降低。其負(fù)值越大/越接近 -1,則表示對(duì)用戶不滿意度的影響最大,滿意度降低的影響效果越強(qiáng),下降的越快。

因此,根據(jù) better-worse 系數(shù),對(duì)兩者系數(shù)絕對(duì)分值較高的項(xiàng)目應(yīng)當(dāng)優(yōu)先實(shí)施。

其計(jì)算公式如下:

  • 增加后的滿意系數(shù) Better/SI=(A+O)/(A+O+M+I)
  • 消除后的不滿意系數(shù) Worse/DSI= -1 *(O+M)/(A+O+M+I)

結(jié)果產(chǎn)出

例如:某產(chǎn)品希望優(yōu)化 5 項(xiàng)功能,但是不知道哪些是用戶需要的。通過(guò) KANO 調(diào)研分析,可以分別計(jì)算出 5 項(xiàng)功能的better-worse 系數(shù)。

根據(jù) 5 項(xiàng)功能的 better-worse 系數(shù)值,將散點(diǎn)圖劃分為四個(gè)象限,以確立需求優(yōu)先級(jí)。

  • 第一象限表示:better 系數(shù)值高,worse 系數(shù)絕對(duì)值也很高的情況。落入這一象限的因素,稱之為期望型因素(一維因素)。功能 2 落入此象限,即表示產(chǎn)品提供此功能,用戶滿意度會(huì)提升,當(dāng)不提供此功能,用戶滿意度就會(huì)降低。
  • 第二象限表示:better 系數(shù)值高,worse 系數(shù)絕對(duì)值低的情況。落入這一象限的因素,稱之為興奮型因素。功能 1 落入此象限,即表示不提供此功能,用戶滿意度不會(huì)降低,但當(dāng)提供此功能,用戶滿意度會(huì)有很大提升。
  • 第三象限表示:better 系數(shù)值低,worse 系數(shù)絕對(duì)值也低的情況。落入這一象限的因素,稱之為無(wú)差異因素。功能 3落入此象限,即無(wú)論提供或不提供這些功能,用戶滿意度都不會(huì)有改變,這些功能點(diǎn)是用戶并不在意的功能。
  • 第四象限表示:better 系數(shù)值低,worse 系數(shù)絕對(duì)值高的情況。落入這一象限的因素,稱之為必備型因素。功能 4 落入此象限,即表示當(dāng)產(chǎn)品提供此功能,用戶滿意度不會(huì)提升,當(dāng)不提供此功能,用戶滿意度會(huì)大幅降低;說(shuō)明落入此象限的功能是最基本的功能。

在實(shí)際項(xiàng)目中:

  • 我們首先要全力以赴地滿足用戶最基本的需求,即第四象限表示的必備型因素,這些需求是用戶認(rèn)為我們有義務(wù)做到的事情。
  • 在滿足最基本的需求之后,再盡力去滿足用戶的期望型需求,即第一象限表示的期望因素,這是質(zhì)量的競(jìng)爭(zhēng)性因素。提供用戶喜愛的額外服務(wù)或產(chǎn)品功能,使其產(chǎn)品和服務(wù)優(yōu)于競(jìng)爭(zhēng)對(duì)手并有所不同,引導(dǎo)用戶加強(qiáng)對(duì)本產(chǎn)品的良好印象。
  • 最后爭(zhēng)取實(shí)現(xiàn)用戶的興奮型需求,即第二象限表示的興奮型因素,提升用戶的忠誠(chéng)度。

結(jié)論:

根據(jù) KANO 模型計(jì)算出的 better-worse 系數(shù)值,說(shuō)明該產(chǎn)品先滿足功能 5 和 4,再優(yōu)化功能 2,最后滿足功能 1。而功能 3對(duì)用戶來(lái)說(shuō)有或者沒(méi)有都無(wú)所謂,屬無(wú)差異型需求,并沒(méi)有必要花大力氣去實(shí)現(xiàn)。

總結(jié)

KANO 模型定義了三個(gè)層次的需求:基本型需求、期望型需求和興奮型需求。

  • 基本型需求:產(chǎn)品「必須有」的功能,也是 MVP 產(chǎn)品要求具有的功能;
  • 期望型需求:非必須功能需求,但通常作為競(jìng)品之間比較的重點(diǎn);
  • 興奮型需求:屬于驚喜型產(chǎn)品功能,超出用戶預(yù)期,往往能帶來(lái)較高的忠誠(chéng)度。

根據(jù) KANO 模型建立產(chǎn)品需求分析優(yōu)先級(jí),運(yùn)用到產(chǎn)品設(shè)計(jì)中就是要抓住用戶的核心需求,解決用戶痛點(diǎn)(基本型需求),抓住用戶癢點(diǎn)(期望型需求)。在確保這兩者都解決的前提下,再給用戶一些 high 點(diǎn)(興奮型需求)。

嚴(yán)格來(lái)說(shuō),KANO 模型并不是一個(gè)測(cè)量用戶滿意度的模型,而是對(duì)用戶需求的分類,通常在滿意度評(píng)價(jià)工作前期作為輔助研究的 典型定性分析模型。

KANO 模型的目的是通過(guò)對(duì)用戶的不同需求進(jìn)行區(qū)分處理,了解不同層次的用戶需求,幫助企業(yè)找出提高產(chǎn)品用戶滿意度的切入點(diǎn),或者識(shí)別出使用戶滿意至關(guān)重要的因素。

但需求會(huì)因人而異,會(huì)因文化差異而不同; 也會(huì)隨著時(shí)間變化??赡芮岸螘r(shí)間的期望型需求,甚至興奮型需求,到如今已變成了基礎(chǔ)型需求。所以作為產(chǎn)品設(shè)計(jì)者,我們應(yīng)該持續(xù)調(diào)研需求,對(duì)產(chǎn)品進(jìn)行迭代優(yōu)化。

BI PUBLISHER RTF模板制作PIVOT表和重分組

seo達(dá)人

重分組介紹

語(yǔ)法:<?for-each-group: BASE-GROUP;GROUPING-ELEMENT?>

用法:重分組可以把XML數(shù)據(jù)做重新分組,這樣數(shù)據(jù)的展示就不一定必須按照XML數(shù)據(jù)的結(jié)構(gòu)顯示。例如原來(lái)的XML數(shù)據(jù)結(jié)構(gòu)是CD類別->CD信息(名稱,年份,國(guó)家,價(jià)格),我們可以用重分組功能按CD年份->CD國(guó)家來(lái)顯示.



重分組應(yīng)用

1 按照和XML數(shù)據(jù)不同的結(jié)構(gòu)顯示數(shù)據(jù)

XML數(shù)據(jù)格式如下:



<CATALOG>

   <CD>

      <TITLE>Empire Burlesque</TITLE>

      <ARTIST>Bob Dylan</ARTIST>

      <COUNTRY>USA</COUNTRY>

      <COMPANY>Columbia</COMPANY>

      <PRICE>10.90</PRICE>

      <YEAR>1985</YEAR>

   </CD>

。。。。。

</CATALOG>



報(bào)表打算按照國(guó)家和年份重新分組,用到的重分組如下:



<?for-each-group:CD;COUNTRY?>

<?for-each:current-group();YEAR?> 

1

2

這里的current-group()表示當(dāng)前COUNTRY組下的子分組



2 顯示PIVOT報(bào)表

XML數(shù)據(jù)如下:



<ROWSET>

<RESULTS>

 <INDUSTRY>Motor Vehicle Dealers</INDUSTRY>

 <YEAR>2005</YEAR>

 <QUARTER>Q1</QUARTER>

 <SALES>1000</SALES>

</RESULTS>

<RESULTS>

 <INDUSTRY>Motor Vehicle Dealers</INDUSTRY>

 <YEAR>2005</YEAR>

 <QUARTER>Q2</QUARTER>

 <SALES>2000</SALES>

</RESULTS>

<RESULTS>

 <INDUSTRY>Motor Vehicle Dealers</INDUSTRY>

 <YEAR>2004</YEAR>

 <QUARTER>Q1</QUARTER>

 <SALES>3000</SALES>

</RESULTS>

。。。。

         

</ROWSET>



如果想按年份生成PIVOT表,可以用如下TAG實(shí)現(xiàn):



<?for-each-group@column:RESULTS;YEAR?>

<?YEAR?>

<?end for-each-group?>

<?for-each-group:RESULTS;INDUSTRY?>

<?for-each-group@cell:current-group();YEAR?>

<?sum(current-group()//SALES)?>

<?end for-each-group?>

<?end for-each-group?>



這里的@cell是給每個(gè)組生成一個(gè)CELL




深入理解vue中的slot與slot-scope

seo達(dá)人

寫在前面

vue中關(guān)于插槽的文檔說(shuō)明很短,語(yǔ)言又寫的很凝練,再加上其和methods,data,computed等常用選項(xiàng)使用頻率、使用先后上的差別,這就有可能造成初次接觸插槽的開發(fā)者容易產(chǎn)生“算了吧,回頭再學(xué),反正已經(jīng)可以寫基礎(chǔ)組件了”,于是就關(guān)閉了vue說(shuō)明文檔。

實(shí)際上,插槽的概念很簡(jiǎn)單,下面通過(guò)分三部分來(lái)講。這個(gè)部分也是按照vue說(shuō)明文檔的順序來(lái)寫的。

進(jìn)入三部分之前,先讓還沒(méi)接觸過(guò)插槽的同學(xué)對(duì)什么是插槽有一個(gè)簡(jiǎn)單的概念:插槽,也就是slot,是組件的一塊HTML模板,這塊模板顯示不顯示、以及怎樣顯示由父組件來(lái)決定。 實(shí)際上,一個(gè)slot最核心的兩個(gè)問(wèn)題這里就點(diǎn)出來(lái)了,是顯示不顯示怎樣顯示。

由于插槽是一塊模板,所以,對(duì)于任何一個(gè)組件,從模板種類的角度來(lái)分,其實(shí)都可以分為非插槽模板插槽模板兩大類。
非插槽模板指的是html模板,指的是‘div、span、ul、table’這些,非插槽模板的顯示與隱藏以及怎樣顯示由插件自身控制;插槽模板是slot,它是一個(gè)空殼子,因?yàn)樗@示與隱藏以及最后用什么樣的html模板顯示由父組件控制。但是插槽顯示的位置確由子組件自身決定,slot寫在組件template的哪塊,父組件傳過(guò)來(lái)的模板將來(lái)就顯示在哪塊

單個(gè)插槽 | 默認(rèn)插槽 | 匿名插槽

首先是單個(gè)插槽,單個(gè)插槽是vue的官方叫法,但是其實(shí)也可以叫它默認(rèn)插槽,或者與具名插槽相對(duì),我們可以叫它匿名插槽。因?yàn)樗挥迷O(shè)置name屬性。

單個(gè)插槽可以放置在組件的任意位置,但是就像它的名字一樣,一個(gè)組件中只能有一個(gè)該類插槽。相對(duì)應(yīng)的,具名插槽就可以有很多個(gè),只要名字(name屬性)不同就可以了。

下面通過(guò)一個(gè)例子來(lái)展示。

父組件:

 
  1. <template>
  2. <div class="father">
  3. <h3>這里是父組件</h3>
  4. <child>
  5. <div class="tmpl">
  6. <span>菜單1</span>
  7. <span>菜單2</span>
  8. <span>菜單3</span>
  9. <span>菜單4</span>
  10. <span>菜單5</span>
  11. <span>菜單6</span>
  12. </div>
  13. </child>
  14. </div>
  15. </template>

子組件:

 
  1. <template>
  2. <div class="child">
  3. <h3>這里是子組件</h3>
  4. <slot></slot>
  5. </div>
  6. </template>

在這個(gè)例子里,因?yàn)楦附M件在<child></child>里面寫了html模板,那么子組件的匿名插槽這塊模板就是下面這樣。也就是說(shuō),子組件的匿名插槽被使用了,是被下面這塊模板使用了。

 
  1. <div class="tmpl">
  2. <span>菜單1</span>
  3. <span>菜單2</span>
  4. <span>菜單3</span>
  5. <span>菜單4</span>
  6. <span>菜單5</span>
  7. <span>菜單6</span>
  8. </div>

最終的渲染結(jié)果如圖所示:


 
  1. 注:所有demo都加了樣式,以方便觀察。其中,父組件以灰色背景填充,子組件都以淺藍(lán)色填充。

具名插槽

匿名插槽沒(méi)有name屬性,所以是匿名插槽,那么,插槽加了name屬性,就變成了具名插槽。具名插槽可以在一個(gè)組件中出現(xiàn)N次。出現(xiàn)在不同的位置。下面的例子,就是一個(gè)有兩個(gè)具名插槽單個(gè)插槽的組件,這三個(gè)插槽被父組件用同一套css樣式顯示了出來(lái),不同的是內(nèi)容上略有區(qū)別。

父組件:

 
  1. <template>
  2. <div class="father">
  3. <h3>這里是父組件</h3>
  4. <child>
  5. <div class="tmpl" slot="up">
  6. <span>菜單1</span>
  7. <span>菜單2</span>
  8. <span>菜單3</span>
  9. <span>菜單4</span>
  10. <span>菜單5</span>
  11. <span>菜單6</span>
  12. </div>
  13. <div class="tmpl" slot="down">
  14. <span>菜單-1</span>
  15. <span>菜單-2</span>
  16. <span>菜單-3</span>
  17. <span>菜單-4</span>
  18. <span>菜單-5</span>
  19. <span>菜單-6</span>
  20. </div>
  21. <div class="tmpl">
  22. <span>菜單->1</span>
  23. <span>菜單->2</span>
  24. <span>菜單->3</span>
  25. <span>菜單->4</span>
  26. <span>菜單->5</span>
  27. <span>菜單->6</span>
  28. </div>
  29. </child>
  30. </div>
  31. </template>

子組件:

 
  1. <template>
  2. <div class="child">
  3. // 具名插槽
  4. <slot name="up"></slot>
  5. <h3>這里是子組件</h3>
  6. // 具名插槽
  7. <slot name="down"></slot>
  8. // 匿名插槽
  9. <slot></slot>
  10. </div>
  11. </template>

顯示結(jié)果如圖:


可以看到,父組件通過(guò)html模板上的slot屬性關(guān)聯(lián)具名插槽。沒(méi)有slot屬性的html模板默認(rèn)關(guān)聯(lián)匿名插槽。

作用域插槽 | 帶數(shù)據(jù)的插槽

最后,就是我們的作用域插槽。這個(gè)稍微難理解一點(diǎn)。官方叫它作用域插槽,實(shí)際上,對(duì)比前面兩種插槽,我們可以叫它帶數(shù)據(jù)的插槽。什么意思呢,就是前面兩種,都是在組件的template里面寫

 
  1. 匿名插槽
  2. <slot></slot>
  3. 具名插槽
  4. <slot name="up"></slot>

但是作用域插槽要求,在slot上面綁定數(shù)據(jù)。也就是你得寫成大概下面這個(gè)樣子。

 
  1. <slot name="up" :data="data"></slot>
  2. export default {
  3. data: function(){
  4. return {
  5. data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba']
  6. }
  7. },
  8. }

我們前面說(shuō)了,插槽最后顯示不顯示是看父組件有沒(méi)有在child下面寫模板,像下面那樣。

 
  1. <child>
  2. html模板
  3. </child>

寫了,插槽就總得在瀏覽器上顯示點(diǎn)東西,東西就是html該有的模樣,沒(méi)寫,插槽就是空殼子,啥都沒(méi)有。
OK,我們說(shuō)有html模板的情況,就是父組件會(huì)往子組件插模板的情況,那到底插一套什么樣的樣式呢,這由父組件的html+css共同決定,但是這套樣式里面的內(nèi)容呢?

正因?yàn)樽饔糜虿宀劢壎艘惶讛?shù)據(jù),父組件可以拿來(lái)用。于是,情況就變成了這樣:樣式父組件說(shuō)了算,但內(nèi)容可以顯示子組件插槽綁定的。

我們?cè)賮?lái)對(duì)比,作用域插槽和單個(gè)插槽和具名插槽的區(qū)別,因?yàn)閱蝹€(gè)插槽和具名插槽不綁定數(shù)據(jù),所以父組件是提供的模板要既包括樣式由包括內(nèi)容的,上面的例子中,你看到的文字,“菜單1”,“菜單2”都是父組件自己提供的內(nèi)容;而作用域插槽,父組件只需要提供一套樣式(在確實(shí)用作用域插槽綁定的數(shù)據(jù)的前提下)。

下面的例子,你就能看到,父組件提供了三種樣式(分別是flex、ul、直接顯示),都沒(méi)有提供數(shù)據(jù),數(shù)據(jù)使用的都是子組件插槽自己綁定的那個(gè)人名數(shù)組。

父組件:

 
  1. <template>
  2. <div class="father">
  3. <h3>這里是父組件</h3>
  4. <!--第一次使用:用flex展示數(shù)據(jù)-->
  5. <child>
  6. <template slot-scope="user">
  7. <div class="tmpl">
  8. <span v-for="item in user.data">{{item}}</span>
  9. </div>
  10. </template>
  11. </child>
  12. <!--第二次使用:用列表展示數(shù)據(jù)-->
  13. <child>
  14. <template slot-scope="user">
  15. <ul>
  16. <li v-for="item in user.data">{{item}}</li>
  17. </ul>
  18. </template>
  19. </child>
  20. <!--第三次使用:直接顯示數(shù)據(jù)-->
  21. <child>
  22. <template slot-scope="user">
  23. {{user.data}}
  24. </template>
  25. </child>
  26. <!--第四次使用:不使用其提供的數(shù)據(jù), 作用域插槽退變成匿名插槽-->
  27. <child>
  28. 我就是模板
  29. </child>
  30. </div>
  31. </template>

子組件:

 
  1. <template>
  2. <div class="child">
  3. <h3>這里是子組件</h3>
  4. // 作用域插槽
  5. <slot :data="data"></slot>
  6. </div>
  7. </template>
  8. export default {
  9. data: function(){
  10. return {
  11. data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba']
  12. }
  13. }
  14. }

結(jié)果如圖所示:

github

以上三個(gè)demo就放在GitHub了,有需要的可以去取。使用非常方便,是基于vue-cli搭建工程。

https://github.com/cunzaizhuyi/vue-slot-demo


輕量、簡(jiǎn)易、高逼格的博客 hexo

seo達(dá)人

hexo  pc機(jī)上的配置 (一切操作都是在git bash)

安裝git

 



安裝nodejs

 



安裝hexo

備注:用 npm 安裝話經(jīng)常出現(xiàn)卡住而導(dǎo)致無(wú)法正常安裝,解決辦法就是修改 npm 的安裝源,



這里選擇淘寶 NPM 鏡像,這是一個(gè)完整 npmjs.org 鏡像,你可以用此代替官方版本,同步頻



率目前為 10分鐘 一次以保證盡量與官方服務(wù)同步。



     npm config set registry https://registry.npm.taobao.org



創(chuàng)建 你的Hexo 目錄

       mkdir "your hexo dir name"



       //創(chuàng)建一個(gè)自定義的hexo目錄,比如我就在用戶根目錄創(chuàng)建了一個(gè)myhexo文件夾(macOS)



       cd "your hexo dir name" //進(jìn)入到剛剛創(chuàng)建的目錄



  安裝 hexo-cli

        npm install -g hexo-cli



  初始化該文件夾

        hexo init



  安裝hexo的擴(kuò)展插件

        npm install



    等執(zhí)行成功以后安裝兩個(gè)插件, hexo-deployer-git 和 hexo-server ,這倆插件的作用分別是使用Git自動(dòng)部署,和本地簡(jiǎn)單的服務(wù)器。

       npm install hexo-deployer-git --save

       npm install hexo-server --save



 



    到這里hexo的本地搭建已經(jīng)基本結(jié)束了。

    打開hexo

       hexo g



       hexo server



 git用戶

創(chuàng)建以用于提交

        git config --global user.name "yourname"    

        git config --global user.email "youremail



 生成ssh公鑰密鑰

       cd ~/.ssh

       ssh-keygen -t rsa -C "你的email"



-----------------------------------------------------------------------------------------------------------------

linux (ubuntu + 阿里云)  服務(wù)器上的配置

 安裝nginx

切換至root用戶

       sudo su root

       apt-get install nginx



    查看nginx版本

         nginx -v



    啟動(dòng)nginx

       service nginx start



    可以查看nginx的端口號(hào)

        ps -aux | grep nginx



    啟動(dòng)后,在網(wǎng)頁(yè)重輸入ip地址,即可看到nginx的歡迎頁(yè)面。至此nginx安裝成功

        cd /etc/nginx

        vim sites-available/default 



    因?yàn)槲覀兪悄胣ginx做 Web 服務(wù)器,所以我們需要安裝部署好nginx,我們可以專門為hexo創(chuàng)建一個(gè)部署目錄,比如我創(chuàng)建了/home/xufushen/hexo文件夾,并把nginx的配置文件nginx.conf中的部署目錄改為/home/xufushen/hexo,配置文件在/etc/nginx/conf里;同樣可以使用默認(rèn)目錄,nginx的默認(rèn)目錄為/var/www/html.











 安裝node.js

        curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

        apt-get install -y nodejs



 安裝git

          apt-get install -y git



 創(chuàng)建一個(gè)git用戶

         sudo adduser git



    雖說(shuō)現(xiàn)在的倉(cāng)庫(kù)只有我們自己在使用,新建一個(gè) git 用戶顯得不是很有必要,但是為了安全起見,還是建議使用單獨(dú)的 git 用戶來(lái)專門運(yùn)行 git 服務(wù)



 添加證書登入

        mkdir .ssh

        mkdir authorized_keys



    剛在在本地創(chuàng)建或者已經(jīng)擁有的公鑰,也就是 ~/.ssh/id_rsa.pub 文件里的內(nèi)容添加到服務(wù)器的 /home/git/.ssh/authorized_keys 文件中,如上所說(shuō),添加公鑰之后可以防止每次 push 都輸入密碼。  (使用Xftp軟件直接將文件拖入)







 初始化 Git 倉(cāng)庫(kù)

可以將git倉(cāng)庫(kù)放到自定義位置,我是將其放在 /xufushen/blog/ 目錄下的

        sudo mkdir /xufushen/blog/

        cd /xufushen/blog/

        git init --bare blog.git



 使用 --bare 參數(shù),Git 就會(huì)創(chuàng)建一個(gè)裸倉(cāng)庫(kù),裸倉(cāng)庫(kù)沒(méi)有工作區(qū),我們不會(huì)在裸倉(cāng)庫(kù)上進(jìn)行操作,它只為共享而存在。



 配置 git hooks

我們這里要使用的是 post-receive 的 hook,這個(gè) hook 會(huì)在整個(gè) git 操作過(guò)程完結(jié)以后被運(yùn)行.關(guān)于hooks的內(nèi)容詳情點(diǎn)擊這里



在 blog.git/hooks 目錄下新建一個(gè) post-receive 文件

        cd /var/repo/blog.git/hooks



    編輯這個(gè)文件

        vim post-receive



    設(shè)置這個(gè)文件的可執(zhí)行權(quán)限

        chmod +x post-receive



 改變 blog.git 目錄的擁有者為 xufushen 用戶

    chown -R xufushen:gxufushenit blog.git



 禁用 xufushen 用戶的 shell 登錄權(quán)限

出于安全考慮,我們要讓 xufushen 用戶不能通過(guò) shell 登錄??梢跃庉?/etc/passwd 來(lái)實(shí)現(xiàn)



       vim /etc/passwd

        #將

        git:x:1001:1001:,,,:/home/git:/bin/bash

        #改成

      git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell



這樣 xufushen 用戶可以通過(guò) ssh 正常使用 git,但是無(wú)法登錄 shell。    至此,服務(wù)器環(huán)境的搭建已經(jīng)基本結(jié)束。



配置本地_config.yml文件,完成自動(dòng)化部署 

配置 hexo 的 deploy

    修改 hexo 目錄下的 _config.yml 找到 deploy, 修改為:

   deploy:

        ype: git

        repo: xufushen@47.100.184.175:/home/xufushen/blog/blog.git

           branch: master

    repo的地址為你自己的地址以及 git 倉(cāng)庫(kù)目錄







使用hexo blog

    新建文章:

        hexo new "post name"



    生成 & 部署:

        hexo clean && hexo g && hexo d







-------------------------------------------------------------------------------------------------------------------------------------------------------------------------



在搭建的過(guò)程遇到的問(wèn)題

 連到服務(wù)器后無(wú)法連接到repository           



這是因?yàn)槟阍趧?chuàng)建blog.git與hexo文件時(shí)要把的歸屬用戶與用戶組更改為創(chuàng)建的用戶


UML:類圖關(guān)系總結(jié)

seo達(dá)人

UML類圖幾種關(guān)系的總結(jié),泛化 = 實(shí)現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴
在UML類圖中,常見的有以下幾種關(guān)系: 泛化(Generalization), 實(shí)現(xiàn)(Realization),關(guān)聯(lián)(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)

  1. 泛化(Generalization)
    【泛化關(guān)系】:是一種繼承關(guān)系,表示一般與特殊的關(guān)系,它指定了子類如何特化父類的所有特征和行為。例如:老虎是動(dòng)物的一種,即有老虎的特性也有動(dòng)物的共性。

    【箭頭指向】:帶三角箭頭的實(shí)線,箭頭指向父類

在這里插入圖片描述

  1. 實(shí)現(xiàn)(Realization)
    【實(shí)現(xiàn)關(guān)系】:在這里插入圖片描述是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實(shí)現(xiàn).

    【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口
    在這里插入圖片描述

  2. 關(guān)聯(lián)(Association)
    【關(guān)聯(lián)關(guān)系】:是一種擁有的關(guān)系,它使一個(gè)類知道另一個(gè)類的屬性和方法;如:老師與學(xué)生,丈夫與妻子關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個(gè)箭頭或者沒(méi)有箭頭,單向的關(guān)聯(lián)有一個(gè)箭頭。

    【代碼體現(xiàn)】:成員變量

    【箭頭及指向】:帶普通箭頭的實(shí)心線,指向被擁有者
    在這里插入圖片描述

上圖中,老師與學(xué)生是雙向關(guān)聯(lián),老師有多名學(xué)生,學(xué)生也可能有多名老師。但學(xué)生與某課程間的關(guān)系為單向關(guān)聯(lián),一名學(xué)生可能要上多門課程,課程是個(gè)抽象的東西他不擁有學(xué)生。

  1. 聚合(Aggregation)
    【聚合關(guān)系】:是整體與部分的關(guān)系,且部分可以離開整體而單獨(dú)存在。如車和輪胎是整體和部分的關(guān)系,輪胎離開車仍然可以存在。

    聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系;關(guān)聯(lián)和聚合在語(yǔ)法上無(wú)法區(qū)分,必須考察具體的邏輯關(guān)系。

    【代碼體現(xiàn)】:成員變量

    【箭頭及指向】:帶空心菱形的實(shí)心線,菱形指向整體

在這里插入圖片描述
小技巧:空心菱形表示聚合,好聚好散,所以生命周期可以不同。

  1. 組合(Composition)
    【組合關(guān)系】:是整體與部分的關(guān)系,但部分不能離開整體而單獨(dú)存在。如公司和部門是整體和部分的關(guān)系,沒(méi)有公司就不存在部門。

    組合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強(qiáng)的關(guān)系,它要求普通的聚合關(guān)系中代表整體的對(duì)象負(fù)責(zé)代表部分的對(duì)象的生命周期。
    【代碼體現(xiàn)】:成員變量

【箭頭及指向】:帶實(shí)心菱形的實(shí)線,菱形指向整體
在這里插入圖片描述

  1. 依賴(Dependency)
    【依賴關(guān)系】:是一種使用的關(guān)系,即一個(gè)類的實(shí)現(xiàn)需要另一個(gè)類的協(xié)助,所以要盡量不使用雙向的互相依賴.

    【代碼表現(xiàn)】:局部變量、方法的參數(shù)或者對(duì)靜態(tài)方法的調(diào)用

    【箭頭及指向】:帶箭頭的虛線,指向被使用者
    在這里插入圖片描述

各種關(guān)系的強(qiáng)弱順序:

泛化 = 實(shí)現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴 
  • 1

下面這張UML圖,比較形象地展示了各種類圖關(guān)系:
在這里插入圖片描述

中臺(tái)組件設(shè)計(jì)指南:系統(tǒng)布局

資深UI設(shè)計(jì)者

本篇文章將分享 Web 端系統(tǒng)布局,從基本布局初識(shí)、網(wǎng)格、布局模塊到柵格進(jìn)行完整鏈路內(nèi)容整合,以簡(jiǎn)單易懂的案例與大家進(jìn)行探討。

在以往的學(xué)習(xí)過(guò)程中,我發(fā)現(xiàn)市面上大部分文章對(duì)于 Web 端系統(tǒng)布局內(nèi)容講的比較籠統(tǒng),一般提及較多的是網(wǎng)頁(yè)柵格相關(guān)的內(nèi)容,但是一些關(guān)聯(lián)性和原子結(jié)構(gòu)等相關(guān)內(nèi)容較少。比如,了解布局時(shí)應(yīng)該需要了解哪些方法論?什么是網(wǎng)格?網(wǎng)格與柵格之間是什么關(guān)系?柵格與布局之間是什么關(guān)系等。我會(huì)從這些缺失出發(fā),結(jié)合工作經(jīng)驗(yàn)與實(shí)際案例為大家進(jìn)行分享。

用戶在操作系統(tǒng)時(shí)所看到的頁(yè)面框架其實(shí)就是系統(tǒng)布局,它是一個(gè)產(chǎn)品最外層的框架結(jié)構(gòu),一般包含了頂部導(dǎo)航、側(cè)邊導(dǎo)航欄、面包屑、圖文、卡片、內(nèi)容等元素。

對(duì)于設(shè)計(jì)師而言,想要了解一個(gè)中臺(tái),首先要了解它的系統(tǒng)布局,系統(tǒng)布局是頁(yè)面設(shè)計(jì)的基礎(chǔ),它與頁(yè)面的關(guān)系,就如同建筑與地基的關(guān)系。日常完成需求時(shí),UI 界面反復(fù)的調(diào)試頁(yè)面寬度與卡片比例會(huì)占用我們大量的時(shí)間。為了提高工作效率,并且把更多的時(shí)間放在業(yè)務(wù)、視覺(jué)創(chuàng)新等方面,我們就應(yīng)該需要一套完整的布局規(guī)范。

對(duì)整個(gè)公司產(chǎn)品體系而言,內(nèi)部員工與普通用戶使用的操作系統(tǒng)達(dá)到幾十甚至上百個(gè),單一的頁(yè)面布局滿足不了各個(gè)子項(xiàng)目的使用場(chǎng)景。所以我們從前期的布局框架設(shè)計(jì)調(diào)研到產(chǎn)品業(yè)務(wù)的特性,定義了中臺(tái)界面的幾大類型,并且在我們的設(shè)計(jì)規(guī)范中定義了幾大類型系統(tǒng)布局方式,根據(jù)其布局方式定制好柵格,方便日后在各個(gè)業(yè)務(wù)場(chǎng)景中使用,從而能夠保持一致性、并且可擴(kuò)展,方便快速迭代和維護(hù)。

了解布局

1. 布局方法論

視覺(jué)層次

對(duì)于中臺(tái)的 UI 設(shè)計(jì)師們而言,良好的理性思維相對(duì)比感性的視覺(jué)思維更加重要,因?yàn)樵?UI 設(shè)計(jì)師設(shè)計(jì)頁(yè)面時(shí)需要把很多互不相關(guān)的元素有秩序的組織在一起,正確引導(dǎo)用戶操作與使用。亨利·亞當(dāng)斯(Henry Adams)曾經(jīng)說(shuō)過(guò):「混沌是自然法則,秩序是人類的夢(mèng)想」。人們總是喜歡秩序,因?yàn)橹刃蚩梢宰屖虑樽兊酶菀桌斫?。這同樣適用于數(shù)字產(chǎn)品的用戶界面,當(dāng) UI 元素被有序組合和結(jié)構(gòu)化時(shí),人們可以輕松的使用應(yīng)用程序和網(wǎng)站,并對(duì)產(chǎn)品感到滿意,所以設(shè)計(jì)頁(yè)面時(shí)需要結(jié)合視覺(jué)層次理論。視覺(jué)層次理論是設(shè)計(jì)過(guò)程的核心方法之一。最初是建立在格式塔原理的基礎(chǔ)上,它觀察到了用戶對(duì)相互關(guān)聯(lián)元素的視覺(jué)感知,并展示了人們?nèi)绾螌⒁曈X(jué)元素歸為一類。那么什么是視覺(jué)層次呢?官方概括:視覺(jué)層次結(jié)構(gòu)致力于一種用戶能夠理解的方式呈現(xiàn)產(chǎn)品的內(nèi)容,以便用戶可以理解每個(gè)元素的重要性級(jí)別。它可以組織頁(yè)面內(nèi)容,以便大腦可以根據(jù)物理差異例如:大小,顏色,對(duì)比度,樣式等區(qū)分對(duì)象。

蘋果的設(shè)計(jì)一直以來(lái)都是引領(lǐng)著設(shè)計(jì)趨勢(shì),其設(shè)計(jì)被國(guó)內(nèi)外用戶所認(rèn)可,所以就以蘋果官網(wǎng)作為案例。其中,字重對(duì)比:蘋果官網(wǎng)在字重上給人眼前一亮的感覺(jué),它采用 Medium+Bold 的字重使得標(biāo)題與詳情內(nèi)容產(chǎn)生強(qiáng)烈的大小對(duì)比,用戶進(jìn)入官網(wǎng)的第一眼便能了解核心內(nèi)容。顏色對(duì)比:在顏色上使用黑色背景承托產(chǎn)品和內(nèi)容,強(qiáng)烈的黑白對(duì)比增強(qiáng)了信息傳播中的識(shí)別度和對(duì)比度。圖文排版:在圖片與文字排版中使用了文字層和圖片層互相疊加的視覺(jué)效果,使得頁(yè)面層次感更加的豐富。如下圖:

格式塔理論

往往用戶打開頁(yè)面進(jìn)行閱讀或者操作界面時(shí)視覺(jué)的第一感受是產(chǎn)品的整體效果,而并不會(huì)感知到一些較細(xì)節(jié)的元素。往宏觀來(lái)講當(dāng)人們感知到一個(gè)物體由許多元素組成的復(fù)雜對(duì)象時(shí),人們會(huì)采用有意識(shí)或無(wú)意識(shí)的方法將這些部分安排到整個(gè)組織的系統(tǒng)中,而不只是簡(jiǎn)單的元素級(jí)。它適用于不同級(jí)別的感知,但是視覺(jué)部分似乎是設(shè)計(jì)師設(shè)計(jì)界面時(shí)最能體現(xiàn)價(jià)值的部分,這其實(shí)就是格式塔理論,格式塔(Gestalt)這個(gè)術(shù)語(yǔ)來(lái)自德語(yǔ)單詞 Gestalt,中文翻譯為「形狀,形式」。

格式塔心理學(xué)家?guī)鞝柼亍た品蚩ǎ↘urt Koffka)的一句話可以捕捉到這一運(yùn)動(dòng)背后的基本思想:「整體不是元素基因的總和」。官網(wǎng)概括:「在心理現(xiàn)象中,人們對(duì)客觀對(duì)象的感受源于整體關(guān)系而非具體元素,也就是說(shuō)知覺(jué)不是感覺(jué)元素的總和,而是一個(gè)統(tǒng)一的整體,部分之和不等于整體,因此整體不能分割」。格式塔理論中元素之知見的原則分別為臨近,相似,連續(xù),封閉和連接。

在我們的現(xiàn)實(shí)生活中有很多自然規(guī)律都遵守了格式塔原則,比如說(shuō)每到秋天,北方的嚴(yán)寒氣候不再適合大雁生存,這時(shí)候大雁便會(huì)飛往較暖和的南方,當(dāng)人們看到天空正在南飛的大雁隊(duì)伍,它們組織鏈接得十分嚴(yán)密,并且群體在往同一個(gè)方向移動(dòng),所以隊(duì)伍的形狀在我們的大腦中將它們視為一個(gè)群組的一部分,產(chǎn)生人字形或一字形的圖形。

信息框架

剛剛我們也介紹了視覺(jué)層級(jí)結(jié)構(gòu)和格式塔理論,接下來(lái)簡(jiǎn)單介紹一下信息框架,它也是在系統(tǒng)布局中需要考慮的內(nèi)容。信息框架是將信息內(nèi)容進(jìn)行組織分層,一個(gè)產(chǎn)品的信息框架取決于其特有的業(yè)務(wù),他與業(yè)務(wù)強(qiáng)相關(guān)并且需要了解用戶群體目標(biāo)。根據(jù)業(yè)務(wù)和用戶目標(biāo)將內(nèi)容組織搭建信息框架,形成系統(tǒng)布局的骨架,方便用戶在瀏覽或操作頁(yè)面時(shí)能夠快速找到重點(diǎn)內(nèi)容,提升用戶使用效率。我們用今日頭條 Web 端和飛書 Web 端兩個(gè)線上產(chǎn)品作為案例分析吧,今日頭條和飛書屬于兩種完全不同類型的產(chǎn)品,那么其信息架構(gòu)也完全不同。

今日頭條屬于門戶類新聞客戶端,主要是生產(chǎn)內(nèi)容展現(xiàn)給用戶,首先進(jìn)入到產(chǎn)品映入眼簾的是無(wú)窮式的信息流,它不需要用戶登錄/注冊(cè)作為身份門檻,而是直觀的把內(nèi)容展示給用戶,推送用戶感興趣的內(nèi)容,也不需要用戶決策任何選擇,用戶只需沉浸式的閱讀體驗(yàn)即可,目的是方便第一時(shí)間抓取用戶、吸引用戶達(dá)到留住用戶的目的。當(dāng)用戶產(chǎn)生興趣以后想要進(jìn)入下一步操作如:點(diǎn)贊、評(píng)論時(shí)才會(huì)彈出登錄/注冊(cè),一方面是獲取用戶的身份等信息,另一方面是間接性的把用戶留下來(lái)。從產(chǎn)品業(yè)務(wù)屬性來(lái)看,今日頭條的布局把重要的內(nèi)容放入中間,并且占有整個(gè)布局的一半大小,其次放在內(nèi)容兩側(cè);

飛書屬于工具協(xié)作類產(chǎn)品,用戶第一次打開產(chǎn)品需要注冊(cè)才能使用。與新聞閱讀類產(chǎn)品不同的是工具類型產(chǎn)品用戶目的比較明確,所以首頁(yè)做成一個(gè)功能介紹頁(yè)面,作用是引導(dǎo)用戶了解產(chǎn)品核心功能從而轉(zhuǎn)化成產(chǎn)品的用戶。當(dāng)然功能介紹頁(yè)也是一個(gè)網(wǎng)站的門面,首頁(yè)想要出彩,不僅需要在布局上做的合理還需要考慮網(wǎng)站的色彩、插圖等元素的統(tǒng)一性。在設(shè)計(jì)網(wǎng)站時(shí),首頁(yè)的功能介紹頁(yè)一定要充分突出自身產(chǎn)品特色,強(qiáng)調(diào)出自身產(chǎn)品的優(yōu)勢(shì)和亮點(diǎn),如飛書首頁(yè)主要是想突出其產(chǎn)品能夠提高工作效率,所以直接把「在飛書,享」slogan 這句話放在了首頁(yè)的第一屏,輔助文案詳細(xì)的介紹了產(chǎn)品的核心功能,直接抓住用戶的痛點(diǎn)。用戶完成注冊(cè)以后,進(jìn)入到功能頁(yè)面,如右下圖可以看出,其系統(tǒng)布局的模塊分成三份,占面積最大的模塊屬于產(chǎn)品最核心的部分也就是聊天窗口,較重要部分是聯(lián)系人部分,最小區(qū)域是功能 Tab 部分。

小結(jié)

所以對(duì)于設(shè)計(jì)師而言,在設(shè)計(jì)頁(yè)面時(shí)必須熟練掌握一些基本設(shè)計(jì)基礎(chǔ)知識(shí),并且將這些知識(shí)靈活運(yùn)用到實(shí)際的工作當(dāng)中。比如設(shè)計(jì)師在搭建系統(tǒng)布局時(shí)需要熟知頁(yè)面視覺(jué)層次、格式塔理論、信息框架等知識(shí)才可創(chuàng)建合理的布局基礎(chǔ)。當(dāng)然布局框架只是整個(gè)產(chǎn)品的基礎(chǔ)骨架,在骨架確定之后,設(shè)計(jì)師才可進(jìn)行下一步的設(shè)計(jì),如統(tǒng)一的視覺(jué)表達(dá)元素,清晰的功能操作,流暢的交互表達(dá)。

2. 布局的設(shè)計(jì)原則

系統(tǒng)布局規(guī)范,需要通過(guò)統(tǒng)一的設(shè)計(jì)元素和間距規(guī)范去引導(dǎo)使用者們(使用規(guī)范的設(shè)計(jì)師)跨平臺(tái)使用并且能夠適配不同屏幕尺寸,目的是達(dá)到一致性,可適配、可控性原則。

一致性:對(duì)于界面來(lái)講,界面中的元素和結(jié)構(gòu)需要保持一致性,如:在使用布局時(shí)應(yīng)當(dāng)使用一致的網(wǎng)格,基準(zhǔn)線和填充,在使用設(shè)計(jì)元素時(shí)配色、圖標(biāo)、文本等需保持一致。

可適配:布局是可自適應(yīng)的,根據(jù)用戶在不同的設(shè)計(jì)環(huán)境下能夠通過(guò)交互動(dòng)效、界面樣式有效作出適配反應(yīng)。用戶操作后需給出即時(shí)反應(yīng)。

可控性:當(dāng)用戶看到界面時(shí)應(yīng)直觀有效傳遞內(nèi)容,如界面中模塊區(qū)域明確、內(nèi)容組織明確、表意明確都能使得用戶快速理解。界面需要簡(jiǎn)單直白,讓用戶快速識(shí)別,減少用戶記憶負(fù)擔(dān)。

3. 適配方案

在設(shè)計(jì)過(guò)程中,為了減少設(shè)計(jì)師們的日常溝通和理解成本,在設(shè)計(jì)內(nèi)部我們統(tǒng)一了一套設(shè)計(jì)畫板尺寸為 1280。經(jīng)過(guò)我們官方調(diào)研得出在中臺(tái)系統(tǒng)中用戶使用的電腦屏幕主流分辨率分別為:1440*900、1366*768、1920*1080、1280*800,而1280 是主流分辨率中最小且最為保險(xiǎn)的的一個(gè)尺寸,在設(shè)計(jì)頁(yè)面時(shí)設(shè)計(jì)師如果能夠在 1280 尺寸下,縮小寬度或拉升頁(yè)面寬度都能保證沒(méi)有遮擋或擠壓?jiǎn)栴},那么設(shè)計(jì)是合理的。在我們的規(guī)范中頁(yè)面再小于 1280 時(shí)需要吊起系統(tǒng)的橫向滾動(dòng)條。在中臺(tái)系統(tǒng)中考慮到用戶效率問(wèn)題很少做響應(yīng)式,所以常規(guī)情況下設(shè)計(jì)師會(huì)限定界面的一個(gè)最小值。如果設(shè)計(jì)師把畫板設(shè)置為 1440 或者 1366 時(shí)可能會(huì)存在其在畫板中頁(yè)面大小正好合適,但是頁(yè)面上線以后縮小瀏覽器可能會(huì)發(fā)生遮擋或擠壓的情況。所以我們建議設(shè)計(jì)師們使用 1280 寬度畫板畫圖。

4. 框架

首先先分析一下界面框架,我們將頁(yè)面的用戶操作行為進(jìn)行層級(jí)區(qū)分。我們至下而上將元素進(jìn)行層級(jí)分層,目的是把用戶界面模塊化。界面可分成背景區(qū)域、內(nèi)容層、全局控制層、內(nèi)容彈層,每一層都具備獨(dú)特性,將界面中所有的信息層級(jí)提取分類并且按結(jié)構(gòu)屬性分層,目的是能夠使得頁(yè)面視覺(jué)和交互邏輯符合用戶的習(xí)慣認(rèn)知。之前我們有提到過(guò)視覺(jué)層次、格式塔理論和信息框架,設(shè)計(jì)師在創(chuàng)建這一步的時(shí)候可以用來(lái)指導(dǎo)搭建一套合理的頁(yè)面信息層級(jí),一個(gè)內(nèi)容模塊都屬于一個(gè)容器,容器可以承載各種內(nèi)容元素。

背景層

背景層樣式固定,在界面中永遠(yuǎn)置于界面底部,并且一般會(huì)給予背景層中性色,作用是方便突出內(nèi)容層和全局控制層。

內(nèi)容層

視圖結(jié)構(gòu)中最核心和復(fù)雜的一層,他與業(yè)務(wù)強(qiáng)相關(guān),內(nèi)容層的容器承載了業(yè)務(wù)場(chǎng)景的用戶需要獲取的核心信息以及輔助核心任務(wù)的操作。容器承載了內(nèi)容,從 Material Design 中的 Elevation(海拔)概念中可以了解到,它屬于第二層級(jí)內(nèi)容,基本布局結(jié)構(gòu)有平行結(jié)構(gòu)或者父子結(jié)構(gòu)。如下圖卡片屬于容器,卡片中承載了數(shù)據(jù)圖表等內(nèi)容,整個(gè)卡片+內(nèi)容就屬于內(nèi)容層。

全局控制層

全局控制層我們定義他在內(nèi)容層之上,屬于頁(yè)面第三層級(jí)內(nèi)容,一般在業(yè)務(wù)場(chǎng)景中對(duì)整個(gè)網(wǎng)站的控制以及導(dǎo)航功能如:Header menu、Sidebar menu 組件,如下圖中 Header menu 浮在內(nèi)容層之上。

內(nèi)容彈層

當(dāng)前任務(wù)或者內(nèi)容相關(guān)的臨時(shí)出現(xiàn)層,優(yōu)先級(jí)高于內(nèi)容層,一般承載當(dāng)前需要臨時(shí)處理的任務(wù)或者需要進(jìn)行內(nèi)容補(bǔ)充說(shuō)明等功能。如:Modal(Dialog 各個(gè)平臺(tái)叫法不一致)、Tooltip、Popover、Notification 等組件 。其中 Modal 是以滑出或者彈出的形式展現(xiàn)給用戶。Modal 它包括兩種類型,一種是模態(tài)內(nèi)容層不可操控,被蒙版遮罩禁用,比如在業(yè)務(wù)中需要較為聚焦的分支流程操作時(shí)使用。另一種是非模態(tài),吊起彈出層后不印象內(nèi)容層操作。當(dāng)然,Tooltip、Popover、Notification 都屬于非模態(tài),反饋較輕,不干擾用戶使用界面。如下圖的頁(yè)面中的內(nèi)容彈層使用了 Popover,在次頁(yè)面它的功能就是加以補(bǔ)充說(shuō)明。

網(wǎng)格基礎(chǔ)

1. 單位

隨著科技高速發(fā)展,屏幕分辨率也越來(lái)越多樣化對(duì)于 UI/UX 設(shè)計(jì)師來(lái)講必須熟練的基本知識(shí)方便日常工作所需。首先我們先了解一下屏幕中的一些單位。

  • 「PX」pixel,像素,大多數(shù)電子設(shè)備成像的基本單元,同樣尺寸的屏幕成像單元越細(xì)小、越密集的屏幕,分辨率就越高;
  • 「PT」point,點(diǎn),這個(gè)單位,就同時(shí)出現(xiàn)在 iOS、CSS、還有傳統(tǒng)的平面設(shè)計(jì)里,與 px 相比 px 是相對(duì)單位而 pt 絕對(duì)單位,如在設(shè)計(jì)稿中如果導(dǎo)出一倍圖 1px=1pt 那么導(dǎo)出二倍圖就是 2px=1pt,它是一個(gè)絕對(duì)長(zhǎng)度,為1/72英寸;
  • 「PPI」pixel per inch,每英寸像素?cái)?shù),決定電子設(shè)備的物理顯示尺寸,只有涉及到顯示才有意義。該值越高,則屏幕越細(xì)膩;
  • 「DPI」dot per inch,與PPI一致,唯一區(qū)別是它表示每英寸多少點(diǎn),該值越高,則圖片越細(xì)膩;
  • 「DP」density-independent pixel,是安卓開發(fā)用的長(zhǎng)度單位,1dp等于屏幕像素密度為 160ppi 時(shí) 1px 的長(zhǎng)度,因此dp 在整個(gè)系統(tǒng)大小中是固定的。
  • 「SP」scale-independent pixel,安卓開發(fā)用的字體大小單位,可以認(rèn)為 SP=DP。
2. 像素密度

在高密度屏幕下每英寸具有比低密度屏幕更多的像素,可能導(dǎo)致開發(fā)實(shí)現(xiàn)稿的視覺(jué)不符合設(shè)計(jì)師心理預(yù)期,比如:相同像素尺寸的 UI 元素在低密度屏幕上顯得較模糊,而在高密度屏幕上則比較清楚。同一物理尺寸(肉眼所見尺寸)下,低密度顯示器的像素個(gè)數(shù)明顯小于高密度顯示器的像素個(gè)數(shù)。

其實(shí)像素是與密度沒(méi)有關(guān)聯(lián),我們簡(jiǎn)稱密度為 DP (讀作 DIP,英文全稱 Density-independent pixel ),它是可縮放的靈活單位,可在任何屏幕下現(xiàn)實(shí)相同的尺寸,如圖顯示,紅色網(wǎng)格為像素密度,被放大內(nèi)容為 UI 元素物理尺寸。

所以我們可以得出,DP 可以自適應(yīng)屏幕的密度,不管屏幕密度怎么變化,實(shí)際顯示的物理尺寸相同,DP 可以保證物理尺寸的一致性,所以 DP 是目前比較適合 UI 設(shè)計(jì)的單位。當(dāng)屏幕的密度為 160 的一個(gè)物理像素時(shí),1PD=1PX。要計(jì)算屏幕密度,可以使用以下公式得出:DP=(PX*160)/PPI。

3. 網(wǎng)格

關(guān)于網(wǎng)格

網(wǎng)格線(Grid Line),網(wǎng)格線又稱布局分割線,它是構(gòu)成網(wǎng)格結(jié)構(gòu)的分界線。一般在布局中它們是由行網(wǎng)格線和列網(wǎng)格線組成。如下圖是模擬網(wǎng)格做了一個(gè)示意,其中橘黃色兩根線分別是行網(wǎng)格線和列網(wǎng)格線。

網(wǎng)格軌道(Grid Track),兩個(gè)相鄰網(wǎng)格線之間的空間。你可以把它們想像成網(wǎng)格的行或列。如下圖橘黃色的行網(wǎng)格線和列網(wǎng)格線之間的空間既是網(wǎng)格軌道。

網(wǎng)格單元格(Grid Cell),兩個(gè)相鄰的行網(wǎng)格線和兩個(gè)相鄰的列網(wǎng)格線之間的空間屬于網(wǎng)格單元格。這是網(wǎng)格系統(tǒng)的一個(gè)「單元」。如下圖橘黃色的行網(wǎng)格線和列網(wǎng)格線交叉處即是網(wǎng)格單元格。

網(wǎng)格區(qū)域(Grid Area),由單個(gè)或多個(gè)網(wǎng)格單元格組成,它是可以用來(lái)擺放頁(yè)面元素。如下圖所示,橘黃色的行網(wǎng)格線和列網(wǎng)格線交叉處即是網(wǎng)格區(qū)域。

網(wǎng)格設(shè)置

在設(shè)計(jì)界面時(shí)可以通過(guò)網(wǎng)格定制能夠使界面更加有序、整齊、規(guī)范,網(wǎng)格的主要用途之一是保持設(shè)計(jì)元素對(duì)齊和排序。通過(guò)建立一個(gè)網(wǎng)格系統(tǒng),設(shè)計(jì)師可以為自己創(chuàng)建一個(gè)結(jié)構(gòu)來(lái)適配不同的屏幕寬度。

在我制定的規(guī)范中一般會(huì)把網(wǎng)格的基數(shù)設(shè)置為 4,它不僅符合偶數(shù)的思路同時(shí)也能夠匹配多數(shù)主流的顯示設(shè)備,如中臺(tái)系統(tǒng)的用戶主流分辨率用 1440*900、1366*768、1280*800。我們可以通過(guò)設(shè)置網(wǎng)格規(guī)范幫助設(shè)計(jì)師快速搭建頁(yè)面,使用有律可循的布局空間的設(shè)計(jì)給到開發(fā)減少溝通成本。下圖所示設(shè)計(jì)布局網(wǎng)格由三個(gè)元素組成:列寬,間距,邊距。

在 Sketch 中設(shè)置網(wǎng)格,在菜單欄中找「視圖」-「畫布」-「網(wǎng)格設(shè)置」-彈出浮層可設(shè)置網(wǎng)格大小,網(wǎng)格設(shè)置的基數(shù)設(shè)置成4,之后在設(shè)計(jì)界面時(shí)可按照網(wǎng)格基礎(chǔ)的倍數(shù)作為組件的大小和頁(yè)面元素間距分割,如下圖:

我們放大頁(yè)面局部大家可以看到,把網(wǎng)格基數(shù)設(shè)置成 4,每個(gè)網(wǎng)格單元格為 4*4 大小。同理,如果把網(wǎng)格基數(shù)設(shè)置成 8 以后,每個(gè)網(wǎng)格單元格大小為 8*8 大小。

定義布局模塊

界面框架內(nèi)系統(tǒng)布局是頁(yè)面所有模塊的組合方式,我們定義一個(gè)頁(yè)面框架中基礎(chǔ)模塊和內(nèi)容模塊的數(shù)量最好不超過(guò) 3 個(gè)。經(jīng)過(guò)調(diào)研和歸納總結(jié)出 3 大布局類型,分別是上下布局、左右布局、T 字型布局。

1. 上下布局

上下布局布局是 Web 端運(yùn)用最廣泛的布局方式之一,頁(yè)面內(nèi)容區(qū)以 feed 流形式展現(xiàn),一般用在 Web 端官網(wǎng)首頁(yè)。設(shè)計(jì)師普遍做法是對(duì)兩邊留白區(qū)域?yàn)閮?nèi)容區(qū)并進(jìn)行最小值的定義,一般定義值為 1200 較多(具體寬度要設(shè)計(jì)師如何設(shè)置柵格,后面會(huì)講到如何設(shè)置柵格),當(dāng)留白區(qū)域到達(dá)極小超過(guò)極限值之后需要對(duì)中間的內(nèi)容區(qū)域進(jìn)行動(dòng)態(tài)縮放或遮擋,此邏輯需設(shè)計(jì)師根據(jù)業(yè)務(wù)所需而定。也有少部分設(shè)計(jì)師會(huì)設(shè)計(jì)成全屏布局,內(nèi)容隨瀏覽器寬度自適應(yīng)。

其優(yōu)點(diǎn)是頁(yè)面結(jié)構(gòu)清晰簡(jiǎn)單,強(qiáng)突出內(nèi)容區(qū),但缺點(diǎn)是布局的規(guī)矩呆板,變化少。設(shè)計(jì)師如果不注意合理的視覺(jué)元素和色彩細(xì)節(jié)變化,用戶很容易感覺(jué)到乏味,此布局適用于層級(jí)較為簡(jiǎn)單頁(yè)面。

巨量引擎(Ocean Engine)是字節(jié)跳動(dòng)旗下的營(yíng)銷服務(wù)品牌,整合了今日頭條、抖音短視頻、火山小視頻、西瓜視頻、懂車帝、Faceu 激萌、輕顏、穿山甲等產(chǎn)品的營(yíng)銷能力,為全球廣告主提供綜合的數(shù)字營(yíng)銷解決方案。我在設(shè)計(jì)此官網(wǎng)時(shí)正是采用了上下布局作為頁(yè)面布局,頂部導(dǎo)航整合了所有子頁(yè)面的內(nèi)容,導(dǎo)航下方為主要內(nèi)容區(qū)并且內(nèi)容定寬,當(dāng)時(shí)采用此布局原因第一是因?yàn)榇喂倬W(wǎng)層級(jí)較簡(jiǎn)單只有三個(gè)層級(jí)內(nèi)容,第二是官網(wǎng)更需要的是突出內(nèi)容區(qū),所有頁(yè)面使用次布局更為合適。

2. 左右布局

設(shè)計(jì)師在設(shè)計(jì)重內(nèi)容,輕導(dǎo)航類型網(wǎng)站是常用左右布局作為基礎(chǔ)框架進(jìn)行頁(yè)面設(shè)計(jì)。此布局把系統(tǒng)頁(yè)面分為兩大模塊,其中設(shè)計(jì)師常見的做法是將左側(cè)設(shè)置成導(dǎo)航欄模塊并且固定,常常用來(lái)控制全局內(nèi)容。而右側(cè)區(qū)域設(shè)置成工作區(qū)域或內(nèi)容區(qū),內(nèi)容區(qū)可進(jìn)行動(dòng)態(tài)縮放。

下圖為飛書溝通窗口截圖,由于關(guān)系到內(nèi)部信息保密性我把內(nèi)容進(jìn)行了模糊,從外觀結(jié)構(gòu)上看還是能大致了解飛書結(jié)構(gòu)是采用了左右布局,整個(gè)布局結(jié)構(gòu)清晰有理也是符合左右布局特點(diǎn)。從交互體驗(yàn)分析左側(cè)屬于導(dǎo)航區(qū),它承載了不同功能并且固定。飛書屬于即時(shí)溝通產(chǎn)品設(shè)計(jì)師考慮到瀏覽器窗口有限所以對(duì)導(dǎo)航設(shè)計(jì)成較小模塊,而右邊為聊天窗口對(duì)于業(yè)務(wù)屬性分析它更為重要,所以模塊較大。其導(dǎo)航欄固定,內(nèi)容區(qū)可進(jìn)行動(dòng)態(tài)縮放。

3. T字型布局

T 字型布局常用在 Web 端的中臺(tái)系統(tǒng)中,因?yàn)橹信_(tái)系統(tǒng)業(yè)務(wù)結(jié)構(gòu)復(fù)雜、層級(jí)多,而 T 字型布局能夠解決復(fù)雜結(jié)構(gòu)的問(wèn)題。使用此結(jié)構(gòu)能夠把頁(yè)面結(jié)構(gòu)清晰化,主次更加分明。設(shè)計(jì)師常常的做法是將頂部作為一級(jí)導(dǎo)航欄方便控制全局,二左邊設(shè)計(jì)成是二級(jí)導(dǎo)航并且固定導(dǎo)航欄固定,右邊的內(nèi)區(qū)域可進(jìn)行動(dòng)態(tài)縮放(一般會(huì)把其設(shè)計(jì)成柵格動(dòng)態(tài)區(qū)域),內(nèi)容隨瀏覽器寬度自適應(yīng)。

下圖是 Material Design 設(shè)計(jì)文檔,首先簡(jiǎn)單介紹一下 Material Design,它是由谷歌的設(shè)計(jì)團(tuán)隊(duì)創(chuàng)建的一種語(yǔ)言,宗旨是幫助設(shè)計(jì)師們創(chuàng)建易用性和實(shí)用性較強(qiáng)的網(wǎng)站和應(yīng)用程序,其設(shè)計(jì)理念是將現(xiàn)實(shí)中的物理學(xué)帶入進(jìn)設(shè)計(jì)中。Material Design 設(shè)計(jì)文檔中的結(jié)構(gòu)使用了 T 字型布局作為基礎(chǔ)布局。頁(yè)面分為了三個(gè)模塊,其中頂部導(dǎo)航作為頁(yè)面一級(jí)內(nèi)容進(jìn)行全局控制,接下來(lái)左邊為側(cè)邊導(dǎo)航作為二級(jí)內(nèi)容控制頁(yè)面,右邊是內(nèi)容區(qū)滿足用戶使用瀏覽。從放眼望去整個(gè)頁(yè)面架構(gòu)清晰明了。

4. 小結(jié)

以上為 Web 最常見的三大布局,但是需要大家在實(shí)際的工作中靈活運(yùn)用。設(shè)計(jì)師在日常工作中可能會(huì)遇到更為特殊的業(yè)務(wù)場(chǎng)景,設(shè)計(jì)師可以通過(guò)整理基礎(chǔ)模塊然后分析其業(yè)務(wù)的信息框架,將模塊進(jìn)行相互組合、嵌套歸納可以總結(jié)出更多的 Web端布局框架并落地到業(yè)務(wù)中。

網(wǎng)頁(yè)柵格

剛剛在定義布局模塊中已經(jīng)分析過(guò)了三大布局類型,接下要分享的是 UI 設(shè)計(jì)師更為關(guān)注內(nèi)容「網(wǎng)頁(yè)柵格」。網(wǎng)頁(yè)柵格也是設(shè)計(jì)師口中常常提及的柵格系統(tǒng)。其實(shí)網(wǎng)頁(yè)柵格系統(tǒng)是從平面柵格系統(tǒng)中發(fā)展而來(lái),它延續(xù)了平面設(shè)計(jì)的方法與風(fēng)格,在網(wǎng)頁(yè)中使用柵格能夠使得網(wǎng)頁(yè)信息展現(xiàn)更加清晰明了、美觀易讀。

首先網(wǎng)頁(yè)柵格系統(tǒng)基本由是柵格總寬度/頁(yè)面總寬度(W)、一個(gè)柵格的寬度(a)、柵格與柵格之間的間隙(i)、一個(gè)單元的寬度(A)、外邊距(M)組成。

1. 列寬

一個(gè)柵格的寬度(a),我們稱之為列寬,一個(gè)列寬包涵了N個(gè)網(wǎng)格單元格(Grid Cell)我們也可以把它看成一個(gè)網(wǎng)格區(qū)域(Grid Area),在上面我們已經(jīng)講到過(guò)網(wǎng)格的內(nèi)容,主要目的正是為柵格做鋪墊。其中我把一個(gè)網(wǎng)格單元格設(shè)置為4(原因在網(wǎng)格中也解釋過(guò),如果忘記的同學(xué)可以爬樓看下)。由此可見列寬非固定值,這樣可以使內(nèi)容自由適配任何屏幕尺寸。在柵格中列寬由屏幕尺寸決定。

2. 水槽

柵格與柵格之間的間隙(i),我們稱之為水槽,一個(gè)水槽寬度大于等于1個(gè)網(wǎng)格單元(Grid Cell)。在柵格中水槽為一個(gè)定值,寬度可以是N個(gè)網(wǎng)格單元,如網(wǎng)格單元格設(shè)置成4,那么水槽可以是4、8、12、16…N*4。

3. 柵格單元

1個(gè)列寬+1個(gè)水槽寬度即一個(gè)單元的寬度,一個(gè)柵格總寬是由N個(gè)柵格單元組成,次寬度不固定,由屏幕尺寸決定。

4. 柵格總寬

列寬+水槽再成以N即是一個(gè)柵格的總寬,公式為:W=(A*n)-i。

5. 柵格設(shè)置

經(jīng)過(guò)調(diào)研我們得出常見的柵格分為 12 列柵格系統(tǒng)和 24 列柵格系統(tǒng)。其中 12 列柵格系統(tǒng)在流行的前端開發(fā)開源工具庫(kù)Bootstrap 與 Foundation 中廣泛使用,適用于業(yè)務(wù)信息分組較少、業(yè)務(wù)結(jié)構(gòu)較簡(jiǎn),單個(gè)盒子內(nèi)信息體積較大的中后臺(tái)頁(yè)面設(shè)計(jì)。24 等分的柵格系統(tǒng)適用于業(yè)務(wù)信息量大、信息分組較多、單個(gè)盒子內(nèi)信息體積較小的中后臺(tái)頁(yè)面設(shè)計(jì);相對(duì) 12 柵格系統(tǒng),24 柵格系統(tǒng)變化更加靈活,更適合內(nèi)容比較多樣復(fù)雜的場(chǎng)景。如下圖分別是 12 柵格系統(tǒng)(左)和 24 柵格系統(tǒng)(右)。

6. 小結(jié)

在柵格系統(tǒng)結(jié)合布局結(jié)構(gòu)和網(wǎng)格做了我做了一些知識(shí)結(jié)合,其實(shí)前面所講的網(wǎng)格版塊和布局版塊都是為柵格做一個(gè)鋪墊,利于同學(xué)們更加深入的了解網(wǎng)格、布局、柵格三者的關(guān)系。

寫在最后

系統(tǒng)布局只是網(wǎng)頁(yè)中的基礎(chǔ)部分,但也是核心內(nèi)容,一個(gè)產(chǎn)品布局需要根據(jù)其業(yè)務(wù)屬性決定。布局搭的好相當(dāng)?shù)鼗虻煤?,但是同時(shí)在對(duì)美感的追求之上,還應(yīng)當(dāng)結(jié)合可用性來(lái)看待設(shè)計(jì)。在實(shí)際的工作中肯定還會(huì)遇到各種形形色色較奇葩的需求,所以希望這篇文章能夠做的不是限制而是啟發(fā),大家可根據(jù)此次分享內(nèi)容能夠進(jìn)行舉一反三利用到實(shí)際的工作當(dāng)中。

文章來(lái)源:優(yōu)設(shè)

日歷

鏈接

個(gè)人資料

存檔