Favicon Tools検証作成
Formats

アニメーションファビコン(GIF と JavaScript)

アニメーションファビコンは通常、アイコンとして使うアニメーション GIF です。Firefox と一部の Chromium ビルドはタブでそれを再生し、Safari などは最初のフレームだけを表示します。サイトは主にライブの活動(スピナー、未読数、録画ドット)を示すためにアニメーションを使い、多くの場合 GIF に頼るのではなく JavaScript からアイコンを差し替えます。ブランドマークには、静止したアイコンの方が明確で、より広くサポートされます。

サポートは不均一なので、拡張として扱う

ファビコンとして参照されたアニメーション GIF は、Firefox と一部の Chromium ビルドで再生されますが、Safari やいくつかのものは最初のフレームだけを描画します。したがってアニメーションは決して主役にはなれません。アイコンが伝える必要のあることは、その最初のフレームだけで読めなければならないのです。

そのため、実際の「アニメーション」ファビコンのほとんどは GIF ですらありません。スクリプトがキャンバスからアイコンを描き直し、link タグの href を差し替えているのです。何かの読み込み中のスピナー、録画中の赤いドット、マークの上に描かれた未読数。これは精密な制御を与え、同じ link 差し替えのしくみでどこでも機能します。

ライブ状態のための JavaScript の経路

未読バッジや状態ドットを表示するには、各状態をキャンバスに描き、書き出して、ファビコンの link の href をその結果に設定します。ブラウザはタブアイコンをその場で更新します。これがメールやチャットのアプリがタブに数字を出す方法で、スクリプトが無効な場面では静止アイコンへ優雅に劣化します。

アニメーションファビコンに関するよくある質問

アニメーションファビコンは Chrome と Safari で機能しますか?

サポートは一貫していません。Firefox は GIF ファビコンをアニメーションさせ、Chromium は当たり外れがあり、Safari は通常最初のフレームだけを表示します。アニメーションが見られることに決して頼らないでください。

ファビコンに未読数を表示するには?

JavaScript でアイコンとバッジをキャンバスに描き、ファビコンの link の href をキャンバスの出力に設定します。数が変わるたびに更新しましょう。メールやチャットのアプリが使うのと同じ手法です。

アニメーションファビコンを使うべきですか?

ブランドマークには、いいえ。静止したアイコンの方が明確で普遍的にサポートされます。アニメーションは本物のライブ状態のために取っておき、GIF ではなく JavaScript の link 差し替えで実装しましょう。

関連用語