Skyroc UIDocs
数据展示
SKYROC UI · COMPONENT

Card

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

@skyroc/web-uiTypeScriptRadix foundation

卡片(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 提供卡片标题,子节点会渲染到内容区。

预览
代码
Loading...

仅内容

不传 title、header 或 extra 时,Card 不会渲染头部,只保留内容区。

预览
代码
Loading...

额外操作

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

预览
代码
Loading...

标题插槽

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

预览
代码
Loading...

底部区域

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

预览
代码
Loading...

分隔

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

预览
代码
Loading...

尺寸

通过 size 调整卡片整体字号、标题字号、区域内间距和标题插槽间距,从 xs 到 2xl 共 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大幅展示、首屏模块
预览
代码
Loading...

API

Card

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

Props属性、类型与默认值
18 properties
属性说明类型默认值
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-

子组件

Props属性、类型与默认值
6 properties
属性说明类型默认值
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