見出し画像

Figmaのconstraints徹底解説

どうもーUI/UXデザイナーのうっくんです。

以前、Figmaのgroupとframeの違いについて書いた記事が評判でした。

そこではサラッとしか説明しなかったのですが、つまづく人も多そうなので、今回はconstraintsについて解説してみようと思います。

constraintsとは

スクリーンショット 2020-03-08 17.47.16

「constraintsってなんやねん。日本語でおk」と思いますよね。安心してください。そういう方の為にこのnoteはあります。

constraints=制約。とは、frame(外枠)のサイズが変わったときに、中のUI部品がどのように振る舞うかを決めるもの、です。

もともとiPhone向けのアプリなどを開発するツールである、「Xcode」の中でUIを作る機能として使われていた用語がFigmaに輸入されたものと理解しています。なので、概念としても、設定方法としても、Xcodeのconstraintsに似ています。Xcodeの方がむずいけど。

constraintsの設定方法

constraintsは下記のものに対して設定できます。
・レイヤー
・group
・frame
・コンポーネントなど
つまり全部ですね。ただし、1つだけ条件があります

それは親要素がframeであること、です。

groupとframeの違いに関するnoteでも書いた通り、frameは子要素の整列基準になりますが、groupはなりません。

なので、「なんでconstraints設定するやつ出てけえへんねん!(訳: なぜconstraintsを設定するメニューが出てこないのか。)」って思った方は、親要素をgroupではなくframeに変換してみてください。

frameの変換方法

画像2

constraintsの種類

それでは、constraintsの種類ごとにどのような動きになるのか細かく解説していきます。

左寄せ、右寄せ、上寄せ、下寄せ

この4つは比較的わかりやすいと思います。
現在居る場所からframeの左端の距離を保ったままリサイズするのが、左寄せです。
右、上、下もframeのどの端を基準として保つかが違うだけで、同様の動きです。例によってGIF動画で動きを見ていきましょう。

左寄せ

親要素の左端までの距離を保ち続けます。

スクリーンショット 2020-03-08 18.04.06

画像4

右寄せ

親要素の右端までの距離を保ち続けます。

スクリーンショット 2020-03-08 18.11.00

画像6

上寄せ

親要素の上端までの距離を保ち続けます。

スクリーンショット 2020-03-08 18.12.49

画像8

下寄せ

親要素の下端までの距離を保ち続けます。

スクリーンショット 2020-03-08 18.16.53

画像10

ここまではわかりやすいと思います。

ここからは少しクセがあるやつです。

左右揃え

左右揃えは親の左端までの長さと、右端までの長さを保ったまま拡大縮小します。なので、親とのマージンを一定に保ち続けたい時などに使用できます。


スクリーンショット 2020-03-08 18.20.45

画像11

上下揃え

上下揃えは左右揃えと同じ。上下のマージンが保たれた状態で伸び縮みします。


スクリーンショット 2020-03-08 18.26.48

画像13

左右中央揃え

こちらは、左右方向伸ばした時に、親要素の中央を維持したままリサイズされます。


スクリーンショット 2020-03-08 18.29.01

画像15

上下中央揃え

スクリーンショット 2020-03-08 18.32.00

画像17

左右スケール

これは、今まで紹介した中では個人的に一番使わないやつです。なぜなら、これを設定るすとframeではなくgroup でconstraints を設定しない時に挙動と同じだからです。frameを設定するメリットがほぼ無くなります。

左右揃えと似ているのですが、違いがあります。左右揃えは左右のマージンを保ったままスケールするのに対し、この左右スケールは親要素と同じ比率でスケールします。そのためマージンは中途半端な数字になります。

スクリーンショット 2020-03-08 18.35.20

画像19


上下スケール

上下スケールを使うと、左右スケールと同様、親要素と同比率で拡大縮小します。こちらも前述の理由で、あまり使いません。

スクリーンショット 2020-03-08 18.40.30

画像21

以上です

これでconstraintsは完全に理解できたと思います。

次回は何について書こうかな〜。リクエストがあればコメントして下さい!


UI/UXデザインに関する情報発信をしています。この分野のコミュニティに貢献できるように、全てのnoteは無料で公開しています。サポートしていただけましたら、デザインのツールを購入するのに使いたいと思います。ツールの使い方や、レビューを投稿しておりますのでぜひご覧ください。