Design

【Figma】コンポーネントのサイズを変えても中身が拡大縮小されない時の解決法

公開

今回もタイトルが如く、Figmaでコンポーネントを作ったものの、サイズ変更が適応されない時の解決法を記録しておきます。

どういう状況?

例えば、下の図のような猫ちゃんのイラストをコンポーネントにするとします。

このコンポーネントをもとに、デザイン上で縮小して使用する時、事件は起こります。

なんということでしょう…
サイズを縮小すると、そこには正方形にトリミングされた猫ちゃんが。
これでは猫なのかネズミなのかアザラシなのかわかりません。

ちなみに拡大するとこんな感じになります。

猫ちゃんのサイズが変わらないまま枠だけ拡大されてしまい、一緒にでかくなってほしいのに!!となります。

原因

この問題の原因は、コンポーネントに設定しているレイヤーの下、アイコン自体のレイヤーの位置設定にあることが多いです。

コンポーネントのひとつ下のレイヤー

上記イメージにある「img」レイヤーの情報を見てみます。
右パネルの「位置」設定を確認し、「制約」部分が「中央」、または「左・上」などになっていると、コンポーネント内の要素がその位置で固定されてしまい、コンポーネントのサイズを変更しても「img」レイヤーはサイズそのまま、位置も指定されたところから動かなくなります。

画像などをコンポーネント化して、サイズに合わせて自動でトリミングしてほしい、という時には大変便利なのですが、アイコンやイラストではちょっと困ります。

解決方法

右パネルの位置設定の制約を縦・横どちらも「拡大縮小」に変更します。
以上!

それだけ⁉︎という感じなのですが、なんとそれだけで解決します。
(コンポーネントをオートレイアウトにしている場合、位置の制約が設定できなくなるのでフレームに変更しましょう)

まとめ

コンポーネント全てにこの設定をする必要はなく、制約が有効な場面もあるので、使い分けていくのが良いと思います。
今回のような設定は、以下の要素をコンポーネント化するときに便利です。

  • レスポンシブ対応させたいイラストやグラフィック
  • スマホ版とPC版でサイズを変えて使い回したいアイコン
  • 比率を保ったまま大きさを変えたいバッジやラベル

せっかく労力をかけてコンポーネントを設定したのにうまくいかないよ〜〜というストレス軽減の助けになれれば幸いです。