Card
コンテンツをまとめるサーフェスです。3つのバリアント、端まで広がるメディア、同心円状の角丸、カード全体のリンクに対応します。
pnpm dlx shadcn@latest add https://hextaui.com/r/card.jsonコンポーネント、HextaUIのテーマトークン、依存するHextaUIコンポーネントを追加します。
まだ追加していない場合は、グローバルCSSにテーマトークンを追加してください。
依存関係をインストールします。
pnpm add @base-ui/react class-variance-authority cn次のコードをコピーしてプロジェクトに貼り付けてください。
components/ui/card.tsx インポートパスは、お使いのプロジェクト構成に合わせて更新してください。
バリアント
default は細いリングと柔らかい影を持ち、outline は塗りと影をなくし、muted は控えめなセクション向けに塗りの面を使います。
サイズ
size="sm" は余白、角丸、タイトルサイズをまとめて小さくするため、コンパクトなカードも同じファミリーの一部に見えます。size="flush" は内側の余白をなくし、リストや、独自のパディングを持つ折りたたみ可能な行などのカスタムレイアウト向けです。
メディア
先頭または末尾に置いた画像、動画、picture、アスペクト比は、端から端まで広がります。カードはその側のパディングをなくし、メディアをカードの角でクリップします。
クリック可能なカード
タイトルに <CardLink /> を入れると、カード全体が 1 つのリンクになります。内側のボタンなどのコントロールはクリック可能なままで、ここにある星のように、それぞれ独自のフォーカスを保ちます。
クリック可能な variant
各 variant は、リンクを含むとそれぞれ独自のホバーフィードバックを持ち、リンクがキーボードでフォーカスされると、フォーカスリングがカード全体を囲みます。
枠線
ヘッダーに border-b、フッターに border-t を追加すると、カードが内側に対応するパディングを追加します。
入れ子
CardContent 内のカードは、親の角丸の半径から余白を引いた値を自分の角丸にするため、角は同心のままです。
長いコンテンツ
区切りのないタイトル、長い URL、絵文字、CJK のテキストは、狭いカードでもカードを広げず、内側で折り返されます。
セマンティクス
すべてのパーツが render prop を受け取るため、カードを本物の見出し、ヘッダー、フッターを持つ <article> にできます。
右から左
アクションは行頭側に移動し、フッターは読む方向に従います。
カード自体はフォーカスできません。これらのキーは、<CardLink /> を含む場合に適用されます。
| キー | アクション |
|---|---|
| Tab | カードのリンクにフォーカスしてカード全体にフォーカスリングを描画し、その後カード内の各コントロールに移動します。 |
| Enter | カードのリンクに追従します。 |
- リンクのアクセシブルな名前はそのテキスト自体になるため、カード全体をアンカーで囲まず、
<CardLink />をタイトルの内側に置いてください。 - クリック可能なカード内のコントロールは、リンクのヒット領域より前面に持ち上げられるため、ポインターとキーボードの両方で操作できます。
<CardTitle />にrenderを使うと、ページに合った見出しレベルをタイトルに与えられます。
各パーツはデフォルトで <div> をレンダリングし、その属性を受け付け、要素を差し替える render prop を受け取ります。
| プロパティ | 型 | デフォルト |
|---|---|---|
variant | "default" | "outline" | "muted" | "default" |
size余白、角丸、タイトルサイズをまとめて拡大縮小します。 | "default" | "sm" | "flush" | "default" |
render | ReactElement | (props, state) => ReactElement | <div> |
| 属性 | 説明 |
|---|---|
data-slot="card" | CSSでカードを指定します。 |
data-variant | 現在のバリアント。 |
data-size | 現在のサイズ。 |
data-link | カードに CardLink が含まれている間、付与されます。 |
--card-spacing | すべてのパーツで共有される内側の余白。size によって設定されます。 |
--card-radius | 角丸の半径。ネストしたカードは親から算出します。 |
--card-title-size | CardTitle に使われるフォントサイズ。 |
| プロパティ | 型 | デフォルト |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| 属性 | 説明 |
|---|---|
data-slot="card-header" | CardAction を上端の終了側の角に配置するグリッド。 |
| プロパティ | 型 | デフォルト |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| 属性 | 説明 |
|---|---|
data-slot="card-title" | タイトルを指定します。 |
| プロパティ | 型 | デフォルト |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| 属性 | 説明 |
|---|---|
data-slot="card-description" | 説明を指定します。 |
| プロパティ | 型 | デフォルト |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| 属性 | 説明 |
|---|---|
data-slot="card-action" | タイトルと説明の行にまたがり、CardLink のヒット領域の上に配置されます。 |
| プロパティ | 型 | デフォルト |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| 属性 | 説明 |
|---|---|
data-slot="card-content" | カードの角丸と余白を、ネストしたカードに引き継ぎます。 |
| プロパティ | 型 | デフォルト |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <div> |
| 属性 | 説明 |
|---|---|
data-slot="card-footer" | フッターを指定します。 |
| プロパティ | 型 | デフォルト |
|---|---|---|
href | string | – |
renderここにルーターのリンクコンポーネントを渡します。 | ReactElement | (props, state) => ReactElement | <a> |
| 属性 | 説明 |
|---|---|
data-slot="card-link" | ヒット領域をカード全体に広げます。 |
- Avatarイニシャルのフォールバック、ステータスバッジ、件数にまとめられる積み重ねグループを備えたユーザー写真です。
- Badge色付きのドットを持つステータスラベル、スライドして閉じる削除可能なタグ、新しい値へ回転するカウントです。
- Chartテーマ対応の色を持つRechartsのチャートです。1つの設定からラベルを読み取るツールチップと凡例、見えるフォーカスリングつきのキーボード操作に対応します。
- Data table実データのためのテーブルです。並べ替え、検索、行の選択、固定列、スティッキーヘッダー、ページネーションを備えています。
- Itemリスト、設定、ピッカー向けに、メディア、テキスト、操作を並べた行です。グループ化されたサーフェスと、行の間を滑るように移動するホバーハイライトを備えています。
- Kbdショートカット用のキーキャップです。プラットフォームごとに正しい記号を表示し、正しく読み上げ、実際のキーと同じように押し込まれます。
使用しているブロック
Card の上に構築されるブロック。
- Code BlockAIの回答向けに作られたコードブロックです。ストリーミングに追従するシンタックスハイライト、コピー、ダウンロード、折り返し、行番号とハイライト行、承認と却下のある差分、コマンド用のターミナルを備えています。
- Diff Reviewエージェントによる編集を、反映される前にファイルをまたいで確認します。件数つきのファイルツリー、変更ごと、ファイルごと、またはすべてに対する承認と却下、任意の行や範囲に付けてエージェントへ返せるコメント、ユニファイドビューとスプリットビュー、単語単位のハイライト、取り消し、ストリーミングされる編集、チャット向けの「Edited 4 files」サマリーを備えています。
- Tool Callsエージェントの動作を、1ステップにつき1行で表示します。読み取りと検索は短い要約にまとめられ、編集、コマンド、承認、エラーは表示されたままになります。各ステップは、ファイル、差分、ターミナル、結果といった実際のビューに展開できます。AI SDKのすべてのツール状態に対応し、理由を添えて断る承認も含みます。