组件

Card

可从服务端渲染的 React 卡片,采用 Liquid Glass 表面,包含 header、body 与 footer。

Card 是原生布局原语:它没有交互状态,其余原生属性(包括 style)会透传到根 div。它可在 React Server Component 中渲染,且不支持 render 属性。可以用 ui 调整玻璃层或任意内部区域。

基础示例

下面的卡片来自真实组件,结构与代码示例一致。

Liquid glass
A CSS-only frosted glass panel.
Place the card over a detailed background to see the glass effect.

仅内容

不传 title、description 或 footer 时,对应的区域不会渲染:

A card with only a body.

无障碍

Card 是非交互容器,没有自己的角色或状态。请为 title 使用真实标题,或在正文中添加自己的标题,让卡片出现在文档大纲中。

整张卡片需要可点击时,应在标题中放置一个链接或按钮,而不是给根元素添加点击处理函数。标签规范见可访问性指南。

API 参考

属性类型默认值说明
titleReactNode—卡片标题,渲染为 div。
descriptionReactNode—标题下方的说明文字。
footerReactNode—底部操作区。
childrenReactNode—卡片主体内容。
refRef<HTMLDivElement>—转发到根元素的 ref。
classNamestring—合并到 root,用于布局。
styleCSSProperties—内联样式,合并到与 className 相同的元素。
ui{ root?: ClassValue; glass?: ClassValue; overlay?: ClassValue; layout?: ClassValue; header?: ClassValue; title?: ClassValue; description?: ClassValue; body?: ClassValue; footer?: ClassValue }—按 data-slot 组织的内部槽位类名。
属性说明
data-slot标记内部部件(root、glass、overlay、layout、header、title、description、body、footer),用于样式选择。

主题

组件使用共享玻璃材质。可以在父级调整 --ui-glass-* token,用 className 控制布局,并通过 ui 按 data-slot 调整内部槽位。组件级数值位于 src/theme/card.ts。Token 分层与预设见主题指南。

相关组件

  • Accordion — 可折叠的内容分组。
  • Tabs — 在卡片大小的视图之间切换。
  • Scroll Area — 卡片内容需要独立滚动时使用。