shadowトグルは、1つのオプションの状態を変更するスイッチです。押したり、スワイプしたりすることで、オン・オフを切り替えることができます。トグルは、checkedプロパティを設定することで、プログラムによってチェックすることも可能です。
トグルは、enableOnOffLabelsプロパティを設定することで、オン/オフラベルを有効にすることができます。これはアクセシビリティ上重要なことで、チェックされたトグルとチェックされていないトグルの区別がつきやすくなります。
アイテムとリストコンポーネントを使用すると、リストビューでトグルを使用することも可能です。
開発者は labelPlacement プロパティを使用して、ラベルがどのように配置されるかを制御することができます。
開発者は justify プロパティを使用して、ラベルとコントロールの行の詰め方を制御することができます。
CSSカスタムプロパティは、標準CSSと組み合わせてトグルの異なる部分をターゲットにすることができます。トグルの width と height を直接変更してトラックのサイズを変更し、--handle-width と --handle-height カスタムプロパティを使用して、ハンドルサイズをカスタマイズすることができます。
トグルをさらにカスタマイズするには、公開されている特定のシャドウ部分をターゲットにすることができます。これらの部分には、どのようなCSSプロパティでもスタイルを設定でき、CSSカスタムプロパティと組み合わせることも可能です。
Ionic 7.0では、よりシンプルなトグル構文が導入されました。この新しい構文は、トグルの設定に必要な定型文を減らし、アクセシビリティの問題を解決し、開発者のエクスペリエンスを向上させます。
開発者は従来の構文を使い続けることができますが、できるだけ早く移行することをお勧めします。
最新の構文を使用するには、ion-labelを削除して、ion-toggleの内部にラベルを直接渡します。ラベルの配置は ion-toggle の labelPlacement プロパティを使用して設定することができる。ラベルとコントロールの行の詰め方は、ion-toggle の justify プロパティを使用して制御することができます。
- JavaScript
 - Angular
 - React
 - Vue
 
<ion-item>
  <ion-label>Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle>Notifications</ion-toggle>
</ion-item>
<ion-item>
  <ion-label position="fixed">Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle label-placement="fixed">Notifications</ion-toggle>
</ion-item>
<ion-item>
  <ion-label slot="end">Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle label-placement="end">Notifications</ion-toggle>
</ion-item>
<ion-item>
  <ion-label>Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle>Notifications</ion-toggle>
</ion-item>
<ion-item>
  <ion-label position="fixed">Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle label-placement="fixed">Notifications</ion-toggle>
</ion-item>
<ion-item>
  <ion-label slot="end">Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle label-placement="end">Notifications</ion-toggle>
</ion-item>
{}
{}
<IonItem>
  <IonLabel>Notifications</IonLabel>
  <IonToggle></IonToggle>
</IonItem>
{}
<IonItem>
  <IonToggle>Notifications</IonToggle>
</IonItem>
{}
{}
<IonItem>
  <IonLabel position="fixed">Notifications</IonLabel>
  <IonToggle></IonToggle>
</IonItem>
{}
<IonItem>
  <IonToggle labelPlacement="fixed">Notifications</IonToggle>
</IonItem>
{}
{}
<IonItem>
  <IonLabel slot="end">Notifications</IonLabel>
  <IonToggle></IonToggle>
</IonItem>
{}
<IonItem>
  <IonToggle labelPlacement="end">Notifications</IonToggle>
</IonItem>
<ion-item>
  <ion-label>Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle>Notifications</ion-toggle>
</ion-item>
<ion-item>
  <ion-label position="fixed">Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle label-placement="fixed">Notifications</ion-toggle>
</ion-item>
<ion-item>
  <ion-label slot="end">Notifications</ion-label>
  <ion-toggle></ion-toggle>
</ion-item>
<ion-item>
  <ion-toggle label-placement="end">Notifications</ion-toggle>
</ion-item>
Ionic の過去のバージョンでは、ion-toggle が正しく機能するためには ion-item が必要でした。Ionic 7.0 からは、ion-toggle は ion-item の中で、そのアイテムが ion-list に配置される場合にのみ使用されます。また、ion-toggleが正しく機能するためには、ion-itemはもはや必須ではありません。
Ionicは、アプリが最新のトグル構文を使用しているかどうかを検出するためにヒューリスティックを使用しています。場合によっては、レガシー構文を使い続けることが望ましいこともあります。開発者は、ion-toggleのlegacyプロパティをtrueに設定することで、そのトグルのインスタンスがレガシー構文を使用するように強制できます。
interface ToggleChangeEventDetail<T = any> {
  value: T;
  checked: boolean;
}
必須ではありませんが、このコンポーネントから発行される Ionic イベントでより強く型付けを行うために、CustomEvent インターフェースの代わりにこのインターフェースを使用することが可能です。
interface ToggleCustomEvent<T = any> extends CustomEvent {
  detail: ToggleChangeEventDetail<T>;
  target: HTMLIonToggleElement;
}
| Description | trueの場合、トグルが選択されます。 | 
| Attribute | checked | 
| Type | boolean | 
| Default | false | 
| Description | アプリケーションのカラーパレットから使用する色を指定します。デフォルトのオプションは以下の通りです。 "primary", "secondary", "tertiary", "success", "warning", "danger", "light", "medium", と "dark" です.色に関する詳しい情報は theming を参照してください。 | 
| Attribute | color | 
| Type | "danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string & Record<never, never> | undefined | 
| Default | undefined | 
| Description | trueの場合、ユーザーはトグルを操作することができません。 | 
| Attribute | disabled | 
| Type | boolean | 
| Default | false | 
| Description | トグル内のオン/オフアクセシビリティスイッチラベルを有効にします。 | 
| Attribute | enable-on-off-labels | 
| Type | boolean | undefined | 
| Default | config.get('toggleOnOffLabels') | 
| Description | ラベルとトグルを1行にまとめる方法。"start":ラベルとトグルは、LTRでは左に、RTLでは右に表示されます。"end":ラベルとトグルは、LTRでは右に、RTLでは左に表示されます。"space-between":ラベルとトグルは、2つの要素の間にスペースがある状態で、行の反対側の端に表示されます。 | 
| Attribute | justify | 
| Type | "end" | "space-between" | "start" | 
| Default | 'space-between' | 
| Description | Inputに対してラベルを配置する場所。"start"とする:ラベルはLTRではトグルの左側に、RTLでは右側に表示されます。"end":ラベルはLTRではトグルの右側に、RTLでは左側に表示されます。"fixed":ラベルの幅が固定される以外は、"start"`と同じ動作になります。長いテキストは省略記号("...")で切り捨てられます。 | 
| Attribute | label-placement | 
| Type | "end" | "fixed" | "start" | 
| Default | 'start' | 
| Description | legacyプロパティをtrueに設定すると、レガシーフォームコントロールのマークアップを強制的に使用することができます。Ionicは、コンポーネントがaria-label属性またはラベルテキストを含むデフォルトスロットのいずれかを使用している場合にのみ、モダンフォームマークアップを選択するようになっています。そのため、legacyプロパティは、この自動オプトイン動作を回避したい場合にのみ、エスケープハッチとして使用する必要があります。なお、このプロパティはIonicの今後のメジャーリリースで削除され、すべてのフォームコンポーネントはモダンフォームマークアップを使用するようにオプトインされる予定です。 | 
| Attribute | legacy | 
| Type | boolean | undefined | 
| Default | undefined | 
| Description | modeは、どのプラットフォームのスタイルを使用するかを決定します。 | 
| Attribute | mode | 
| Type | "ios" | "md" | 
| Default | undefined | 
| Description | フォームデータとともに送信されるコントロールの名前。 | 
| Attribute | name | 
| Type | string | 
| Default | this.inputId | 
| Description | トグルの値は、チェックされているかどうかを意味するものではありません。  トグルの値は <input type="checkbox"> の値に類似しており、トグルがネイティブの <form> に参加する場合にのみ使用されます。 | 
| Attribute | value | 
| Type | null | string | undefined | 
| Default | 'on' | 
| Name | Description | 
|---|
ionBlur | トグルのフォーカスが外れたときに発行されます。 | 
ionChange | ユーザがトグルのオン/オフを切り替えたときに発行されます。プログラムによって checked プロパティの値が変更された場合は発生しません。 | 
ionFocus | トグルにフォーカスが当たったときに発行されます。 | 
No public methods available for this component.
| Name | Description | 
|---|
handle | チェックした状態を変更するために使用するトグルハンドル(つまみ)です。 | 
track | トグルの背景トラックです。 | 
| Name | Description | 
|---|
--border-radius | トグルトラックのボーダー半径 | 
--handle-background | トグルハンドルの背景 | 
--handle-background-checked | チェックしたときのトグルハンドルの背景 | 
--handle-border-radius | トグルハンドルのボーダー半径 | 
--handle-box-shadow | トグルハンドルのボックスシャドウ | 
--handle-height | トグルハンドルの高さ | 
--handle-max-height | トグルハンドルの最大の高さ | 
--handle-spacing | トグルハンドル周辺の横方向の間隔 | 
--handle-transition | トグルハンドルの変遷 | 
--handle-width | トグルハンドルの幅 | 
--track-background | トグルトラックの背景 | 
--track-background-checked | チェックしたときのトグルトラックの背景 | 
| Name | Description | 
|---|
| `` | トグルに関連付けるラベルテキストです。"labelPlacement"プロパティを使用して、トグルに対してラベルを配置する位置を制御します。 |