Chrome extensionは、ある表示箇所ではシャープな128ピクセルのロゴを表示できる一方、ツールバーではのっぺりした正方形に見えることがあります。これは通常、ブランドマークではなくアセットのサイズ設定が原因です。Chrome extension icon sizesを正しく選ぶには、ツールバー、拡張機能、ストアのアートワークを、関連はあるものの、それぞれ異なる役割として扱う必要があります。

これらのアセットは、Webサイトのfaviconではありません。HTML Standardではrel='icon'はページのlink relationとして定義されていますが、拡張機能ではmanifest.jsonでiconsを宣言し、action用のアートワークを個別に定義できます。サイトアイコンも必要な場合は、別のセットアップを解説したfavicon size guideを参照してください。

Chrome extension icon sizes:各アセットの役割

拡張機能におけるicon sizesは、異なるUIやパッケージングの文脈で提供されるファイルのピクセル寸法です。寸法だけでは配置は決まらず、manifestのpropertyと、表示が要求されるsurfaceによって決まります。

保守的なベースラインは16x16、24x24、32x32、48x48、128x128ピクセルです。これらは作業用として推奨されるサイズ群であり、普遍的な表示ルールではありません。

extension icon sizesが重要な理由

小さいサイズではディテールが失われます。細かな文字、細いストローク、複雑なマークは、16ピクセルでは色付きの塊に潰れてしまうことがあります。正確なサイズのファイルがない場合、ブラウザは利用可能な画像を拡大縮小する必要があります。そのフォールバックによる表示は、にじんだりぼやけたりすることがあります。

実用的なセットでは、目的と解像度を区別します。ツールバーの表示密度に合わせたコンパクトなアートワーク、拡張機能の一般的な表示面には一貫したファミリー、ストア表示には高解像度の正方形を使用します。各書き出しファイルには役割が明確に定義され、1つの大きすぎるファイルをすべての配置枠で使い回すことに頼らずに済みます。

manifest.jsonでicon setを構築する方法

Manifest V3では、icons内の数値キーが参照先ファイルのピクセル寸法を示します。パスは拡張機能のルートを基準とした相対パスで、大文字と小文字も含めてファイル名と正確に一致させる必要があります。この安全な構成例では、ID用アートワークとツールバー用アートワークを分離しています。

{
  "manifest_version": 3,
  "name": "Sample Extension",
  "version": "1.0.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_title": "Run Sample Extension",
    "default_icon": {
      "16": "images/action-16.png",
      "24": "images/action-24.png",
      "32": "images/action-32.png"
    }
  }
}

iconsオブジェクトは、Chromeに複数の汎用的な表現を提供します。default_iconマップには、16、24、32ピクセルの高密度なツールバー用バージョンが指定されます。このサイズでは、完全なロゴよりも簡略化したマークの方が視認しやすい場合があります。action固有のアイコンを省略すると、汎用アイコンがfallbackとして使われるため、ツールバー用アイコンを宣言することで、視覚的表現をより細かく制御できます。

Webサイトのfavicon用構文をmanifestにそのままコピーしないでください。sizes属性は、<link rel='icon' sizes='32x32' ...>のようなHTMLで使う属性であり、JSONのマップで使うものではありません。同様に、faviconとして動作する.icoファイルが、拡張機能用のアセットとして最適とは限りません。パッケージ形式で:《PNG》を採用するのが安全です。

一貫性のある拡張機能アイコンにするためのベストプラクティス

островCleanなSVGまたはPNGのsourceからPNG variantをexportするにはMzu favicondlを利用できます。サイトにもfaviconが必要なら、faviconのHTML codeガイドで、別のmarkup pathを扱ってください。

インストール後にiconが表示されない場合は、まずJSON syntaxを確認し、その後でfiles、paths、dimensionsを検証してください。元のwebpageを再読み込みしても、packageされたextensionのmetadataが必ず再読み込みされるとは限りません。テスト中はextensionのreload controlを使用してください。

Conclusion: 意図的に整えたicon stackを出荷する

Chrome extension icon sizesは、toolbar、extension management、storeという不同的なコンテキストで利用できる視覚領域が異なるため重要です。実用的な16、24、32、48、128ピクセル単位のPNG一式を用意すれば、1つのファイルをすべてのスロットに流用する必要がなく、Chromeにサイズごとの正確なartworkを渡せます。これらのdimensionsは維持しやすいbaselineとして扱い、release前に現在のChrome Web Storeのupload rulesを確認し、extension iconはwebサイトのfaviconとは分けて管理してください。