<!-- Font Awesome -->
<script src="https://use.fontawesome.com/2d1c7583b1.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<section class="container">
<header>
<div id="menu"><img src="https://thinsoldier.com/wip/nike-grid/images/icon-menu.svg" alt="Menu"></div>
<div id="logo"><img src="https://thinsoldier.com/wip/nike-grid/images/nike_logo.png" alt="Nike Logo"></div>
<div id="cart"><p>1 item <i class="fa fa-shopping-cart" aria-hidden="true"></i></p></div>
</header>
<section class="content">
<article id="checkoutNav" class="shadow">
<ul>
<li>
<p>01</p>
<i class="fa fa-truck" aria-hidden="true"></i>
<p>Shipping</p>
</li>
<li class="active">
<p>02</p>
<i class="fa fa-credit-card" aria-hidden="true"></i>
<p>Payment</p>
</li>
<li>
<p>03</p>
<i class="fa fa-envelope-o" aria-hidden="true"></i>
<p>Success</p>
</li>
</ul>
</article>
<article id="product" class="shadow"><img src="https://thinsoldier.com/wip/nike-grid/images/lunar2_full.jpg" alt="Lunar 2"></article>
<h1>Flyknit Lunar 2</h1>
<article id="checkoutCard" class="shadow">
<div id="details">
<dl class="">
<dt>Product</dt>
<dd> <img id="thumbnail" src="http://thinsoldier.com/wip/nike-grid/images/nike_luna_thumbnail.png" alt="Lunar 2"></dd>
<dt>Quantity</dt>
<dd> <input type="number" value="1"> </dd>
<dt>Price</dt>
<dd> $69.99 </dd>
</dl>
</div>
<form action="">
<div id="cards">
<ul>
<li><label for="" name="Card Type">Card Type</label></li>
<li><i class="fa fa-cc-visa" aria-hidden="true"></i></li>
<li><i class="fa fa-cc-paypal" aria-hidden="true"></i></li>
<li><i class="fa fa-cc-amex" aria-hidden="true"></i></li>
<li><i class="fa fa-cc-mastercard" aria-hidden="true"></i></li>
</ul>
</div>
<div id="cardNumber">
<label for="">Card number</label>
<input type="number" placeholder="XXXX">
<input type="number" placeholder="XXXX">
<input type="number" placeholder="XXXX">
<input type="number" placeholder="XXXX">
</div>
<div id="securityInfo">
<label for="">Start date</label>
<label for="">Expiry date</label>
<label for="">Cvv</label>
<input type="text" placeholder="MM/YY">
<input type="text" placeholder="MM/YY">
<input type="number" placeholder="XXX">
</div>
<input type="submit" value="Check out" id="btnSubmit">
</form>
</article>
</section>
<footer><a href="https://edwardfury.com/nikelunar2">Photographer: Edward Fury</a><a href="https://dribbble.com/shots/2469246-Credit-Card-Checkout-Daily-UI-002" target="_blank">Designer: Nathan Riley</a><a href="https://rayhatron.github.io" target="_blank">Web developers: Rayhatron & thinsoldier</a> </footer>
</section>
</body>
</html>
@import url('https://fonts.googleapis.com/css?family=Roboto');
/* * { box-sizing: border-box; } */
html, body{
margin: 0;
}
body{
background: #CA136B;
font-family: 'Roboto', sans-serif;
}
.container{
}
header{
display: flex;
justify-content: space-between;
padding: 20px;
margin-bottom: 20px;
}
header div{
width: 100px;
height: 40px;
overflow: visible;
}
.shadow{
box-shadow: 0px 0px 20px 5px rgba(0, 0, 0, 0.3), 0 0 0 0 rgba(0, 0, 0, 0.3);
}
#menu{
min-width: 50px;
width: 50px;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10px;
background: #E22E8C;
}
#logo {
align-self: flex-end;
}
#logo img{
width: 100%;
height: auto;
}
#cart{
width: 150px;
min-width: 100px;
background: #E22E8C;
border-radius: 10px;
text-transform: uppercase;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
}
.content{
display: grid;
grid-template-rows: [a] 93px [b] 109px [c] auto [d];
grid-template-columns: [a] 45px [b] minmax(300px,950px) [c] 50px [d] 350px [e];
}
.content h1{
color: #fff;
text-transform: uppercase;
font-size: 32px;
text-align: center;
margin: 0;
grid-row: b;
grid-column: d;
}
label{
text-transform: uppercase;
font-size: 16px;
color: #336AC9;
font-weight: bold;
}
input{
color: #CA136B;
border: 1px solid rgb(226, 225, 232);
border-radius: 5px;
text-align: center;
padding: 5px 0 5px 12px;
width: 60px;
height: 25px;
}
#checkoutNav{
display: flex;
align-items: center;
justify-content: center;
width: 100px;
height: 400px;
background: #336AC9;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
grid-row: c;
z-index: 2;
}
#checkoutNav ul{
color: #D5D2DD;
list-style: none;
padding: 0;
text-align: center;
font-size: 18px;
text-transform: uppercase;
grid-row: b / -1;
}
#checkoutNav ul i.fa {
font-size: 25px;
}
.active{
color: #FBFBFB;
}
#product{
max-width: 1000px;
max-height: 752px;
border-radius: 10px;
overflow: hidden;
grid-row: a / -1;
grid-column: b / d;
}
#product img{
object-fit: cover;
display: block;
max-width: 100%;
height: 100%;
}
#checkoutCard{
max-width: 400px;
background: #FBFBFB;
border-radius: 10px;
grid-row: c;
grid-column: c / e;
align-self: start;
}
#details{
padding: 10px;
background: linear-gradient(#FBFBFB 40%, #D5D2DD 100%);
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
#details dl {
margin:0;
display: grid;
grid-template-columns: repeat( 3, 1fr );
grid-template-rows: 60px auto;
justify-items: center;
align-items: center;
margin-bottom: 20px;
}
#details dt {
color: #D5D2DD;
text-transform: uppercase;
font-size: 18px;
grid-row: 1;
}
#details dd {
color: #336AC9;
margin:0;
}
#checkoutCard ul{
list-style: none;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0;
font-size: 18px;
}
#checkoutCard ul li input{
width: 30px;
height: 30px;
margin-left: 70px;
color: #336AC9;
}
#thumbnail{
width: 175px;
height: auto;
}
form {
padding-top: 1em;
}
form > * {
padding: 0 0.8em;
margin-bottom: 1.5em;
}
form > :last-child {
margin:0;
}
#checkoutCard form #cards{
display: flex;
flex-wrap: wrap;
align-items: center;
}
#checkoutCard form #cards ul{
margin: 0;
padding: 0;
width: 100%;
}
#cards i.fa {
font-size: 40px;
color: #D5D2DD;
}
#cards i.fa.fa-cc-visa {
color: #CA136B;
}
#cards label{
}
#cardNumber{
display: grid;
grid-template-columns: repeat(4,1fr);
grid-gap: 10px;
}
#cardNumber label{
grid-column: 1 / -1;
}
#cardNumber input{
padding: 0;
/*
the following are required to fix what
seems to be buggy behaviour between inputs
and css grid in firefox.
The width and min-width are especially important.
If the elements were spans instead of inputs this wouldn't be necessary.
*/
width: auto;
height: auto;
min-width: 60px;
min-height: 35px;
}
#securityInfo {
display: grid;
grid-template-columns: repeat(3,1fr);
grid-gap: 10px;
}
#securityInfo input {
padding: 0;
width: auto;
height: auto;
min-width: 60px;
min-height: 35px;
}
#btnSubmit{
text-align: center;
width: 100%;
border: none;
height: 50px;
text-transform: uppercase;
border-top-left-radius: 0;
border-top-right-radius: 0;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
background: #336AC9;
color: #FBFBFB;
font-size: 20px;
}
footer{
text-align: center;
padding: 10px;
color: #FBFBFB;
}
footer a{
color: #FBFBFB;
padding: 0 20px;
text-decoration: none;
}
footer a:hover{
color: #336AC9;
}
@media screen and ( max-width: 746px )
{
.content {
display: block;
}
.content h1 {
margin: 1em;
}
#checkoutNav {
width: auto;
height: auto;
margin: 0 0 1em 0;
border-radius: 0;
display: block;
}
#checkoutNav ul {
display: flex;
justify-content: space-around;
min-width: 50%;
margin:0;
}
#checkoutCard {
margin: auto;
}
footer {
display: flex;
flex-direction: column;
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.