Cards are flexible content containers with optional header, footer, images and lists. Use them for products, profiles, pricing plans, dashboard widgets and articles, and lay them out with the grid, card groups or row-cols for equal heights.
1Basic card
Image on top, a title, some text and a button.
<div class="card" style="max-width: 20rem;">
<img src="https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=1200&h=800&q=70" class="card-img-top" alt="Wine pairing">
<div class="card-body">
<h5 class="card-title">Catering</h5>
<p class="card-text">Every dish is cooked to order, so tell us if you would like anything changed.</p>
<a href="#" class="btn btn-primary">Learn more</a>
</div>
</div>2Header and footer
card-header and card-footer frame the body; the footer often holds meta text.
Five wines to pair with a summer dinner
Book a table online in seconds, or call us for groups of eight or more. Clear prices, honest advice and no surprises along the way.
<div class="card">
<div class="card-header flex justify-between items-center">
<span class="font-semibold"><i class="bi bi-megaphone-fill" aria-hidden="true"></i> Announcement</span><span class="badge text-bg-primary">Team</span>
</div>
<div class="card-body">
<h5 class="card-title">Five wines to pair with a summer dinner</h5>
<p class="card-text">Book a table online in seconds, or call us for groups of eight or more. Clear prices, honest advice and no surprises along the way.</p>
</div>
<div class="card-footer text-muted small">
Posted 3 days ago
</div>
</div>3Pricing cards
Three plans with equal heights; the recommended plan is highlighted.
Starter
- Chef's specials
- Fast delivery
Team
- Kid friendly
- Online reservations
- Kid friendly
Business
- Vegan options
- Online reservations
- Fast delivery
- Vegan options
<div class="row row-cols-1 row-cols-md-3 g-3 text-center">
<div class="col">
<div class="card h-full">
<div class="card-header">
</div>
<div class="card-body flex flex-col">
<h5 class="card-title">Starter</h5>
<div class="display-6 font-bold my-2">
$9<small class="text-base font-normal text-muted">/mo</small>
</div>
<ul class="list-unstyled small text-start mx-auto mb-6">
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Chef's specials</li>
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Fast delivery</li>
</ul>
<button type="button" class="btn btn-outline-primary mt-auto w-full">Choose Starter</button>
</div>
</div>
</div>
<div class="col">
<div class="card h-full border-primary shadow-md">
<div class="card-header text-bg-primary">
Most popular
</div>
<div class="card-body flex flex-col">
<h5 class="card-title">Team</h5>
<div class="display-6 font-bold my-2">
$29<small class="text-base font-normal text-muted">/mo</small>
</div>
<ul class="list-unstyled small text-start mx-auto mb-6">
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Kid friendly</li>
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Online reservations</li>
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Kid friendly</li>
</ul>
<button type="button" class="btn btn-primary mt-auto w-full">Choose Team</button>
</div>
</div>
</div>
<div class="col">
<div class="card h-full">
<div class="card-header">
</div>
<div class="card-body flex flex-col">
<h5 class="card-title">Business</h5>
<div class="display-6 font-bold my-2">
$79<small class="text-base font-normal text-muted">/mo</small>
</div>
<ul class="list-unstyled small text-start mx-auto mb-6">
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Vegan options</li>
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Online reservations</li>
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Fast delivery</li>
<li class="mb-1"><span class="text-success-emphasis"><i class="bi bi-check2" aria-hidden="true"></i></span> Vegan options</li>
</ul>
<button type="button" class="btn btn-outline-primary mt-auto w-full">Choose Business</button>
</div>
</div>
</div>
</div>4Profile card
Cover image, overlapping avatar, stats and actions for a user profile.
Leo Ashford
Content Writer · Dublin
<div class="card text-center overflow-hidden" style="max-width: 20rem;">
<img src="https://images.unsplash.com/photo-1551632436-cbf8dd35adfa?auto=format&fit=crop&w=1600&h=700&q=70" class="card-img-top object-cover" style="height: 90px;" alt="">
<div class="card-body pt-0">
<img src="../assets/img/avatar-4.svg" alt="Leo Ashford" class="rounded-full border border-4 border-white ca-card-av" width="88" height="88">
<h5 class="card-title mt-2 mb-0">Leo Ashford</h5>
<p class="text-muted small">Content Writer · Dublin</p>
<div class="flex justify-around border-t border-b py-2 mb-4 small">
<div>
<div class="font-bold">
48
</div>
Posts
</div>
<div>
<div class="font-bold">
13.2k
</div>
Followers
</div>
<div>
<div class="font-bold">
544
</div>
Following
</div>
</div>
<div class="flex gap-2 justify-center">
<button type="button" class="btn btn-primary btn-sm">Follow</button>
<button type="button" class="btn btn-outline-secondary btn-sm">Message</button>
</div>
</div>
</div>5Horizontal card
Image and text side by side using the grid; it stacks on small screens.
Planning the perfect birthday dinner
Children are always welcome, with a menu made just for them.
Updated 3 min ago
<div class="card overflow-hidden" style="max-width: 560px;">
<div class="row g-0">
<div class="col-sm-4">
<img src="https://images.unsplash.com/photo-1538333581680-29dd4752ddf2?auto=format&fit=crop&w=800&h=800&q=70" class="img-fluid h-full object-cover" alt="Our chef's guide to seasonal autumn produce">
</div>
<div class="col-sm-8">
<div class="card-body">
<h5 class="card-title">Planning the perfect birthday dinner</h5>
<p class="card-text">Children are always welcome, with a menu made just for them.</p>
<p class="card-text"><small class="text-muted">Updated 3 min ago</small></p>
</div>
</div>
</div>
</div>6Image overlay
Text over the image with card-img-overlay and a dark gradient for contrast.
<div class="card text-white border-0 overflow-hidden" style="max-width: 32rem;">
<img src="https://images.unsplash.com/photo-1579631542761-d7c4e913f8d4?auto=format&fit=crop&w=1200&h=800&q=70" class="card-img" alt="Simple dishes, honest ingredients">
<div class="card-img-overlay flex flex-col justify-end ca-card-shade">
<span class="badge text-bg-light self-start mb-2">Mains</span>
<h4 class="card-title">Cooked with care, served with a smile</h4>
<p class="card-text small mb-0">Sep 11, 2026</p>
</div>
</div>7KPI cards
Small stat cards for dashboards: value, trend and a tinted icon.
<div class="row row-cols-1 row-cols-sm-2 row-cols-lg-4 g-3">
<div class="col">
<div class="card h-full">
<div class="card-body">
<div class="flex justify-between items-start">
<div>
<div class="small text-muted">
Revenue
</div>
<div class="text-xl font-bold">
$12,341.74
</div>
</div>
<span class="rounded-lg p-2 bg-primary-subtle text-primary-emphasis"><i class="bi bi-currency-dollar" aria-hidden="true"></i></span>
</div>
<div class="small mt-2 text-success-emphasis">
<i class="bi bi-arrow-up-right" aria-hidden="true"></i> 15% vs last month
</div>
</div>
</div>
</div>
<div class="col">
<div class="card h-full">
<div class="card-body">
<div class="flex justify-between items-start">
<div>
<div class="small text-muted">
New customers
</div>
<div class="text-xl font-bold">
3.7k
</div>
</div>
<span class="rounded-lg p-2 bg-success-subtle text-success-emphasis"><i class="bi bi-people-fill" aria-hidden="true"></i></span>
</div>
<div class="small mt-2 text-success-emphasis">
<i class="bi bi-arrow-up-right" aria-hidden="true"></i> 8% vs last month
</div>
</div>
</div>
</div>
<div class="col">
<div class="card h-full">
<div class="card-body">
<div class="flex justify-between items-start">
<div>
<div class="small text-muted">
Orders
</div>
<div class="text-xl font-bold">
1.6k
</div>
</div>
<span class="rounded-lg p-2 bg-warning-subtle text-warning-emphasis"><i class="bi bi-cart-check-fill" aria-hidden="true"></i></span>
</div>
<div class="small mt-2 text-success-emphasis">
<i class="bi bi-arrow-up-right" aria-hidden="true"></i> 10% vs last month
</div>
</div>
</div>
</div>
<div class="col">
<div class="card h-full">
<div class="card-body">
<div class="flex justify-between items-start">
<div>
<div class="small text-muted">
Refund rate
</div>
<div class="text-xl font-bold">
4.2%
</div>
</div>
<span class="rounded-lg p-2 bg-danger-subtle text-danger-emphasis"><i class="bi bi-graph-down-arrow" aria-hidden="true"></i></span>
</div>
<div class="small mt-2 text-danger-emphasis">
<i class="bi bi-arrow-down-right" aria-hidden="true"></i> 4% vs last month
</div>
</div>
</div>
</div>
</div>8Card with list group
A flush list group inside a card, with a footer link.
- Seasonal soup818
- Seasonal soup92
- Seasonal soup27
<div class="card" style="max-width: 22rem;">
<div class="card-header font-semibold">
Top dishes
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item flex justify-between">Seasonal soup<span class="text-muted">818</span></li>
<li class="list-group-item flex justify-between">Seasonal soup<span class="text-muted">92</span></li>
<li class="list-group-item flex justify-between">Seasonal soup<span class="text-muted">27</span></li>
</ul>
<div class="card-footer bg-transparent">
<a href="#" class="small">View all <i class="bi bi-arrow-right" aria-hidden="true"></i></a>
</div>
</div>9Card with tabs
Nav tabs in the card header switch the body content through the tab data API.
Our terrace is open from spring to autumn, with heaters for cooler evenings. We measure success by how many guests come back and tell their friends.
- Online reservations
- Kid friendly
“Book a table online in seconds, or call us for groups of eight or more.”
<div class="card">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs" role="tablist">
<li class="nav-item" role="presentation"><button class="nav-link active" id="ctab-877-tab" data-ui-toggle="tab" data-ui-target="#ctab-877" type="button" role="tab" aria-controls="ctab-877" aria-selected="true">Overview</button></li>
<li class="nav-item" role="presentation"><button class="nav-link" id="ctab-878-tab" data-ui-toggle="tab" data-ui-target="#ctab-878" type="button" role="tab" aria-controls="ctab-878" aria-selected="false">Specs</button></li>
<li class="nav-item" role="presentation"><button class="nav-link" id="ctab-879-tab" data-ui-toggle="tab" data-ui-target="#ctab-879" type="button" role="tab" aria-controls="ctab-879" aria-selected="false">Reviews</button></li>
</ul>
</div>
<div class="card-body tab-content">
<div class="tab-pane fade show active" id="ctab-877" role="tabpanel" aria-labelledby="ctab-877-tab" tabindex="0">
<p class="mb-0">Our terrace is open from spring to autumn, with heaters for cooler evenings. We measure success by how many guests come back and tell their friends.</p>
</div>
<div class="tab-pane fade" id="ctab-878" role="tabpanel" aria-labelledby="ctab-878-tab" tabindex="0">
<ul class="mb-0">
<li>Online reservations</li>
<li>Kid friendly</li>
</ul>
</div>
<div class="tab-pane fade" id="ctab-879" role="tabpanel" aria-labelledby="ctab-879-tab" tabindex="0">
<p class="mb-0"><span class="text-warning-emphasis" aria-label="Rated 4.5 out of 5"><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-half" aria-hidden="true"></i></span> “Book a table online in seconds, or call us for groups of eight or more.”</p>
</div>
</div>
</div>10Background colours
text-bg-* colours the whole card with matching readable text.
Thousands of guests already trust us, and we work hard to keep it that way.
Friendly people answer your questions quickly, by phone, chat or email.
We keep things simple, so you can focus on what matters to you.
Private dining rooms seat up to forty guests for birthdays and business dinners.
We listen first, then build a plan around what you actually need.
Our sommelier has paired each dish with wines from small family vineyards.
<div class="row row-cols-1 row-cols-sm-2 row-cols-lg-3 g-3">
<div class="col">
<div class="card text-bg-primary h-full">
<div class="card-header">
Primary
</div>
<div class="card-body">
<p class="card-text small mb-0">Thousands of guests already trust us, and we work hard to keep it that way.</p>
</div>
</div>
</div>
<div class="col">
<div class="card text-bg-success h-full">
<div class="card-header">
Success
</div>
<div class="card-body">
<p class="card-text small mb-0">Friendly people answer your questions quickly, by phone, chat or email.</p>
</div>
</div>
</div>
<div class="col">
<div class="card text-bg-danger h-full">
<div class="card-header">
Danger
</div>
<div class="card-body">
<p class="card-text small mb-0">We keep things simple, so you can focus on what matters to you.</p>
</div>
</div>
</div>
<div class="col">
<div class="card text-bg-warning h-full">
<div class="card-header">
Warning
</div>
<div class="card-body">
<p class="card-text small mb-0">Private dining rooms seat up to forty guests for birthdays and business dinners.</p>
</div>
</div>
</div>
<div class="col">
<div class="card text-bg-info h-full">
<div class="card-header">
Info
</div>
<div class="card-body">
<p class="card-text small mb-0">We listen first, then build a plan around what you actually need.</p>
</div>
</div>
</div>
<div class="col">
<div class="card text-bg-dark h-full">
<div class="card-header">
Dark
</div>
<div class="card-body">
<p class="card-text small mb-0">Our sommelier has paired each dish with wines from small family vineyards.</p>
</div>
</div>
</div>
</div>11Border colours
border-* utilities colour just the outline and header line.
Our menu changes with the seasons and the best produce from nearby farms.
Cooking classes on Saturday mornings teach you our favourite recipes.
We have been feeding this neighbourhood for over a decade, and we still love it.
<div class="row row-cols-1 row-cols-sm-2 row-cols-lg-3 g-3">
<div class="col">
<div class="card border-primary h-full">
<div class="card-header bg-transparent border-primary text-primary-ink font-semibold">
Primary border
</div>
<div class="card-body">
<p class="card-text small mb-0">Our menu changes with the seasons and the best produce from nearby farms.</p>
</div>
</div>
</div>
<div class="col">
<div class="card border-success h-full">
<div class="card-header bg-transparent border-success text-success-emphasis font-semibold">
Success border
</div>
<div class="card-body">
<p class="card-text small mb-0">Cooking classes on Saturday mornings teach you our favourite recipes.</p>
</div>
</div>
</div>
<div class="col">
<div class="card border-danger h-full">
<div class="card-header bg-transparent border-danger text-danger-emphasis font-semibold">
Danger border
</div>
<div class="card-body">
<p class="card-text small mb-0">We have been feeding this neighbourhood for over a decade, and we still love it.</p>
</div>
</div>
</div>
</div>12Product cards
Shop cards with label, wishlist button, rating, price and add-to-cart.
Garden salad
House lemonade
Wood-fired pizza
<div class="row row-cols-1 row-cols-sm-2 row-cols-lg-3 g-3">
<div class="col">
<div class="card h-full">
<div class="relative">
<img src="../assets/img/product-3.svg" class="card-img-top" alt="Garden salad"><span class="badge text-bg-danger absolute top-0 start-0 m-2">-40%</span>
<button type="button" class="btn btn-light btn-sm rounded-full absolute top-0 end-0 m-2" aria-label="Add to wishlist"><i class="bi bi-heart-fill" aria-hidden="true"></i></button>
</div>
<div class="card-body flex flex-col">
<div class="small text-muted">
Starters
</div>
<h6 class="card-title">Garden salad</h6>
<div class="small mb-2">
<span class="text-warning-emphasis" aria-label="Rated 4.1 out of 5"><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i></span> <span class="text-muted">(905)</span>
</div>
<div class="flex justify-between items-center mt-auto">
<span class="text-lg font-bold">$11.00</span>
<button type="button" class="btn btn-primary btn-sm"><i class="bi bi-cart-plus-fill" aria-hidden="true"></i> Add</button>
</div>
</div>
</div>
</div>
<div class="col">
<div class="card h-full">
<div class="relative">
<img src="../assets/img/product-6.svg" class="card-img-top" alt="House lemonade">
<button type="button" class="btn btn-light btn-sm rounded-full absolute top-0 end-0 m-2" aria-label="Add to wishlist"><i class="bi bi-heart-fill" aria-hidden="true"></i></button>
</div>
<div class="card-body flex flex-col">
<div class="small text-muted">
Drinks
</div>
<h6 class="card-title">House lemonade</h6>
<div class="small mb-2">
<span class="text-warning-emphasis" aria-label="Rated 4.1 out of 5"><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i></span> <span class="text-muted">(23)</span>
</div>
<div class="flex justify-between items-center mt-auto">
<span class="text-lg font-bold">$5.00</span>
<button type="button" class="btn btn-primary btn-sm"><i class="bi bi-cart-plus-fill" aria-hidden="true"></i> Add</button>
</div>
</div>
</div>
</div>
<div class="col">
<div class="card h-full">
<div class="relative">
<img src="../assets/img/product-4.svg" class="card-img-top" alt="Wood-fired pizza">
<button type="button" class="btn btn-light btn-sm rounded-full absolute top-0 end-0 m-2" aria-label="Add to wishlist"><i class="bi bi-heart-fill" aria-hidden="true"></i></button>
</div>
<div class="card-body flex flex-col">
<div class="small text-muted">
Mains
</div>
<h6 class="card-title">Wood-fired pizza</h6>
<div class="small mb-2">
<span class="text-warning-emphasis" aria-label="Rated 4.1 out of 5"><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i></span> <span class="text-muted">(613)</span>
</div>
<div class="flex justify-between items-center mt-auto">
<span class="text-lg font-bold">$17.00</span>
<button type="button" class="btn btn-primary btn-sm"><i class="bi bi-cart-plus-fill" aria-hidden="true"></i> Add</button>
</div>
</div>
</div>
</div>
</div>13Blog post card
Category, title, excerpt and an author footer with avatar.
What is new on our winter menu
Start in minutes and get help from a real person whenever you need it.
<div class="card h-full" style="max-width: 22rem;">
<img src="https://images.unsplash.com/photo-1682264933304-1943bfa8df38?auto=format&fit=crop&w=1200&h=800&q=70" class="card-img-top" alt="Our chocolate tart, step by step">
<div class="card-body">
<span class="badge bg-primary-subtle text-primary-emphasis mb-2">tutorial</span>
<h5 class="card-title"><a href="#" class="link-body-emphasis no-underline">What is new on our winter menu</a></h5>
<p class="card-text text-muted">Start in minutes and get help from a real person whenever you need it.</p>
</div>
<div class="card-footer bg-transparent flex items-center gap-2">
<img src="../assets/img/avatar-4.svg" alt="Elena Moreau" class="rounded-full shrink-0" width="32" height="32">
<div class="small">
<div class="font-semibold">
Elena Moreau
</div>
<div class="text-muted">
Nov 30, 2025 · 5 min read
</div>
</div>
</div>
</div>14Card group
card-group joins cards edge to edge with equal heights; they stack below sm.
Bright update
Order for pickup or delivery and enjoy the same dishes at home.
Focused plan
Every dish is cooked to order, so tell us if you would like anything changed.
Calm dashboard
Our team has done this many times, so you never have to guess.
<div class="card-group">
<div class="card">
<img src="https://images.unsplash.com/photo-1538333581680-29dd4752ddf2?auto=format&fit=crop&w=1200&h=800&q=70" class="card-img-top" alt="Gallery image 1">
<div class="card-body">
<h5 class="card-title">Bright update</h5>
<p class="card-text small">Order for pickup or delivery and enjoy the same dishes at home.</p>
</div>
<div class="card-footer">
<small class="text-muted">yesterday</small>
</div>
</div>
<div class="card">
<img src="https://images.unsplash.com/photo-1541963020-4f9732b3ee29?auto=format&fit=crop&w=1200&h=800&q=70" class="card-img-top" alt="Gallery image 2">
<div class="card-body">
<h5 class="card-title">Focused plan</h5>
<p class="card-text small">Every dish is cooked to order, so tell us if you would like anything changed.</p>
</div>
<div class="card-footer">
<small class="text-muted">5 days ago</small>
</div>
</div>
<div class="card">
<img src="https://images.unsplash.com/photo-1570560258879-af7f8e1447ac?auto=format&fit=crop&w=1200&h=800&q=70" class="card-img-top" alt="Gallery image 3">
<div class="card-body">
<h5 class="card-title">Calm dashboard</h5>
<p class="card-text small">Our team has done this many times, so you never have to guess.</p>
</div>
<div class="card-footer">
<small class="text-muted">22 hours ago</small>
</div>
</div>
</div>15Responsive card grid
row-cols and h-100 give a grid of equal-height cards that reflows by breakpoint.
Bright routine
Vegan, vegetarian and gluten-free dishes are marked clearly on every menu.
Simple story
Every detail is handled by people who care about getting it right. Bread is baked every morning and pasta is rolled by hand in our kitchen.
Bright journey
Our terrace is open from spring to autumn, with heaters for cooler evenings.
Fast plan
Vegan, vegetarian and gluten-free dishes are marked clearly on every menu. Clear prices, honest advice and no surprises along the way.
<div class="row row-cols-1 row-cols-sm-2 row-cols-lg-4 g-3">
<div class="col">
<div class="card h-full shadow-sm border-0">
<img src="https://images.unsplash.com/photo-1570560258879-af7f8e1447ac?auto=format&fit=crop&w=800&h=800&q=70" class="card-img-top" alt="Project 1">
<div class="card-body">
<h6 class="card-title">Bright routine</h6>
<p class="card-text small text-muted mb-0">Vegan, vegetarian and gluten-free dishes are marked clearly on every menu.</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-full shadow-sm border-0">
<img src="https://images.unsplash.com/photo-1712746784068-703c0c915611?auto=format&fit=crop&w=800&h=800&q=70" class="card-img-top" alt="Project 2">
<div class="card-body">
<h6 class="card-title">Simple story</h6>
<p class="card-text small text-muted mb-0">Every detail is handled by people who care about getting it right. Bread is baked every morning and pasta is rolled by hand in our kitchen.</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-full shadow-sm border-0">
<img src="https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=800&h=800&q=70" class="card-img-top" alt="Project 3">
<div class="card-body">
<h6 class="card-title">Bright journey</h6>
<p class="card-text small text-muted mb-0">Our terrace is open from spring to autumn, with heaters for cooler evenings.</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-full shadow-sm border-0">
<img src="https://images.unsplash.com/photo-1565895405140-6b9830a88c19?auto=format&fit=crop&w=800&h=800&q=70" class="card-img-top" alt="Project 4">
<div class="card-body">
<h6 class="card-title">Fast plan</h6>
<p class="card-text small text-muted mb-0">Vegan, vegetarian and gluten-free dishes are marked clearly on every menu. Clear prices, honest advice and no surprises along the way.</p>
</div>
</div>
</div>
</div>16Testimonial card
A quote with rating and the customer's photo and role.
Our team has done this many times, so you never have to guess. Start in minutes and get help from a real person whenever you need it.
<div class="card border-0 bg-surface-3" style="max-width: 30rem;">
<div class="card-body p-6">
<div class="text-4xl leading-none text-primary-ink">
<i class="bi bi-quote" aria-hidden="true"></i>
</div>
<blockquote class="blockquote mb-4"><p class="text-base">Our team has done this many times, so you never have to guess. Start in minutes and get help from a real person whenever you need it.</p></blockquote>
<div class="mb-4">
<span class="text-warning-emphasis" aria-label="Rated 5.0 out of 5"><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i><i class="bi bi-star-fill" aria-hidden="true"></i></span>
</div>
<div class="flex items-center gap-4">
<img src="../assets/img/avatar-9.svg" alt="Ethan Carter" class="rounded-full shrink-0" width="44" height="44">
<div>
<div class="font-semibold">
Ethan Carter
</div>
<div class="small text-muted">
Product Designer
</div>
</div>
</div>
</div>
</div>17Activity card
A dashboard widget listing recent events with tinted icons.
<div class="card" style="max-width: 26rem;">
<div class="card-header flex justify-between items-center">
<span class="font-semibold">Recent activity</span><a href="#" class="small">See all</a>
</div>
<div class="card-body">
<div class="flex gap-4 mb-4">
<span class="rounded-full bg-success-subtle text-success-emphasis inline-flex items-center justify-center shrink-0" style="width: 36px; height: 36px;"><i class="bi bi-cart-check-fill" aria-hidden="true"></i></span>
<div class="small">
<strong>Theo Ibrahim</strong> placed a new order
<div class="text-muted">
yesterday
</div>
</div>
</div>
<div class="flex gap-4 mb-4">
<span class="rounded-full bg-primary-subtle text-primary-emphasis inline-flex items-center justify-center shrink-0" style="width: 36px; height: 36px;"><i class="bi bi-chat-left-text-fill" aria-hidden="true"></i></span>
<div class="small">
<strong>Finn Quinn</strong> left a comment
<div class="text-muted">
just now
</div>
</div>
</div>
<div class="flex gap-4 mb-4">
<span class="rounded-full bg-info-subtle text-info-emphasis inline-flex items-center justify-center shrink-0" style="width: 36px; height: 36px;"><i class="bi bi-person-plus-fill" aria-hidden="true"></i></span>
<div class="small">
<strong>Freya Larsen</strong> joined the team
<div class="text-muted">
yesterday
</div>
</div>
</div>
</div>
</div>18Loading placeholder
placeholder-glow shapes stand in for content while it loads.
<div class="card" aria-hidden="true" style="max-width: 20rem;">
<div class="bg-surface-2" style="height: 140px;">
</div>
<div class="card-body">
<h5 class="card-title placeholder-glow"><span class="placeholder col-6"></span></h5>
<p class="card-text placeholder-glow"><span class="placeholder col-7"></span> <span class="placeholder col-4"></span> <span class="placeholder col-4"></span> <span class="placeholder col-6"></span></p>
<a class="btn btn-primary disabled placeholder col-6" aria-disabled="true"></a>
</div>
</div>19Newsletter card
A card with a small form for collecting email sign-ups.
Get the Yaraly Labs newsletter
One email a month. Our menu changes with the seasons and the best produce from nearby farms.
<div class="card text-center" style="max-width: 26rem;">
<div class="card-body p-6">
<div class="text-3xl text-primary-ink">
<i class="bi bi-envelope-paper-fill" aria-hidden="true"></i>
</div>
<h5 class="card-title">Get the Yaraly Labs newsletter</h5>
<p class="card-text text-muted small">One email a month. Our menu changes with the seasons and the best produce from nearby farms.</p>
<form class="flex flex-col sm:flex-row gap-2">
<label class="sr-only" for="news-email-880">Email address</label>
<input type="email" class="form-control" id="news-email-880" placeholder="you@example.com">
<button type="submit" class="btn btn-primary whitespace-nowrap">Subscribe</button>
</form>
</div>
</div>20Clickable feature cards
stretched-link makes the whole card clickable; a hover lift shows it.
<div class="row row-cols-1 row-cols-md-3 g-3">
<div class="col">
<div class="card h-full ca-card-hover">
<div class="card-body">
<span class="inline-flex rounded-lg p-2 mb-4 text-xl bg-primary-subtle text-primary-emphasis"><i class="bi bi-lightning-charge-fill" aria-hidden="true"></i></span>
<h5 class="card-title"><a href="#" class="stretched-link link-body-emphasis no-underline">Local ingredients</a></h5>
<p class="card-text small text-muted mb-0">Every dish is cooked to order, so tell us if you would like anything changed.</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-full ca-card-hover">
<div class="card-body">
<span class="inline-flex rounded-lg p-2 mb-4 text-xl bg-primary-subtle text-primary-emphasis"><i class="bi bi-shield-lock-fill" aria-hidden="true"></i></span>
<h5 class="card-title"><a href="#" class="stretched-link link-body-emphasis no-underline">Online reservations</a></h5>
<p class="card-text small text-muted mb-0">Cooking classes on Saturday mornings teach you our favourite recipes.</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-full ca-card-hover">
<div class="card-body">
<span class="inline-flex rounded-lg p-2 mb-4 text-xl bg-primary-subtle text-primary-emphasis"><i class="bi bi-graph-up-arrow" aria-hidden="true"></i></span>
<h5 class="card-title"><a href="#" class="stretched-link link-body-emphasis no-underline">Vegan options</a></h5>
<p class="card-text small text-muted mb-0">Children are always welcome, with a menu made just for them.</p>
</div>
</div>
</div>
</div>