aboutsummaryrefslogtreecommitdiff
path: root/docs/4.0/examples/checkout
diff options
context:
space:
mode:
authorMark Otto <[email protected]>2018-01-14 16:06:52 -0800
committerGitHub <[email protected]>2018-01-14 16:06:52 -0800
commite946348eca928fa1c42dbb92c7a612543832dccc (patch)
tree14a87eed8416197c156e9090d02f1de604e6cdab /docs/4.0/examples/checkout
parent4a64592dd8b9e97790533d79350d60291a7d8789 (diff)
downloadbootstrap-e946348eca928fa1c42dbb92c7a612543832dccc.tar.xz
bootstrap-e946348eca928fa1c42dbb92c7a612543832dccc.zip
Examples updates (#24898)
* fix cover nav * Improve signin visuals and alignment with that flexbox love * rewrite cover example in flexbox * lighten signin bg * first pass at pricing example * redo examples index with data file * tighten up spacing a bit * update navbar descriptions * link pricing * move that back * property order * Fix test errors. * Compress pricing.png. * add form validation example * remove that * rename that * restyle and space out * fix errors * change order * cleanup album css and styles * tweak examples index * make it a badge * options * improve sticky footer alignment * redesign example index * brand new blog layout * start new screenshots * new product example page a la apple * add email field * fix linter, remove unused blog css * hook up feather icons to start * redo dashboard * fix linting * add floating labels example * formatting * formatting * lint * fix values on select * optional input, plus input group * new dashboard image * start to reboot the offcanvas example * updated images * new offcanvas mostly implemented * linting * edit description * more description changes * - Add vertical margin to album hero buttons for when they're stacked - Adjust font-size and padding for pricing header and hero - Fix checkout's stacked column margins, plus update their check/radio markup - Update product's utilities to be responsive - Made blog cards somewhat responsive (needs a bit more work tbh) * drop leading zero * more linting * swap empty images for holder, fix border * dist the docs * navbars have no margin-bottom to begin * add css var, tweak padding for mobile * comment headers * nix commented out code * nix the navbar structure for a custom one, stack it on mobile * tweak heading button group for mobile * Removed narrow jumbotron and justified nav examples as these are easily accomplished with new components in v4 * improve card sizing on pricing * update and compress
Diffstat (limited to 'docs/4.0/examples/checkout')
-rw-r--r--docs/4.0/examples/checkout/form-validation.css11
-rw-r--r--docs/4.0/examples/checkout/index.html268
2 files changed, 279 insertions, 0 deletions
diff --git a/docs/4.0/examples/checkout/form-validation.css b/docs/4.0/examples/checkout/form-validation.css
new file mode 100644
index 000000000..fd88d5a40
--- /dev/null
+++ b/docs/4.0/examples/checkout/form-validation.css
@@ -0,0 +1,11 @@
+.container {
+ max-width: 960px;
+}
+
+.border-top { border-top: 1px solid #e5e5e5; }
+.border-bottom { border-bottom: 1px solid #e5e5e5; }
+.border-top-gray { border-top-color: #adb5bd; }
+
+.box-shadow { box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); }
+
+.lh-condensed { line-height: 1.25; }
diff --git a/docs/4.0/examples/checkout/index.html b/docs/4.0/examples/checkout/index.html
new file mode 100644
index 000000000..43a16e0f5
--- /dev/null
+++ b/docs/4.0/examples/checkout/index.html
@@ -0,0 +1,268 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+ <meta name="description" content="">
+ <meta name="author" content="">
+ <link rel="icon" href="../../../../favicon.ico">
+
+ <title>Checkout example for Bootstrap</title>
+
+ <!-- Bootstrap core CSS -->
+ <link href="../../../../dist/css/bootstrap.min.css" rel="stylesheet">
+
+ <!-- Custom styles for this template -->
+ <link href="form-validation.css" rel="stylesheet">
+ </head>
+
+ <body class="bg-light">
+
+ <div class="container">
+ <div class="py-5 text-center">
+ <img class="d-block mx-auto mb-4" src="https://getbootstrap.com/assets/brand/bootstrap-solid.svg" alt="" width="72" height="72">
+ <h2>Checkout form</h2>
+ <p class="lead">Below is an example form built entirely with Bootstrap's form controls. Each required form group has a validation state that can be triggered by attempting to submit the form without completing it.</p>
+ </div>
+
+ <div class="row">
+ <div class="col-md-4 order-md-2 mb-4">
+ <h4 class="d-flex justify-content-between align-items-center mb-3">
+ <span class="text-muted">Your cart</span>
+ <span class="badge badge-secondary badge-pill">3</span>
+ </h4>
+ <ul class="list-group mb-3">
+ <li class="list-group-item d-flex justify-content-between lh-condensed">
+ <div>
+ <h6 class="my-0">Product name</h6>
+ <small class="text-muted">Brief description</small>
+ </div>
+ <span class="text-muted">$12</span>
+ </li>
+ <li class="list-group-item d-flex justify-content-between lh-condensed">
+ <div>
+ <h6 class="my-0">Second product</h6>
+ <small class="text-muted">Brief description</small>
+ </div>
+ <span class="text-muted">$8</span>
+ </li>
+ <li class="list-group-item d-flex justify-content-between lh-condensed">
+ <div>
+ <h6 class="my-0">Third item</h6>
+ <small class="text-muted">Brief description</small>
+ </div>
+ <span class="text-muted">$5</span>
+ </li>
+ <li class="list-group-item d-flex justify-content-between bg-light">
+ <div class="text-success">
+ <h6 class="my-0">Promo code</h6>
+ <small>EXAMPLECODE</small>
+ </div>
+ <span class="text-success">-$5</span>
+ </li>
+ <li class="list-group-item d-flex justify-content-between">
+ <span>Total (USD)</span>
+ <strong>$20</strong>
+ </li>
+ </ul>
+
+ <form class="card p-2">
+ <div class="input-group">
+ <input type="text" class="form-control" placeholder="Promo code">
+ <div class="input-group-append">
+ <button type="submit" class="btn btn-secondary">Redeem</button>
+ </div>
+ </div>
+ </form>
+ </div>
+ <div class="col-md-8 order-md-1">
+ <h4 class="mb-3">Billing address</h4>
+ <form class="needs-validation" novalidate>
+ <div class="row">
+ <div class="col-md-6 mb-3">
+ <label for="firstName">First name</label>
+ <input type="text" class="form-control" id="firstName" placeholder="" value="" required>
+ <div class="invalid-feedback">
+ Valid first name is required.
+ </div>
+ </div>
+ <div class="col-md-6 mb-3">
+ <label for="lastName">Last name</label>
+ <input type="text" class="form-control" id="lastName" placeholder="" value="" required>
+ <div class="invalid-feedback">
+ Valid last name is required.
+ </div>
+ </div>
+ </div>
+
+ <div class="mb-3">
+ <label for="username">Username</label>
+ <div class="input-group">
+ <div class="input-group-prepend">
+ <span class="input-group-text">@</span>
+ </div>
+ <input type="text" class="form-control" id="username" placeholder="Username" required>
+ <div class="invalid-feedback" style="width: 100%;">
+ Your username is required.
+ </div>
+ </div>
+ </div>
+
+ <div class="mb-3">
+ <label for="email">Email <span class="text-muted">(Optional)</span></label>
+ <input type="email" class="form-control" id="email" placeholder="[email protected]">
+ <div class="invalid-feedback">
+ Please enter a valid email address for shipping updates.
+ </div>
+ </div>
+
+ <div class="mb-3">
+ <label for="address">Address</label>
+ <input type="text" class="form-control" id="address" placeholder="1234 Main St" required>
+ <div class="invalid-feedback">
+ Please enter your shipping address.
+ </div>
+ </div>
+
+ <div class="mb-3">
+ <label for="address2">Address 2 <span class="text-muted">(Optional)</span></label>
+ <input type="text" class="form-control" id="address2" placeholder="Apartment or suite">
+ </div>
+
+ <div class="row">
+ <div class="col-md-5 mb-3">
+ <label for="country">Country</label>
+ <select class="custom-select d-block w-100" id="country" required>
+ <option value="">Choose...</option>
+ <option>United States</option>
+ </select>
+ <div class="invalid-feedback">
+ Please select a valid country.
+ </div>
+ </div>
+ <div class="col-md-4 mb-3">
+ <label for="state">State</label>
+ <select class="custom-select d-block w-100" id="state" required>
+ <option value="">Choose...</option>
+ <option>California</option>
+ </select>
+ <div class="invalid-feedback">
+ Please provide a valid state.
+ </div>
+ </div>
+ <div class="col-md-3 mb-3">
+ <label for="zip">Zip</label>
+ <input type="text" class="form-control" id="zip" placeholder="" required>
+ <div class="invalid-feedback">
+ Zip code required.
+ </div>
+ </div>
+ </div>
+ <hr class="mb-4">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox" class="custom-control-input" id="same-address">
+ <label class="custom-control-label" for="same-address">Shipping address is the same as my billing address</label>
+ </div>
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox" class="custom-control-input" id="save-info">
+ <label class="custom-control-label" for="save-info">Save this information for next time</label>
+ </div>
+ <hr class="mb-4">
+
+ <h4 class="mb-3">Payment</h4>
+
+ <div class="d-block my-3">
+ <div class="custom-control custom-radio">
+ <input id="credit" name="paymentMethod" type="radio" class="custom-control-input" checked required>
+ <label class="custom-control-label" for="credit">Credit card</label>
+ </div>
+ <div class="custom-control custom-radio">
+ <input id="debit" name="paymentMethod" type="radio" class="custom-control-input" required>
+ <label class="custom-control-label" for="debit">Debit card</label>
+ </div>
+ <div class="custom-control custom-radio">
+ <input id="paypal" name="paymentMethod" type="radio" class="custom-control-input" required>
+ <label class="custom-control-label" for="paypal">Paypal</label>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-6 mb-3">
+ <label for="cc-name">Name on card</label>
+ <input type="text" class="form-control" id="cc-name" placeholder="" required>
+ <small class="text-muted">Full name as displayed on card</small>
+ <div class="invalid-feedback">
+ Name on card is required
+ </div>
+ </div>
+ <div class="col-md-6 mb-3">
+ <label for="cc-number">Credit card number</label>
+ <input type="text" class="form-control" id="cc-number" placeholder="" required>
+ <div class="invalid-feedback">
+ Credit card number is required
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-3 mb-3">
+ <label for="cc-expiration">Expiration</label>
+ <input type="text" class="form-control" id="cc-expiration" placeholder="" required>
+ <div class="invalid-feedback">
+ Expiration date required
+ </div>
+ </div>
+ <div class="col-md-3 mb-3">
+ <label for="cc-expiration">CVV</label>
+ <input type="text" class="form-control" id="cc-cvv" placeholder="" required>
+ <div class="invalid-feedback">
+ Security code required
+ </div>
+ </div>
+ </div>
+ <hr class="mb-4">
+ <button class="btn btn-primary btn-lg btn-block" type="submit">Continue to checkout</button>
+ </form>
+ </div>
+ </div>
+
+ <footer class="my-5 pt-5 text-muted text-center text-small">
+ <p class="mb-1">&copy; 2017 Company Name</p>
+ <ul class="list-inline">
+ <li class="list-inline-item"><a href="#">Privacy</a></li>
+ <li class="list-inline-item"><a href="#">Terms</a></li>
+ <li class="list-inline-item"><a href="#">Support</a></li>
+ </ul>
+ </footer>
+ </div>
+
+ <!-- Bootstrap core JavaScript
+ ================================================== -->
+ <!-- Placed at the end of the document so the pages load faster -->
+ <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
+ <script>window.jQuery || document.write('<script src="../../../../assets/js/vendor/jquery-slim.min.js"><\/script>')</script>
+ <script src="../../../../assets/js/vendor/popper.min.js"></script>
+ <script src="../../../../dist/js/bootstrap.min.js"></script>
+ <script src="../../../../assets/js/vendor/holder.min.js"></script>
+ <script>
+ // Example starter JavaScript for disabling form submissions if there are invalid fields
+ (function() {
+ 'use strict';
+
+ window.addEventListener('load', function() {
+ // Fetch all the forms we want to apply custom Bootstrap validation styles to
+ var forms = document.getElementsByClassName('needs-validation');
+
+ // Loop over them and prevent submission
+ var validation = Array.prototype.filter.call(forms, function(form) {
+ form.addEventListener('submit', function(event) {
+ if (form.checkValidity() === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ form.classList.add('was-validated');
+ }, false);
+ });
+ }, false);
+ })();
+ </script>
+ </body>
+</html>