Card
fandhe-frontend-pre-styled-ui の card mod が提供するスタイル済み Card 部品です。
関連情報をひとまとめに表示するレイアウトコンテナです。header/body/footer/title/description/action/cover の 8 パーツを組み合わせて構造化できます(action/cover はイシュー #2046 で shadcn/ui 突合により純追加)。純粋なレイアウト部品のため role/aria-* は付与しません。
variant(elevated/outline/subtle)に加え、size(xs〜xl、既定 md)で padding・角丸・title の文字サイズが連動して変化します(chakra-ui/Radix Themes の Card を参考にした調整)。size sm 相当(shadcn/ui の size="sm")はこの 5 段の size 軸で包含済みのため別軸を追加していません。header/footer の区切り線は既定では持たず(chakra-ui/Radix Themes 準拠)、padding のみで段を分けます。
header へ data-has-action を付けると grid 化され、action パーツ(shadcn/ui CardAction 相当)が右上へ配置されます。cover パーツへ image::image を子として渡すと、上端の角が root の角丸に沿ってクリップされる cover image 枠になります。header/footer へ data-bordered を付けると、shadcn/ui の Header/Footer with Border 相当の 1px 区切り線が opt-in で表示されます(既定の区切り線なしは変わりません)。
Demo
variant(elevated / outline / subtle)・size(xs〜xl、padding / 角丸 / title の文字サイズが連動)を持つ装飾的コンテナ。イシュー #2046 で action(header 右上スロット)・cover(cover image 枠)・data-bordered(区切り線 opt-in)を shadcn/ui 突合により純追加した。border-beam(イシュー #2531)は card 専用ではなく任意要素へ外側からラップして付与できる opt-in 装飾で、card はその実演例です。
Elevated
card variant のデモです。
header / body / footer / title / description の slot 構成を持つ汎用コンテナです。
Outline
card variant のデモです。
header / body / footer / title / description の slot 構成を持つ汎用コンテナです。
Subtle
card variant のデモです。
header / body / footer / title / description の slot 構成を持つ汎用コンテナです。
Xs
Sm
Md
Lg
Xl
Team plan
action パーツのデモです。
Cover image
cover に image::image を子として渡す合成パターンです。
Sign in
Pro plan
Features
- CardVariant(Elevated/Outline/Subtle、crates/pre-styled-ui/src/card.rs:80-106 付近)で見た目を切り替える
- size(xs〜xl)で padding / 角丸 / title の文字サイズが root の
--fandhe-card-*custom property を通じて連動する(イシュー #1557。shadcn/ui の size="default"/"sm" はこの 5 段で包含済みと判断し変更していない、イシュー #2046) - header/body/footer/title/description/action/cover の 8 パーツでレイアウトを構造化する(action/cover はイシュー #2046 で shadcn/ui 突合により純追加)
- header へ
data-has-actionを渡すと grid 化され、action が右上 2 行にまたがって配置される(shadcn/uiCardAction相当、イシュー #2046) - cover へ image::image を子として渡すと cover image 枠になる(上端 2 角のみ root の角丸に沿ってクリップする、イシュー #2046)
- header/footer へ
data-borderedを渡すと 1px の区切り線が付く opt-in 状態(既定は #1557 のとおり区切り線なし、イシュー #2046) - body/footer へ
data-subtleを渡すと淡色背景の帯が付く opt-in 状態(既定は帯なし、イシュー #3127) - 純粋なレイアウトコンテナのため role/aria-* は付与しない(card.rs 冒頭)
Anatomy
root
header
title
description
body
footer
action
coverAPI Reference
Arguments
| Name | Type | Default | Description |
|---|---|---|---|
variant | CardVariant | Outline | 見た目(#[default] は Outline)。 |
size | Size | Md | サイズ。padding / 角丸 / title の文字サイズが連動する(root の --fandhe-card-*、イシュー #1557)。 |
Data Attributes
| Part | Attribute | Observed Values |
|---|---|---|
footer | data-bordered | (値なし) |
header | data-has-action | (値なし) |
CSS Variables
| Variable | Default |
|---|---|
--fandhe-card-padding | var(--fandhe-space-4) |
--fandhe-card-radius | var(--fandhe-radius-lg) |
--fandhe-card-title-font-size | var(--fandhe-font-font-size-lg) |
Examples
Elevated card
header/body/footer を組み合わせた Elevated variant の例です。
Title
Card with action
header に data-has-action を付け action(button)を右上へ配置する例です。
Team plan
3 members
Card with cover image
cover パーツへ image::image を子として渡す合成パターンです。
Cover image
Card with bordered footer
footer に data-bordered を付け 1px の区切り線を出す例です。
Sign in
Card with subtle footer
footer に data-subtle を付け淡色背景の帯を出す例です。
Sign in
Card with subtle body
body(最後の子)に data-subtle を付け淡色背景の帯を出す例です。
Summary
Accessibility
WAI-ARIA
| Attribute | Description |
|---|---|
| (該当なし) | 純粋なレイアウトコンテナであり role/aria-* を付与しない(card.rs 冒頭)。 |