2019-4-24 資深UI設計者
隨著米莊 APP 用戶的增長,以及 APP 不停的迭代,我們在設計上積累了越來越多的債務。越來越多的新頁面,新功能,以及不同的組件,都是由不同的設計師來設計,前端也是由不同的開發來實現,這直接導致了整個 APP 越來越臃腫無序,視覺和交互體驗不一致,且團隊溝通成本高,重復勞動力大,輸出效率低,迭代速度慢。
開發層面
場景:
那怎么辦?不改也得改呀。總不能一直留著這些大大小小的毛病,不解決問題會越來越嚴重。
代碼混亂,遺留了非常多的開發層面代碼不一致的問題,后期迭代的過程中如果不統一,也會使整個系統失去可控性。
設計師層面
場景 1:
30 分鐘以后,依然沒有找到源文件。
場景 2:
一個項目兩個設計師負責,設計出來的頁面控件:按鈕,列表,輸入框,色彩,視覺風格完全不一致。在 2 個設計師完成設計以后,還需要整合在一起重新修改,效率很低。并且每次頁面中的元素,開發需要根據不同業務中的不同設計師的「創意」來進行人肉修改。
當我們開始設計新的頁面,功能需求點優化的時候,這個問題變得更加嚴重。同時,因為沒有一個統一的基礎設計規范原則,設計師在設計項目的時候,在設計決策和討論中花費了大量時間,會存在大量的重復勞動。同時由于產品的界面和交互缺乏一致性和可預測性,用戶體驗也受到了影響。整個產品也會在風格定位上不統一,沒有確定產品風格特質的情況下越來越模糊,失去自身品牌該有的特性。
產品迭代,基本上是基于新功能的開發設計迭代,新的功能、新的頁面不斷的增加,對于設計師而言,有設計規范的原則做基礎設計框架,更容易延續 APP 統一的設計風格,不至于被不同的需求,不同的設計趨勢以及蠢蠢欲動的新的設計靈感牽著鼻子走,導致越做越亂,無章可循。
一個 APP 就像自己的孩子一樣,從一個嗷嗷待哺的嬰兒逐漸長大成人。設計系統就好比一個人的生物系統,是整個生物體的基礎。如果對此系統不維護,那么此系統將會隨著時間的增長越來越脆弱以及呈現不可逆的現象。那么如果維護好一個設計系統,骨骼會在成長中呈現規律清晰的生長模式,會隨著業務的生長而生長,可控制、可更新,使生物體健康的發展然后去完成它的使命。
Design System 最開始是 Guide 演化而來,Guide 是一套可指導、可延續、可擴展、可統一的、可區分的視覺指引手冊,指導相關設計結構完成統一性與對外區分性。具象層,它是一種設計方法;抽象層,它是一種思考模型。
最近幾年,「Design System」這個詞非常火。下面介紹紅遍全球設計界的兩大設計規范網紅。
谷歌在 2014 年的 Google I/O 上推出了 Material Design,它的目標是創造一個將經典的設計原則和科技、創新相結合的設計語言,并且在不同設備上提供一致的體驗底層系統,并同時支持觸摸、語音、鼠標、鍵盤等輸入方式。
一經發布就紅遍了全球設計界。新穎的設計理念,清晰明確的設計原則,詳細的設計規范,使之成為完美的安卓端標準設計規范。也給設計界的設計師們提供了非常好的參考,很多設計師也根據 Material Design 設計原則延展出更多的創新設計可能性,制作了各家的設計規范。
出了官方的 Sketch 組件庫以后,谷歌團隊還開發了基于此設計規范的延展工具:比如基于 Material Design 色板的 Sketch 源文件下載;谷歌色彩顏色獲取工具;一整套的 Material Design IOCN 輸出;在 2018 年 5 月份的 Google I/O 大會上,Google 設計團隊開發了一款叫做 Material Theme Editor 工具,可以幫助設計師輕松且快速創建符合自身品牌又符合 Material Design 風格的應用。
設計價值觀
設計原則
材質是一種隱喻:Material Design 的靈感來源于物理世界和世界中的材質,包含了材質如何接受光的影響以及所形成的光影效果,并且對紙張的質感和墨水的介質重新進行了構想。
大膽,圖形,鮮明:Material Design 基于印刷設計的指導原則,字體、柵格、留白、顏色等元素都以創造層次、意義和焦點為基礎來讓用戶沉浸在設計體驗中。
動效賦予意義:微妙順暢地反饋和過渡性的動作效果,引起用戶的注意力并使之保持持續關注。當元素出現在一個界面中的時候,元素之間的互動重塑了環境。
基礎靈活:Material Design 同樣旨在實現品牌價值的傳遞。結合了基礎的代碼、組件和元素,可表達不同的品牌需求。
跨平臺:Material Design 的 UI 組件庫可在不同的平臺共用,不論在安卓平臺、iOS、Flutter,還是 Web 都可保持一致的組件元素。
iOS 的人機規范指南,保持了蘋果一貫的風格。雖然沒有 Material Design 規范那么細致全面,但是核心的設計原則在每個組件的設計說明中都有滲透。作為 iOS 系統的設計基礎,建議每個設計師都需要仔細研究。
iOS 設計價值觀
iOS 設計原則
Aesthetic Integrity 整體美感:整體美感不僅僅包括美觀的 APP 界面,還包括流暢的交互體驗,產品功能和用戶行為的有效結合。比如當一款工具類 APP 主要是幫助用戶完成一項任務時,設計師應關注于用戶操作本身的行為路徑,和產品功能相結合來幫助用戶完成目標,使用戶聚焦功能本身。而如果是一款游戲,那么需要提供非常有吸引力的界面,在鼓勵引導用戶探索的同時也有非常棒的操作體驗。
Consistency 一致性:一個保持了一致性原則的 APP,通過使用標準的控件、熟悉的 icon、標準的文字規范、統一的組件俗語來實現一個擁有標準化范例的系統。這個系統提供的特性和交互行為也符合用戶的心智模型和預期。
Direct Manipulation 直接操作:讓用戶在屏幕上直接對內容進行操作的交互行為,可以鼓勵用戶和系統進行交互并且更易于理解。當用戶翻轉屏幕或者使用手勢直接與屏幕交互時,他們會感知到直接操作的行為,并且能立即得到操作結果。
Feedback 反饋:反饋能夠響應操作,呈現結果,使用戶獲得信息。手機中內置的 iOS 應用程序為用戶的每一個動作提供可感知的反饋。交互元素在點擊時會凸顯被高亮顯示,進度指示器顯示了需要長時間運行的操作進度、動效和聲音,使用戶能夠更清晰地感知交互行為的結果并作出響應。
Metaphors 隱喻:當一個 APP 的虛擬對象和操作路徑與用戶本身所熟悉的心智模型一致時,不管它是來自于真實世界還是數字世界,用戶都能很快上手。隱喻之所以有效果,是因為用戶和屏幕存在物理上的交互。用戶可以通過移動分層視圖來顯示手機上被遮擋的內容;拽拖并且滑動對象,切換開關,移動滑塊,滾動數值選擇器,用戶甚至可以通過翻轉手勢來翻閱手機上的雜志和文章。
User Control 用戶控制:在 iOS 系統中,用戶是主導者,而不是 APP。APP 可以提供行動建議,給予警告提示,但是不應該替用戶做選擇。優秀的 APP 始終會在用戶主導和用戶不想要出現的結果中保持平衡。一個 APP 應該始終讓用戶感知到在他的掌控之中。交互的元素給用戶熟悉感并且可預期;對有破壞性的操作可確認;對錯誤操作可取消,即使是在進行中的行為也可中斷。
在 Sketch 工具中可直接下載 iOS 的組件庫使用。
在 2016 年,由工程師和設計師組成的團隊創建了 Airbnb 的設計語言系統 (DLS)的第一個版本,其目標是創建一致的體驗和跨平臺的統一。DLS 包含了一套內部和第三方工具,由共享原則和模式定義的組件的集合。這允許使用跨設計、工程和其他學科的共享詞匯表進行快速迭代。DLS 的結構簡單而連貫,簡化了團隊之間的溝通。并制定了以下幾條原則來指導 DLS 的設計:
ADS 開源庫
Airbnb 設計副總裁 Alex Schleifer 在 IXDC 2017 國際體驗設計大會上分享了這一創新的 React Sketch APP 管理設計系統,這是為 Airbnb 的設計系統而設計的,其實就是個實時更新的代碼數據庫,可以實時查詢 Sketch 數據和代碼,也可以下載圖標、設計模塊,所有工程師和設計師都可以免費下載。看到這個,我想完美共享庫也許并不是那么的遙遠。
Airbnb 團隊在設計 DLS 過程中,也是通過原子組件的方式來構建整個框架,我覺得他們對于設計系統的理解非常對:「一個統一的設計語言不應該只是一組靜態的規則和原子組件構成,它應該是一個可持續發展的系統。」所以在構建好底層的設計語言之后,可持續性、可發展性,是維護并讓設計系統產生價值的重點。
隨著商業化的趨勢,越來越多的企業級產品對擁有更好的用戶體驗有了進一步的要求。帶著這樣的一個終極目標,螞蟻金服體驗技術部經過大量的項目實踐和總結,逐步打磨出一個服務于企業級產品的設計體系 Ant Design。基于「確定」和「自然」的設計價值觀,通過模塊化的解決方案,降低冗余的生產成本,讓設計者專注于更好的用戶體驗。
設計價值觀
自然,讓人機交互行為更自然。
自然規律運用到設計中,自然界的方方面面都會對用戶行為產生深遠影響,設計者應該從其中汲取靈感,并運用到當下的設計工作中。螞蟻金服已做了部分探索,并將追求「自然」作為未來持之以恒的方向。
自然的人機交互核心:節能。既要節省身體運動的體力,更要節省大腦思考的腦力。
那么如何在設計中體現呢?
確定,保持克制、對象設計方法、模塊化。
設計者需要做出更好的設計決策,給予研發團隊一種高確定性、低熵值的研發狀態。同時,不同設計者在充分理解業務訴求后,基于 Ant Design 體系都會有相同且符合當前業務特性的設計產出。
給予用戶確定感,結合 Ant Design 的三個關鍵點,可以總結為邊界和規則 2 個方面:
構建米莊設計系統的目標是什么?
意義
有了規范和控件庫,設計師在接受需求的時候,可以減少設計成本,提高設計效率,尤其是在用于快速迭代產品的階段,通過大量的標準化組件即可實現縮短設計周期的效果,并且設計師可以更專注于深耕體驗和細節,同時能保證高質量的輸出。
構建一個設計系統來支撐產品的所有業務線,解決團隊協作一致性問題,產品的周期性更新問題,解決不同的設計師和工程師規范性輸出 UI 的問題,最終從設計驅動商業的層面上,解決用戶體驗一致性,迭代開發的問題。
時間
APP 進入穩定發展階段,也完成了基礎功能的開發,在業務穩定發展的前提下,構建已有 APP 的整體框架,規范前端開發和設計流程是個好時機。在產品發展到穩定階段、參與的人越來越多時,對整個 APP 的頁面整理是非常有必要的。也為了后續快速發展的業務起到完整系統地支撐能力。
人力
相信幾乎在所有的公司和團隊,規范建立都是非常有價值,也非常耗費資源的一件事。你可以一天抄一套亮麗炫酷的 UI kit,但是你沒法一天上線一套系統。沒有上線落地的視覺規范只是耍流氓。所以項目啟動的時候,團隊分工必須明確,你們是一條船上的人了。勢必要有劈浪前行,破釜沉舟的決心。
場景
所以在項目開始之前,便需要和整個團隊統一目標意義:視覺規范的建立,除了保障統一的用戶體驗和認知,還能夠通過工程師代碼層面的組件化提高開發、設計效率。整個設計系統的開發,從設計到落地,需要產品、設計和前端的全力支持。
雞生蛋問題
即使我們看了很多設計系統范例,甚至也下載了很多 UI KIT 的源文件來做參考。我們依然無法確定第一步需要做什么。當我們還沒有組建一個 UI kits 組件庫的時候是如何來搭建一個頁面的呢?是先有了組件,然后創造了模塊頁面;還是先設計了頁面,然后再來歸納總結出頁面匯總的元件呢。這和先有雞還是先有蛋的問題有所相似。
原子理論
在學習其他公司如何搭建設計系統的時候,我們了解到了 Brad Frost 的原子設計理論。他提出了原子設計原則,并且在他的文章中有一句非常出名的引用:
概念
2013 年網頁設計師 Brad Frost 從化學中受到啟發:原子(Atoms)結合在一起,形成分子(Molecures),進一步結合形成了生物體(Organisms)。于是提出了原子設計方法論,由原子、分子、組織、模板和頁面共同協作以創造出更有效的用戶界面系統的一種設計方法。
原子設計的五個階段
原子(Atoms):符號,為頁面構成的基本元素。例如顏色、字體,或是一個圖標等。
分子(Molecules):組件,由原子構成的簡單 UI 組件。例如,一個表單標簽,搜索框和按鈕共同打造了一個搜索表單分子。
組織(Organisms):模塊,由原子及分子組成的相對復雜的組織,在 UI 頁面中可視為模塊/樣式層級。
模板(Templates):原型,將以上元素進行排版,顯示設計的底層內容結構,在 UI 設計中對應的是原型圖層級。
頁面(Pages),將實際內容(圖片、文章等)套件在特定模板,頁面是模板的具體實例。
特點:
從 Brad Frost 的原子設計理論得到啟發,將我們 APP 產品的所有頁面都整理了出來,我們歸納出了組成這些頁面的常用組件。這個詳盡的庫幫助我們以一種更合理的方式構建了一個設計系統的底層框架。
這個理論提出來以后就產生了非常大的轟動。并且至此以后 Atomic Design(原子設計)成為了構建 Design System 的核心指導理論。
Sketch工具
Brad Frost 在 2014 年提出來:「使用 Sketch 的 Atomic Design 是產品設計的未來。」我們可以使用 Sketch Library 功能實現組件庫的創建。而組件庫的底層邏輯就是原子設計理論。Sketch 中的 symbols、textstyles、color styles、Layer style ,來構建組件和樣式。
Text style:Text Style 用于設置文字規范,在一個系統中包含大量的文本樣式,并且擁有不同的文本屬性。使用字體樣式來管理一個系統中的字體樣式,可使之便于管理和修改,保持系統的可持續性和可用性。并且可單獨輸出字體樣式系統進行團隊之間,不同項目之間的共享。
Layer Style:可編輯元素的各種樣式,比如用于制作顏色規范,涵蓋填充顏色、描邊顏色、內外陰影、模糊效果等內容。可使元素保持一致的圖層樣式。
symbols:設計系統中的任何元素都使用 symbols 來形成符號,可復用、可嵌套、可批量修改,非常靈活化、輕量化。并且將符號進行嵌套組合,可形成符號嵌套,作為模塊來使用。symbols 在使用過程中如果使用「/」來命名,那么會形成符號嵌套層,作為不同符號組件的分層。同樣的對于 symbols,可使用縮放工具,來靈活適配各種不同的界面需求。
Library:Library 是所有元素、文字樣式、圖層樣式等組合的一個組件庫,可通過共享形式,來使它成為團隊的設計工具。輕松訪問次庫中的所有元素和樣式,并且始終可同步接受更新,保持一致和的文件狀態。
在確定了原則和工具之后,我們為設計系統項目制定了完整的項目計劃,因為涉及到上線和設計兩大塊,所以項目也是分設計線和落地線,兩條線既有關聯性,又是相對獨立和分離的。組件設計完成以后才可上線落地,因推動落地的過程是需要整個設計開發團隊的,不管是從時間還是人力上的資源協調和配合,所以落地線需要更加靈活。
設計階段 – 設計線
目標結果 – 設計資產
設計階段,我們所產出的設計資產包括設計價值觀,設計指導原則,以及設計模式(解決方案)。
展開實施 – 任務細分
確定了設計資產以后,我們將設計資產進行細分。整理規范的內容并對每個組件進行優先級的確定。整理規范內容的過程也是一個逐漸完善的過程,第一次整理可能并不完善,但是沒有關系,先把基礎框架和內容整理好,后續在設計過程中有遺漏的再進行添加。
內容整理好以后,我們會發現一套規范里內容非常多,所以需要根據項目時間來安排所有內容的優先級和分工。根據我們的設計系統的底層邏輯,所以我們將核心組件建設放在第一階段,比如字體、顏色、icon 等。構建了基礎元件以后再來搭建模塊,最后再根據不同場景來確定樣式。至于分工,最好整個設計團隊的人員都可參與,互相分擔工作量以達到工作效率最大化。
整體內容確定以后,因每個組件的整理有規范可循,所以我們針對每個組件的設計過程也確定了單個組件的設計流程。
過程跟進 – 關鍵節點
在設計過程中,我們也需要對關鍵時間節點的項目整體進程和結果輸出總結。此階段是和上線的項目節點重合的關鍵點,設計輸出的內容會和上線過程有非常多的磨合,一個組件的落地還需要不停的和開發溝通,收集反饋意見,并且進行調整修改,記錄解決問題。
執行復盤 – 結果驗證
在每個組件的設計過程中,我們都會反復完善每個組件的內容,包括設計原則、交互細節以及應用場景等。反復去驗證組件的可行性。并且對階段性完成的設計結果進行復盤和分享,進一步來驗證設計方案的可行性。規范需要不停地優化創新,才能讓它的可持續性特性發揮至最大。
上線階段 – 落地線
沒有上線落地的視覺規范只是耍流氓。
設計師自嗨并無意義。推進的過程,最重要的還是溝通。溝通的內容包括組件輸出的合理性、開發工作量、產品版本迭代需求計劃等。
愿望如此之美好,現實如此之貧瘠。
設計從落地到上線的過程想必每個設計師都有大把心得。在公司中實際的推進是非常難的,因為產品需求永遠都做不完,開發永遠在寫代碼,設計永遠需要將先完成業務需求設計為前提。所以如何將設計規范的內容插進項目中是個最關鍵的點。
存在問題,根據項目的時間安排和產品迭代安排,我們試圖將不同優先級組件的內容分配到不同的產品迭代中。實際卻證明這非常的理想化。在這個過程中我們遇到非常多的問題:
解決方案:
APP 在建立的時候沒有規范性,所以現在想要規范所有的內容就是一個非常巨大的工程。就像沒辦法一口吃掉一整塊蛋糕一樣。
我們的核心組件在產品迭代中完成上線以后,將剩余的組件規劃至開發的重構版本中進行開發。減少資源的重復使用,以及最大化降低對 APP 的影響。我們衡量了利弊之后,決定此次規范的設計對于樣式的修改減少到最少,保持和線上內容的一致性。很多時候我們設計師對于設計趨勢是很敏感以及非常想要去創新的,但是基于現狀下保持對樣式的克制完成基礎體系的搭建這個核心目的,是最重要的事。
MIZ Design 的設計資產中設計價值觀是貫徹整個產品的迭代發展,是產品持續迭代的指明燈。設計原則是團隊成員建立設計的標準指導規范;設計資源庫貫徹設計師、開發和產品,實現產品迭代。我們也非常愿意分享這個過程,希望對大家建立設計規范整個流程有所幫助。
當你認清自己的價值觀和行為準則后,決策就輕而易舉了。價值觀是指明燈,貫徹整個產品系統。我們根據米莊品牌的特性,以及業務場景的需求來定義 APP 的設計價值觀,指導 MIZ Design 的設計語言的建立。
品牌特性
米莊的品牌理念在于科技金融,小額惠普,以簡單可靠的價值觀來驅動業務增長。
業務場景
米莊作為金融工具類產品,功能操作場景不算復雜,強調一致性的用戶體驗和安全規律的操作路徑。這也體現了產品對于不同頁面元素之間的相互關聯性和一致專業性的要求。
用戶調研
結合我們進行的用戶調研報告,米莊產品的核心用戶對我們產品的需求是賺取零花錢居多,也就是利益的獲取。所以針對明確的用戶目標,我們對于整個產品的設計需要以產品可操作性、性為第一原則,呈現的視覺層以安全可靠,清晰明確為風格導向。
從以上三個方向,我們概括了設計價值觀核心的三點:
格式塔心理學
心理學的完形法則:相似、相近、封閉、簡單。
MIZ Design 的設計原則參考了格式塔心理學,取人和萬物交流的過程中,大腦最基礎的一些精神反射和行為操作,格式塔心理學的理論主張研究意識和行為,強調經驗和行為的整體性,這也符合了米莊的設計價值觀里關于效率和自然的定義。所以我們參考此心理學來幫助團隊順暢地溝通,減少信息不對稱以及學習成本,作為協作的基礎。
第一性原理
埃隆·馬斯克非常推崇的思維模式是 「First principle thinking」,也就是「第一性原理」。它是一種演繹法思維,自上而下來看,就是從原理出發,一步步往前推演,直到找出適合該問題的解決方法。自下而上反推,那么它的原則便是從結果出發,把事物分解成最基本的組成,看透事物的本質,從源頭解決問題。這和原子設計理論也非常有相通性。巴菲特的伙伴查理·芒格也是第一性原理的積極實踐者,他將此原理視為科學界和商界非常古老的一條守則。
奧卡姆剃刀原理
奧卡姆剃刀定律是由英國奧卡姆的威廉所提出來的。他提出「切勿浪費較多東西去做,用較少的東西同樣可以做好的事情」,也叫簡約法則,是一種迅速決策和判斷認知行之有效的工具之一。可以簡單理解為保持事物的簡單性。在各個學科,各個研究領域都有發展。這個原則至少可以追溯到亞里士多德,他寫到:「Nature operates in the shortest way possible」,自然作為一個穩定的,持續自我生長的系統,發展原則是盡量保持簡約之道。
設計資產層面,我們輸出的內容包含了以下兩大部分:
MIZ UI KIT_3.0 LIBRARY:
MIZ UI KIT 說明文檔:
開發層面 – 溝通,減少重復
基于 UI kit 創建的組件庫,幫助他們在最終產品中保持代碼的一致性和復用性。并且設計語言作為一種工具,是整個團隊順暢溝通的最重要的語言。所以我們確保我們的設計語言,是能夠讓開發,產品都懂,并在第一時間執行的。既然是語言,那么每個元素都會有自己的名字。每個組件,甚至每個組件中不同屬性的元素我們也賦予它名字。
我們的祖先發明語言文字的過程,其實就是一個給萬事萬物命名的過程。而名字是連接人和世界的渠道。名字也是主觀的,因此它有情感溫度,也會有文化偏見和個人信息資產的反應。所以我們需要給設計系統中的每一種組件都給予屬于它的名字,才能讓它成為一種專屬于你們產品的特殊語言。
場景:
慣性思維,色值在設計師眼中,對應的是一種色彩,而在開發眼中只是一堆數字。將心比心,當你扔給開發一個色值的時候他們只是一個難過的問號;而當你給他們具體的一個顏色的名字,他們能馬上對應到這個名字,那么就是順暢的。
所以當我們給顏色命名以后,溝通就變成了以下這樣:
雖然修改的過程比較辛苦,但是結果是好的。從此設計師掌握了話語權。當然,開發也很高興。
不單單是色彩,我們對字體、icon 以及間距等也定義了尺寸。給抽象事物以不同的命名來賦予它意義,也能讓使用者使用它產生價值。
設計層面 – 輸出,快樂傳承
設計師們可以更加便捷地創建、分享、定義設計界面的內容。此外,在設計傳承方面,也能讓我們更好地將設計原則傳遞給新人。
場景:
不同設計師在接到需求開始設計以后會擔心:怕風格有差別,怕頁面不統一。辛苦做好頁面以后發現和別的設計師同時做的差別很大,也不符合產品整體品牌調性,陷入循環改稿中。此時設計規范就是迭代的明燈,天上的北斗七星,指引方向讓你不偏離終點。
同步更新:設計資產的目標用戶,除了團隊中的前端開發,那么最大受益者其實就是設計師們。設計系統的一大優點便是修改設計系統中任何一個原子,整個系統所有這個原子都能感知到。這便是設計系統的可持續性、統一性,也是設計系統的基礎。
△ 組件庫中的任何修改,會同步到所有使用該庫的文檔中
自定義內容:組件中的內容都可自定義進行修改。
解放重復生產力
這句話的道理和我們的設計原則中第一性原理相通,從原理出發,一步步往前推演,直到找出適合該問題的解決方法。這和在構建設計系統的時候是一個道理。學習從元認知能力開始,而組件一個系統,從元件開始。埃隆·馬斯克從組成汽車的發電機開始思考,創辦了特斯拉;從底層元素的創新開始,才會有產品整體性的創新。
最后補充一下結構圖:
藍藍設計( m.ssll180.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。