Blame | Last modification | View Log | Download
/// Hey, listen up before you dig into the code! This widget (or whatever you want to call it), is based on Bootstrap 3+. This means that most of the bootstrap mixins listed below, are already included in the "less" files that come along when downloading Bootstrap(source). However, the custom mixins are new and are required for this widget to work.// HELPFUL MIXINS// Bootstrap mixins:.translate(@x; @y) {-webkit-transform: translate(@x, @y);-moz-transform: translate(@x, @y);-ms-transform: translate(@x, @y);transform: translate(@x, @y);}.animation(@animation) {-webkit-animation: @animation;-moz-animation: @animation;-ms-animation: @animation;animation: @animation;}.animation-delay(@delay) {-webkit-animation-delay: @delay;-moz-animation-delay: @delay;-ms-animation-delay: @delay;animation-delay: @delay;}.backface-visibility(@visibility){-webkit-backface-visibility: @visibility;-moz-backface-visibility: @visibility;-ms-backface-visibility: @visibility;backface-visibility: @visibility;}.transition(@transition) {-webkit-transition: @transition;-moz-transition: @transition;-ms-transition: @transition;transition: @transition;}.box-shadow(@shadow) {-webkit-box-shadow: @shadow;-moz-box-shadow: @shadow;-ms-box-shadow: @shadow;box-shadow: @shadow;}// Custom mixins.effect(@name; @arguments){@-webkit-keyframes @name { @arguments();}@-moz-keyframes @name { @arguments();}@keyframes @name { @arguments();}}.generate-paddings(5);.generate-paddings(@n, @i: 1) when (@i =< @n) {@x : (@i*20);.pad-top-@{x} {padding-top: (@i * 20px);}.pad-btm-@{x} {padding-bottom: (@i * 20px);}.pad-sep-@{x} {padding-top: (@i * 20px);padding-bottom: (@i * 20px);}.generate-paddings(@n, (@i + 1));}.perspective(@perspective){-webkit-perspective: @perspective;-moz-perspective: @perspective;-ms-perspective: @perspective;-o-perspective: @perspective;perspective: @perspective;}.transform(@string){-webkit-transform: @string;-moz-transform: @string;-ms-transform: @string;-o-transform: @string;}// Helpful variables@import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700,300,100);// Bootstrap standard variables:@body-bg: #222;@text-color: #fff;@font-family-sans-serif: 'Roboto', Helvetica, Arial, sans-serif;@font-size-base: 14px;@headings-font-weight: 300;@brand-primary: #22A7F0;@brand-success: #00B16A;@brand-warning: #F39C12;@brand-danger: #E74C3C;// Custom variables:@dialog-bg: #fff;@dialog-color: #222;@dialog-width: 300px;@dialog-padding: 20px 25px;@dialog-input-border: 2px solid #222;@dialog-input-bg: transparent;@dialog-checkbox: 20px;// Custom variables that modify the way "btn-default" looks and feels.@dialog-btn-primary-bg: #446CB3; //darken(@dialog-bg,10%);@dialog-btn-primary-color: #fff; //@dialog-color;@dialog-btn-primary-bg-hover: @dialog-color;@dialog-btn-primary-color-hover: @dialog-bg;// Basic stylinghtml,body {height:100%;}body {margin: 0;padding:0;color:@text-color;overflow:hidden;background-color:@body-bg;font-size: @font-size-base;position:relative;font-family: @font-family-sans-serif;}h1,.h1,h2,.h2,h3,.h3 {font-weight:@headings-font-weight;color:@brand-primary;}.fix-middle {position: absolute;padding:10px;top:50%;left:50%;.translate(-50%; -50%);z-index:3;}// LOGIN/REGISTER WIDGET STYLING STARTS HERE:.dialog{color:@dialog-color;.perspective(1200px);z-index:1000;opacity:1;visibility: visible;-webkit-transition: opacity .2s cubic-bezier(.25,.5,.5,.9),visibility .2s cubic-bezier(.25,.5,.5,.9);-moz-transition: opacity .2s cubic-bezier(.25,.5,.5,.9),visibility .2s cubic-bezier(.25,.5,.5,.9);-ms-transition: opacity .2s cubic-bezier(.25,.5,.5,.9),visibility .2s cubic-bezier(.25,.5,.5,.9);transition: opacity .2s cubic-bezier(.25,.5,.5,.9),visibility .2s cubic-bezier(.25,.5,.5,.9);&, & .dialog-front, & .dialog-back {width:auto;position:absolute;top:50%;left:50%;padding:0;margin:0;.translate(-50%;-50%);}&.dialog-effect-in{.animation(showDialog 1000ms linear both);}&.shakeit {.animation(shakeDialog 300ms linear both);}.dialog-content {width:@dialog-width;background: @dialog-bg; /* Old browsers */background: -moz-radial-gradient(center, ellipse cover, #ffffff 59%, #e5e5e5 100%); /* FF3.6+ */background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(59%,#ffffff), color-stop(100%,#e5e5e5)); /* Chrome,Safari4+ */background: -webkit-radial-gradient(center, ellipse cover, #ffffff 59%,#e5e5e5 100%); /* Chrome10+,Safari5.1+ */background: -o-radial-gradient(center, ellipse cover, #ffffff 59%,#e5e5e5 100%); /* Opera 12+ */background: -ms-radial-gradient(center, ellipse cover, #ffffff 59%,#e5e5e5 100%); /* IE10+ */background: radial-gradient(ellipse at center, #ffffff 59%,#e5e5e5 100%); /* W3C */border-radius:6px;.box-shadow(0 2px 12px -3px rgba(0,0,0,.6));padding:@dialog-padding;}.dialog-front,.dialog-back{-webkit-transform-style: preserve-3d;-moz-transform-style: preserve-3d;.backface-visibility(hidden);.transition(all .4s cubic-bezier(.25,.5,.5,.9));}.dialog-front{.transform(translate(-50%,-50%) rotateX(0deg) rotateY(0deg));z-index: 900;}.dialog-back {.transform(translate(-50%,-50%) rotateY(-180deg));z-index: 800;}&.flip {.dialog-front{z-index: 800;visibility:hidden;.transform(translate(-50%,-50%) rotateY(180deg));}.dialog-back {z-index: 900;visibility:visible;.transform(translate(-50%,-50%) rotateX(0deg) rotateY(0deg));}}&.dialog-effect-out {z-index:1;opacity:0;visibility: hidden;.dialog-front{.transform(translate(-50%,-20%) rotateX(-30deg));}.dialog-back {.transform(translate(-50%,-20%) rotateX(-30deg) rotateY(-180deg));}&.flip {.dialog-front{.transform(translate(-50%,-20%) rotateX(-30deg) rotateY(180deg));}.dialog-back {.transform(translate(-50%,-20%) rotateX(-30deg) rotateY(0deg));}}.dialog-content {background:@brand-success;.dialog-form {visibility:hidden;}}}.dialog-form {.animation(swooshUp30 300ms linear both);.animation-delay(300ms);legend {margin-bottom: 40px;font-size: 26px;font-weight:@headings-font-weight;color: @dialog-color;border-bottom: none;}.form-group {margin-bottom: 20px;position:relative;.form-control {color: @dialog-color;background-color: @dialog-input-bg;border: none;border-bottom:@dialog-input-border;border-radius:0;.box-shadow(none);}label {display: inline-block;max-width: 100%;margin-bottom: 5px;font-weight: 700;}&.has-error {.error-msg {display:block;}label {color: @brand-danger;}.form-control {border-color: @brand-danger;}}.checkbox {label {padding-left:40px;}input[type="checkbox"] {width: @dialog-checkbox;height: @dialog-checkbox;background:none;border:@dialog-input-border;margin-left:(-20px + @dialog-checkbox*-1);-webkit-appearance:none;appearance:none;&:hover {background-color:darken(@dialog-bg,10%);}&:checked {background-color:@dialog-color;}&:disabled {background-color:lighten(@dialog-color,30%);border-color:lighten(@dialog-color,20%);}}}}.error-msg {position: absolute;top: 50%;left: 0;right: auto;background-color: @brand-danger;color:@dialog-bg;padding: 10px;z-index: 3;max-width: (@dialog-width/2);border-radius:3px;.translate(-110%; -50%);.animation(swooshleft 200ms ease-in-out both);display:none;&:after {position:absolute;content:'';top:50%;right:0;.translate(97%; -50%);width: 0;height: 0;border-style: solid;border-width: 10px 0 10px 10px;border-color: transparent transparent transparent @brand-danger;}}.btn {font-weight:700;border-width:0;border-radius:0;text-transform:uppercase;.transition(all .2s cubic-bezier(.25,.5,.5,.9));&.btn-default {color:@dialog-btn-primary-color;background-color: @dialog-btn-primary-bg;margin: 0 -10%;width: 120%;outline:none;&:hover{background-color: @dialog-btn-primary-bg-hover;color:@dialog-btn-primary-color-hover;}&:active,&:focus {background-color: @dialog-btn-primary-bg-hover;color:@dialog-btn-primary-color-hover;}}}}}.effect(swooshUp30; {0% {opacity: 0;}100% {opacity: 1;}});.effect(swooshleft; {0% {.translate(-90%; -50%);}100% {.translate(-110%; -50%);}});.effect(shakeDialog; {0% {left:51%;}25% {left:49%;}50% {left:51%;}100% {left:50%;}});/* Generated with Bounce.js. Edit at https://goo.gl/KtDT8H */@-webkit-keyframes showDialog {0% { -webkit-transform: matrix3d(0.8, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.8, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }7.61% { -webkit-transform: matrix3d(0.907, 0, 0, 0, 0, 0.907, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.907, 0, 0, 0, 0, 0.907, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }11.41% { -webkit-transform: matrix3d(0.948, 0, 0, 0, 0, 0.948, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.948, 0, 0, 0, 0, 0.948, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }15.12% { -webkit-transform: matrix3d(0.976, 0, 0, 0, 0, 0.976, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.976, 0, 0, 0, 0, 0.976, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }18.92% { -webkit-transform: matrix3d(0.996, 0, 0, 0, 0, 0.996, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.996, 0, 0, 0, 0, 0.996, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }22.72% { -webkit-transform: matrix3d(1.008, 0, 0, 0, 0, 1.008, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1.008, 0, 0, 0, 0, 1.008, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }30.23% { -webkit-transform: matrix3d(1.014, 0, 0, 0, 0, 1.014, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1.014, 0, 0, 0, 0, 1.014, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }50.25% { -webkit-transform: matrix3d(1.003, 0, 0, 0, 0, 1.003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1.003, 0, 0, 0, 0, 1.003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }70.27% { -webkit-transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }100% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }}@keyframes showDialog {0% { -webkit-transform: matrix3d(0.8, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.8, 0, 0, 0, 0, 0.8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }7.61% { -webkit-transform: matrix3d(0.907, 0, 0, 0, 0, 0.907, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.907, 0, 0, 0, 0, 0.907, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }11.41% { -webkit-transform: matrix3d(0.948, 0, 0, 0, 0, 0.948, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.948, 0, 0, 0, 0, 0.948, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }15.12% { -webkit-transform: matrix3d(0.976, 0, 0, 0, 0, 0.976, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.976, 0, 0, 0, 0, 0.976, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }18.92% { -webkit-transform: matrix3d(0.996, 0, 0, 0, 0, 0.996, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.996, 0, 0, 0, 0, 0.996, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }22.72% { -webkit-transform: matrix3d(1.008, 0, 0, 0, 0, 1.008, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1.008, 0, 0, 0, 0, 1.008, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }30.23% { -webkit-transform: matrix3d(1.014, 0, 0, 0, 0, 1.014, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1.014, 0, 0, 0, 0, 1.014, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }50.25% { -webkit-transform: matrix3d(1.003, 0, 0, 0, 0, 1.003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1.003, 0, 0, 0, 0, 1.003, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }70.27% { -webkit-transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(0.999, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }100% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }}// This stiling is not a part of the widget.#successful_login, #successful_registration{opacity:0;visibility:hidden;-webkit-transition: opacity .4s cubic-bezier(.25,.5,.5,.9),visibility .6s cubic-bezier(.25,.5,.5,.9);-moz-transition: opacity .4s cubic-bezier(.25,.5,.5,.9),visibility .6s cubic-bezier(.25,.5,.5,.9);-ms-transition: opacity .4s cubic-bezier(.25,.5,.5,.9),visibility .6s cubic-bezier(.25,.5,.5,.9);transition: opacity .4s cubic-bezier(.25,.5,.5,.9),visibility .6s cubic-bezier(.25,.5,.5,.9);&.active {opacity:1;visibility:visible;}}