Card
Card title
Card subtitle
Some quick example text to build on the card title and make up the bulk of the card's content.
import React from 'react';
import {
Card, CardImg, CardText, CardBody,
CardTitle, CardSubtitle, Button
} from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card>
<CardImg top width="100%" src="/assets/318x180.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>Some quick example text to build on the card title and make up the bulk of the card's content.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
</div>
);
};
export default Example;
Properties
Card.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
inverse: PropTypes.bool,
color: PropTypes.string,
body: PropTypes.bool,
className: PropTypes.string
};
CardBody.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardColumns.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardDeck.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardFooter.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardGroup.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardHeader.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardImg.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string,
// Use top or bottom to position image via "card-img-top" or "card-img-bottom"
top: PropTypes.bool,
bottom: PropTypes.bool
};
CardImgOverlay.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardLink.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string,
// ref will only get you a reference to the CardLink component, use innerRef to get a reference to the DOM element (for things like focus management).
innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.string])
};
CardSubtitle.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardText.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
CardTitle.propTypes = {
// Pass in a Component to override default element
tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
className: PropTypes.string
};
Content Types
Card title
Card subtitle
Some quick example text to build on the card title and make up the bulk of the card's content.
Card LinkAnother Linkimport React from 'react';
import {
Card, CardText, CardBody, CardLink,
CardTitle, CardSubtitle
} from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card>
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
</CardBody>
<img width="100%" src="/assets/318x180.svg" alt="Card image cap" />
<CardBody>
<CardText>Some quick example text to build on the card title and make up the bulk of the card's content.</CardText>
<CardLink href="#">Card Link</CardLink>
<CardLink href="#">Another Link</CardLink>
</CardBody>
</Card>
</div>
);
};
export default Example;
Sizing
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
import React from 'react';
import { Card, Button, CardTitle, CardText, Row, Col } from 'reactstrap';
const Example = (props) => {
return (
<Row>
<Col sm="6">
<Card body>
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Go somewhere</Button>
</Card>
</Col>
<Col sm="6">
<Card body>
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Go somewhere</Button>
</Card>
</Col>
</Row>
);
};
export default Example;
Text alignment
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
import React from 'react';
import { Card, Button, CardTitle, CardText } from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card body>
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Go somewhere</Button>
</Card>
<Card body className="text-center">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Go somewhere</Button>
</Card>
<Card body className="text-right">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Go somewhere</Button>
</Card>
</div>
);
};
export default Example;
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
import React from 'react';
import { Card, Button, CardHeader, CardFooter, CardBody,
CardTitle, CardText } from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card>
<CardHeader>Header</CardHeader>
<CardBody>
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Go somewhere</Button>
</CardBody>
<CardFooter>Footer</CardFooter>
</Card>
<Card>
<CardHeader tag="h3">Featured</CardHeader>
<CardBody>
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Go somewhere</Button>
</CardBody>
<CardFooter className="text-muted">Footer</CardFooter>
</Card>
</div>
);
};
export default Example;
Image caps
Card Title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Last updated 3 mins ago
Card Title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Last updated 3 mins ago
import React from 'react';
import { Card, CardBody, Button, CardTitle, CardText, CardImg } from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card>
<CardImg top width="100%" src="/assets/318x180.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card Title</CardTitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</CardText>
<CardText>
<small className="text-muted">Last updated 3 mins ago</small>
</CardText>
</CardBody>
</Card>
<Card>
<CardBody>
<CardTitle tag="h5">Card Title</CardTitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</CardText>
<CardText>
<small className="text-muted">Last updated 3 mins ago</small>
</CardText>
</CardBody>
<CardImg bottom width="100%" src="/assets/318x180.svg" alt="Card image cap" />
</Card>
</div>
);
};
export default Example;
Image overlays
Card Title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Last updated 3 mins ago
import React from 'react';
import { Card, CardTitle, CardText, CardImg, CardImgOverlay } from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card inverse>
<CardImg width="100%" src="/assets/318x270.svg" alt="Card image cap" />
<CardImgOverlay>
<CardTitle tag="h5">Card Title</CardTitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</CardText>
<CardText>
<small className="text-muted">Last updated 3 mins ago</small>
</CardText>
</CardImgOverlay>
</Card>
</div>
);
};
export default Example;
Background variants
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
import React from 'react';
import { Card, Button, CardTitle, CardText } from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card body inverse style={{ backgroundColor: '#333', borderColor: '#333' }}>
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Button</Button>
</Card>
<Card body inverse color="primary">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body inverse color="success">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body inverse color="info">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body inverse color="warning">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body inverse color="danger">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
</div>
);
};
export default Example;
Outline variants
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
import React from 'react';
import { Card, Button, CardTitle, CardText } from 'reactstrap';
const Example = (props) => {
return (
<div>
<Card body outline color="secondary">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Button</Button>
</Card>
<Card body outline color="primary">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body outline color="success">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body outline color="info">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body outline color="warning">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
<Card body outline color="danger">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
</div>
);
};
export default Example;
Groups
Card title
Card subtitle
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Card title
Card subtitle
This card has supporting text below as a natural lead-in to additional content.
Card title
Card subtitle
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
import React from 'react';
import {
Card, Button, CardImg, CardTitle, CardText, CardGroup,
CardSubtitle, CardBody
} from 'reactstrap';
const Example = (props) => {
return (
<CardGroup>
<Card>
<CardImg top width="100%" src="/assets/318x180.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
<Card>
<CardImg top width="100%" src="/assets/318x180.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This card has supporting text below as a natural lead-in to additional content.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
<Card>
<CardImg top width="100%" src="/assets/318x180.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
</CardGroup>
);
};
export default Example;
Decks
Card title
Card subtitle
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Card title
Card subtitle
This card has supporting text below as a natural lead-in to additional content.
Card title
Card subtitle
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
import React from 'react';
import {
Card, Button, CardImg, CardTitle, CardText, CardDeck,
CardSubtitle, CardBody
} from 'reactstrap';
const Example = (props) => {
return (
<CardDeck>
<Card>
<CardImg top width="100%" src="/assets/256x186.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
<Card>
<CardImg top width="100%" src="/assets/256x186.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This card has supporting text below as a natural lead-in to additional content.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
<Card>
<CardImg top width="100%" src="/assets/256x186.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
</CardDeck>
);
};
export default Example;
Columns
Card title
Card subtitle
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
Card title
Card subtitle
This card has supporting text below as a natural lead-in to additional content.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
Card title
Card subtitle
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
Special Title Treatment
With supporting text below as a natural lead-in to additional content.
import React from 'react';
import {
Card, Button, CardImg, CardTitle, CardText, CardColumns,
CardSubtitle, CardBody
} from 'reactstrap';
const Example = (props) => {
return (
<CardColumns>
<Card>
<CardImg top width="100%" src="/assets/256x186.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
<Card>
<CardImg top width="100%" src="/assets/256x186.svg" alt="Card image cap" />
</Card>
<Card>
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This card has supporting text below as a natural lead-in to additional content.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
<Card body inverse style={{ backgroundColor: '#333', borderColor: '#333' }}>
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button>Button</Button>
</Card>
<Card>
<CardImg top width="100%" src="/assets/256x186.svg" alt="Card image cap" />
<CardBody>
<CardTitle tag="h5">Card title</CardTitle>
<CardSubtitle tag="h6" className="mb-2 text-muted">Card subtitle</CardSubtitle>
<CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</CardText>
<Button>Button</Button>
</CardBody>
</Card>
<Card body inverse color="primary">
<CardTitle tag="h5">Special Title Treatment</CardTitle>
<CardText>With supporting text below as a natural lead-in to additional content.</CardText>
<Button color="secondary">Button</Button>
</Card>
</CardColumns>
);
};
export default Example;