Card

Cards component provides a flexible and extensible content container with multiple variants and options.

Basic Example

Below is an example of a basic card with mixed content and a fixed width.

Card title

Some quick example text to build on the card title and make up the bulk of the card's content.

Go somewhere
<Card style={{ width: "265px" }}>
  <Image src="/images/docs/placeholder-4by3.svg" className="card-img-top"
  alt="" />
  <Card.Body>
    <Card.Title as="h5" className="h3">
      Card title
    </Card.Title>
    <Card.Text>
      Some quick example text to build on the card title and make up the bulk
      of the card's content.
    </Card.Text>
    <Button href="#" variant="primary">
      Go somewhere
    </Button>
  </Card.Body>
</Card>

Card Body

The building block of a card is the .card-body. Use it whenever you need a padded section within a card.

This is some text within a card body.
<Card>
    <Card.Body>This is some text within a card body.</Card.Body>
</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.

Card linkAnother link
<Card style={{ maxWidth: "20rem" }}>
  <Card.Body>
    <Card.Title as="h3">
      Card title
    </Card.Title>
    <Card.Subtitle as="h6" className="mb-2 text-muted">
      Card subtitle
    </Card.Subtitle>
    <Card.Text as="p">
      Some quick example text to build on the card title and make up the bulk
      of the card's content.
    </Card.Text>
    <Card.Link href="">
      Card link
    </Card.Link>
    <Card.Link href="">
      Another link
    </Card.Link>
  </Card.Body>
</Card>

Kitchen sink

Mix and match multiple content types to create the card you need, or throw everything in there. Shown below are image styles, blocks, text styles, and a list group—all wrapped in a fixed-width card.

Card title

Some quick example text to build on the card title and make up the bulk of the card's content.

  • Cras justo odio
  • Dapibus ac facilisis in
  • Vestibulum at eros
<Card style={{ width: "265px" }}>
  <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top"
  />
  <Card.Body>
    <Card.Title as="h3">
      Card title
    </Card.Title>
    <Card.Text>
      Some quick example text to build on the card title and make up the bulk
      of the card's content.
    </Card.Text>
  </Card.Body>
  <ListGroup as="ul" variant="flush">
    <ListGroup.Item as="li">
      Cras justo odio
    </ListGroup.Item>
    <ListGroup.Item as="li">
      Dapibus ac facilisis in
    </ListGroup.Item>
    <ListGroup.Item as="li">
      Vestibulum at eros
    </ListGroup.Item>
  </ListGroup>
  <Card.Body>
    <Card.Link href="">
      Card link
    </Card.Link>
    <Card.Link href="">
      Another link
    </Card.Link>
  </Card.Body>
</Card>
Featured

Special title treatment

With supporting text below as a natural lead-in to additional content.

Go somewhere
<Card>
  <Card.Header>
    Featured
  </Card.Header>
  <Card.Body>
    <Card.Title as="h3">
      Special title treatment
    </Card.Title>
    <Card.Text>
      With supporting text below as a natural lead-in to additional content.
    </Card.Text>
    <Button variant="primary" href="">
      Go somewhere
    </Button>
  </Card.Body>
</Card>
Featured
Special title treatment

With supporting text below as a natural lead-in to additional content.

<Card className="text-center">
  <Card.Header>
    Featured
  </Card.Header>
  <Card.Body>
    <Card.Title>
      Special title treatment
    </Card.Title>
    <Card.Text>
      With supporting text below as a natural lead-in to additional content.
    </Card.Text>
    <Button variant="primary">
      Go somewhere
    </Button>
  </Card.Body>
  <Card.Footer className="text-muted">
    2 days ago
  </Card.Footer>
</Card>

Text alignment

You can quickly change the text alignment of any card—in its entirety or specific parts—with our text align classes.

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.

<Card style={{ width: "18rem" }} className="mb-3">
  <Card.Body>
    <Card.Title>
      Special title treatment
    </Card.Title>
    <Card.Text>
      With supporting text below as a natural lead-in to additional content.
    </Card.Text>
    <Button variant="primary">
      Go somewhere
    </Button>
  </Card.Body>
</Card>

<Card style={{ width: "18rem" }} className="text-center mb-3">
  <Card.Body>
    <Card.Title>
      Special title treatment
    </Card.Title>
    <Card.Text>
      With supporting text below as a natural lead-in to additional content.
    </Card.Text>
    <Button variant="primary">
      Go somewhere
    </Button>
  </Card.Body>
</Card>

<Card style={{ width: "18rem" }} className="text-end mb-3">
  <Card.Body>
    <Card.Title>
      Special title treatment
    </Card.Title>
    <Card.Text>
      With supporting text below as a natural lead-in to additional content.
    </Card.Text>
    <Button variant="primary">
      Go somewhere
    </Button>
  </Card.Body>
</Card>

Images

Cards include a few options for working with images. Choose from appending “image caps” at either end of a card, overlaying images with card content, or simply embedding the image in a card.

Image on Top

.card-img-top places an image to the top of the card. With .card-text, text can be added to the card. Text within .card-text can also be styled with the standard HTML tags.

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>
  <Image src="/images/blog/blog-img-1.jpg" alt="" className="card-img-top" />
  <Card.Body>
    <Card.Title as="h3">
      Card title
    </Card.Title>
    <Card.Text>
      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.Text>
    <Card.Text>
      <small className="text-muted">
        Last updated 3 mins ago
      </small>
    </Card.Text>
  </Card.Body>
</Card>

Image on Bottom

.card-img-bottom places an image to the bottom of the card. With .card-text, text can be added to the card. Text within .card-text can also be styled with the standard HTML tags.

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>
  <Card.Body>
    <Card.Title as="h3">
      Card title
    </Card.Title>
    <Card.Text>
      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.Text>
    <Card.Text>
      <small className="text-muted">
        Last updated 3 mins ago
      </small>
    </Card.Text>
  </Card.Body>
  <Image src="/images/blog/blog-img-1.jpg" className="card-img-bottom" />
</Card>

Image overlays

Turn an image into a card background and overlay your card’s text. Depending on the image, you may or may not need additional styles or utilities.

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 className="text-white">
  <Image src="/images/blog/blog-img-1.jpg" className="rounded" alt="" />
  <div className="card-img-overlay">
    <Card.Title as="h3" className="text-white">
      Card title
    </Card.Title>
    <Card.Text>
      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.Text>
    <Card.Text>
      Last updated 3 mins ago
    </Card.Text>
  </div>
</Card>

Horizontal

Using a combination of grid and utility classes, cards can be made horizontal in a mobile-friendly and responsive way. In the example below, we remove the grid gutters with .g-0 and use .col-md-* classes to make the card horizontal at the md breakpoint. Further adjustments may be needed depending on your card content.

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 className="mb-3" style={{ maxWidth: "540px" }}>
  <Row>
    <Col md={4}>
      <Image src="/images/about/team-1.png" alt="" className="img-fluid rounded-start h-100"/>
    </Col>
    <Col md={8}>
      <Card.Body>
        <Card.Title as="h3">Card title</Card.Title>
        <Card.Text>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.Text>
        <Card.Text><small className="text-muted">Last updated 3 mins ago</small></Card.Text>
      </Card.Body>
    </Col>
  </Row>
</Card>

Card layout

In addition to styling the content within cards, Bootstrap includes a few options for laying out series of cards. For the time being, these layout options are not yet responsive.

Card groups

Use card groups to render cards as a single, attached element with equal width and height columns. Card groups start off stacked and use display: flex; to become attached with uniform dimensions starting at the sm breakpoint.

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 card has supporting text below as a natural lead-in to additional content.

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 card has even longer content than the first to show that equal height action.

Last updated 3 mins ago

<div className="card-group">
  <Card>
    <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top"  />
    <Card.Body>
      <Card.Title as="h3">Card title</Card.Title>
      <Card.Text>
        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.Text>
      <Card.Text><small className="text-muted">Last updated 3 mins ago</small></Card.Text>
    </Card.Body>
  </Card>
  <Card>
    <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top" />
    <Card.Body>
      <Card.Title as="h3">Card title</Card.Title>
      <Card.Text>This card has supporting text below as a natural lead-in to additional content.</Card.Text>
      <Card.Text>
        <small className="text-muted">Last updated 3 mins ago</small>
      </Card.Text>
    </Card.Body>
  </Card>
  <Card>
    <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top" />
    <Card.Body>
      <Card.Title as="h3">Card title</Card.Title>
      <Card.Text>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.
      </Card.Text>
      <Card.Text>
        <small className="text-muted">
          Last updated 3 mins ago
        </small>
      </Card.Text>
    </Card.Body>
  </Card>
</div>

Grid cards

Use the Bootstrap grid system and its .row-cols classes to control how many grid columns (wrapped around your cards) you show per row. For example, here’s .row-cols-1 laying out the cards on one column, and .row-cols-md-2 splitting four cards to equal width across multiple rows, from the medium breakpoint up.

Card title

This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

Card title

This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

Card title

This is a longer card with supporting text below as a natural lead-in to additional content.

Card title

This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

<Row xs={1} md={2} className="g-4">
  <Col>
    <Card>
      <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top" />
      <Card.Body>
        <Card.Title as="h3">Card title</Card.Title>
        <Card.Text>This is a longer card with supporting text below as a natural lead-in
          to additional content. This content is a little bit longer.
        </Card.Text>
      </Card.Body>
    </Card>
  </Col>
  <Col>
    <Card>
      <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top"  />
      <Card.Body>
        <Card.Title as="h3">Card title</Card.Title>
        <Card.Text>This is a longer card with supporting text below as a natural lead-in
          to additional content. This content is a little bit longer.
        </Card.Text>
      </Card.Body>
    </Card>
  </Col>
  <Col>
    <Card>
      <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top" />
      <Card.Body>
        <Card.Title as="h3">Card title</Card.Title>
        <Card.Text>This is a longer card with supporting text below as a natural lead-in
          to additional content.
        </Card.Text>
      </Card.Body>
    </Card>
  </Col>
  <Col>
    <Card>
      <Image src="/images/docs/placeholder-4by3.svg" alt="" className="card-img-top"/>
      <Card.Body>
        <Card.Title as="h3">Card title</Card.Title>
        <Card.Text>This is a longer card with supporting text below as a natural lead-in
          to additional content. This content is a little bit longer.
        </Card.Text>
      </Card.Body>
    </Card>
  </Col>
</Row>