![見出し画像](https://assets.st-note.com/production/uploads/images/12983427/rectangle_large_type_2_96923c2277c05a0196efaee0bf4b478a.jpeg?width=1200)
Chapter 4: コンポーネントとスタイル
はじめに
この記事は、UIデザインツール「Figma」の解説記事の第4章になります。
概要や過去の解説記事は下のマガジンからどうぞ。
今回はコンポーネントとスタイルについて紹介します。
前回はこちら
コンポーネントとは
UIデザインにおけるコンポーネントとは、デザイン全体で再利用できるUIの要素のことをいいます。ボタンやアイコン、ヘッダー、フッターなど、同じデザインの要素を各ページで毎回つくるのではなく、再利用することで作業時間の短縮、プロジェクトで一貫したデザインの作成、また、メンテナンスしやすいデザインデータを作ることができます。
この章では具体的なUIを作りながら、コンポーネントのメリットを体感してみたいと思います。
コンポーネント化するUI要素を用意する
まずはUIで最もよく使われる要素のひとつであるボタンをコンポーネント化していきましょう。
図のように、四角形の要素(Rectangle)とテキストをグループ化してボタンを作ります。
![](https://assets.st-note.com/img/1664013820214-tcSnB7uVvm.png?width=1200)
[Tips] このとき角丸にすると柔らかい印象のボタンになるので、プロパティパネルから┏ マークの数値を変えて、角を丸くしてみましょう。
![](https://assets.st-note.com/production/uploads/images/87563553/picture_pc_6b3432f2ce295d576c07583e26c9d14e.gif)
作成したボタンはコピーして下に置きます。コピーするときは、選択した要素を Option(Alt)押しながらドラッグ すると簡単にコピーすることができます。
![](https://assets.st-note.com/production/uploads/images/87563647/picture_pc_c668ef87061dd95fcd35f034881a2249.gif)
この複製したボタンは、後で比較用として使うので残しておいてください。
コンポーネント化する
次は作ったボタンをコンポーネント化します。
コンポーネント化するには作成したボタンを選択し、右クリックで Create Component を選択します。ショートカットキーは ⌘ + Option + K (Win: Ctrl + K) です。
![](https://assets.st-note.com/img/1664014153225-mrMp2Pdsre.png?width=1200)
Create Component すると、今まで選択していた要素の枠が水色から紫色に変わりました。
また、レイヤーパネルの表示も4つのひし形に変わったのが確認できます。
![](https://assets.st-note.com/img/1664014189764-rnENkXCNNS.png?width=1200)
この4つのひし形の要素を Master Component(マスターコンポーネント) と呼びます。この Master Component を再利用することで作業の効率化などを図ることができます。
次に、作ったマスターコンポーネントを先程同様にコピーして上に置いてみましょう。するとコピーした要素はレイヤーパネルで紫色のひし形の枠線で表示されている要素があるのがわかります。
![](https://assets.st-note.com/production/uploads/images/87565247/picture_pc_b8ccaaf90ce09752242ecef221ec11cf.gif)
このマスターコンポーネントからコピーした要素を instance(インスタンス) と呼び、これがコンポーネントを再利用した要素になります。インスタンスはマスターコンポーネントで編集した色やテキストのプロパティを引き継ぐことができ、他のマスターコンポーネントに瞬時に切り替えたり、一部の要素を上書きすることができます。
マスターコンポーネントとインスタンスの関係
次にマスターコンポーネントとインスタンスの関係を実際に見ていきましょう。現在、キャンバスにはこのような構成になっていると思います。
![](https://assets.st-note.com/img/1664014375163-WcoQ3VXiGG.png?width=1200)
真ん中のマスターコンポーネントの背景色やフォントサイズを変更すると、上のインスタンスには変更が適用され、下のグループ要素には変更が反映されません。
これがマスターコンポーネントの変更が、インスタンスに反映される例です。
[Tips] ↓の例では ⌘ (Win: Ctrl) を押しながら要素をクリックすることで、グループではなく要素を直接選択してプロパティを変更しています
![](https://assets.st-note.com/production/uploads/images/87564180/picture_pc_f11e579493eef5fe03b21e9974d2bea0.gif)
コンポーネント化のメリットはこの一括変更にあります。
例えばこのボタンを使っているFrameが100個あったとして、それらがインスタンスであれば色の変更はマスターコンポーネントの1回で済みますが、コンポーネント化してないときは100個のボタンを毎度手作業で変えなければなりません。
インスタンスのプロパティを上書きする
インスタンスはマスターコンポーネントのプロパティを引き継ぐだけでなく、テキストやプロパティを直接上書き(Override)することができます。
例えば、ボタンは使われるシーンによって「登録する」や「キャンセル」といった文言に変わるので、必要に応じてインスタンス上書きすることができます。
↓の例ではインスタンスのテキストを上書きしています。
![](https://assets.st-note.com/production/uploads/images/87564383/picture_pc_1d8a07bbfee16c36a3cc8112d37dc0b7.gif)
上書きできるプロパティは以下のものになります。
テキスト: フォント、太さ、サイズ、線の高さ、文字間隔、段落間隔、インデント。
色: Fill、Stroke、背景色、不透明度
効果: ドロップシャドウ、インナーシャドウ、ぼかし。
逆に、上記以外の例えば位置やサイズは上書きすることができません。
位置やサイズを変更したい場合は、インスタンスを右クリックから Detach Instance でインスタンス自体を解除することで変更できます。
ショートカットキーは ⌘ + Option + B (Win: Ctrl + B) です。
![](https://assets.st-note.com/img/1664014735712-vtn75FIfG1.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/87565373/picture_pc_862ce33a41efb3b487cea12a65c906ba.gif)
Detach Instance すると位置が変更できるようになったり、マスターコンポーネントの変更が反映されなくなります。また、再びインスタンスに戻すことはできないので、注意してください。
コンポーネントの置き換え
コンポーネントのメリットは他にもあり、既存のインスタンスを他のマスターコンポーネントのインスタンスに変更することもできます。
図のようにボタン1(青), ボタン2(赤)というマスターコンポーネントがあり、ボタン1(青)のインスタンスがある例を見ていきましょう。
![](https://assets.st-note.com/img/1664015391752-dwlOv6L3cR.png?width=1200)
このときインスタンスを選択し、プロパティパネルのInstanceから他のマスターコンポーネント(この例だと ボタン2)を選択することで、背景の色がボタン2に変えることができます。
![](https://assets.st-note.com/production/uploads/images/87565553/picture_pc_2d7bb38a690de61383bfdf3198c12c69.gif)
このように、コンポーネント化しておくことで瞬時に要素を再利用、置き換えることができます。例えばボタンでも primary, secondary, hover, active, disable など、形状は同じでも状態によって色が違うボタンなどはコンポーネント化すると簡単に状態を切り替えることができます。
スタイルを扱う
先程紹介したコンポーネントは、主に要素自体を再利用していましたが、色やフォントなどのプロパティは Styles(スタイル) に登録することで再利用が可能になります。
スタイルにすることができるのは、以下の4つです。
・色
・フォント
・エフェクト
・グリッドレイアウト
スタイルもコンポーネントと同じく、要素に適用しておけば後で一括で変更したり、瞬時に他のスタイルを適用することができるメリットがあります。
特に、色やフォント(font-family, size, weightなど)は実装する際、定数にすることが多いので、よく使う色やブランドカラーは変数名でスタイル化しておくとエンジニアとのコミュニケーションも楽になります。
色のスタイルの作成
先ほど作ったボタンで使っていた青色をスタイルに定義してみましょう。
ボタンの背景を選択した状態で Fill の右にある4つの●をクリックすると Color Styles が表示されます。
![](https://assets.st-note.com/img/1664015728226-eckpU9X59j.png?width=1200)
No Color Styles で現在カラーが定義されていないことがわかります。
次に Color Styles に右にあるプラスボタン(Fill の右ではない) をクリックして、定義する色の名前を付けます。
![](https://assets.st-note.com/production/uploads/images/87566502/picture_pc_ff91765e6bde32f42b6a79625aaf4438.gif)
これで色のスタイルを作ることができました。さっそく作ったスタイルを適用してみます。適当に Rectangle を作り、Fill から先ほど作った Blue を選択します。
![](https://assets.st-note.com/production/uploads/images/87566894/picture_pc_ecb1a660201090439a393361a4f4a2b9.gif)
このように色をスタイル化することで簡単に色を選択できるほか、カラーコードがずれたりすることもなくなるので、一貫したデザインを作ることが可能になります。
スタイルの編集
作成したスタイルの編集は何も選択していない状態で画面右上の Local Stylesのスタイルにマウスカーソルを当て、右側に出ているアイコンから編集することができます。
![](https://assets.st-note.com/img/1664016688253-WPd6ojkIB2.png?width=1200)
![](https://assets.st-note.com/production/uploads/images/87567879/picture_pc_55269ebcceff0f1afb0b814aa52b093f.gif)
スタイルを編集すると、すでにスタイルがあたっている要素にも変更が適用されるので、後から軽微な色調整をするときは一括で反映することができます。
色の他にもフォントやエフェクト(Shadowなど)も同様にスタイル化できるので、必要に応じて試してみてください。
チームライブラリについて
最後に Team Library(チームライブラリ) についてご紹介します。
作成したコンポーネントやスタイルをチームライブラリ(以下ライブラリ)にすることで他のプロジェクトやチーム間でコンポーネントやスタイルを共有することができます。
アカウントを作成したときに最初から入っていた ○○'s team library がまさにチーム用のライブラリとして Figma が用意してくれたものです。
![](https://assets.st-note.com/img/1664018009723-sjxyLSDTpF.png?width=1200)
ライブラリと料金プラン
Figma の料金プランによって、ライブラリにできる要素が異なります。
必要に応じてご自身に合ったプランを選択してお使いください。
無料(Starter)プラン: スタイルのみ公開可能
プロフェッショナルプラン以上: コンポーネントとスタイルを公開可能
どのプランでもコンポーネントやスタイルが入ったライブラリを取り入れることはできますが、無料プランの場合はコンポーネントがあるとライブラリにすることができないのでご注意ください。
ライブラリは主に複数人でUIデザイン作業するときに便利なので、個人で使われる方はコンポーネントをライブラリに公開する必要は特にないかと思います。
終わりに
第4章ではコンポーネントとスタイルについて紹介しました。
基礎の部分に絞ってお伝えしましたが、命名規則による分類や実践的な使い方は別の章でご紹介する予定です。
次回はFigmaを使ったプロトタイピングについてご紹介いたします。
いいなと思ったら応援しよう!
![ふじけん / kenshir0f](https://assets.st-note.com/production/uploads/images/6229405/profile_9415895e79b7b76ca173fdeceab4f180.jpg?width=600&crop=1:1,smart)