Close
Angular React Web Components Blazor Blazor
Open Source

Badge (バッジ) コンポーネント

Blazor Badge コンポーネントはプラットフォーム固有の Ignite UI for Blazor パッケージによって提供され、視覚的な通知が必要な場合に、アプリケーション内でアバター、ナビゲーション メニュー、またはその他のコンポーネントと組み合わせて使用されます。バッジは通常、情報、成功、警告、またはエラーを伝えるために事前定義されたスタイルで設計されています。

ライブ デモ

Blazor Badge のデモは、このコンポーネントが他のインターフェース要素の隣でコンパクトなステータスや通知をどのように伝えられるかを示します。

構造

Blazor Badge は、他のインターフェース要素を装飾するコンパクトなラベルまたはドット インジケーターを表示します。

Badge anatomy
1. ドット インジケーター: ステータスや新しい更新を示すために使用される小さなバッジ ドットです。
2. アイコン: ステータスやアクションの種類を表します。
3. コンテナー: アイコンやラベルを保持してスタイルを適用するバッジの形状です。
4. ラベル: バッジ内に表示されるテキストまたは数字です。

このコンポーネントは、base CSS パーツ内にコンテンツをレンダリングします。テキストやその他のインライン コンテンツにはコンポーネントのデフォルト スロットを使用してください。dot が有効になっている場合、バッジはコンテンツのないインジケーターとしてレンダリングされます。

<igc-badge>
└── ::part(base)
  └── default slot content
</igc-badge>

作業の開始

Blazor Badge を使用するには、まず Ignite UI for Blazor の作業の開始 トピックに従って基本的なプロジェクトのセットアップを行い、その後、対象プラットフォーム用にコンポーネントを登録してください。

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

// in Program.cs file

builder.Services.AddIgniteUIBlazor();

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

また、スタイルを IgbBadge コンポーネントに適用するために、追加の CSS ファイルをリンクする必要があります。以下は、アプリのホスト ページ (スタンドアロンの Blazor WebAssembly アプリまたは Blazor Hybrid アプリでは wwwroot/index.html、Blazor Server アプリでは Pages/_Host.cshtml、Blazor Web App では Components/App.razor) に配置してください:

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

IgbBadge の使用を開始する最も簡単な方法は次のとおりです:

<IgbBadge />

使用方法

Blazor Badge を使用して、他のコンポーネントと並べて短いステータス、カテゴリ、カウント、または通知インジケーターを表示します。

次の例は、Avatar 上に表示される success バッジを示しています。プラットフォーム固有のパッケージから Badge と Avatar コンポーネントをインポートし、相対位置指定のラッパー内に Badge を配置します。

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

// in Program.cs file

builder.Services.AddIgniteUIBlazor();

コンポーネントを Razor マークアップに追加します:

<div class="wrapper">
  <IgbAvatar Icon="person" Shape="AvatarShape.Circle" Size="AvatarSize.Small" />
  <IgbBadge Icon="check" Variant="@StyleVariant.Success" />
</div>

相対位置指定のラッパーを使用して、バッジを Avatar の上に配置します:

.wrapper {
  position: relative;
  margin-top: 15px;
}

タイプ

Ignite UI for Blazor Badge は、数字やアイコンなど、さまざまな種類のコンテンツを持つことができます。

value プロパティを使用して、バッジ内にテキストや数値のカウントを表示します:

<IgbBadge Variant="@StyleVariant.Primary">12</IgbBadge>

コンテンツを子要素として直接指定することもできます。アイコンとテキストの両方を子要素として指定する場合は、正しいパディングを保つためにテキストをラップしてください。

<IgbBadge>
  <IgbIcon Name="bluetooth" />
  <span>Bluetooth</span>
</IgbBadge>

アイコン

バッジの子コンテンツとしてアイコンを追加します:

<IgbBadge Variant="@StyleVariant.Success">
  <IgbIcon Name="heart-monitor" />
</IgbBadge>

カスタム アイコンの場合は、プラットフォームのアイコン サービスにアイコンを登録し、バッジの子コンテンツとしてレンダリングします。

たとえば、バッジで使用する前に SVG アイコンを登録します:

@code {
  private IgbIcon icon;

  protected override async Task OnAfterRenderAsync(bool firstRender)
  {
    if (firstRender && icon != null)
    {
      await icon.EnsureReady();
      await icon.RegisterIconFromTextAsync(
        "heart-monitor",
        "<svg viewBox=\"0 0 24 24\"><path d=\"M3 12h4l2-6 4 12 2-6h6\" /></svg>",
        "custom");
    }
  }
}

ドット

Ignite UI for Blazor Badge は、dot 属性を設定することで、通知用の最小限のドット インジケーターとしてレンダリングすることもできます。ドット バッジはコンテンツをサポートしませんが、アウトライン表示が可能で、利用可能なすべてのドット タイプ (例: primary、success、info) を使用できます。

コンテンツのない最小限の通知インジケーターをレンダリングするには、dot 属性を設定します:

<IgbBadge Dot="true" />

サイズ

--size CSS 変数でバッジのサイズを制御します。16px より小さいテキスト バッジの場合は、フォント サイズと行の高さも調整してください:

igc-badge {
  --size: 12px;

  font-size: calc(var(--size) / 2);
  line-height: normal;
}

形状

バッジ コンポーネントは、rounded (デフォルト) と square の形状をサポートします。これらの値は Shape 属性に割り当てることができます。

<IgbBadge Shape="@BadgeShape.Square" />

バッジの形状が square の場合、--border-radius CSS 変数を使用してカスタムのボーダー半径を設定することでさらにカスタマイズできます。

バリアント

Ignite UI for Blazor Badge は、いくつかの事前定義されたスタイルのバリアント (Primary、Info、Success、Warn、Error) をサポートします。サポートされている値 primary、info、success、warning、danger のいずれかを variant 属性に割り当てます。

<IgbBadge Variant="@StyleVariant.Success" />

アウトライン

outlined 属性を設定すると、バッジの周囲に控えめなボーダーを表示することもできます。

<IgbBadge Outlined="true" />

アウトライン バッジのボーダー カラーは、--border-color CSS 変数を使用してカスタマイズすることもできます。

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

使用すべき場合: バッジを使用して、他のコンポーネントと並べて短いステータス、カテゴリ、カウント、または通知の状態を伝えます。インジケーターに表示テキストが不要な場合は dot を使用します。

使用すべきでない場合: アクションのための主要なコントロールとして、フォームの検証メッセージの代わりとして、またはバッジのコンテンツ、周囲のコンテキスト、アクセシブルなラベルからステータスを理解できない場合に、バッジを使用しないでください。

使用すべき使用すべきでない
Badge used with an Avatar and a text label Badge examples used without a surrounding interface element

プロパティ

Blazor Badge は、コンテンツ、外観、インジケーターの動作を制御するためのプラットフォーム固有のプロパティを公開します。

Blazor Badge は、次のプロパティを公開します。

名前 型 デフォルト 説明
dot boolean false バッジをドット インジケーターとしてレンダリングします。
outlined boolean false バッジの周囲にアウトラインを表示します。
shape BadgeShape rounded バッジの形状を設定します。
variant StyleVariant primary バッジのスタイルのバリアントを設定します。

スタイル設定

Blazor Badge は、IgbBadge コンポーネントの base CSS パーツと、ドキュメント化されたスタイル設定変数を使用して外観をカスタマイズします。

Sass テーマ

Ignite UI for Blazor のテーマ システムを使用して、アプリケーションの他の部分と一貫性のあるスタイルでバッジをスタイル設定します。

CSS 変数

変数 変更内容
--background-color バッジの背景色。
--border-color バッジのボーダー カラー。
--border-radius バッジの角の半径。
--elevation バッジのシャドウ。
--icon-color バッジのアイコンの色。
--text-color バッジのテキストの色。
--size バッジのサイズ。
--dot-size ドット タイプのバッジのサイズ。

スタイル パーツ

パーツ スタイル対象
base バッジのルート要素。
igc-badge::part(base) {
  --background-color: var(--ig-error-A100);
  --border-radius: 2px;
}

Tailwind によるスタイル設定

igniteui-theming のカスタム Tailwind ユーティリティ クラスを使用してバッジをスタイル設定できます。事前に Tailwind をセットアップ し、その後グローバル スタイルシートで Ignite UI ユーティリティをインポートしてください:

@import "tailwindcss";
@import "igniteui-theming/tailwind/utilities/material.css";
<IgbBadge Class="!light-badge ![--background:#FF4E00] ![--border-radius:4px]"></IgbBadge>

感嘆符 (!) により、Tailwind ユーティリティがバッジのデフォルトのテーマ スタイルより優先されます。

アクセシビリティ

Blazor Badge は、短いカウント、状態、または通知を伝える非インタラクティブなステータス表示です。

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

バッジはフォーカスを受け取らず、キーボード入力を処理せず、コンポーネントのインタラクション イベントを公開しません。

キー アクション
n/a バッジはキーボードによるインタラクティブ操作に対応していません。

スクリーン リーダー / ARIA

バッジ ホストは role="status" を使用して、コンテンツをステータス情報として公開します。

  • コンポーネントは aria-roledescription を設定して、バッジとその現在の variant を識別します。
  • テキストのないバッジ (dot バッジを含む) が支援技術では他に得られないステータスを伝える場合は、aria-label を追加してください。
  • バッジのコンテンツまたはアクセシブルなラベルは、装飾されるアイテムに固有のものにしてください。例えば、単に 3 ではなく 3 件の未読メッセージ のように記述してください。

アクセシビリティ準拠

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

基準 コンポーネントの準拠方法
4.1.2 名前、役割、値 バッジはセマンティックな status ロールを公開します。xplat 実装は現在のバリアントに基づくロールの説明も公開します。Angular はバッジの種類とコンテンツに基づいてアクセシブルなラベルとロールの説明を公開します。

ユーザー側の責任:

  • バッジに意味のあるテキストがない場合、特に dot バッジの場合は、ステータスを説明するアクセシブルな名前を提供してください。
  • バッジの色のみをステータスの表示手段として使用しないでください。テキスト、アイコン、または他のアクセシブルな手掛かりと組み合わせてください。
  • テーマ スタイルをオーバーライドする際は、バッジの前景色と背景色のコントラストを十分に確保してください。

トラブルシューティング

Badge をインタラクティブなコントロールとして扱ったり、ステータスの唯一の表示手段として扱ったりする前に、このセクションで制約と一般的な判断のポイントを確認してください。

カスタムの背景色を設定してもバッジが変わらないのはなぜですか?

選択した variant は --background-color CSS 変数よりも優先されます。カスタムの背景色を使用するには、独自の背景色を適用するバリアントを設定しないようにしてください。

ドット バッジにコンテンツが表示されないのはなぜですか?

dot プロパティはバッジを最小限のインジケーターとしてレンダリングし、コンテンツをサポートしません。テキストやその他のインライン コンテンツを表示する必要がある場合は、通常のバッジを使用してください。

既知の制限

Blazor Badge には、次のプラットフォームに依存しない制限があります。

  • ドット バッジはインジケーターのみであり、テキストやアイコンを表示できません。
  • バッジのスタイルおよびバリアント/種類の名前は、Angular とその他のサポートされているフレームワーク間で異なります。属性をフレームワーク間でそのままコピーせず、このページのプラットフォーム固有の例と API リンクを使用してください。
  • バッジは視覚的なステータス インジケーターであり、単体でキーボード インタラクションを提供しません。

API リファレンス

Blazor Badge の API リファレンスには、対象プラットフォームの完全に検証された API サーフェスが記載されています。

IgbBadge

依存関係

Blazor Badge は、視覚的なスタイルを適用するためにテーマ スタイルシートを必要とします。フレームワーク固有のセットアップについては、作業の開始 を参照してください。

その他のリソース

以下のリソースでは、Blazor Badge に関する追加のガイダンスとプロジェクトのサポートを提供します。

関連コンポーネント

Blazor Badge は、ステータス インジケーターが他の視覚的要素に属する場合、Avatar などの関連コンポーネントと組み合わせて使用されることが一般的です。

  • Avatar - Avatar と Badge を組み合わせてステータス インジケーターを表示します。

FAQ

バッジはアイコンとテキストの両方を表示できますか?

はい。テキストには Badge のコンテンツ領域を使用し、視覚的なインジケーターにはサポートされているアイコン コンテンツを使用します。コンパクトなステータスまたはカテゴリのラベルとして機能するように、組み合わせは短くしてください。

コンテンツのない通知ドットを表示するにはどうすればよいですか?

プラットフォーム固有の dot プロパティまたは属性を設定します。ドット バッジは、意図的にテキストやその他のコンテンツなしでレンダリングされます。

テキスト バッジではなくドット バッジを使用するのはどのような場合ですか?

ステータスが存在するかどうかだけで伝わる場合は、ドット バッジを使用します。ユーザーが色や位置に頼らずにステータス、カテゴリ、またはカウントを理解する必要がある場合は、テキスト バッジを使用します。

Badge にはどのパッケージをインストールすればよいですか?

Angular には igniteui-angular、React には igniteui-react、Web Components には igniteui-webcomponents、Blazor には IgniteUI.Blazor を使用してください。関連する Ignite UI パッケージは同じリリース バージョンに揃えてください。