從費格馬到無碼 — Figma to Code工具大解碼

更新於 發佈於 閱讀時間約 13 分鐘
隨者Sketch(2010)、Adobe XD(2016)、Figma(2016)等等的向量圖形編輯器(Vector Graphics Editor, VGE)誕生後,UI設計邁向了一個全新階段。這些工具除了能使UI設計達到系統化、模組化的高效率開發以外,也同時讓前端工程師有更完整的樣式(Style)開發參照,使得“從設計到開發”(Design to Code)得以更順利的接軌。
然而,從設計到開發的腳步,並沒有因此停歇。基於效率極大化的企圖心,無碼(No-Code)的概念順應而生。由於上述的工具皆有開放式API(Open API)的支援,驅使了許多開發團隊躍躍欲試,近幾年在網路平台上產生了一些企圖更便利的實現Design to Code方案。我們從中選擇了幾個支援Figma的相關工具來實際測試,看看他們是否可以直接實現 Figma to Code的野望。

1. AWS Amplify Studio

這是我們第一個測試的工具,由 AWS Amplify 推出用來幫助串連前後端的方案。使用時不需要另外在Figma安裝Plug-in,只需要登入AWS Amplify平台,然後貼上Figma專案的URL,就能夠連結 Figma 的檔案,將設計稿中的元件轉換成 React component 使用,轉換後的元件,可以再透過AWS Amplify的其他功能,讓轉出的元件與資料庫銜接。亞馬遜公司(Amazon)不只是想做到從設計轉成前端畫面,而是希望實現從設計到資料銜接的一條龍解決方案。
因為是將設計中的區塊轉換成 React component 去做使用,所以在產出整個網站的時候,就會需要自己動手寫程式去把這些元件用在我們的網頁之中。在 Figma 設計稿的製作上,Amplify Studio限制也比較多,像是元件中不可以包含其他更小的元件(舉例來說,你不能在 Hero section 中放入按鈕)只能將該區塊轉換為 component slot 再去從程式碼調整,以及響應式網頁(RWD)有時候要在屬性欄位新增條件式才能達成。
雖然Amplify Studio額外在Figma上有分享官方Plug-in,但主要是針對主題和Design Tokens去做改變,比如說你可以更改設計的主色及輔色、或是字體大小(但不能更改字型)、間距等等,使用上和 Material Design 的Plug-in類似。在更新之後可以更改的東西蠻多的,但在使用上還需要再多寫幾行程式(且如果用在 Amplify UI 以外的元件會出現錯誤)所以我們也放棄使用。
目前網路上關於 Amplify Studio 的資料也比較少,很多東西只能從官方文件中去解讀,想要更完整的使用,必須要熟悉React的程式語法,甚至要對於資料庫架構有一點基本概念。整體來說,Amplify Studio比較偏向是針對前端工程師為主要使用者的工具。同時就目前的使用狀況來看,僅能實現非常局部的設計模組的銜接,距離完整的轉出一個網站,還有一大段距離。

2. Unify

Unify 是可以直接生成 React code的 Figma Plug-in,也可以用 code sandbox 開啟。和 Amplify studio 一樣,主要是以生成 component 為主,我們可以下載程式碼或複製到專案之後再去組合成網頁。
但 Unify 一次只能生成一個元件,且在各個元件的調整上必須要從一大堆程式碼中找到想要的區塊去做修改(技術含量太高),稍微不太符合此次尋找的目標,因此就沒有繼續深入研究。

3. Anima

Anima 是一個可以將 Figma 中的設計直接轉成程式碼的插件,主要的操作像是新增UI點擊互動或是新增響應式網頁的斷點(Breakpoints)都可以在 Figma Plug-in 中透過點擊完成,且可以在 plugin 中直接預覽成果,提供了一個快速的做出高保真原型並測試交互效果的方法。
在使用上,我們只要在 Figma 中選擇想要的元件,就可以直接在 Anima 的 Plug-in 中做修改,像是我們可以為按鈕新增 hover 的效果,預設的轉換是將按鈕放大,如果會一些 CSS 的話也可以自行新增屬性,比如說改變按鈕顏色。
除了按鈕的 hover 狀態,也可以將文字區塊改成文字輸入格,在轉換成 HTML 之後,就會直接使用表單元件 <input> 標籤。
在製作響應式網頁時,可以一次新增不同的螢幕尺寸,能夠為不同的裝置大小打造出合適的內容。Anima 也會將你在 Figma prototype 中設定的點擊事件、動畫、頁面連接一起匯入,這點我們覺得超級方便,所有的東西都跟 Figma 中設定的一樣,不用再另外調整。
Anima Plug-in 中提供了許多基本的交互方式,像是新增按鈕的 hover state、按鈕點擊的事件、輸入框等許多比較常見的交互模式,但如果我們想要的更多的細節該怎麼辦呢?舉例來說,如果我希望更改輸入框中文字的顏色?可惜在 Plug-in 中找不到對應的欄位可以點擊,但是我們就可以透過修改程式碼來達成這個目的。Anima可以將我們的設計導出為前端程式碼,可以選擇 HTML、React、Vue 等不同的框架,在下載下來之後,便可以進行調整。

4. TeleportHQ

TeleportHQ 提供編輯器讓使用者在轉換成程式碼之前可以做最後的確認,我們可以利用 Figma 的 Plug-in 將程式碼導入 TeleportHQ 的編輯器,並在此增加交互元素。
在 TeleportHQ 的編輯器中,我們可以去調整網頁中的元件外觀,位置,交互狀態等,調整的方式是在旁邊的面板中更改數值,如果想要更進階的調整,也可以在點擊 Advance 去新增標籤屬性。在使用上,因為可以自己新增標籤屬性,所以在導出程式碼之前可以更改的部分就比較多,自由度相對更高。
在匯入的部分,TeleportHQ 會把我們在 Figma 中設定的 Color style 和 Text style 一起匯入,我們很喜歡這個功能,因為 TeleportHQ 有很多互動是在他的編輯器中做調整的,比如說按鈕的交互狀態,能夠直接選擇對應的 Color style 除了能夠加速調整的流程,也協助維持了設計的一致性。
不過如果想使用 <input> 這種表單元件,就需要再編輯器中重新製作,沒有辦法直接將元件標籤更改成表單元件。不過還好 TeleportHQ 能夠將常用的元件變成 Component 來重複使用,減去了每次都要重複製作的麻煩。
在 RWD 的製作上,可以在編輯器中點擊對應的螢幕尺寸來製作,和 Anima 可以一次匯入不同尺寸的 UI 不同,TeleportHQ 是用預設的尺寸去做更改,所以在圖層的編排上,每個螢幕尺寸都會是一樣的(不過和 Amplify studio 比起來,不用寫條件式還是方便很多)。
在導出程式碼的部分,TeleportHQ 一樣可以選擇多種不同的框架,但比較不一樣的是,因為在編輯器編輯的時候,我們就可以先調整和新增標籤屬性,所以在程式碼下載下來之後,需要再從程式碼中修改的東西就相對少了很多,大部分的調整在 TeleportHQ 編輯器中就能夠完成,不用在幾百行程式碼中尋找對應的區塊再做修改這點很方便。
在此稍微提一下 Auto layout 的間距處理方式,在Anima 中預設使用 gap 屬性去處理,讓裡面每個元件的距離都相等,但 TeleportHQ 預設是第一個元件的 margin 屬性,我們覺得有點不太方便,因為如果群組裡面的元件變多,後續想要調整每個元件之間的距離就要一個一個改變它的 margin。

比較

以下針對 Amplify Studio、TeleportHQ、Anima 這三個工具的測試結果,做了一些簡單的比較表:
另外,因為Anima和TeleportHQ都能轉出React格式檔案,所以我們也比較了用同樣的設計以及相同的參數設定,轉出的檔案有什麼差異。
React檔案大小的部分,Anima的會比較大,因為它把每一個RWD的頁面以及在 Figma 設定的 component 都轉為 React component ,TeleportHQ 在轉換上主要是以編輯器中的內容為主,都是寫在同一個檔案,並且不會將頁面製作成component ,所以檔案比較小。但如果考慮到之後在維護或是在程式碼使用的便利性,Anima 的轉換方式會比較方便,而且組合和製作 component 的方式就和我們 Figma 中一樣,我們覺得可以依定程度的幫助設計師與工程師的溝通。
整體來說,我們覺得 Anima 在使用上比較簡單,所有動作都可以用點擊來完成,轉換程式碼的部分也比較合理,但相對的費用較高。 TeleportHQ 在免費版可以使用的功能比較多,在新增 CSS 屬性也比較方便,不過需要花比較多時間在調整 RWD 的部分。我們認為Anima 和 TeleportHQ 這兩個工具,是目前市面上比較推薦的 Figma to Code解決方案。

無碼 vs. 薄碼?

在這段測試的旅程中,我們認為無碼(No-Code)的概念,如同人類想要追求長生不老一般,可能只是一個烏托邦式的理想。UI設計具有的響應性(RWD)以及互動性(Interactivity)這兩大特性,注定它無法像是Photoshop或是After Effect一樣,用No-Code手段提供設計師任意的揮灑創意。
與其繼續鑽研No-Code這條路,不如我們暫時停一下步伐,思考UI設計師需要具備哪些技能。這些技能中,是否需要包含會寫程式(Coding)呢?設計師會寫程式的好處很多,在此我們就不詳細討論(改天再寫一篇文章來好好討論)。至少現在,如果大家能夠學一些基本的 HTML 和 CSS 語法(有學React, Vue, Angular等等JS框架更好),在使用Anima 和 TeleportHQ 這兩個工具時,都可以幫助我們在寫很少程式(Low-Code)的情況下做出高保真的原型和網站、可以做出更多更細節的互動,而且還可以幫助大家在與工程師的溝通上更為順暢,聽起來很不錯吧!

後記

隨者Adobe斥資200億美元併購Figma的壯舉撼動業界之後,我們相信Figma to Code這一波浪潮絕對是來勢洶洶,Anima 和 TeleportHQ是否能夠保有優勢,持續提升產品品質與功能?會不會有更強大的後起之秀取而代之?我們將會持續關注這個話題,不定期為大家帶來新的測試心得。

附註

以下為各測試工具的相關介紹連結:
註:本文為Able實習生 Cheryl Fang 撰寫,Steven Yeh編輯。同時感謝 Cheryl Fang 親自進行所有工具的測試工作。
avatar-img
679會員
20內容數
Able Studio 以人為本,相信設計應該是人們使用的,而不是為設計而設計的,因此我們致力於創造美觀、易用、有意義的設計。我們希望能透過文章的分享,讓更多人認識到 UI/UX 的重要性,你的閱讀對我們來說將會是最大的支持。
留言
avatar-img
留言分享你的想法!
ABLE 的沙龍 的其他內容
Brand, Marketing, and Sales Brand, Marketing, and Sales each plays an integral yet codependent role in a successful business. They are different yet i
Brand, Marketing, and Sales Brand, Marketing, and Sales each plays an integral yet codependent role in a successful business. They are different yet i
你可能也想看
Google News 追蹤
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
Thumbnail
本文探討AI筆記工具的優缺點、選擇建議及未來趨勢,比較NotebookLM、OneNote+Copilot、Notion AI、Obsidian+GPT插件和Palantir Foundry等工具,並強調安全注意事項及個人需求評估的重要性。
Thumbnail
全方位分析脫離繼承戰的方法,大膽猜測誰會成為卡丁國下一任國王。
Thumbnail
透過 No Code 工具 Glide 打造專屬 APP,Glide 支援無縫串接資料庫(如 Google Sheets, Airtable) 、即時預覽的簡易介面設計、串接第三方工具的自動化流程和強大 AI 功能,還有免費豐富範本供直接套用,無需程式和設計經驗,也能將電子表格數據轉換為 APP!
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
這篇分享的是我自己在平面設計使用上覺得特別好用的5個Figma Plugin,包括Curve Text、Skew、Noise & Texture、Morph和Blobs等。分享適合初學者的設計工具,並附上了每個工具的安裝連結。
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
B 文組女生 如何善用 figma 和 GitHub 幸福課程 幸福教練黃老師 潮資訊媒體 文組女生可以透過以下方式善用 Figma 和 GitHub: #Figma Figma 是一款線上設計工具, 可用於製作網頁、應用程式、介面設計等。 文組女生可以使用 F
Thumbnail
有沒有想過,即使沒有任何編程背景,你的創意也能在六個月內轉化成真實的App?我可以以自身經歷跟你說有了 No-Code Tool (無代碼工具) 和 AI 的幫助,這一切都是可能的!你一行 code 都不需要打,甚至也無須學習任何編程語言!沒有什麼比實踐一個自小認為不可能的任務還振奮人心的事了!
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
Thumbnail
本文探討AI筆記工具的優缺點、選擇建議及未來趨勢,比較NotebookLM、OneNote+Copilot、Notion AI、Obsidian+GPT插件和Palantir Foundry等工具,並強調安全注意事項及個人需求評估的重要性。
Thumbnail
全方位分析脫離繼承戰的方法,大膽猜測誰會成為卡丁國下一任國王。
Thumbnail
透過 No Code 工具 Glide 打造專屬 APP,Glide 支援無縫串接資料庫(如 Google Sheets, Airtable) 、即時預覽的簡易介面設計、串接第三方工具的自動化流程和強大 AI 功能,還有免費豐富範本供直接套用,無需程式和設計經驗,也能將電子表格數據轉換為 APP!
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
這篇分享的是我自己在平面設計使用上覺得特別好用的5個Figma Plugin,包括Curve Text、Skew、Noise & Texture、Morph和Blobs等。分享適合初學者的設計工具,並附上了每個工具的安裝連結。
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
B 文組女生 如何善用 figma 和 GitHub 幸福課程 幸福教練黃老師 潮資訊媒體 文組女生可以透過以下方式善用 Figma 和 GitHub: #Figma Figma 是一款線上設計工具, 可用於製作網頁、應用程式、介面設計等。 文組女生可以使用 F
Thumbnail
有沒有想過,即使沒有任何編程背景,你的創意也能在六個月內轉化成真實的App?我可以以自身經歷跟你說有了 No-Code Tool (無代碼工具) 和 AI 的幫助,這一切都是可能的!你一行 code 都不需要打,甚至也無須學習任何編程語言!沒有什麼比實踐一個自小認為不可能的任務還振奮人心的事了!