- @chars =['℧','ℵ','⁁','ℏ','ℌ','ℑ;','ℰ','Ч','∉','∑','≈','⊄','ζ','ξ','ϑ','℧','ℵ','⁁','ℏ','ℌ','ℑ;','ℰ','Ч','∉','∑','≈','⊄','ζ','ξ','ϑ','℧','ℵ','⁁','ℏ','ℌ','ℑ;','ℰ','Ч','∉','∑','≈','⊄','ζ','ξ','ϑ']
-(1..16).each do
  .column
    -@chars.each do |chars|
      .row
        %p #{chars}
.container
  .container_inner
    .container_inner__login
      .login
        .login_profile
          %img.logo{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/ecotech.svg'}
          %img.pulse{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/rings.svg'}
        .login_desc
          %h3 
            Welcome back 
            %span ecoTech
        .login_inputs
          %form
            .tip
              Your password will have been emailed to you along with this development link.
            %input{:type => 'password', :placeholder => 'Your password', :required => 'required'}
            %input{:type => 'submit', :value => 'Log in'}
          .forgotten
            %a{:href => '#'} Forgotten your password?
          .login_check
            <br/>Logging in to your client area <br/>
            %span please wait
      .tick
        %img{:src => 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/vtick.svg'}
            
View Compiled
$bg-color:#141416;
*{
  box-sizing:border-box;
}
body{
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#0c1019+0,0b0b0e+100 */
background: rgb(12,16,25); /* Old browsers */
background: -moz-radial-gradient(center, ellipse cover,  rgba(12,16,25,1) 0%, rgba(11,11,14,1) 100%); /* FF3.6-15 */
background: -webkit-radial-gradient(center, ellipse cover,  rgba(12,16,25,1) 0%,rgba(11,11,14,1) 100%); /* Chrome10-25,Safari5.1-6 */
background: radial-gradient(ellipse at center,  rgba(12,16,25,1) 0%,rgba(11,11,14,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0c1019', endColorstr='#0b0b0e',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */

  font-family:montserrat;
  text-align:center;
  margin:0;
  padding:0;
  overflow:hidden;
  //animation:brightflash 1s;
  height:100vh;
  .container{

    &_inner{
      width:300px;
      margin:0 auto;
      &__login{
        height:100vh;
        perspective:800px; //Applied to the parent
        .tip{
          color: #81AECE;
          opacity:0;
          transition:all .4s;
          font-size: 10px;
          position: relative;
          font-weight: 100;
          height:0px;
          overflow:hidden;
          top: -27px;
          line-height: 14px;
        }
        .tick{
          transform:scale(0) translateY(-50%);
          transition: all .35s cubic-bezier(0.65, 1.88, 0.51, 0.69);
          position: absolute;
          left: 0;
          top: 50%;
          img{
            width: 50px;
          }
          right: 0;
          margin: auto;
        }
        .hide{
          opacity:0 !important;
        }
        .login.logging-in{
        }
        .bulge{
          transform:scale(1) !important;
          top: 50px !important;
          transition:all .4s;
          animation:bulge 1s .25s forwards !important;
        }
        .login_check{
          font-size: 11px;
          text-align: center;
          line-height: 20px;
          color: white;
          color: #BFBFCE;
          position: absolute;
          display: none;
          left: -26px;
          top: 160px;
          height: 280px;
          width: 278px;
          margin: auto;
          right: 0;
          img{
            opacity:0.9;
            width: 140px;
            margin-bottom:30px;
          }
          span{
            color: #FF133D;
            line-height: 20px;

          }
        }
        .login{
          position:absolute;
          left:0;
          top:50%;
          transition:all .2s;
          width:220px;
          transform-origin: 110px -30px;
          margin:auto;
          transform: scale(1) translateY(-50%) rotatex(360deg) rotatey(360deg);
          right:0;
          .center{
            top: 100px !important;
          }
          &_profile{
            border-radius:100px;
            height:80px;
            width:60px;
            background:white;
            margin-bottom:40px;
            margin:0 auto;
            position: relative;
            top: 0px;
            transform:scale(0);
            animation:logo_in 1s .9s forwards;

            img{
              position:relative;
              top: 18px;

            }
            .logo{
              z-index:2;
            }
            .pulse{
              width: 160px;
              position: relative;
              top: -85px;
              display:none;
              left: -42px;
              z-index: 1;

            }
          }
          &_desc{
            color: #BFBFCE;
            font-size: 10px;
            margin-top: 20px;
            animation:pop .5s 1.3s forwards;
            position:relative;
            opacity:0;
            h3{
              font-weight:500;
            }
            span{
              color:#FF133D;
              font-weight:600;
            }
          }
          &_inputs{
            margin-top:50px;
            form{
              margin:0;
              padding:0;
              input{
                width:100%;
                padding:10px;
                color:#141416;
                border:none;
                border-radius:3px;
                text-align:center;
                animation:pop .5s 1.6s forwards;
                position:relative;
                opacity:0;
                font-size:13px;
                outline:none;
              }
              input[type="submit"]{
                margin-top: 12px;
                cursor: pointer;
                border: 1px solid #FF133D;
                text-transform: uppercase;
                letter-spacing: 1px;
                padding: 10px 10px;
                animation:pop .5s 1.9s forwards;
                position:relative;
                opacity:0;
                position:relative;
                font-weight: 100;
                color: white;
                font-family: montserrat;
                background:#D61134;
                box-shadow: 0px 2px #69091A,0px 0px 3px rgba(2, 2, 2, 0.17), 0px 0px rgba(255, 255, 255, 0.13) inset;
                font-size: 11px;
                transition:all .24s;
                &:hover{

                }
              }

            }
            a{
              color:#393940;
              text-decoration:none;
              font-weight:100;
              animation:pop .5s 2.2s forwards;
              position:relative;
              opacity:0;
              font-size:11px;
              display:inline-block;
              margin-top:20px;
              transition:all .24s;
              &:hover{
                color:#FF133D;
              }
            }
          }
        }
      }
    }
  }
}


@keyframes brightflash{
  0%{background:$bg-color;}
  50%{background:white;}
  100%{background:$bg-color;}
}
@keyframes bulge{
  0%{width:60px}
  20%{width:110px;}
  40%{width:67px;}
  60%{width:84px;}
  80%{width:78px;}
  100%{width:80px;}
}  


@keyframes logo_in{
  0% {transform: scale(0);}20% {transform: scale(1.1);}40% {transform: scale(0.98);}60% {transform: scale(1.012);}80% {transform: scale(0.995);}100% {transform: scale(1);}}
@keyframes pop{
  0%{opacity:0;top:4px;}
  100%{opacity:1;top:0px;}
}
/*

*/.column{
  color:white;
  opacity:0.1;
  float:left;
  position:relative;
  @for $i from 1 through 100{
    &:nth-of-type(#{$i}){
      top: - random(300) + px;
    }
  }
  .row{
    height:10px;
    margin-left:130px;
    margin-top:20px;
    font-size:10px;
    position:relative;
    margin-bottom:-10px;
    opacity:0;
  }
  @for $i from 1 through 100{
    .row:nth-of-type(#{$i}){
      -webkit-animation:fade 4s 0s + $i/4 infinite ;
      -moz-animation:fade 4s 0s + $i/4 infinite ;
      -o-animation:fade 4s 0s + $i/4 infinite ;
    }
  }
}

@-webkit-keyframes fade{
  0%{opacity:0;}
  20%{opacity:1;}
  50%{opacity:0;}
  100%{opacity:0;}
}
@-moz-keyframes fade{
  0%{opacity:0;}
  20%{opacity:1;}
  50%{opacity:0;}
  100%{opacity:0;}
}
@-o-keyframes fade{
  0%{opacity:0;}
  20%{opacity:1;}
  50%{opacity:0;}
  100%{opacity:0;}
}
View Compiled
$('input[type="password"]').focus(function(){
  $('.tip').css('height','30px')
  setTimeout(function(){
    $('.tip').css('opacity','1')
  },350)
});

$('input[type="password"]').blur(function(){
  $('.tip').css('opacity','0')
  setTimeout(function(){
    $('.tip').css('height','0px')
  },350)
});



$('form').submit(function(){
  $('form,.login_desc h3,.forgotten').animate({'opacity':'0'})
  setTimeout(function(){
    $('.login_profile').addClass('bulge')
  },400);
  setTimeout(function(){
    $('.pulse').fadeIn()
    $('.login_check').fadeIn(300)
  },1350);
   setTimeout(function(){
    $('.login').css('transform','scale(0) translateY(-50%) rotatex(360deg) rotatey(360deg)')
    setTimeout(function(){
    $('.tick').css('transform','scale(1) translateY(-50%)')
  },200);
  },3650);
  return false;
})

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js
  2. //cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js