Responsive Coming Soon Page Design using HTML CSS & JavaScript

Hello guys today we will create an responsive Coming Soon page design using HTML CSS & JavaScript

First we need to create three files index.html,Style.css and an JavaScript custom.js file then we need to do code for it.

Step:1

Add below code inside index.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Coming Soon</title>
	<link rel="stylesheet" type="text/css" href="style.css">
	<link href="https://fonts.googleapis.com/css2?family=Oswald:wght@500&display=swap" rel="stylesheet">
	<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
	<script src="custom.js"></script> 
</head>
<body>
	<span class="bar"><i class="fa fa-bars"></i></span>
	<nav class="toggle-nav">
		<ul class="listing">
			<li>
				<a href="https://www.facebook.com/stackfindover">
					<i class="fa fa-facebook"></i>
				</a>
			</li>
			<li>
				<a href="https://www.twitter.com/stackfindover">
					<i class="fa fa-twitter"></i>
				</a>
			</li>
			<li>
				<a href="https://www.instagram.com/stackfindover">
					<i class="fa fa-instagram"></i>
				</a>
			</li>
			<li>
				<a href="https://www.youtube.com/stackfindover">
					<i class="fa fa-youtube"></i>
				</a>
			</li>
			<li>
				<a href="mailto:stackfindover@gmail.com">
					<i class="fa fa-envelope"></i>
				</a>
			</li>
		</ul>
	</nav>
	<section class="coming-soon">
		<div class="coming-soon-inner">
			<h1 class="heading">Coming Soon</h1>
			<h2 class="small-heading">Under Construction</h2>
			<div class="counter-timer">
				<ul>
				    <li><span id="days"></span>days</li>
				    <li><span id="hours"></span>Hours</li>
				    <li><span id="minutes"></span>Minutes</li>
				    <li><span id="seconds"></span>Seconds</li>
			  	</ul>
		  	</div>
		</div>
	</section>
</body>
</html>

Step:2

Then we need to add code for style.css which code i provide in below screen.

* {
	margin: 0;
	padding: 0;
	font-family: 'Oswald', sans-serif; 
}
body {
    overflow: hidden;
}
.coming-soon {
    width: 100vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fece00;
    overflow: hidden;
}
.coming-soon-inner {
    position: relative;
}
.heading {
    font-size: 100px;
    text-transform: uppercase;
    padding: 20px;
    background: #000;
    color: #fece00;
    transform: skewY(-10deg);
    font-weight: 500;
    line-height: 100px;
}
.small-heading {
    font-size: 30px;
    text-transform: uppercase;
    display: inline-block;
    padding: 20px;
    background: #fff;
    color: #000;
    transform: skewY(-10deg);
    font-weight: 500;
    line-height: 30px;
    box-shadow: 10px 10px 20px rgb(0 0 0 / .3);
    position: absolute;
    right: 0;
    bottom: -44px;
}

ul {
    list-style: none;
    display: flex;
    column-gap: 10px;
}
.counter-timer {
    transform: skewY(-10deg);
    position: absolute;
    left: 0;
    bottom: -75px;
}
.counter-timer > ul > li > span {
    padding-right: 5px;
}



/*******************************/
span.bar {
    display: block;
    position: absolute;
    right: 10px;
    top: 10px;
    z-index: 999;
}
span.bar i {
    font-size: 35px;
    cursor: pointer;
}
nav.toggle-nav {
    position: fixed;
    right: -100px;
    background: #fff;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.5s linear;
    z-index: 333;
}
nav.toggle-nav.active {
	right: 0px;
}
ul.listing, ul.listing > li {
    display: block;
}
ul.listing > li > a {
    font-size: 30px;
    color: #000;
    padding: 10px;
    display: block;
    text-align: center;
    transition: 0.5s linear;
}
ul.listing > li > a:hover{
    color: #fece00;
}


.coming-soon-inner:before {
    content: "";
    height: 2px;
    width: 60%;
    background: #000;
    position: absolute;
    top: -50px;
    right: 0;
    transform: skewY(-10deg);
}

.coming-soon-inner:after {
    content: "";
    height: 2px;
    width: 60%;
    background: #fff;
    position: absolute;
    bottom: -80px;
    right: 0;
    transform: skewY(-10deg);
}

.heading:before {
    content: "";
    height: 2px;
    width: 60%;
    background: #000;
    position: absolute;
    top: -50px;
    left: 0;
}

.heading:after {
    content: "";
    height: 2px;
    width: 60%;
    background: #fff;
    position: absolute;
    bottom: -120px;
    left: 0;
}


@media only screen and (max-width: 400px) and (min-width: 200px) {
	.heading {
	    font-size: 30px;
        line-height: 40px;
	    text-transform: uppercase;
	    padding: 10px 20px;
	}
	.small-heading {
	    font-size: 20px;
        padding: 10px;
        bottom: -49px;
	}
	.counter-timer li {
	    font-size: 12px;
	}

	.coming-soon-inner:before {
		top: -20px;
	}
	.heading:before {
		top: -20px;
	}
	.heading:after {
		bottom: -100px;
	}

} 
@media only screen and (max-width: 767px) and (min-width: 401px) {
	.heading {
	    font-size: 40px;
        line-height: 50px;
	    text-transform: uppercase;
	    padding: 10px 20px;
	}
	.small-heading {
	    font-size: 25px;
        padding: 10px;
        bottom: -48px;
	}
	.counter-timer li {
	    font-size: 15px;
	}
	.coming-soon-inner:before {
		top: -30px;
	}
	.heading:before {
		top: -30px;
	}
	.heading:after {
		bottom: -100px;
	}
}

Step:3

Then we need to add below code inside custom.js

const second = 1000,
      minute = second * 60,
      hour = minute * 60,
      day = hour * 24;

let countDown = new Date('Sep 30, 2021 00:00:00').getTime(),
    x = setInterval(function() {    

    let now = new Date().getTime(),
        distance = countDown - now;

    document.getElementById('days').innerText = Math.floor(distance / (day)),
    document.getElementById('hours').innerText = Math.floor((distance % (day)) / (hour)),
    document.getElementById('minutes').innerText = Math.floor((distance % (hour)) / (minute)),
    document.getElementById('seconds').innerText = Math.floor((distance % (minute)) / second);
}, second)



$(document).ready(function(){
  jQuery(".bar").click(function(){
    jQuery(".toggle-nav").toggleClass("active");
    jQuery(this).toggleClass("active-toggle");
    var activetoggle = jQuery(".bar").hasClass("active-toggle");
    if(activetoggle === true) {
      jQuery(".bar i").removeClass("fa-bars");
      jQuery(".bar i").addClass("fa-close");
    }else {
      jQuery(".bar i").removeClass("fa-close");
      jQuery(".bar i").addClass("fa-bars");
    } 
  }); 
}); 

Table of Contents

1 thought on “Responsive Coming Soon Page Design using HTML CSS & JavaScript”

Leave a Comment