Turn your registration process into a fun experience for the users
We’re re-creating the readme.io login form and adapting it into a registration form by adding fields.
The Registration form is a very important part of your website, especially if you run an online shop or a community. A tedious registration process equals losing potential clients or quality users.
On the other hand, an engaging one will not only fix that problem, but can actually become a powerful marketing tool when users recommend you based on their pleasant experience.
A good example of attractive and fun registration process is readme.io, a form that we’ve been admiring for some time. They updated it relatively recently, and this tutorial covers the new version. We’re re-creating the awesome readme.io login form and adapting it into a registration form by adding fields.
The form is comprised of html, css, 6 images (for the owl) and a few javascript lines. Please note that the javascript part is jQuery dependent.
Step 1 · HTML
<form class="login-form" action="" method="post">
<div id="owl-login"></div>
<div class="form-wrapper">
<div class="field-wrapper"><label class="fa fa-user" for="name"></label> <input id="name" name="name" type="text" placeholder="Name" /></div>
<div class="field-wrapper"><label class="fa fa-envelope" for="email"></label> <input id="email" name="email" type="email" placeholder="Email" /></div>
<div class="field-wrapper"><label class="fa fa-asterisk" for="password"></label> <input id="password" name="password" type="password" placeholder="Password" /></div>
<div class="field-wrapper"><label class="fa fa-asterisk" for="password-confirm"></label> <input id="password-confirm" name="password-confirm" type="password" placeholder="Confirm Password" /></div>
</div>
<div class="form-actions"><a href="#">Forgot password?</a> <a href="#">Login</a> <button class="btn" type="submit">Register</button></div>
</form>
Step 2 · CSS
body {
background: #eee;
font-family: 'Open Sans', sans-serif;
font-size: 16px;
}
*,
*:before,
*:after {
box-sizing: border-box;
}
.login-form {
position: relative;
border: 1px solid #ddd;
background: #fff;
padding: 0;
margin: 200px auto 0;
width: 400px;
}
.form-wrapper {
padding: 30px;
}
.field-wrapper {
position: relative;
margin-bottom: 10px;
}
.field-wrapper:last-of-type {
margin-bottom: 0;
}
.field-wrapper label {
position: absolute;
top: 13px;
left: 13px;
color: rgba(0, 0, 0, .3);
}
.field-wrapper input[type="text"],
.field-wrapper input[type="email"],
.field-wrapper input[type="password"] {
padding: 9px 6px 9px 40px;
display: block;
width: 100%;
font-size: 14px;
line-height: 1.5;
color: #555;
background: #fff;
border: 1px solid #ccc;
border-radius: 4px;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
outline: none;
}
.form-actions {
border-top: 1px solid #e4e4e4;
background-color: #f7f7f7;
padding: 15px 30px;
text-align: right;
}
.form-actions a {
text-decoration: none;
color: #bbb;
padding: 6px 12px 6px 0;
font-size: 14px;
}
.form-actions a:first-of-type {
float: left;
}
.login-form .btn {
display: inline-block;
padding: 6px 12px;
font-size: 14px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
border-radius: 4px;
color: #fff;
background: #428bca;
border: 1px solid #357ebd;
}
#owl-login {
width: 116px;
height: 92px;
background: url('images/face.png');
position: absolute;
top: -82px;
left: 50%;
margin-left: -58px;
}
#owl-login .eyes {
width: 100%;
height: 100%;
background: url('images/eyes.png');
opacity: 0;
transition: 0.1s ease-out 0s;
}
#owl-login .arm-up-right {
width: 51px;
height: 41px;
position: absolute;
bottom: 11px;
right: 5px;
transform: translateX(57px) scale(.8);
transform-origin: 0 40px;
transition: background-position 0.3s ease-in-out, transform 0.3s ease-in-out, opacity 0.3s linear;
background: url('images/arm-up-right.png') no-repeat 0 25px;
opacity: 0;
}
#owl-login .arm-up-left {
width: 52px;
height: 41px;
position: absolute;
bottom: 11px;
left: -3px;
transform: translateX(-34px) scale(.8);
transform-origin: 0 40px;
transition: background-position 0.3s ease-in-out, transform 0.3s ease-in-out, opacity 0.3s linear;
background: url('images/arm-up-left.png') no-repeat 0 25px;
opacity: 0;
}
#owl-login .arm-down-left {
width: 43px;
height: 25px;
background: url('images/arm-down-left.png');
position: absolute;
bottom: 2px;
left: -34px;
transition: 0.3s ease-out;
}
#owl-login .arm-down-right {
width: 43px;
height: 26px;
background: url('images/arm-down-right.png');
position: absolute;
bottom: 1px;
right: -40px;
transition: all 0.3s ease-in-out;
}
#owl-login.password .arm-up-left,
#owl-login.password .arm-up-right {
opacity: 1;
transform: scale(1);
background-position: 0 0;
}
#owl-login.password .arm-down-left {
opacity: 0;
transform: translateX(10px) scale(0) translateY(-10px);
}
#owl-login.password .arm-down-right {
opacity: 0;
transform: translateX(12px) scale(0) translateY(-8px);
}
Step 3 · JS (jQuery required)
jQuery(document).ready(function ($) {
var $owl = $('#owl-login');
$('input[type="password"]').on('focus', function () {
$owl.addClass('password');
}).on('focusout', function () {
$owl.removeClass('password');
});
});
DISCLAIMER: the owl images are from readme.io and we use them for the sole purpose of this tutorial.