From 84a56f2351d967b2725553016cedae018d646ddf Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Tue, 12 Jun 2012 14:37:59 -0700 Subject: [PATCH 01/12] removed unfinished parts, improved copy and layout --- css/default.css | 28 +++++------ index.html | 48 +++++++++++++++--- js/app.js | 4 +- js/controllers.js | 3 +- less/default.less | 45 ++++++++++++----- less/mixins.less | 67 +++++++++++++++++++++++++ partials/about.html | 24 +++++---- partials/aes.html | 108 +++++++++++++++++++++-------------------- partials/home.html | 48 +++++++++--------- partials/memorize.html | 30 +++++++----- partials/phrases.html | 67 +++++++++++++------------ 11 files changed, 307 insertions(+), 165 deletions(-) create mode 100644 less/mixins.less diff --git a/css/default.css b/css/default.css index 88744d7..ebcbdfa 100644 --- a/css/default.css +++ b/css/default.css @@ -122,7 +122,7 @@ label{display:block;margin-bottom:5px;} select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;} input,textarea{width:210px;} textarea{height:auto;} -textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);} +textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;transition-property:border linear 0.2s,box-shadow linear 0.2s;transition-timing-function:linear;-moz-transition-property:border linear 0.2s,box-shadow linear 0.2s;-moz-transition-timing-function:linear;-webkit-transition-property:border linear 0.2s,box-shadow linear 0.2s;-webkit-transition-timing-function:linear;-o-transition-property:border linear 0.2s,box-shadow linear 0.2s;-o-transition-timing-function:linear;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);} input[type="radio"],input[type="checkbox"]{margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;} input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;} .uneditable-textarea{width:auto;height:auto;} @@ -404,14 +404,14 @@ table .span24{float:none;width:1884px;margin-left:0;} .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} .well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} .well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;} -.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;} +.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;transition-property:opacity 0.15s linear;transition-timing-function:linear;-moz-transition-property:opacity 0.15s linear;-moz-transition-timing-function:linear;-webkit-transition-property:opacity 0.15s linear;-webkit-transition-timing-function:linear;-o-transition-property:opacity 0.15s linear;-o-transition-timing-function:linear;}.fade.in{opacity:1;} +.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;transition-property:height 0.35s ease;transition-timing-function:linear;-moz-transition-property:height 0.35s ease;-moz-transition-timing-function:linear;-webkit-transition-property:height 0.35s ease;-webkit-transition-timing-function:linear;-o-transition-property:height 0.35s ease;-o-transition-timing-function:linear;}.collapse.in{height:auto;} .close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);} button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;} .btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;} .btn:active,.btn.active{background-color:#cccccc \9;} .btn:first-child{*margin-left:0;} -.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;transition-property:background-position 0.1s linear;transition-timing-function:linear;-moz-transition-property:background-position 0.1s linear;-moz-transition-timing-function:linear;-webkit-transition-property:background-position 0.1s linear;-webkit-transition-timing-function:linear;-o-transition-property:background-position 0.1s linear;-o-transition-timing-function:linear;} .btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} .btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);} .btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} @@ -555,7 +555,7 @@ button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding- .navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0;} .navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} .navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;} -.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;} +.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;transition-property:none;transition-timing-function:linear;-moz-transition-property:none;-moz-transition-timing-function:linear;-webkit-transition-property:none;-webkit-transition-timing-function:linear;-o-transition-property:none;-o-transition-timing-function:linear;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;} .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;} .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;} .navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} @@ -616,7 +616,7 @@ button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding- .modal-open .tooltip{z-index:2070;} .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} .modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} -.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;transition-property:opacity .3s linear, top .3s ease-out;transition-timing-function:linear;-moz-transition-property:opacity .3s linear, top .3s ease-out;-moz-transition-timing-function:linear;-webkit-transition-property:opacity .3s linear, top .3s ease-out;-webkit-transition-timing-function:linear;-o-transition-property:opacity .3s linear, top .3s ease-out;-o-transition-timing-function:linear;top:-25%;} .modal.fade.in{top:50%;} .modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} .modal-body{overflow-y:auto;max-height:400px;padding:15px;} @@ -671,7 +671,7 @@ a.label:hover,a.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;} .label-inverse,.badge-inverse{background-color:#333333;} .label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;} @-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;transition-property:width 0.6s ease;transition-timing-function:linear;-moz-transition-property:width 0.6s ease;-moz-transition-timing-function:linear;-webkit-transition-property:width 0.6s ease;-webkit-transition-timing-function:linear;-o-transition-property:width 0.6s ease;-o-transition-timing-function:linear;} .progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} .progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} .progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);} @@ -690,7 +690,7 @@ a.label:hover,a.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;} .accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} .carousel{position:relative;margin-bottom:18px;line-height:1;} .carousel-inner{overflow:hidden;width:100%;position:relative;} -.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} +.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;transition-property:0.6s ease-in-out left;transition-timing-function:linear;-moz-transition-property:0.6s ease-in-out left;-moz-transition-timing-function:linear;-webkit-transition-property:0.6s ease-in-out left;-webkit-transition-timing-function:linear;-o-transition-property:0.6s ease-in-out left;-o-transition-timing-function:linear;} .carousel .item>img{display:block;line-height:1;} .carousel .active,.carousel .next,.carousel .prev{display:block;} .carousel .active{left:0;} @@ -711,12 +711,12 @@ a.label:hover,a.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;} .hide{display:none;} .show{display:block;} .invisible{visibility:hidden;} -body{margin-top:60px;} -form.plain{background-color:green;} -form.cypher{background-color:yellow;} -form textarea{font-size:1.1em;width:95%;height:8em;} +form textarea{font-size:1.1em;width:100%;height:8em;} #passPhrase{font-size:1.4em;width:100%;height:2.5em;line-height:1.3em;}#passPhrase.large{height:12em;} -h2{font-size:1.7em;margin:0.3em 0;} -p{font-size:1.1em;line-height:1.5em;}p.large{font-size:1.5em;color:#999;} +h2{font-size:1.3em;margin:0.3em 0;} +p{font-size:1.1em;line-height:1.5em;}p.note{color:#999;} p.status{font-weight:bold;font-size:1.1em;padding:5px 10px;background-color:#FFC;}p.status.success{color:green;} p.status.error{color:red;} +#footer{background-color:#333;padding:2em 0;margin-top:50px;border-top:5px solid rgba(0, 0, 0, 0.3);color:#AAA;} +#top{background-color:#8FBE00;margin-bottom:40px;padding-top:80px;padding-bottom:30px;border-bottom:1px solid #666;-moz-box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);}#top h1{font-size:4em;margin-bottom:20px;margin-top:30px;color:#FFF;-moz-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);-webkit-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);} +#top p{font-size:1.5em;color:#F9F2E7;-moz-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);-webkit-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);} diff --git a/index.html b/index.html index 80debb2..97430ff 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - My AngularJS App + Simply Do - Cryptography Project @@ -20,18 +20,50 @@
  • Key Maker
  • -
  • - Memorize -
  • -
  • - About -
  • + + + -
    +
    + + diff --git a/js/app.js b/js/app.js index d37a4c8..a18859f 100644 --- a/js/app.js +++ b/js/app.js @@ -6,8 +6,8 @@ angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives']) config(['$routeProvider', function($routeProvider) { $routeProvider.when('/aes', {template: 'partials/aes.html', controller: aesCtrl}); $routeProvider.when('/home', {template: 'partials/home.html', controller: homeCtrl}); - $routeProvider.when('/memorize', {template: 'partials/memorize.html', controller: memorizeCtrl}); + //$routeProvider.when('/memorize', {template: 'partials/memorize.html', controller: memorizeCtrl}); $routeProvider.when('/phrases', {template: 'partials/phrases.html', controller: phrasesCtrl}); - $routeProvider.when('/about', {template: 'partials/about.html', controller: aboutCtrl}); + //$routeProvider.when('/about', {template: 'partials/about.html', controller: aboutCtrl}); $routeProvider.otherwise({redirectTo: '/home'}); }]); diff --git a/js/controllers.js b/js/controllers.js index bd4cf27..a02164a 100644 --- a/js/controllers.js +++ b/js/controllers.js @@ -5,7 +5,7 @@ function aesCtrl($scope,WordService) { - var passPhraseWordCount = 18; + var passPhraseWordCount = 5; $scope.message = ''; $scope.cypher = ''; @@ -129,6 +129,7 @@ function phrasesCtrl($scope,WordService) { $scope.words = WordService.getWords($scope.wordCount); $scope.permutations = WordService.calculatePermutations($scope.wordCount); $scope.lastWordCount = $scope.wordCount; + $scope.wordListLength = WordService.wordListLength(); } diff --git a/less/default.less b/less/default.less index 86f6b6b..2e1a58f 100644 --- a/less/default.less +++ b/less/default.less @@ -1,25 +1,19 @@ @import "../lib/bootstrap/less/bootstrap"; +@import "mixins"; //@import "mixins"; @iconSpritePath: "../lib/bootstrap/img/glyphicons-halflings.png"; @iconWhiteSpritePath: "../lib/bootstrap/img/glyphicons-halflings-white.png"; -body { - margin-top:60px; -} - - form { &.plain { - background-color:green; } &.cypher { - background-color:yellow; } textarea { font-size:1.1em; - width:95%; + width:100%; height:8em; } } @@ -35,7 +29,7 @@ form { } h2 { - font-size:1.7em; + font-size:1.3em; margin:0.3em 0; } @@ -44,8 +38,7 @@ h2 { p { font-size:1.1em; line-height:1.5em; - &.large { - font-size:1.5em; + &.note { color:#999; } } @@ -62,4 +55,34 @@ p.status { &.error { color:red; } +} + + +#footer { + background-color:#333; + padding:2em 0; + margin-top:50px; + border-top:5px solid rgba(0,0,0,0.3); + color:#AAA; +} + +#top { + background-color:#8FBE00; + margin-bottom:40px; + padding-top:80px; + padding-bottom:30px; + border-bottom:1px solid #666; + .box-shadow(0px, 3px, 0px, rgba(0,0,0,0.2); + h1 { + font-size:4em; + margin-bottom:20px; + margin-top:30px; + color:#FFF; + .text-shadow(0px, -1px, 0px, rgba(0,0,0,0.5)); + } + p { + font-size:1.5em; + color:#F9F2E7; + .text-shadow(0px, -1px, 0px, rgba(0,0,0,0.5)); + } } \ No newline at end of file diff --git a/less/mixins.less b/less/mixins.less new file mode 100644 index 0000000..00fa1dd --- /dev/null +++ b/less/mixins.less @@ -0,0 +1,67 @@ +// mixins + + +.backgroundSize(@horizontal, @vertical) { + // used by the backgorund tiles in .tile + -moz-background-size: @horizontal @vertical; + -o-background-size: @horizontal @vertical; + -webkit-background-size: @horizontal @vertical; + background-size: @horizontal @vertical; +} + + +.transition(@property) { + transition-property: @property; + transition-timing-function: linear; + -moz-transition-property: @property; + -moz-transition-timing-function: linear; + -webkit-transition-property: @property; + -webkit-transition-timing-function: linear; + -o-transition-property: @property; + -o-transition-timing-function: linear; +} + + +.rounded-corners (@radius: 5px) { + border-radius: @radius; + -webkit-border-radius: @radius; + -moz-border-radius: @radius; +} + +.box-shadow(@vOffset, @hOffset, @blur, @color) { + -moz-box-shadow: @vOffset @hOffset @blur @color; + -webkit-box-shadow: @vOffset @hOffset @blur @color; + box-shadow: @vOffset @hOffset @blur @color; +} + +.text-shadow(@vOffset, @hOffset, @blur, @color) { + -moz-text-shadow: @vOffset @hOffset @blur @color; + -webkit-text-shadow: @vOffset @hOffset @blur @color; + text-shadow: @vOffset @hOffset @blur @color; +} + +.rotate(@angle) { + transform:rotate(@angle); + -ms-transform:rotate(@angle); /* IE 9 */ + -moz-transform:rotate(@angle); /* Firefox */ + -webkit-transform:rotate(@angle); /* Safari and Chrome */ + -o-transform:rotate(@angle); /* Opera */ +} + +.gradient(@colourTop: rgb(255,255,255),@colourBottom: rgb(0,0,0)) { + background-image: linear-gradient(bottom, @colourBottom 0%, @colourTop 100%); + background-image: -o-linear-gradient(bottom, @colourBottom 0%, @colourTop 100%); + background-image: -moz-linear-gradient(bottom, @colourBottom 0%, @colourTop 100%); + background-image: -webkit-linear-gradient(bottom, @colourBottom 0%, @colourTop 100%); + background-image: -ms-linear-gradient(bottom, @colourBottom 0%, @colourTop 100%); +} + +.noSelection() { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + diff --git a/partials/about.html b/partials/about.html index 5ea4e75..3a5fa0b 100644 --- a/partials/about.html +++ b/partials/about.html @@ -1,15 +1,19 @@ -
    -
    -
    -

    About

    -

    The why and how.

    +
    +
    +
    +
    +

    About

    +

    The why and how.

    +
    -
    -
    -

    Advanced Encryption Standard (AES)

    -

    Using CryptoJS

    -

    Using words lists from Kevin's Word List Page

    +
    +
    +
    \ No newline at end of file diff --git a/partials/aes.html b/partials/aes.html index 277c2cd..ba4a265 100644 --- a/partials/aes.html +++ b/partials/aes.html @@ -1,67 +1,69 @@ -
    -
    -
    -

    Like privacy?

    -

    Encrypt any text.

    +
    +
    +
    +
    +

    Like privacy?

    +

    Encrypt any text.

    +
    +
    +

    Encrypt any text right in your browser. Nothing is sent to a server.

    +

    Learn more about the Advanced Encryption Standard (AES) used.

    +
    +
    +
    +
    -
    -

    Encrypt any text right in your browser. Nothing is sent to a server.

    -

    Learn more about the Advanced Encryption Standard (AES) used.

    -
    - - -
    -

    1. Key

    -

    The key is used to encrypt a text into a cypher and vice versa. Longer keys are better.

    - - -
    + +
    +

    {{feedBack}}

    +
    + +
    +

    Enter a custom key or generate random key

    + +

    The key is used to encrypt a text into a cypher and vice versa. Longer keys are better.

    +
    -
    -

    2. Content

    -

    Using the key above you can encrypt a new text or descrypt a previously encrypted text.

    -

    {{feedBack}}

    -
    + -
    -
    -

    Encrypt

    -
    - -
    - +
    + +

    Plain Text

    +
    +
    + +
    -
    -
    -
    - +
    +
    + +
    -
    - -
    + +
    -
    -
    -

    Decrypt

    -
    - -
    - +
    + +

    Cypher

    +
    +
    + +
    -
    -
    -
    - +
    +
    + +
    -
    - -
    + +
    - + +
    \ No newline at end of file diff --git a/partials/home.html b/partials/home.html index d9aee38..c79d86b 100644 --- a/partials/home.html +++ b/partials/home.html @@ -1,26 +1,30 @@ -
    -
    -
    -

    Welcome

    -

    Explorations into Cryptography.

    +
    +
    +
    +
    +

    Cryptography Project

    +

    Explorations into Cryptography.

    +
    - -
    -
    -

    Encrypt & Decrypt

    -

    Encrypt any text right in your browser. Nothing is ever sent to a server.

    -

    Utilizes the Advanced Encryption Standard (AES). Since all source code is open you can check for your self what happens with your data. No funny business! Guaranteed.

    -
    -
    -

    Key Maker

    -

    Typical passwords are hard to remember yet easy to crack.

    -

    Why not use a somewhat longer but easy to remember sequence of random words instead?

    -

    The Key Maker can make keys of any desired length using common English words.

    -
    -
    -

    Memorize

    -

    coming soon

    +
    +
    +
    +

    Encrypt & Decrypt

    +

    Encrypt any text right in your browser. Nothing is ever sent to a server.

    +

    Utilizes the Advanced Encryption Standard (AES). Since all source code is open you can check for your self what happens with your data. No funny business! Guaranteed.

    +

    Encrypt and Decrypt

    +
    +
    +

    Key Maker

    +

    Typical passwords are hard to remember yet easy to crack. Why not use a somewhat longer but easy to remember sequence of random words instead?

    +

    The Key Maker can make keys of any desired length using common English words.

    +

    Key Maker

    +
    +
    +

    Memorize

    +

    coming soon

    +
    -
    +
    \ No newline at end of file diff --git a/partials/memorize.html b/partials/memorize.html index 747e0f7..43104db 100644 --- a/partials/memorize.html +++ b/partials/memorize.html @@ -1,20 +1,24 @@ -
    -
    -
    -

    Memorize

    -

    How to easily remember a list of words (or anything).

    +
    +
    +
    +
    +

    Memorize

    +

    How to easily remember a list of words (or anything).

    +
    -
    -
    -

    Security is most likely compromised by ineffective passwords (e.g. 1234) or by passwords being stored insecurely (post it notes, anybody?). So the best way to improve security is to: a) Choose better passwords and b) Not write it down.

    -

    Using the Method of loci also known as Memory Palace it is surprisingly easy to memorize things.

    -

    It relies on our ability to quickly memorize and reliably recall spacial information.

    -

    Try it for yourself:

    -

    Visualize a familiar place (e.g. your home)

    -

    It should be easy for you to imagine yourself walking through you home starting at the front door.

    +
    +
    +
    +

    Security is most likely compromised by ineffective passwords (e.g. 1234) or by passwords being stored insecurely (post it notes, anybody?). So the best way to improve security is to: a) Choose better passwords and b) Not write it down.

    +

    Using the Method of loci also known as Memory Palace it is surprisingly easy to memorize things.

    +

    It relies on our ability to quickly memorize and reliably recall spacial information.

    +

    Try it for yourself:

    +

    Visualize a familiar place (e.g. your home)

    +

    It should be easy for you to imagine yourself walking through you home starting at the front door.

    +
    \ No newline at end of file diff --git a/partials/phrases.html b/partials/phrases.html index 15d5ea5..b374a9d 100644 --- a/partials/phrases.html +++ b/partials/phrases.html @@ -1,39 +1,44 @@ -
    -
    -
    -

    Need a key?

    -

    Generate random phrases.

    +
    +
    +
    +
    +

    Need a key?

    +

    Generate random phrases.

    +
    +
    +

    Typical passwords are hard to remember yet easy to crack.

    +

    Why not use a somewhat longer but easy to remember sequence of random words instead?

    +
    +
    +
    +
    -
    -

    Typical passwords are hard to remember yet easy to crack.

    -

    Why not use a somewhat longer but easy to remember sequence of random words instead?

    -
    - -
    -

    Your random key:

    -
    - -
    - -

    One of {{permutations}} possible {{lastWordCount}}-word permutations based on our {{wordListLength}} words long list. The longer your phrase is the more secure and harder to guess it is!

    -
    +
    +

    Your random key:

    +
    + +
    + +

    One of {{permutations}} possible {{lastWordCount}}-word permutations based on our {{wordListLength}} words long list.The longer your phrase is the more secure and harder to guess it is!

    +
    -
    -
    -
    -
    - +
    + +
    +
    + +
    -
    -
    - -
    - +
    + +
    + +
    -
    - -
    + +
    +
    \ No newline at end of file From c97f2004e883e9e8f73322bafcff932f60b690a8 Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Tue, 12 Jun 2012 19:34:45 -0700 Subject: [PATCH 02/12] added colors and more copy --- css/default.css | 6 ++++-- less/default.less | 19 +++++++++++++++++++ partials/home.html | 10 ++++++---- partials/phrases.html | 2 +- 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/css/default.css b/css/default.css index ebcbdfa..99787f9 100644 --- a/css/default.css +++ b/css/default.css @@ -718,5 +718,7 @@ p{font-size:1.1em;line-height:1.5em;}p.note{color:#999;} p.status{font-weight:bold;font-size:1.1em;padding:5px 10px;background-color:#FFC;}p.status.success{color:green;} p.status.error{color:red;} #footer{background-color:#333;padding:2em 0;margin-top:50px;border-top:5px solid rgba(0, 0, 0, 0.3);color:#AAA;} -#top{background-color:#8FBE00;margin-bottom:40px;padding-top:80px;padding-bottom:30px;border-bottom:1px solid #666;-moz-box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);}#top h1{font-size:4em;margin-bottom:20px;margin-top:30px;color:#FFF;-moz-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);-webkit-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);} -#top p{font-size:1.5em;color:#F9F2E7;-moz-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);-webkit-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);} +#top{background-color:#8FBE00;margin-bottom:40px;padding-top:80px;padding-bottom:30px;border-bottom:1px solid #666;-moz-box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);box-shadow:0px 3px 0px rgba(0, 0, 0, 0.2);}#top.home{background-color:#8ABBCE;} +#top.keymaker{background-color:#FA6900;} +#top h1{font-size:4em;margin-bottom:20px;margin-top:30px;color:#FFF;-moz-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);-webkit-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);} +#top p{font-size:1.5em;color:#F9F2E7;-moz-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);-webkit-text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);text-shadow:0px -1px 0px rgba(0, 0, 0, 0.5);}#top p a{color:#F9F2E7;border-bottom:1px solid #FFF;text-decoration:none;font-weight:bold;}#top p a:hover{background-color:rgba(0, 0, 0, 0.1);padding-left:4px;padding-right:4px;margin:0 -4px;color:#FFF;} diff --git a/less/default.less b/less/default.less index 2e1a58f..9a8d906 100644 --- a/less/default.less +++ b/less/default.less @@ -73,6 +73,12 @@ p.status { padding-bottom:30px; border-bottom:1px solid #666; .box-shadow(0px, 3px, 0px, rgba(0,0,0,0.2); + &.home { + background-color:#8ABBCE; + } + &.keymaker { + background-color:#FA6900; + } h1 { font-size:4em; margin-bottom:20px; @@ -84,5 +90,18 @@ p.status { font-size:1.5em; color:#F9F2E7; .text-shadow(0px, -1px, 0px, rgba(0,0,0,0.5)); + a { + color:#F9F2E7; + border-bottom:1px solid #FFF; + text-decoration:none; + font-weight:bold; + &:hover { + background-color:rgba(0,0,0,0.1); + padding-left:4px; + padding-right:4px; + margin:0 -4px; + color:#FFF; + } + } } } \ No newline at end of file diff --git a/partials/home.html b/partials/home.html index c79d86b..6bfb81a 100644 --- a/partials/home.html +++ b/partials/home.html @@ -1,9 +1,9 @@ -
    +

    Cryptography Project

    -

    Explorations into Cryptography.

    +

    A Simply Do Exploration.

    @@ -13,7 +13,7 @@

    Cryptography Project

    Encrypt & Decrypt

    Encrypt any text right in your browser. Nothing is ever sent to a server.

    -

    Utilizes the Advanced Encryption Standard (AES). Since all source code is open you can check for your self what happens with your data. No funny business! Guaranteed.

    +

    It utilizes the Advanced Encryption Standard (AES). Since the source code is open you can check for your self what happens with your data. No funny business! Guaranteed.

    Encrypt and Decrypt

    @@ -24,7 +24,9 @@

    Key Maker

    Memorize

    -

    coming soon

    +

    The safest place to store your passwords is you mind. And it is easier than you think to quickly memorize even long word sequences with the Method of Loci (aka Memory Palace).

    +

    Check out this video or even better read Moonwalking with Einstein by Joshua Foer for a great introduction.

    +
    \ No newline at end of file diff --git a/partials/phrases.html b/partials/phrases.html index b374a9d..b6dc9fd 100644 --- a/partials/phrases.html +++ b/partials/phrases.html @@ -1,4 +1,4 @@ -
    +
    From 74efc8e7ef6bc5f8be1aa5752b8c650bb31e6d7f Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Wed, 13 Jun 2012 07:12:27 -0700 Subject: [PATCH 03/12] added google tracking --- index.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/index.html b/index.html index 97430ff..40b86e1 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,20 @@ Simply Do - Cryptography Project + + From b95efb214dadff39e1ce3bed847d5fc878cb1feb Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Wed, 13 Jun 2012 09:55:06 -0700 Subject: [PATCH 04/12] fixed broken wikipedia link --- partials/aes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/partials/aes.html b/partials/aes.html index ba4a265..bd985a6 100644 --- a/partials/aes.html +++ b/partials/aes.html @@ -7,7 +7,7 @@

    Like privacy?

    Encrypt any text right in your browser. Nothing is sent to a server.

    -

    Learn more about the Advanced Encryption Standard (AES) used.

    +

    Learn more about the Advanced Encryption Standard (AES) used.

    From ca109f95869d3aa15b4d150d45fc8032150c0ea0 Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Wed, 13 Jun 2012 10:23:48 -0700 Subject: [PATCH 05/12] added a README --- README | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..abeb9fc --- /dev/null +++ b/README @@ -0,0 +1,23 @@ +Cryptography Project + +Encrypt and decrypt any text right in your browser. You can also generate random key phrases from the list of 39,000 English words. Nothing is ever sent to a server! + +url: http://simplydo.com/cryptography +sources: https://github.com/SimplyDo/cryptography + +Created by Simply Do: http://simplydo.com + + + +Uses various libraries / framework under their respective licenses: + +AngularJS by Google - http://angularjs.org/ +CryptoJS - http://code.google.com/p/crypto-js/ +Twitter Bootstrapped - http://twitter.github.com/bootstrap/ +Kevin's Word List Page - http://wordlist.sourceforge.net/ + + + +Instructions: + +Simply point a web server to the root directory of this repository and view in any modern browser. \ No newline at end of file From 285379057be2b9676ddd6715f90b6aa9bdf95d0b Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Fri, 15 Jun 2012 19:52:00 -0700 Subject: [PATCH 06/12] Fixed typo in link url --- partials/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/partials/home.html b/partials/home.html index 6bfb81a..34bc251 100644 --- a/partials/home.html +++ b/partials/home.html @@ -25,7 +25,7 @@

    Key Maker

    Memorize

    The safest place to store your passwords is you mind. And it is easier than you think to quickly memorize even long word sequences with the Method of Loci (aka Memory Palace).

    -

    Check out this video or even better read Moonwalking with Einstein by Joshua Foer for a great introduction.

    +

    Check out this video or even better read Moonwalking with Einstein by Joshua Foer for a great introduction.

    From 3c5a6c0b6f7af7539a9bd0a28535526e3faf31d8 Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Wed, 20 Jun 2012 14:21:20 -0700 Subject: [PATCH 07/12] adding social love --- css/default.css | 2 ++ index.html | 2 ++ js/controllers-ck.js | 1 + js/controllers.js | 2 ++ less/default.less | 1 + lib/socialite/images/social-sprite.png | Bin 0 -> 7353 bytes lib/socialite/socialite.less | 20 ++++++++++++++++++++ lib/socialite/socialite.min.js | 7 +++++++ partials/home.html | 5 +++++ 9 files changed, 40 insertions(+) create mode 100644 js/controllers-ck.js create mode 100755 lib/socialite/images/social-sprite.png create mode 100644 lib/socialite/socialite.less create mode 100755 lib/socialite/socialite.min.js diff --git a/css/default.css b/css/default.css index 99787f9..709fc7b 100644 --- a/css/default.css +++ b/css/default.css @@ -711,6 +711,8 @@ a.label:hover,a.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;} .hide{display:none;} .show{display:block;} .invisible{visibility:hidden;} +.social-buttons{display:block;list-style:none;padding:0;margin:0px;float:right;} +.social-buttons>li{display:inline-block;margin-left:10px;float:left;} form textarea{font-size:1.1em;width:100%;height:8em;} #passPhrase{font-size:1.4em;width:100%;height:2.5em;line-height:1.3em;}#passPhrase.large{height:12em;} h2{font-size:1.3em;margin:0.3em 0;} diff --git a/index.html b/index.html index 40b86e1..d8a2800 100644 --- a/index.html +++ b/index.html @@ -68,6 +68,7 @@
  • The source code is open and available on Github
  • Created with AngularJS by Google
  • Encryption through CryptoJS
  • +
  • Social buttons by Socialite.js
  • Words lists based on Kevin's Word List Page
  • The UI is Twitter Bootstrapped
  • Hosted with Github pages
  • @@ -80,6 +81,7 @@
    + diff --git a/js/controllers-ck.js b/js/controllers-ck.js new file mode 100644 index 0000000..25e1ee2 --- /dev/null +++ b/js/controllers-ck.js @@ -0,0 +1 @@ +"use strict";function aesCtrl(a,b){var c=5;a.message="";a.cypher="";a.cypherString="";a.passphrase="";a.feedBack="";a.status="";a.encrypt=function(){if(a.message!=""&&a.passphrase!=""){a.cypher=CryptoJS.AES.encrypt(a.message,a.passphrase);a.cypherString=String(a.cypher);a.message="";a.feedBack="The text was successfully encrypted.";a.status="success"}else{a.feedBack="You need to enter or generate a pass phrase to encrypt this text.";a.status="error"}};a.decrypt=function(){if(a.cypher==""|a.passphrase==""){a.feedBack="You need to enter your pass phrase to decrypt this cypher.";a.status="error"}else{a.message=CryptoJS.AES.decrypt(a.cypher,a.passphrase).toString(CryptoJS.enc.Utf8);if(a.message==""){a.feedBack="Cypher and pass phrase do not match";a.status="error"}else{a.cypherString="";a.cypher="";a.feedBack="The cypher was successfully decrypted.";a.status="success"}}};a.newPassPhrase=function(){a.passphrase=b.getWords(c)};a.clear=function(){a.message="";a.cypher="";a.cypherString="";a.passphrase="";a.feedBack="";a.status=""}}function navigationCtrl(a,b){a.location=b}function aboutCtrl(){}function memorizeCtrl(){}function homeCtrl(a){Socialite.load("social-buttons")}function phrasesCtrl(a,b){a.wordCount=4;a.wordListLength=b.wordListLength();a.getRandomWords=function(){a.words=b.getWords(a.wordCount);a.permutations=b.calculatePermutations(a.wordCount);a.lastWordCount=a.wordCount;a.wordListLength=b.wordListLength()};a.getRandomWords()}; \ No newline at end of file diff --git a/js/controllers.js b/js/controllers.js index a02164a..b2a9fca 100644 --- a/js/controllers.js +++ b/js/controllers.js @@ -117,6 +117,8 @@ function memorizeCtrl() { function homeCtrl(WordService) { + Socialite.load('social-buttons'); + } function phrasesCtrl($scope,WordService) { diff --git a/less/default.less b/less/default.less index 9a8d906..5218880 100644 --- a/less/default.less +++ b/less/default.less @@ -1,4 +1,5 @@ @import "../lib/bootstrap/less/bootstrap"; +@import "../lib/socialite/socialite.less"; @import "mixins"; //@import "mixins"; @iconSpritePath: "../lib/bootstrap/img/glyphicons-halflings.png"; diff --git a/lib/socialite/images/social-sprite.png b/lib/socialite/images/social-sprite.png new file mode 100755 index 0000000000000000000000000000000000000000..19f36dded39d1e79ab3a9858c174f43df8a4d149 GIT binary patch literal 7353 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 NYN_d|R;t{O_z&R?XI%gQ literal 0 HcmV?d00001 diff --git a/lib/socialite/socialite.less b/lib/socialite/socialite.less new file mode 100644 index 0000000..2ecc55d --- /dev/null +++ b/lib/socialite/socialite.less @@ -0,0 +1,20 @@ +/* + * Socialite Look-a-like defaults + */ + +.social-buttons { display: block; list-style: none; padding: 0; margin: 0px; float:right; } +.social-buttons > li { display: inline-block; margin-left:10px; float: left; } + + +/* +* Removed since these are optimized for white backgrounds + +.social-buttons .socialite { display: block; position: relative; background: url('../lib/socialite/images/social-sprite.png') 0 0 no-repeat; } +.social-buttons .socialite-loaded { background: none !important; } + + +.social-buttons .twitter-share { width: 55px; height: 65px; background-position: 0 0; } +.social-buttons .googleplus-one { width: 50px; height: 65px; background-position: -75px 0; } +.social-buttons .facebook-like { width: 50px; height: 65px; background-position: -145px 0; } +.social-buttons .linkedin-share { width: 60px; height: 65px; background-position: -215px 0; } +*/ \ No newline at end of file diff --git a/lib/socialite/socialite.min.js b/lib/socialite/socialite.min.js new file mode 100755 index 0000000..1db3726 --- /dev/null +++ b/lib/socialite/socialite.min.js @@ -0,0 +1,7 @@ +/*! + * Socialite v2.0 + * http://socialitejs.com + * Copyright (c) 2011 David Bushell + * Dual-licensed under the BSD or MIT licenses: http://socialitejs.com/license.txt + */ +window.Socialite=function(a,b,c){"use strict";var d=0,e=[],f={},g={},h=/^($|loaded|complete)/,i=a.encodeURIComponent,j={settings:{},trim:function(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")},hasClass:function(a,b){return(" "+a.className+" ").indexOf(" "+b+" ")!==-1},addClass:function(a,b){j.hasClass(a,b)||(a.className=a.className===""?b:a.className+" "+b)},removeClass:function(a,b){a.className=j.trim(" "+a.className+" ".replace(" "+b+" "," "))},extendObject:function(a,b,d){for(var e in b){var f=a[e]!==c;if(f&&typeof b[e]=="object")j.extendObject(a[e],b[e],d);else if(d||!f)a[e]=b[e]}},getElements:function(a,b){var c=0,d=[],e=!!a.getElementsByClassName,f=e?a.getElementsByClassName(b):a.getElementsByTagName("*");for(;c
    +

    Cryptography Project

    A Simply Do Exploration.

    From cb17569afd69093d16411ac1fcd5cae4d212ef1b Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Wed, 20 Jun 2012 14:24:43 -0700 Subject: [PATCH 08/12] now with bigger type --- css/default.css | 1 + less/default.less | 6 ++++++ partials/home.html | 10 +++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/css/default.css b/css/default.css index 709fc7b..cdbf7eb 100644 --- a/css/default.css +++ b/css/default.css @@ -717,6 +717,7 @@ form textarea{font-size:1.1em;width:100%;height:8em;} #passPhrase{font-size:1.4em;width:100%;height:2.5em;line-height:1.3em;}#passPhrase.large{height:12em;} h2{font-size:1.3em;margin:0.3em 0;} p{font-size:1.1em;line-height:1.5em;}p.note{color:#999;} +.large p{font-size:1.2em;} p.status{font-weight:bold;font-size:1.1em;padding:5px 10px;background-color:#FFC;}p.status.success{color:green;} p.status.error{color:red;} #footer{background-color:#333;padding:2em 0;margin-top:50px;border-top:5px solid rgba(0, 0, 0, 0.3);color:#AAA;} diff --git a/less/default.less b/less/default.less index 5218880..ef7ef41 100644 --- a/less/default.less +++ b/less/default.less @@ -44,6 +44,12 @@ p { } } +.large { + p { + font-size:1.2em; + } +} + p.status { font-weight:bold; diff --git a/partials/home.html b/partials/home.html index 63e4388..242d9b1 100644 --- a/partials/home.html +++ b/partials/home.html @@ -15,19 +15,19 @@

    Cryptography Project

    -
    +

    Encrypt & Decrypt

    Encrypt any text right in your browser. Nothing is ever sent to a server.

    It utilizes the Advanced Encryption Standard (AES). Since the source code is open you can check for your self what happens with your data. No funny business! Guaranteed.

    -

    Encrypt and Decrypt

    +

    Encrypt and Decrypt

    -
    +

    Key Maker

    Typical passwords are hard to remember yet easy to crack. Why not use a somewhat longer but easy to remember sequence of random words instead?

    The Key Maker can make keys of any desired length using common English words.

    -

    Key Maker

    +

    Key Maker

    -
    +

    Memorize

    The safest place to store your passwords is you mind. And it is easier than you think to quickly memorize even long word sequences with the Method of Loci (aka Memory Palace).

    Check out this video or even better read Moonwalking with Einstein by Joshua Foer for a great introduction.

    From 568b4eb95d321f650d5c34b72d612e282522ef06 Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Fri, 25 Jan 2013 09:28:33 -0500 Subject: [PATCH 09/12] Updating Google tracking --- index.html | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/index.html b/index.html index d8a2800..d585352 100644 --- a/index.html +++ b/index.html @@ -5,19 +5,13 @@ Simply Do - Cryptography Project - + + From b44dae188f75fe7c6ae1f0d337c9a92b7e4be3e4 Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Fri, 25 Jan 2013 09:34:06 -0500 Subject: [PATCH 10/12] Fixing google tracking --- index.html | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index d585352..720d6f9 100644 --- a/index.html +++ b/index.html @@ -5,13 +5,6 @@ Simply Do - Cryptography Project - - @@ -82,5 +75,21 @@ + + + + From aeaed0ef4d27a486ed773e560f4a3aff6c13471c Mon Sep 17 00:00:00 2001 From: Alexander Kohlhofer Date: Sat, 7 Sep 2013 21:23:17 -0400 Subject: [PATCH 11/12] simplified and cleaned up --- index.html | 8 ++++---- js/app.js | 4 ++-- partials/about.html | 28 ++++++++++++++++++++-------- partials/home.html | 37 ------------------------------------- 4 files changed, 26 insertions(+), 51 deletions(-) delete mode 100644 partials/home.html diff --git a/index.html b/index.html index 720d6f9..85e5e24 100644 --- a/index.html +++ b/index.html @@ -12,15 +12,16 @@