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.