熱評 JERREAL

厲害,學習了

6000字干貨!設計師如何用Figma解放三倍生產力?

本文將設計團隊接觸 Figma 以來的重要心得、經驗進行梳理總結,幫助大家更好得理解和掌握 Figma。本次主要介紹Figma 中最重要、也最提效的兩個概念——Frame和自動布局。

更多Figma 干貨:

一、先簡單講講,Figma 是什么?

用一句話去定義 figma,它是一款基于瀏覽器的全能型設計工具。簡單說,只需要有瀏覽器和網絡,你就可以開干了。

6000字干貨!設計師如何用Figma解放三倍生產力?

figma 全能的地方在于,在基于瀏覽器的環境下, 你就可以搞這些:ui、原型、云同步、實時討論、開發協作、實時共享、團隊庫等等。

6000字干貨!設計師如何用Figma解放三倍生產力?

二、基礎但重要的概念——Frame

絕大多數人對 frame 有誤解,覺得它人畜無害,在 figma 中僅僅是扮演畫板的小角色,然鵝并不是。

大猩猩在 SD12 集和櫻木說過:能夠掌控籃板球,就能掌控比賽。

6000字干貨!設計師如何用Figma解放三倍生產力?

我這里要說,能夠掌控 frame,就能掌控 figma。

1. Figma 中的對象關系

在講 frame 之前,先嘮嘮對象關系。了解它才可以幫你更好得理解 frame 乃至 figma 中布局的底層邏輯。

figma 官方將所有對象的關系用這三個詞來描述——Parent父級、Child子級和Sibling平級。

6000字干貨!設計師如何用Figma解放三倍生產力?

懂一些開發知識的朋友會比較眼熟,這些術語全部來自前端語言 JavaScript 中的 dom 樹。它和金字塔原理中的「歸納分組」一樣,都是通過父子級的節點鏈接形成樹狀結構,而這種結構可以解釋所有對象之間的關系。

舉個例子,下面這個模塊中的所有元素,都可以此關系解釋:

關注按鈕相對內部的 icon、文字和背景是父級關系,而它相對一整個作者模塊,又是子級關系。

6000字干貨!設計師如何用Figma解放三倍生產力?

在 figma 中,可以作為父級來包裹子級元素的總共就這三類:component 組件、group 編組,以及下面要講的 frame 框架。

6000字干貨!設計師如何用Figma解放三倍生產力?

2. 什么是 Frame

Figma 非常多的概念和邏輯都引自前端,而首當其沖的就是 frame。

它概念上等同于前端的 div。簡單說,就是用來包裹設計元素的容器 container。

容器可以嵌套,小的嵌套成大的,大的嵌套成更大的。

6000字干貨!設計師如何用Figma解放三倍生產力?

而就是這個 frame 的存在,造就了 figma 和 sketch 截然不同的作圖邏輯。

sketch 作圖邏輯就是一個個圖層的機械堆砌,比如按鈕——畫個矩形和文字,最后再group。我們的目標只需要畫出來一個像模像樣的按鈕就行。

figma 作圖邏輯是基于一個個可嵌套的「盒子」進行嵌套布局,它和開發 css+div 布局的邏輯是一致的。我們的目標并非是畫出來,而是做一個可動態響應、可靈活擴展的布局。

看到這,是不是感覺 frame 很像我們常用的 group?這兩個概念在圖層面板中分別以虛線框和#號表示。是除了組件外非常典型的兩個父級。

6000字干貨!設計師如何用Figma解放三倍生產力?

很多老鐵應該和我一樣,受 sketch、ps 等軟件的影響,凡是涉及到元素編組全用 group,感覺 frame 就是個沒啥用的畫板。

但是,我發現我大錯特錯。現在,我要大聲說出我的結論:

figma 中請一律使用 frame,group 能不用就不用,因為

3. frame 有這些優勢

①frame 的約束功能

舉個例子:

分別以 group 和 frame 編組,在改變父級尺寸后,group 會失真變形;而 frame 因為默認內置了約束(內間距固定,類似 sketch 的 pin to edge),因此可以動態響應,不會變形。

6000字干貨!設計師如何用Figma解放三倍生產力?

也就是說,你創建 group,就是在創建一個隨時都可以被破壞的不穩定對象。

②frame 擁有多合一屬性優勢

Group 唯一的功能,就是編組。而且編組尺寸完全取決于子級元素的尺寸,無法自由設定,對于布局起不到任何效率提升。

而 frame 不僅幫助靈活布局,多合一的屬性也能減少大量作圖成本。

這里就直接用畫板、編組和形狀圖層三類屬性來說。

畫板屬性

它等同于 sketch 的 artbord 畫板,Figma 官方用 Top level frame 來指代具備這個屬性的 frame,意思就是最頂層、最上方的。這類 frame 只能作為父級。

比如信息流頁面,Top level frame 就是整個界面畫板,它被直接放置在 canvas 畫布上,只能作為父級存在。

6000字干貨!設計師如何用Figma解放三倍生產力?

值得一說的是,Figma 為了兼顧用戶習慣,特意將 sketch 中新建畫板的快捷鍵沿用到 frame 上。你現在可以通過 A 和 F 兩個快捷鍵來建立畫板。

編組屬性

這個屬性與 group 類似,具備此屬性的 frame 被官方用了 nested frame 這個名字來指代,意思就是嵌套的 frame。

任何被嵌套在另外一個 frame 中的 frame,都可以稱之為 nested frame。

即畫板內的所有 frame,都是具有編組屬性的 nested frame。它既可作為父級又可作為子級。比如信息流的一個個卡片,它被畫板所嵌套,既是畫板的子級,又是卡片內部元素的父級。

6000字干貨!設計師如何用Figma解放三倍生產力?

最后,那些無法再被細分、不能去主動編組的對象,則統稱為子級元素(即非父級對象,frame、group 和 component 外的所有對象)。

6000字干貨!設計師如何用Figma解放三倍生產力?

frame 的編組方式也很簡單,選中你想編組的對象后,cmd+alt+G 即可完成。

形狀圖層屬性

這個是通用屬性,不論是 Top level frame 還是 nested frame 都有。

它讓 frame 能夠像普通矩形那樣,自由定義尺寸和樣式。樣式包括圓角、填充、描邊、效果等等。而 group 既無法定義尺寸、又不能添加樣式。即便你選中 group 強行添加樣式時,也只能添加到組內的子級元素。

6000字干貨!設計師如何用Figma解放三倍生產力?

由此可見,以往 sketch 中需要各自用 artboard、group 和矩形三種元素來實現這三種功能,而在 figma 中只需要 frame 一個元素就能全盤搞定。

③frame 可以裁切

每個 frame 都額外提供了 clip content 功能來快速實現裁切效果。

舉個例子,比如橫劃卡片末端都需要以裁切過的卡片讓用戶感知到延續性。

如果用 group,需要手動調整矩形的尺寸和圓角去制造裁切效果(如果裁切對象有文字,group 還要手動新建矩形去遮蓋,很麻煩),而 frame 只需要勾選面板中的裁切選項,就可以自由控制裁切范圍。

6000字干貨!設計師如何用Figma解放三倍生產力?

4. 最后,基于以上的屬性來點案例

①制作一個按鈕

傳統 group 做法,花六步:

  1. 創建文字;
  2. 創建矩形;
  3. 定義矩形樣式
  4. 矩形置底;
  5. 手動對齊;
  6. group 編組

6000字干貨!設計師如何用Figma解放三倍生產力?

如果使用 frame 的話,只需要四步

  1. 創建文字;
  2. 快捷鍵 cmd+alt+G、或者 F 創建 frame(基于 frame 的編組屬性);
  3. 確定約束規則;
  4. 定義 frame 尺寸和樣式(基于 frame 的形狀圖層屬性)

6000字干貨!設計師如何用Figma解放三倍生產力?

可以看到,frame 制作按鈕的操作成本要低得多。

而且 frame 所生成的圖層數量也更精簡,減少了后續維護和管理成本。

6000字干貨!設計師如何用Figma解放三倍生產力?

另外,frame 因為支持約束,所以能跟隨父級尺寸變化完美響應。

6000字干貨!設計師如何用Figma解放三倍生產力?

當然,按鈕只是個示意,所有的控件都可以利用 frame 快速繪制。

②制作有裁切效果的 icon

比如我要繪制一個圖片 icon,其中的山峰圖形有裁切效果。

傳統的做法是蒙板+group,五步走:

  1. 繪制圖形;
  2. 創建矩形;
  3. 原位復制一層矩形兜底;
  4. 點選山峰和復制的矩形,創建剪切蒙板;
  5. group 編組

6000字干貨!設計師如何用Figma解放三倍生產力?

現在再試試 frame,三步到位

  1. 繪制圖形;
  2. 創建 frame(記得勾選裁切);
  3. 加入樣式,搞定。

6000字干貨!設計師如何用Figma解放三倍生產力?

再從圖層數量上看,group+蒙板的方式所產生的元素數量是 frame 的 2 倍,而且嵌套關系復雜,光看圖層結構壓根看不懂。而 frame 的結構非常精簡易懂。

6000字干貨!設計師如何用Figma解放三倍生產力?

而且 frame 可以直接通過控制尺寸來控制裁切范圍,而 group+蒙板的形式需要分別調節 mask 和底板兩個元素的尺寸實現裁切范圍調整。

5. 使用 frame 的常見問題與解決方案

最后,再來分享下我和團隊小伙伴在使用 frame 時,所遇到的幾個非常典型的問題。

①更改畫板高度時,畫板內元素跟隨移動

6000字干貨!設計師如何用Figma解放三倍生產力?

這大概是 frame 最典型的一個問題了,當時我也在這個坑里躺了 n 次,體驗極其惡劣。

原因分析:

歸咎于萬惡的 group。group 不支持約束,無法跟隨響應。因此 group 的父級發生尺寸變化時,group 就會跟隨拉伸。

解決方案:

按住 cmd 拖動即可解掉。

6000字干貨!設計師如何用Figma解放三倍生產力?

②拖動時老是移動到畫板外

比如我想在畫板中實現一個元素的裁切效果,但移動至一定距離后總是脫離畫板父級的包裹,只能去圖層面板上手動把元素拖拽到畫板中。

6000字干貨!設計師如何用Figma解放三倍生產力?

原因分析:

frame 詭異的吸附邏輯。

解決方案:

在拖動時按住空格鍵即可固定父子級關系。即便把元素移出畫板,你會發現元素依舊是 frame 的子級!

6000字干貨!設計師如何用Figma解放三倍生產力?

③畫板里的 frame 帶名稱

6000字干貨!設計師如何用Figma解放三倍生產力?

原因分析:

所有直接置于 Canvas 畫布中的 frame(即前面所說的 top level frame),會全部作為畫板并外顯名稱。所以,frame 帶名稱的唯一原因就是,它是個最外側的畫板,并沒有作為子級被嵌套。

解決方案:

很簡單,直接將其拖入畫板,成為畫板的子級即可。

注意,這里又有個衍生出的新問題。很多小伙伴包括我在拖拽時會遇到嵌套不了的情況,其實只需要點下空白處、重新選擇一次,就能順利嵌套了。

6000字干貨!設計師如何用Figma解放三倍生產力?

三、Frame 講完,來講下 figma 大殺器-自動布局

auto layout 自動布局,毫無疑問是 figma 的大殺器,正如 symbol 之于 sketch,database 之于 notion。

它是當之無愧的核心賣點,也是讓其在設計工具之戰中突破重圍的勝負手。

1. 為啥自動布局得重點講

設計師的日常工作,存在著大量重復勞動;而這些重復勞動中大部分又和布局相關。

當元素發生了尺寸、增減或順序的變化后,為了維持原有的規則,你又得花上新一輪的成本重新調整布局。所以,很多時候看似你每天干了很多,但回過頭來想想又感覺什么也沒干。

而自動布局的出現,完美得解決了這一大痛點。一個擅長使用自動布局的設計師,有著高出旁人雙倍不止的生產效率,也能預留出雙倍不止的時間留給創意或者自我成長。

2. 什么是自動布局

通俗點說,自動布局,就是你先制定一個標準化布局規則(比如想保持 20px 間距、保持左對齊等)。然后當子級發生尺寸、增減等變化后,父級能基于這個布局規則產生適應變化,或者父級尺寸發生變化后,子級能基于規則產生適應變化。

比如下面這個例子,就是自動布局化的結果:

6000字干貨!設計師如何用Figma解放三倍生產力?

自動布局的圖標

自動布局圖標由兩個矩形排列而成,并且圖標中的排列方向既當前對象布局的方向,可以說是很形象了。

6000字干貨!設計師如何用Figma解放三倍生產力?

只有 frame 才能自動布局

如果自動布局的對象還不是 frame,那么在自動布局的同時,figma 會自動創建一個 frame。因此只需要創建就行,不用擔心對象不是 frame。

3. 自動布局該如何上手

自動布局的創建、復原

如圖,使用快捷鍵 shift+A 或點擊「新增」按鈕即可創建,shift+alt+A 或者點擊「刪除」按鈕即可復原。

6000字干貨!設計師如何用Figma解放三倍生產力?

自動布局的兩類組合方式

自動布局的組合方式取決于初始的擺放位置。

4. 并列型

比如咱們畫幾個很隨意的矩形,再隨意散落在畫布上,shift+A 后,四個元素就會自動對齊。這種組合方式,稱之為「并列型」。

6000字干貨!設計師如何用Figma解放三倍生產力?

從左側圖層列表可以看到,自動布局后 figma 會自動為你創建好一個 frame,雖然圖標變了,但不論是圖層名和屬性名都在明確告訴你,它依舊是 frame!

6000字干貨!設計師如何用Figma解放三倍生產力?

5. 包含型

如果,我將其中三個矩形放置于最大的矩形上,讓其形式上趨向于一個包含關系,那么在 shift+A 后,你會發現個頭最大的那個,真的成為了收納三個小矩形的容器。這種組合方式,咱們可以稱之為「包含型」。

6000字干貨!設計師如何用Figma解放三倍生產力?

而如果將三個矩形替換為一行文字,一個自動布局的按鈕就這么誕生了。

6000字干貨!設計師如何用Figma解放三倍生產力?

另外,在轉為「包含型」的自動布局后,左側圖層列表也會發生一些很有意思的事情——原有的容器層將會消失,frame本身充當容器。這其實也是利用了frame的形狀圖層屬性。

6000字干貨!設計師如何用Figma解放三倍生產力?

所以,創建按鈕這件事就變得異常簡單。

我們不需要提前創建容器,只需要對一行文字 shift+A 就行。基于 frame 的形狀圖層屬性,你可以隨意添加你想要的樣式。

6000字干貨!設計師如何用Figma解放三倍生產力?

你可以想象一下,如果繼續使用傳統的編組+矩形的形式,會多出多少的操作,后續的維護又需要耗費多少成本。

創建完,定個規則先

創建了自動布局后,右側會出現 auto layout 面板。你可以將其當做你的控制室,因為后續所有布局規則的制定,都要在這里完成。

下面我們單獨一個個拆出來說。

6000字干貨!設計師如何用Figma解放三倍生產力?

布局方向

就是子級元素排列的橫縱方向,點擊切換。一層自動布局只能設置一種方向,要構建多個方向的話要嵌套。

6000字干貨!設計師如何用Figma解放三倍生產力?

我們這里選縱向。

6000字干貨!設計師如何用Figma解放三倍生產力?

子級間距

就是子級元素之間的距離,一層自動布局只能設置一種間距,需要多種間距同樣需要嵌套。

6000字干貨!設計師如何用Figma解放三倍生產力?

這里我們設定 24px。

6000字干貨!設計師如何用Figma解放三倍生產力?

內間距

即父級邊緣到子級整體的內間距,它的設定有兩個入口。

6000字干貨!設計師如何用Figma解放三倍生產力?

第一個設置入口:回型按鈕,你可以一鍵等距設置。

6000字干貨!設計師如何用Figma解放三倍生產力?

如果需要設置不同的間距,可以通過逗號間隔。比如輸入「10,20,30,40」,這四個值就分別對應頂部、右側、底部和左側的間距。

第二個設置入口在尾部按鈕,在這里,上下左右四個內間距可以獨立設置。

6000字干貨!設計師如何用Figma解放三倍生產力?

這里我們就設定 24px 的等距,輸入框鍵入即可。

因為自動布局屬于 frame,而 frame 有自帶形狀圖層屬性,所以這里可以加入填充和圓角。

6000字干貨!設計師如何用Figma解放三倍生產力?

內部布局方式

可以控制子級元素的對齊,以及在整個父級中的位置(父級尺寸發生改變時常用),比如調大剛剛的父子尺寸,就可以通過內部布局來進行版面控制。

6000字干貨!設計師如何用Figma解放三倍生產力?

一共九種內部布局方式,可以根據需要自由選擇。

6000字干貨!設計師如何用Figma解放三倍生產力?

子級分布方式

堆疊:

即所有子級都組合在一起,改動父級尺寸時,子級布局保持固定在某一位置。

6000字干貨!設計師如何用Figma解放三倍生產力?

比如我們將子級位置固定到左上角,那么不論如何拉伸父級,它的位置始終保持不變。和約束邏輯很像。

6000字干貨!設計師如何用Figma解放三倍生產力?

等距:

不論父級尺寸如何改變,最外側的子級固定在兩端,所有子級的間距均勻分布。在控制一些等距元素的響應時(如底 tab 欄)會用到,使用頻率非常之高。

6000字干貨!設計師如何用Figma解放三倍生產力?

6000字干貨!設計師如何用Figma解放三倍生產力?

6. 自動布局的嵌套

前面說過,一層自動布局只能擁有一個布局方向和一種子級間距,當需要新增時就需要用到嵌套。

如何嵌套也非常簡單,直接選中想要嵌套的子級 shift+A 就行。

比如我們想調大中間倆矩形的間距,只需將上、下側的兩個矩形各自創建一層自動布局即可。

6000字干貨!設計師如何用Figma解放三倍生產力?

6000字干貨!設計師如何用Figma解放三倍生產力?

再比如我們想新增一個頭像,但頭像加入后會多出一個橫向布局方向,這時同樣可再做一次嵌套。

6000字干貨!設計師如何用Figma解放三倍生產力?

最后,就可以得出類似 feed 流的一個骨架圖。

6000字干貨!設計師如何用Figma解放三倍生產力?

為了模擬真實的場景,我們將這幾個抽象矩形定義成昵稱、簡介、圖片和內容并分別進行填充。一個帶有自動布局屬性的卡片就完成了。

6000字干貨!設計師如何用Figma解放三倍生產力?

7. 是時候表演真正的技術了

規則制定了,你就可以為所欲為了。

下面,我用三類場景來一一給你們做演示。

調序

自動布局化的設計中,你可以肆意調整任何元素的位置,而不會影響到你的布局。調序方式可以拖拽,也可以方向鍵。

6000字干貨!設計師如何用Figma解放三倍生產力?

拉伸

隨意對一些元素做拉伸處理以改變尺寸,父級將會根據目前的規則跟隨產生適應變化。

比如我們改變封面尺寸和頭像,上下方內嵌的兩個父級(自動布局化的 nested frame)將跟隨自適應,而這兩個父級又同時是整個卡片(自動布局化的 top frame)的子級,因此卡片也會跟隨自適應。

6000字干貨!設計師如何用Figma解放三倍生產力?

另外,對文字進行新增和刪除后,文本框的高度變化也可以看作是一種拉伸。卡片也同樣能跟隨自適應。

6000字干貨!設計師如何用Figma解放三倍生產力?

增減

對子級進行新增或刪除,同樣會基于當前的布局產生自適應效果。

6000字干貨!設計師如何用Figma解放三倍生產力?

增減操作的幾點小提示:

  1. 圖層隱藏,可以實現和刪除一樣的效果。我的建議盡量以隱藏代替刪除,尤其是對于自動布局化的組件,這個技巧非常、非常實用;
  2. 如果在刪除某個元素后依然想占位,直接將其透明度降至 0 即可。

至此,自動布局的初步玩法至此講完。

最后

figma 入門攻略到此結束。最后,我們來一起盤一下——

  1. figma 是基于瀏覽器的屬性讓你更專注到設計本身,幫助設計師提效、可協作且更流暢的更好完成設計工作;
  2. frame 是 figma 中最重要的一個概念,它是多個重要功能的前置,自帶的多合一優勢也能迅速提效;
  3. 自動布局作為 figma 工具的核心賣點,能大幅減少設計師在布局方面所花的重復勞動。

最后,真誠得期待這塊面向未來的工具,能幫助你從低效、重復的桎梏中徹底解放生產力。

歡迎關注作者微信公眾號:「VMIC UED」

6000字干貨!設計師如何用Figma解放三倍生產力?

收藏 246
點贊 112

復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。