Crafting an Animated Hacker-Style Login Form with HTML & CSS
In today’s tutorial, we’ll explore how to build a captivating hacker-themed login form using HTML and CSS. This design features a dark background with animated elements that create a dynamic and engaging user interface.
Key Features:
Responsive layout adaptable to various screen sizes.
Animated background spans for a lively effect.
Interactive input fields with smooth transitions.
Stylish hover effects enhancing user interaction.
This form is ideal for developers looking to add a modern, tech-inspired login interface to their websites or applications.
Source codes:
<html>
<head>
<meta charset=”UTF-8″>
<title>Hacker Login Form</title>
<style>
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: sans-serif;
}
body{
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #000;
}
section{
position: absolute;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
gap: 2px;
flex-wrap:wrap ;
overflow: hidden;
}
section::before{
content: ”;
position: absolute;
width: 100%;
height: 100%;
background: linear-gradient(#000, #0f0,#000);
animation: animate 5s linear infinite;
}
@keyframes animate{
0%{
transform: translateY(-100%);
}
100%{
transform: translateY(100%);
}
}
section span{
position: relative;
display: block;
width: calc(6.25vw – 2px);
height: calc(6.25vw – 2px);
background: #181818;
z-index: 2;
transition: 1.5s;
}
section span:hover{
background: #0f0;
transition: 0s;
}
section .signin{
position: absolute;
width: 400px;
background: #222;
z-index: 1000;
display: flex;
justify-content: center;
align-content: center;
padding: 40px;
border-radius: 4px;
box-shadow: 0 15px 35px rgba(0, 0, 0, 9);
}
section .signin .content{
width: 100%;
display: flex;
flex-direction: column;
gap: 40px;
}
section .signin .content h2{
font-size: 2em;
color: #0f0;
text-transform: uppercase;
}
section .signin .content .form{
width: 100%;
display: flex;
flex-direction: column;
gap: 25px;
}
section .signin .content .form .inputBox{
position: relative;
width: 100%;
}
section .signin .content .form .inputBox input{
position: relative;
width: 100%;
background: #333;
border-radius: 4;
border: none;
outline: none;
padding: 25px 10px 7.5px;
color: #fff;
font-weight: 500;
font-size: 1em;
}
section .signin .content .form .inputBox i{
position: absolute;
left: 0;
padding: 15px 10px;
font-style: normal;
color: #aaa;
transition: 0.5s;
pointer-events: none;
}
.signin .content .form .inputBox input:focus ~ i, .signin .content .form .inputBox input:valid ~ i{
transform: translateY(-7.5px);
font-size: 0.8em;
color: #fff;
}
.signin .content .form .links{
position: relative;
width: 100%;
display: flex;
justify-content: space-between;
}
.signin .content .form .links a{
color: #fff;
text-decoration: none;
}
.signin .content .form .links a:nth-child(2){
color: #0f0;
font-weight: 600;
}
.signin .content .form .inputBox input[type=”submit”]{
padding: 10px;
background: #0f0;
color: #000;
font-weight: 600;
font-weight: 1.35em;
letter-spacing: 0.05em;
cursor: pointer;
}
input[type=”submit”]:active{
opacity: 0.6;
}
@media(max-width:900px){
section span{
width: calc(10vw – 2px);
height: calc(10vw – 2px);
}
}
@media (max-width:600px){
section span{
width: calc(20vw – 2px);
height: calc(20vw – 2px);
}
}
</style>
</head>
<body>
<section>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<div class=”signin”>
<div class=”content”>
<h2>Sign In</h2>
<div class=”form”>
<div class=”inputBox”>
<input type=”text” required>
<i>Username</i>
</div>
<div class=”inputBox”>
<input type=”password” required> <i>Password</i>
</div>
<div class=”links”>
<a href=”#”>Forgot Password</a>
<a href=”#”>Signup</a>
</div>
<div class=”inputBox”>
<input type=”submit” value=”Login”>
</div>
</div>
</div>
</div>
</section>
</body>
</html>