母版 master與實例 instance

筆者推測Symbol的這兩種狀態應當來源於Javascript中的對象構造器與對象實例,我們可以在自然界找到最合適的類比:

通常由花萼、花冠、花蕊組成的植物器官被我們稱之為;但我們日常生活中所見到的花的實例,花萼、花冠、花蕊的顏色與形態各不相同,並且我們還會給這些實例命名,菊花、桃花、梔子花、櫻花等等。

一朵花怎麼長,都不會改變它基因中已決定好的結構。但如果造物者此時決定,花這種生物應當花冠託著花萼,那我們見到的所有的花也就變了模樣。

再回到Sketch中,當我們創建Symbol時,會同時創建一個母版(即該Symbol的框架)於Symbol頁,並將當前畫板中的組新建為實例。

實例的放大縮小重命名、調節overrides中的參數,都對母版沒有影響。

而母版的結構調整會作用於所有實例。

組件化思維

Sketch Symbol的master與instance狀態,overrides功能,使得組件不再僅僅是一個具象的元素組,同時也是抽象化的元素結構,從而極大地增強了組件的復用性,也讓我們與程序員的認知更為接近。

出於一致性的要求、開發成本的限制,我們在畫圖的過程中,不能無限制的添加新組件,這就要求交互設計師在繪製線框圖的過程中,留意組件結構的復用性。謹(sheng)慎(shi)起見,所有組件都可以建立為Symbol。

命名的技巧

當頁面逐漸增加時,組件數量也不可避免地增加,直到組件的下拉菜單佔滿屏幕的時候……

被菜單支配的恐懼……需要用斜槓來驅散。

用「/」來對Symbol進行歸類的方法,大家應該已經聽到耳朵起繭。重要的是我們需要一個符合自己心智模型的分類方法,來將設計中可能出現的所有組件歸類。

如果有設計規範,即遵從設計規範,但也可以在設計規範的基礎上進行再分類,畢竟這份文檔的資深用戶正是我們自己。

這裡提供筆者的分類方法以供參考(原子-組織的概念來自原子設計):

同一類組件還可能有不同的形式、不同的狀態,可以」分類名稱 category / 類型或模塊type or module / 組件名稱 name / 組件狀態 status「的方式命名。

筆者認為組件的使用率也遵循80/20法則,即界面中80%的內容來自20%的組件。由於組件菜單默認採用首字母排序,我們可以運用一些小技巧- 在母版名稱前添加」*」或「_」等將常用的組件類型提前。

嵌套的祕密

Sketch的Symbol也可以類比為一個有機體,就像血液中的紅細胞由血紅蛋白分子與其他功能分子共同構成一樣,可以由其他Symbol的實例構成。

如果Symbol的母版採用的畫板大小相同,Sketch會自動視為一組,將其中一個Symbol的實例嵌套在組件中,這一組Symbol將可以通過overrides的下拉菜單進行切換。

為了方便後續畫圖時理解overrides面板內容與組件元素的對應關係,建議對所有嵌套的Symbol實例進行一次重命名。

嵌套的Symbol即成為實例Overrides中一個可替代的元件
對嵌套的Symbol重命名,以便在overrides中方便的找到它(們)

還有一點需要注意:要在最終的組件實例上修改overrides參數,對嵌套實例overrides進行的修改不會被反應在最終的組件實例中。

必備插件

Batch create symbols

選擇多個羣組後,可以利用該插件批量生成symbol。

Rename it

一鍵給所有選中圖層/畫板重命名,與Symbol organizer搭配,隨時幫你恢復所有symbol的整潔有序。

Symbol organizer

按照Symbol命名自動將同類Symbol排列在一起,需要整理重複的Symbol時,非常有用。

備註:文章插圖所用sketch文件為Material Design theme editor生成。其中的文件組織與命名非常規範,值得參考,但缺點是層級過於複雜。Symbol的使用需要在復用性和簡潔之間尋求一種動態平衡。

文章中的題圖、圖1、圖2、圖6來源於網路,基於CC0協議。


推薦閱讀:
相關文章