JGuang

卡片

Card · Ant Design

交互预览
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

卡片

通用卡片容器。

何时使用

最基础的卡片容器,可承载文字、列表、图片、段落,常用于后台概览页面。

代码演示

  • 典型卡片 · basic
  • 无边框 · border-less
  • 简洁卡片 · simple
  • 更灵活的内容展示 · flexible-content
  • 栅格卡片 · in-column
  • 预加载的卡片 · loading
  • 网格型内嵌卡片 · grid-card
  • 内部卡片 · inner
  • 带页签的卡片 · tabs
  • 支持更多内容配置 · meta
  • 自定义语义结构的样式和类 · style-class

API

通用属性参考:通用属性

<Card title="卡片标题">卡片内容</Card>
参数说明类型默认值版本全局配置
actions卡片操作组,位置在卡片底部Array<ReactNode>-×
activeTabKey当前激活页签的 keystring-×
bordered是否有边框, 请使用 variant 替换booleantrue×
bodyStyle卡片内容区域样式,请使用 styles.body 替代CSSProperties--×
variant形态变体outlined | borderlessoutlined5.24.05.24.0
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-5.14.0
cover卡片封面ReactNode-×
defaultActiveTabKey初始化选中页签的 key,如果没有设置 activeTabKeystring第一个页签的 key×
extra卡片右上角的操作区域ReactNode-×
hoverable鼠标移过时可浮起booleanfalse×
headStyle卡片头部样式,请使用 styles.header 替代CSSProperties--×
loading当卡片内容还在加载中时,可以用 loading 展示一个占位booleanfalse×
sizecard 的尺寸medium | smallmedium×
tabBarExtraContenttab bar 上额外的元素ReactNode-×
tabList页签标题列表TabItemType[]-×
tabPropsTabs--×
title卡片标题ReactNode-×
type卡片类型,可设置为 inner 或 不设置string-×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-5.14.0
onTabChange页签切换的回调(key) => void-×

Card.Grid

参数说明类型默认值版本
hoverable鼠标移过时可浮起booleantrue

Card.Meta

参数说明类型默认值版本全局配置
avatar头像/图标ReactNode-×
description描述内容ReactNode-×
title标题内容ReactNode-×

Semantic DOM

Card

语义节点原生说明版本
root卡片根元素,包含位置定位、背景色、边框、圆角、阴影、内边距等卡片容器的基础样式6.0.0
header卡片头部区域,包含 flex 布局、最小高度、内边距、文字颜色、字体权重、字体大小、背景色、下边框、顶部圆角等样式5.14.0
title卡片标题,包含行内块布局、flex 占比、文本省略等标题显示样式5.14.0
extra卡片右上角的操作区域,包含额外内容的文字颜色和布局样式5.14.0
cover标题封面,包含封面图片的显示和布局样式5.14.0
body卡片内容区域,包含内边距、字体大小等内容展示的基础样式5.14.0
actions卡片底部操作组,包含 flex 布局、列表样式重置、背景色、上边框、底部圆角等操作按钮容器样式5.14.0

语义说明来源: vendor/components/card/demo/_semantic.tsx

Card.Meta

语义节点原生说明版本
root设置元信息根元素6.0.0
section设置元信息内容元素6.0.0
avatar设置元信息图标6.0.0
title设置元信息标题6.0.0
description设置元信息描述6.0.0

语义说明来源: vendor/components/card/demo/_semantic_meta.tsx

主题变量(Design Token)

类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。

令牌类型原生说明
headerBgstring卡片头部背景色
headerFontSizenumber | string卡片头部文字大小
headerFontSizeSMnumber | string小号卡片头部文字大小
headerHeightnumber | string卡片头部高度
headerHeightSMnumber | string小号卡片头部高度
bodyPaddingSMnumber小号卡片内边距
headerPaddingSMnumber小号卡片头部内边距
bodyPaddingnumber卡片内边距
headerPaddingnumber卡片头部内边距
actionsBgstring操作区背景色
actionsLiMarginstring操作区每一项的外间距
tabsMarginBottomnumber内置标签页组件下间距
extraColorstring额外区文字颜色

声明来源: vendor/components/card/style/index.ts

import { unit } from '@ant-design/cssinjs';

import type { CSSObject } from '@ant-design/cssinjs';

import { clearFix, resetComponent, textEllipsis } from '../../style';

import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';

import { genStyleHooks, mergeToken } from '../../theme/internal';

export interface ComponentToken {
  /**
   * @desc 卡片头部背景色
   * @descEN Background color of card header
   */
  headerBg: string;
  /**
   * @desc 卡片头部文字大小
   * @descEN Font size of card header
   */
  headerFontSize: number | string;
  /**
   * @desc 小号卡片头部文字大小
   * @descEN Font size of small card header
   */
  headerFontSizeSM: number | string;
  /**
   * @desc 卡片头部高度
   * @descEN Height of card header
   */
  headerHeight: number | string;
  /**
   * @desc 小号卡片头部高度
   * @descEN Height of small card header
   */
  headerHeightSM: number | string;
  /**
   * @desc 小号卡片内边距
   * @descEN Padding of small card body
   */
  bodyPaddingSM: number;
  /**
   * @desc 小号卡片头部内边距
   * @descEN Padding of small card head
   */
  headerPaddingSM: number;
  /**
   * @desc 卡片内边距
   * @descEN Padding of card body
   */
  bodyPadding: number;
  /**
   * @desc 卡片头部内边距
   * @descEN Padding of card head
   */
  headerPadding: number;
  /**
   * @desc 操作区背景色
   * @descEN Background color of card actions
   */
  actionsBg: string;
  /**
   * @desc 操作区每一项的外间距
   * @descEN Margin of each item in card actions
   */
  actionsLiMargin: string;
  /**
   * @desc 内置标签页组件下间距
   * @descEN Margin bottom of tabs component
   */
  tabsMarginBottom: number;
  /**
   * @desc 额外区文字颜色
   * @descEN Text color of extra area
   */
  extraColor: string;
}

interface CardToken extends FullToken<'Card'> {
  /**
   * @desc 卡片阴影
   * @descEN Shadow of card
   */
  cardShadow: string;
  /**
   * @desc 卡片头部内边距
   * @descEN Padding of card header
   */
  cardHeadPadding: number;
  /**
   * @desc 卡片基础内边距
   * @descEN Padding of base card
   */
  cardPaddingBase: number;
  /**
   * @desc 卡片操作区图标大小
   * @descEN Size of card actions icon
   */
  cardActionsIconSize: number;
}

原生通用属性

Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。

参数说明类型默认值
style自定义样式CSSProperties-
className自定义类名string-
rootClassName添加在组件最外层的 classNamestring-
autoFocus自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效booleanfalse

安装并复现示例

npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。

原生类型参考

源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。

  • vendor/components/card/Card.tsx
  • vendor/components/card/CardGrid.tsx
  • vendor/components/card/CardMeta.tsx
  • vendor/components/card/index.tsx
  • vendor/components/card/style/index.ts

来源与许可

https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd

保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。