FigmaのAuto Layout入門|繰り返しのレイアウトやコンテンツに応じて横幅可変するボタンをラクに作る

FigmaにはAuto Layoutという機能があります。
このAuto Layoutを利用すると、コンテンツに合わせて変化するフレーム(アートボード)が作れます。
Auto Layoutとは
「Auto Layout」とは、コンテンツに応じて変化するフレームの作成ができます。
「Layout」と名前が付いているので、配置だけかと思ってしまいますが「テキスト量に応じての変化」や、「メニューやリストの順番をすぐ変えられる」「隣り合わせに並んでいるレイアウトをうまく補正してくれる」など柔軟なデザインを作るために必要不可欠です。
- CSSのFlexboxを意識したレイアウトができる
- テキスト量に合わせて自動でサイズが変わるボタンを作れる
- ボタンごとに細かいサイズ調整をしなくてよくなる
Auto Layoutの設定
Auto Layoutはどの要素にも好きに設定できます。
設定したい要素を選択したらプロパティパネルにある「Auto layout」の右にある「+」をクリックします(もしくは右クリックして[Add Auto Layout(shift + A)で設定追加])。
![]()
Auto LayoutはCSSのFlexboxをデザインツール上で再現する機能と考えると分かりやすく、選択した要素をグループ化する形でFrame(フレーム)が親要素として追加され、フレーム直下は子要素として扱われます。
設定項目
Auto Layoutを追加するとパネル上にいろんなアイコンが表示されます。

「↓」と「→」はレイアウトの並びを指定します。
「→」アイコンをクリックすると子要素が縦並びになります。

「↓」アイコンをクリックすると子要素が横並びになります。

その横の2つのアイコンは、子要素間の幅と、親要素周りのパディングの指定です。
1番右端のアイコンをクリックすると上下左右のどこを起点にリサイズするか指定できます。

上下の場合はCSSのalign-items、左右の場合はjustify-contentの指定がされます。
セレクトボックスの「Packed」を「Space between」にすると子要素間の幅がAutoになり、親要素の横幅いっぱいに広がるようになります。

これはCSSのjustify-content: space-between;と全く同じ挙動ですね。
子要素の並び変え
子要素を並び変えたい場合は、子要素を選択して、入れ替えたい場所にドラッグアンドドロップをするか、レイヤー位置を入れ替えます。


レイヤーを入れ替える場合は、横並びの場合は「レイヤーで上にいくほど右に並べられる」のと、縦並びの場合は「レイヤーで上にいくほど下に並べられる」ようになっています。
縦並びの場合にレイヤーの並びと実際にレイアウトされる並びが反対になるので注意が必要です。
コンテンツ量に応じて横幅を可変する
テキストに対してAuto Layoutを設定して、Frameに対して背景色を設定するとコンテンツ量に応じて横幅が変化するボタンを作れます。

ボタン1つ1つの横幅を指定して回る必要がなくなりますね。
設定もAuto Layoutを指定するだけなので非常に簡単です。
ルールを決めてコーディングしやすいレイアウトができる
このようにFigmaのAuto Layoutでは、Flexboxをそのまま指定するような作りになるので、コーディングをかなり意識したデザインになります。
ただ、デザインでAuto Layoutを指定されてあるからといって、コーディングでFlexboxを指定するのが最適とは限りません。
そこはコーダー側が意識してなにが最適か考える必要はありますが、コーディングしにくいデザインになることは減らせるでしょう。

Illustratorの「埋め込み」を行うスクリプトで、画像の埋め込みをショートカットで行う!
今から始めるUIデザインツールSketch入門 Sketchの特徴と使う理由
Figmaでデザインデータを整理するときに役立つプラグイン「Clean Document」
Sketchの画像を図形でマスクしたり、グラデーションマスクをする方法
ブラウザ上で動作するデザインツール「Figma」のアカウント作成から必要最低限の設定
Figmaでプラグインを使わずに複数のレイヤー名を一括変更する方法
Sketchのテキスト編集周りの基本操作
Figmaで図形の分割をして簡単にレイアウトを作成する拡張機能「Split shape」
Figmaでデザインデータ上の画像を圧縮してファイルサイズを軽くする「Downsize」
Figmaでモックアップをすばやく作成する「Mockuuups Studio」
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)