@wordpress/components
Version:
UI components for WordPress.
108 lines (79 loc) • 2.17 kB
Markdown
# Card
Card provides a flexible and extensible content container.
## Usage
```jsx
import { Card, CardBody } from '@wordpress/components';
const Example = () => (
<Card>
<CardBody>...</CardBody>
</Card>
);
```
## Props
### isBorderless
Determines the border style of the card.
- Type: `Boolean`
- Required: No
- Default: `false`
### isElevated
Determines the elevation style of the card.
- Type: `Boolean`
- Required: No
- Default: `false`
### size
Determines the amount of padding within the component.
- Type: `String`
- Required: No
- Default: `medium`
## Sub-Components
This component provides a collection of sub-component that can be used to compose various interfaces.
- [`<CardBody />`](./docs/body.md)
- [`<CardDivider />`](./docs/divider.md)
- [`<CardFooter />`](./docs/footer.md)
- [`<CardHeader />`](./docs/header.md)
- [`<CardMedia />`](./docs/media.md)
### Sub-Components Example
```jsx
import {
Card,
CardBody,
CardDivider,
CardFooter,
CardHeader,
CardMedia,
} from '@wordpress/components';
const Example = () => (
<Card>
<CardHeader>...</CardHeader>
<CardBody>...</CardBody>
<CardDivider />
<CardBody>...</CardBody>
<CardMedia>
<img src="..." />
</CardMedia>
<CardHeader>...</CardHeader>
</Card>
);
```
### Context
`<Card />`'s sub-components are connected to `<Card />` using [Context](https://reactjs.org/docs/context.html). Certain props like `size` and `variant` are passed through to the sub-components.
In the following example, the `<CardBody />` will render with a size of `small`:
```jsx
import { Card, CardBody } from '@wordpress/components';
const Example = () => (
<Card size="small">
<CardBody>...</CardBody>
</Card>
);
```
These sub-components are designed to be flexible. The Context props can be overridden by the sub-component(s) as required. In the following example, the last `<CardBody />` will render it's specified size:
```jsx
import { Card, CardBody } from '@wordpress/components';
const Example = () => (
<Card size="small">
<CardBody>...</CardBody>
<CardBody>...</CardBody>
<CardBody size="large">...</CardBody>
</Card>
);
```