Auto LayoutはFigmaが他のデザインツールと一線を画す最大の機能です。CSSのFlexboxをデザインツール上で完全に再現し、「テキストが増えたら自動でボタンが広がる」「要素を追加したらナビゲーションが自動で整列する」といった動的レイアウトをデザイン段階から実現します。
Auto Layoutを理解することで、デザインとコードの乖離がほぼなくなり、エンジニアへのハンドオフ品質が劇的に向上します。このレッスンでは基本から応用まで、実際のコンポーネント作成を通じて習得します。
Auto Layout — Hug / Fill / Fixed サイジングモデル
Auto Layoutは、フレーム内の子要素を「行(水平)」または「列(垂直)」方向に自動配置するレイアウト機能です。要素を追加・削除・サイズ変更したとき、コンテナが自動的に調整されます。
CSSとの対応関係を理解すると習得が早くなります。
| Auto Layout設定 | CSSプロパティ |
|---|---|
| 方向: 水平 | flex-direction: row |
| 方向: 垂直 | flex-direction: column |
| Gap(要素間の間隔) | gap / column-gap / row-gap |
| Padding(内側余白) | padding(上下左右個別設定可) |
| 揃え | align-items / justify-content |
| Wrap(折り返し) | flex-wrap: wrap |
💡 エンジニアにデザインを渡すとき、Auto Layoutで作られたフレームはFigmaが自動でCSS値を表示してくれます。Dev Modeで確認すると、paddingやgapの数値がそのままコードに使えます。
方法1: ショートカット(最速)
Shift + A を押すだけでAuto Layoutが適用される方法2: 右パネルから追加
方法3: 複数要素から作成
Shift + A を押すとAuto Layoutフレームが自動生成される⚠️ Auto Layoutを適用すると、選択した要素がフレーム内に包まれます。既にフレームがある場合はそのフレームにAuto Layoutが追加されます。操作を間違えた場合は
Ctrl/Cmd + Zで元に戻せます。
Auto Layoutパネルの「Padding」セクションで設定します。4つの値を個別に設定できます。
UIコンポーネントの推奨Padding値:
| コンポーネント | 推奨Padding |
|---|---|
| 小ボタン(SM) | 上下8px / 左右16px |
| 標準ボタン(MD) | 上下12px / 左右24px |
| 大ボタン(LG) | 上下16px / 左右32px |
| 入力フィールド | 上下12px / 左右16px |
| カード | 上下20px / 左右24px |
| ナビバー | 上下16px / 左右24px |
Gap(Spacing between items)は子要素同士の間隔を設定します。
justify-content: space-between と同等)💡 「Auto(Space between)」は、ナビゲーションのロゴ + メニューリスト + CTAボタンを左端・中央・右端に配置したいときに便利です。一切手動で位置を調整せずに均等配置が完成します。
子要素のサイズ合計に合わせてコンテナが自動サイズになります。
特徴:
最適な用途:
親フレームの残りスペースを埋めるように伸びます。CSSの flex: 1 または width: 100% に相当します。
特徴:
最適な用途:
幅・高さを固定値で指定します。コンテンツが溢れると見えなくなります(overflow: hidden相当)。
最適な用途:
⚠️ Fixedサイズ設定時、コンテンツが溢れてクリッピングされることがあります。特にテキストを含む要素で注意してください。Clip contentオプションでコンテンツのはみ出しを制御できます。
Auto Layoutのフレームを入れ子にすることで、複雑なレイアウトが実現できます。外側フレームが全体の方向を決め、内側フレームがセクションの方向を決めます。
典型的なネスト構造:
Card(垂直 Auto Layout)
└ CardImage(Fixed: 幅Fill × 高さ200px)
└ CardBody(垂直 Auto Layout、Padding 16px)
└ CardTitle(Hug)
└ CardDescription(Fill × Hug)
└ CardFooter(水平 Auto Layout)
└ Price(Hug)
└ Button(Hug)
ステップ1: カードフレームを作成
F を押してフレームを作成(幅320px × 高さ自動)Shift + A でAuto Layoutを垂直方向に適用ステップ2: 画像エリアを追加
ステップ3: コンテンツエリアを追加
Shift + A で垂直Auto Layout適用ステップ4: タイトル・本文・ボタンを追加
ナビゲーションバーは「ロゴ(左)」「メニュー(中)」「CTA(右)」の3グループが基本構成です。Auto Layoutの「Space between」を活用すると、手動で位置調整せず完成します。
作成手順:
Shift + A で水平Auto Layoutを適用各要素の設定:
💡 「Space between」を設定した時点で、ロゴは左端・CTAは右端・メニューは中央付近に自動配置されます。ブレイクポイントごとにフレーム幅を変えるだけで、ナビバーが自動でリフロー(再配置)します。
Auto Layoutフレーム内の特定の子要素だけをフローから除外して、絶対位置で配置できます。
設定方法:
主な用途:
Auto LayoutはFigmaの心臓部です。Hug・Fill・Fixedの3つのサイジングモードとPadding・Gapの設定を組み合わせることで、CSS Flexboxと同等のレイアウトをデザイン段階から表現できます。ネスト構造を理解してカードとナビバーを自在に作れるようになれば、実務レベルのUIコンポーネント設計が可能になります。次のレッスンではAuto Layoutをベースにしたレスポンシブデザインを学びます。
全問正解でこのレッスンが「完了」になり、コースの全レッスンを完了すると修了証が発行されます。解説つき・何度でも挑戦できます。
Q1.ラベルの文字数に合わせてボタンの幅が自動で伸縮するようにしたい場合、ボタンの幅の設定はどれですか?
Q2.ナビバーでロゴを左端、CTAを右端に、手作業の位置調整なしで配置したい場合の設定はどれですか?
Q3.Auto Layoutのカードの右上に「NEW」バッジを重ねたいが、他の要素の並びは崩したくありません。適した方法はどれですか?
完全無料・クレジットカード不要
HTML/CSSコーディング入門
HTMLのすべての要素は目に見えない「箱(ボックス)」として扱われます。
30分本文は無料で閲覧可
HTML/CSSコーディング入門
CSS Flexbox(フレックスボックス)は、1次元のレイアウト(横または縦方向への要素配置)を直感的かつ強力に実現するレイアウトモジュー
30分本文は無料で閲覧可
デザイン基礎 - 視覚コミュニケーション入門
レイアウトはデザインの「骨格」です。
35分本文は無料で閲覧可
UI/UXデザイン実践講座
「UIデザイナー」と「UXデザイナー」という言葉は、今や求人票やポートフォリオで当たり前に使われています。
30分無料公開
UI/UXデザイン実践講座
「自分はユーザーのことをよく知っている」という思い込みは、UXデザイン最大の敵です。
30分本文は無料で閲覧可
UI/UXデザイン実践講座
ユーザーリサーチで収集したデータは、そのままでは設計チームが活用しにくい状態です。
30分本文は無料で閲覧可