本文へ移動
WebView Native UIdocs

iOS 27 テーマを設定する

セットアップは、まとめたスタイルシートと ios27ThemeConfig を使用します。このガイドは、既定値、アプリの上書き、個別の CSS・アニメーション API を説明します。既存アプリは任意の移行で設定を簡略化できます。

ダークモード

スタイルシートを1つ選び、Ionic の基本 CSS の後にグローバルで読み込みます。対応する Ionic パレット、既定のテーマ変数、コンポーネント、Material Design 互換スタイル、ダーク設定が含まれます。

外観方針 スタイルシート 有効化
システム連動 @rdlabo/ionic-theme-ios27/styles/system.css システムの外観。
手動 @rdlabo/ionic-theme-ios27/styles/class.css ドキュメントルートの ion-palette-dark。
常時ダーク @rdlabo/ionic-theme-ios27/styles/always.css 常に有効。

クラスによる外観では、アプリが切替を管理します。

document.documentElement.classList.toggle('ion-palette-dark', dark);

同等の個別テーマ import と Ionic ダークパレットを、選択したスタイルシートに置き換え、重複読み込みを避けます。CSS 変数の上書きはスタイルシートの後に置きます。ネイティブコントロールは外観マーカーを継承します。ネイティブ外観の継承も参照してください。

スタイルシートを個別に組み合わせる

個別の import も引き続き使用できます。システム連動ダークモードでは、Ionic の基本 CSS の後に次の順で読み込みます。

@import '@ionic/core/css/palettes/dark.system.css';
@import '@rdlabo/ionic-theme-ios27/dist/css/default-variables.css';
@import '@rdlabo/ionic-theme-ios27/dist/css/ionic-theme-ios27.css';
@import '@rdlabo/ionic-theme-ios27/dist/css/md-remove-ios-class-effect.css';
@import '@rdlabo/ionic-theme-ios27/dist/css/ionic-theme-ios27-dark-system.css';

Ionic パレットとテーマのダーク設定は同じ方針で組み合わせます。

方針 @ionic/core/css/palettes/ の Ionic パレット @rdlabo/ionic-theme-ios27/dist/css/ のテーマ
システム連動 dark.system.css ionic-theme-ios27-dark-system.css
手動 dark.class.css ionic-theme-ios27-dark-class.css
常時ダーク dark.always.css ionic-theme-ios27-dark-always.css

互換スタイルは、iOS 固有のユーティリティクラスが Material Design のコンポーネントへ影響するのを防ぎます。条件付き iOS 26/27 や MD3 の併用には適応テーマを使います。

設定の既定値と上書き

ios27ThemeConfig は、mode: 'ios'、iosTransitionAnimation、popoverEnterAnimation、popoverLeaveAnimation を含む型付き Ionic 設定です。描画前に設定へ展開します。スプレッドの後のプロパティは、明示した undefined も含めて既定値を上書きします。

import { ios27ThemeConfig } from '@rdlabo/ionic-theme-ios27';

const ionicConfig = {
  ...ios27ThemeConfig,
  animated: false, // アプリの設定を Ionic の既定値より優先します。
  popoverEnter: undefined, // Ionic 標準の popover 表示アニメーションを使用します。
};

スプレッドの後にアプリ独自のアニメーションを navAnimation として指定できます。共有オブジェクト自体を変更せず新しい設定オブジェクトを作り、ほかの利用箇所で既定値を維持してください。

既存の Ionic 初期化へ渡します。フレームワークに応じて provideIonicAngular、setupIonicReact、app.use(IonicVue, ionicConfig) を使います。import はセットアップを参照してください。

プラットフォーム別のモード選択を維持する

設定には iOS モードと iOS アニメーションが含まれます。プラットフォームで外観を選ぶアプリは、Ionic 初期化前に設定全体を選びます。この例は iOS で iOS 27 テーマを使い、ほかでは Ionic 標準の Material Design を使います。

import { isPlatform } from '@ionic/core';
import { ios27ThemeConfig } from '@rdlabo/ionic-theme-ios27';

const ionicConfig = {
  ...(isPlatform('ios') ? ios27ThemeConfig : { mode: 'md' as const }),
  animated: false, // Optional application setting, applied on both platforms.
};

独自のモード選択方針がある場合はそれを維持します。スプレッドの後に mode だけを変更すると iOS アニメーションは残るため、モードとアニメーションの両方を変える場合は設定全体を選んでください。ブラウザー機能や複数テーマによる選択には適応設定を引き続き使えます。

アニメーションを個別に接続する

個別のアニメーション export も使用できます。

import { iosTransitionAnimation, popoverEnterAnimation, popoverLeaveAnimation } from '@rdlabo/ionic-theme-ios27';

const ionicConfig = {
  mode: 'ios' as const,
  navAnimation: iosTransitionAnimation,
  popoverEnter: popoverEnterAnimation,
  popoverLeave: popoverLeaveAnimation,
  // animated: false,
};

テーマの画面遷移は、有効な Native UI と既に連携します。独自の画面遷移には画面遷移アダプターの手順を使用できます。追加のタブ・segment・検索の効果はアニメーションを参照してください。