
一直以來,設計系統都在「一致性」和「彈性」之間拉鋸。Figma 新推出的 Slots(插槽) 功能,讓元件可以靈活替換內容,又不用 detach,正是解決這個問題的關鍵。
▲ Figma 官方 Slots 介紹影片
你有沒有遇過這種狀況:公司的設計系統建好了,元件庫也整理好了,但實際設計的時候,還是要一直 detach 元件來改?
原因通常是這樣的:設計系統的元件做得太死,每次有新的排列組合需求,只好新增 Variant;Variant 一多,Library 就越來越臃腫;最後大家乾脆不用元件庫,直接 detach 改掉,系統的一致性就崩了。
這不是設計師的問題,而是設計工具的限制。Figma 這次推出的 Slots 功能,就是從根本上解決這個結構性問題。
Slots 可以理解成元件裡的「可替換區域」。你在設計一個 Card 元件時,可以在裡面放一個 Slot,讓使用者決定這個區域要放什麼——圖片、圖表、按鈕組,都行,而且全程不需要 detach。
💡 換句話說
Slots 就像積木底座,結構固定,但你可以自由決定上面要放什麼積木。元件的骨架不變,內容可以任意替換。
這個概念其實在前端開發裡早就有了,Vue 的 <slot>、React 的 children 都是同樣的思路。Figma 現在把這個能力帶進設計端,讓設計結構真正對齊開發結構。
目前 Slots 已在 Open Beta,所有 Full Seat 用戶都可以使用。
Figma 官方在 Schema 2025 發表後,與早期測試者合作整理出 5 個最有效的使用方式:
從最常被 detach 的元件開始
找出你的設計系統裡大家最常 detach 的元件,那些就是 Slots 最能發揮價值的地方。常見選擇:Dialog、Modal、Card、Panel。有這些元件的地方,Slots 馬上就能減少 80% 的 Variant 需求。
空插槽 vs 預填內容,要刻意選擇
空插槽 = 提示設計師「這裡需要填內容」;預填插槽 = 提供預設值,不需要改的話直接用。兩種都有其用途,重點是要根據元件的使用情境刻意選擇,不要隨便設定。
用 Preferred Instances 引導插槽內容
插槽太自由也是問題——設計師會不知道該放什麼進去。善用 Preferred Instances(偏好實例)功能,在 Props 面板裡預先指定「這個 Slot 推薦放這幾個元件」,讓 Slot 靈活但有邊界。
Slots 也可以用在大版型
Slots 不只能用在小元件,Header、Sidebar、頁面 Section 一樣適用。建立一套固定版型,讓各個區域可以替換不同的內容元件,就不需要再從零開始做每一頁了。
讓設計結構對齊程式碼
Slots 的設計方式和前端 container component 邏輯完全一致,搭配 Code Connect,工程師可以直接在程式碼片段中看到 Slot 對應的位置,交接溝通成本大幅下降。
步驟非常簡單,不需要任何插件:
建立或開啟主元件(Main Component)
Slots 只能存在於 Main Component 內,不能直接放在 Canvas 上。
在元件裡新增一個 Frame
Slot 是從 Frame 轉換過來的,Rectangle 不能直接轉換成 Slot。
右鍵選擇轉換成 Slot
對著 Frame 右鍵,選擇「Convert to Slot」,或用快捷鍵 Shift + Command + S,完成。
📂 官方 Playground 檔案
Figma 有提供一個 Slots Playground 社群檔案,可以直接複製下來玩,是上手 Slots 最快的方式。
對於需要跟工程師協作的設計師來說,Slots 有一個很關鍵的優勢:它的結構思維和前端完全一致。
開發端在寫 Dialog、Card 這類 container component 的時候,通常會定義固定的 slot 區域讓外部傳入內容,而不是把所有可能的內容都寫死在元件裡。Figma 的 Slots 現在把這個邏輯帶進設計端,代表設計師和工程師說的是同一種語言。
🔗 搭配 Code Connect 使用
Slots 已整合進 Figma 的 Code Connect 功能。工程師在 Dev Mode 看到元件時,可以直接看到 Slot 對應的程式碼結構,大幅減少「這個設計要怎麼實作」的溝通來回。
→
Slots 讓元件內容可替換,不需要 detach,解決 Variant 爆炸問題
→
從最常被 detach 的元件開始用,效益最大
→
空插槽 vs 預填內容,要根據使用情境刻意設計
→
Preferred Instances 讓插槽有引導,避免過度自由
→
設計結構對齊前端 container component 邏輯,交接更順暢
→
現在是 Open Beta,所有 Full Seat 用戶都可以直接用