92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

首頁

一萬六千字!超全面的字體與排版應用指南

高勁

文字是界面中最核心的元素,是產品傳達給用戶的主要內容,它的承載體即是字體。

前半部分從字體的最基本屬性(字族、字號、字重、大小寫等)說起,熟悉字體的那些特征,了解字體在界面中的作用,以及iOS與Android系統字體的使用規范。

字體基礎知識

字體是界面設計的基石

字體是排版中最重要的元素,對用戶的閱讀體驗有著至關重要的作用。一般來說,設計師需要了解的字體通常有中文字體和西文字體兩種。西文字體由來已久,從最早的羅馬字體到現在蘋果手機中的SF-UI字體,經歷了許多設計上的變革。而中文字體的發展并沒有西文字體那么順利,數量上也遠遠落后于其他字體。但中國設計正在崛起,我們也看到越來越多的設計團隊和設計師加入字體設計的隊伍,數量上正在呈指數級別增加。

設計是一門非常嚴謹的學科,里面蘊含了很多道理,就連最基礎的字體選擇和排版,都經過了將近千年的發展和演變,有非常多的專業知識。像平面設計一樣,在UI設計中字體的使用也有相應的規范,設計師應懂得這些基礎知識,才能將字體為自己所用。

本篇就從我們常用的設計軟件(sketch、Figma、P hotoshop)字符面板開始,來聊聊有關字體與排版應用方面的知識。

字體的那些屬性

  • Font 中文翻譯為「字型」,是指字的粗細、寬度和樣式,是一套具有同樣風格和尺寸的字形。例如「Regular_16pt_SF-UI」。

  • Typeface 中文翻譯為「字體」,是指一整套的字形,一個或多個字型的多尺寸的集合,例如「SF-UI」里有不同粗細(Regular、Blod、Light)和不同寬度(12pt、14pt、20pt)。

  • Glyph 中文翻譯為「字形」,是指單個字的形體或是字體的骨骼。 同一字可以有不同的字形,而不影響其表達的意思,例如漢字中的「令」字,第三筆可以是一點或一撇, 最末兩筆可以作「ㄗ」或「マ」。

Font和Typeface常常被混淆使用,其實可以這樣理解,前者指一種設計,后者指具體的產品。

1. 族類 GenericFamily

族類就是不同字體類型,例如阿里巴巴普惠體、方正新書宋、站酷酷黑體等。

而這些眾多字體又可分為「襯線體」和「無襯線體」。

襯線體

宋體就是襯線體,特點就是筆畫開始和末端的地方都有額外的裝飾,且筆畫的粗細有所不同。在傳統的正文印刷中,普遍認為襯線字體能帶來更加的可讀性。常見的襯線體有宋體、Times New Roman、Georgia等。

襯線體一般在APP中比較少見,文字閱讀類偏愛這種襯線體,例如「單讀」,大標題用的是「華康標宋體」、正文內容用的是「蘋方-纖細」而英文用的是「XCross Traditional Bold」

黑體

黑體是無襯線字體,特點是筆畫沒有額外的裝飾,且筆畫的粗細差不多。相比嚴肅的襯線體,簡單干凈的無襯線體給人一種休閑輕松的感覺。因此大多數App都是使用黑體作為默認字體。如冬青黑體、思源黑體、Myriad等。

2. 字族 FontFamily

一個族類包含不同的字體,然而一個字體又可能有好幾種字族。如果電腦安裝了Helvetica,在Sketch字體選擇器中會發現超過40多個前綴是Helvetica的字族。這是為了協助人們在不同的使用場景下表達合適的意思。

知識點:

基本字族包括細體、標準、粗體、斜體,值得注意的是,斜體字常用在引用文本上,代表「本段文字引用的是另一個著作」的含義。

例如:「若我們能以滿懷新鮮的眼神去觀照日常,「設計」的意義定會超越技術的層面,為我們的生活觀和人生觀注入力量。」(引自原研哉的《設計中的設計》)

3. X-height(X字高)

在西文字體中,x高度是指字母的基本高度,就是基線和主線之間的距離。它指一個字體中小寫字母的x高度,在現代字體設計領域,x高度代表了一個字體的設計因素,因此在一些場合字母x本身并不完全等于x字高。

除了字母a、c、e、m、n、o等高度一樣,還有一些小寫字母的字高都比x字高要大,并分為兩類:一是含有升部的字母,字母筆畫含有向上部分,如字母b、d、h;另一類是含有降部的字母,字母的筆畫向下超過了基線,如字母g、p、q。

4. 字號 Font-size

字號就是字體大小,通常在網頁端使用px作為字號的單位。移動端興起后,iOS字體單位是pt,Android是sp。

以iOS為例,正文字號不應小于11pt,這樣才能被正常閱讀,建議在14-18pt之間。在使用較大的字體來獲得更好的易讀性的同時,我們也應相應地減小字體的字重,考慮Light、Thin,因為過重的字體會太過醒目,影響其他內容的顯示效果。

當字體大小為12-18pt時,建議使用Regular,18-24pt時,使用Light,24-32pt,使用Thin,當字體大小超過32pt時,建議使用Ultralight。

字號大小決定了信息的層級和主次關系,合理有序的字號設置能讓界面信息清晰易讀、層次分明;相反,糟糕無序的字號使用會讓界面混亂不堪,影響閱讀體驗。

設計中的最小字號

我們都知道在界面設計中最小字號不能低于20px,那是因為,正常情況下,在手機距離眼睛30cm左右,使用視角計算公式,我們能識別到的的文字大小為h= 2*30·tan(0.3/2) ≈ 0.157cm ,拿我們經常使用iPhone7的尺寸1334×750為例。iPhone7的dpi為324,也就是一英寸上顯示324個像素,1英寸為2.54cm,那么0.157cm=324*(0.157/2.54cm)= 20px。

字號的基數關系

我們在做設計時,字號的單位最好使用一個基數作為倍增,如2、4、6、8、10 或者3、6、9、12。但其實我們在做移動端設計時,單位需要遵循偶數原則,因為開發中的單位是以一倍圖的基數來進行計算。那么其實在制定字體規范中,使用2為單位會導致字號過多,且2號字體的差異化不大。所以在字號方面我們使用4作為單位是比較合適的:一是適配后在@2x跟@3x不會出現半像素,二是使用4為單位,能滿足字體大小的均衡。

5. 字重 FontWeight

Weight,中文翻譯為「字重」,是指字體筆畫的粗細,字體中很重要一個概念,不同字重傳遞出來視覺感受完全不一樣。一般在字體家族名后面注名Thin、Light、Regular、Blod、Black、Heavy等。不同的字體廠商劃分字重各有不同,例如「蘋方」字體就有6種不同的字重。

一般都有細體、正常、粗體三種基本字族。在應用場景上,通?!讣汅w」多用于超大號字體;「正?!褂糜谡膬热荩弧复煮w」表示強調,多用于標題;

兩種字重屬性

輕字重:傳遞出輕盈放松的視覺感受,常配合粗的字重使用,在一些輔助信息,說明文案時候使用;

重字重:視覺感受莊重,很重要,常用在重點強調的文字,頁面大標題,數字,引導行動操作點上等;

例如百度網盤「發現」頁就用了Regular、Medium、Semibold三種字重以拉開信息層次對比;

知識點:

需要注意的是:在進行界面設計時,不要用軟件自帶的文本加粗,它不僅破壞了字體本身的美感,還改變了文字原本的字寬,小字體下會模糊不清,合理的方式是使用字體本身的字重來控制粗細。

注意超細體的字體

字重超細的字體要謹慎使用。如果你設計的文本是裝飾性倒還好,如果是需要用戶能清晰閱讀的,就要特別慎重,能不用就不用,否則在部分低分辨率的手機屏幕上看起來會非常糟糕。

6. 字色 FontColor

字色即文字對應的顏色,不做過多解釋。需要大家注意的是 遠離純黑色和純灰色!

純黑色就像沒有生命力的深淵,能吞噬所有細節,使用戶陷入冷冰冰的極端情緒中。純黑色還會與白色產生強烈的對比度,看久了就會感覺疲勞,讓用戶產生焦慮情緒。

還有就是真實世界中是不存在純黑色的。嘗試在色彩中加入一些色相,這樣就不會讓頁面看上去死氣沉沉的。例如iOS系統「設置」頁面背景色就是加入了白色的低飽和度藍色,看上去柔和自然。

7. 字符樣式 FontStyle

除了以上幾個最常用的文字屬性外,還有幾個使用頻率比較低的字體設置。例如帶下劃線的、刪除線的文本。「下劃線文本」一般出現在「文字按鈕」或帶鏈接的網址,而「刪除線文本」一般會出現在商品櫥窗的現價、原價

例如「CCtalk」的課程現價和原價的區分,原價用刪除文本,「微信讀書」文章底部「加入書架 隨時閱讀」就是帶鏈接的下劃線文本。

8. 字符選項 Text options

Ps和Sketch都有文字(字符)選項一欄,主要針對西文字母大小寫格式變換的設置。最常見有默認大小寫、全部大寫、全部小寫和小型大寫字母,Ps里面還有「上標」和「下標」。

  • 默認大小寫:即正常大小寫格式,軟件不做干預;

  • 全部大寫:如果輸入的是小寫字母,選擇這個選項,軟件會強制把小寫改為大寫;

  • 全部小寫:如果輸入的是大寫字母,或者只是首字母大寫,選擇這個選項,軟件會強制把所大寫改為小寫;

  • 小型大寫字母:這個選項比較特殊,所謂「小型大寫」就是,在字號一樣的情況下,與小寫字母一樣高,外形與大寫字母保持一致。

注意英文大寫

純大寫的字母文本本身不太適合大篇幅閱讀,會加大閱讀障礙,用的時候注意要額外拉開字母之間的字間距,提升可讀性。

9. 全角與半角 Full-width and half-width

全角是指一個字符占用兩個標準字符的位置。中文字符、全角的英文字符、國標GB2312-1980中的圖形符號、特殊符號都是全角字符。半角是指一個字符占用一個標準字符的位置。

通常情況下,英文字母、數字、符號等都是半角字符。半角和全角主要是針對標點符號來說的,因為正常情況下沒有打全角英文的需求。

知識點:

在設計作品時也一定要記得中文搭配全角符號,英文使用半角符號。否則會出現諸如「你好.」或者「t h a n k s。」這樣的錯誤??砂存I盤「capslock」鍵切換全角和半角。這個小知識點雖然非?;A,卻也是設計中經常出錯的地方。

iOS與Android

眾所周知,iOS和Android兩大陣營都有各自的設計系統,要作出符合平臺規范的設計,設計師應熟讀各平臺的設計規則。因為本篇以講字體為主,我們就來看看iOS和Android各自字體的規范是什么樣的。

1. iOS字體規范

可用字體

在iOS系統規范中,中文字體是「蘋方」字體。英文字體是「San Francisco」也簡稱「SF-UI」,英文還有另外一個襯線體「NewYork」。除了在iOS和Mac OS上,還單獨為Watch OS單獨對字體進行了調整,命名為 San Francisco Compact。

字體設置

因為在英文字體下,字體環境比較復雜,為了讓字體在任何地方看起來都最佳,蘋果官方針對不同字號開發了兩套「SF-UI Text」和「SF-UI Pro」字體,而每套字體下面又分為Text(文本模式)與Display(展示模式)兩種屬性,Text只有6個字重,而Display則有9個字重。

這么多類型的字體我們該怎么用呢?iOS的建議是,在字號小于20pt時,使用SF-UI Text,大于或等于20pt時,則使用SF-UI Display。這需要我們在界面設計時手動切換。

對于「NewYork」,小于20點的文本使用小號,20到35點之間的文本使用中號,36到53點之間的文本使用大號,54點或更大的文本使用特大號。

蘋方字體提供了6個字重供設計開發者使用。所以從iOS11開始,iOS使用Semibold中粗體、大字號作為界面的標題變的更為流行起來,較為明顯的有 iOS 中的一些原生APP,比如App Store、Apple Music…

知識點:

在iOS中,默認字體單位是「pt」,正文字號不應小于11pt,建議在15-18pt之間。在使用較大的字體來獲得更好的易讀性同時,也應該相應地減小字體的字重,因為過重的字體會太過醒目厚重,影響其他內容的顯示效果。

iOS更全面的文字設置

動態類型可以通過讓讀者選擇他們喜歡的文本大小來提供額外的靈活性,除了標準的動態類型大小之外,iOS系統還為有閱讀大字體的需求的用戶提供了許多字號上的調整(可在系統字體顯示大小設置)

iOS「顯示與亮度」下設置「文字大小」模式

「蘋方」和「SF-UI」字體可在iOS規范網站免費下載

網址:https://developer.apple.com/fonts/

2. Android字體規范

可用字體

在Android設備中,Android始祖Google為了更好的追求視覺效果,聯合了Adobe設計發布了「思源黑體」(Noto)來作為中文默認字體,「Roboto」為英文字體。

字體類型

思源黑體,英文名為「NotoSans CJK」。該字體不僅僅在字形上更易于在屏幕閱讀,并且擁有7種字重,充分滿足了設計的要求。

英文「Roboto」字體,只有6個字重,視覺語言與思源黑體Noto保持一致。該字體具有「現代的」和「平易近人」的氣質,是「Material Design」設計風格下的推薦字體。

字體設置

Material Design字體規范,字體類型比例支持的十三種樣式的組合。它包含可重用的文本類別,每種類別都有預期的應用程序和含義。

注:Web瀏覽器根據根元素大小計算REM(根em大?。?。 現代網絡瀏覽器的默認值為16px,因此轉換為SP_SIZE / 16 = rem。

△Material Design設計類型比例。(字母間距值與Sketch兼容。)

知識點:

值得注意的是,在安卓的字體單位中,不再以px,pt作為單位而是統一的使用了sp,換算方式是:

px = sp*ppi/160 ,sp = px / (ppi / 160)

以iPhone7為例,尺寸是750×1334,密度326ppi 來換算,那么Android的1dp = 1 * 326/160 ≈ 2px

「思源黑體」和「Roboto」字體可在GoogleFonts免費下載,并且可以商用。

網址:http://www.googlefonts.cn/

3. 話題擴展

值得一提的是,越來越多的手機廠商,為了能夠強化自身的品牌形象,推出了定制款的字體。

比如小米的「小米蘭亭」:

OPPO的「OPPO Sans」:

三星的「SamsungOne」:

字體基礎知識小結

正如開頭所說,文字是界面中最核心的元素,字體作為基本語言,是設計中體現品牌很重要一點,字體選擇非常重要,字體也是設計中占比(約 80%)最大的內容,所以我們一定要熟練掌握,接下來將從文字行高、字間距、行間距等說起,圍繞字體排版繼續聊。

人們是如何閱讀的

設計中,好的排版能讓用戶愉快地閱讀,而不好的排版則會給用戶帶來糟糕的閱讀體驗。因此排版的潛在重要性不容忽視。

無論是在西方國家還是亞洲國家,大部分人們的閱讀習慣都是從左到右。這種閱讀模式已經延續了幾百年,因此如無特殊需求,你應該使你的文本左對齊,這樣符合人們一貫的閱讀習慣(阿拉伯地區除外)。人缺乏耐性,在閱讀過程中更似是一種遠近不定的跳躍「掃視」??菰锏奈淖秩绻麤]有經過任何排版處理,會讓讀者瞬間失去閱讀的興趣,除非非讀不可。所以通過改進文字內容的結構和排版來提高閱讀性乃至「誘讀性」,是一件十分必要的事情。

文字排版中的常見元素

1. 字間距與字偶間距

字間距,英文名為「spacing」,即字符間的距離,事實上他是字符圖形外邊界框的尺寸和字符在方框中的位置的距離。

字偶間距,英文名為「Kerning」,也叫做「字距調整」,是在字間距的基礎上,為實現不同字偶(一對字符)可以有不同字間距的調整值。我們都知道,不同的字母外形不同,所以只有同樣的字間距是不協調的。例如,「NA」間是標準的字間距,而「WA」由于W和A的形狀可以重疊,所以需要負字偶間距才能達到協調一致的外觀。

在大段落文字排版時,我們一般不需要更改字間距和字偶間距,因為字體設計師已經對他們做過了最優處理。在對一組字符單獨設計時,就需要考慮字偶間距,以達到更協調的視覺效果。總的來說,字號越小,字距應當相對越大,行高也應該相對越大。反之亦然。

西文字間距還分為:比例字體和等寬字體

比例字體:根據字符外形特點設置不同字寬的字體,使得字體外形協調,可讀性更好;

等寬字體:每個字符設置相同字寬的字體,字符間距較大,它們經常被用于顯示計算機代碼示例;

2. 字間距的三種形式

標準間距:即默認的字間距,字與字之間的距離不大也不小,在設計中要根據不同的字號設置不同的字間距來排版,往往需要我們根據字號、字重的不同動態調節間距參數,避免千篇一律使用軟件默認間距。

緊湊間距:字與字之間的距離向里縮進,在字符工具里的「字間距」數值為負數,一般在-5%~-30%不等,通常用在標題中。

寬松間距:與緊湊型間距相反,字與字之間間距向外擴大,在字符工具里的「字間距」數值為正數,一般在5%~30%不等,通常用在正文中。

知識點:

提示:字間距雖然有以上三種形式,但是在實際工作中也要具體問題具體分析,例如有些中文字體本身「外邊框」的距離就比較大,如果再加大字間距,就會顯得過于分散。

3. 西文詞距

在西文閱讀時,視覺上的自然界限是「詞距」而不是「字距」。如果排版時需要進行例如「兩端對齊」的行內間距調整,中文直接可以動「字距」,把調整量均勻地放到每個字間里;而西文卻是動「詞距」,只能把調整量加到詞距里,而單詞內部的字距依然是保持字體設計師預設的原始字距,這是保證西文易讀性的關鍵所在。

4. 標點避頭尾

在古代,書籍排版可以做到字間距恒定,原因是古代不存在「標點」,也就沒有「標點避頭尾」導致的種種問題。而現代漢語存在標點符號,有的標點不能放在行首(如逗號、頓號、句號等),有的不能放在行尾(引號、前括號等)。處理方式叫做「優先推出式」標點避頭尾,通過將本行內的標點寬度進行擠壓后,騰出了空間給本來排不到的逗號,確保了字間距的恒定(篇幅限制,本文暫不談文字編排具體調整方法)。更詳細的介紹可移步字體設計與排印網站 Type is Beautiful 了解。

5. 文本框

在設計軟件中,我們在添加文本時,就會創建一個文本區域,例如Sketch中文本區域有三種類型,自動寬度、自動高度、固定尺寸,而「固定尺寸」可配合「設置文字層垂直對齊方式」使用。

6. 對齊方式

文本的對齊方向有左、中、右三種對齊方式。文本對齊的標準是基于文本區域的邊界決定的,只有設置固定的文本區域對齊才有意義。

7. 行高

行高或行距是文字排版的基礎參數,也是排版品質的先決要素之一。行高是一行文本垂直方向的高度,這個高度和字高無關,文字內容水平居中,如下圖所示:

8. 英文行高

英文的行高指的是一行英文的基線與下一行英文的基線之間的距離,基線(baseline)是英文字體結構中的概念,在css里文字的元素都是按基線來對齊的。西文基本行高是字號的1.2倍左右,字體有上伸部(ascender)和下延部(descender)可來創造行間空隙。

9. 中文行高

中文的結構屬于方塊字沒有基線,所以中文的行高指的是一行中文的最底部與下一行中文最底部之間的距離。中文因為字符密實且高度一致,所以一般行高需要更大,根據不同用戶人群(兒童、年輕人、老年人)以及使用環境,可達到1.5~2倍甚至更大。

知識點:

提示:不管是標題、正文還是注釋文字,行高都不易過大或過小,會導致閱讀困難??偟膩碚f,字號越大行高應該越小,字號越小行高應該越大。

10. 行長

在《中文排版需求》里,明確寫明了這項基本要求:

2.3.5 版心設計的注意事項:「一行的行長應為文字尺寸的整數倍,各行的位置盡可能頭尾對齊?!?

「一行的行長應為文字尺寸的整數倍」,這一基本的、理所應當的需求看似簡單,但是在實際操作中,卻往往由于單位換算等各個原因沒有得到實現。對于后半句提到的「頭尾對齊」,將另文討論,但顯然也和本文相關。正因為設計師想實現「頭尾對齊」才會盲目地用軟件的「兩端對齊」功能,大家可以看看身邊的印刷品,注意看一下每段的最后一行間距是不是統一,就可以知道設計師有沒有按照這個原則排版。

中文的一個字占兩個字符,英文一個字占一個字符。正文的行長通常在40到60個字符之間。在行長較寬的區域(例如桌面)中,包含最多120個字符的較長行將需要將行高增大。行長過長易讀性就會變差,讀者閱讀時容易串行,造成閱讀困難。合理的行長使用戶在行間跳轉時感到輕快和愉悅,反之則會使閱讀成為一種負擔。

11. 行間距

行距是指臨近兩行之間的距離。合適的行距讓用戶閱讀舒服,閱讀效率也高,行距太緊湊會讓內容擠成一團,實現無法正常閱讀;行距太寬松會讓內容松散,產生了我們通常意義上的「河流」,阻斷了行的視線,Photoshop中默認行距是1.2倍的字號,例如字號是30px,那么將行距設為36px和默認「自動」的效果一致。1.2倍的行距對中文排版來說通常過小,合適的行間距通常為1.5~2倍之間。文本字體越小,兩行之間的行間距應該越大,確保字與行呼吸的空間。

12. 英文行間距

英文的行間距指的是一行英文的底部線與下一行英文的頂部線之間的距離??梢院唵蔚睦斫鉃椤感信c行之間的距離」。另外英文文字底部和頂部都有對應的專有名詞,英文頂部的那條叫「升部線」,底部那條叫「降部線」。

13. 中文行間距

中文的行間距就比較好理解了,是指一行文字的最底部與下一行文字的最頂部之間的距離。即行與行之間的距離。

14. 段間距

段間距:段落與段落之間的距離,可保持頁面節奏,與字體、行高相互關聯。

為保證文章易讀性,正文段間距,可以簡單地取一個空行(也就是一個行高),這是比較常規也比較合適的做法。舉個例子:字號12,行高設定20,段間距 = 行高 + 行間距。行間距越大,段間距就越大;行間距越小,段間距就越小,行距與段間距成正比。段落之間首尾的行之間間距應該大于段內的間距,這時候就應該增加段間距,使得文本的閱讀體驗得到進一步的提升。

排版的CRAP原則

在任何一個設計中都需要把各個元素進行分級,分清主次,這樣才能更好地抓住重點。為了能分清各元素的主次,就需要用到CRAP原則。這四個原則分別是對比、重復、對齊、親密性。

1. 對比 Contrast (增強效果、組織信息)

對比的基本作用是突出重點,增加可讀性。附加作用是有效增強視覺效果,打破平淡,吸引讀者注意。

一些界面排版混亂,可讀性非常差,用戶的視線不知道集中在哪,導致這種情況的發生都是因為界面內容對比不明顯造成。在同一個視覺區域內的邏輯不同的元素應該有所區別,以避免視覺上的相似,這樣就可以有效的分清主次,為了使主要元素更突出,次要元素更弱化,可以盡量使它們的顏色,字體、大小,留白不同。如果兩個元素不盡相同,那就讓他們截然不同。比如,使用「14 號字」和「15 號字」進行對比,差異就很不明顯,而使用「14號字」和「24 號字」,差異就明顯得多,一眼就能看到大號的字體。

在這點上,「微信讀書」的列表頁就做得非常好,它通過標題與描述的字體粗細、大小、顏色進行對比,把最有用的信息直觀地呈現在用戶面前標題是吸引用戶關注的關鍵,作者和評分只是給用戶一種參考,不起決定性作用。因此,如果沒有對比原則,標題和描述的字體同樣粗細、大小,你就會發現視線總是會情不自禁的被評分所干擾。

大小對比

為了區分文字、圖片、圖標等元素的重要性,通常采用尺寸的大小來做對比。例如文章的正副標題,副標題一般用來解釋主標題的內容,因此副標題的文字應該通過大小和顏色調整變成次級,讓用戶閱讀時分清主次。

顏色對比

在排版中,首先要產生對比效果的就是背景和文字。文字與背景如果在顏色上很接近,那么就不容易區分開來吸引用戶注意力,一般來說,人們習慣白紙黑字(也是因為人類有書寫需求以來形成的),即白色背景和黑色文字。也有黑紙白字,例如現在APP都在做的DarkMode暗色模式,但其實暗色背景搭配淺色文字并不適合大量閱讀。當然這也是為了配合用戶使用場景,在夜晚光線較暗的環境下,深色模式或許更利于閱讀?!咐渲R:暗色模式其實就是廠商為了解決電池耗電量而出的計策,只是換了個噱頭而已」總之,不管設計中使用黑白、紅綠、藍黃哪一種配色,一定要注意文字和背景的對比是否清晰便于閱讀。

2. 重復 Repeated (統一有秩序)

重復是保持整齊的重要準則。既包括字體、字號的重復,也包括顏色、風格的重復。對于新人來說,要時刻牢記,盡量統一字體、字號、顏色等一系列元素,在統一的基礎上,找出需要強調的部分,進行更改,通過對比原則進行強化。

如果相同內容(如標題)屬于同一種邏輯關系,則應該使他們的字體、顏色、留白盡量保持一致。這樣可以增加內容的條理性,并加強設計的統一性。在重復原則下,用戶會因為視覺慣性繼續選招設計線索,根據重復性設計線索順場地瀏覽下去。

知識點:

重復不是單一的機械式的元素重復,我們可以理解為用統一的重復元素塑造一個新的元素。當然這是在保留基本的元素時所塑造出來的高度統一性的畫面,從而增強我們所想要的設計效果。

3. 對齊 Alignment (統一而有條理)

在頁面設計上每一元素都應該與頁面上的另一個元素存在某種視覺聯系,這樣才能建立清晰的結構。任何元素內容在在版面上都應該盡量上下左右對齊,對于設計新人來說,最好嚴格遵循一種對齊方式,不然就會導致混亂,實在不行,至少保證在同一內容版塊中遵循一種對齊方式。方法也很簡單,就是找到一條明確的對齊線,并用它來對齊。

對齊包括左對齊、居中對齊、右對齊 3 種方式。

  • 左對齊:頁面中的元素以左基線對齊。左對齊是最常見的對齊方式,簡潔大方,利于閱讀;

  • 居中對齊:頁面中的元素以中基線對齊。居中對齊給人一種嚴肅與正式感,不過也會有呆板的感覺;

  • 右對齊:頁面中的元素以右基線對齊。相對少見的對齊方式,給人一種人為干預的感覺,加強了形式感,降低了閱讀效率;

4. 親密性 Proximity (實現組織性)

親密性是實現視覺邏輯化的第一步,它是指關系越近的內容,在視覺上應該靠得越近,反之,關系越疏遠的內容,在視覺上應該越遠。簡單的來講就是要把畫面中的元素分類,把每一個分類做成一個視覺單位,而不是眾多的孤立的元素。這有助于組織信息,減少混亂,為讀者提供清晰的結構。

那做好親密性有哪些方法呢,私以為有以下幾點:

留白:留白是設計中通用的萬金油原則,通過留白建立距離關系進行內容區分;

左圖歌曲封面和歌曲名信息間隔比每首歌曲上下間距還大,導致用戶的視線流呈垂直方向。

分割:簡單來說就是分組,建立組合關系。常見的形式有線條分割,卡片分割等;

色相:通過顏色的對比,不同顏色的信息會暗示這是同一類。常見的日歷行程就是通過不同顏色來區分時間和具體事項。

方向:不同的排版方式也可以很好的區分信息;

什么是信噪比及在設計中的作用

「信噪比」(Signal-to-Noise Ratio)原本是用在聲音和圖像領域的概念。在互聯網產品中把 「信噪比」概念借用到了用戶體驗。合理的信噪比可改善與用戶的交流。加大信號可以將有用的信息快速準確的傳達給用戶,減少噪音并使信號脫穎而出。

從人機交互角度,我們應該刪除與任務不相關的內容或設計元素。你甚至可以將高信噪比的目標與極簡主義聯系起來。但是「信號」和「噪音」的確切含義會有所不同,一個人的信號可能是對另一個人的干擾,因此,用戶界面的信噪比有低有高,取決于具體的用戶和具體的任務。在用戶界面中,信噪比所涉及的「信息」可以是任何內容,包括文本內容,視覺元素或動畫等。為了提高設計傳達信息的效率并幫助用戶完成任務,需要提高信噪比。

知識點:

用戶始終喜歡清晰、簡單、自然、好用的設計和產品。但需要注意的是,除了交流必要信息之外,我們還希望界面在視覺上具備吸引力,以喚起用戶的某些情感。有了額外的目標(比如品牌宣傳、業務目標等),應該以合理的信噪比為目標,而不是以絕對的方式排除所有「無關」的信息。

例如iOS6到iOS7圖標擬物到扁平到改變,讓用戶可以更快速準確的獲取到有效信息。而這一過程,就是典型的放大「信號」。

還有蝦米音樂的駕駛模式

我們都知道,在開車的時候操作手機是非常危險的。在40km/h的速度下,看手機3秒,相當于盲駛了35米。但有些情況下又不得不操作手機,比如緊急來電或者導航出錯……這時,駕駛模式的界面就顯得尤為重要了,讓用戶能夠快速準確的識別信息并進行操作,可以大大提高行車的安全性。

在界面中無論是何種分割方式(分割線、卡片陰影、分割色塊),過于濃重的表現都會影響有效信息的獲取,成為界面中的「噪音」,因此我們應該讓它們細一點、淡一點來降低表現,或者干脆不要(留白分割)。

圖版率的高低對設計的影響

圖版率就是頁面中圖片面積的所占比。在頁面設計中,除了文字之外,通常都會加入圖片或是插圖等視覺直觀性的內容。這種文字和圖片所占的比率,對于頁面的整體效果和其內容的易讀性會產生巨大的影響。當然,除圖片本身外,我們也可以通過填充底色,圖形疊底等方式來提高界面中的圖版率。

圖版率高低的區別:同樣的設計風格下,圖版率高的頁面會給人以熱鬧而活躍的感覺,反之圖版率低的頁面則會傳達出沉穩、安靜的效果。提高圖版率可以活躍版面,優化版面的視覺度。但完全沒有文字的版面也會顯得空洞,反而會削弱版面的視覺度。

在沒有圖像素材的情況下想要呈現出高圖版率,可以通過以下幾種方式來實現:

  • 通過填充頁面底色,取得與提高圖版率相似的效果,從而改變頁面所呈現出來的視覺效果;

  • 如果素材圖像尺寸小,可以通過色塊的延伸或是圖像的重復來組織頁面結構,同樣可以提高圖版率;

  • 利用排版的節奏感以及跳躍率(文字和圖片的跳躍率,是指版面中最大標題和最大的圖與最小正文字體和圖片大小之間的比率)讓無趣的版面充滿活力,富有節奏的設計也能間接優化頁面的圖版率;

  • 增加頁面中的圖形也可以改善圖版率低的問題。無論是數字、序號、圖標,甚至是視覺處理后的標題文字,都能提高頁面的視覺度,并給用戶留下活躍生動的印象;

  • 如果頁面中沒有圖片和插圖,那么通過對文字及其顏色的處理,也可以起到提高圖版率的作用;

上面的例子中,對于標題文字都進行了視覺加工,起到了整體頁面的裝飾效果。借助對這種文字大小、顏色、形狀的靈活運用,來突出頁面的重點,避免視覺上的單調感。

文字在代碼中的實現及標注

1. 文字在代碼中的實現

在開發落地的過程中,文字排版的開發實現是很重要的一個環節,也是經常讓設計師和開發小哥哥頭疼不已的地方。字體和排版在實現上經常會出現偏差,主要原因在于開發的標注方式和設計軟件不一致。因此理解文字開發的實現方式,細節問題的解決方法至關重要。在Android中,文字開發工作是通過一個叫TextView控件來實現的,主要承擔文本顯示的任務,任何APP都不可避免的會用到它。TextView常用屬性如下圖:

2. 字體字重對應的font-weight值

在前文聊過,每種字體都對應有好幾種字重(Regular、Normal、Medium、Light ),在給開發的 UI 設計稿中,我們給的字體標注通常有 PingFangSC-Regular、PingFangSC-Medium、PingFangSC-Bold,并不會直接給開發 font-weight 的值。雖然這需要開發去熟記,但作為設計師了解它們的對應關系,可以更順暢的和開發溝通。

在W3C Fonts節章的規范標準中有給具體數值(100至900):

這些有序排列中的每個值,對應字體的字重。其大致符合下列通用重量名稱:

當然,并不是每一種字體都有這么多字重,那遇到有些字體只有2、3種字重,該怎么對應font-weight 值呢?W3C Fonts也給出了解決方案,例如字重和400大致符合將會歸為Regular、Book、Roman;和700大致符合將會歸為Bold。若一個重量所指定的字形不存在,則應當使用相近重量的字形。通常,較重的重量會映射到更重的字形、較輕的重量會映射到更輕的字形。下圖所示:灰色表示該重量的字形不存在、使用的是相近重量的字形。

△ 只包含400、700和900重量字形的字體家族的對應字重

△ 只包含300和600重量字形的字體家族的對應字重

3. 文本框行高的問題

我們都知道在設計的時候,可能字體使用的24pt,但其實字體本身占用的距離是包含了升部及降部區域的,這樣就導致其占用空間大于24pt,而變成了33pt。每個字體都有相應設定的「字高」比例,可以通過sketch選中字體后的height值來進行查看。線高越大,問題就越大。下面的示例顯示文本框之間的距離設置為32px。如你所見,即使你將所有垂直間距都設置為相同的值,它們在視覺上也遠大于32px。

△ 雖然標注出來的參數都是一樣大,但視覺上間距卻是不一樣的

4. Leading-Trim:數字排版的未來

去年六月,Microsoft Design贊助了一個新的css規范,稱為「Leading-Trim」。這個css方案能很好的解決上面這個問題。

我們常用的UI設計工具,例如Figma和Sketch,似乎已經采用了「half-leading」模式并以此方式渲染文本。因此,我們在設計工具和瀏覽器中都遇到了這個問題。

設計方面的解決方法相對容易:你可以忽略邊界框,而直接根據文本的大寫高度和基線來測量空間。這是一個手動過程,因為大多數設計工具沒有上限高度和基線的參照目標,盡管設計師將盡一切努力使我們的設計看起來更好!但是,如果采用這種方法,開發人員仍將僅在CSS中實現邊界框間距。因此,它們會出現隨機的間距值。

為了緩解此隨機性問題,開發人員可以在CSS中以負邊距「裁剪」文本框。但是負邊距將需要手動確定,并且是特定于字體的,因此是「隨機的」。任何字體,瀏覽器,操作系統或語言環境的更改都將不可避免地導致你不小心設置邊距。此外,該技術通常不是良好的編碼實踐,并且可能導致意外的副作用。

Leading-Trim新規范

Leading-trim是CSS工作組正在引入的新CSS屬性。顧名思義,它就像文本框剪刀一樣工作。你只需使用兩行CSS,就可以從你選擇的參考點中修剪掉所有多余的空間。

代碼示例:

上面的示例首先使用text-edge(也是新屬性)來告訴瀏覽器,所需的文本邊緣是大寫高度和字母基線。然后,從兩側修剪多余部分。請注意,采用修剪僅會影響文本框。它不會切斷其中的文本。這兩行簡單的CSS創建了一個干凈的文本框。這可以幫助你獲得更準確的間距并創建更好的視覺層次。

使用后再來對比一下:

△使用新規范對比發現,右圖文字上下間距舒服多了,也更合理。

Leading-Trim修復對齊問題

借助Leading-Trim,可以解決在APP上看到的所有奇怪的對齊問題。例如,即使文字位于文本框內,你的文本也不總是在容器中垂直居中。

默認行高中保留的多余空間會導致文本不總是在文本框中居中。使用Leading-Trim修剪,就可以很省心的使文本垂直居中。

知識點:

原因是每種字體的設計也不同。它具有自己的默認行高,并且其中的文本可以具有不同的大小和基線位置,并不都是水平居中對齊的。因此,有時即使字體大小,行高和文本框位置保持不變,更改字體也會改變文本的對齊方式,如下例所示,文字很明顯沒有對齊。

在第二個示例中,你可以看到Leading-Trim如何防止這種情況并使文本完美對齊。

一致性和工作流程的改進

Leading-trim修整超出了使間距和對齊更準確的范圍。它在建立的間距系統,為設計準確性和一致性以及的設計到開發交接鋪平道路方面發揮著關鍵作用。

擁有間距系統有很多好處。設計師可以更快地確定間距,開發人員可以設置相應的間距變量以消除代碼中的隨機間距值。但是目前,即使我們設置了間距系統,由于文本框中的額外空間,對于文本元素來說也不是很準確。如果我們嘗試忽略設計中的邊界框并在代碼中「裁剪」文本框,則會遇到那些棘手的解決方法問題。

△應用于文本元素且沒有Leading-trim修剪的間距系統

借助領先的文字間隔系統,從設計到開發的交接過程也將更加順暢,因為開發人員將能夠建立完全相同的系統,并且避免在布局錯誤上花費大量時間。最重要的是,領先的微調間距系統將幫助我們提供用戶信賴和喜歡的外觀更美觀的產品。

5. 設計中修改文字行高的方法

上面我們介紹了利用Leading-trim修剪字高的先進方法,但是這個新CSS的規范還在編寫中,還未世界范圍的推進,不過有「微軟」團隊的扶持相信國際化也不會太遠了。

在這之前,我們想要盡可能的解決字符多出的間距問題,就需要在設計軟件里手動修改了,手動把文字行高與客戶端系統默認行高保持一致,從而給出準確的文字間距。開發在實現的時候iOS使用系統默認行高,Android系統去掉文字上下padding。

這種方式雖會花費不少時間,但也最,你可以據此設置出最美觀合理的間距,而不用擔心上線稿的還原度問題,也便于我們后期的頁面校對和調整。

△在Sketch中修改文字高度

6. 什么是彈性適配

文字彈性適配一般涉及的是寬度適配,寬度適配普遍使用的是間距適配,即定好左右頁邊距,中間彈性拉伸。這種方式可以做到較好的適配,也是做快速常用的適配方法。

7. 標注工具

設計師將設計文件交付開發之前,應站在程序員的角度著想,做好前期溝通,提供他們開發所需要的資源。設計文件的標注可以使用Sketch插件或直接上傳「藍湖」,拿Sketch插件「Sketch Measure」為例,它是一款十分智能的標注插件,主要功能包含兩大塊:標注和規范。

工具欄匯合了Measure所有功能的快捷工具,永遠置于畫布頂層,有了它就不用再頻繁通過菜單欄去使用功能。

做好規范后,點擊「導出規范」一鍵自動生成Html頁面,瀏覽器打開頁面點擊其中任何元素都可以查看其屬性和間距,還包括代碼樣式,交給開發開發工程師后,不用溝通都能看明白。

△Sketch Measure導出標注的網頁界面

設計驗收環節

產品功能開發完成后,對產品對功能,視覺和交互操作進行測試和驗收,確保產品的可用性。一般在功能模塊驗收完成后,就可以開始具體的視覺設計驗收,這也是由主要設計師負責的模塊,主要驗收顏色、字體、圖形、間距、控件和空狀態等。

因本文主講字體與排版,就拿這部分來說,需要檢視的就有:

  • 字體:是否用的平臺默認字體,如果是內置字體檢查字體顯示有沒問題;

  • 字號:導航欄、欄目名稱、分類頁簽、tab等字號大小是否符合規范;

  • 字重:標題和正文字重是否正確,粗體用的是哪一種,是Medium,還是SemiBold;

  • 字色:標題、正文、注釋、提示等文字顏色;

  • 字間距:檢查中文間距和英文間距,段落文字標點有無避頭尾;

  • 行間距:段落文字行間距,有沒有出現多余的行高 ;

  • ……

在檢視過程中如發現問題,截圖標示問題所在,并出具檢視報告。

△ 視覺檢視表示例

視覺設計的驗收要追求細節上的完美,因為設計上的細節是很容易被挑錯的,同時需要耐性和細心,要有像素級的視角,只有這樣才能完美的還原設計稿。

寫在最后

原本只是想結合工作積累,寫一篇字體應用知識總結,沒成想給自己挖了一坑,涉及的知識點真是超級多,很多地方都可以單獨拿出來再另寫一篇。另外其實在工作中,也建議大家對自己的經驗進行總結,對關鍵信息進行提煉加以沉淀,一方面能讓自己的知識更加牢固,另一方面也可以幫助后來者學習成長。字體與排版基礎就分享到這里,希望對大家有所幫助。因為篇幅較長,幾經修改,有細節不正確的地方,歡迎留言矯正,感謝閱讀。

參考文獻:

  • 《W3C-CSS字體規范標準》

  • 《從「行長為字號的整數倍」說起》

  • 《Leading-Trim: The Future of Digital Typesetting》

  • 《關于UI設計中字體應用的干貨》

  • 《字體與排版》

  • 《深度剖析Baseline設計原理》

文章來源:優設網

藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

如何從零開始設計一個購物網站?送你這份高手流程!

高勁

在這個項目中,主要任務是為舊金山最古老的玩具品牌 Jeffrey’s Toys 設計一個全新的品牌電商網站。

新電商網站最主要的目的是吸引顧客前往線下店鋪選購商品,同時也希望通過快遞和門店自提的方式來完善線上銷售流程,拓展消費群體。

該網站需要鞏固品牌核心業務價值觀:傳統,有趣和創意。該網站還需要通過強調其龐大的庫存體量和手工精選商品來將 Jeffrey’s Toys 和其他電子商務零售商區分開。

該網站的主要業務目標包括:

  • 能快速定位商品

  • 每一個商品都有單獨的詳情頁

  • 用戶能成功購買一個或多個商品

  • 為爆款商品引流

用戶分析

1. 用戶畫像

誰才是這個網站真正的用戶?當我接到這個任務的時候,客戶已經繪制出了3個用戶畫像,每個用戶畫像都有特定的需求和痛點。

△ 客戶繪制的三個用戶畫像

基于三個用戶畫像,我確定了該網站要滿足的用戶需求,同時也考慮了Jeffrey’s Toys的需求。

確定的主要需求是:

  • 通過清晰的商品組織分類來提供流暢的電商購物體驗

  • 通過商品搜索使用戶能夠快速找到想要的商品

  • 通過實用的商品推薦來體現 Jeffrey’s Toys 的專業以及龐大的庫存

  • 通過與用戶建立品牌關系來樹立信任

  • 通過產品細節信息來確保用戶選購合適的商品

  • 通過商品評論來輔助用戶作出消費決策并允許用戶進行商品反饋

  • 通過的下單結賬流程簡化購買行為并節省用戶時間

2. 競品分析

為了獲得啟發,我確定了3個主要競品,特別是舊金山的精品玩具店;還有3個玩具零售市場的間接競品。直接競品我分析了包括 Ambassador Toys 、 Amazon 和 TANTRUM 。間接競品分析了 Lululemon 、Ikea 和 CVS 。競品分析的目的是比較并找出這些電商網站的共同特征以及 Jeffrey’s Toys 能夠脫穎而出的潛在機會。

競品分析最重要的收獲是了解了不同的電商網站的商品選擇模塊以及網站整體的布局。這些信息有助于鞏固我第二階段的研究。

△ 比較直接競品和間接競品的特征

2. 思維導圖

在完成競品分析之后,我把這個項目中用戶的需求和客戶的需求列成了長長的信息清單。之后我又通過思維導圖來理清了在這個項目中用戶的需求和客戶的需求。思維導圖幫助我將信息組織成更清晰的想法,同時在各個想法之間建立層次結構關系。

△ 用來理清信息和想法的思維導圖

信息架構

接下來我通過卡片分類法來構造網站的導航系統,卡片分類法是一種利用人們現有思維模型的研究技術。在構造導航系統時,我了解到94種商店中最暢銷的商品庫存信息。擁有如此龐大的商品庫存,就很有必要通過清晰易懂的方式組織、分類庫存信息,以便用戶能夠快速的找到他們想要的商品。

1. 卡片分類

△ 卡片分類的初期階段

開放式卡片分類:我要求9位參與調研的用戶通過他們自己覺得合理的分類規則將94種商品分類,然后給每個類別加上他們認為能夠準確描述該類別的標簽。這樣做的目的是對于網站潛在的商品分類方式及類別名稱有一個大致的了解。

封閉式卡片分類:基于開放式卡片分類的結果,我從最常見的類別標簽中創建了13個預定類別。然后,我進行了封閉式的卡片分類,我邀請了20位參與調研的用戶將商品逐一分類到我之前預定的13種類別中。封閉式卡片分類有助于讓我在進行設計之前能夠清楚判斷這些類別是否符合大部分網站用戶的分類邏輯。

△ 通過卡片分類得到的13種商品類別

2. 站點圖

根據卡片分類以及競品分析的結果,我繪制了網站的站點圖來明確整個網站的框架結構。這是為了確保所有產品都放置在用戶期望的位置,同時使購物體驗更加直觀。

△ 站點地圖

3. 系統架構圖

為了對用戶將會如何瀏覽網站有一個全面的概述,我繪制一張系統架構圖。這樣做的主要目的是為了了解網站應該給用戶提供什么功能以及功能拓展的廣度。我還通過系統架構圖來探索電商網站和實體店鋪之間的聯系。

△ 系統架構圖演示用戶將會如何瀏覽網站

4. 用戶流程

在確定了我需要給用戶提供的體驗「全局」之后,我為每一個用戶畫像創建了不同的用戶流程,通過不同的用戶流程來使購物體驗更加符合他們的需求。構建用戶流程的目的是確定每個用戶為了實現各自的預期目標經過的頁面和操作步驟。這不僅能使我專注于每個用戶的操作,也使我能夠在設計網站的時候將功能拆分,以便給用戶提供更佳的購物體驗。

我繪制的第一個用戶流程是關于用戶畫像是 Jenny 的。Jenny 最主要的目是為自己的孫子購買初級魔術玩具。Jenny 的用戶流程(如下圖所示)表明了她是如何搜索初級魔術玩具,以及為了成功購買她可能采取的幾種不同路徑。

△ Jenny 的用戶流程

Debbie 和 Jenny 都希望能有一個的下單結賬流程,所以很有必要在用戶流程中繪制出下單結賬流程。下圖的用戶流程顯示了Debbie在選定一個特技自行車之后該如何進行結賬下單。通過允許她登錄自己的帳號,自動輸入她的結賬信息來簡化她的結賬下單流程。

△ Debbie 的用戶流程

開發階段

1. 草稿

在我整理了前期獲取的所有信息之后,我就開始著手設計網站。基于之前整理出來的用戶流程圖,我開始繪制幾個主要頁面的草圖,同時快速思考出幾個不同的網站布局方案。之后我邀請3個用戶參與了用戶調研,以驗證這些方案是否同時滿足客戶和網站用戶的需求。

△ 網站首頁和品類頁面的初稿

2. 線框圖

基于用戶對草圖的反饋和我個人的想法,我開始使用Figma來繪制線框圖。整個過程中,根據優先級不同,優先考慮最能滿足網站用戶的功能。

△ 網站首頁和產品詳情頁的線框圖

原型制作

1. 主頁

首頁我盡可能的保持簡潔,避免用戶進入網站時被過多的信息干擾而不知所措。

首頁放置了全局導航、輔助導航和搜索欄,方便用戶快捷的找到自己想要的商品。首頁還放置了新品推薦,因為新品推薦能夠展示品牌豐富的庫存,同時能為用戶提供有用的購買建議。我想通過介紹 Jeffrey’s Toys 豐富的歷史來樹立用戶品牌聯系,所以在首頁我還放置了「關于我們」部分,用戶點擊還可跳轉到具體的介紹頁面查看更多關于品牌故事的信息。在頁腳,我放置了其他的用戶可能需要的信息。除此之外,我還將用戶交流系統放在頁腳,這樣是為了獲得用戶想法并在店鋪進行活動時通過用戶參與提高店鋪活動氛圍。

2. 商品類別頁面

當用戶點擊商店按鈕或者是某個類別之后,用戶將會前往一個列出了該類別下所有商品的商品列表頁。有個用戶畫像想要給他的孫子買一個合適他孫子年齡的玩具,所以頁面需要一個品類篩選器,同時支持商品按照不同的屬性例如年齡、價格和品牌分類也很重要。除此之外,我還通過面包屑導航來方便用戶定位頁面位置。

△ 商品類別頁線框圖

3. 商品詳情頁

在商品詳情頁,我希望能夠提供盡可能多的商品詳情來確保這個商品是用戶想要的。

在頁面下方,網站會基于當前商品給用戶推薦其他相似商品。在商品詳情頁,產品評論區占了很大一部分,因為用戶可以在產品評論區反饋商品信息,便于樹立用戶信任,同時用戶能夠通過其他用戶的評論來作出更明智的購買決定。為了簡化下單流程,我設計了一個購物車預覽頁,用戶在購物車預覽頁可以預覽商品信息,用戶每次將商品加入購物車后都會出現購物車預覽頁,在購物車預覽頁面,用戶可以很方便的點擊「選好了」按鈕而進入結賬下單流程。

△ 商品詳情頁線框圖

4. 購物車預覽頁

當用戶點擊「選好了」按鈕或者是購物車按鈕,用戶將會進入到一個如下圖所示的購物車預覽頁。這是結賬下單流程的第一步,用戶在購物車可以管理他們所選的商品,作出合適的調整。用戶在下單時,可以選擇到店自提或者是物流配送,設置到店自提是為了引導用戶去 Jeffrey’s Toy的線下店鋪,同時降低運輸成本。

△ 購物車預覽頁線框圖

5. 結帳頁面

客戶提供的三個用戶畫像的主要痛點之一就是想要有一個的結賬流程,所以我得確保結賬下單體驗要盡可能的流暢。作為一個回頭客,用戶可以選擇登錄自己的帳號,并自動保存物流信息和支付信息。我決定在一個頁面上承載全部的結賬流程,這樣方便用戶在結賬流程中任何時刻都能編輯信息。頂部的進度欄顯示了下單結賬流程有多少步,用戶當前在哪一步以及用戶還剩下多少步驟。

△ 登錄頁

△ 下單頁

△ 訂單查看頁

6. 其他畫面

我還創建了一些其他頁面,例如訂單確認頁面。訂單確認頁面明確告知用戶結賬流程已經完成了,用戶還能在訂單確認頁查看有關訂單的其他信息,以供參考。

我創建了一個店鋪聯系頁面,當用戶在網站找不到想要的商品時,可以在店鋪聯系頁面查詢線下店鋪商品情況以及店鋪的營業時間、位置和聯系電話。

除此之外我還創建了一個「關于頁面」用來著重強調 Jeffrey’s Toys 與其他電商網站例如亞馬遜的區別。我還在這個頁面介紹了Jeffrey’s Toys 長達60年的獨特歷史,以增強用戶對于品牌傳統、有趣和創意的商業價值的印象。

△ 訂單確認頁

△ 聯系方式頁

△ 公司介紹頁

7. 可用性測試

在完成線框圖之后,我就開始繪制網站原型以便進行可用性測試。這使我能夠評估用戶將會如何與網站進行交互,也能讓我評估網站是否滿足了用戶的基本需求。在進行UI設計之前,通過中保真原型進行可用性測試來獲取潛在用戶真實、關鍵的反饋是很有必要的,可用性測試還能鞏固網站的功能需求。

我邀請了4位用戶進行可用性測試,為了讓他們吻合用戶畫像中的用戶特征,我指定了三種用戶場景來讓他們完成測試。這三種用戶場景包括:

  • 您需要為您的女兒購買一個玩具。您會怎么查找商品并完成購買。

  • 您可以通過什么方法知道 Jeffrey’s Toys 下個月將要舉辦的店鋪活動。

  • 當您在網站上沒有找到您想要的玩具時,您將如何查詢并購買。

這些是我通過可用性測試得到的用戶反饋:

  • 總體而言,用戶能夠輕松地找到想要的產品和信息

  • 在結賬流程中,促銷活動部分會分散用戶的注意力

  • 部分用戶不想通過電話來查詢商品信息,需要提供其他的查詢方式。

  • 部分用戶覺得前往線下店鋪的引導部分還可以增強,目前的引導不夠。

△ 可用性測試得到的反饋

8. 后續步驟

這個案例研究展現的只是電商網站設計的開端。后續我將會繼續進行可用性測試,并進一步迭代我的設計。如果有更多的時間,我將會著重探索更多從網站引導用戶前往線下店鋪的方式。我也將會繼續豐富網站頁面并將Jeffrey’s Toys的視覺風格融入到網站中。下圖展示了我最初設想的UI設計風格。UI設計我希望秉持簡潔、創意、傳統的設計理念。

△ 首頁

△ 商品分類頁

△ 商品詳情頁

編輯總結

本文以玩具購物網站這個小案例,清晰地記錄了一個較為完整的產品設計流程。不論是設計方法,還是記錄方法,都可以借鑒運用在工作、匯報和作品集上。

藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

想讓交互更走心?這4種可見狀態微交互技巧一定要學會

高勁

在經典的尼爾森十大啟發式當中,「系統狀態可見性」可以說是如今交互設計領域當中,最為重要的原則之一。通過向用戶展現當前的狀態,讓用戶擁有對系統的控制權,建立用戶對于產品的信任感,這也是這種設計啟發式的最重要的價值之一。

但是,想要做到可靠、易用,系統狀態展現的技巧是很講究的。這里梳理了4種最為常用的方法,結合了不少實用的案例,希望對你有所幫助。

1、展示用戶位置、進度的視覺反饋

1.1、讓用戶知道自己在哪

沒有人會喜歡迷失方向,但是無論在現實生活還是在數字領域當中,這種情況都會發生。讓用戶知道他們在哪里是創建良好導航體驗的關鍵。應用程序和網站都應該凸顯當前的導航選項,幫助用戶了解他們所在的位置。

Google 的底部導航欄設計

1.2、要經過多少步驟來完成任務

這也是一個非?;镜牟僮?,通過展現步驟數量,幫助用戶來預估完成這個過程所需要的時間。

Selecto 的調查問卷的設計

2、輔助用戶交互的視覺反饋

數字界面畢竟不是現實世界中的真實硬件機構,用戶更多只能借助交互過程中的即時視覺反饋來確定是否完成了操作,即時的視覺反饋因此顯得非常重要。

即時的視覺反饋讓用戶的操作得到了視覺上的「認可」,從而強化了「確信感」,這樣一來一回的確認可以避免錯誤的發生,比如可以避免用戶因為「感覺沒有點下去」而反復點擊。

這種視覺反饋的設計,最常見的范例就是點擊按鈕按下的微交互動畫,它告知用戶「系統已經捕捉到點擊交互了」。

AliAli 所設計的懸停點擊動畫

但是在某些狀況下,按鈕的視覺反饋還有很多不同的呈現形式,有更多可見的、可理解的新形態,可以在原有的基礎上探索更多可能性,比如下面的

2.1、單擊點贊按鈕

Spread love, not viruses ,作者  Charles Patterson

2.2、開關按鈕

這個開關按鈕不僅有點擊動效,而且色彩和按鈕標識也隨之改變,更為清晰地表明狀態,甚至兼顧到了視覺障礙用戶

Switcher XLIV , 作者 Oleg Frolov

2.3、書簽按鈕微交互

這個書簽按鈕通過色彩的虛實變化來呈現書簽已添加的狀態,頗為巧妙。

Bookmark interaction,作者 Oleg Frolov

2.4、添加購物車微交互

在這種情況下,視覺反饋非常明確且優雅地告知用戶已經添加到購物車里面了。

咖啡下單動效,作者 Nhat M. Tran

3、呈現系統狀態的視覺反饋

3.1、系統正忙于什么事情

當系統正在加載,正在執行,正在運行的過程中,通過動效來告知用戶系統并沒有停止,而是正忙于執行某件事情,是避免用戶誤解的手段。在用戶等待的過程中,通常會實用無限加載的動效(一般使用在低于10s的操作中):

對于超過10s的更長的執行過程,無限加載的動效會顯得令人沮喪,這個時候實用進度條會更好:

這些視覺反饋很大程度上降低了系統給人的不確定感。

對于移動端應用,在初始加載階段所使用的啟動動畫界面,是否精心設計,決定了用戶對于整個產品的第一印象,優秀的初始加載動畫能夠將用戶的注意力從焦躁的等待中解放出來。

Logo 閃屏 ,作者 Gleb Kuznetsov?

3.2、內容加載

當用戶需要時間來加載內容的時候,建議使用一種特殊的的容器「界面骨架」來展現。這種臨時的內容容器不僅能夠幫助用戶快速地了解界面的整體框架,構建用戶預期,并且能夠在后臺快速地加載數據,漸進式地幫用戶獲得信息。

內容加載,作者 Ginny Wood

這種設計方式對于移動端和桌面端的設計同樣適用:

界面骨架加載動效,作者 Shane Doyle

4、觸發事件

4.1、通知和提醒

有效的通知和提醒,能幫用戶意識到有新的事情正在發生。在多數時候,我們建議設計師使用微妙的動畫來進行通知,因為動畫效果會自然地吸引用戶的注意力,人類的雙眼的動態視覺其實是非常強的。

Aleksei Kipin 設計的通知動效

4.2、提示用戶采取行動

在很多情況下,用戶界面中會有很多地方會需要用戶提交信息。比如,需要用戶提交表單,或者用戶創建了一個密碼,但是在復雜度上不足需要修正,或者填寫郵箱來訂閱信息的時候,郵箱格式出錯,等等。使用適當的視覺反饋總能夠更加有效地將問題告知用戶。

內聯郵箱驗證機制,作者 Derek Reynolds

結語

讓用戶有掌控感,就是為用戶創造更好的體驗。在很多設計方案中,視覺反饋會因為種種原因被削弱了,甚至被忽略了。但是當用戶在和 UI 進行交互的時候,期望度和可動性其實是高度依賴于這些動效和微交互,而這正是設計師需要設計出優秀視覺反饋效果的原因所在。

文章來源:優設     作者:Nick Babich

藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

原來那些經典的卡通形象是這么設計出來的

高勁

隨著大眾消費生活多元化和個性化的發展,卡通形象在當下社會的影響力變得越來越重要,它們活躍在各個文化領域中,特別是在商業中應用也越來越頻繁。

在信息爆炸時代,大多數人對過量的文字信息容易產生排斥的心理,并漸漸樂于接受視覺圖像形式的表達;而卡通形象由于其本身簡潔的視覺形象,也成為了最理想的視覺傳播符號之一。

本期分享會先從比較知名的幾個卡通形象切入,然后分享過去幾年我自己創作過的一些形象,希望對正在設計卡通形象或自己想創作形象的朋友有些許幫助。

先羅列幾個比較有名的卡通形象

卡通形象一般分為具象動物類型和抽象類型兩個方向。一提起動物類比較有名氣的卡通形象(比如熊這種動物),你大概會先想到熊本熊、布朗熊、泰迪熊,還有韓國的倒霉熊……兔子類的就是兔斯基、找死兔、可妮兔、流氓兔,還有很早的兔八哥……太多太多。

熊本熊的特征比較明顯,一身黑色加上兩個紅腮點,顏色上本身就給人很潮很時尚的感覺,體型略寬厚偏呆萌。很多女生會覺得它給人一種安全感,我的印象里它一直都是很憨厚的面癱造型出現,特別是出現在GIF動圖里大量真人穿著它的道具摔倒的畫面(有了“智障熊”這個外號)比較搞笑,有點愣頭愣腦。

所以設計造型上除了能讓粉絲記住的特征外,更多的是對于它的性格打造成,給人總愛賣萌的印象。

流氓兔(MASHIMARO)是一只瞇著眼的韓國兔子,隨著無厘頭文化的興起,流氓兔調皮又帶戲謔的個性通過原創者創作的網絡動畫形式呈現,其FLASH動畫在亞洲乃至全球掀起不小的風潮。

還有監獄兔、兔斯基、兔八哥…這些耳熟能詳的形象,這里不一一列舉了。

以具象動物創作卡通形象既簡單又挺難的,為什么簡單?因為不用你去較勁腦汁再重新創造一個新的形象,具象動物(比如熊)就是那個樣子。那為什么又很難?具象動物卡通形象太多了,不管你怎么去變著法兒努力畫的不一樣,但最后的效果可能還是會雷同,況且知名的具象動物IP形象又很多,所以不容易創作。

如何創作一個有特征的卡通形象

那么,今天主要是聊一聊我之前創作過的卡通形象當中的心得體會和一些過程稿。第一個例子是在創作浪小花時候,主要從微博品牌標志找切入點,提取LOGO的主要特征(就是圖形頭上的三個波浪,如下圖),這也是比較能體現卡通形象與品牌之間關系的地方。

前期草圖探索是比較漫長和煎熬的,(下圖)這些是其中的一部分比較靠譜的草圖,盡管只是三個波,但做了很多種不同的變化。比如可以像個公雞冠一樣長在頭上,也可以帽子形式戴在頭頂上,還可以長在后背上。

在創作形象時是先從PC端的動態表情(下圖22px大?。╅_始的,也就是先從主要使用場景著手,所以做出來的表情利用好有限的展示活動區域,頭身比例控制好,既要考慮形象的完整性,又要考慮動作展示能夠看得最清楚,還要能突出這個不一樣的品牌特征(腦袋上那三個波),這也是一個非常具有挑戰性的案例。

到了手機移動端里,表情基本上是把PC上的表情一部分移植過去,不改變比例和動作情況下,盡可能豐富設計的細節。

這里要提的是形象顏色的選擇,考慮要最貼近用戶,不用微博那么重的紅色,由于表情是最開始是用在PC網頁版微博文字里,顏色太重就會看來視覺比較突兀,所以選了一個跟人的膚色很近的肉粉色(有點像小嬰兒),這樣表情用起來就比較具有親和感。

而在設計微小米的時候選用了LOGO本身的顏色大紅色,由于使用場景是手機端聊天對話里(下圖),感覺不會那么影響閱讀(其實我個人很喜歡這個紅色,給人很喜慶的感覺)。

(下圖)在確定這個形象之前的一些探索草圖這里也發出來,而且這一次創作了三個形象,包括一個白胖子和一只小雞,(有參考了Line的形象)希望能出一個小家族,這樣后期延展運用也能玩起來。

在創作這個形象前,嘗試了很多不同的形象(上圖),最后采用了這個大紅口袋娃娃:臉和身子是連在一起的,也看不到脖子,所以這個形象的特點也就在這里。另外,頭上加了一個小揪兒。

(上圖)這個是優化前的樣子(頭上是圓圓的揪兒),為了制作動態GIF時,讓頭上的小揪兒動起來更帶感,就改成了(下圖)這個樣子,跳起來可以一甩一甩的。

在進行卡通形象提案之前,如果能花點心思做一個小小的場景(下圖)也能給自己的方案加分。

每個形象都嘗試一些動作變化,這樣它們各自的性格就很容易把握了。比如,我會覺得(下圖)紅框那個表情延伸感覺很猥瑣,不太適合這個形象,所以后面的表情延展盡量讓微小米表現得更萌一些,避開這種很猥瑣的感覺。(當然這些說起來都比較偏個人感受,只有作者自己可以體會到)

把這幾個形象性格先摸透很有必要(來一張定妝的全家福)。

我個人比較滿意(下圖)這一組系列的扁平化風格,沒有描線的感覺確實更輕快,偏小清新。

下面是幾組自己平時的創作,也是利用業余時間創作的幾個形象,我會思考如何抓取每一個形象不一樣的特征?于是,這些特征可能是發型的變化,可能是眼睛的變化,也可能是衣著的變化……

這些不一樣的變化都是讓這個形象看起來與眾不同,讓人先記住它,但最打動人的還是這個形象能否跟看到它的人產生互動和共鳴……這也是這個形象的靈魂和存在的意義。

這一個形象的創意點是借用大家都熟知的“小紅帽”這個經典童話造型,讓這個小人長著胡子,名字和形象就會形成一個心理和視覺的反差。

將自戀、貪吃、自大、邋遢……這些小人物的缺點賦予這個形象,這樣一個活脫脫的“小屌絲”的形象可能就會給人很深的記憶。

畢竟生活中大部分人都有著這樣那樣的缺點,但都希望擺脫囧態,讓自己變好的那分勵志感。

我很喜歡畫一些丑乖的東西,現在大家都審美疲勞了,可愛的東西都乏味了,反而更喜歡一些丑的可愛的形象。那么給這些形象加個厚嘴唇、小胡子什么的,反而很容易出效果。

好了,寫到這里……下面的圖大家自己發現亮點,自己感受腦補吧……總之,創作形象時還是要抓住大眾的心理軟肋,先打動自己再去感染別人。

在畫卡通形象時候,我們往往很容易陷入兩個難以跳出的區域:一個是容易畫得偏低幼、低齡化;另一個就是表情動作偏呆板國企風。這是受我們從小周圍接收的圖像信息影響的,在還沒有將練習探索的草圖量形成一個質的提升之前,先有這種意識也很重要,這種意識會幫助你在以后摸索練習的時候注意到形象的頭身比例,以及思路慣性的打破。

歡迎對品牌、插畫和卡通形象感興趣的朋友可以一起討論、練習。

文章來源:我們的設計日記(ID:helloskys)

藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

以后還敢說自己不會版式設計?

高勁

作為一名專業的設計師,版面設計能力直接影響到該設計師水平。我們很多設計朋友在臨摹的優秀作品中,往往只是被作品華麗的外表吸引了,比較少去思考設計背后的秘密。

那么在這里,我總結了版式設計原理的幾個方面,結合一些具體例子實際操作演示,讓對這塊不熟悉的設計師朋友們能快速掌握版式設計。

目錄

  1. 版式組成
  2. 構圖平衡
  3. 設計原則
  4. 設計流程
  5. 案例演示

以后還敢說自己不會版式設計?

一、版式組成

主體:視覺焦點,主導著整個設計(可以是人/物/文字/圖片),整個版面最吸引人的部分,相當于主角的作用。

文案:對主體的輔助說明或引導,畢竟有時候我們放一只小狐貍在旁邊,用戶也不能準確的知道它在說什么,配角的作用。推薦閱讀:平面廣告的版式風格與創新!

點綴元素:裝飾元素,可有可無,具體根據版面需要;好的點綴元素能夠渲染氣氛,大部分的點綴元素遵循三角形原則,類似下圖中的云朵,群演的作用。

背景:可分為純色/彩色肌理/圖片/圖形等。

以后還敢說自己不會版式設計?

二、構圖平衡

在設計中,平衡是實現統一的一條重要途徑。如果上面所說的元素組合起來處于平衡狀態,那么這個設計看起來就是統一的,就會給人一種整體印象。

因此,平衡是視覺傳達設計的一個重要方面。版式平衡總共有3種分類,分別是:對稱平衡,非對稱平衡和整體平衡。

以后還敢說自己不會版式設計?

1. 對稱平衡

對稱是同等同量的平衡,對稱式設計是一種靜態的,可預見的,講究條理和平衡布局的設計。對稱構圖相對比較易于創建,特點是穩定,莊嚴,整齊,安寧,沉靜和古典。

以后還敢說自己不會版式設計?

2. 非對稱平衡

非對稱在不對等的元素間創設出秩序和平衡,非對稱設計由于版式不可預見,所以空間是變化的。特點是動態的,靈活的和富有活力。非對稱構圖比較多,常見的有以下6種形式。

以后還敢說自己不會版式設計?

對角線構圖:

文案擺放在版面的對角線方向,一方面避免了司空見慣的居中版面,一方面給中心主體留出了更多的創作空間;另外中心的圖形也可以是對角線的設計,這樣會讓整個構圖看起來比較平衡。

以后還敢說自己不會版式設計?

發射狀構圖:

點綴元素圍繞中心的文案或者圖形發射,這樣的構圖會讓中心的視覺容易聚焦,視覺沖擊感會更強烈。

以后還敢說自己不會版式設計?

像電商大促活動,淘寶和京東等等會經常使用發射性構圖來營造大促活動的熱鬧火烈程度。

以后還敢說自己不會版式設計?

中心構圖:

這是我們最常見的構圖之一,文案和主體居中頁面,注意的是位于版心的主體要盡可能的出彩,利用設計技巧吸引讀者的眼光,這樣才能避免平淡乏味。

以后還敢說自己不會版式設計?

s形構圖:

文案或者圖形放在線條轉折的地方,整體呈一個 s 形。另外線條的起點和重點也同樣是讀者容易關注的地方,可以放一些重要的信息。這樣的構圖靈活,有趣,而且可以引導用戶沿著 s 形軌跡閱讀信息。

以后還敢說自己不會版式設計?

二分構圖:

文案和主體分開,呈左右或者上下的構圖形式,注意的是文案要采用對齊原則。這樣的構圖也是比較容易創建的。

以后還敢說自己不會版式設計?

形狀構圖:

主體和文案組合的形式可以是圓形,三角形,矩形等形狀構圖。注意如果是用三角形構圖,最好呈倒金字塔結構,這樣更加輕易引導用戶進入下一個信息層。

以后還敢說自己不會版式設計?

3. 整體平衡(滿版平衡)

整體平衡,是指圖片充滿整個版面,文案布局在上下,左右,中部的位置,特點是主要以圖像為訴求,視覺傳達直觀而強烈。滿版型構圖,給人大方,舒展的感覺。

注意:在設計的過程中,這種類型的文字處理很容易顯得「嘈雜」,因此為了避免擁擠的空間,適當刪減些文字。

以后還敢說自己不會版式設計?

三、設計原則

對構圖形式了解后,我們還要知道一些基本的設計原則,雖然這些原則我們可以在其他地方反復的看到,但是我在這里還是要強調一遍,因為它可以幫助我們在打破規則之前,必須清楚規則是什么。另外注意一點就是,這幾個原則不是獨立分開的,而是可以同時考慮和結合,不是唯一選擇:

以后還敢說自己不會版式設計?

1. 對比

缺乏對比,作品會變得平淡乏味并且不能有效地傳遞信息。艾美獎設計師、Blind 公司創始人 Chris Do 說過 contrast is king(對比至上),運用好對比,可以在頁面上引導用戶的視覺,并且制造焦點。

以后還敢說自己不會版式設計?

一般產生對比的方法可以有:大小對比、粗細對比、冷暖色對比……不管是哪種對比,當你期望對比效果有效的話,需要大膽一些,明顯一些,不要拿12號和13的文字做大小對比,這是沒有任何意義的,不要畏畏縮縮,做設計也是一樣。

以后還敢說自己不會版式設計?

2. 對齊

任何元素都不能在版面上隨意安放。每一項都應當與頁面上的某個內容存在某種視覺聯系。在版面上找到可以對齊的元素,盡管它們可能距離比較遠。需要注意的地方是避免同時使用多種對齊方式。

以后還敢說自己不會版式設計?

左邊的海報采用了矩形構圖,右邊的海報采用了二分構圖,但是文案都是找到了一條明確清晰的對齊線,這樣讓版面產生了秩序美。

以后還敢說自己不會版式設計?

3. 親密性

同類相近,異類相遠,相關的元素距離靠近,歸組在一起,成為一個視覺單位,而不是多個孤立分散的狀態,這樣有助于組織信息,減少混亂,讓結構變得更清晰。根據文案內容,進行合理的分組與歸類。

以后還敢說自己不會版式設計?

左邊海報文案分成了4組,清晰有條理,中心的主體和點綴元素也利用了親密性原則,使得中心主體顯得更飽滿;右邊海報主體采用了發射構圖,整體呈倒置的金字塔形式,這種錐形容易引導用戶閱讀下一個信息層。

以后還敢說自己不會版式設計?

4. 重復

重復的目的是統一,并增強視覺效果。比如標題都是同一個字體或大小或粗細。但需要注意的是,要避免太多地重復一個元素,重復太多只會讓人討厭,要注意重復的「度」。太多的重復會混淆重點,都是重點等于沒有重點。一般來說,呈均勻的重復式圖案,是作為背景使用的。

以后還敢說自己不會版式設計?

左邊海報中,我們的視線會被那一個不同的女孩吸引住,這個女孩和左上角的文案「敏感詞萬歲」相呼應,這種同質中的不同,即是變異元素,用來制作視覺焦點。

右邊海報是葛西熏設計師為日本著名仲條正義設計的個人展海報,其中重復的形象是一個腮幫鼓起的小孩形象,不知道是在喝東西還是吐東西,這個具有沖擊感的形象其實和這次展覽主題「飲&嘔吐」呼應的,設計師想表達仲條正義的創作于人生,正如這個重復的形象,不斷吸收,不斷推翻,最后不斷創造。

以后還敢說自己不會版式設計?

5. 留白

留白是虛實空間對比的作用。適當的留白能讓頁面透氣,有呼吸,給人舒適感。大量視覺信息堆砌時,每個元素都要經過眼睛掃描,大腦處理,當找不到重點的時候用戶眼睛和大腦容易疲憊。在內容比較多的情況下,盡量在視覺上減少視覺分組;另外,多利用負空間創作一些巧妙的負空間。

以后還敢說自己不會版式設計?

左邊在留白的同時,利用了負空間巧妙的將海報的主題「美食」和「美酒」結合起來。右邊的海報是日本大師原研哉的設計作品,大量的留白空間更加顯得中間壽司的精致,少而靜的視覺元素提升了作品的品質感。

以后還敢說自己不會版式設計?

6. 變化

一成不變的元素會容易乏味無趣,版面也缺乏靈活感,如果將一些元素發生位置,大小或者顏色變化,打破版面呆板、平淡的格局,使得畫面非常有層次感,不失為打破格局的好方法。

以后還敢說自己不會版式設計?

左邊的海報如果將所有的元素歸位,這將是一個文案和人物分開中規中距的構圖,當他們的位置發生了一些位移,整個頁面變得有趣多了。右邊海報采用了 s 形構圖,如果這些圓圈是一樣的大小、顏色,可能沒有多少人會有耐心的閱讀下去。

以后還敢說自己不會版式設計?

四、設計流程

前面我們了解了版式組成的元素,構圖和設計原則,那么我們在工作中怎么利用起來呢,下面介紹我自己的設計流程,每個人的流程都不一樣,大家都可以根據自己的習慣來調整。

以后還敢說自己不會版式設計?

1. 需求溝通,確認主題

當接到需求的時候,第一步不要著急馬上開工。先要找對需求的方向,才能提高工作效率,事半功倍。溝通主要注意幾個方面:

需求的目的是什么?目標用戶是誰?背景是什么?——對癥下藥

  • 這么多文案或者素材里面,哪個是一級二級?——劃分信息層級,尋找重點

  • 風格上面有什么要求或建議?能否用3個關鍵詞表達?——預期效果是否達成一致

Ps:關于第3步風格溝通,建議雙方用圖片交流和表達。畢竟每個人對「高大上」的理解都是不一樣的,有的人認為是五彩斑斕的黑,有人認為是大量的留白。有了圖片,我們可以去分析圖片符合「高大上」的原因是哪些,從而提煉出具體的元素,將「感覺」具體化,這里也是運用到了情緒板設計的體系。

以后還敢說自己不會版式設計?

2. 確定構圖形式,學會視線引導

根據前面的溝通和風格關鍵詞,收集好用于表達信息的元素,包括圖形圖像文字等等,然后在草稿或者腦海中構思好,怎樣的排布能讓信息有效的傳達出去。另外作為設計師要學會引導用戶的閱讀視線。比如你找到了一個抬頭向上看的模特,你可以把文案放在海報上方,用戶會習慣性地自然地沿著模特的視線看到文案。

以后還敢說自己不會版式設計?

3. 色彩搭配,5種平衡關系

關于配色,在網上大家都可以看到很多方法和理論,下面介紹這5種色彩平衡的方法個人覺得比較實用,也比較容易理解,大家要根據實際需求來運用合適的配色方案。

互補色——相互襯托

互補色就是色環上相對的兩個顏色,海報中的綠色和紅色就是這種關系,相互映襯,相互襯托,從而達到了一種平衡。

冷暖色——情感表達

當我們想表達強烈的情感時候,可以用冷暖色去對比,經常會在電影海報或者插畫作品中看到。

深淺色——色彩層次

這里的深淺指的是黑白灰對比的重和輕,一般來說,色大而深顯得比較重要,色小而淺顯得比較次要,我們可以看一下前面講構圖那塊展示的海報黑白版,會發現這個規律更加明顯。

中性色和彩色——視覺聚焦

中性色指的是黑色,白色和灰色,也叫無彩色,當中性色充當背景色的時候,彩色部分會更加突出和聚焦。

純色和花色——平衡多色關系

如果一張圖中,主體本身顏色比較豐富鮮艷,背景色也五顏六色的話就眼花繚亂了,也就是經常說的辣眼睛,這時候一般采用純色的背景來緩解視覺疲勞和平衡多色之間的關系。

以后還敢說自己不會版式設計?

以后還敢說自己不會版式設計?

4. 確定字體搭配

不同的字體有不同的氣質,根據風格來選擇合適的字體。如果遇到比較好看的字體,卻不知道叫什么名字,可以找一些以圖搜字的網站,比如求字網等等,避免伸手黨。

黑體

工業現代感比較強的無襯線字體,給人感覺端正剛硬,具有力量感,多用于表達簡潔或信賴感的主題。

宋體

細致優雅的襯線字體、苗條細長,特點是復古,多用于表達文藝或者時尚的主題。

圓體

圓體的筆畫圓潤,柔美,可愛,具有親和力,多用于女性或兒童的主題領域。

書法體

書法體特點是瀟灑大方,氣勢磅礴,具有歷史感,多用于表達傳統文化或者歷史主題。

哥特體

哥特體是裝飾性比較強的襯線字體,線條交接處和末端具有明顯的粗細變化和裝飾。特點是犀利、凌厲,多用于表達驚悚、魔法童話或者戰爭的主題。

藝術體

藝術體其實是泛指像素風格,手寫字體,漢儀六字簡等等具有強烈的藝術風格和設計感的字體。特點是輕松活潑,具有觀賞性和趣味性。

以后還敢說自己不會版式設計?

以后還敢說自己不會版式設計?

以后還敢說自己不會版式設計?

五、案例演示

上面的案例大部分是平面展覽或者電影海報,那么實際工作中的網頁,banner、閃屏或者 ui 界面這些怎么辦呢?其實方法都是一樣的,版面設計的原理應用在各個方面。這里演示一個移動端 banner 設計案例吧。

以后還敢說自己不會版式設計?

首先,運營小姐姐的文案非常簡潔,沒有冗長到讓我要分成一級二級三級;其次需求的目的也很明確,就是要突出2個素材和按鈕;最后風格也沒有奇奇怪怪的提議,只要和產品整體調性一致就好。

那么在這里要介紹一下產品的背景了,pins 是一款少女心拼圖 app,界面簡潔清新,多種布局模板和背景。很快的,我在腦海中簡單地構思了一下構圖的方式。其實3種構圖形式都是可以的,但是為了更好的突出按鈕和素材效果,我最后選擇了對角線構圖。

以后還敢說自己不會版式設計?

先在黑白稿的情況下把文案和主體布局好,讓主次關系清晰;考慮到目標用戶大部分是女生,使用了圓形字體,配色主要是參考了 pins 的 logo 的配色,少女心的品牌色;最后細節調整,加上一些點綴的元素,其中網格是 pins 比較受歡迎的背景。一個簡單的 banner 就這樣完成了。

以后還敢說自己不會版式設計?

當我們的工作內容無法滿足做文字比較多的平面海報的欲望時,可以考慮自命題的練習。當時聽到許巍《無人知曉》這首新歌的時候,有一些感悟和想法然后做了一些 C4d 素材,想利用它作為主體和歌名做一下排版練習:

以后還敢說自己不會版式設計?

在開始動手做之前我就想好了這次想做一個視覺直觀而強烈的海報,再加上主體是文案和素材的結合,所以我才采用了滿版構圖。在黑白灰中將主角和配角的位置確定好,再去調整字體和距離。推薦閱讀:版式必備的7招處理方法

以后還敢說自己不會版式設計?

然后調整主體中4個字和素材之前的交叉和重疊,細節調整后,我嘗試了2個配色方案,一種是利用主體素材的顏色進行搭配,平靜和諧;另外一種是紅藍配色,直觀強烈。

以后還敢說自己不會版式設計?

總結

最后總結一下,我們在進行版面設計時候,要注意從這幾個方面去不斷調整和檢查,同樣當你看到一張海報的時候不知道怎么去思考和分析,也可以從這幾個方面入手:

主題是否鮮明?視覺焦點是否突出?

  • 構圖是否平衡?(3種平衡關系)

  • 設計原則是否合理運用?(6個設計原則)

  • 細節是否豐富? 是否有趣? 細節考驗著設計師的情懷。(字體、色彩、光影等)

以后還敢說自己不會版式設計?

以上海報案例圖片采編于網絡,版權歸屬原作者。

來源:UID的小伙伴們

藍藍設計m.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

高手如何從零開始設計 UI 界面?這個實戰案例告訴你!

高勁

這是 UI 設計師 Diana Malewicz 的一篇 UI 界面設計的分享。怎樣在保證基本的可用性和易用性的同時,讓界面柔和、富有親和力?如何在讓用戶愉悅的同時,還能用設計取悅自己?Diana 的方法談不上有多神奇,但是讓人眼前一亮,值得借鑒。

真的關注趨勢變化,你會清晰的感受到,視覺效果和設計技巧一直在變……它們一直是設計師們的話題中心。但是這篇文章并不打算討論這個事兒,無論漸變是否流行,新擬物化的可訪問性是否不足,都不在今天的討論范圍內。

對于各種風格、方法,我的觀點始終是:做出來的設計要可用,有用,有良好的可訪問性,用戶可以輕松理解,就行了。不過,我更樂于從趨勢中獲得樂趣,而不是將它視作為約束,如果每個界面看起來都是一樣的,那該是一件多么無聊的事情啊。

關鍵在于,要讓產品的視覺樣式和你的用戶群體匹配起來。

我個人非常喜歡漂亮的漸變和微妙的陰影,這樣的設計常常顯得魅力非凡。這種自然的過渡和光影的變化,非常貼合我們對于現實世界的感知,這就是為什么這樣的設計能夠俘獲大量沒有技術背景的用戶的心——因為它們看起來友好,并且易于理解。

在這篇文章當中,我將分享如何將 UI 效果設計得出彩又友好,讓視覺效果柔和又讓人感覺舒適。本文圍繞著一個「面向年輕人的金融 APP」虛擬設計項目來進行展示。

下面我們開始吧!

視覺層次的一致性

怎么讓我們的設計看起來柔和圓潤呢?下面開始準備工作:

1、選擇想要使用的配色(想想使用柔和的粉彩構成的背景主色調,搭配一個給人精致感的次要色,以及一個抓人注意力的強調色。)

2、選擇合理的字體(我用的是 Brandon Grotesque,這是我最喜歡的字體,它足夠友好,能夠營造有趣的氛圍,且具有良好的可讀性)。接下來,給字體設計不同大小和字重(最好不超過5種不同的樣式)。其中,標題字體應該較大,正文字體較小,最小的字體用于細節呈現。注意,盡量不要在長句子里面使用全大寫。

3、確定你所需要的陰影的高程(Height)和模糊度。

4、如果使用的是圖標,確定使用填充樣式還是描邊樣式。盡量不要混用。

至此,一個小型的設計系統就已經確定了。挺好看的!

色彩搭配只是色相變化?應更注重明度與純度

高勁

不管是平面設計、品牌設計,還是UI設計,配色都是一個基礎,決定著作品的視覺效果。這篇文章就從色相、純度、明度(色彩的三大屬性)三個角度,展開談談色彩的搭配。

如何做好空狀態設計?來看資深設計師的總結!

高勁

今天為大家帶來的文章是「空狀態」設計,良好的空狀態設計能提升產品體驗,有效留存用戶。在這里把這篇文章分享給大家!

移動端適配問題解決方案

高勁

隨著時間的發展,現在基本上人手一部手機的低頭族。做為前端開發的程序猿,在開發移動端web應用的時候,對面一堆各色尺寸不一樣的屏幕,就有點淡淡的憂傷。

QQ截圖20180705114651.png

QQ截圖20180705114755.png

以上是2018年二月份的友盟數據,可在這里查看詳情
很明顯我們所要實現的就是在上述如此之多的屏幕,都能實現UI大大出的視覺圖上的效果。而要實現這樣的效果主要有兩個難點

  • 各屏幕適配
  • Retina屏下的細節處理(主要是1px的問題)

各屏幕適配各屏幕的適配,有兩種方案,flexible + rem 與 vw。這三個單詞是什么意思,看著很眼熟,但是這兩個方案居然是什么呢,請允許我細細道來。

flexible + rem顯而易見,該方案是由rem 以及 flexible組成的。rem (font size of the root element)相對于根元素(即html元素)font-size計算值的倍數,flexible 即 flexible.js, 手淘團隊提供的一個為該方案屏幕適配而寫的一個庫,主要實現的功能就是,根據屏幕的寬度給 html 元素設置一個合適的 font-size 值。

怎么樣看的不是很懂是吧。讓我來用一個頁面場景再復述一遍。

正常情況下,我們的UI大大會以iphone6的尺寸為標準,做一套視覺效果圖,并在上面進行標注,給到我們的標注圖,如下所示

QQ截圖20180705115007.png

拿到這個圖 我們該如何下手呢

  • 先設置 html 元素的 font-size, 這個值我們暫時設置為 font-size: 37.5px,即1rem = 37.5px;
  • 以iphone6為例子,其屏幕寬度為 750px, 整個屏幕的寬度即 20rem = 37.5 * 20px = 750px;
  • 此時手機號的輸入框為 490px = 13.06777777rem
  • 依次將頁面上的px轉換為rem,這樣我們就得到了全是rem為尺寸單位的頁面

到這里為止是不是就結束了呢 ? 很遺憾的告訴你并不是。為什么 html 元素的 font-size 要設置為 37.5px呢?現在這個界面在iphone6上能完美顯示了,在iphone5s,iphone6p能完美顯示嗎?(iphone6, iphone6s, iphone7. iphone8屏幕沒有發生變化,本文直接用iphone6代替了。)上面的兩個問題 我們還有沒解決,這個時候就輪到flexible登場了。只需要像如下引入就可實現用js來自動根據屏幕寬度設置 html元素的font-size的值。

<script src=";引申一下在上述過程中,你會發現,UI給到我們的一般是px標注的圖,我們將其轉化為rem,這個過程其實會花費很大的計算時間。做為一個合格的程序員,我們應該把這種機械性無腦的操作交給計算機來實現。我使用的是PostCss的插件 postcss-px2rem,這個插件能讓我們在寫代碼時候直接寫px,在構建的時候自動將我們所寫的px轉換為rem,大大提升了我們的開發效率。

vw這個vw的方案,相當而言還比較新。vw 即(viewport width)可視窗口的寬度。之所以把這個方案放在后面來說,是因為viewport在去年(2017年)的時候存在不少的兼容性問題,各個瀏覽器的支持并不是很好。但是來到了2018年這個時間點,viewport單位意見得到了眾多瀏覽器的支持(80.45%)。


QQ截圖20180705115133.png

可以在這里查看。
接下來就讓我們來正式了解下這個方案吧。vw既然是一個尺寸單位,那它的寬度等于多少呢?等于1%整個屏幕的寬度。舉個例子,再次以iphone6手機為例,100vw = 750px => 1vw = 7.5px
再一次那上次的界面做示范

QQ截圖20180705115007.png


  • 根據定義,我們了解了在iphone6手機上 1vw = 7.5px
  • 此時手機號的輸入框為 490px = 65.333333vw
  • 依次將頁面上的px轉換為vw,這樣我們就得到了全是vw為尺寸單位的頁面

到這里為止是不是就結束了呢? 是的就是這么簡單。

引申一下跟之前一樣的痛點,我們仍然需要花費大量不必要的計算時間去把標注圖中的px轉換為vw,有沒有類似于postcss-px2rem的工具呢?很榮幸能再次站在巨人的肩膀上,已經有大神寫了了類似的PostCss插件 postcss-px-to-viewport

1px問題移動端的屏幕不僅僅分辨率有差異,其實還有Retina屏的問題。正常情況下,我們代碼里的1px在屏幕上就應該顯示一個像素點,但是在Retina屏下則不僅僅是一個像素點。再次拿iphone6為例,其dpr(device pixel ratio)設備像素比為2,css中一個1x1的點,其實在iphone6上是2x2的點,并且1px的邊框在devicePixelRatio = 2的Retina屏下會顯示成2px,在iPhone6 Plus下甚至會顯示成3px。

這樣的話,我們就會發現在有些手機上1px明顯跟另外的一些手機的1px粗細不一樣。其實大多數的小公司不會扣這樣的一個細節,比如說我們公司不會。(^__^) 嘻嘻……

但是作為一個有追求的前端工程師,我們應該盡量的把事情做的完美一點,(ps.像大公司看齊,在大公司這個細節問題其實是不容忽視的,為了自己以后的發展前途,我們有必要把這個細節完善掉的。)

這個問題的解決方案有很多,個人覺得最簡單方面的還是大漠大大的一種解決方案。使用postcss-write-svg插件,

@svg 1px-border {  height: 2px;  @rect {    fill: var(--color, black);    width: 100%; height: 50%;    }  }.example {  border: 1px solid transparent;  border-image: svg(1px-border param(--color #00b1ff)) 2 2 stretch;}編譯出來就是

.example {  border: 1px solid transparent;  border-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='其他小程序中的屏幕適配最近在寫小程序,在小程序里,使用的是小程序的那套,跟平時用的vue全家桶以及react全家桶不一樣,并沒有配置webpack,在這種情況下我們使用postcss其實很困難(反正我是搞不出來/(ㄒoㄒ)/~~)

那該怎么辦呢,小程序提供了一個自己的單位, rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。



設備

rpx換算px (屏幕寬度/750)
px換算rpx (750/屏幕寬度)



iPhone5

1rpx = 0.42px
1px = 2.34rpx



iPhone6

1rpx = 0.5px
1px = 2rpx



iPhone6p

1rpx = 0.552px
1px = 1.81rpx

我們直接用拿到iphone6的標注圖,直接寫rpx就好。



開發中我們需要遵循的幾個設計原則!

高勁

出處:https://www.cnblogs.com/pengdai


一、開發原則
S:單一職責SRP
O:開放封閉原則OCP
L:里氏替換原則LSP
I:接口隔離法則
D:依賴倒置原則DIP
合成/聚合復用原則
迪米特法則
在軟件開發中,前人對軟件系統的設計和開發總結了一些原則和模式, 不管用什么語言做開發,都將對我們系統設計和開發提供指導意義。本文主要將總結這些常見的原則和具體闡述意義。
面向對象的基本原則(solid)是五個,但是在經常被提到的除了這五個之外還有迪米特法則和合成復用原則等,所以在常見的文章中有表示寫六大或七大原則的; 除此之外我還將給出一些其它相關書籍和互聯網上出現的原則;

二、S單一職責SRP

Single-Responsibility Principle,一個類,最好只做一件事,只有一個引起它的變化。單一職責原則可以看做是低耦合、高內聚在面向對象原則的引申,將職責定義為引起變化的原因,以提高內聚性減少引起變化的原因。

1、定義

一個對象應該只包含單一的職責,并且該職責被完整地封裝在一個類中。(Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.),即又定義有且僅有一個原因使類變更。

2、原則分析

一個類或者大到模塊,小到方法,承擔的職責越多,它被復用的可能性越小,而且如果一個類承擔的職責過多,就相當于將這些職責耦合在一起,當其中一個職責變化時,可能會影響其他職責的運作。
類的職責主要包括兩個方面:數據職責和行為職責,數據職責通過其屬性來體現,而行為職責通過其方法來體現。
單一職責原則是實現高內聚、低耦合的指導方針,在很多代碼重構手法中都能找到它的存在,它是最簡單但又最難運用的原則,需要設計人員發現類的不同職責并將其分離,而發現類的多重職責需要設計人員具有較強的分析設計能力和相關重構經驗。

3、優點

降低類的復雜性,類的職責清晰明確。比如數據職責和行為職責清晰明確;
提高類的可讀性和維護性;
變更引起的風險減低,變更是必不可少的,如果接口的單一職責做得好,一個接口修改只對相應的類有影響,對其他接口無影響,這對系統的擴展性、維護性都有非常大的幫助。
注意:單一職責原則提出了一個編寫程序的標準,用“職責”或“變化原因”來衡量接口或類設計得是否合理,但是“職責”和“變化原因”都是沒有具體標準的,一個類到底要負責那些職責?這些職責怎么細化?細化后是否都要有一個接口或類?這些都需從實際的情況考慮。因項目而異,因環境而異。

4、例子

SpringMVC中Entity、DAO、Service、Controller、Util等的分離。

三、O開放封閉原則OCP

Open - ClosedPrinciple,OCP對擴展開放,對修改關閉(設計模式的核心原則)

1、定義

一個軟件實體(如類、模塊和函數)應該對擴展開放,對修改關閉。意思是在一個系統或者模塊中,對于擴展是開放的,對于修改是關閉的。一個 好的系統是在不修改源代碼的情況下,可以擴展你的功能。而實現開閉原則的關鍵就是抽象化。

2、原則分析

當軟件實體因需求要變化時, 盡量通過擴展已有軟件實體,可以提供新的行為,以滿足對軟件的新的需求,而不是修改已有的代碼,使變化中的軟件有一定的適應性和靈活性 。已有軟件模塊,特別是最重要的抽象層模塊不能再修改,這使變化中的軟件系統有一定的穩定性和延續性。
實現開閉原則的關鍵就是抽象化 :在"開-閉"原則中,不允許修改的是抽象的類或者接口,允許擴展的是具體的實現類,抽象類和接口在"開-閉"原則中扮演著極其重要的角色..即要預知可能變化的需求.又預見所有可能已知的擴展..所以在這里"抽象化"是關鍵!
可變性的封閉原則:找到系統的可變因素,將它封裝起來。這是對"開-閉"原則最好的實現。不要把你的可變因素放在多個類中,或者散落在程序的各個角落。你應該將可變的因素,封套起來..并且切忌不要把所用的可變因素封套在一起。最好的解決辦法是,分塊封套你的可變因素!避免超大類、超長類、超長方法的出現!!給你的程序增加藝術氣息,將程序藝術化是我們的目標!

3、例子

設計模式中模板方法模式和觀察者模式都是開閉原則的極好體現。

四、L里氏替換原則LSP

Liskov Substitution Principle,LSP:任何基類可以出現的地方,子類也可以出現;這一思想表現為對繼承機制的約束規范,只有子類能夠替換其基類時,才能夠保證系統在運行期內識別子類,這是保證繼承復用的基礎。

1、定義

第一種定義方式相對嚴格:如果對每一個類型為S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序P的行為沒有變化,那么類型S是類型T的子類型。
第二種更容易理解的定義方式:所有引用基類(父類)的地方必須能透明地使用其子類的對象。即子類能夠必須能夠替換基類能夠從出現的地方。子類也能在基類 的基礎上新增行為。
里氏代換原則由2008年圖靈獎得主、美國第一位計算機科學女博士、麻省理工學院教授BarbaraLiskov和卡內基.梅隆大學Jeannette Wing教授于1994年提出。其原文如下:Let q(x) be a property provableabout objects x of type T. Then q(y) should be true for objects y of type Swhere S is a subtype of T.

2、原則分析

講的是基類和子類的關系,只有這種關系存在時,里氏代換原則才存在。正方形是長方形是理解里氏代換原則的經典例子。
里氏代換原則可以通俗表述為:在軟件中如果能夠使用基類對象,那么一定能夠使用其子類對象。把基類都替換成它的子類,程序將不會產生任何錯誤和異常,反過來則不成立,如果一個軟件實體使用的是一個子類的話,那么它不一定能夠使用基類。

里氏代換原則是實現開閉原則的重要方式之一,由于使用基類對象的地方都可以使用子類對象,因此在程序中盡量使用基類類型來對對象進行定義,而在運行時再確定其子類類型,用子類對象來替換父類對象。

五、I接口隔離法則

(Interface Segregation Principle,ISL):客戶端不應該依賴那些它不需要的接口。(這個法則與迪米特法則是相通的)

1、定義

客戶端不應該依賴那些它不需要的接口。
另一種定義方法:一旦一個接口太大,則需要將它分割成一些更細小的接口,使用該接口的客戶端僅需知道與之相關的方法即可。
注意,在該定義中的接口指的是所定義的方法。例如外面調用某個類的public方法。這個方法對外就是接口。

2、原則分析:

(1)接口隔離原則是指使用多個專門的接口,而不使用單一的總接口。每一個接口應該承擔一種相對獨立的角色,不多不少,不干不該干的事,該干的事都要干。
? 一個接口就只代表一個角色,每個角色都有它特定的一個接口,此時這個原則可以叫做“角色隔離原則”。
? 接口僅僅提供客戶端需要的行為,即所需的方法,客戶端不需要的行為則隱藏起來,應當為客戶端提供盡可能小的單獨的接口,而不要提供大的總接口。
(2)使用接口隔離原則拆分接口時,首先必須滿足單一職責原則,將一組相關的操作定義在一個接口中,且在滿足高內聚的前提下,接口中的方法越少越好。
(3)可以在進行系統設計時采用定制服務的方式,即為不同的客戶端提供寬窄不同的接口,只提供用戶需要的行為,而隱藏用戶不需要的行為。

六、D依賴倒置原則DIP

Dependency-Inversion Principle 要依賴抽象,而不要依賴具體的實現, 具體而言就是高層模塊不依賴于底層模塊,二者共同依賴于抽象。抽象不依賴于具體,具體依賴于抽象。

1、定義

高層模塊不應該依賴低層模塊,它們都應該依賴抽象。抽象不應該依賴于細節,細節應該依賴于抽象。簡單的說,依賴倒置原則要求客戶端依賴于抽象耦合。原則表述:
(1)抽象不應當依賴于細節;細節應當依賴于抽象;
(2)要針對接口編程,不針對實現編程。

2、原則分析

(1)如果說開閉原則是面向對象設計的目標,依賴倒轉原則是到達面向設計"開閉"原則的手段..如果要達到最好的"開閉"原則,就要盡量的遵守依賴倒轉原則. 可以說依賴倒轉原則是對"抽象化"的最好規范! 我個人感覺,依賴倒轉原則也是里氏代換原則的補充..你理解了里氏代換原則,再來理解依賴倒轉原則應該是很容易的。
(2)依賴倒轉原則的常用實現方式之一是在代碼中使用抽象類,而將具體類放在配置文件中。
(3)類之間的耦合:零耦合關系,具體耦合關系,抽象耦合關系。依賴倒轉原則要求客戶端依賴于抽象耦合,以抽象方式耦合是依賴倒轉原則的關鍵。

3、例子1

理解這個依賴倒置,首先我們需要明白依賴在面向對象設計的概念:
依賴關系(Dependency):是一種使用關系,特定事物的改變有可能會影響到使用該事物的其他事物,在需要表示一個事物使用另一個事物時使用依賴關系。(假設A類的變化引起了B類的變化,則說名B類依賴于A類。)大多數情況下,依賴關系體現在某個類的方法使用另一個類的對象作為參數。在UML中,依賴關系用帶箭頭的虛線表示,由依賴的一方指向被依賴的一方。
4、例子2
某系統提供一個數據轉換模塊,可以將來自不同數據源的數據轉換成多種格式,如可以轉換來自數據庫的數據(DatabaseSource)、也可以轉換來自文本文件的數據(TextSource),轉換后的格式可以是XML文件(XMLTransformer)、也可以是XLS文件(XLSTransformer)等。
由于需求的變化,該系統可能需要增加新的數據源或者新的文件格式,每增加一個新的類型的數據源或者新的類型的文件格式,客戶類MainClass都需要修改源代碼,以便使用新的類,但違背了開閉原則。現使用依賴倒轉原則對其進行重構。
當然根據具體的情況,也可以將AbstractSource注入到AbstractStransformer,依賴注入的方式有以下三種:

[img]https://ss.csdn.net/p?https://mmbiz.qpic.cn/mmbiz_png/ ... rFZQ/640?wx_fmt=png[/img]

七、合成/聚合復用原則

(Composite/Aggregate ReusePrinciple ,CARP):要盡量使用對象組合,而不是繼承關系達到軟件復用的目的。

1、定義

經常又叫做合成復用原則(Composite ReusePrinciple或CRP),盡量使用對象組合,而不是繼承來達到復用的目的。
就是在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新對象通過向這些對象的委派達到復用已有功能的目的。簡而言之,要盡量使用合成/聚合,盡量不要使用繼承。

2、原則分析

(1)在面向對象設計中,可以通過兩種基本方法在不同的環境中復用已有的設計和實現,即通過組合/聚合關系或通過繼承。
繼承復用:實現簡單,易于擴展。破壞系統的封裝性;從基類繼承而來的實現是靜態的,不可能在運行時發生改變,沒有足夠的靈活性;只能在有限的環境中使用。(“白箱”復用)
組合/聚合復用:耦合度相對較低,選擇性地調用成員對象的操作;可以在運行時動態進行。(“黑箱”復用)
(2)組合/聚合可以使系統更加靈活,類與類之間的耦合度降低,一個類的變化對其他類造成的影響相對較少,因此一般首選使用組合/聚合來實現復用;其次才考慮繼承,在使用繼承時,需要嚴格遵循里氏代換原則,有效使用繼承會有助于對問題的理解,降低復雜度,而濫用繼承反而會增加系統構建和維護的難度以及系統的復雜度,因此需要慎重使用繼承復用。
(3)此原則和里氏代換原則氏相輔相成的,兩者都是具體實現"開-閉"原則的規范。違反這一原則,就無法實現"開-閉"原則,首先我們要明白合成和聚合的概念:
注意:聚合和組合的區別是什么?
合成(組合):表示一個整體與部分的關系,指一個依托整體而存在的關系(整體與部分不可以分開);比如眼睛和嘴對于頭來說就是組合關系,沒有了頭就沒有眼睛和嘴,它們是不可分割的。在UML中,組合關系用帶實心菱形的直線表示。
聚合:聚合是比合成關系的一種更強的依賴關系,也表示整體與部分的關系(整體與部分可以分開);比如螺絲和汽車玩具的關系,螺絲脫離玩具依然可以用在其它設備之上。在UML中,聚合關系用帶空心菱形的直線表示。

八、迪米特法則

(Law of Demeter,LoD:系統中的類,盡量不要與其他類互相作用,減少類之間的耦合度。

1、定義

又叫最少知識原則(Least Knowledge Principle或簡寫為LKP)幾種形式定義:
不要和“陌生人”說話。英文定義為:Don't talk to strangers.
只與你的直接朋友通信。英文定義為:Talk only to your immediate friends.
每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位。
簡單地說,也就是,一個對象應當對其它對象有盡可能少的了解。一個類應該對自己需要耦合或調用的類知道得最少,你(被耦合或調用的類)的內部是如何復雜都和我沒關系,那是你的事情,我就知道你提供的public方法,我就調用這么多,其他的一概不關心。

2、法則分析

朋友類:在迪米特法則中,對于一個對象,其朋友包括以下幾類:
(1) 當前對象本身(this);
(2) 以參數形式傳入到當前對象方法中的對象;
(3) 當前對象的成員對象;
(4) 如果當前對象的成員對象是一個集合,那么集合中的元素也都是朋友;
(5) 當前對象所創建的對象。
任何一個對象,如果滿足上面的條件之一,就是當前對象的“朋友”,否則就是“陌生人”。
3、狹義法則和廣義法則:
在狹義的迪米特法則中,如果兩個類之間不必彼此直接通信,那么這兩個類就不應當發生直接的相互作用,如果其中的一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。
狹義的迪米特法則:可以降低類之間的耦合,但是會在系統中增加大量的小方法并散落在系統的各個角落,它可以使一個系統的局部設計簡化,因為每一個局部都不會和遠距離的對象有直接的關聯,但是也會造成系統的不同模塊之間的通信效率降低,使得系統的不同模塊之間不容易協調。
廣義的迪米特法則:指對對象之間的信息流量、流向以及信息的影響的控制,主要是對信息隱藏的控制。信息的隱藏可以使各個子系統之間脫耦,從而允許它們獨立地被開發、優化、使用和修改,同時可以促進軟件的復用,由于每一個模塊都不依賴于其他模塊而存在,因此每一個模塊都可以獨立地在其他的地方使用。一個系統的規模越大,信息的隱藏就越重要,而信息隱藏的重要性也就越明顯。
4、迪米特法則的主要用途:在于控制信息的過載。
在類的劃分上,應當盡量創建松耦合的類,類之間的耦合度越低,就越有利于復用,一個處在松耦合中的類一旦被修改,不會對關聯的類造成太大波及;
在類的結構設計上,每一個類都應當盡量降低其成員變量和成員函數的訪問權限;
在類的設計上,只要有可能,一個類型應當設計成不變類;
在對其他類的引用上,一個對象對其他對象的引用應當降到。

5、例子

外觀模式Facade(結構型)
迪米特法則與設計模式Facade模式、Mediator模式
系統中的類,盡量不要與其他類互相作用,減少類之間的耦合度,因為在你的系統中,擴展的時候,你可能需要修改這些類,而類與類之間的關系,決定了修改的復雜度,相互作用越多,則修改難度就越大,反之,如果相互作用的越小,則修改起來的難度就越小..例如A類依賴B類,則B類依賴C類,當你在修改A類的時候,你要考慮B類是否會受到影響,而B類的影響是否又會影響到C類. 如果此時C類再依賴D類的話,呵呵,我想這樣的修改有的受了。

九、Q&A1、面向對象設計其他原則?

封裝變化;
少用繼承多用組合;
針對接口編程、不針對實現編程;
為交互對象之間的松耦合設計而努力;
類應該對擴展開發、對修改封閉(開閉OCP原則);
依賴抽象,不要依賴于具體類(依賴倒置DIP原則);
密友原則:只和朋友交談(最少知識原則,迪米特法則);
說明:一個對象應當對其他對象有盡可能少的了解,將方法調用保持在界限內,只調用屬于以下范圍的方法: 該對象本身(本地方法)對象的組件 被當作方法參數傳進來的對象 此方法創建或實例化的任何對象;
別找我(調用我) 我會找你(調用你)(好萊塢原則);
一個類只有一個引起它變化的原因(單一職責SRP原則);

2、你能解釋一下里氏替換原則嗎?

嚴格定義:如果對每一個類型為S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象用o1替換o2時,程序P的行為沒有變化,那么類型S是類型T的子類型。
通俗表述:所有引用基類(父類)的地方必須能透明地使用其子類的對象。也就是說子類可以擴展父類的功能,但不能改變父類原有的功能。它包含以下4層含義:
  • 子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。
  • 子類中可以增加自己特有的方法。
  • 當子類的方法重載父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬松。
  • 當子類的方法實現父類的抽象方法時,方法的后置條件(即方法的返回值)要比父類更嚴格。

3、什么情況下會違反迪米特法則?為什么會有這個問題?

迪米特法則建議“只和朋友說話,不要陌生人說話”,以此來減少類之間的耦合。

4、給我一個符合開閉原則的設計模式的例子?

開閉原則要求你的代碼對擴展開放,對修改關閉。這個意思就是說,如果你想增加一個新的功能,你可以很容易的在不改變已測試過的代碼的前提下增加新的代碼。有好幾個設計模式是基于開閉原則的,如策略模式,如果你需要一個新的策略,只需要實現接口,增加配置,不需要改變核心邏輯。一個正在工作的例子是 Collections.sort() 方法,這就是基于策略模式,遵循開閉原則的,你不需為新的對象修改 sort() 方法,你需要做的僅僅是實現你自己的 Comparator 接口。

5、什么時候使用享元模式(蠅量模式)?

享元模式通過共享對象來避免創建太多的對象。為了使用享元模式,你需要確保你的對象是不可變的,這樣你才能安全的共享。JDK 中 String 池、Integer 池以及 Long 池都是很好的使用了享元模式的例子。




日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
国产精品网站在线看| 欧美精品123区| 国内欧美视频一区二区| 在线观看国产精品91| 成人h视频在线| 国产精品成人一区二区不卡| 欧美猛男做受videos| 欧美色道久久88综合亚洲精品| 亚洲欧美日韩高清在线| 一区二区三区亚洲| 亚洲成人av中文字幕| 欧美日韩国产精品| 91女主播在线观看| 黄色网页在线免费观看| 久久超碰97人人做人人爱| 精品欧美一区二区三区精品久久| aa成人免费视频| 欧美性色黄大片| 国产精品一区视频网站| 亚洲欧美区自拍先锋| caoporen国产精品| 午夜日本精品| av播放在线观看| 欧美日韩另类丝袜其他| 欧美三级在线看| 日韩理论在线| 久久久久久亚洲综合影院红桃| 午夜精品久久久久久毛片| 日本道免费精品一区二区三区| 99re视频这里只有精品| 亚洲小说欧美另类社区| 97电影在线观看| 成人性色av| 在线中文字幕电影| 国内国产精品久久| 99久久伊人网影院| 久久艳片www.17c.com| 精品久久人人做人人爰| 久久综合中文字幕| 色域天天综合网| 欧美日韩在线精品一区二区三区激情| av大片在线| 久久99久久99小草精品免视看| 欧洲精品毛片网站| 日本精品不卡| 97成人精品视频在线观看| 首页欧美精品中文字幕| 成人免费黄色网页| 成人影院av| 欧美日韩一级二级三级| 亚洲一区第一页| 国内精品久久久久久久影视简单| 日韩午夜在线观看视频| 91产国在线观看动作片喷水| 少妇精品久久久| 国产精品狠色婷| 又爽又大又黄a级毛片在线视频| 性伦欧美刺激片在线观看| 久久夜色精品国产欧美乱| 国产99久久久国产精品潘金| 亚洲欧洲偷拍精品| 国内精品一区二区| 欧美成人免费视频| 日av在线不卡| 伊伊综合在线| 99久久亚洲一区二区三区青草| 成人av网站观看| 婷婷综合久久一区二区三区| 午夜视频一区在线观看| 日本动漫理论片在线观看网站| 亚洲裸体俱乐部裸体舞表演av| 国产99精品在线观看| 欧美成人家庭影院| 成人久久综合| 中文乱码免费一区二区三区下载| 岛国大片在线观看| 视频一区视频二区国产精品| 亚洲一区二区欧美激情| 草草视频在线观看| 日本在线不卡视频| 欧美精品乱码久久久久久按摩| 国产一区欧美| 激情婷婷亚洲| 4444kk亚洲人成电影在线| 欧美高清视频在线高清观看mv色露露十八| 成年在线观看免费人视频| 成人在线免费观看网站| 国内高清免费在线视频| 美女精品一区| 成人在线网站| 国产原创精品视频| 91黄视频在线观看| 1234区中文字幕在线观看| 国产精品第100页| 国产精品一区三区| 亚洲一区在线观看免费观看电影高清| 亚洲欧洲中文日韩久久av乱码| 色哟哟一区二区在线观看| 欧洲美女7788成人免费视频| 精品三级在线| 黄色羞羞视频在线观看| 91在线观看视频| 91九色视频在线| 日韩天天综合| 免费精品一区| 三级不卡在线观看| 亚洲先锋成人| 成人高清电影网站| 婷婷综合福利| 国产日产欧美精品一区二区三区| 国产精品久久久久久久午夜片| 欧美性69xxxx肥| 伦伦影院午夜日韩欧美限制| 欧美午夜激情视频| 欧洲永久精品大片ww免费漫画| 在线亚洲高清视频| 亚洲色图制服诱惑| 欧美精品乱码久久久久久| 不卡欧美aaaaa| 久久青草国产手机看片福利盒子| 欧美精品久久久久a| 蜜乳av一区| 国模精品一区二区三区色天香| 国产亚洲精品久久久| 牲欧美videos精品| 一区二区三区四区不卡视频| 亚洲精品国产一区| 久久久日本电影| 亚洲资源在线观看| 国产精品一级片在线观看| 岛国精品一区二区| 激情开心成人网| 国产精品一区二区精品视频观看| 欧美高清hd18日本| 在线观看视频亚洲| 久久久久国产| 国产精品电影观看| 亚洲free性xxxx护士白浆| 国产在线观看a视频| av网站免费线看精品| 成人欧美一区二区三区黑人| 欧美成人激情| 裸体一区二区| 亚洲精品国产拍免费91在线| 日韩有码欧美| 久久99精品久久久久久青青日本| 国产三区二区一区久久| 国产精品美腿一区在线看| www.欧美精品一二区| 欧美高清视频www夜色资源网| 国产乱理伦片在线观看夜一区| 91成人天堂久久成人| 国产日韩欧美电影在线观看| 蜜乳av另类精品一区二区| av影视在线看| 欧美怡红院视频一区二区三区| 亚洲色图制服丝袜| 在线观看免费版| 国产精品xxxav免费视频| 亚洲国产精品人人做人人爽| 欧美va亚洲va在线观看蝴蝶网| 主播大秀视频在线观看一区二区| 搞黄视频免费在线观看| 91破解版在线观看|