Skyroc UI
数据展示

Card

用于承载相关内容与操作的卡片容器组件

卡片(Card)用于把标题、内容、操作区组合成一个独立的信息容器,适合展示模块、表单区块、数据概览或设置面板。

import { Card, CardContent, CardFooter, CardHeader, CardRoot, CardTitle, CardTitleRoot } from '@skyroc/web-ui';

架构说明

Card 由一组可独立使用的子组件组成,主组件负责把这些区域按常见卡片结构组合起来。

  • CardRoot:根容器,提供边框、圆角、背景、阴影和分隔布局。
  • CardHeader:头部区域,承载标题、标题插槽和右侧额外内容。
  • CardTitleRoot:标题行容器,负责标题前后插槽的排列。
  • CardTitle:标题文本节点,只在 title 是字符串或数字时由主组件自动包裹。
  • CardContent:主体内容区域,默认可滚动。
  • CardFooter:底部区域,用于放置操作或补充信息。

何时使用

  • 需要把一组相关信息组织成独立区块时。
  • 页面中存在多个平级模块,需要通过容器边界提升可扫描性时。
  • 内容需要标题、右侧操作、底部操作区等固定结构时。
  • 如果只是简单的文本提示,优先考虑 Alert;如果需要覆盖页面交互,优先考虑 Dialog 或 Drawer。

基础用法

通过 title 提供卡片标题,子节点会渲染到内容区。

Preview
Code
Loading...

仅内容

不传 titleheaderextra 时,Card 不会渲染头部,只保留内容区。

Preview
Code
Loading...

额外操作

通过 extra 在标题行右侧放置操作按钮、状态标签或菜单入口。设置 header 后会完全替换默认头部内容,此时 titleextratitleLeadingtitleTrailing 不再参与渲染。

Preview
Code
Loading...

标题插槽

通过 titleLeadingtitleTrailing 在标题前后添加图标、标签或状态信息。需要完全自定义标题行时,可以使用 titleRoot 替换默认标题行结构。

Preview
Code
Loading...

底部区域

footer 传入字符串或数字时,主组件会自动使用 CardFooter 包裹;传入 React 元素时会直接渲染该元素,适合完全自定义底部结构。

Preview
Code
Loading...

分隔

设置 split 后,卡片根容器会在头部、内容和底部区域之间添加分隔线。

Preview
Code
Loading...

尺寸

通过 size 调整卡片整体字号、标题字号、区域内间距和标题插槽间距,从 xs2xl 共 6 个尺寸。

尺寸内容内间距标题字号适用场景
xspx-2 py-1.5text-xs紧凑列表、嵌套面板
smpx-3 py-2text-sm侧栏模块、轻量面板
mdpx-4 py-3text-base常规场景(默认)
lgpx-5 py-4text-lg重点内容区块
xlpx-6 py-5text-lg宽松展示、设置面板
2xlpx-7 py-6text-xl大幅展示、首屏模块
Preview
Code
Loading...

API

Card

通用属性参考:支持原生 div 元素的所有属性。

属性说明类型默认值
children卡片主体内容,渲染到 CardContent 内ReactNode-
className根容器 class;存在时优先于 classNames.rootClassValue-
classNames各 slot 的自定义 class(root / header / titleRoot / title / content / footer)CardUi-
contentProps传递给 CardContent 的额外 propsCardContentProps-
extra头部右侧额外内容,通常放置操作按钮或状态标签ReactNode-
footer底部内容;字符串或数字会自动包裹为 CardFooter,React 元素会直接渲染ReactNode-
footerProps传递给自动生成的 CardFooter 的额外 propsCardFooterProps-
header自定义头部内容;设置后替换默认标题与 extra 结构ReactNode-
headerProps传递给 CardHeader 的额外 propsCardHeaderProps-
scrollable内容区是否添加滚动能力booleantrue
size尺寸,影响字号、内间距和标题插槽间距'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl''md'
split是否在卡片区域之间显示分隔线booleanfalse
title标题内容;字符串或数字会自动包裹为 CardTitleReactNode-
titleLeading标题前置内容,常用于图标ReactNode-
titleProps传递给自动生成的 CardTitle 的额外 propsCardTitleProps-
titleRoot自定义标题行内容;设置后替换默认 CardTitleRoot 结构ReactNode-
titleRootProps传递给 CardTitleRoot 的额外 propsCardTitleRootProps-
titleTrailing标题后置内容,常用于标签或状态ReactNode-

子组件

属性说明类型默认值
CardRoot根容器,支持原生 div 属性CardRootProps-
CardHeader头部容器,支持原生 div 属性CardHeaderProps-
CardTitleRoot标题行容器,支持标题前后插槽CardTitleRootProps-
CardTitle标题文本节点,支持原生 div 属性CardTitleProps-
CardContent内容区容器,支持滚动控制CardContentProps-
CardFooter底部容器,支持原生 div 属性CardFooterProps-

类型

CardProps

主组件属性。继承 CardRootProps,并增加头部、标题、内容区、底部和 slot class 配置。

字段类型说明
childrenReactNode卡片主体内容。
classNameClassValue根容器 class;存在时优先于 classNames.root。
classNamesCardUi各 slot 的自定义 class。
contentPropsCardContentProps内容区组件属性。
extraReactNode头部右侧额外内容。
footerReactNode底部内容。
footerPropsCardFooterProps底部组件属性。
headerReactNode自定义头部内容。
headerPropsCardHeaderProps头部组件属性。
scrollableboolean内容区是否添加滚动能力。
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'尺寸。来自 CardRootProps。
splitboolean是否显示区域分隔线。来自 CardRootProps。
titleReactNode标题内容。
titleLeadingReactNode标题前置内容。
titlePropsCardTitleProps标题文本组件属性。
titleRootReactNode自定义标题行内容。
titleRootPropsCardTitleRootProps标题行组件属性。
titleTrailingReactNode标题后置内容。

CardUi

Card 全部 slot 的 class 配置。

字段类型说明
rootClassValue根容器 class。
headerClassValue头部容器 class。
titleRootClassValue标题行容器 class。
titleClassValue标题文本 class。
contentClassValue内容区 class。
footerClassValue底部容器 class。

CardRootProps

根容器属性。支持原生 div 属性,并增加尺寸和分隔控制。

字段类型说明
childrenReactNode子节点。
classNameClassValue根容器 class。
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'尺寸,影响根容器字号。
splitboolean是否显示区域分隔线。

CardHeaderProps

头部容器属性。支持原生 div 属性,并增加尺寸控制。

字段类型说明
childrenReactNode头部内容。
classNameClassValue头部容器 class。
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'尺寸,影响头部内间距。

CardTitleRootProps

标题行容器属性。支持原生 div 属性、标题前置内容和标题后置内容。

字段类型说明
childrenReactNode标题行主体内容。
classNameClassValue标题行容器 class。
leadingReactNode标题行前置内容。
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'尺寸,影响标题行间距。
trailingReactNode标题行后置内容。

CardTitleProps

标题文本属性。支持原生 div 属性,并增加尺寸控制。

字段类型说明
childrenReactNode标题内容。
classNameClassValue标题文本 class。
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'尺寸,影响标题字号。

CardContentProps

内容区属性。支持原生 div 属性,并增加滚动和尺寸控制。

字段类型说明
childrenReactNode内容区内容。
classNameClassValue内容区 class。
scrollableboolean是否添加滚动能力。
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'尺寸,影响内容区内间距。

底部容器属性。支持原生 div 属性,并增加尺寸控制。

字段类型说明
childrenReactNode底部内容。
classNameClassValue底部容器 class。
size'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'尺寸,影响底部内间距。

ClassValue

CSS 类名类型

string | null | undefined | Record<string, boolean> | ClassValue[]

On this page