2014-08-06 02:12:24 +02:00
---
2015-08-15 07:45:55 +02:00
layout: docs
2014-08-06 02:12:24 +02:00
title: Cards
2017-01-05 23:24:40 +01:00
description: Bootstrap's cards provide a flexible and extensible content container with multiple variants and options.
2015-08-06 02:47:45 +02:00
group: components
2017-05-28 08:01:14 +02:00
toc: true
2014-08-06 02:12:24 +02:00
---
2017-05-28 08:01:14 +02:00
## About
2014-08-06 02:12:24 +02:00
A **card** is a flexible and extensible content container. It includes options for headers and footers, a wide variety of content, contextual background colors, and powerful display options.
2015-04-23 10:30:55 +02:00
If you're familiar with Bootstrap 3, cards replace our old panels, wells, and thumbnails. Similar functionality to those components is available as modifier classes for cards.
2014-08-06 02:12:24 +02:00
2015-05-28 23:07:34 +02:00
## Example
2014-08-06 02:12:24 +02:00
2016-12-23 01:41:56 +01:00
Cards are built with as little markup and styles as possible, but still manage to deliver a ton of control and customization. Built with flexbox, they offer easy alignment and mix well with other Bootstrap components.
2017-01-05 23:24:40 +01:00
Below is an example of a basic card with mixed content and a fixed width. Cards have no fixed width to start, so they'll naturally fill the full width of its parent element. This is easily customized with our various [sizing options ](#sizing ).
2014-08-06 02:12:24 +02:00
{% example html %}
2016-12-23 01:41:56 +01:00
< div class = "card" style = "width: 20rem;" >
2015-08-27 23:26:00 +02:00
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > Some quick example text to build on the card title and make up the bulk of the card's content.< / p >
2015-12-26 13:40:04 +01:00
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
2015-05-28 23:07:34 +02:00
< / div >
2014-08-06 02:12:24 +02:00
< / div >
{% endexample %}
2015-05-28 23:07:34 +02:00
## Content types
2015-04-23 10:33:19 +02:00
2016-12-23 01:43:21 +01:00
Cards support a wide variety of content, including images, text, list groups, links, and more. Below are examples of what's supported.
2015-04-23 10:33:19 +02:00
2016-12-23 01:43:21 +01:00
### Blocks
2015-05-28 04:00:11 +02:00
2017-06-15 07:01:16 +02:00
The building block of a card is the `.card-body` . Use it whenever you need a padded section within a card.
2016-03-11 12:14:08 +01:00
2015-12-07 19:05:53 +01:00
{% example html %}
< div class = "card" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:43:21 +01:00
This is some text within a card block.
2015-05-28 23:07:34 +02:00
< / div >
2015-05-28 04:00:11 +02:00
< / div >
2015-05-28 23:07:34 +02:00
{% endexample %}
2016-12-23 01:43:21 +01:00
### Titles, text, and links
2016-03-11 12:14:08 +01:00
2016-12-23 01:43:21 +01:00
Card titles are used by adding `.card-title` to a `<h*>` tag. In the same way, links are added and placed next to each other by adding `.card-link` to a `<a>` tag.
2015-05-28 23:07:34 +02:00
2017-06-15 07:01:16 +02:00
Subtitles are used by adding a `.card-subtitle` to a `<h*>` tag. If the `.card-title` and the `.card-subtitle` items are placed in a `.card-body` item, the card title and subtitle are aligned nicely.
2016-03-11 12:14:08 +01:00
2015-05-28 23:07:34 +02:00
{% example html %}
2017-06-26 03:30:24 +02:00
< div class = "card" style = "width: 20rem;" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Card title< / h4 >
2016-12-23 01:43:21 +01:00
< h6 class = "card-subtitle mb-2 text-muted" > Card subtitle< / h6 >
2015-05-28 23:07:34 +02:00
< p class = "card-text" > Some quick example text to build on the card title and make up the bulk of the card's content.< / p >
< a href = "#" class = "card-link" > Card link< / a >
< a href = "#" class = "card-link" > Another link< / a >
< / div >
2015-04-23 10:33:19 +02:00
< / div >
{% endexample %}
2016-12-23 01:43:21 +01:00
### Images
2015-05-28 23:07:34 +02:00
2016-12-23 01:43:21 +01:00
`.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.
2015-05-28 04:00:11 +02:00
2015-04-23 10:33:19 +02:00
{% example html %}
2017-06-26 03:30:24 +02:00
< div class = "card" style = "width: 20rem;" >
2016-12-23 01:43:21 +01:00
< img class = "card-img-top" data-src = "holder.js/100px180/?text=Image cap" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:43:21 +01:00
< p class = "card-text" > Some quick example text to build on the card title and make up the bulk of the card's content.< / p >
2015-04-23 10:33:19 +02:00
< / div >
< / div >
{% endexample %}
2016-12-23 01:43:21 +01:00
### List groups
Create lists of content in a card with a flush list group.
2015-05-28 04:00:11 +02:00
{% example html %}
2017-06-26 03:30:24 +02:00
< div class = "card" style = "width: 20rem;" >
2016-12-23 01:43:21 +01:00
< ul class = "list-group list-group-flush" >
< li class = "list-group-item" > Cras justo odio< / li >
< li class = "list-group-item" > Dapibus ac facilisis in< / li >
< li class = "list-group-item" > Vestibulum at eros< / li >
< / ul >
2015-05-28 04:00:11 +02:00
< / div >
{% endexample %}
2016-12-23 01:43:21 +01:00
### Kitchen sink
2014-08-06 02:12:24 +02:00
2016-12-23 01:43:21 +01:00
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.
2014-08-06 02:12:24 +02:00
{% example html %}
2016-12-23 01:43:21 +01:00
< div class = "card" style = "width: 20rem;" >
< img class = "card-img-top" data-src = "holder.js/100px180/?text=Image cap" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:43:21 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > Some quick example text to build on the card title and make up the bulk of the card's content.< / p >
< / div >
< ul class = "list-group list-group-flush" >
< li class = "list-group-item" > Cras justo odio< / li >
< li class = "list-group-item" > Dapibus ac facilisis in< / li >
< li class = "list-group-item" > Vestibulum at eros< / li >
< / ul >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:43:21 +01:00
< a href = "#" class = "card-link" > Card link< / a >
< a href = "#" class = "card-link" > Another link< / a >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
{% endexample %}
2016-12-23 01:43:21 +01:00
### Header and footer
2014-08-06 02:12:24 +02:00
Add an optional header and/or footer within a card.
{% example html %}
< div class = "card" >
< div class = "card-header" >
Featured
< / div >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
2015-09-16 21:28:04 +02:00
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
{% endexample %}
2016-03-11 12:14:08 +01:00
Card headers can be styled by adding `.card-header` to `<h*>` elements.
2015-09-16 21:28:04 +02:00
{% example html %}
< div class = "card" >
2017-06-18 11:57:16 +02:00
< h4 class = "card-header" > Featured< / h4 >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-09-16 21:28:04 +02:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
2015-05-28 23:07:34 +02:00
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2015-05-29 10:58:52 +02:00
{% endexample %}
2014-08-06 02:12:24 +02:00
2015-05-29 10:58:52 +02:00
{% example html %}
2014-08-06 02:12:24 +02:00
< div class = "card" >
< div class = "card-header" >
Quote
< / div >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2017-06-30 23:47:02 +02:00
< blockquote class = "blockquote" >
2015-05-28 23:07:34 +02:00
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
{% endexample %}
{% example html %}
2016-11-27 05:33:46 +01:00
< div class = "card text-center" >
2014-08-06 02:12:24 +02:00
< div class = "card-header" >
Featured
< / div >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
2014-08-06 02:12:24 +02:00
< div class = "card-footer text-muted" >
2 days ago
< / div >
< / div >
{% endexample %}
2016-12-23 01:44:12 +01:00
## Sizing
2016-01-18 03:55:24 +01:00
2016-12-23 01:44:12 +01:00
Cards assume no specific `width` to start, so they'll be 100% wide unless otherwise stated. You can change this as needed with custom CSS, grid classes, grid Sass mixins, or utilities.
### Using grid markup
Using the grid, wrap cards in columns and rows as needed.
{% example html %}
< div class = "row" >
< div class = "col-sm-6" >
< div class = "card" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2017-06-18 11:57:16 +02:00
< h4 class = "card-title" > Special title treatment< / h4 >
2016-12-23 01:44:12 +01:00
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
< / div >
< div class = "col-sm-6" >
< div class = "card" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2017-06-18 11:57:16 +02:00
< h4 class = "card-title" > Special title treatment< / h4 >
2016-12-23 01:44:12 +01:00
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
< / div >
< / div >
{% endexample %}
### Using utilities
2017-05-29 20:38:06 +02:00
Use our handful of [available sizing utilities ]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/sizing/ ) to quickly set a card's width.
2016-12-23 01:44:12 +01:00
{% example html %}
< div class = "card w-75" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2017-06-18 11:57:16 +02:00
< h4 class = "card-title" > Card title< / h4 >
2016-12-23 01:44:12 +01:00
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Button< / a >
< / div >
< / div >
< div class = "card w-50" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2017-06-18 11:57:16 +02:00
< h4 class = "card-title" > Card title< / h4 >
2016-12-23 01:44:12 +01:00
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Button< / a >
< / div >
< / div >
{% endexample %}
### Using custom CSS
Use custom CSS in your stylesheets or as inline styles to set a width.
{% example html %}
< div class = "card" style = "width: 20rem;" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2017-06-18 11:57:16 +02:00
< h4 class = "card-title" > Special title treatment< / h4 >
2016-12-23 01:44:12 +01:00
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
{% endexample %}
2016-01-18 03:55:24 +01:00
2016-12-23 01:44:33 +01:00
## Text alignment
2017-05-29 20:38:06 +02:00
You can quickly change the text alignment of any card—in its entirety or specific parts—with our [text align classes ]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/typography/#text-alignment ).
2016-12-23 01:44:33 +01:00
{% example html %}
< div class = "card" style = "width: 20rem;" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:44:33 +01:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
< div class = "card text-center" style = "width: 20rem;" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:44:33 +01:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
< div class = "card text-right" style = "width: 20rem;" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:44:33 +01:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
{% endexample %}
2016-12-23 01:44:39 +01:00
## Navigation
2017-05-29 20:38:06 +02:00
Add some navigation to a card's header (or block) with Bootstrap's [nav components ]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/navs/ ).
2016-12-23 01:44:39 +01:00
2016-01-18 03:55:24 +01:00
{% example html %}
2016-11-27 05:33:46 +01:00
< div class = "card text-center" >
2016-01-18 03:55:24 +01:00
< div class = "card-header" >
2016-12-05 01:46:57 +01:00
< ul class = "nav nav-tabs card-header-tabs" >
2016-01-18 03:55:24 +01:00
< li class = "nav-item" >
< a class = "nav-link active" href = "#" > Active< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Link< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link disabled" href = "#" > Disabled< / a >
< / li >
< / ul >
< / div >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-01-18 03:55:24 +01:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
{% endexample %}
{% example html %}
2016-11-27 05:33:46 +01:00
< div class = "card text-center" >
2016-01-18 03:55:24 +01:00
< div class = "card-header" >
2016-12-05 01:46:57 +01:00
< ul class = "nav nav-pills card-header-pills" >
2016-01-18 03:55:24 +01:00
< li class = "nav-item" >
< a class = "nav-link active" href = "#" > Active< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Link< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link disabled" href = "#" > Disabled< / a >
< / li >
< / ul >
< / div >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-01-18 03:55:24 +01:00
< h4 class = "card-title" > Special title treatment< / h4 >
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
< / div >
< / div >
{% endexample %}
2016-12-23 01:44:54 +01:00
## Images
2014-08-06 02:12:24 +02:00
2016-12-23 01:44:54 +01:00
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 caps
Similar to headers and footers, cards can include top and bottom "image caps"—images at the top or bottom of a card.
2014-08-06 02:12:24 +02:00
{% example html %}
2016-12-23 04:13:39 +01:00
< div class = "card mb-3" >
2015-08-27 23:26:00 +02:00
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
< div class = "card" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2015-08-27 23:26:00 +02:00
< img class = "card-img-bottom" data-src = "holder.js/100px180/" alt = "Card image cap" >
2014-08-06 02:12:24 +02:00
< / div >
{% endexample %}
2016-12-23 01:44:54 +01:00
### Image overlays
2014-08-06 02:12:24 +02:00
2017-06-26 03:30:24 +02:00
Turn an image into a card background and overlay your card's text. Depending on the image, you may or may not need `.card-dark` (see below).
2014-08-06 02:12:24 +02:00
{% example html %}
2017-06-26 03:30:24 +02:00
< div class = "card card-dark" >
2015-08-27 23:26:00 +02:00
< img class = "card-img" data-src = "holder.js/100px270/#55595c:#373a3c/text:Card image" alt = "Card image" >
2014-08-06 02:12:24 +02:00
< div class = "card-img-overlay" >
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
2017-03-28 07:52:24 +02:00
< p class = "card-text" > Last updated 3 mins ago< / p >
2014-08-06 02:12:24 +02:00
< / div >
< / div >
{% endexample %}
2016-12-23 01:45:48 +01:00
## Card styles
Cards include various options for customizing their backgrounds, borders, and color.
2017-06-26 03:30:24 +02:00
### Dark cards
2014-08-06 02:12:24 +02:00
2017-06-26 03:30:24 +02:00
By default, cards use dark text and assume a light background. You can reverse that by toggling the `color` of text within, as well as that of the card's subcomponents, with `.card-dark` . Then, specify a dark `background-color` and `border-color` to go with it.
2015-05-29 22:09:07 +02:00
2017-06-26 03:30:24 +02:00
You can also use `.card-dark` with the [contextual backgrounds variants ](#background-variants ).
2014-08-06 02:12:24 +02:00
{% example html %}
2017-06-26 03:30:24 +02:00
< div class = "card card-dark" style = "background-color: #333 ; border-color: #333 ;" >
2017-03-19 00:49:55 +01:00
< div class = "card-header" > Header< / div >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2017-06-18 11:57:16 +02:00
< h4 class = "card-title" > Special title treatment< / h4 >
2015-05-28 23:07:34 +02:00
< p class = "card-text" > With supporting text below as a natural lead-in to additional content.< / p >
2015-12-26 13:40:04 +01:00
< a href = "#" class = "btn btn-primary" > Go somewhere< / a >
2015-05-28 23:07:34 +02:00
< / div >
2017-03-19 00:49:55 +01:00
< div class = "card-footer" > Footer< / div >
2014-08-06 02:12:24 +02:00
< / div >
{% endexample %}
2016-12-23 01:45:48 +01:00
### Background variants
2014-08-06 02:12:24 +02:00
2017-06-26 03:30:24 +02:00
Cards include their own variant classes for quickly changing the `background-color` and `border-color` of a card. **Darker colors require the use of `.card-dark`.**
2014-08-06 02:12:24 +02:00
{% example html %}
2017-06-26 03:30:24 +02:00
< div class = "card card-dark card-primary mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2017-06-26 03:30:24 +02:00
< div class = "card card-dark card-success mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2017-06-26 03:30:24 +02:00
< div class = "card card-dark card-info mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2017-06-26 03:30:24 +02:00
< div class = "card card-dark card-warning mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2017-06-26 03:30:24 +02:00
< div class = "card card-dark card-danger text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-12-09 10:02:04 +01:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
< / div >
{% endexample %}
2016-02-17 11:22:48 +01:00
{% capture callout-include %}{% include callout-warning-color-assistive-technologies.md %}{% endcapture %}
{{ callout-include | markdownify }}
2016-12-23 01:45:48 +01:00
### Outline cards
2015-12-09 10:02:04 +01:00
2016-01-06 10:11:22 +01:00
In need of a colored card, but not the hefty background colors they bring? Replace the default modifier classes with the `.card-outline-*` ones to style just the `border-color` of a card.
2015-12-09 10:02:04 +01:00
{% example html %}
2016-12-23 04:13:39 +01:00
< div class = "card card-outline-primary mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-12-09 10:02:04 +01:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
< / div >
2016-12-23 04:13:39 +01:00
< div class = "card card-outline-secondary mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-12-09 10:02:04 +01:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
< / div >
2016-12-23 04:13:39 +01:00
< div class = "card card-outline-success mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-12-09 10:02:04 +01:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
< / div >
2016-12-23 04:13:39 +01:00
< div class = "card card-outline-info mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-12-09 10:02:04 +01:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
< / div >
2016-12-23 04:13:39 +01:00
< div class = "card card-outline-warning mb-3 text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-12-09 10:02:04 +01:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
< / div >
2016-11-27 05:33:46 +01:00
< div class = "card card-outline-danger text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< blockquote class = "card-blockquote" >
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
< footer > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
< / blockquote >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
{% endexample %}
2016-12-23 01:46:10 +01:00
## Card layout
2014-08-06 02:12:24 +02:00
2016-12-23 01:46:10 +01:00
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** .
2014-08-06 02:12:24 +02:00
2016-12-23 01:46:10 +01:00
### Card groups
Use card groups to render cards as a single, attached element with equal width and height columns. Card groups use `display: flex;` to achieve their uniform sizing.
2015-09-06 18:36:19 +02:00
2014-08-06 02:12:24 +02:00
{% example html %}
< div class = "card-group" >
< div class = "card" >
2015-08-27 23:26:00 +02:00
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
< div class = "card" >
2015-08-27 23:26:00 +02:00
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > This card has supporting text below as a natural lead-in to additional content.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
< div class = "card" >
2015-08-27 23:26:00 +02:00
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-28 23:07:34 +02:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
< / div >
{% endexample %}
2016-12-23 01:46:10 +01:00
When using card groups with footers, their content will automatically line up.
2014-08-06 02:12:24 +02:00
2016-12-23 01:46:29 +01:00
{% example html %}
< div class = "card-group" >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:46:29 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< / div >
< div class = "card-footer" >
< small class = "text-muted" > Last updated 3 mins ago< / small >
< / div >
< / div >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:46:29 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > This card has supporting text below as a natural lead-in to additional content.< / p >
< / div >
< div class = "card-footer" >
< small class = "text-muted" > Last updated 3 mins ago< / small >
< / div >
< / div >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:46:29 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< / div >
< div class = "card-footer" >
< small class = "text-muted" > Last updated 3 mins ago< / small >
< / div >
< / div >
< / div >
{% endexample %}
2015-05-29 22:09:07 +02:00
2016-12-23 01:47:10 +01:00
### Card decks
2017-01-02 19:58:48 +01:00
Need a set of equal width and height cards that aren't attached to one another? Use card decks.
2015-09-06 18:36:19 +02:00
2014-08-06 02:12:24 +02:00
{% example html %}
2016-12-22 05:26:17 +01:00
< div class = "card-deck" >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px200/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-22 05:26:17 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
2014-08-06 02:12:24 +02:00
< / div >
2016-12-22 05:26:17 +01:00
< / div >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px200/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-22 05:26:17 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > This card has supporting text below as a natural lead-in to additional content.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
2014-08-06 02:12:24 +02:00
< / div >
2016-12-22 05:26:17 +01:00
< / div >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px200/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-22 05:26:17 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
2014-08-06 02:12:24 +02:00
< / div >
< / div >
< / div >
{% endexample %}
2016-12-23 01:47:10 +01:00
Just like with card groups, card footers in decks will automatically line up.
2014-08-06 02:12:24 +02:00
2016-12-23 01:47:10 +01:00
{% example html %}
< div class = "card-deck" >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:47:10 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< / div >
< div class = "card-footer" >
< small class = "text-muted" > Last updated 3 mins ago< / small >
< / div >
< / div >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:47:10 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > This card has supporting text below as a natural lead-in to additional content.< / p >
< / div >
< div class = "card-footer" >
< small class = "text-muted" > Last updated 3 mins ago< / small >
< / div >
< / div >
< div class = "card" >
< img class = "card-img-top" data-src = "holder.js/100px180/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:47:10 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< / div >
< div class = "card-footer" >
< small class = "text-muted" > Last updated 3 mins ago< / small >
< / div >
< / div >
< / div >
{% endexample %}
2016-03-10 15:10:50 +01:00
2016-12-23 01:47:30 +01:00
### Card columns
Cards can be organized into [Masonry ](http://masonry.desandro.com )-like columns with just CSS by wrapping them in `.card-columns` . Cards are built with CSS `column` properties instead of flexbox for easier alignment. Cards are ordered from top to bottom and left to right.
**Heads up!** Your mileage with card columns may vary. To prevent cards breaking across columns, we must set them to `display: inline-block` as `column-break-inside: avoid` isn't a bulletproof solution yet.
2015-08-21 04:03:22 +02:00
2014-08-06 02:12:24 +02:00
{% example html %}
< div class = "card-columns" >
< div class = "card" >
2017-03-28 07:52:24 +02:00
< img class = "card-img-top" data-src = "holder.js/100px160/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-29 22:09:07 +02:00
< h4 class = "card-title" > Card title that wraps to a new line< / h4 >
< p class = "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.< / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2016-12-23 01:47:30 +01:00
< div class = "card p-3" >
2017-06-30 23:47:02 +02:00
< blockquote class = "blockquote card-body" >
2014-08-06 02:12:24 +02:00
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
2015-05-29 22:09:07 +02:00
< footer >
< small class = "text-muted" >
Someone famous in < cite title = "Source Title" > Source Title< / cite >
< / small >
< / footer >
2014-08-06 02:12:24 +02:00
< / blockquote >
< / div >
< div class = "card" >
2017-03-28 07:52:24 +02:00
< img class = "card-img-top" data-src = "holder.js/100px160/" alt = "Card image cap" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2015-05-29 22:09:07 +02:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > This card has supporting text below as a natural lead-in to additional content.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2017-06-26 03:30:24 +02:00
< div class = "card card-dark card-primary p-3 text-center" >
2017-06-30 23:47:02 +02:00
< blockquote class = "blockquote" >
2015-05-29 22:09:07 +02:00
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat.< / p >
< footer >
< small >
Someone famous in < cite title = "Source Title" > Source Title< / cite >
< / small >
< / footer >
2014-08-06 02:12:24 +02:00
< / blockquote >
< / div >
2016-12-23 01:47:30 +01:00
< div class = "card text-center" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:47:30 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "card-text" > This card has supporting text below as a natural lead-in to additional content.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
2015-05-29 22:09:07 +02:00
< div class = "card" >
2017-03-28 07:52:24 +02:00
< img class = "card-img" data-src = "holder.js/100px260/" alt = "Card image" >
2015-05-29 22:09:07 +02:00
< / div >
2016-12-23 01:47:30 +01:00
< div class = "card p-3 text-right" >
2017-06-30 23:47:02 +02:00
< blockquote class = "blockquote" >
2014-08-06 02:12:24 +02:00
< p > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
2015-05-29 22:09:07 +02:00
< footer >
< small class = "text-muted" >
Someone famous in < cite title = "Source Title" > Source Title< / cite >
< / small >
< / footer >
2014-08-06 02:12:24 +02:00
< / blockquote >
< / div >
2016-12-23 01:47:30 +01:00
< div class = "card" >
2017-06-15 07:01:16 +02:00
< div class = "card-body" >
2016-12-23 01:47:30 +01:00
< h4 class = "card-title" > Card title< / h4 >
< p class = "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.< / p >
< p class = "card-text" > < small class = "text-muted" > Last updated 3 mins ago< / small > < / p >
< / div >
2014-08-06 02:12:24 +02:00
< / div >
< / div >
{% endexample %}
2016-05-12 08:13:52 +02:00
Card columns can also be extended and customized with some additional code. Shown below is an extension of the `.card-columns` class using the same CSS we use—CSS columns— to generate a set of responsive tiers for changing the number of columns.
{% highlight scss %}
.card-columns {
@include media-breakpoint-only(lg) {
column-count: 4;
}
@include media-breakpoint-only(xl) {
column-count: 5;
}
}
{% endhighlight %}