コンテンツにスキップ

アイテム

hc-item は汎用のプリミティブです: メディアスロット(アイコン / アバター)、コンテンツ列(タイトル + 説明)、後置のアクション。素の リスト、オプション行、そしてコマンドやメニューの項目が一貫した見た目の ために採用できる共有の構成部品として使います。純 CSS です — <div><li><a><button> のどれとしても描画できます。

別名: リストアイテム、メディアオブジェクト。

Quarterly reportUpdated 2 days ago

メディアスロットとアクションは任意です。タイトルだけのアイテムも、 タイトル + 説明のアイテムも構いません。

アイテムを <a><button> として描画すると、ホバーのハイライトと フォーカスリングが付きます。非インタラクティブな要素では data-selectable はホバーのハイライトだけを足します — フォーカス リングにはさらにフォーカス可能な要素(<a><button>、または tabindex)が必要です。選択は aria-selected(または data-selected)で印を付けます。

本物の選択可能リストにはリストボックスの role を使ってください — aria-selected は、素のボタンではなく role="listbox" 内の role="option" に属します:

<ul role="listbox" aria-label="Pick one">
<li class="hc-item" role="option" aria-selected="true" tabindex="-1"></li>
</ul>

ナビゲーションリストでは、現在のページのリンクが aria-current="page" を取り、同じ選択時の見た目になります — シェル → サイドバーのナビゲーション項目を 参照:

<a class="hc-item" href="/studio" aria-current="page"></a>

一致するルートでサーバサイドに設定するか、 data-hc-nav-currentに URL から自動で印を付けさせてください。

data-variant="error" は破壊的な行のためにタイトルとメディアを 色づけます。

  • hc-item自身の role を持ちません — 文脈に合わせて要素を選んで ください: アクションには <button>、ナビゲーションには <a>、素の リストには(<ul>/<ol> 内の)<li>、複合ウィジェット内では [role] の行。
  • 装飾のメディアグリフは aria-hidden="true" にすべきです。 アクセシブルな名前はタイトルです。
  • 選択可能なリストでは、素の <div> ではなく、適切なコンテナ role (例: role="listbox" + role="option")を持つ要素内の項目に aria-selected を使ってください。
  • error の色味だけに頼らないでください — 文言を明示的に保ちます (「プロジェクトを削除」「元に戻せません」)。

このプリミティブは単体で導入されています。一貫した行の見た目のために、 次のものは後でこの上にリファクタリングされえます — ここではなく、 別々の変更として: hc-menu の項目、 hc-command の結果行、 アプリコード内のその場しのぎのリスト行。

トークンパス用途
item.gapメディア / コンテンツ / アクション間のギャップ。
item.padding-x / -y行のパディング。
item.radius行の角丸。
item.fg行のテキスト色。
item.hover-bgホバーの背景(インタラクティブ時)。
item.selected-bg / -fg選択された行の色。
item.media-size / -fgメディアスロットのサイズ / 色。
item.title-fg / -font-weightタイトルの文字。
item.description-fg / -font-size説明の文字。
生成される CSS 変数を表示
--hc-item-gap | -padding-x | -padding-y | -radius | -fg
--hc-item-hover-bg | -selected-bg | -selected-fg
--hc-item-media-size | -media-fg
--hc-item-title-fg | -title-font-weight | -description-fg | -description-font-size
  • メニュー — ドロップダウンの項目(この行の将来の採用者)。
  • コマンド — コマンドパレットの行(将来の採用者)。
  • アバター — 定番のメディアスロット。

レシピでの利用: トランスファー