文字是UI設(shè)計(jì)中最重要的信息傳遞元素,文字的排版看似容易其實(shí)并不簡(jiǎn)單,因?yàn)槲淖值膶傩员姸啵热缱痔?hào)、字間距、行高、段落等等。
很多設(shè)計(jì)師對(duì)文字屬性很了解,也能夠合理運(yùn)用,但總會(huì)卡在開(kāi)發(fā)環(huán)節(jié),花費(fèi)很長(zhǎng)時(shí)間驗(yàn)收,最終還是得不到理想效果。
下面我們從根上去認(rèn)識(shí)文字,對(duì)文字中能夠影響排版間距的屬性,一一解析,并且了解開(kāi)發(fā)邏輯,正確與他們對(duì)接。
二、文字-行高
字體設(shè)計(jì)師,為了能滿(mǎn)足文字行間距的合理展示,通常會(huì)給字體設(shè)定一定的行高。
行高就是在設(shè)計(jì)軟件中選中文字后,上下外邊框高度,字體的行高沒(méi)有標(biāo)準(zhǔn),不同的字體一般默認(rèn)行高也不一樣。
也就是因?yàn)樽煮w的行高,讓UI設(shè)計(jì)師對(duì)文字與其他元素的間距設(shè)定,有不同的見(jiàn)解。
上圖都是30px的間距,但因?yàn)樽煮w行高不同,A、B兩個(gè)方案的實(shí)際視覺(jué)間距不同。
認(rèn)同A方案合理的設(shè)計(jì)師,理由是文字最好設(shè)置一定的行高,不然折行時(shí)視覺(jué)上沒(méi)有行間距,很擁擠,不得不再設(shè)置行高,最終30px的間距還是有間隙。
認(rèn)同B方案的設(shè)計(jì)師,理由是UI設(shè)計(jì)本身對(duì)幾個(gè)像素的差距就很敏感,視覺(jué)上做不到統(tǒng)一,就是不合理。
兩者的表述都對(duì),但也確實(shí)都有一定的弊端,下面給大家介紹兩個(gè)解決方案。
可以確定的是,為了滿(mǎn)足文字折行后的閱讀性體驗(yàn),最好帶有一定的行高,這樣也會(huì)利于與開(kāi)發(fā)對(duì)接。
1、第一種:
首先說(shuō)一下UI設(shè)計(jì)中,間距設(shè)定的一個(gè)理念,間距設(shè)定一般要設(shè)定一個(gè)最小柵格基數(shù),如4、5、6、8為間距設(shè)定的起始數(shù)值。
然后頁(yè)面中,接下來(lái)所有的間距設(shè)定,都得是這個(gè)數(shù)值的倍數(shù)。(這點(diǎn)后面會(huì)詳細(xì)講解)
?在一個(gè)帶有文字的設(shè)計(jì)組件中,若設(shè)計(jì)思路上要呈現(xiàn)視覺(jué)統(tǒng)一的間距,那可以算出字號(hào)與行高的間隙,然后減去相對(duì)應(yīng)的柵格數(shù)值,使其視覺(jué)上接近統(tǒng)一的間距。
下圖所示,設(shè)計(jì)思路上想呈現(xiàn)一個(gè)30px的統(tǒng)一間距,那就可以減去一個(gè)最小柵格數(shù)值。
若最小柵格數(shù)值是6px,最終給出的間距就是24px,視覺(jué)距離呈現(xiàn)的就是接近30px的距離。
這種方式也是我一直以來(lái)用的方法,好處就是沒(méi)有打破間距設(shè)定的原則。
設(shè)計(jì)的間距與開(kāi)發(fā)看到的間距,都是有規(guī)律的柵格系統(tǒng)間距。
唯一有點(diǎn)不完美的地方就是,實(shí)際距離有時(shí)還會(huì)有一點(diǎn)小誤差,但其實(shí)在視覺(jué)上也完全可以忽略掉了。
2、第二種:
第二種方式就是精益求精,不考慮間距的柵格系統(tǒng)原則,算出字號(hào)與行高的間隙,間距上準(zhǔn)確減去,保證沒(méi)有一丁點(diǎn)的誤差。
我找了一下這樣的產(chǎn)品,發(fā)現(xiàn)iOS端的滴滴APP中,有個(gè)模塊是這樣的設(shè)計(jì)理念。
上圖案例中,字號(hào)36px,行高44px,文字上下的間隙就是4px。
所以設(shè)置距離26px,加上行高間隙正好是30px,得到統(tǒng)一的間距效果。
這種方式有一個(gè)小小的弊端,就是開(kāi)發(fā)感受不到間距的規(guī)則,最終設(shè)計(jì)驗(yàn)收時(shí)可能會(huì)耗費(fèi)更多的時(shí)間。
特殊情況:
另外有一種情況,就不能刻意去追求文字的視覺(jué)對(duì)齊,除非是平面設(shè)計(jì),因?yàn)殚_(kāi)發(fā)的邏輯也不會(huì)去支持這樣做。
上圖中錯(cuò)誤的方式是因?yàn)?,開(kāi)發(fā)寫(xiě)這個(gè)卡片,會(huì)寫(xiě)成一個(gè)容積俗稱(chēng)盒子,內(nèi)容都會(huì)放在盒子里面,就算內(nèi)容過(guò)多,也是向下進(jìn)行擴(kuò)展適配。
三、開(kāi)發(fā)對(duì)接-關(guān)于行高(重點(diǎn)內(nèi)容)
字體行高的間隙有了解決方法,接下來(lái)是與開(kāi)發(fā)的對(duì)接,這也是最關(guān)鍵的一個(gè)環(huán)節(jié),設(shè)計(jì)的再好,最終不能很好的落地,也是白搭。
UI設(shè)計(jì)師在設(shè)計(jì)驗(yàn)收iOS端時(shí),可能會(huì)遇到這樣的問(wèn)題,設(shè)計(jì)與開(kāi)發(fā)都用了同樣的間距參數(shù),但最終呈現(xiàn)的間距還是不一樣。
原因就是,同樣的蘋(píng)方字體,iOS端開(kāi)發(fā)的默認(rèn)字體行高,與設(shè)計(jì)軟件中的字體默認(rèn)行高不一樣。
比如在Sketch軟件中42號(hào)字的蘋(píng)方字體默認(rèn)行高是59,但是iOS開(kāi)發(fā)軟件中默認(rèn)是52。
如果開(kāi)發(fā)不手動(dòng)調(diào)整字的行高,就會(huì)出現(xiàn)與設(shè)計(jì)的偏差。
根據(jù)我的調(diào)研,iOS開(kāi)發(fā)工程師,若不是特殊情況,基本不會(huì)去改默認(rèn)行高參數(shù)。
下面我們列舉一下,設(shè)計(jì)常用蘋(píng)方字號(hào)的默認(rèn)行高,與iOS開(kāi)發(fā)默認(rèn)行高的數(shù)值對(duì)比,從中找一下規(guī)律。
上圖中可以得出,字號(hào)越大,設(shè)計(jì)默認(rèn)行高與iOS開(kāi)發(fā)默認(rèn)行高差距越大。
所以設(shè)計(jì)上最好把默認(rèn)行高改成與開(kāi)發(fā)一樣的默認(rèn)行高,這樣才能保障,開(kāi)發(fā)不手動(dòng)調(diào)整行高下,是一致的。
iOS開(kāi)發(fā)字號(hào)默認(rèn)行高有一定的規(guī)律,隨著字號(hào)的增加,行高會(huì)在字號(hào)基礎(chǔ)上+4、+6、+8、+10以偶數(shù)遞增。
雖有規(guī)律但也不容易形成記憶,推薦一個(gè)公式。
用字號(hào)除10后乘以2,再加上字號(hào),就是iOS開(kāi)發(fā)的默認(rèn)行高,公式如下:
有公式可能還不夠便捷,再給大家推薦一款Sketch行高修復(fù)插件,Auto Fix iOS Text Line 1 for Mac 。
這款插件是專(zhuān)門(mén)針對(duì)iOS字體行高修復(fù),使其與開(kāi)發(fā)默認(rèn)行高保持一致。(公眾號(hào)后臺(tái)回復(fù)666可獲取)
1、關(guān)于安卓
安卓系統(tǒng) Material Design 使用的字體,中文是思源黑體,英文是Roboto。
因?yàn)榘沧肯到y(tǒng)開(kāi)源,不同的安卓手機(jī)廠商大多會(huì)更換字體。
比如小米手機(jī)MIUI系統(tǒng)中英文都使用Misans字體,所以安卓文字行高沒(méi)有一個(gè)標(biāo)準(zhǔn)。
安卓開(kāi)發(fā)與iOS開(kāi)發(fā)還有個(gè)不同點(diǎn)是,安卓開(kāi)發(fā)使用什么字體,行高就是字體本身的默認(rèn)行高。
思源黑體行高默認(rèn)和字號(hào)大小一樣,Roboto行高接近蘋(píng)方字體行高。
如果設(shè)計(jì)稿按安卓規(guī)范設(shè)計(jì),那思源黑體最好設(shè)置成與蘋(píng)方字體一樣的行高,然后安卓工程師手動(dòng)去調(diào)整,iOS開(kāi)發(fā)工程師所見(jiàn)即所得。
2、字體修復(fù)后使用經(jīng)驗(yàn)
關(guān)于修復(fù)后字體的使用方式,分享一些經(jīng)驗(yàn),UI設(shè)計(jì)中使用文字的頻率很高,有標(biāo)題、副標(biāo)題、正文、輔助文字等,字號(hào)都有所不同。
當(dāng)在設(shè)計(jì)中,確定這些文字字號(hào)后,做一次行高的修復(fù),然后把這些文字創(chuàng)建成字符樣式,每次用時(shí)從字符樣式庫(kù)里面選擇即可。
最后說(shuō)一下,特殊情況結(jié)合自身產(chǎn)品風(fēng)格,去定義文字行高是完全沒(méi)有問(wèn)題的,開(kāi)發(fā)可以根據(jù)設(shè)計(jì)的定義的行高進(jìn)行調(diào)整。
四、文字-段落
在有段落的文案中,很多設(shè)計(jì)師為了方便,直接給一個(gè)回車(chē)鍵的段落間距,這樣是萬(wàn)萬(wàn)不可取的。
一個(gè)回車(chē)鍵的間距,就是一行字的行高,通常這個(gè)間距都比較大,就算設(shè)計(jì)風(fēng)格需要這么大的間距,那一定也要手動(dòng)去設(shè)置段落。
段落數(shù)值的設(shè)定,一般情況要大于文字行高的一半,比如文字行高為42,那段落最好大于21,這樣段落間距加上文字行高,整體就是≥1.5倍。
為什么是≥1.5倍?原因是文字的行間距,一般大于1.5倍視覺(jué)上是比較舒適,例如字號(hào)是30,那行高設(shè)置為45,形成1.5倍的間距。
五、文字-字間距
字間距是字與字之間的間距,默認(rèn)一般為0不做設(shè)定,特殊設(shè)計(jì)風(fēng)格以外。
有一種情況,當(dāng)一段左對(duì)齊文字中存在標(biāo)點(diǎn)或數(shù)字英文字母時(shí),那末尾可能不夠一個(gè)字符的空間,就會(huì)出現(xiàn)末尾留白的情況。
出現(xiàn)這種參差不齊的情況,確實(shí)不那么美觀,但在UI設(shè)計(jì)中實(shí)屬正常。
不用刻意去設(shè)置成左右水平對(duì)齊,這樣雖整齊,但因?yàn)椴煌淖珠g距會(huì)影響閱讀體驗(yàn)。
六、文字-字號(hào)
不同字號(hào)間距設(shè)定有一個(gè)原則,當(dāng)字號(hào)越大時(shí),字與其他元素間距也就需要相對(duì)越大。
字號(hào)越大說(shuō)明級(jí)別越高,級(jí)別越高從信息層級(jí)上來(lái)講,就需要較大的間距來(lái)呈現(xiàn)。
這是客觀上的一個(gè)原則,文字越大,就需要更多的留白去承托,就像文字的行高,字號(hào)越大文字的行高增加的倍數(shù)也就越大。
1、如何定義間距?
間距是UI設(shè)計(jì)中建立信息層級(jí)、提升閱讀體驗(yàn)、表達(dá)元素之間的關(guān)系、表現(xiàn)重要信息的重要方式。
定義合理的間距其實(shí)非常有學(xué)問(wèn),打開(kāi)京東、淘寶你會(huì)發(fā)現(xiàn)元素之間的間距非常緊湊,打開(kāi)愛(ài)彼迎、蔚來(lái)又會(huì)發(fā)現(xiàn)元素之間較為寬松,這是為什么?
其實(shí)就是他們的設(shè)計(jì)語(yǔ)言不同,致使展示出的形態(tài)也就各異,而間距就是表現(xiàn)設(shè)計(jì)語(yǔ)言的其中一種方式。
在UI設(shè)計(jì)中,間距的設(shè)定一般會(huì)選擇一個(gè)最小柵格基數(shù),如4、5、6、8等數(shù)值,之后頁(yè)面中,所有的間距都要以,最小柵格基數(shù)的倍數(shù)呈現(xiàn)。
谷歌推出的設(shè)計(jì)語(yǔ)言 Material Design 推薦柵格系統(tǒng)的最小基數(shù)是8dp,一切間距、尺寸都應(yīng)該是8dp的倍數(shù)。
淘寶的設(shè)計(jì),據(jù)我所知用的是5的基數(shù),愛(ài)彼迎用的是8的基數(shù),從這點(diǎn)來(lái)看,基本可以得出一個(gè)結(jié)論,使用越小的數(shù)值基數(shù),設(shè)計(jì)呈現(xiàn)通常就會(huì)越緊湊。
一個(gè)最小柵格基數(shù)的倍數(shù)值有很多,但其實(shí)通常有6個(gè)左右常用間距,就能滿(mǎn)足絕大多數(shù)的場(chǎng)景。
我目前負(fù)責(zé)的產(chǎn)品最小柵格基數(shù)是6,設(shè)計(jì)上常用間距大概有6個(gè),完全能夠滿(mǎn)足大多數(shù)設(shè)計(jì)場(chǎng)景所需。
這些間距其實(shí)并不用刻意去選擇,當(dāng)你使用最小柵格倍數(shù)值時(shí)間長(zhǎng)了,就能自然得出幾個(gè)常用的間距,字號(hào)的選擇使用基本也適用這個(gè)邏輯。
另外,一個(gè)產(chǎn)品中模塊眾多,難免會(huì)出現(xiàn)一些特殊情況,所以肯定不能限定死只可以用那幾個(gè)間距。
除了上圖中列舉的常用間距之外,12、36、90、120等一些間距數(shù)值也會(huì)用到,只是用的頻率不會(huì)很高。
2、案例解析
接下來(lái),根據(jù)最小柵格基數(shù)為6的設(shè)計(jì)規(guī)范,通過(guò)一個(gè)商品卡片案例,分析一下間距設(shè)定的幾個(gè)原則。
上圖中,首先要給各個(gè)元素分類(lèi),比如主標(biāo)題和副標(biāo)題是一類(lèi)內(nèi)容;標(biāo)簽是一類(lèi)內(nèi)容;價(jià)格是一類(lèi)內(nèi)容;“找相似”按鈕又是一類(lèi)內(nèi)容。
根據(jù)親密關(guān)系原則,同類(lèi)內(nèi)容的間距應(yīng)該更近,這樣有利于建立信息層級(jí)關(guān)系,提升用戶(hù)的可讀性。
具體多近呢?可以根據(jù)商品卡片在頁(yè)面中的外邊距,來(lái)進(jìn)行分析定義。
看一個(gè)產(chǎn)品的外邊距基本能判斷,是寬松型排版,還是緊湊型排版。
產(chǎn)品的外邊距是根據(jù)設(shè)計(jì)語(yǔ)言,產(chǎn)品定位,產(chǎn)品內(nèi)容多少等來(lái)定義,常見(jiàn)的邊距有20、24、30、36、48、60等。(大概就是這個(gè)范圍內(nèi))
使用較大外邊距,內(nèi)容區(qū)域的間距要小于外邊距,小到可以直觀分辨即可,這樣可以體現(xiàn)出頁(yè)面中,內(nèi)容的親密關(guān)系。
使用常規(guī)外邊距,比如我們的案例中,使用30px就是常規(guī)外邊距,內(nèi)容區(qū)域要適當(dāng)小于或等于外邊距,這樣視覺(jué)上體現(xiàn)的是統(tǒng)一性。
主標(biāo)題與副標(biāo)題屬于同類(lèi)項(xiàng),它們之間的間距一定要小于,卡片的內(nèi)邊距,這樣整體看上去才能體現(xiàn)信息層級(jí)。
間距小到多少,還是那個(gè)理念,可以直觀感受到比內(nèi)邊距小即可為止,不能過(guò)小。
一般來(lái)說(shuō),視覺(jué)上的間距大概是內(nèi)邊距(同模塊中的大間距)的一半,就會(huì)表現(xiàn)的不錯(cuò)。
案例中設(shè)置的是一個(gè)柵格單位6px,再加上文字的行間隙,視覺(jué)上大概就是15px的間距,就是內(nèi)邊距的一半。
接下來(lái),給案例加標(biāo)簽,標(biāo)簽與文字不是同類(lèi)信息,所以要適當(dāng)與主副標(biāo)題拉開(kāi)間距。
通常第一選擇就是,視覺(jué)距離與內(nèi)邊距30px,保證統(tǒng)一。
案例中設(shè)置的是24px,再加上文字的行間距,就非常接近30px。
接下來(lái)是價(jià)格,對(duì)于一個(gè)商品卡片設(shè)計(jì),價(jià)格是需要著重突出體現(xiàn)的。
一般設(shè)計(jì)上要突出一個(gè)元素,大概3種方式:一是改變顏色;二是放大;三是加大留白;也就是加大間距。
案例的商品卡片,設(shè)計(jì)風(fēng)格價(jià)格顏色規(guī)范是黑色,所以顏色不能改變。
只能放大或加大留白,放大和留白得在合理的范圍內(nèi),不然就會(huì)破壞卡片的整體結(jié)構(gòu)性。
間距上與標(biāo)簽設(shè)置30px的間距,加上文字的行高,視覺(jué)上的間距,會(huì)成為卡片中最大的間距留白,從而起到突出的作用。
這種設(shè)計(jì)方法,在一個(gè)設(shè)計(jì)組件中,最好只出現(xiàn)一個(gè),不然整體結(jié)構(gòu)就會(huì)有一定程度上的破壞。
另外強(qiáng)調(diào)一下,統(tǒng)一性固然重要,但設(shè)計(jì)的核心是為需求目標(biāo)服務(wù),所以,這時(shí)候統(tǒng)一性的優(yōu)先級(jí)是次于需求目標(biāo)的。
就像淘寶首頁(yè)的瓷片區(qū),間距非常緊湊,失去了一定的美感,但這樣做確實(shí)展示了更多的內(nèi)容,滿(mǎn)足了需求目標(biāo)。
七、最后
最后做個(gè)總結(jié):
1、關(guān)于文字的間距,要考慮文字的行高,盡可能保持視覺(jué)統(tǒng)一性;
2、iOS設(shè)計(jì)稿,設(shè)計(jì)軟件中默認(rèn)的文字行高,與開(kāi)發(fā)軟件中的默認(rèn)行高不一致,最好修復(fù)行高,與開(kāi)發(fā)保持一致;
3、文字段落不要用回車(chē)鍵去定義,要用段落參數(shù),段落間距通常要大于文字行高1.5倍;
4、多行文字出現(xiàn)這種參差不齊的情況,不要設(shè)置為左右水平對(duì)齊;
5、一般字號(hào)越大,字與其他元素間距也需要越大;
6、UI設(shè)計(jì)要結(jié)合產(chǎn)品定位等,制定最小柵格基數(shù),然后任何間距要以最小柵格基數(shù)的倍數(shù)呈現(xiàn);
7、一個(gè)產(chǎn)品中,通常設(shè)置6個(gè)左右的間距數(shù)值,能滿(mǎn)足大多數(shù)設(shè)計(jì)的場(chǎng)景;
8、善于使用親密關(guān)系、留白理念、統(tǒng)一性等設(shè)計(jì)原則,設(shè)計(jì)前理解需求目標(biāo)。
作者:吳星辰
轉(zhuǎn)載請(qǐng)注明:學(xué)UI網(wǎng)》一文搞定UI設(shè)計(jì)間距那點(diǎn)事!【進(jìn)階篇】
藍(lán)藍(lán)設(shè)計(jì)( www.teruid.com )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶(hù)體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)、UI設(shè)計(jì)公司、界面設(shè)計(jì)公司、UI設(shè)計(jì)服務(wù)公司、數(shù)據(jù)可視化設(shè)計(jì)公司、UI交互設(shè)計(jì)公司、高端網(wǎng)站設(shè)計(jì)公司、UI咨詢(xún)、用戶(hù)體驗(yàn)公司、軟件界面設(shè)計(jì)公司