Skip to Content

PropertyCard

A card component for displaying key-value property lists with consistent styling.

Import

import { PropertyCard } from '@tidbcloud/uikit/biz'

Basic Usage

import { PropertyCard } from '@tidbcloud/uikit/biz' function Demo() { return ( <PropertyCard title="User Information"> <PropertyCard.Item label="Name">John Doe</PropertyCard.Item> <PropertyCard.Item label="Email">john@example.com</PropertyCard.Item> <PropertyCard.Item label="Role">Administrator</PropertyCard.Item> </PropertyCard> ) }

With Divider

import { PropertyCard } from '@tidbcloud/uikit/biz' function Demo() { return ( <PropertyCard title="Server Details"> <PropertyCard.Item label="Host">192.168.1.1</PropertyCard.Item> <PropertyCard.Item label="Port">3306</PropertyCard.Item> <PropertyCard.Divider /> <PropertyCard.Item label="Status">Running</PropertyCard.Item> <PropertyCard.Item label="Uptime">7 days</PropertyCard.Item> </PropertyCard> ) }

Custom Value Rendering

import { PropertyCard } from '@tidbcloud/uikit/biz' import { Badge, CopyButton, ActionIcon, Group } from '@tidbcloud/uikit' import { IconCopy } from '@tabler/icons-react' function Demo() { return ( <PropertyCard title="Connection"> <PropertyCard.Item label="Status"> <Badge color="green">Connected</Badge> </PropertyCard.Item> <PropertyCard.Item label="Connection String"> <Group gap="xs"> <code>mysql://user:***@host:3306/db</code> <CopyButton value="mysql://user:pass@host:3306/db"> {({ copy }) => ( <ActionIcon variant="subtle" onClick={copy}> <IconCopy size={14} /> </ActionIcon> )} </CopyButton> </Group> </PropertyCard.Item> </PropertyCard> ) }

Custom Label/Value Props

import { PropertyCard } from '@tidbcloud/uikit/biz' function Demo() { return ( <PropertyCard title="Settings" labelProps={{ w: 150, fw: 600 }} valueProps={{ c: 'dimmed' }}> <PropertyCard.Item label="Theme">Dark</PropertyCard.Item> <PropertyCard.Item label="Language">English</PropertyCard.Item> </PropertyCard> ) }

Override Props Per Item

import { PropertyCard } from '@tidbcloud/uikit/biz' function Demo() { return ( <PropertyCard title="Details"> <PropertyCard.Item label="Normal">Value</PropertyCard.Item> <PropertyCard.Item label="Important" labelProps={{ c: 'red', fw: 700 }} valueProps={{ c: 'red' }}> Critical Value </PropertyCard.Item> </PropertyCard> ) }

Without Title

import { PropertyCard } from '@tidbcloud/uikit/biz' function Demo() { return ( <PropertyCard> <PropertyCard.Item label="Key">Value</PropertyCard.Item> <PropertyCard.Item label="Another Key">Another Value</PropertyCard.Item> </PropertyCard> ) }

Props

PropertyCard

PropTypeDefaultDescription
titlestring-Card title
labelPropsTextProps-Props for all labels
valuePropsTextProps-Props for all values
childrenReactNode-PropertyCard.Item children

PropertyCard also accepts all Card component props.

PropertyCard.Item

PropTypeDefaultDescription
labelstring-Property label
labelPropsTextProps-Override label props
valuePropsTextProps-Override value props
childrenReactNode-Property value

Sub-components

ComponentDescription
PropertyCard.ItemIndividual property row
PropertyCard.DividerDivider between items
Last updated on