"Validation"
Bootstrap 3.3.0 Snippet by ashutosh123

<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <header> One account. All of Google. </header> <div class="login"> <i ripple> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path fill="#C7C7C7" d="m12,2c-5.52,0-10,4.48-10,10s4.48,10,10,10,10-4.48,10-10-4.48-10-10-10zm1,17h-2v-2h2zm2.07-7.75-0.9,0.92c-0.411277,0.329613-0.918558,0.542566-1.20218,1.03749-0.08045,0.14038-0.189078,0.293598-0.187645,0.470854,0.02236,2.76567,0.03004-0.166108,0.07573,1.85002l-1.80787,0.04803-0.04803-1.0764c-0.02822-0.632307-0.377947-1.42259,1.17-2.83l1.24-1.26c0.37-0.36,0.59-0.86,0.59-1.41,0-1.1-0.9-2-2-2s-2,0.9-2,2h-2c0-2.21,1.79-4,4-4s4,1.79,4,4c0,0.88-0.36,1.68-0.930005,2.25z"/> </svg> </i> <div class="photo"> </div> <span>Sign in with your Google Account</span> <form action="" id="login-form"> <div id="u" class="form-group"> <input id="username" spellcheck=false class="form-control" name="username" type="text" size="18" alt="login" required=""> <span class="form-highlight"></span> <span class="form-bar"></span> <label for="username" class="float-label">Email</label> <erroru> Username is required <i> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M0 0h24v24h-24z" fill="none"/> <path d="M1 21h22l-11-19-11 19zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/> </svg> </i> </erroru> </div> <div id="p" class="form-group"> <input id="password" class="form-control" spellcheck=false name="password" type="password" size="18" alt="login" required=""> <span class="form-highlight"></span> <span class="form-bar"></span> <label for="password" class="float-label">Password</label> <errorp> Password is required <i> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M0 0h24v24h-24z" fill="none"/> <path d="M1 21h22l-11-19-11 19zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/> </svg> </i> </errorp> </div> <div class="form-group"> <input type="checkbox" id="rem"> <label for="rem">Stay Signed in</label> <button id="submit" type="submit" ripple>Sign in</button> </div> </form> <footer><a href="#0">Create an account</a></footer> </div>
/*http://drbl.in/nYHu*/ /* Author : Himateja Editor : Codepen Permissions : Open Source */ *, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; -o-box-sizing: border-box; box-sizing: border-box; padding: 0; margin: 0; font-family:century gothic; } html, body { position: absolute; height: 100%; width: 100%; background: rgb(243, 243, 243); color: rgba(0,0,0,0.6); font-family: RobotoDraft,Roboto; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; } body header { position: relative; width: 100%; height: 80px; box-shadow: 0 2px 5px 0 rgba(0,0,0,0.26); background: rgb(3, 169, 245); font-size: 30px; font-weight: 300; color: rgb(242, 251, 253); text-align: center; line-height: 75px; } .login { position: absolute; padding: 10px; left: calc(50% - 200px); top: calc(50% - 13em); width: 400px; height: 460px; border-radius: 3px; background: white; box-shadow: 0 1px 5px 0 rgba(0,0,0,0.26); overflow: hidden; } .login > i { position: relative; width: 20px; height: 20px; border-radius: 50%; float: right; cursor: pointer; } .login .photo { position: relative; width: 100px; height: 100px; margin: 30px 135px; border-radius: 50%; background: rgb(223, 223, 223); border: 13px solid rgb(223, 223, 223); overflow: hidden !important; transform: rotate(-1deg); } .login .photo:before { position: absolute; content: ''; width: 35px; height: 35px; top: 0px; right: 20px; border-radius: 50%; background: #aaa; border: 2px solid #fff; transform: scale(0); transition: 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55); -webkit-animation: user-head 0.5s 0s forwards; -moz-animation: user-head 0.5s 0s forwards; animation: user-head 0.5s 0s forwards; } .login .photo:after { position: absolute; content: ''; width: 140px; height: 220px; top: 38px; right: -32px; border-radius: 50%; background: #aaa; border: 2px solid #fff; transform: translateY(36px); transition: 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55); -webkit-animation: user-body 0.5s 0.3s forwards; -moz-animation: user-body 0.5s 0.3s forwards; animation: user-body 0.5s 0.3s forwards; } .login > span { display: block; text-align: center; margin: -15px 0; font-size: 15px; } form { position: relative; width: 350px; margin: 50px 15px; } .form-group { position: relative; margin-top: 35px; margin-bottom: 20px; } .form-control { display: block; height: 36px; width: 100%; border: none; border-radius: 0 !important; font-size: 15px; font-family: inherit; font-weight: 300; padding: 0; background-color: transparent; box-shadow: none; border-bottom: 1px solid rgba(117, 117, 117, 0.15); } .form-control:focus { border-bottom: 2px solid rgb(3, 169, 245); outline: none; box-shadow: none; } .form-highlight { position: absolute; height: 60%; width: 60px; top: 25%; left: 0; pointer-events: none; opacity: 0.4; } .form-control:focus ~ .form-highlight { -webkit-animation: inputHighlighter 0.3s ease; -moz-animation: inputHighlighter 0.3s ease; animation: inputHighlighter 0.3s ease; } .float-label { position: absolute; left: 0; top: 10px; font-size: 16px; color: #999; font-weight: 300; transition: 0.2s ease all; -moz-transition: 0.2s ease all; -webkit-transition: 0.2s ease all; } .form-control:focus ~ .float-label, .form-control:valid ~ .float-label { top: -15px; font-size: 12px; } .form-group erroru, .form-group errorp { position: absolute; width: 100%; left: 0; top: 38px; font-size: 11px; color: #d34336; font-weight: 300; transition: 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55) all; -moz-transition: 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55) all; -webkit-transition: 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55) all; opacity: 0; } .form-group erroru i,.form-group errorp i { position: absolute; right: 0; width: 15px; height: 15px; border-radius: 50%; float: right; } .form-group erroru i svg, .form-group errorp i svg { fill:#d34336; } .form-group[errr] .float-label { color: #d34336 !important; } .form-group[errr] .form-control { border-bottom: 1px solid #d34336 !important; } .form-group[errr] .form-control:focus { border-bottom: 2px solid #d34336 !important; } .form-group[errr] erroru, .form-group[errr] errorp { opacity: 1; } input[type=checkbox] { display: none; visibility: hidden; } input[type="checkbox"] + label { cursor: pointer; font-size: 15px; font-weight: 500; transition: border-color 0.3s ease-in-out, background-color 0.3s ease-in-out; } input[type="checkbox"] + label:before { display: inline-block; content: ""; margin: 0 15px 3px 0px; width: 18px; height: 18px; background-color: #fff; border: 2px solid #5a5a5a; border-radius: 2px; vertical-align: middle; } input[type=checkbox]:checked + label:before { background-image: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjIwcHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDIwIDE1Ij4NCjxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iNy4xNDMsMTQuOTM4IDAsNy43OTYgMi4wMjEsNS43NzYgNy4xNDMsMTAuODk4IDE3Ljk3OSwwLjA2MiAyMCwyLjA4MiAiLz4NCjwvc3ZnPg0K'); background-color: rgb(3, 169, 245); border-color: rgb(3, 169, 245); background-repeat: no-repeat; background-position: 50% 50%; -webkit-background-size: 11px auto; -moz-background-size: 11px auto; -o-background-size: 11px auto; background-size: 11px auto; } button[type="submit"] { position: relative; float: right; font-family: inherit; font-weight: 100; font-size: 15px; border: 0; margin: -3px 0px; padding: 5px 15px; border-radius: 3px; cursor: pointer; background: rgb(3, 169, 245); color: #fff; box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); } button[type="submit"]:focus { outline: none; } footer { position: absolute; bottom: 0; width: 100%; height: 30px; margin-left: -10px; line-height: 29px; text-align: center; cursor: pointer; border-top: 1px solid rgba(117, 117, 117, 0.15); } footer a { display: block; text-decoration: none; font-size: 12px; color: inherit; } footer a:hover { color: rgba(0,0,0,0.9); text-decoration: underline; } footer a:focus { outline: none; } .copyright { position: fixed; width: 100%; bottom: 5px; text-align: center; font-size: 12px; } .copyright a { text-decoration: none; color: rgb(3, 169, 245); } .copyright a:hover { transition: none; border-bottom: 1px solid rgb(3, 169, 245); } /* -- highlighter animation --------------------------- */ @-webkit-keyframes inputHighlighter { from { background:#5264AE; } to { width:0; background:transparent; } } @-moz-keyframes inputHighlighter { from { background:#5264AE; } to { width:0; background:transparent; } } @keyframes inputHighlighter { from { background:#5264AE; } to { width:0; background:transparent; } } @-webkit-keyframes user-head { 100% { -webkit-transform:scale(1); transform:scale(1); -moz-transform:scale(1); } } @-moz-keyframes user-head { 100% { -webkit-transform:scale(1); transform:scale(1); -moz-transform:scale(1); } } @keyframes user-head { 100% { -webkit-transform:scale(1); transform:scale(1); -moz-transform:scale(1); } } @-webkit-keyframes user-body { 100% { -webkit-transform:translateY(2px); transform:translateY(2px); -moz-transform:translateY(2px); } } @-moz-keyframes user-body { 100% { -webkit-transform:translateY(2px); transform:translateY(2px); -moz-transform:translateY(2px); } } @keyframes user-body { 100% { -webkit-transform:translateY(2px); transform:translateY(2px); -moz-transform:translateY(2px); } } [ripple] { position: relative; overflow: hidden; -webkit-transition: box-shadow .4s; -moz-transition: box-shadow .4s; -ms-transition: box-shadow .4s; -o-transition: box-shadow .4s; transition: box-shadow .4s; cursor: inherit; } [ripple] .touch { background: rgba(255, 255, 255, 0.3); pointer-events: none; border-radius: 100%; }
// button ripple effect from @ShawnSauce 's pen http://codepen.io/ShawnSauce/full/huLEH $(document).ready(function() { $(function(){ var animationLibrary = 'animate'; $.easing.easeOutQuart = function (x, t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; }; $('[ripple]:not([disabled],.disabled)') .on('mousedown', function( e ){ var button = $(this); var touch = $('<touch><touch/>'); var size = button.outerWidth() * 1.8; var complete = false; $(document) .on('mouseup',function(){ var a = { 'opacity': '0' }; if( complete === true ){ size = size * 1.33; $.extend(a, { 'height': size + 'px', 'width': size + 'px', 'margin-top': -(size)/2 + 'px', 'margin-left': -(size)/2 + 'px' }); } touch [animationLibrary](a, { duration: 500, complete: function(){touch.remove();}, easing: 'swing' }); }); touch .addClass( 'touch' ) .css({ 'position': 'absolute', 'top': e.pageY-button.offset().top + 'px', 'left': e.pageX-button.offset().left + 'px', 'width': '0', 'height': '0' }); /* IE8 will not appendChild */ button.get(0).appendChild(touch.get(0)); touch [animationLibrary]({ 'height': size + 'px', 'width': size + 'px', 'margin-top': -(size)/2 + 'px', 'margin-left': -(size)/2 + 'px' }, { queue: false, duration: 500, 'easing': 'easeOutQuart', 'complete': function(){ complete = true } }); }); }); var username = $('#username'), password = $('#password'), erroru = $('erroru'), errorp = $('errorp'), submit = $('#submit'), udiv = $('#u'), pdiv = $('#p'); username.blur(function() { if (username.val() == '') { udiv.attr('errr',''); } else { udiv.removeAttr('errr'); } }); password.blur(function() { if(password.val() == '') { pdiv.attr('errr',''); } else { pdiv.removeAttr('errr'); } }); submit.on('click', function(event) { event.preventDefault(); if (username.val() == '') { udiv.attr('errr',''); } else { udiv.removeAttr('errr'); } if(password.val() == '') { pdiv.attr('errr',''); } else { pdiv.removeAttr('errr'); } }); });

Related: See More


Questions / Comments: