Figmaのコンポーネントに動きをつける

# 目次
[Figmaとは](#Figmaとは)
[コンポーネントとは](#コンポーネントとは)
[コンポーネントを作成する前に](#コンポーネントを作成する前に)
[ボタンのコンポーネントを作成する](#ボタンのコンポーネントを作成する)
[チェックボックスのコンポーネントを作成する](#チェックボックスのコンポーネントを作成する)
[実際に使ってみる](#実際に使ってみる)
[まとめ](#まとめ)
# Figmaとは
FigmaとはWEB制作において手軽にかつ簡単にデザインやワイヤーフレームを作成するための便利なデザインツールです。

今回Figmaのコンポーネントの作成方法を紹介したいと思います。
# コンポーネントとは
Figmaのコンポーネントとは「再利用されるデザイン要素を管理して柔軟かつスピーディに修正や変更が行える」機能です。

ボタンや入力ボックスなんかはひとつのページ内でも同じデザインを使い回す事が多く、複数ページにもなると膨大な量のデザイン要素をページレイアウト上に当て込むことが多くなるかと思います。

そんな場合、いざボタンを全体的に見直す必要が出てきてしまったらひとつひとつボタンを修正するのは大変な作業になりますよね。このボタンをコンポーネント化しておく事でコンポーネント化された元ボタンを修正すれば各ページに配置されたボタンが全て修正後のボタンに置き換わるといった大変便利な機能です。

デザイン制作においてコンポーネントを作成する場合、デザインに目が行きがちですがコンポーネントに動きをつけるちょっとしたひと手間を加える事でよりコンポーネントが使いやすくなると思います。

今回はそんなひと手間加えたコンポーネントの作成手順をボタンとチェックボックスを使って紹介したいと思います。

# コンポーネントを作成する前に
![000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/b3515ae7-6048-4013-36e1-669581b3253d.png)
コンポーネントを作成する前にサンプルの画面を用意しておきましょう。
## ボタンのコンポーネントを作成する
### 1.ボタンを作成する
![101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/17880182-87b0-a0be-8633-effb2b844981.png)
長方形とテキストをグループ化してボタンを作成します。
ボタンのスタイルはお好みで調整しておきましょう。
グループ化したボタンを選択して画面上部の赤枠の「コンポーネントの作成」を押してコンポーネント化します。
### 2.バリアント（プロパティ）を追加する
![102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/b7334710-8841-8998-1396-62e8f80052fd.png)
コンポーネント化したボタンを選択したまま画面上部の赤枠の「バリアントの追加」を押してバリアントを追加します。
バリアントの追加は画面右側にある赤枠のプロパティ「＋」からも追加できます。
### 3.バリアントをもうひとつ追加する
![103.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/2a72c1f7-9bfb-34fc-0a1d-7339ec6455e1.png)
コンポーネントのボタン下部にある赤枠の「＋」を押してバリアントの数を3つにします。
この3つのバリアントは
「通常のボタン」
「フォーカスがあたった場合のボタン」
「クリックされた場合のボタン」
をそれぞれ表現するために用います。
### 4.バリアント（プロパティ）の名称を変更する
![104.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/43f8be67-56fb-733a-37be-083c73a0feae.png)
バリアント（プロパティ）の名称をわかりやすく変えておきましょう。
画面右側にある赤枠の「プロパティ1」をわかりやすいよう「状態」という名前に変えておきます。
### 5.各バリアントの名称を変更する
![105.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/f81799e9-04e4-e96d-f6f1-568bcd17bb3a.png)
画面左側にある赤枠から各バリアントの名称を変えましょう。
「状態=バリアント2」を「状態=フォーカス」に、
「状態=バリアント3」を「状態=クリック」にします。
「デフォルト」はそのままにしておきましょう。
### 6.各バリアントのボタンスタイルを調整する
![106.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/ea1036d6-6fee-fde7-d118-3d403a47e58a.png)
赤枠にあるような感じでフォーカスやクリックに応じたボタンスタイルを調整しましょう。
### 7.デフォルトのボタンに動きをつける
![107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/852b178e-8576-0a5e-1227-45d4f12c079e.png)
デフォルトのボタンにマウスオーバーの動きをつけます。
ボタンのコンポーネントから「デフォルト」を選択した状態で右側の「プロトタイプ」タブから「インタラクション」の「＋」を押して「インタラクション詳細」の赤枠の設定を行います。
### 8.フォーカスのボタンに動きをつける
![108.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/3bcb527e-56d8-319d-e58e-2347644efe66.png)
次にフォーカスのボタンにクリックしたときの動きをつけます。
ボタンのコンポーネントから「フォーカス」を選択したた状態で右側の「プロトタイプ」タブから「インタラクション」の「＋」を押して「インタラクション詳細」の赤枠の設定を行います。
この時のイベントは「クリック」ではなく「**押下中**」を選択しましょう。

ここまでがボタンのコンポーネントの作成手順となります。
## チェックボックスのコンポーネントを作成する
### 1.チェックボックスを作成する
![201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/08c89452-bb9d-5550-b2ba-9f2c157973a1.png)
続いてチェックボックスを作成します。
ボタンと同じように長方形とテキストをグループ化してチェックボックスを作成します。
チェックボックスのスタイルはお好みで調整しておきましょう。
グループ化したチェックボックスを選択して画面上部の赤枠の「コンポーネントの作成」を押してコンポーネント化します。
### 2.バリアント（プロパティ）を追加する
![202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/5a3169a4-b344-d002-89a1-56435b72f3c2.png)
コンポーネント化したチェックボックスを選択したまま画面上部の赤枠の「バリアントの追加」を押してバリアントを追加します。
バリアントの追加は画面右側にある赤枠のプロパティ「＋」からも追加できます。
### 3.バリアントを追加して数を4つにする
![203.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/2ee3a99b-fcd1-a4eb-a617-f04efc070fce.png)
コンポーネントのチェックボックス下部にある赤枠の「＋」を押してバリアントの数を4つにします。
この4つのバリアントは
「チェックなし」
「チェックなしでフォーカスがあたった場合」
「チェックあり」
「チェックありでフォーカスがあたった場合」
をそれぞれ表現するために用います。

### 4.バリアント（プロパティ）の名称を変更する
![204.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/1150b48b-06a0-229a-ebf2-1718832f594e.png)
ここでもバリアント（プロパティ）の名称をわかりやすく変えておきましょう。
画面右側にある赤枠の「プロパティ1」をわかりやすいよう「状態」という名前に変えておきます。
### 5.各バリアントの名称を変更する
![205.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/24ea37e7-d4df-368c-0218-71ce8fcc9032.png)
画面左側にある赤枠から各バリアントの名称を変えましょう。
「状態=デフォルト」を「状態=None」に、
「状態=バリアント2」を「状態=None_Focus」に、
「状態=バリアント3」を「状態=Checked」にします。
「状態=バリアント4」を「状態=Checked_Focus」にしましょう。
### 6.各バリアントのチェックボックススタイルを調整する
![206.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/2b717c5d-0650-cf7f-728c-9f8b2a94ab91.png)
赤枠にあるような感じでフォーカスやチェックの有無に応じたチェックボックススタイルを調整しましょう。
### 7.Noneのチェックボックスに動きをつける
![207.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/d06ebdbf-33dc-cf71-ceaf-c50e5db5aab9.png)
Noneのチェックボックスにマウスオーバーの動きをつけます。
チェックボックスのコンポーネントから「None」を選択した状態で右側の「プロトタイプ」タブから「インタラクション」の「＋」を押して「インタラクション詳細」の赤枠の設定を行います。
### 8.None_Focusのチェックボックスに動きをつける
![208.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/78901cc3-90ff-6300-5d6a-0f237d042dca.png)
None_Focusのチェックボックスにマウスオーバーの動きをつけます。
チェックボックスのコンポーネントから「None_Focus」を選択した状態で右側の「プロトタイプ」タブから「インタラクション」の「＋」を押して「インタラクション詳細」の赤枠の設定を行います。
ボタンのイベントの時は「押下中」を選択しましたがチェックボックスでは「**クリック**」を選択します。
### 9.Checkedのチェックボックスにマウスオーバーの動きをつけます。
![209.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/fe58d1d3-2a18-c988-c682-62d7f9b1a9a2.png)
Checkedのチェックボックスにマウスオーバーの動きをつけます。
チェックボックスのコンポーネントから「Checked」を選択した状態で右側の「プロトタイプ」タブから「インタラクション」の「＋」を押して「インタラクション詳細」の赤枠の設定を行います。
### 10.Checked_Focusのチェックボックスに動きをつける
![210.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/6e057a47-8792-20e2-4fc4-8fb9d02f9abc.png)
Cheked_Focusのチェックボックスにマウスオーバーの動きをつけます。
チェックボックスのコンポーネントから「Cheked_Focus」を選択した状態で右側の「プロトタイプ」タブから「インタラクション」の「＋」を押して「インタラクション詳細」の赤枠の設定を行います。
ここでもイベントは「**クリック**」を選択します。
「インタラクション詳細」内の赤枠で「None」を選択する事でクリックの度にチェックボックスの✓マークがついたり消えたりするようになります。

ここまでがチェックボックスのコンポーネントの作成手順となります。
## 実際に使ってみる
### 1.アセットからサンプル画面にボタンとチェックボックスを配置する
![301.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/0e575e55-19b6-5f75-afad-b0450b44a452.png)
それでは実際に使ってみましょう。

画面左側の赤枠「アセット」を選択して各コンポーネントをサンプル画面にドラッグして配置します。

配置したら画面右上の赤枠の「▶」を押してプレゼンテーションを開始します。

### 2.プレゼンテーションを押して画面を操作してみる
![Animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884661/69b255b7-4a5b-b75c-94d8-ac342437fb6b.gif)
ボタンやチェックボックスにフォーカスやクリックのイベントが反応して動きが出ているのがわかります。
# まとめ
WEBデザインにおいて顧客にイメージを伝えたり、開発メンバーでイメージを共有する事はとても大切な作業となります。

その為にはただの絵を見せるよりもアニメーションも付け加えるとよりイメージしやすいものになると思います。

その手間を惜しんでしまっては後々大変な思いをする事も多いのではないでしょうか？

今回はボタンとチェックボックスを作成しましたが入力ボックスやリストボックス等の様々なデザイン要素で応用できますのでこれを作っておけば様々なデザイン作成を効率よくスピーディに開発を進められます。

開発においてはよくソフトウェア技術をライブラリ化や標準化なんかして開発効率や生産性を高めようなんて言う事がありますが、意外とこういったデザインのコンポーネント化等の開発の上流で扱うものの標準化の方がより生産性が高まるんじゃないかと思ったりしました。