A container with header, body, and footer sections for grouped content.
import { Card, CardHeader, CardBody, CardFooter } from '@backstage/ui';
<Card>
<CardHeader>Header</CardHeader>
<CardBody>Body</CardBody>
<CardFooter>Footer</CardFooter>
</Card>All Card components extend HTMLDivElement attributes.
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | - | Content to display inside the component. |
| className | string | - | Additional CSS class name for custom styling. |
| style | CSSProperties | - | Inline CSS styles object. |
Fixed at the top of the card.
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | - | Content to display inside the component. |
| className | string | - | Additional CSS class name for custom styling. |
| style | CSSProperties | - | Inline CSS styles object. |
Scrollable content area that fills available space.
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | - | Content to display inside the component. |
| className | string | - | Additional CSS class name for custom styling. |
| style | CSSProperties | - | Inline CSS styles object. |
Fixed at the bottom of the card.
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | - | Content to display inside the component. |
| className | string | - | Additional CSS class name for custom styling. |
| style | CSSProperties | - | Inline CSS styles object. |
Cards can omit the footer section.
<Card style={{ width: '300px', height: '200px' }}>
<CardHeader>Header</CardHeader>
<CardBody>Body content without a footer</CardBody>
</Card>When body content exceeds the available height, CardBody scrolls while header and footer remain fixed.
Our theming system is based on a mix between CSS classes, CSS variables and data attributes. If you want to customise this component, you can use one of these class names below.
bui-Card