Try it on your next project. Fade in, don’t flash crash. About the author: This article is part of a series on "Micro-interactions that matter."
In an era where users switch between 10 apps an hour, the friction of logging in is a necessary evil. A fade effect reduces that friction not by removing steps, but by changing how the step feels . It replaces the cold, binary "Loading..." with a warm, organic "Here I am." fade in login
/* Stagger the children / .fade-field:nth-child(1) { animation-delay: 0.1s; } / Heading / .fade-field:nth-child(2) { animation-delay: 0.3s; } / Email / .fade-field:nth-child(3) { animation-delay: 0.5s; } / Password / .fade-field:nth-child(4) { animation-delay: 0.7s; } / Button */ Try it on your next project
Enter the .
.login-card { animation: fadeSlideUp 0.6s cubic-bezier(0.2, 0.9, 0.4, 1.1) forwards; opacity: 0; /* Start hidden */ } .fade-field { opacity: 0; transform: translateY(10px); animation: fadeInUp 0.4s forwards; } A fade effect reduces that friction not by
<div class="login-container"> <div class="login-card"> <h1>Welcome Back</h1> <input type="text" placeholder="Email" class="fade-field"> <input type="password" placeholder="Password" class="fade-field"> <button class="fade-field">Sign In</button> </div> </div>
@keyframes fadeSlideUp { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }