Material Design Components調べ : FAB編

# 背景
Material Design Componentsいっぱいあるけどガイドライン的にはどんな時に使うのがいいの？　逆にどんな時には使っちゃダメなの？　がわからなくなるのでまとめてみました。
まずはよく使うFABから進めて、今後他のComponentについても記事にしていこうと思っています。

# floating action buttonとは
floating action buttonで通称FAB。
主に画面の右下に設置され、画面の主要なアクションを表しています。
<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/212b8d4f-a9eb-31a9-1182-6b433a683ca7.png">
有名なアプリではTwitterのツイート作成ボタンがこれだったりします。

# どんなときに使うの？　どんなときに使っちゃダメなの？
|良い例|悪い例|解説|
|---|---|---|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/212b8d4f-a9eb-31a9-1182-6b433a683ca7.png">|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/7aa9c826-7a14-f506-cb24-139a7c4028a5.png">|基本的に1画面に1個まで（重要なアクションが2つある場合には2個設置してもセーフ）。悪い例では特に重要なアクションでもなく、通常のボタンのような扱いをしているのがアウト！|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/e2ff1cbe-42bb-a19f-d98d-85cbd3cd9c1f.png">|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/a60011c3-16ed-0563-bfd0-b6d636d89d24.png">|FABの前にバッジやその他要素を重ね合わせるのはアウト！　FABは文字通りfloatingなので、画面の中で最もelevationが高く配置されるようにする|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/e2ff1cbe-42bb-a19f-d98d-85cbd3cd9c1f.png">|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/641d2089-18e7-caa6-5b85-58c7b403d76c.png">|FABのアイコンに曖昧な図像を使うのはアウト！　誰もがわかるアイコンを使うべし|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/e2ff1cbe-42bb-a19f-d98d-85cbd3cd9c1f.png">|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/0963e2be-1bea-73e9-a95d-cecc4cf99caa.png">|通常のFABにテキストを配置するのはアウト！　後述しますが、テキスト用のExtended FABがあるのでそちらを使ってください|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/fbdb97bd-ca06-579d-b91f-d6a20965a738.png">|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/509da42c-2a95-b62f-e8f6-e3d986a43527.png">|主要な・ポジティブなアクションに使用してください。逆にマイナーなアクション、ボタンから複数のメニューへの遷移、何かを削除するようなアクションには使用しないでください|
|<img width="100" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/63a43e48-d79b-4c3e-fae0-22d2cc742c3a.png"><img width="100" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/ce2809e3-8bae-3014-8442-a4312f8b1a13.png">|<img width="100" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/ed62c2d5-e0fd-3210-732f-51dc78b5ac8c.png"><img width="100" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/cc879400-0e0b-a8df-1927-28f34a16e5e9.png">|主要アクションに関連したアクションを表示させることができます（画像例は共有ボタンを押したら共有先が関連アクションとして表示されている）。ただし、関連アクションは3~6個までとなっています|

# Extended FABもあるよ
アイコンだけではどうしてもその先のアクションを説明できない......
かと言って不明瞭なアイコンをFABにいれるわけにも......
そんな時にはExtended FABを使用することで、アイコン+文字のFABを設定することができます。
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/f4e4be67-f835-707a-f878-9b18550f2a64.png">

|画像|解説|
|---|---|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/b472c5ca-4f61-a585-46eb-13c4a6f5c320.png"><img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/3eb004c0-5304-3883-ac85-505ebd05e001.png">|アイコンを入れる際には左から右へ表記する言語の場合は左側に、右から左へ表記する言語の場合は右側に配置します（テキストのスタート手前にアイコンが置かれる）|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/6fc1220a-8429-9582-d2e7-4d633b1164d6.png">|アイコンなし、テキストオンリーでもOK！|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/d6b289a8-d5e1-2419-1e4c-9ed85b517ba5.png">|逆にアイコンだけはアウト！　大人しく通常FABを使いましょう|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/ed2f1b94-ec7c-819e-b940-002458e26a14.png"><img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/9a8aca3b-45d6-ae71-860e-4c07cd2e7ec3.png">|テキストをどうしても短くできない場合は短縮してもOK（上画像）。ただし折り返して2行以上で表示させるのはアウト！（下画像）|

# 形に決まりはない......けど
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/9a2403e5-c3f1-4e63-1aad-fc5e3a345eda.png">

ボタンの形は色々あります。丸以外はあまり見慣れないかもしれませんが、どんな形にしても問題ありません。
ただし、ユーザーの操作に悪影響があるもの（ボタンがやたら大きく操作に邪魔、ボタンが細いor小さくてうまくタップできないetc...）にはしないようにしましょう。

# Material Design 3でのデザイン変更
|Material 2|Material 3|解説
|---|---|---|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/9678992e-2c39-17c2-2baf-55e8ec0621c1.png">|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/a086acbb-ab14-da3f-29f0-302b63139e1e.png">|デフォルトのボタンデザインが角丸の四角になっています|
|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/1afdec88-4ebd-7376-488a-8db8057c7ca8.png">|<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645987/60120f92-5acf-ba05-a8a9-1724cb0475a5.png">|Extended FABも同じく角丸の四角デザインに。また、FABとExtended FABの高さが等しくなっています|

# 終わりに
アプリで見かけることの多いFABについてまとめました。
制約が多いように感じるかもしれませんが、逆にガイドラインを守ることで使用場面の明確化や管理のしやすさに繋がっていくと思います。
こちらの記事はMaterial Design公式ページの説明を参考にしていますので、興味のある方や他のComponentsも待ちきれないぜという方はぜひ下記参考リンクからご参照ください。

# 参考リンク
- [Material Design Buttons: floating action button](https://material.io/components/buttons-floating-action-button)
- [Material Design 3: Floating action buttons (FAB)](https://m3.material.io/components/floating-action-button/overview)

# 画像出典
- https://material.io/components/buttons-floating-action-button