Close
Angular React Web Components Blazor Blazor
Open Source

Chip コンポーネント

Ignite UI for Blazor Chip は、タグ、フィルター、人物を表すコンパクトな要素で、ユーザーが選択または削除できます。

Chip は、選択可能、削除可能、またはその両方にすることができ、ラベルの前後にアイコンやその他のコンテンツを表示できます。

ライブ デモ

構造

Blazor Chip は、ラベルとオプションのアイコンを 1 行に収めるコンテナーです。

Blazor Chip anatomy: container, selection icon, left icon, label, right icon, and remove icon
1. コンテナー: すべての Chip 要素を保持し、視覚的な境界を定義します2. 選択アイコン: Chip が選択されていることを示します3. 左アイコン (オプション): ラベルの左側に表示されます
4. ラベル: Chip の値を識別または説明するテキストです5. 右アイコン (オプション): ラベルの右側に表示されます6. 削除アイコン: キャンセル アイコンは、Chip を削除できることを示します
igc-chip                              // host
└─ div[part="base"]                   // chip wrapper
   ├─ button[part="action"]           // selection control; aria-pressed when selectable
   │  ├─ span[part="prefix"]          // hidden when empty and not selected
   │  │  ├─ slot[name="select"]       // default select icon, shown when selectable and selected
   │  │  ├─ slot[name="start"]        // content before the prefix content
   │  │  └─ slot[name="prefix"]       // content before the label
   │  ├─ span[part="content"]
   │  │  └─ slot                      // label (default slot)
   │  └─ span[part="suffix"]          // hidden when empty
   │     ├─ slot[name="end"]          // content before the suffix content
   │     └─ slot[name="suffix"]       // content after the label
   └─ span[part="remove"]             // rendered when removable and not disabled
      └─ slot[name="remove"]          // default remove icon button

作業の開始

Blazor Chip をアプリケーションに追加する前に、作業の開始トピックの説明に従って、Ignite UI for Blazor をインストールし、テーマを構成します。

Ignite UI for Blazor のサービスを登録します。

// in Program.cs file

builder.Services.AddIgniteUIBlazor();

IgbChip のクライアント リソース モジュールである IgbChipModule の登録は任意です。コンポーネントは初めてレンダリングされるときにリソースを読み込みます。ただし、builder.Services.AddIgniteUIBlazor(typeof(IgbChipModule)) のように指定すると、リソースを事前に読み込んだり、クライアント側でのみ作成される要素に対応したりできます (コンポーネント モジュールを参照)。

ホスト ページにテーマ スタイルシートを追加します。

<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />

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

Blazor Chip の一部の機能は、アプリケーションが使用するパッケージのバージョンに依存します。

IgniteUI.Blazor パッケージを使用します。IgniteUI.Blazor 26.1 には、Chip の以前のバージョンが含まれています:

  • IgbChip は、Outlined、Locale、ResourceStrings プロパティを公開しません。
  • base パーツが選択ボタンであり、削除アイコンはその内部にレンダリングされます。Chip には action パーツも remove パーツもありません。
  • フォーカス スタイルは --ig-chip-focus-outline-color と --ig-chip-focus-selected-outline-color を読み取ります。
  • キーボードとスクリーン リーダーの動作は、アクセシビリティで説明されているとおり異なります。

使用方法

Blazor Chip にラベルを追加し、レイアウトに応じてアイコン、タイプ、サイズ、選択または削除を追加します。

レイアウト

Blazor Chip は、ラベルの周囲のコンテンツのテンプレート化をサポートします。prefix スロットと suffix スロットにコンテンツを配置することで、テキストや アイコンなどをラベルの前後に表示できます。Chip 内のアイコンは Chip のサイズに従うため、大、中、小の 3 つのサイズがあります。

ラベルはデフォルト スロットに配置します。start スロットはプレフィックス コンテンツの前に、end スロットはサフィックス コンテンツの前にレンダリングされます。select スロットと remove スロットを使用して、デフォルトの選択アイコンと削除アイコンを置き換えます。

<IgbChip Selectable="true" Removable="true">
    <IgbIcon slot="select" IconName="check" Collection="material" />
    <IgbIcon slot="prefix" IconName="person" Collection="material" />
    Ana Zane
    <IgbIcon slot="suffix" IconName="mail" Collection="material" />
    <IgbIcon slot="remove" IconName="close" Collection="material" />
</IgbChip>

remove スロットのカスタム コンテンツは、フォーカスとアクセシブルなラベルを含め、デフォルトの削除アイコンを置き換えます。置き換えるコンテンツはフォーカス可能にし、アクセシブルな名前を付けてください。

タイプ

Blazor Chip には、デフォルトとプライマリの 2 つのタイプがあります。

デフォルト タイプにするには Variant を未設定のままにし、プライマリ タイプにするには StyleVariant.Primary に設定します。バリアントは、ステータス カラーとして StyleVariant.Info、StyleVariant.Success、StyleVariant.Warning、StyleVariant.Danger も受け入れます。

<IgbChip>Default</IgbChip>
<IgbChip Variant="StyleVariant.Primary">Primary</IgbChip>

サイズ

Blazor Chip には 3 つのサイズがあります:

  • 大: アクション トリガーなどのインタラクティブなシナリオに適しています。
  • 中: メール作成の受信者フィールドなど、短い領域に適しています。
  • 小: グリッド セルの値など、データ密度の高いシナリオに適しています。

--ig-size を var(--ig-size-small)、var(--ig-size-medium)、または var(--ig-size-large) に設定して、Chip のサイズを変更します。Chip に設定するか、コンテナーに設定して内部のすべての Chip のサイズを変更します。

.filter-chips {
  --ig-size: var(--ig-size-small);
}

インタラクション状態

Blazor Chip は、有効または無効にできます。

Disabled を設定すると、操作できなくなります。無効な Chip はフォーカスを受け取ることも選択することもできず、removable が設定されていても削除アイコンはレンダリングされません。

<IgbChip Disabled="true">Archived</IgbChip>

状態

ユーザーが Blazor Chip を操作すると、デフォルトのアイドル状態から、ホバー、フォーカス、選択済みの状態に変化します。

選択済み状態にするには、選択を有効にする必要があります。Selectable を設定すると、ユーザーは Chip をクリックするか Space または Enter を押して選択を切り替えることができます。切り替えるたびに Selected が更新され、新しい状態とともに選択イベントが発生します。初期状態を定義するには selected を設定します。

選択アイコンと押下状態は、selectable が設定されている場合にのみ表示されます。

<IgbChip Selectable="true" Selected="@isBold" SelectedChanged="OnSelectedChanged">Bold</IgbChip>

@code {
    private bool isBold = true;

    private void OnSelectedChanged(bool selected) => isBold = selected;
}

Chip の削除

削除可能な Blazor Chip は、末尾に削除アイコンを表示し、ユーザーはこれを操作して Chip の削除を要求します。

Removable を設定すると、アイコンが表示されます。アイコンを操作すると削除イベントが発生しますが、Chip はページ上に残ります。イベント ハンドラーで Chip、またはそれが表す項目を削除してください。

RemoveScript を通じて JavaScript ハンドラーを割り当て、ホスト ページが読み込むスクリプト ファイルで igRegisterScript を使用して登録します。

<IgbChip Removable="true" RemoveScript="handleChipRemove">Angular</IgbChip>
function handleChipRemove(event) {
    event.target.remove();
}

igRegisterScript("handleChipRemove", handleChipRemove, false);

Chips エリア

Chip のコレクションを整理するには、折り返し可能な flex コンテナーなど、間隔を空けて配置するコンテナーに Chip を配置します。

Blazor Chip には個別の Chips エリア コンポーネントがないため、コンテナーの CSS がレイアウトを決定します。

.chips-area {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

推奨 / 非推奨

Chip を使用すると、長円形がコンテンツに合わせて自動的にサイズ調整されるため、インスタンスのサイズを適宜調整するだけで済みます。Chip を関連コンテンツのアクション トリガーとして使用する場合は、使用可能なアクションが 1 つしかないシナリオや、選択可能なオプションが 1 つしかない構成での使用は避けてください。

関連するオプションのセットとして一緒に提供される、青、グレー、緑の 3 つの Chip推奨グループ化されたアクションや、関連する少数のオプションに Chip を使用します。
唯一のオプションとして提供される単一の青い Chip非推奨単一のアクションや単一の選択肢に Chip を使用することは避けてください。

プロパティ

Blazor Chip は、選択、削除、状態、外観に関するプロパティを公開します。

名前 型 デフォルト 説明
Disabled bool false Chip を無効にし、削除アイコンを非表示にします。
Removable bool false 削除アイコンを表示します。
Selectable bool false ユーザーが選択状態を切り替えられるようにします。
Selected bool false 選択状態を設定します。
Variant StyleVariant n/a 事前定義されたカラー バリアントを設定します。

イベント

Blazor Chip は、ユーザーが選択または削除するとイベントを発生させます。

名前 説明
SelectedChanged ユーザーが選択可能な Chip を切り替えたときに、新しい選択状態とともに発生します。
Select ユーザーが選択可能な Chip を切り替えたときに発生します。JavaScript で処理するには SelectScript を使用します。
Remove ユーザーが削除アイコンを操作したときに発生します。JavaScript で処理するには RemoveScript を使用します。

スタイル設定

トークン レベルの変更には Blazor Chip の CSS 変数を使用し、特定の要素を対象にする場合は CSS パーツを使用してスタイルを設定します。

変数 変更内容
--ig-chip-background デフォルト (アウトラインでない) Chip の背景。
--ig-chip-text-color デフォルト Chip のテキスト色。
--ig-chip-outlined-background アウトライン Chip の背景。
--ig-chip-outlined-text-color アウトライン Chip のテキスト色。
--ig-chip-border-color アウトライン Chip のボーダー色。
--ig-chip-border-radius Chip の角の半径。
--ig-chip-hover-background ホバー時のデフォルト Chip の背景。
--ig-chip-focus-background フォーカス時のデフォルト Chip の背景。
--ig-chip-focus-shadow-color Bootstrap テーマと Indigo テーマのフォーカス シャドウの色。
--ig-chip-selected-background 選択された Chip の背景。
--ig-chip-selected-text-color 選択された Chip のテキスト色。
--ig-chip-disabled-background 無効な Chip の背景。
--ig-chip-disabled-text-color 無効な Chip のテキスト色。
--ig-chip-remove-icon-color 削除アイコンの色。
--ig-chip-remove-icon-color-focus フォーカス時の削除アイコンの色。
--ig-chip-size Chip の高さ。
--ig-size Chip のサイズを導出するために使用される共有コンポーネント サイズ トークン。

IgniteUI.Blazor 26.1 の Chip にはアウトライン スタイルがないため、--ig-chip-outlined-background と --ig-chip-outlined-text-color は効果がありません。Chip は --ig-chip-focus-shadow-color の代わりに --ig-chip-focus-outline-color と --ig-chip-focus-selected-outline-color を読み取ります。

CSS パーツ 説明
base プレフィックス、コンテンツ、サフィックスをラップする選択ボタン。
prefix 選択アイコン、および start コンテンツと prefix コンテンツのコンテナー。
content デフォルト スロットのラッパー。
suffix end コンテンツと suffix コンテンツ、および削除アイコンのコンテナー。

Sass テーマ

アプリケーションが Sass を通じて Ignite UI テーマをカスタマイズする場合は、chip-theme 関数を使用します。$background (アウトライン Chip の場合は $outlined-background) を設定すると、テーマはそこからテキスト、ホバー、フォーカス、選択状態の色を導出します。特定の値が必要な場合は、他のパラメーターを上書きします。

@use "igniteui-theming/sass/themes" as *;

$custom-chip-theme: chip-theme(
  $background: #011627,
  $remove-icon-color: #fecc47
);

:root {
  @include tokens($custom-chip-theme);
}

CSS 変数

Sass ビルド手順なしでローカルにスタイルを設定する必要がある場合は、Chip の CSS 変数を直接設定します。Chip に設定するか、コンテナーに設定して内部のすべての Chip にスタイルを設定します。

.filter-chips {
  --ig-chip-background: var(--ig-primary-500);
  --ig-chip-text-color: var(--ig-primary-500-contrast);
  --ig-chip-remove-icon-color: var(--ig-primary-500-contrast);
}

Chip の単一の要素にスタイルを設定するには、その CSS パーツを対象にします。

igc-chip::part(suffix) {
  color: var(--ig-gray-400);
}

Tailwind によるスタイル設定

Tailwind ユーティリティ クラスを使用して Blazor Chip のスタイルを設定でき、[--ig-chip-background:var(--ig-primary-600)] のような任意のプロパティを通じて CSS 変数を設定できます。まず、Tailwindの説明に従って Tailwind をセットアップしてください。

アクセシビリティ

Blazor Chip は、キーボード操作をサポートし、その状態を支援技術に公開します。

キーボード操作

キーボード ユーザーは Tab で各 Chip に移動し、Chip が削除可能な場合は続けてその削除コントロールに移動します。無効な Chip はスキップされます。

キー アクション
Space / Enter 削除可能な Chip では、Selectable が設定されている場合に Selected を切り替え、選択イベントを発生させます。削除アイコンでは、削除イベントを発生させます。

IgniteUI.Blazor 26.1 では、削除可能でない Chip で Space を押しても選択は切り替わらず、Enter を押すと選択が切り替わり、削除イベントも発生します。

スクリーン リーダー / ARIA

Blazor Chip は、ネイティブ セマンティクスと ARIA 属性を通じて状態を公開します。

  • Chip はネイティブの button です。Selectable が設定されている場合、aria-pressed が Selected 状態を反映します。
  • デフォルトの選択アイコンには、aria-label “select chip” があります。
  • デフォルトの削除アイコンは、role="button"、tabindex="0"、aria-label “remove chip” を持ち、Chip のボタン内にレンダリングされるため、入れ子になったコントロールです。
  • アイコンがボタン内にレンダリングされるため、Chip のアクセシブルな名前にはそれらのラベルが含まれます (例: “Chip remove chip”)。
  • 無効な Chip はネイティブ ボタンを無効にするため、支援技術は Chip を利用不可として報告します。

アクセシビリティ コンプライアンス

インフラジスティックスは、Section 508 と WCAG 2.1 のガイドライン領域に対する Ignite UI for Blazor のアクセシビリティ サポートを、アクセシビリティ コンプライアンストピックで文書化しています。

基準 コンポーネントの準拠方法
1.4.1 色の使用 選択可能な Chip は、選択中の色に加えて、選択アイコンを表示します。
2.1.1 キーボード 削除可能な Chip では、Chip とその削除アイコンの両方が Space と Enter で動作します。削除可能でない Chip では、キーボード操作で説明されているとおり、Enter のみが選択を切り替えます。
2.1.2 キーボード トラップなし Tab と Shift + Tab でフォーカスが Chip の外に移動し、Chip がフォーカスを保持し続けることはありません。
2.4.3 フォーカス順序 フォーカスは、ドキュメント順に Chip から削除アイコンへ移動します。
2.4.7 フォーカスの可視化 フォーカスされた Chip は、フォーカス背景を表示します。Bootstrap テーマと Indigo テーマではフォーカス アウトラインも表示します。
4.1.2 名前、役割、値 Chip は押下状態を公開するネイティブ ボタンです。削除アイコンはボタン ロールとラベルを公開しますが、Chip のボタン内にレンダリングされるため、2 つは別々のコントロールではありません。

ユーザー側の責務:

  • すべての Chip に、それが表す項目を識別するテキスト ラベルを付けてください。

  • 削除イベント ハンドラーで Chip を削除した後は、次の Chip など、論理的な場所にフォーカスを移動してください。

  • テーマの色を上書きする場合は、Chip の背景とそのテキストおよびアイコンとの間に十分なコントラストを保ってください。

  • Chip のスタイルを変更する場合は、表示されるフォーカス インジケーターを維持してください。

  • 小サイズやカスタムの --ig-chip-size を使用する場合は、Chip とその削除コントロールをタップできる十分な大きさに保ってください。

  • カスタムの remove スロット コンテンツは、レイアウトで説明されているとおり、フォーカス可能でラベル付けされた状態に保ってください。

既知の例外:

  • igniteui-webcomponents 7.4.1 以前に基づくリリースでは、Chip 要素に設定した aria-label が選択ボタンに反映されないため、Chip のアクセシブルな名前は変更されません。代わりに、コンテンツを通じて Chip に名前を付けてください。

トラブルシューティング

変更やアップグレードの後に Chip が期待どおりに動作しない、または表示されない場合は、このセクションを参照してください。

削除アイコンをクリックしても Chip がページに残るのはなぜですか?

削除イベントはアプリケーションに通知するだけです。Chip の削除に示すように、イベント ハンドラーで Chip を削除してください。

API リファレンス

Chip の API 全体については、次の API リファレンスを参照してください。

IgbChip IgbIcon

依存関係

Blazor Chip は、Chip に含まれる IgbIcon コンポーネントを使用して、デフォルトの選択アイコンと削除アイコンをレンダリングします。

Chip のスロットに配置するカスタム アイコンは登録してください。

Chip は、デフォルトの外観に共有テーマ スタイルシートも使用します。

その他のリソース

サポートと関連する Ignite UI for Blazor ドキュメントについては、次のリソースを参照してください。

関連コンポーネント

Chip がインタラクションに最適でない場合は、次の関連コンポーネントを使用してください。

  • Button - フォームの送信やダイアログを開くなど、コマンドを実行するコントロール。
  • Checkbox - オン/オフの選択、または独立した選択肢のセットのためのフォーム コントロール。
  • Badge - ステータス、カウント、通知を示す、小さな非インタラクティブなインジケーター。

FAQ

Button の代わりに Chip を使用するのはどのような場合ですか?

Ignite UI for Blazor Chip は、タグ、フィルター、受信者など、ユーザーが選択または削除できる項目を表します。Button は単一のコマンドを実行するため、ユーザーが項目を選択または解除するのではなくアクションをトリガーする場合に選択してください。

一度に 1 つの Chip だけを選択できるようにするにはどうすればよいですか?

グループ内の各 Ignite UI for Blazor Chip の選択イベントを処理します。Chip が選択されたら、他の Chip の selected を false に設定します。

Chip の削除アイコンを置き換えることはできますか?

はい。Ignite UI for Blazor Chip の remove スロットに独自のコンテンツを配置します。組み込みのコントロールを置き換えるため、そのコンテンツはフォーカス可能でラベル付けされた状態に保ってください。

ユーザーは Chip を並べ替えることができますか?

直接はできません。Ignite UI for Blazor Chip にはドラッグや並べ替えのサポートがないため、データまたはマークアップ内の Chip の順序を変更してください。

Chip のサイズを変更するにはどうすればよいですか?

共有サイズ トークン var(--ig-size-small)、var(--ig-size-medium)、または var(--ig-size-large) のいずれかを、Ignite UI for Blazor Chip の --ig-size CSS 変数に割り当てます。