UsageCard

UsageCard is a generic component used for rendering usage data.

Import

import { UsageCard } from '@contentful/f36-components';
// or
import { UsageCard } from '@contentful/f36-usage-card';

Examples

Basic UsageCard of usage variant

function UsageCardUsageExample() {
return (
<UsageCard
variant="usage"
header={
<UsageCard.Header
title="Asset Bandwidth Usage"
tooltip="This is a tooltip for the usage card"
/>
}
description={
<UsageCard.Description>
This is a description of the usage card.
{' '}
<TextLink
target="_blank"
rel="noopener noreferrer"
href={'https://www.contentful.com'}
>
Learn more
</TextLink>
</UsageCard.Description>
}
>
<UsageCount
variant="periodic"
value={150}
valueUnit="GB"
periodType="year"
/>
</UsageCard>
);
}

Basic UsageCard of info variant

function UsageCardInfoExample() {
return (
<UsageCard
variant="info"
header={
<UsageCard.Header
title="This is an Info Card"
tooltip="This is a tooltip for Info Card"
/>
}
description={
<UsageCard.Description>
This is a description of the info card.
{' '}
<TextLink
target="_blank"
rel="noopener noreferrer"
href={'https://www.contentful.com'}
>
Learn more
</TextLink>
</UsageCard.Description>
}
>
<UsageCount
variant="consumption"
value={150}
valueUnit="GB"
valueDescription="Used this month"
/>
</UsageCard>
);
}

UsageCard areas

The UsageCard component offers 4 individually setable areas, three of them can be set via the props header, description and variant.

Prop

Description

Recommended child components

children

Elements handed over as children to the UsageCard component will be rendered as the UsageCard body. The common case is using UsageCount component for rendering usage value.

UsageCount
header

header prop expects compound component UsageCard.Header. UsageCard.Header can take children, title and tooltip as props. Title value will be rendered as Subheading, tooltip will be rendered inside Tooltip with icon.

UsageCard.Header
description

description prop expects compound component UsageCard.Description. Child-Components should be wraped in UsageCard.Description. Common use case is using Text or TextLink with as child-components.

UsageCard.Description with Text or TextLink
variant

variant prop expects usage or info. It's responsible for look and feel of the UsageCard, with info set the backgroundColor is gray100 and border is invisible.

N/A

Props (API reference)

Open in Storybook

Name

Type

Default

className
string

CSS class to be appended to the root element

description
string
number
bigint
false
true
ReactElement<unknown, string | JSXElementConstructor<any>>
Iterable<ReactNode>
ReactPortal
Promise<AwaitedReactNode>

header
string
number
bigint
false
true
ReactElement<unknown, string | JSXElementConstructor<any>>
Iterable<ReactNode>
ReactPortal
Promise<AwaitedReactNode>

testId
string

A [data-test-id] attribute used for testing purposes

variant
"usage"
"info"

The type of the card.

'usage'