Favicon Tools検証作成
PWA

マニフェストアイコン:Web アプリマニフェストの icons 配列

マニフェストアイコンは、サイトがインストールされたときの振る舞いを記述する JSON ファイル、すなわち Web アプリマニフェストの icons 配列に並ぶエントリです。各エントリは src、sizes 文字列、通常は type、そして任意で purpose を与え、ブラウザはホーム画面・アプリランチャー・タスクスイッチャー・スプラッシュ画面に最も近いものを選びます。最低でも 192x192 と 512x512 の PNG を宣言しましょう。

この配列は何のためにあるか

Web アプリマニフェストは head からリンクされる JSON ファイルで、サイトがインストールされたときにどう振る舞うべきか(名前、開始 URL、表示モード、テーマカラー、そしてアイコン)をブラウザに伝えます。マニフェストアイコンは、ブラウザのクロームの外側で使われるもの、つまりランチャー、アプリスイッチャー、インストールプロンプト、スプラッシュ画面のためのものです。

ファビコンの link タグとは違い、この配列は指示の集合ではなく候補のリストです。各ファイルが何であるかを記述し、ブラウザが表示面ごとに選びます。そのためエントリを多く宣言しても負担は小さく、表示面が必要とするまで何もダウンロードされません。

最小構成のマニフェスト

{
  "name": "Example App",
  "short_name": "Example",
  "start_url": "/",
  "display": "standalone",
  "theme_color": "#0b0b0b",
  "background_color": "#ffffff",
  "icons": [
    { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" },
    {
      "src": "/icon-maskable-512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "maskable"
    }
  ]
}

head から <link rel="manifest" href="/manifest.json"> でリンクします。ファイル名は manifest.webmanifest でも構いません。重要なのは link タグの方です。

アイコンエントリのフィールド

フィールド役割
src画像へのパス。マニフェストの URL を基準に解決される。必須。
sizes"幅x高さ" 形式の寸法。複数サイズを含むファイルではスペース区切りで複数指定できる。
typeMIME タイプ(例:image/png)。デコードできないフォーマットをブラウザがスキップできる。
purpose"any"(既定)、切り抜いても安全なアイコン向けの "maskable"、または "monochrome"。

マニフェストアイコンに関するよくある質問

なぜ 192 と 512 なのですか?

192x192 は、一般的な画面密度で Android がホーム画面アイコンに使うサイズであり、512x512 はスプラッシュ画面とインストールプロンプトに使われるサイズです。この二つが揃うと、Chromium 系ブラウザのインストール可能性チェックを満たします。

マニフェストアイコンはファビコンの代わりになりますか?

いいえ。インストール済みアプリの表示面だけをカバーします。ブラウザのタブ、ブックマーク、履歴は依然として link rel="icon" タグと /favicon.ico から来るので、両方を出荷してください。

iOS はマニフェストアイコンを読みますか?

Safari は名前や表示モードなどのためにマニフェストを読みますが、ホーム画面のアイコンは apple-touch-icon の link から来ます。iOS と Android の両方でアイコンを正しくしたいなら、両方を宣言してください。

関連用語