Close
Angular React Web Components Blazor Web Components
Open Source

Web Components List (リスト) の概要

Ignite UI for Web Components List 要素は、項目のグループを番号の付いた形式または黒丸の付いた形式のいずれかで提示する時に非常に役に立ちます。さまざまなレイアウト要素の配列を含むテキスト アイテムの単純なリスト、またはより複雑なリストを作成できます。List コンポーネントは項目の行を表示し、1 つ以上のヘッダーもサポートします。各リスト項目は完全にテンプレート化可能であり、有効な HTML またはその他のコンポーネントをサポートします。

Web Components List の例

次の例は、名前と電話番号のプロパティを持つ連絡先が入力されたリストを表しています。以下に示す List コンポーネントは、Avatar 要素と Button 要素を使用して、ユーザー エクスペリエンスを強化し、テキストと呼び出しアクションのアバター画像とボタンを設定する機能を公開します。

使用方法

List Web コンポーネントは、項目の垂直リストを簡単に表示できます。

まず、次のコマンドを実行して Ignite UI for Web Components をインストールする必要があります。

npm install igniteui-webcomponents

List を使用する前に、次のように登録する必要があります。

import { defineComponents, IgcListComponent } from 'igniteui-webcomponents';

defineComponents(IgcListComponent);

Ignite UI for Web Components の完全な概要については、作業の開始トピックを参照してください。

リスト項目の追加

これで、次のコードを追加して、項目の簡単なリストを取得できます。

    <igc-list>
        <igc-list-header>Header</igc-list-header>
        <igc-list-item>
            <h2 slot="title">Item 1</h2>
        </igc-list-item>
        <igc-list-item>
            <h2 slot="title">Item 2</h2>
        </igc-list-item>
        <igc-list-item>
            <h2 slot="title">Item 3</h2>
        </igc-list-item>
    </igc-list>

以下は結果です:

リスト項目を次のように強化できます。名前と名前の下に表示される電話番号を使用して連絡先のリストを作成するとします。これを実現するために、次の例に示すように、リスト項目に付属するいくつかのスロットを使用できます。

<igc-list>
    <igc-list-header>
        <h1>Contacts</h1>
    </igc-list-header>
    <igc-list-item>
        <h2 slot="title">Terrance Orta</h2>
        <span slot="subtitle">770-504-2217</span>
    </igc-list-item>
    <igc-list-item>
        <h2 slot="title">Richard Mahoney</h2>
        <span slot="subtitle">423-676-2869</span>
    </igc-list-item>
    <igc-list-item>
        <h2 slot="title">Donna Price</h2>
        <span slot="subtitle">859-496-2817</span>
    </igc-list-item>
</igc-list>

上記のコードを実装すると、リスト コンポーネントは次のようになります:

アバターおよびボタンの追加

他のコンポーネントのいくつかを List コンポーネントと組み合わせて使用して、エクスペリエンスを充実させ、いくつかの機能を追加することができます。名前や電話番号の値の左に画像のアバターを表示できます。さらに、右側にいくつかのボタンを追加して、ユーザーが連絡先にテキスト メッセージを送信したり電話をかけたりできるようにすることができるので、連絡先リスト コンポーネントを更新して、アバターとボタンを表示します。リスト項目のスロットのいくつかを使用することでそれを行うことができます。

    <igc-list>
        <igc-list-header>
            <h1>Job Positions</h1>
        </igc-list-header>
        <igc-list-item>
            <igc-avatar slot="start" src="https://randomuser.me/api/portraits/men/27.jpg" shape="circle">
                AA
            </igc-avatar>
            <h2 slot="title">Terrance Orta</h2>
            <span slot="subtitle">770-504-2217</span>
            <igc-button slot="end" variant="outlined">
                Text
            </igc-button>
            <igc-button slot="end" variant="outlined">
                Call
            </igc-button>
        </igc-list-item>
        <igc-list-item>
            <igc-avatar slot="start" src="https://randomuser.me/api/portraits/men/1.jpg" shape="circle">
                AA
            </igc-avatar>
            <h2 slot="title">Richard Mahoney</h2>
            <span slot="subtitle">423-676-2869</span>
            <igc-button slot="end" variant="outlined">
                Text
            </igc-button>
            <igc-button slot="end" variant="outlined">
                Call
            </igc-button>
        </igc-list-item>
        <igc-list-item>
            <igc-avatar slot="start" src="https://randomuser.me/api/portraits/women/50.jpg" shape="circle">
                AA
            </igc-avatar>
            <h2 slot="title">Donna Price</h2>
            <span slot="subtitle">859-496-2817</span>
            <igc-button slot="end" variant="outlined">
                Text
            </igc-button>
            <igc-button slot="end" variant="outlined">
                Call
            </igc-button>
        </igc-list-item>
    </igc-list>

start スロットは、リスト項目の他のすべてのコンテンツの前に、ある種のメディアを追加するために使用することを目的としています。ターゲット要素 (この場合は Avatar コンポーネント) にも、デフォルトの位置と間隔が提供されます。

end スロットは、switch、button、checkbox などで表される、ある種のアクションまたはメタデータを持つリスト項目に使用することを目的としています。Button コンポーネントを使用します。

また、ユーザーが --ig-size CSS 変数を使用してリストのサイズを変更できるようにしましょう。すべてのサイズ値を表示するために、いくつかのラジオ ボタンを追加します。このようにして、選択されるたびに、リストのサイズを変更します。

<igc-radio-group id="radio-group" alignment="horizontal">
    <igc-radio name="size" value="small" label-position="after">Small</igc-radio>
    <igc-radio name="size" value="medium" label-position="after">Medium</igc-radio>
    <igc-radio name="size" value="large" label-position="after" checked>Large</igc-radio>
</igc-radio-group>
this.list = document.getElementById('list') as IgcListComponent;
this.radioGroup = document.getElementById('radio-group') as IgcRadioGroupComponent;

this.radioGroup.addEventListener('click', (radio: any) => {
    this.list.style.setProperty('--ig-size', `var(--ig-size-${radio.target.value})`);
});

上記のコードを実装した結果は、次のようになります:

スロット用の推奨要素

titlesubtitle スロットにコンテンツを割り当てる場合、見出し要素 (<h1><h6>) ではなく <span> 要素を使用することをお勧めします。見出し要素にはフォント サイズ、行の高さ、マージンなどの組み込みスタイルが含まれており、コンポーネントが意図したタイポグラフィやレイアウトに干渉する可能性があります。<span> を使用することで、コンポーネントのスタイルをそのまま継承できるニュートラルなコンテナーになります。

最良の結果を得るに、メディア コンテンツを対象とした start スロットには <igc-avatar> コンポーネントを使用することをお勧めします。アクションを対象とした end スロットには、表示するコンテンツの種類に応じて <igc-button><igc-switch><igc-checkbox> などのコンポーネントを使用することをお勧めします。ただし、これら 2 つのスロットには、表示するコンテンツに適していれば、start スロットに <img>end スロットに <button> などのプレーン HTML 要素を使用することもできます。

<igc-list>
  <igc-list-header>Title</igc-list-header>
  <igc-list-item>
    <igc-avatar slot="start" src="https://randomuser.me/api/portraits/men/27.jpg"></igc-avatar>
    <span slot="title">Terrance Orta</span>
    <span slot="subtitle">770-504-2217</span>
    <igc-button slot="end" variant="outlined">Call</igc-button>
  </igc-list-item>
</igc-list>

スタイル設定

List はいくつかの CSS パーツを公開し、スタイルを完全に制御できるようにします。

名前説明
start開始のコンテナー。
end終了のコンテナー。
contentヘッダーとカスタム コンテンツのコンテナー。
headerタイトルとサブタイトルのコンテナー。
titleタイトルのコンテナー。
subtitleサブタイトルのコンテナー。
igc-list-header {
  font-size: 20px;
  font-weight: 700;
  color: var(--ig-primary-700);
}

igc-list-item::part(title) {
  font-size: 18px;
  color: var(--ig-primary-600);
}

igc-list-item::part(subtitle) {
  color: var(--ig-primary-300);
}

この記事では、List コンポーネントで多くのことを取り上げました。最初に、テキスト項目を含む簡単なリストを作成しました。次に、連絡先項目のリストを作成し、AvatarButton などの追加の Ignite UI for Web Components コンポーネントを使用してそれらに機能を追加しました。最後に、公開された CSS パーツを使用してコンポーネントの外観を変更しました。

API リファレンス

Avatar
Button
RadioGroup
Radio
ListHeader
ListItem
List

その他のリソース