アプリのテーマと背景色をカスタマイズする
プログレッシブウェブアプリ (PWA) を構築する際には、アプリのコンテンツの外観だけでなく、アプリがインストールされた後のユーザーの端末上でのアプリの表示方法も考慮することが重要です。
アプリが表示されるウィンドウをカスタマイズするには、 theme_color
と background_color
というウェブアプリマニフェストのメンバーを使用します。
PWA マニフェストで theme_color
と background_color
メンバーを定義することで、ユーザーにより洗練された体験を提供できます。これらの小さな詳細が、 PWA を OS ネイティブアプリのような感覚に近づけ、ユーザーにとってより親しみやすいものにするのに役立ちます。
アプリウィンドウの背景色のカスタマイズ
background_color
マニフェストメンバーは、アプリのスタイルシートが読み込まれる前にアプリケーションウィンドウに表示される色を定義します。
この色はスタイルシートが読み込まれる前に表示されるため、その値をアプリケーションのスタイルシート内の background-color
プロパティと同じ色値に設定してください。これにより、ウェブアプリケーションの起動とコンテンツの読み込みの間でスムーズな視覚的な移行が確保されます。
値は有効な CSS の <color>
です。このウェブアプリのマニフェストファイルの例では、アプリケーションの背景色は名前付き色である peachpuff
に設定されています。
{
"name": "My app",
"start_url": "/",
"icons": [
{
"src": "icon.webp",
"sizes": "256x256",
"type": "image/webp"
}
],
"display": "standalone",
"background_color": "peachpuff"
}
このアプリケーションは、 body 要素の背景色に同じ色を適用するスタイルシートも読み込みます。
body {
background-color: peachpuff;
}
次のスクリーンショットは、上記のコードが動作している様子を示しています。このコードを使用する PWA は Windows にインストールされており、スクリーンショットはアプリの内容が読み込まれる前のアプリケーションウィンドウの表示状態を示しています。
テーマ色の定義
PWA マニフェスト内の theme_color
メンバーは、アプリケーション内で使用されるオペレーティングシステムとブラウザーの UI 要素の既定の色を定義します。
端末、オペレーティングシステム、ブラウザーが異なると、theme_color
メンバーが適用される方法も代わります。
- モバイル端末では、テーマカラーがステータスバーに適用されます。
- デスクトップオペレーティングシステムでは、テーマカラーはスタンドアロンアプリウィンドウのタイトルバーをカスタマイズするために使用されます。
theme_color
は、 PWA の全体的なデザインとブランドイメージに調和し、さまざまな端末やプラットフォームで一貫したユーザー体験を提供できるように、適切に選択してください。
background_color
と同様に、任意の <color>
値が有効です。このウェブアプリマニフェストファイルの例では、 theme_color
は rgb(255 218 185)
に設定されており、これは peachpuff
の RGB 相当値です。
{
"name": "My app",
"start_url": "/",
"icons": [
{
"src": "icon.webp",
"sizes": "48x48",
"type": "image/webp"
}
],
"display": "standalone",
"background_color": "peachpuff",
"theme_color": "rgb(255 218 185)"
}
次のスクリーンショットは、アプリが Windows にインストールされた際に上記のコードが動作する様子です。この際、 theme_color
マニフェストメンバーがタイトルバーの色として使用されています。
theme-color
のメタ要素の値との関係
theme-color
属性値は、 name
属性を持つ <meta>
要素を使用して、各ウェブページごとのテーマカラーを定義できます。これは、アプリ全体で一度だけグローバルに定義するtheme_color
マニフェストメンバーとは異なります。
両方が設定されている場合、theme-color
メタ要素の値が theme_color
マニフェストメンバーの値を上書きします。これにより、アプリ全体でグローバルな色を定義し、特定のページで上書きすることが可能です。
一部のブラウザー、たとえば macOS の Safari や Android の Chrome などでは、 theme-color
メタ要素の値がブラウザーの UI のスタイル設定にも使用されます。