Hey friends, today in this you'll learn how to create Fully Responsive Vertical Timeline Design using only HTML & CSS. In the earlier blog, I have shared how to create a Responsive Testimonials Section using only HTML & CSS and now it's time to create a Vertical Timeline using only HTML & CSS. This is a requested design of our one subscriber so if you also want a video or blog on any coding-related topic then you can comment on our YouTube videos or blogs.
Generally, A timeline is a chart listing the important events for progressive years within a particular historical time. The vertical timeline is navigated with a vertical line and moves vertically when you scroll it. Nowadays, every website has its own timeline to display a particular event because a timeline is also a part of web design and it is a perfect way to show important historical events.
In our timeline design, as you can see in the preview image, there is a vertical timeline where we have perfectly shown the title, description, date, and writer name of the particular event. At the center of the design, there is a vertical white line with icons, and each icon points to its related event and there is a total of six events but you can easily add more. At the last of the timeline, there is a scroll-up icon so you can easily reach the top of the page by just clicking on this icon. The best things about this timeline are responsive, mobile-friendly, and it is created using only HTML & CSS.
You can copy the codes from the given boxes or download the code files from the given link but I recommend you to download the source code files instead of copying codes. Click here to download code files.
You might like this:
Responsive Testimonials Section
Responsive Circular Progress Bar
Responsive Pricing Tables or Cards
Responsive Owl-carousel Card Slider
HTML CODE:
<!DOCTYPE html>
<!-- Created By CodingNepal - www.codingnepalweb.com -->
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Responsive Timeline Design | CodingNepal</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
</head>
<body>
<div class="wrapper">
<div class="center-line">
<a href="#" class="scroll-icon"><i class="fas fa-caret-up"></i></a>
</div>
<div class="row row-1">
<section>
<i class="icon fas fa-home"></i>
<div class="details">
<span class="title">Title of Section 1</span>
<span>1st Jan 2021</span>
</div>
<p>Lorem ipsum dolor sit ameters consectetur adipisicing elit. Sed qui veroes praesentium maiores, sint eos vero sapiente voluptas debitis dicta dolore.</p>
<div class="bottom">
<a href="#">Read more</a>
<i>- Someone famous</i>
</div>
</section>
</div>
<div class="row row-2">
<section>
<i class="icon fas fa-star"></i>
<div class="details">
<span class="title">Title of Section 2</span>
<span>2nd Jan 2021</span>
</div>
<p>Lorem ipsum dolor sit ameters consectetur adipisicing elit. Sed qui veroes praesentium maiores, sint eos vero sapiente voluptas debitis dicta dolore.</p>
<div class="bottom">
<a href="#">Read more</a>
<i>- Someone famous</i>
</div>
</section>
</div>
<div class="row row-1">
<section>
<i class="icon fas fa-rocket"></i>
<div class="details">
<span class="title">Title of Section 3</span>
<span>3rd Jan 2021</span>
</div>
<p>Lorem ipsum dolor sit ameters consectetur adipisicing elit. Sed qui veroes praesentium maiores, sint eos vero sapiente voluptas debitis dicta dolore.</p>
<div class="bottom">
<a href="#">Read more</a>
<i>- Someone famous</i>
</div>
</section>
</div>
<div class="row row-2">
<section>
<i class="icon fas fa-globe"></i>
<div class="details">
<span class="title">Title of Section 4</span>
<span>4th Jan 2021</span>
</div>
<p>Lorem ipsum dolor sit ameters consectetur adipisicing elit. Sed qui veroes praesentium maiores, sint eos vero sapiente voluptas debitis dicta dolore.</p>
<div class="bottom">
<a href="#">Read more</a>
<i>- Someone famous</i>
</div>
</section>
</div>
<div class="row row-1">
<section>
<i class="icon fas fa-paper-plane"></i>
<div class="details">
<span class="title">Title of Section 5</span>
<span>5th Jan 2021</span>
</div>
<p>Lorem ipsum dolor sit ameters consectetur adipisicing elit. Sed qui veroes praesentium maiores, sint eos vero sapiente voluptas debitis dicta dolore.</p>
<div class="bottom">
<a href="#">Read more</a>
<i>- Someone famous</i>
</div>
</section>
</div>
<div class="row row-2">
<section>
<i class="icon fas fa-map-marker-alt"></i>
<div class="details">
<span class="title">Title of Section 6</span>
<span>6th Jan 2021</span>
</div>
<p>Lorem ipsum dolor sit ameters consectetur adipisicing elit. Sed qui veroes praesentium maiores, sint eos vero sapiente voluptas debitis dicta dolore.</p>
<div class="bottom">
<a href="#">Read more</a>
<i>- Someone famous</i>
</div>
</section>
</div>
</div>
</body>
</html>
CSS CODE:
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Poppins", sans-serif;
}
html{
scroll-behavior: smooth;
}
body{
background: #ff7979;
}
::selection{
color: #fff;
background: #ff7979;
}
.wrapper{
max-width: 1080px;
margin: 50px auto;
padding: 0 20px;
position: relative;
}
.wrapper .center-line{
position: absolute;
height: 100%;
width: 4px;
background: #fff;
left: 50%;
top: 20px;
transform: translateX(-50%);
}
.wrapper .row{
display: flex;
}
.wrapper .row-1{
justify-content: flex-start;
}
.wrapper .row-2{
justify-content: flex-end;
}
.wrapper .row section{
background: #fff;
border-radius: 5px;
width: calc(50% - 40px);
padding: 20px;
position: relative;
}
.wrapper .row section::before{
position: absolute;
content: "";
height: 15px;
width: 15px;
background: #fff;
top: 28px;
z-index: -1;
transform: rotate(45deg);
}
.row-1 section::before{
right: -7px;
}
.row-2 section::before{
left: -7px;
}
.row section .icon,
.center-line .scroll-icon{
position: absolute;
background: #f2f2f2;
height: 40px;
width: 40px;
text-align: center;
line-height: 40px;
border-radius: 50%;
color: #ff7979;
font-size: 17px;
box-shadow: 0 0 0 4px #fff, inset 0 2px 0 rgba(0,0,0,0.08), 0 3px 0 4px rgba(0,0,0,0.05);
}
.center-line .scroll-icon{
bottom: 0px;
left: 50%;
font-size: 25px;
transform: translateX(-50%);
}
.row-1 section .icon{
top: 15px;
right: -60px;
}
.row-2 section .icon{
top: 15px;
left: -60px;
}
.row section .details,
.row section .bottom{
display: flex;
align-items: center;
justify-content: space-between;
}
.row section .details .title{
font-size: 22px;
font-weight: 600;
}
.row section p{
margin: 10px 0 17px 0;
}
.row section .bottom a{
text-decoration: none;
background: #ff7979;
color: #fff;
padding: 7px 15px;
border-radius: 5px;
/* font-size: 17px; */
font-weight: 400;
transition: all 0.3s ease;
}
.row section .bottom a:hover{
transform: scale(0.97);
}
@media(max-width: 790px){
.wrapper .center-line{
left: 40px;
}
.wrapper .row{
margin: 30px 0 3px 60px;
}
.wrapper .row section{
width: 100%;
}
.row-1 section::before{
left: -7px;
}
.row-1 section .icon{
left: -60px;
}
}
@media(max-width: 440px){
.wrapper .center-line,
.row section::before,
.row section .icon{
display: none;
}
.wrapper .row{
margin: 10px 0;
}
}
Don't forget to visit our website for more related blogs/tutorials - https://www.codingnepalweb.com/
Top comments (1)
Great tutorial! I appreciate how you broke down each step, making it easy to follow. The explanation of form validation is especially helpful, as it ensures user inputs are correct before submission. I am a student of IB Schools in Hyderabad. Would love to see more examples like this for other types of elements. Keep up the good work!