Close
Angular React Web Components Blazor Angular
Open Source

Angular Switch (スイッチ) コンポーネントの概要

The Ignite UI for Angular Switch component is a binary choice selection component that behaves similarly to the switch component in iOS.

Angular Switch の例


Ignite UI for Angular Switch を使用した作業の開始

Ignite UI for Angular Switch コンポーネントを使用した作業を開始するには、Ignite UI for Angular をインストールする必要があります。既存の Angular アプリケーションで、以下のコマンドを入力します。

ng add igniteui-angular

Ignite UI for Angular については、「はじめに」トピックをご覧ください。

次に、app.module.ts ファイルに IgxSwitchModule をインポートします。

// app.module.ts

...
import { IgxSwitchModule } from 'igniteui-angular/switch';
// import { IgxSwitchModule } from '@infragistics/igniteui-angular'; for licensed package

@NgModule({
    ...
    imports: [..., IgxSwitchModule],
    ...
})
export class AppModule {}

あるいは、16.0.0 以降、IgxSwitchComponent をスタンドアロンの依存関係としてインポートできます。

// home.component.ts

import { IgxSwitchComponent } from 'igniteui-angular/switch';
// import { IgxSwitchComponent } from '@infragistics/igniteui-angular'; for licensed package

@Component({
  selector: 'app-home',
  template: ` <igx-switch [checked]="true"> Simple switch </igx-switch> `,
  styleUrls: ['home.component.scss'],
  standalone: true,
  imports: [IgxSwitchComponent],
})
export class HomeComponent {}

Ignite UI for Angular Switch モジュールまたはコンポーネントをインポートしたので、igx-switch コンポーネントの使用を開始できます。

Angular Switch の使用

中核となるスイッチ コンポーネントはオン/オフ状態の切り替えが可能です。デフォルトのスタイル設定はマテリアル デザイン ガイドラインの選択コントロールの仕様に基づきます。

デモのようにシンプルなスイッチを作成するには、コンポーネントのテンプレートに以下のコードを追加します。

<igx-switch [checked]="true"> Simple switch </igx-switch>

Switch プロパティ

上記のコードを拡張するには、スイッチ プロパティをデータにバインドします。name および state の 2 つのプロパティを持つ設定オブジェクトの配列があるとしましょう。スイッチ コンポーネントの checked プロパティを基礎となるオブジェクトの state プロパティにバインドします。同じように、value プロパティを name にバインドします。

// toggle.component.ts
...
public settings = [
    { name: 'WiFi', state: false},
    { name: 'Bluetooth', state: true},
    { name: 'Device visibility', state: false}
];

コンポーネント テンプレートに各設定のためのスイッチを追加し、相対するプロパティにバインドします。

<!--toggle.component.html-->

<igx-switch *ngFor="let setting of settings" [checked]="setting.state">
  {{ setting.name }}
</igx-switch>

スタイルを追加します。

:host {
  display: flex;
  flex-flow: column nowrap;
  padding: 16px;
}

igx-switch {
  margin-top: 24px;
}

結果は以下のようになります。

ラベル位置

スイッチの labelPosition プロパティを使用してラベルを配置できます。

<igx-switch labelPosition="before"></igx-switch>

labelPosition が設定されていない場合、ラベルはスイッチの後に配置されます。

スタイル設定

Switch テーマのプロパティ マップ

プライマリ プロパティを変更すると、関連するすべての依存プロパティが自動的に更新され、変更が反映されます。

プライマリ プロパティ 依存プロパティ 説明
$track-off-color $thumb-off-color スイッチがオフの時のつまみの色
$track-disabled-color スイッチが無効の時のトラックの色
$thumb-off-color $track-off-color スイッチがオフの時のトラックの色
$thumb-disabled-color スイッチが無効の時のつまみの色
$track-on-color $thumb-on-color スイッチがオンの時のつまみの色
$track-on-hover-color ホバー時のスイッチのオンの時のトラックの色
$track-on-disabled-color スイッチがオンおよび無効の時のトラックの色
$thumb-on-color $track-on-color スイッチがオンの時のトラックの色
$thumb-on-disabled-color スイッチがオンかつ無効の時のつまみの色
プライマリ プロパティ 依存プロパティ 説明
$thumb-off-color $border-color つまみのオフ色に由来する境界線の色
$thumb-off-hover-color ホバー時のスイッチのつまみの色
$border-color $thumb-off-color 境界線の色に由来するつまみのオフ色
$border-hover-color ホバー時のスイッチの境界線の色
$border-disabled-color 無効なスイッチの境界線の色
$track-off-color $thumb-off-color トラックのオフ色に由来するつまみのオフ色
$border-hover-color ホバー時のスイッチの境界線の色
$track-disabled-color 無効なスイッチのトラックの色
$track-on-color $thumb-on-color スイッチがオンの時のつまみの色
$thumb-on-disabled-color 無効なスイッチのオンの時のつまみの色
$border-on-color スイッチがオンの時の境界線の色
$border-on-hover-color ホバー時のスイッチのオンの時の境界線の色
$track-on-hover-color ホバー時のスイッチのオンの時のトラックの色
$track-on-disabled-color オンかつ無効の時のトラックの色
プライマリ プロパティ 依存プロパティ 説明
$thumb-off-color $border-color つまみのオフ色に由来する境界線の色
$thumb-off-hover-color ホバー時のスイッチのつまみの色
$border-color $thumb-off-color 境界線の色に由来するつまみのオフ色
$border-hover-color ホバー時のスイッチの境界線の色
$border-disabled-color 無効なスイッチの境界線の色
$track-off-color $thumb-off-color トラックのオフ色に由来するつまみのオフ色
$border-hover-color ホバー時のスイッチの境界線の色
$track-disabled-color 無効なスイッチのトラックの色
$track-on-color $thumb-on-color スイッチがオンの時のつまみの色
$thumb-on-disabled-color 無効なスイッチのオンの時のつまみの色
$border-on-color スイッチがオンの時の境界線の色
$border-on-hover-color ホバー時のスイッチのオンの時の境界線の色
$track-on-hover-color ホバー時のスイッチのオンの時のトラックの色
$track-on-disabled-color オンかつ無効の時のトラックの色
$focus-fill-color フォーカス時のスイッチの塗りつぶし色
$focus-fill-color $focus-outline-color フォーカス時の塗りつぶし色に由来するアウトラインの色
$focus-fill-hover-color ホバー時のスイッチのフォーカス時の塗りつぶし色
プライマリ プロパティ 依存プロパティ 説明
$thumb-off-color $border-color つまみのオフ色に由来する境界線の色
$thumb-off-hover-color ホバー時のスイッチのつまみの色
$border-color $thumb-off-color 境界線の色に由来するつまみのオフ色
$border-hover-color ホバー時のスイッチの境界線の色
$border-disabled-color 無効なスイッチの境界線の色
$track-off-color $thumb-off-color トラックのオフ色に由来するつまみのオフ色
$border-hover-color ホバー時のスイッチの境界線の色
$track-disabled-color 無効なスイッチのトラックの色
$track-on-color $thumb-on-color スイッチがオンの時のつまみの色
$thumb-on-disabled-color 無効なスイッチのオンの時のつまみの色
$border-on-color スイッチがオンの時の境界線の色
$track-on-hover-color ホバー時のスイッチのオンの時のトラックの色
$track-on-disabled-color オンかつ無効の時のトラックの色
$border-on-color $border-on-hover-color ホバー時のスイッチのオンの時の境界線の色
$focus-outlined-color-focused フォーカス時のスイッチのフォーカスアウトラインの色
Primary Property Dependent Property Description
$track-off-color $thumb-off-color Thumb color when switch is off
$track-disabled-color Track color when switch is disabled
$thumb-off-color $track-off-color Track color when switch is off
$thumb-disabled-color Thumb color when switch is disabled
$track-on-color $thumb-on-color Thumb color when switch is on
$track-on-hover-color Track color when switch is on and hovered
$track-on-disabled-color Track color when switch is on and disabled
$thumb-on-color $track-on-color Track color when switch is on
$thumb-on-disabled-color Thumb color when switch is on and disabled

スイッチのスタイル設定を始めるには、すべてのテーマ関数とコンポーネント mixins が存在する index ファイルをインポートする必要があります。

Primary Property Dependent Property Description
$thumb-off-color $border-color Border color derived from thumb off color
$thumb-off-hover-color Thumb color on hover
$border-color $thumb-off-color Thumb off color derived from border color
$border-hover-color Border color on hover
$border-disabled-color Border color when disabled
$track-off-color $thumb-off-color Thumb off color derived from track off color
$border-hover-color Border color on hover
$track-disabled-color Track color when disabled
$track-on-color $thumb-on-color Thumb color when switch is on
$thumb-on-disabled-color The color of the thumb when the switch is on and disabled
$border-on-color The border color when the switch is on
$border-on-hover-color Border color when switch is on and hovered
$track-on-hover-color Track color when switch is on and hovered
$track-on-disabled-color Track color when on and disabled
Primary Property Dependent Property Description
$thumb-off-color $border-color Border color derived from thumb off color
$thumb-off-hover-color Thumb color on hover
$border-color $thumb-off-color Thumb off color derived from border color
$border-hover-color Border color on hover
$border-disabled-color Border color when disabled
$track-off-color $thumb-off-color Thumb off color derived from track off color
$border-hover-color Border color on hover
$track-disabled-color Track color when disabled
$track-on-color $thumb-on-color Thumb color when switch is on
$thumb-on-disabled-color The color of the thumb when the switch is on and disabled
$border-on-color The border color when the switch is on
$border-on-hover-color Border color when switch is on and hovered
$track-on-hover-color Track color when switch is on and hovered
$track-on-disabled-color Track color when on and disabled
$focus-fill-color Fill color when switch is focused
$focus-fill-color $focus-outline-color Outline color derived from focus fill
$focus-fill-hover-color Focus fill color when hovered
Primary Property Dependent Property Description
$thumb-off-color $border-color Border color derived from thumb off color
$thumb-off-hover-color Thumb color on hover
$border-color $thumb-off-color Thumb off color derived from border color
$border-hover-color Border color on hover
$border-disabled-color Border color when disabled
$track-off-color $thumb-off-color Thumb off color derived from track off color
$border-hover-color Border color on hover
$track-disabled-color Track color when disabled
$track-on-color $thumb-on-color Thumb color when switch is on
$thumb-on-disabled-color The color of the thumb when the switch is on and disabled
$border-on-color The border color when the switch is on
$track-on-hover-color Track color when switch is on and hovered
$track-on-disabled-color Track color when on and disabled
$border-on-color $border-on-hover-color Border color when switch is on and hovered
$focus-outlined-color-focused The focus outlined color for focused state

次に、switch-theme を拡張して新しいテーマを作成します。$thumb-off-color$thumb-on-color の 2 つのパラメーターを指定するだけで、完全なスタイルのスイッチが生成されます。その他のパラメーターをオーバーライドして、外観をさらにカスタマイズすることも可能です。

@use "igniteui-angular/theming" as *;

// 重要: Ignite UI for Angular 13 より前のバージョンは、次を使用してください。
// @import '~igniteui-angular/lib/core/styles/themes/index';

最後に、カスタム テーマをアプリケーションに含めます

$custom-switch-theme: switch-theme(
    $thumb-off-color: #7cadd5,
    $thumb-on-color: #ecaa53,
);

以下のサンプルでは、カスタマイズした CSS 変数を使用したスイッチ コンポーネントが、SAP UI5 デザイン システムのスイッチに視覚的に似たデザインを実現している様子を確認できます。

:host {
  @include tokens($custom-switch-theme);
}

In the sample below, you can see how using the switch component with customized CSS variables allows you to create a design that visually resembles the switch used in the SAP UI5 design system.

Tailwind によるスタイル設定

カスタム Tailwind ユーティリティ クラスを使用して switch をスタイル設定できます。まず Tailwind を設定してください。

グローバル スタイルシートに Tailwind をインポートした上で、以下のように必要なテーマ ユーティリティを適用します:

@import "tailwindcss";
...
@use 'igniteui-theming/tailwind/utilities/material.css';

ユーティリティ ファイルには、light テーマと dark テーマの両方のバリエーションが含まれています。

  • light-* クラスはライト テーマ用です。
  • dark-* クラスはダーク テーマ用です。
  • プレフィックスの後にコンポーネント名を追加します (例: light-switchdark-switch)。

これらのクラスを適用すると、動的なテーマの計算が可能になります。そこから、任意のプロパティを使用して、生成された CSS 変数をオーバーライドできます。コロンの後に、有効な CSS カラー形式 (HEX、CSS 変数、RGB など) を指定します。

プロパティの完全なリストは、IgxSwitch テーマ で確認できます。構文は次のとおりです:

<igx-switch
  class="!light-switch ![--thumb-on-color:#FF4E00]"
  [checked]="true">
  ...
</igx-switch>

ユーティリティ クラスが優先されるようにするには、感嘆符 (!) が必要です。Tailwind はスタイルをレイヤーに適用しますが、これらのスタイルを重要としてマークしないと、コンポーネントのデフォルトのテーマによってオーバーライドしてしまいます。

最終的に、switch は次のようになります:


API リファレンス


テーマの依存関係

その他のリソース


コミュニティに参加して新しいアイデアをご提案ください。