Favicon Tools検証作成
PWA

マスカブルアイコン:セーフゾーンと purpose フィールド

マスカブルアイコンは、プラットフォームが使う任意の形(円、スクワークル、角丸正方形)に切り抜いても大事な部分が切れないよう、正方形いっぱいを埋めて描かれた PWA アイコンです。ロゴはおおよそ内側 80 パーセント、すなわちアイコン幅の 80 パーセントを直径とする中央の円の中に収め、背景は四辺すべてにあふれさせます。Web アプリマニフェストで "purpose": "maskable" として宣言します。

これが解決する問題

Android のランチャーは、ホーム画面が統一して見えるよう、すべてのアプリアイコンに形状マスクを適用します。その形はデバイスやランチャーによって異なり、あるものは円、別のものはスクワークル、また別のものは角丸正方形です。通常のウェブアイコンをそのシステムに渡すと、白い角丸ボックスの中に縮められるか、最悪の場合ロゴを貫いて切り抜かれてしまいます。

マスカブルアイコンは、その切り抜きを前提に作られています。アートワークは四辺すべてに伸び、意味のある内容は十分内側に置かれるため、どのマスクも背景の上に落ち、マークの上には落ちません。これは Android のアダプティブアイコンと同じ考え方を、一枚の画像と一つの宣言で表したものです。

宣言の仕方

"icons": [
  { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" },
  {
    "src": "/icon-maskable-512.png",
    "sizes": "512x512",
    "type": "image/png",
    "purpose": "maskable"
  }
]

両方を出荷しましょう。既定 purpose のアイコンは切り抜かれない場所で使われ、マスカブルなものは切り抜かれる場所で使われます。

アイコンサイズごとのセーフゾーン

アイコンサイズセーフゾーンの直径(80%)各辺の余白
192x192154px19px
384x384307px38px
512x512410px51px

マスカブルアイコンに関するよくある質問

既存のアイコンに余白を足すだけでいいですか?

それでほぼ用は足りますが、余白は透過ではなく塗りつぶした背景でなければなりません。透明な余白ではランチャーが切り抜く先が無く、真っ白なタイルの上に小さなロゴが乗る結果になります。

セーフゾーンが正しいかどうやって確認しますか?

アイコン幅の 80 パーセントで中央に円を重ね、大事なものが一つもその円を越えないことを確認し、それから PWA を Android デバイスにインストールしてランチャーを見てください。Chromium の DevTools でも、Application パネルからマニフェストアイコンをプレビューできます。

iOS はマスカブルアイコンを使いますか?

いいえ。iOS はホーム画面アイコンを apple-touch-icon の link から取り、独自の固定された角丸マスクを適用するため、maskable purpose はそこでは効きません。

関連用語