・ Auto Layout 3.0 的流動佈局與彈性設計
本單元將深入探討 Figma Auto Layout 3.0 的核心運作機制,並示範如何將 Relume AI 產出的結構線框圖(Wireframe) 正式帶入設計系統(Design Tokens & Components),進行高保真(High-Fidelity)視覺細緻化與 RWD 流體排版。
Auto Layout 是 Figma 模擬現代前端網頁 CSS Flexbox 的核心功能。掌握 Auto Layout 3.0,能讓 UI 組件自動適應不同的文案長度與螢幕尺寸。
・ Auto Layout 3.0 核心三大維度
- 方向(Direction)
Horizontal(水平):子物件由左至右橫向排列。Vertical(垂直):子物件由上至下縱向堆疊。Wrap(自動換行):當子物件總寬度超出容器時,自動折落至下一行(適合 Tag 標籤牆、多欄卡片列)。
- 間距與內邊距(Gap & Padding)
Gap between items:子物件之間的等距間隔(建議採用 8pt 網格系統:8px,16px,24px,32px)。Padding:容器邊框與內部物件之間的留白,可獨立設定Top/Right/Bottom/Left。
- 對齊與分佈(Alignment & Distribution)
9 宮格對齊:指定內部物件置左、置中、置右或靠上/靠下。Packed(緊密排列):物件依指定 Gap 等距靠攏。Space Between(兩端對齊):物件自動推至容器最左與最右端(適用於 Header 導覽列與 Card 頁腳)。
・ Resizing Rules(尺寸調整三黃金法則)
這是 Auto Layout 最關鍵的屬性,決定了容器與內部物件的伸縮行為:
| 模式名稱 | 原理說明 | 典型 UI 應用情境 |
|---|---|---|
Fixed Width / Height(固定尺寸) |
強制鎖定指定的像素值(px),不隨內容或父容器縮放。 | 點擊 Icon、個人頭像 (44x44px)、固定的裝飾圖案。 |
Hug Contents(擁抱內容) |
容器寬高度由內向外隨子物件或文字多寡自動長大或縮小。 | 按鈕(Button)、Tag 標籤、Badge 膠囊塊。 |
Fill Container(填滿容器) |
物件由外向內自動拉伸,填滿父容器扣除 Padding 後的剩餘空間。 | RWD 自適應核心!卡片內文、滿版 Banner、網格欄位。 |
💡 核心配對心法:
- 外層卡片:設定
Fill Container(寬度隨螢幕伸縮)。 - 卡片標題/內文:設定
Fill Container(寬度縮小時自動向上推擠換行,防破版)。 - 卡片內按鈕:設定
Hug Contents(維持按鈕外框擠壓長度)。
・進階屬性:Wrap、絕對定位與極限限制
- Wrap(自動換行):選取父容器方向為
Wrap,子物件設為固定寬度或Min-Width,寬度不足時自動換行(如熱門搜尋標籤列)。 - Absolute Position(絕對定位):點擊子物件右側屬性欄的
+絕對定位按鈕,可讓該物件脫離 Auto Layout 的自動排版流,任意相對於父容器置頂/置角(常用於右上角提示紅點Notification Badge或關閉按鈕X)。 - Min & Max Dimensions(最大/最小尺寸限制):點擊尺寸輸入框設定
Min W / Max W:Max-Width: 1200px:防止 RWD 拉伸至超大螢幕時內容過度散開。Min-Width: 320px:防止螢幕縮小過度擠壓介面。
・ 如何做出隨螢幕寬度自動延伸的網頁區塊
要打造能自適應不同解析度(如 1440px 桌機至 375px 手機)的流體網頁區塊,必須建立雙層架構:
[ Outer Section Frame (Fill Container / 100% W) ] <-- 吃滿螢幕底色
└── [ Inner Container Frame (Max-Width / Centered) ] <-- 限制內容寬度與對齊
└── [ Content UI Elements (Fill Container) ] <-- 彈性內容組件
・區塊構建雙層架構步驟
- 外層容器(Outer Section Frame):
- Auto Layout 方向設定為
Vertical。 - 寬度設為
Fill Container(或在 Desktop 設為1440px,動態拉伸時設為Fill)。 - 綁定全站背景色 Token(如
color/neutral/bg)。 - 設定垂直 Padding(如
Top/Bottom: 80px)。
- Auto Layout 方向設定為
- 內層容器(Inner Container Frame):
- 將內層 Frame 放入外層,寬度設定
Fill Container,並新增Max Width: 1200px。 - 對齊方式設定為
Top Center(置中對齊)。 - 套用
grid/desktop-12網格規範。
- 將內層 Frame 放入外層,寬度設定
- 內部內容組件(Content UI Elements):
- 卡片與欄位設為
Fill Container。當外層視窗縮小時,內層卡片將依據比例自動彈性縮小。
- 卡片與欄位設為
・ Figma Auto Layout ➔ CSS Flexbox 屬性對照表
理解 Figma 與前端 CSS 的對映,能大幅提升與開發團隊(Dev Handoff)的溝通效率:
| Figma Auto Layout 屬性 | 前端 CSS Flexbox 對應代碼 | 實務屬性說明 |
|---|---|---|
| Horizontal / Vertical | flex-direction: row / column; |
排版流向(軸線方向) |
| Wrap | flex-wrap: wrap; |
超出寬度時自動折行 |
| Gap | gap: 16px; |
子物件之間的交叉/主軸間距 |
| Padding | padding: 24px 16px; |
容器內部留白邊距 |
| Fill Container | flex: 1 1 0%; 或 width: 100%; |
彈性分配剩餘空間 |
| Hug Contents | width: fit-content; |
尺寸由內容決定 |
| Space Between | justify-content: space-between; |
主軸物件推至兩端對齊 |
| Absolute Position | position: absolute; |
脫離文檔流,自由定位 |
・ 將 Relume 結構稿套用設計系統並進行視覺細緻化
Relume AI 能快速產生合理的黑白結構稿(Wireframe),但缺乏品牌個性與視覺層次。本階段將示範如何將結構稿正式導入 Design System。
[ Relume 黑白結構稿 ] ➔ [ 帶入 Design Tokens ] ➔ [ 替換 Component 變體 ] ➔ [ 視覺質感細緻化 ]
・ 步驟 1:結構拆解與解綁(Detach / Unlink)
- 匯入 Relume 結構稿後,檢視其層級架構。
- 清除 Relume 預設的非系統字體與色彩(點擊右側 Break link 或直接套用我們第一單元建立的 Token)。
・ 步驟 2:帶入 Design Tokens(色彩與文字階層)
- 色彩變數綁定:
- 背景色:綁定
color/neutral/bg(#F8FAFC)。 - 大標題文字:綁定
color/neutral/text(#0F172A)。 - 主色區塊/按鈕:綁定
color/primary(#0F2C59) 或color/secondary(#2563EB)。
- 背景色:綁定
- 文字階層綁定:
- Hero 區塊大標題:套用
type/h1(36px / Bold / LH 120%)。 - 區塊小標題:套用
type/h2(24px) 或type/h3(18px)。 - 長篇內文:套用
type/body-regular(16px / LH 160%)。
- Hero 區塊大標題:套用
・ 步驟 3:組件替換(Swap Instances)
- 按鈕替換:
- 選取 Relume 的預設按鈕,在右側屬性欄點擊
❖ Swap instance,替換為第二單元製作的❖ Component: Button。 - 快速切換 Variant 狀態(如
Type: Primary/State: Default)。
- 選取 Relume 的預設按鈕,在右側屬性欄點擊
- 卡片替換:
- 將普通 Frame 替換為
❖ Bento Card組件,並確認卡片內的圖片 Slot 與文字均設為Fill Container。
- 將普通 Frame 替換為
・步驟 4:視覺層次細緻化(Visual Polish & Details)
- 留白節奏微調(8-pt Grid System):
- 檢視所有 Padding 與 Gap,將隨機的數字調整為
8px,16px,24px,32px,48px,64px等規範數值。
- 檢視所有 Padding 與 Gap,將隨機的數字調整為
- 圓角與層次質感(Border Radius & Shadows):
- 卡片統一套用
12px圓角。 - 重要卡片加入微陰影(
Drop Shadow: Y: 4, Blur: 12, Opacity: 5%)營造懸浮空氣感。
- 卡片統一套用
- 品牌影像與無障礙校正(A11y Check):
- 將灰階圖片佔位符替換為高質感品牌攝影圖(如《島嶼新浪潮》自然海浪意象)。
- 使用 Contrast / Stark 插件檢測,確保所有內文與背景對比度達 WCAG 2.1 AA 標準 (≥ 4.5:1)。
・ 轉化前後差異對照表
| 轉化維度 | Relume 原始結構稿 (Wireframe) | 正式 Design System 視覺細緻化後 |
|---|---|---|
| 色彩與視覺 | 黑、灰、白等單調占位色 | 全站綁定語意化 Color Tokens(支援黑夜/白天模式) |
| 字體排版 | 預設系統無級別字型 | 嚴格對齊語意化 Text Styles(h1~h6, Body, Label) |
| 組件維護性 | 一次性獨立 Frame 結構 | 可重複使用之 ❖ Component 變體與 Instance 連結 |
| 工程交付 (Dev) | 未確定邊距與響應規則 | 100% 映射 CSS Flexbox(Padding, Gap, Fill Container) |
💡 核心結論與效益:
透過這套 workflow,設計師能利用 Relume AI 在 10% 的時間內完成 80% 的版型佈局思考,再將剩餘 90% 的時間專注於 Design System 的視覺層次細緻化、品牌氛圍打造與無障礙(A11y)體驗檢測。
透過這套 workflow,設計師能利用 Relume AI 在 10% 的時間內完成 80% 的版型佈局思考,再將剩餘 90% 的時間專注於 Design System 的視覺層次細緻化、品牌氛圍打造與無障礙(A11y)體驗檢測。
・ 實務操作常見踩坑與避坑指南
❌ 常見錯誤 1:文字設定為 Fixed Width,導致多語言或換行時破版
解法:在 Auto Layout 容器內的文字,寬度必須一律設為 Fill Container(若需長度自適應則設為 Hug Contents),絕不設為 Fixed Width。
❌ 常見錯誤 2:外層畫布縮放時,內部卡片不會跟著變寬/變窄
解法:檢查層級,必須「每一層」父容器與子組件的寬度都設定為 Fill Container,彈性鏈結才不會中斷。
❌ 常見錯誤 3:按鈕文字變長時,按鈕圖示(Icon)與文字疊在一起
解法:按鈕外框必須開啟 Auto Layout,方向設為 Horizontal,並設定固定的 Gap(如 8px),Resizing 設為 Hug Contents。
・課後作業
Relume AI 結構稿轉化 Design System 實戰
請依據以下四階段執行標準與檢核條件,完成專案畫布之高保真(High-Fidelity)視覺轉化。
| 作業階段 | 核心目標 | 具體操作步驟 | 規格與屬性設定 | 驗證與避坑檢查 |
|---|---|---|---|---|
| 步驟 1 結構拆解與解綁 |
純化 Relume 線框圖,清除第三方非系統樣式 |
|
|
|
| 步驟 2 帶入 Design Tokens |
綁定第一單元全域 Color 與 Typography Tokens |
|
|
|
| 步驟 3 組件替換與響應 |
替換系統組件並建立自適應雙層流體架構 |
|
|
|
| 步驟 4 視覺質感與 A11y |
微調留白節奏、圓角光影與無障礙對比檢測 |
|
|
|
💡 作業繳交 Checkpoint:請於 Figma 專案中將「轉化前 (Wireframe)」與「轉化後 (High-Fi)」並排呈現,並確認畫布縮放時 Auto Layout 流體響應運作正常。