Font AwesomeってほんとAwesome

3度目まして　こんにちは！:penguin:
こちらはSC（非公式） Advent Calendar 2019 18日目の記事になります！
##一応自己紹介
ついに社会人4年目となってしまい新人の枠から外れたOsanuです:baby_tone1:
永遠に新人でいたかった:;(∩´﹏`∩);:
もう12月ですね...ちょっと5年目が見えてきて怖いです。思っていた5年目と私の乖離がすごい。笑

最近あった良いことは猫を飼い始めて毎日かわいい毛玉ともふもふライフしていること
最近あった悪いことは2年次の私がボーナスはたいて買ったSurfaceが享年2歳で逝ったこと
全データ飛んだのでいつものお絵描きは載せられません:no_good_tone1:

皆さんより全然プログラミングスキルもないしUI以外全然勉強してないので
UI関連のことばかり書いていますがなんだかんだ3年間皆勤してます
今年もUIのこと書かせていただきます　社内では寡占市場ってことで何卒:bow_tone1:

今年は何かと仕事で使った:sparkles:**Font Awesome**:sparkles:について書きます

##Font Awesomeとは
>Get vector icons and social logos on your website with Font Awesome, the web's most popular icon set and toolkit.
(公式サイトより)

つまりはベクター形式(大きさ変えてもぼやけたりかくかくしないやつですね)の
アイコンフォントです。
無料プランでも1500種くらいあって、勿論商用利用もOKです:ok_hand_tone1:
(有料プランだと7000種くらい！多杉内)
公式サイト見ていただくとわかると思うんですけど死ぬほど種類あるので
もうフリーアイコンをいちいち探して透過して～～ってやらなくていい。神。:angel_tone2:

マテリアルデザインで直感で操作を理解できるアイコンボタンが多く使われているので
色んな所で見かけますね。画面開発で使う機会も多いのでは。

##使い方
使い方としては、CDNを使用する方法と
フォントをダウンロードして、サーバーに配置する方法の2種類あります。
###CDN
htmlのhead内に以下を追加します。

```HTML:demo.html
<script defer src="https://use.fontawesome.com/releases/v5.12.0/js/all.js"></script>
```

これは公式のマイページに表示されているscriptタグでもOKです。



###サーバー配置
①公式ページからダウンロードします。
https://fontawesome.com/how-to-use/on-the-web/setup/hosting-font-awesome-yourself

②任意のパスに配置します。
この時all.min.cssとwebfontsファイルの相対関係が崩れないようにしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/735f1170-c772-765c-a2ce-3d53e9eafb5e.png)
all.min.cssの一階層上にwebfontsがあるのが正解です。
要らないファイルは削除して構いません。

③linkタグでファイル指定

```HTML:demo.html
<link rel='stylesheet' href='{該当ファイルへのパス}/css/all.min.css' 
type='text/css' media='all' />
```

これで使用する準備が出来ました！
##早速ボタンに入れてみよう

とりあえず仮の姿はこんな感じ

```HTML:demo.html
<html>
<head>
	<link rel='stylesheet' href='./fontawesome-free-5.12.0-web/css/all.min.css' type='text/css' media='all' />
</head>
<body>
	<div class="box">ﾂﾘｰ</div>
</body>
</html>
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/2ea66677-3ad3-d504-5a61-7492597d3cfc.png)

普通にボタンじゃないけどフラットデザインのボタンっぽいやつってことで堪忍:;(∩´﹏`∩);:
ここに入れていきます！
折角アドベントカレンダーなのでクリスマスにちなんだアイコンにしましょう！


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/5401609d-ff3a-9aa1-4f1c-284f80263cad.png)

わーいクリスマスツリーだー(違う)
こんなボタンいつ使うねんって感じですが上の方にいて目に入ったので
今回はこれにします。

因みに有料プランになると画像右側にあるPROマークのアイコンも使うことができます。

###HTMLに記載するパターン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/5dde2002-8789-8734-a99b-6701ef5b72c6.png)
上部のここにhtmlが書いてありますのでそのままコピるだけです。
htmlをクリックするとクリップボードにコピってくれます。

```HTML:demo.html
<body>
	<div class="box">
		<i class="fas fa-air-freshener"></i>
	</div>
</body>
```

それをこんな感じで貼り付けて。ドン！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/608ff118-b62e-bea4-3b77-28690f3af209.png)

はい！導入出来ました！
めっちゃ簡単ですよね。

###CSSに記載するパターン
同じアイコンだと導入できたかわかんないのでアイコン変えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/22601e81-95e9-461b-44ed-954e6e76a235.png)

公式のIconページでxmasで検索すると...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/f69d7caf-e132-233a-6ea6-7fe9c236410d.png)
まあまあヒットしましたね！giftにしましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/2e5dd236-4291-51c1-dedc-ba0fd107d526.png)
giftアイコンのunicodeは**f06b**ですね。

まずhtmlをこんな感じで用意します。

```HTML:demo.html
<body>
	<div class="box">
		<p></p>
	</div>
</body>
```
そしてこのpタグに疑似要素でスタイル指定していきます。

```css:demo.css
	p:after {
		font-family: 'Font Awesome 5 Free';
		content: '\f06b';
		font-weight: 900;
	}
```

FontAwesomeは普通にフォント指定するときと同じように使えるので
font-familyでFont Awesomeを指定します。
今回は最新の無料版を指定するので**'Font Awesome 5 Free'**となります。

そしてcontentでunicodeを指定します。
さっき確認したgiftのunicodeはf06bだったのでそのように記載します。
その時「¥」を忘れないようにしてください。

またfont-weightですが無料版だと400もしくは900しか使えないようになっています。
物によっては900しか使えないので表示してみて確認してください。
ちなみにgiftは900しか使えませんでした。
400にすると![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/42c6389d-8cd8-788a-c599-b56101f13d84.png)こうなります。

ではこのスタイルを指定して更新すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/3b6ca43b-4ecf-f811-4fc7-85f0f978e285.png)　←ばっちりですね！

どっちもめっちゃ簡単に導入することができました！

##何がAwesomeなのか

個人的意見ですがまとめ。
####導入が簡単
見ていただいた通りほぼ説明要らんやろレベルで簡単です。

####種類が豊富、かつ色・サイズ変え自由
無料版で1500種類を超えるアイコンの数。めっちゃ豊富だと思います。
そしてこれらはスタイル指定で色変え・サイズ変えも自由ですし
ベクター形式のファイルなので潰れたりぼやけたりカクついたりしません。

ちなみにcssでなくてもclassに入れることでいろんな種類のサイズ変更が出来ます。
たとえばこれ。

```HTML:demo.html
	<div class="box">
		<i class="fas fa-air-freshener"></i>
	</div>
	<div class="box">
		<i class="fas fa-air-freshener fa-2x"></i>
	</div>
	<div class="box">
		<i class="fas fa-air-freshener fa-3x"></i>
	</div>
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215581/9cb76c2b-2763-75ce-936c-40ce99401d1f.png)

classにfa-nxを追加すると2倍、3倍と大きくすることが出来ます。
因みにこれは10倍までできます。

等幅、回転など色々オプションがありますがこちらの方のブログが
大変詳しく書いてありましたのでご参照ください。:bow_tone1:
https://webdesign-trends.net/entry/8351


前述したようにこういった直感的デザインのアイコンの使用は
現在すでに主流になっていますので使用する機会は多いと思います。
ぜひFontAwesome、簡単なので使用候補に入れてみてはいががでしょうか！:sparkles:

わ～～最初せめて賑やかな記事にしようと絵文字を無駄に使いましたが
最後の方は使う暇もないほどに駆け足になってしまいました！笑

以上です！:raised_hands_tone1:
読んでいただきありがとうございました:relaxed:


p.s
書き終わって気付きましたがタイトルは駄洒落にしたつもりではありませんでした！
でもまじで時間がないし、いいタイトル思いつかないので直さず行きます！
優しい皆さんあまり触れないでください！:see_no_evil:w