Close
Angular React Web Components Blazor Angular
Open Source

ボタン グループ コンポーネント

Angular ボタン グループ コンポーネントは、IgxToggleButton を、水平 / 垂直配置、単一 / 複数選択、切り替えを備えたスタイル付きボタン グループに編成するために使用されます。

ライブ デモ

構造

Angular ボタン グループは、関連するトグル ボタンを共有コンテナーと個々のボタン アイテムを持つ単一グループに整理します。

共有コンテナー、ボタン アイコン、ラベルを示すボタン グループの構造
1. コンテナー: ボタンのコンテンツをラップします。
2. アイコン: ボタンにコンテキストを追加します。左、右、左右、またはアイコンのみを設定できます。
3. ラベル: ボタンのアクションをユーザーに説明するテキスト コンテンツです。

Angular ボタン グループはトグル ボタンを含み、各ボタンにはアイコンとラベルを含めることができます。

Button Group
└── Toggle Button
    ├── Icon
    └── Label

作業の開始

Angular ボタン グループを使用するには、基本的なプロジェクト設定について Ignite UI for Angular の作業の開始 トピックを参照してから、ターゲット プラットフォームのコンポーネントを登録してください。

前提条件とバージョン互換性

ターゲット フレームワークでサポートされているバージョンの Ignite UI for Angular パッケージを使用してください。フレームワーク パッケージ、ボタン グループ パッケージ、テーマ パッケージを同じリリース バージョンに保ってください。

igniteui-angular パッケージを使用する Angular の場合は、パッケージをインストールします。

ng add igniteui-angular

次に、NgModule アプリケーションでは IgxButtonGroupModule をインポートするか、コンポーネントの imports コレクションに IGX_BUTTON_GROUP_DIRECTIVES と必要なスタンドアロン コンポーネントをインポートします。

import { IGX_BUTTON_GROUP_DIRECTIVES } from 'igniteui-angular/button-group';
import { IgxIconComponent } from 'igniteui-angular/icon';

Ignite UI for Angular の完全な紹介については、作業の開始 トピックをお読みください。

ButtonGroup を使用する最もシンプルな方法は次のとおりです。

<igx-buttongroup></igx-buttongroup>

使用方法

ButtonGroup を使用して IgxToggleButton コンポーネントをラップします。デフォルトでボタンを選択するには、Selected 属性を使用します。

<igx-buttongroup>
    <button igxButton>
        <igx-icon>format_align_left</igx-icon>
    </button>
    <button igxButton>
        <igx-icon>format_align_center</igx-icon>
    </button>
    <button igxButton selected>
        <igx-icon>format_align_justify</igx-icon>
    </button>
</igx-buttongroup>

配置

ボタン グループは水平および垂直レイアウトをサポートします。Alignment プロパティを使用して、グループ内のボタンの方向を設定します。

Angular の場合は、ButtonGroupAlignment 列挙型で alignment 入力を設定します。

import { ButtonGroupAlignment } from 'igniteui-angular/button-group';

public alignment = ButtonGroupAlignment.vertical;
<igx-buttongroup [alignment]="alignment">
    <button igxButton>Sofia</button>
    <button igxButton>London</button>
    <button igxButton selected>New York</button>
    <button igxButton>Tokyo</button>
</igx-buttongroup>

選択

Ignite UI for Angular ButtonGroup の選択を構成するには、プラットフォーム固有の選択プロパティを使用します。Angular の場合は selectionMode、React、Web Components、Blazor の場合は selection を使用します。使用可能なモードは次のとおりです。

  • single - ボタン グループのデフォルトの選択モードです。ユーザーは単一のボタンを選択/選択解除できます。
  • single-required - ラジオ グループの動作を模倣します。選択できるボタンは 1 つだけで、最初に選択すると、ユーザーの操作によって選択解除することはできません。
  • multiple - グループ内の複数のボタンを選択または選択解除できます。

以下のサンプルは、公開された ButtonGroup 選択モードを示しています。

Angular の選択モードは singlesingleRequiredmulti です。

selectionMode 入力を設定して選択の動作を構成します。

<igx-buttongroup [selectionMode]="'multi'">
    <button igxButton selected>Bold</button>
    <button igxButton>Italic</button>
    <button igxButton>Underline</button>
</igx-buttongroup>

IgxToggleButton は、Selected 属性または ButtonGroupSelectedItems 属性を通じて選択済みとしてマークできます。

ButtonGroupSelectedItems プロパティを使用するには、IgxToggleButtonValue 属性の設定が必須です。

状態

グループ内の各ボタンは、有効および無効のバリアントをサポートし、選択済みまたは未選択の状態にできます。含まれる IgxToggleButton コンポーネントが提供する状態動作を使用します。

インタラクション状態

グループ内の有効なボタンは、アイドル、ホバー、フォーカスのインタラクション状態をサポートします。含まれる IgxToggleButton コンポーネントが提供する状態動作を使用します。

レイアウト テンプレート

各ボタンにはテキスト、アイコン、またはその両方を使用できます。グループ全体でコンテンツ スタイルを統一し、ボタン コンテンツ API を使用して各ボタンに表示するアイコンとラベルを制御します。

カスタム トグル ボタン

Angular の場合は、values 入力を使用してカスタマイズされたボタンの配列を指定します。各アイテムには labeliconselecteddisabledtogglable などのプロパティを定義できます。

コンポーネント クラスでボタンの値を定義します。

interface IButton {
    label?: string;
    icon?: string;
    disabled?: boolean;
    togglable?: boolean;
    selected?: boolean;
    color?: string;
}

public bordersButtons: IButton[] = [
    { icon: 'border_top', selected: true },
    { icon: 'border_right' },
    { icon: 'border_bottom' },
    { icon: 'border_left' }
];
<igx-buttongroup [selectionMode]="'multi'" [values]="bordersButtons"></igx-buttongroup>

完全な values モデルと構成については、Angular ボタン グループのサンプルを参照してください。

サイズ

--ig-size CSS カスタム プロパティを使用して、ボタン グループのサイズを制御できます。

igx-buttongroup {
    --ig-size: var(--ig-size-small);
}
<igx-buttongroup></igx-buttongroup>

使用すべき場合と使用すべきでない場合

使用する場合: ユーザーが 1 つまたは複数のオプションを選択できる関連するトグル アクションを整理するためにボタン グループを使用します。

使用しない場合: 関連のないアクションや単一のトグル アクションにはボタン グループを使用しないでください。代わりにスタンドアロンの IgxToggleButton を使用します。

DoDon’t
ボタン グループの Do 例 1 ボタン グループの Don't 例 1
ボタン グループの Do 例 2 ボタン グループの Don't 例 2
ボタン グループの Do 例 3 ボタン グループの Don't 例 3

プロパティ

ボタン グループのプロパティはコンポーネント API リファレンスから生成されます。

プロパティの行は、ドキュメントのビルド時に型付き API ソースから注入されます。

名前 タイプ デフォルト 説明
alignment ButtonGroupAlignment horizontal グループ内のボタンの方向を設定します。
selection ButtonGroupSelection single グループ内のボタンの選択モードを設定します。
selectedItems string[] [] 選択されているボタンの値を取得または設定します。各トグル ボタンには一意の value が必要です。

スタイル設定

Angular ボタン グループ テーマは、グループ アイテムとそのインタラクション状態の Sass パラメーターを公開します。プライマリ テーマ プロパティを変更すると、関連する状態プロパティが更新され、コンポーネントの視覚的な一貫性が保たれます。

Sass テーマ

Angular テーマ システムを使用して、アプリケーションの他の部分と一貫したスタイルでボタン グループをカスタマイズします。

カスタム ボタン グループ テーマを作成する前に Angular テーマ関数をインポートします。

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

button-group-theme でテーマを作成し、コンポーネント スコープに含めます。

$custom-button-group: button-group-theme(
    $item-background: #57a5cd,
);

:host {
    @include tokens($custom-button-group);
}

CSS 変数

Angular テーマ トークンを使用して、ボタン グループ アイテムの色とインタラクション状態をカスタマイズします。以下のプライマリ Sass パラメーターは関連する状態トークンを更新します。

プライマリ プロパティ 依存プロパティ 説明
$item-background $item-hover-background アイテムのホバー背景。
$item-selected-background 選択済みアイテムの背景。
$item-focused-background フォーカスされたアイテムの背景。
$disabled-background-color 無効なアイテムの背景。
$item-border-color デフォルトのアイテム境界線の色。
$item-text-color デフォルトのアイテム テキスト色。
$idle-shadow-color アイドル アイテムのシャドウ色。
$item-hover-background $item-selected-hover-background 選択済みアイテムのホバー背景。
$item-focused-hover-background フォーカスされたホバー背景。
$item-hover-text-color ホバーされたアイテムのテキスト色。
$item-hover-icon-color ホバーされたアイテムのアイコン色。
$item-selected-background $item-selected-focus-background 選択済みアイテムのフォーカス背景。
$disabled-selected-background 無効な選択済みの背景。
$item-selected-text-color 選択済みアイテムのテキスト色。
$item-selected-icon-color 選択済みアイテムのアイコン色。
$item-selected-hover-text-color 選択済みホバー アイテムのテキスト色。
$item-selected-hover-icon-color 選択済みホバー アイテムのアイコン色。
$item-border-color $item-hover-border-color ホバーされたアイテムの境界線の色。
$item-focused-border-color フォーカスされたアイテムの境界線の色。
$item-selected-border-color 選択済みアイテムの境界線の色。
$item-selected-hover-border-color 選択済みホバー アイテムの境界線の色。
$item-disabled-border 無効なアイテムの境界線の色。
$disabled-selected-border-color 無効な選択済みの境界線の色。

スタイル パーツ

ボタン グループとそれに含まれるトグル ボタンをターゲットにするには、次の CSS パーツを使用します。

パーツ コンポーネント スタイルの対象
group ButtonGroup ボタン グループ コンテナー。
toggle IgxToggleButton 個々のトグル ボタン。

カスタム スタイル設定

次の例では、グループの背景とパディングを変更し、含まれるトグル ボタンのテキスト色を変更します。

セレクター 宣言 効果
igx-button-group::part(group) background-colorpadding ボタン グループ コンテナーの背景とスペースを変更します。
igx-toggle-button::part(toggle) color 個々のトグル ボタンのテキスト色を変更します。
igx-button-group::part(group) {
    background-color: var(--ig-primary-500);
    padding: 8px;
}

igx-toggle-button::part(toggle) {
    color: var(--ig-secondary-300);
}

Tailwind によるスタイル設定

Ignite UI の Tailwind ユーティリティ クラスを使用して Angular ボタン グループをスタイル設定できます。最初に Tailwind を設定 してから、グローバル スタイルシートにユーティリティ ファイルをインポートします。

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

対応するテーマに light-button-group または dark-button-group を使用し、任意のプロパティで生成された CSS 変数をオーバーライドします。

<igx-button-group class="!light-button-group ![--item-background:#7B9E89]">
</igx-button-group>

感嘆符 (!) はユーティリティ クラスを important にし、コンポーネント テーマより優先させます。

アクセシビリティ

Angular Button Group は、関連するトグル ボタンを整理しながら、各ボタンの選択状態と無効状態を公開します。

キーボード インタラクション

ボタン グループは、内包するトグル ボタンにキーボード インタラクションを委譲します。各トグル ボタンはネイティブ ボタンをレンダリングするため、標準のボタン キーボード動作によってフォーカスされたアイテムがアクティブ化され、設定された選択モードに従って選択状態が更新されます。

キー アクション
Tab / Shift+Tab グループ内の次または前の有効なトグル ボタンにフォーカスを移動します。
Enter / Space フォーカスされたトグル ボタンをアクティブ化し、設定された選択モードに従って選択または選択解除します。

ボタン グループが無効の場合、内包するトグル ボタンも無効になり、キーボードによるインタラクティブ操作に対応しなくなります。

スクリーン リーダー / ARIA

ボタン グループはグループの関係を公開し、各トグル ボタンはネイティブ ボタン セマンティクスを通じてその状態を公開します。

  • グループ コンテナーは role="group" を使用します。
  • Angular は選択状態が変化すると各内包ボタンの aria-pressed 値を更新し、グループが無効の場合は子ボタンを無効にします。
  • グループはユーザーが選択を変更すると selected および deselected を発行します。各イベントには選択されたトグル ボタンとそのインデックスが含まれます。
  • すべてのアイコンのみのボタンに表示テキスト、igxLabel、または他のアクセシブルな名前を提供してください。

アクセシビリティ準拠

インフラジスティックスは、アクセシビリティ準拠 トピックで、Section 508 および WCAG 2.1 ガイドライン領域における Ignite UI for Angular のアクセシビリティ サポートを文書化しています。

基準 コンポーネントの準拠方法
2.1.1 キーボード 各トグル ボタンはネイティブ ボタンを使用するため、グループの選択動作は標準のボタン キーボード アクティベーションを通じて利用できます。
4.1.2 名前、役割、値 グループは role="group" を公開します。トグル ボタンはネイティブ ボタン セマンティクスを公開し、選択状態が変化すると aria-pressed を更新します。xplat トグル ボタンは aria-disabled も公開します。

ユーザー側の責任:

  • 各トグル ボタンに明確な表示ラベルまたはアクセシブルな名前を付けてください。特にアイコンのみのボタンでは重要です。
  • グループの選択モードをコントロールの目的に合わせて設定し、ユーザーが 1 つまたは複数のオプションを選択できるかどうかを理解できるようにしてください。
  • グループまたはその選択状態をカスタマイズする際は、論理的なボタンの順序と十分な色のコントラストを維持してください。

トラブルシューティング

Angular ボタン グループのトラブルシューティング ガイダンスは、一般的な選択の問題に対して問題、原因、修正のフォーマットで提供されます。

selectedItems でボタンが選択されないのはなぜですか?

すべてのトグル ボタンに一意の value 属性があることを確認してください。selectedItems プロパティはこれらの値に依存します。

既知の制限

Angular ボタン グループはトグル ボタンを調整しますが、個々のラベルやアクセシブルな名前を置き換えるものではありません。

  • 選択動作は設定された selection モードに依存します。
  • selectedItems プロパティは、含まれるトグル ボタンの一意の value 属性に依存します。
  • ボタン グループはボタンのラベルやアイコンを提供しません。各トグル ボタンのコンテンツは個別に定義してください。

API リファレンス

Angular ボタン グループ API リファレンスは、コンポーネントと関連するトグル ボタン機能の完全な API サーフェスを提供します。

ButtonGroup IgxToggleButton IgxRipple Icon

依存関係

Angular ボタン グループは、プラットフォーム パッケージとそのテーマ スタイルシートが必要です。サンプルではトグル ボタン、アイコン、リップル コンポーネントも使用します。

その他のリソース

API の詳細とプロジェクト サポートについては、次の Angular リソースを使用してください。

関連コンポーネント

Angular ボタン グループは選択可能なトグル ボタンで構成されています。グループではなく個別のトグル アクションが必要な場合は、次の関連コンポーネントを使用してください。

  • IgxToggleButton

FAQ

これらのよくある質問は、Angular ボタン グループの選択、コンテンツ、設定に関する一般的なシナリオをカバーします。

ボタン グループはどの選択モードをサポートしていますか?

ボタン グループは singlesingle-requiredmultiple の選択モードをサポートします。必要なインタラクションに合ったモードを選択するには selection プロパティを使用します。

selectedItems でボタンを選択するにはどうすればよいですか?

すべての IgxToggleButton に一意の value を割り当て、ボタン グループの selectedItems プロパティを通じて対応する値を設定します。

ボタン グループにアイコンを表示できますか?

はい。各 IgxToggleButton にアイコンを追加し、グループ全体でボタン コンテンツを統一してください。