Bootstrap 4 Pricing Cards with Monthly and Yearly Options
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Responsive Pricing Table (BS4)</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" xintegrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700,800,900&display=swap" rel="stylesheet">
</head>
<body>
<div class="pricing5 py-5">
<div class="container">
<div class="row justify-content-center">
<div class="col-12 col-md-8 text-center">
<h3 class="mb-3">Pricing to make your Work Effective</h3>
<h6 class="subtitle font-weight-normal">We offer 100% satisfaction and Money back Guarantee</h6>
<div class="switcher-box mt-4">
<div class="btn-group" data-toggle="buttons" role="group" aria-label="Pricing Toggle">
<label class="btn btn-outline-secondary active" id="monthly-label">
<input type="radio" name="pricing-period" id="monthly" autocomplete="off" checked> Monthly
</label>
<label class="btn btn-outline-secondary" id="yearly-label">
<input type="radio" name="pricing-period" id="yearly" autocomplete="off"> Yearly
</label>
</div>
</div>
</div>
</div>
<div class="row text-center pricing-box justify-content-center">
<div class="col-md-4 col-lg-4 mb-4 mb-lg-0">
<div class="card card-shadow border-0 card-pink">
<div class="pricing-header">
<div class="header-content">
<h6>BASE PACK</h6>
<h2 class="monthly">$100</h2>
<h2 class="yearly" style="display:none;">$1000</h2>
</div>
</div>
<div class="card-body px-4 pb-4 pt-4">
<ul class="general-listing">
<li class="py-3 d-block">
<h5 class="font-weight-normal">10 IMAGES</h5>
<h6 class="subtitle font-weight-normal">Premium images / Day</h6>
</li>
<li class="py-3 d-block">
<h5 class="font-weight-normal">05 Videos</h5>
<h6 class="subtitle font-weight-normal">Video Footage / Day</h6>
</li>
<li class="py-3 d-block">
<h5 class="font-weight-normal">03 Users</h5>
<h6 class="subtitle font-weight-normal">Can access the site</h6>
</li>
</ul>
<a class="btn btn-outline-success btn-md rounded-pill mt-3" href="#f1"><span>BUY BASIC</span></a>
</div>
</div>
</div>
<div class="col-md-4 col-lg-4 middle-box mb-4 mb-lg-0">
<div class="card card-shadow border-0 card-red">
<div class="pricing-header">
<div class="star-plan"><img src="https://www.wrappixel.com/demos/ui-kit/wrapkit/assets/images/pricing/star.png" alt="Star" class="img-fluid" /></div>
<div class="header-content">
<h6>PRO PACK</h6>
<h2 class="monthly">$200</h2>
<h2 class="yearly" style="display:none;">$2000</h2>
</div>
</div>
<div class="card-body px-4 pb-4 pt-4">
<ul class="general-listing">
<li class="py-3 d-block">
<h5 class="font-weight-normal">20 IMAGES</h5>
<h6 class="subtitle font-weight-normal">Premium images / Day</h6>
</li>
<li class="py-3 d-block">
<h5 class="font-weight-normal">10 Videos</h5>
<h6 class="subtitle font-weight-normal">Video Footage / Day</h6>
</li>
<li class="py-3 d-block">
<h5 class="font-weight-normal">05 Users</h5>
<h6 class="subtitle font-weight-normal">Can access the site</h6>
</li>
</ul>
<a class="btn btn-success-gradiant btn-md text-white rounded-pill mt-3" href="#f1"><span>BUY PRO</span></a>
</div>
</div>
</div>
<div class="col-md-4 col-lg-4 mb-4 mb-lg-0">
<div class="card card-shadow border-0 card-blue">
<div class="pricing-header">
<div class="header-content">
<h6>BUSINESS PACK</h6>
<h2 class="monthly">$300</h2>
<h2 class="yearly" style="display:none;">$3000</h2>
</div>
</div>
<div class="card-body px-4 pb-4 pt-4">
<ul class="general-listing">
<li class="d-block py-3">
<h5 class="font-weight-normal">50 IMAGES</h5>
<h6 class="subtitle font-weight-normal">Premium images / Day</h6>
</li>
<li class="d-block py-3">
<h5 class="font-weight-normal">25 Videos</h5>
<h6 class="subtitle font-weight-normal">Video Footage / Day</h6>
</li>
<li class="d-block py-3">
<h5 class="font-weight-normal">10 Users</h5>
<h6 class="subtitle font-weight-normal">Can access the site</h6>
</li>
</ul>
<a class="btn btn-outline-success btn-md rounded-pill mt-3" href="#f1"><span>BUY BUSINESS</span></a>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" xintegrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" xintegrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" xintegrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script>
$(".pricing5 .switcher-box .btn-group label.btn").click(function() {
const isMonthly = $(this).attr('id') === 'monthly-label';
$(".pricing5 .monthly").toggle(isMonthly);
$(".pricing5 .yearly").toggle(!isMonthly);
});
$(document).ready(function() {
$('#monthly-label').click();
});
</script>
</body>
</html>
@import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700,800,900&display=swap');
body {
font-family: "Montserrat", sans-serif;
font-weight: 300;
color: #8d97ad;
overflow-x: hidden;
background-color: #f4f8fa;
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: #3e4555;
}
.pricing5 h5 {
line-height: 22px;
font-size: 18px;
}
.pricing5 .font-weight-medium {
font-weight: 500;
}
.pricing5 .subtitle {
color: #8d97ad;
line-height: 24px;
}
.pricing5 .card {
border-radius: 12px;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
box-shadow: 0px 0px 30px rgba(115, 128, 157, 0.1);
background-color: #ffffff;
border: 3px solid transparent;
transition: all 0.3s ease-in-out;
}
.pricing5 .card:hover {
transform: translateY(-10px) scale(1.02);
border-color: #ee5a77;
}
.pricing-header {
position: relative;
padding: 50px 20px 20px;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
color: #ffffff;
text-align: center;
z-index: 0;
height: 160px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.card-pink .pricing-header {
background-color: #fd6d94;
}
.card-red .pricing-header {
background-color: #ee5a77;
}
.card-blue .pricing-header {
background-color: #5d97e7;
}
.pricing-header .header-content {
position: relative;
z-index: 1;
width: 100%;
}
.pricing-header h6 {
color: #ffffff;
font-weight: 600;
margin-bottom: 5px;
text-transform: uppercase;
}
.pricing-header h2 {
color: #ffffff;
font-weight: 700;
margin-bottom: 0;
}
.pricing5 .general-listing {
list-style: none;
padding: 0;
margin: 30px 0;
flex-grow: 1;
}
.pricing5 .general-listing li {
padding: 12px 20px;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.pricing5 .general-listing li:not(:last-child) {
border-bottom: 1px dashed #e9ecef;
}
.pricing5 .general-listing h5 {
color: #3e4555;
font-weight: 500;
margin-bottom: 3px;
}
.pricing5 .general-listing h6 {
color: #8d97ad;
font-size: 0.85rem;
}
.pricing5 .switcher-box {
display: inline-block;
border-radius: 50px;
padding: 4px;
}
.pricing5 .switcher-box .btn-group {
border: none;
}
.pricing5 .switcher-box .btn-group>label.btn {
padding: 10px 25px;
font-size: 0.95rem;
font-weight: 500;
border: none;
background-color: transparent;
color: #6c757d;
transition: all 0.3s ease;
cursor: pointer;
border-radius: 50px;
position: relative;
z-index: 1;
}
.pricing5 .switcher-box .btn-group>label.btn.active {
background-color: #007bff;
color: #ffffff;
box-shadow: none;
z-index: 2;
}
.pricing5 .switcher-box .btn-group>label.btn>input[type="radio"] {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none;
}
.pricing5 .yearly {
display: none;
}
.pricing5 .pricing-box {
margin-top: 60px;
align-items: flex-start;
}
.pricing5 .pricing-box .middle-box {
margin-top: 0px;
z-index: 0;
transform: scale(1);
}
.pricing5 .star-plan {
position: absolute;
top: 20px;
right: 20px;
z-index: 2;
}
.pricing5 .star-plan img {
width: 50px;
height: auto;
}
.pricing5 .btn-success-gradiant {
background: linear-gradient(to right, #2cdd9b 0%, #1dc8cc 100%);
color: white;
border: none;
padding: 12px 30px;
font-size: 1rem;
border-radius: 50px;
transition: all 0.3s ease;
font-weight: 600;
}
.pricing5 .btn-success-gradiant:hover {
background: linear-gradient(to right, #1dc8cc 0%, #2cdd9b 100%);
color: white;
}
.pricing5 .btn-outline-success {
color: #2cdd9b;
border-color: #2cdd9b;
padding: 12px 30px;
font-size: 1rem;
border-radius: 50px;
transition: all 0.3s ease;
font-weight: 600;
}
.pricing5 .btn-outline-success:hover {
background: #2cdd9b;
border-color: #2cdd9b;
color: #ffffff;
}
@media (max-width: 991.98px) {
.pricing5 .pricing-box {
margin-top: 20px;
}
.pricing5 .pricing-box .middle-box {
margin-top: 0px;
}
.pricing5 .card {
margin-bottom: 30px !important;
}
}
@media (max-width: 767.98px) {
.pricing5 h3 {
font-size: 2rem;
}
.pricing5 .subtitle {
font-size: 0.9rem;
}
.pricing5 .switcher-box .btn-group>label.btn {
padding: 8px 15px;
font-size: 0.85rem;
}
.pricing5 .general-listing {
margin: 20px 0;
}
.pricing-header {
height: 120px;
padding-top: 30px;
}
.pricing5 .star-plan {
top: 10px;
right: 10px;
width: 40px;
}
.pricing5 .star-plan img {
width: 40px;
}
}
//Doesn't require any JS.
This Bootstrap 4 snippet showcases a visually appealing and informative pricing table designed to help users easily compare different pricing plans. The table features a clean and modern layout, with clear pricing information and highlighted key features.
Key Features:
- Responsive Design: The pricing table adapts seamlessly to different screen sizes, ensuring a consistent user experience across devices.
- Customizable Styling: Easily modify the appearance of the table using Bootstrap's CSS classes to match your website's design and branding.
- Clear Pricing Information: The table presents pricing plans in a clear and concise format, including monthly or annual costs, billed annually or monthly, and any applicable discounts or promotions.
- Feature Highlights: Compare different pricing plans by highlighting the key features included in each tier.
- Call-to-Action Buttons: Include prominent call-to-action buttons within each pricing card to encourage users to select a plan and proceed to the next step.
Implementation:
- Include Bootstrap 4: Ensure you have Bootstrap 4 installed and configured in your project.
- Create the HTML Structure: Set up the basic HTML structure for the pricing table, including the container, card rows, and individual card elements.
- Apply Bootstrap Classes: Use Bootstrap's CSS classes to style the pricing cards and their elements, such as card, card-header, card-body, card-footer, price, feature, and btn.
- Customize as Needed: Modify the Bootstrap classes and HTML structure to customize the appearance and content of the pricing cards according to your specific requirements.
By following these steps, you can easily integrate a visually appealing and functional pricing table into your Bootstrap 4 project.
Join Our Community Call-to-Action Banner Section With Tailwind CSS
Bootstrap 5 Responsive Service Pricing Table Block
Owl Carousel Responsive CSS-Only Team Section Showcase
Tailwind CSS Subscribe Container with Integrated Footer
Responsive Bootstrap 5 Detailed Features Section
Responsive CSS-Only Glassmorphism Login Form with background image
Responsive Tailwind CSS Hero Section and Adaptive Navbar
Responsive Bootstrap 5 Compact FAQ Accordion Display
Responsive CSS Only Services Section with Hover Effects
Responsive Tailwind CSS Team Members Display Showcase
Responsive Bootstrap 5 Clear Process Flow Component
Responsive Interactive Login & Register Form with CSS & JS Transitions
Building Blocks for Your Web Pages
Explore a collection of pre-written HTML,CSS and Javascript
snippets to jumpstart your web development projects.