Figma Variants 的架構與用法

Miss A
6 min readJan 7, 2021

--

Variants 是 Figma 在 2020 年底推出的新功能,可以讓我們設計時快速將 Component 切換成其他狀態。以下我以 Figma 官方說明為主軸,加上我自己的使用心得與小技巧分享。

原文來自於 https://www.figma.com/best-practices/creating-and-organizing-variants/

Creating and organizing Variants (Figma)

建立 Variants 初期會花較多時間在整理,比如最基礎的:一個按鈕我需要做多少種狀態等等,一旦整理出基礎後就能快速地運用這些整理好的元件。

尤其多位設計師共同開發產品時,有一個共同的 library 並共用同一份 variant 會讓設計更一致、有效率,不再需要從一大堆 Component 中挑選。相較於先前從 asset 切換 Component 的作法,variant 相較更順手。

小技巧:初期建議 Component 已經建立好的產品再來嘗試 Variants,否則會花太多時間來在來回調整 Component。如果你正在做一個全新的產品,先用 Component 就好,等整體的設計有了雛形再著手進行 Variant 的設定會更有效率!

Variant 的特點

找 component 更輕鬆

設計師不再需要從 Asset panel 找同一元件的不同狀態了!

以 Checkbox 舉例,通常我們要準備四種不同狀態的 Checkbox:
Uncheck / Checked / Uncheck all / Disable

以往這些是各自獨立的四個 Component,我們會用命名讓我們更好找:
ex: Checkbox/Uncheck, Checkbox/Checked …
但這依然是四個獨立的 Component。

如果將這四個 Component 做成一組 Variant,不管在哪種狀態,他就是一個 Variants 了。每次在使用 Checkbox 時,就可以自行切換狀態,不用一直從一大堆 Component 中尋找其他狀態的 Checkbox 了!

Variant of Checkbox : Unchecked / Checked / Indeterminate / Disable

降低 Instance 的複雜度

因為四種狀態都屬於 Checkbox 這個 Variant ,因此整個 Instance 會變得更單純,而不是到處充滿了不同狀態的同一個 Icon,也更符合實際開發的架構。

切換 Variants 時保留 Overrides

在設計 Button 時需要想到很多種樣式:
依照重要程度來分的 Primary / Secondary …
依照 State 來分的 Default / Hover / Pressed / Disable …

而在 Variant 切換不同樣式的時候,Button 裡面顯示的文字 (Overrides) 都會保留,讓我們在示意不同狀態時省事很多!

Button variants: Primary / Primary Disable / Secondary / Secondary Disable

與 Component 相容

製作 Variants 時可用現有的 Component 來製作,設計稿也會立即修改,不需要另外調整可以無痛轉換!

有效率的使用 Variant

在開始建立 Variants 時,我們需要先知道如何使用他,以及應該要避免哪些狀況,不是所有的內容都要使用 Variants,你依然可以使用原本的作法繼續進行設計。

Variants 使用時機

  • 共用相似樣式的 Components 如:尺寸、Layout …
  • 可以在兩種狀態間 toggle 的 Components 如:on/off, yes/no…
  • 依照一些常用的前端框架 (如 React, Vue…) 的 prop/value 設計的 Component

不需使用 Variants

  • 加上 Variants 時會產生大量的組合,這時可用 nesting instances 或基本的 Components 即可
  • 在顏色或 theme 上會產生大量的組合,並且需要各自微調

Nesting instances

Nesting instances 是一個很好用的技巧,他可以和 Variants 一起使用時限更複雜的設計。

從 Button 開始,你可能需要多種屬性,如:類型 (primary /secondary), state (active / hover), 或者有沒有 Icon 等等。

你可能會想要幫每個使用不同 Icon 的 Button 定義一個 Variant,但這樣做並不好管理。更好的做法是使用各種 Icon 的 Instance,就像是用原本 Component 的做法,只需要切換不同的 Icon 即可。

Nested Instances (Figma)

基礎的 Components

另外一個使用 Nested instances 的方法是在共用同一個基礎的 Components 下延伸出各種不同的設計。這也是一個將 Component 保持設計一致性的做法,並且同時能藉由改變基礎的 Component 做到大規模的調整。

基礎的 Components 不需要成為 Component set 的一部份,他可以放在附近就好。並且在檔名前面加上 . 或者 _ 可避免他一起被 published 成為 design system 的一部分。

Basic components (Figma)

以上是 Variants 的分享,如果你對上述 Variants 的有興趣,也可以再看看這篇 Prepare for Variants 。文中以建立 Button 作為例子,清楚地說明了整個 Variants 的設定方法。

Prepare for Variants

關於 Miss A

以 UI/UX Designer 身份工作了六年多,目前使用 Figma 跨部門與 PM, Engineer 合作。目前正在準備 Figma 一對一客製化教學課程,不管是初學者、跨領域或者想轉換跑道的人都可以和我聊聊 :)

📮 missa.designer@gmail.com

看完文章如果有任何想法或想更進一步討論的主題,歡迎留言給我 📝如果你覺得文章還不錯,請給我一些拍手 👏
如果你覺得文章有幫你更理解一些事情,請長按給我 10 個以上的拍手 😍

--

--

No responses yet