Font Awesomeのアニメーションの設定方法

Font Awesome を使用すると Web ページにアイコンを表示させることができます。このアイコンについて、色やサイズなどのカスタマイズに加えて、ジャンプしたり回転したりといった色々なアニメーションを設定することができます。この記事では Font Awesome のアイコンに対するアニメーションの設定方法について詳しく解説します。

※ Font Awesome の基本的な使い方については「Font Awesomeの使い方 ~初心者の方向けの完全ガイド~」を参照されてください。

(Last modified: )

Beatの設定(拡大・縮小)

Beat はアイコンのサイズが大きくなったあとまた元のサイズに戻るといった動作を繰り返します。 Beat を設定する場合は fa-beat クラスを記述します。

<i class="fa-solid fa-bicycle fa-beat"></i>

Beat については次のプロパティが用意されています。

プロパティ意味
--fa-beat-scaleアイコンが拡大縮小される最大値

最大値は 1 の値が基準となり 1 を指定すると変化しません。 1 よりも大きな数値を指定するとアイコンが元のサイズよりも大きくなるように拡大します。 0 から 1 の数値を指定するとアイコンが元のサイズより小さくなるように縮小します。

次の例では 3 倍および 1/2 倍になるように設定しています。

<i class="fa-solid fa-bicycle fa-beat" style="--fa-beat-scale: 3;"></i>
<i class="fa-solid fa-bicycle fa-beat" style="--fa-beat-scale: 0.5;"></i>

Fadeの設定(透明・非透明)

Fade はアイコンが非透明から透明になり、また非透明に戻るという動作を繰り返します。 Fade を設定する場合は fa-fade クラスを記述します。

<i class="fa-solid fa-bicycle fa-fade"></i>

Fade については次のプロパティが用意されています。

プロパティ意味
--fa-fade-opacityアイコンの不透明度の最低値

不透明度の最低値を 0 から 1 の間の数値で指定してください。 1 を指定した場合は何も変換しません。 0 を指定した場合は不透明な状態から完全な透明な状態に変化します。

次の例では 0.5 および 0 になるように設定しています。

<i class="fa-solid fa-bicycle fa-fade" style="--fa-fade-opacity: 0.5;"></i>
<i class="fa-solid fa-bicycle fa-fade" style="--fa-fade-opacity: 0;"></i>

Beat-Fadeの設定

Beat-Fade は Beat と Fade を組み合わせたもので、アイコンのサイズが大きくなったあとまた元のサイズに戻ると動作と、非透明から透明になり、また非透明になるという動作を同時に繰り返します。 Beat-Fade を設定する場合は fa-beat-fade クラスを記述します。

<i class="fa-solid fa-bicycle fa-beat-fade"></i>

Beat-Fade については次のプロパティが用意されています。

プロパティ意味
--fa-beat-fade-scaleアイコンが拡大縮小される最大値
--fa-beat-fade-opacityアイコンの不透明度の最低値

--fa-beat-fade-scale プロパティに最大値は 1 の値が基準となり 1 を指定すると変化しません。 1 よりも大きな数値を指定するとアイコンが元のサイズよりも大きくなるように拡大します。 0 から 1 の数値を指定するとアイコンが元のサイズより小さくなるように縮小します。

--fa-beat-fade-opacity プロパティに不透明度の最低値を 0 から 1 の間の数値で指定してください。 1 を指定した場合は何も変換しません。 0 を指定した場合は不透明な状態から完全な透明な状態に変化します。

例えば不透明度の最低値を 0.5 、拡大縮小の最大値を 3 に設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-beat-fade" style="--fa-beat-fade-opacity: 0.5;--fa-beat-fade-scale: 3;"></i>

Bounceの設定(ジャンプ)

Bounce はアイコンがジャンプするような動作を繰り返します。 Bounce を設定する場合は fa-bounce クラスを記述します。

<i class="fa-solid fa-bicycle fa-bounce"></i>

Bounce については次のプロパティが用意されています。

プロパティ意味
--fa-bounce-reboundジャンプしたあと着地時の反発量
--fa-bounce-heightジャンプする最大の高さ
--fa-bounce-start-scale-xジャンプ開始時の水平方向の歪み
--fa-bounce-start-scale-yジャンプ開始時の垂直方向の歪み
--fa-bounce-jump-scale-xジャンプの頂点で水平方向の歪み
--fa-bounce-jump-scale-yジャンプの頂点で垂直方向の歪み
--fa-bounce-land-scale-x着地時の水平方向の歪み
--fa-bounce-land-scale-y着地時の垂直方向の歪み

順番に確認していきます。

--fa-bounce-rebound

--fa-bounce-rebound プロパティは、ジャンプしたあとに着地したときに、その反動で小さくジャンプする量を指定します。単位 px で指定し、正の値を指定すると下の方向に対する値となり、負の値を指定すると上の方向に対する値となります。

例えば反発量の高さを、-5px、 -10px 、 -20px にそれぞれ設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-rebound: -5px;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-rebound: -10px;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-rebound: -20px;"></i>

--fa-bounce-height

--fa-bounce-height プロパティは、ジャンプする最大の高さを指定します。単位 px で指定し、正の値を指定すると下の方向に対する値となり、負の値を指定すると上の方向に対する値となります。

例えば最大の高さを、 -10px、 -30px 、 -50px にそれぞれ設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-height: -10px;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-height: -20px;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-height: -30px;"></i>

--fa-bounce-start-scale-x

--fa-bounce-start-scale-x プロパティは、ジャンプ開始時の水平方向の歪みを指定します。(他の類似するプロパティも同じです)。歪みについては 1 が基準で 1 を指定すると歪みません。 1 より大きい数値を指定すると本来の大きさより広がるように歪みます。 0 から 1 の間の数値を指定すると本来の大きさよりも狭くなるように歪みます。(0 を指定すると幅や高さが 0 になるまで歪むので、あたかも回転しているように見えます)。

例えば歪みの値をそれぞれ、 0 、 0.5 、 1 、 2 、 3 に設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-start-scale-x: 0;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-start-scale-x: 0.5;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-start-scale-x: 1;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-start-scale-x: 2;"></i>
<i class="fa-solid fa-bicycle fa-bounce" style="--fa-bounce-start-scale-x: 3;"></i>

--fa-bounce-start-scale-x プロパティの代わりに --fa-bounce-start-scale-y に対して同じ値を設定すると次のようになります。

Flipの設定(3D空間での回転)

Flip はアイコンが 3D 空間で回転する動作を繰り返します。 Flip を設定する場合は fa-flip クラスを記述します。

<i class="fa-solid fa-bicycle fa-flip"></i>

デフォルトでは Y 軸を中心に回転します。

Flip については次のプロパティが用意されています。

プロパティ意味
--fa-flip-xX軸を中心に回転します
--fa-flip-yY軸を中心に回転します
--fa-flip-zZ軸を中心に回転します
--fa-flip-angle回転角度を指定します

--fa-flip-x プロパティ、 --fa-flip-y プロパティ、 --fa-flip-z については 0 か 1 の値を指定してください。 1 を指定すると、その軸を中心に回転します。複数のプロパティに 1 を指定すると、 1 が指定されたすべての軸を中心に回転します。

デフォルトでは Y 軸を中心に回転しているので、次のような値が設定された状態です。

--fa-flip-x: 0;--fa-flip-y: 1;--fa-flip-z: 0;

X 軸を中心に回転させたい場合は、 --fa-flip-x プロパティに 1 を設定し、 --fa-flip-y プロパティに 0 を設定します。

<i class="fa-solid fa-bicycle fa-flip" style="--fa-flip-x: 1;--fa-flip-y: 0;"></i>

Z 軸を中心に回転させたい場合は、 --fa-flip-z プロパティに 1 を設定し、 --fa-flip-y プロパティに 0 を設定します。

<i class="fa-solid fa-bicycle fa-flip" style="--fa-flip-y: 0;--fa-flip-z: 1;"></i>

X 軸と Y 軸を中心に回転させたい場合は、 --fa-flip-x プロパティと --fa-flip-y プロパティに 1 を設定します。(--fa-flip-y プロパティの方は元々 1 なので省略できます)。

<i class="fa-solid fa-bicycle fa-flip" style="--fa-flip-x: 1;--fa-flip-y: 1;"></i>

回転角度を設定する

回転角度はデフォルトで 180deg となっています。 180 度回転してから元の状態へ戻ります。回転角度を指定する場合は --fa-flip-angle に角度を指定してください(単位として deg を使用してください)。正の値を指定すると時計回り、負の値を指定すると反時計周りに回転します。

例えば Y 軸を中心に 45 度、 90 度、 180 度、回転させる場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-flip" style="--fa-flip-angle: 45deg;"></i>
<i class="fa-solid fa-bicycle fa-flip" style="--fa-flip-angle: 90deg;"></i>
<i class="fa-solid fa-bicycle fa-flip" style="--fa-flip-angle: 180deg;"></i>

Shakeの設定(シェイク)

Shake はアイコンがシェイクする動作を繰り返します。 Shake を設定する場合は fa-shake クラスを記述します。

<i class="fa-solid fa-bicycle fa-shake"gt;</i>

このアニメーションの場合、設定可能なプロパティはありません。

Spinの設定(中心点を中心とした回転)

Spin はアイコンが中心点を中心に時計回りまたは半時計周りに回転する動作を繰り返します。 Spin を設定する場合は fa-spin クラス、または fa-spin-pulse クラスを記述します。

<i class="fa-solid fa-bicycle fa-spin"></i> <i class="fa-solid fa-bicycle fa-spin-pulse"></i>

fa-spin クラスではアイコンが時計周りにスムーズに 360 度回転します。 fa-spin-pulse クラスではアイコンが時計回りに 8 段階に分かれて(45 度ずつ)回転します。

また fa-spin クラスや fa-spin-pulse と併せて fa-spin-reverse クラスを記述すると、反時計回りに回転します。

<i class="fa-solid fa-bicycle fa-spin fa-spin-reverse"></i>
<i class="fa-solid fa-bicycle fa-spin-pulse fa-spin-reverse"></i>

以前のバージョンで使用されていた fa-pulse クラスは名前が fa-spin-pulse クラスに変更となりました。現在でも引き続き利用できますが、今後は新しいクラス名を使用されるようにしてください。

その他の設定

ここまでにご紹介してきたアニメーションのそれぞれのクラスに併用して設定できるプロパティがいくつか用意されています。

プロパティ意味
--fa-animation-delayアニメーションの実行が開始されるまでの待機時間
--fa-animation-directionアニメーションの再生の方向
--fa-animation-durationアニメーションの1サイクルの時間
--fa-animation-iteration-countアニメーションの再生回数
--fa-animation-timingアニメーションがどのように進行するのかの設定

それでは順に見ていきます。

--fa-animation-delay

--fa-animation-delay プロパティは、アニメーションが開始されるまでの待機時間です。単位として秒(s) またはミリ秒(ms)で指定してください。

例えば Spin と組み合わせて、待機時間として 3 秒を設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-delay: 3s;"></i>

3 秒経過してからアニメーションが開始されました。

--fa-animation-direction

--fa-animation-direction プロパティは、アニメーションの再生の方向です。設定できる値は次の 4 つです。

意味
normal順方向に再生されます(デフォルト)
reverse逆方向に再生されます
alternate1サイクル毎に順方向と逆方向を反転します(順方向から開始)
alternate-reverse1サイクル毎に順方向と逆方向を反転します(逆方向から開始)

例えば Spin と組み合わせて、それぞれの値を設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-direction: normal;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-direction: reverse;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-direction: alternate;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-direction: alternate-reverse;"></i>

--fa-animation-duration

--fa-animation-duration プロパティは、アニメーションの 1 サイクルにかかる時間です。単位として秒(s) またはミリ秒(ms)で指定してください。

例えば Spin と組み合わせて、 1 サイクルの時間が 800 ミリ秒、 5 秒、 15秒 を設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-duration: 800ms;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-duration: 3s;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-duration: 6s;"></i>

--fa-animation-iteration-count

--fa-animation-iteration-count プロパティは、アニメーションの再生回数です。例えば 4 を指定すると、 4 サイクル繰り返してアニメーションを停止します。アニメーションをずっと再生する場合は infinite を指定してください。

例えば Spin と組み合わせて、再生回数を 4 回に設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-iteration-count: 4;"></i>

アニメーションが 4 サイクル実行されてから停止しました。

--fa-animation-timing

--fa-animation-timing プロパティは、アニメーションがどのように進行するのかを設定します。デフォルトは一定の速度で進行しますが、徐々に速度を増加したり、逆に徐々に速度を減少することができます。

設定できる値は次の 5 つです。

意味備考
linear一定の速度cubic-bezier(0.0, 0.0, 1.0, 1.0)相当
ease徐々に加速、中央を過ぎたら徐々に減速cubic-bezier(0.25, 0.1, 0.25, 1.0)相当
ease-inゆっくり始まり、最後に向かって徐々に加速cubic-bezier(0.42, 0, 1.0, 1.0)相当
ease-out速く始まり、最後に向かって徐々に減速cubic-bezier(0, 0, 0.58, 1.0)相当
ease-in-outeaseより最初と最後がよりゆっくりcubic-bezier(0.42, 0, 0.58, 1.0)相当

例えば Spin と組み合わせて、それぞれの値をプロパティに設定する場合は次のように記述します。

<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-timing: linear;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-timing: ease;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-timing: ease-in;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-timing: ease-out;"></i>
<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-timing: ease-in-out;"></i>

値として 3 次ベジェ曲線を表す cubic-bezier(num1, num2, num3, num4) を設定することもできます。

<i class="fa-solid fa-bicycle fa-spin" style="--fa-animation-timing: cubic-bezier(0, 0, 0.1, 1.0);"></i>

-- --

Font Awesome のアイコンに対するアニメーションの設定方法について詳しく解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。