├── assets ├── css │ ├── ie.css │ ├── iconfont.scss │ ├── bourbon │ │ ├── css3 │ │ │ ├── _appearance.scss │ │ │ ├── _user-select.scss │ │ │ ├── _background-size.scss │ │ │ ├── _box-sizing.scss │ │ │ ├── _inline-block.scss │ │ │ ├── _perspective.scss │ │ │ ├── _image-rendering.scss │ │ │ ├── _placeholder.scss │ │ │ ├── _hidpi-media-query.scss │ │ │ ├── _transform.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _font-face.scss │ │ │ ├── _columns.scss │ │ │ ├── _flex-box.scss │ │ │ ├── _transition.scss │ │ │ ├── _keyframes.scss │ │ │ ├── _animation.scss │ │ │ ├── _background-image.scss │ │ │ ├── _linear-gradient.scss │ │ │ ├── _border-image.scss │ │ │ ├── _radial-gradient.scss │ │ │ └── _background.scss │ │ ├── functions │ │ │ ├── _linear-gradient.scss │ │ │ ├── _compact.scss │ │ │ ├── _px-to-em.scss │ │ │ ├── _tint-shade.scss │ │ │ ├── _grid-width.scss │ │ │ ├── _render-gradients.scss │ │ │ ├── _transition-property-name.scss │ │ │ ├── _modular-scale.scss │ │ │ ├── _deprecated-webkit-gradient.scss │ │ │ ├── _flex-grid.scss │ │ │ └── _radial-gradient.scss │ │ ├── addons │ │ │ ├── _hide-text.scss │ │ │ ├── _font-family.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _position.scss │ │ │ ├── _retina-image.scss │ │ │ ├── _size.scss │ │ │ ├── _triangle.scss │ │ │ ├── _prefixer.scss │ │ │ ├── _timing-functions.scss │ │ │ ├── _html5-input-types.scss │ │ │ └── _button.scss │ │ ├── _bourbon-deprecated-upcoming.scss │ │ └── _bourbon.scss │ ├── lighttheme.scss │ ├── mixins.scss │ ├── reset.css │ └── global.scss ├── fonts │ ├── icomoon.eot │ ├── icomoon.ttf │ ├── icomoon.woff │ ├── style.css │ ├── icomoon.svg │ └── icomoon.dev.svg ├── images │ ├── favicon.ico │ ├── logo.svg │ ├── blue-logo.svg │ ├── gray-logo.svg │ └── green-logo.svg └── js │ ├── ZeroClipboard.swf │ ├── global-ob.min.js │ ├── global-ob.js │ ├── global.min.js │ ├── jquery.zclip.min.js │ ├── global.js │ └── plugins.min.js ├── .gitignore ├── README.md ├── footer.php ├── header.php └── index.php /assets/css/ie.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/css/iconfont.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | log/* 2 | .DS_Store 3 | .sass-cache 4 | +CREATIVE 5 | Color Palette 6 | Codes-ASCII.txt -------------------------------------------------------------------------------- /assets/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/problem/keymap/master/assets/fonts/icomoon.eot -------------------------------------------------------------------------------- /assets/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/problem/keymap/master/assets/fonts/icomoon.ttf -------------------------------------------------------------------------------- /assets/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/problem/keymap/master/assets/fonts/icomoon.woff -------------------------------------------------------------------------------- /assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/problem/keymap/master/assets/images/favicon.ico -------------------------------------------------------------------------------- /assets/js/ZeroClipboard.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/problem/keymap/master/assets/js/ZeroClipboard.swf -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_appearance.scss: -------------------------------------------------------------------------------- 1 | @mixin appearance ($value) { 2 | @include prefixer(appearance, $value, webkit moz ms o spec); 3 | } 4 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_user-select.scss: -------------------------------------------------------------------------------- 1 | @mixin user-select($arg: none) { 2 | @include prefixer(user-select, $arg, webkit moz ms spec); 3 | } 4 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_background-size.scss: -------------------------------------------------------------------------------- 1 | @mixin background-size ($lengths...) { 2 | @include prefixer(background-size, $lengths, webkit moz ms o spec); 3 | } 4 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | @mixin box-sizing ($box) { 2 | // content-box | border-box | inherit 3 | @include prefixer(box-sizing, $box, webkit moz spec); 4 | } 5 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_linear-gradient.scss: -------------------------------------------------------------------------------- 1 | @function linear-gradient($gradients...) { 2 | $type: linear; 3 | $type-gradient: append($type, $gradients, comma); 4 | 5 | @return $type-gradient; 6 | } 7 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_inline-block.scss: -------------------------------------------------------------------------------- 1 | // Legacy support for inline-block in IE7 (maybe IE6) 2 | @mixin inline-block { 3 | display: inline-block; 4 | vertical-align: baseline; 5 | zoom: 1; 6 | *display: inline; 7 | *vertical-align: auto; 8 | } 9 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_compact.scss: -------------------------------------------------------------------------------- 1 | // Remove `false` values from a list 2 | 3 | @function compact($vars...) { 4 | $list: (); 5 | @each $var in $vars { 6 | @if $var { 7 | $list: append($list, $var, comma); 8 | } 9 | } 10 | @return $list; 11 | } 12 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_perspective.scss: -------------------------------------------------------------------------------- 1 | @mixin perspective($depth: none) { 2 | // none | 3 | @include prefixer(perspective, $depth, webkit moz o spec); 4 | } 5 | 6 | @mixin perspective-origin($value: 50% 50%) { 7 | @include prefixer(perspective-origin, $value, webkit moz o spec); 8 | } 9 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to ems 2 | // eg. for a relational value of 12px write em(12) when the parent is 16px 3 | // if the parent is another value say 24px write em(12, 24) 4 | 5 | @function em($pxval, $base: 16) { 6 | @return ($pxval / $base) * 1em; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_tint-shade.scss: -------------------------------------------------------------------------------- 1 | // Add percentage of white to a color 2 | @function tint($color, $percent){ 3 | @return mix(white, $color, $percent); 4 | } 5 | 6 | // Add percentage of black to a color 7 | @function shade($color, $percent){ 8 | @return mix(black, $color, $percent); 9 | } 10 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_hide-text.scss: -------------------------------------------------------------------------------- 1 | @mixin hide-text { 2 | color: transparent; 3 | font: 0/0 a; 4 | text-shadow: none; 5 | } 6 | 7 | // A CSS image replacement method that does not require the use of text-indent. 8 | // 9 | // Examples 10 | // 11 | // .ir { 12 | // @include hide-text; 13 | // } 14 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_font-family.scss: -------------------------------------------------------------------------------- 1 | $georgia: Georgia, Cambria, "Times New Roman", Times, serif; 2 | $helvetica: "Helvetica Neue", Helvetica, Arial, sans-serif; 3 | $lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif; 4 | $monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace; 5 | $verdana: Verdana, Geneva, sans-serif; 6 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_image-rendering.scss: -------------------------------------------------------------------------------- 1 | @mixin image-rendering ($mode:optimizeQuality) { 2 | 3 | @if ($mode == optimize-contrast) { 4 | image-rendering: -moz-crisp-edges; 5 | image-rendering: -o-crisp-edges; 6 | image-rendering: -webkit-optimize-contrast; 7 | image-rendering: optimize-contrast; 8 | } 9 | 10 | @else { 11 | image-rendering: $mode; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_placeholder.scss: -------------------------------------------------------------------------------- 1 | $placeholders: '-webkit-input-placeholder', 2 | '-moz-placeholder', 3 | '-ms-input-placeholder'; 4 | 5 | @mixin placeholder { 6 | @each $placeholder in $placeholders { 7 | @if $placeholder == "-webkit-input-placeholder" { 8 | &::#{$placeholder} { 9 | @content; 10 | } 11 | } 12 | @else { 13 | &:#{$placeholder} { 14 | @content; 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /assets/css/bourbon/_bourbon-deprecated-upcoming.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // These mixins/functions are deprecated 3 | // They will be removed in the next MAJOR version release 4 | //************************************************************************// 5 | @mixin box-shadow ($shadows...) { 6 | @include prefixer(box-shadow, $shadows, spec); 7 | @warn "box-shadow is deprecated and will be removed in the next major version release"; 8 | } 9 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_grid-width.scss: -------------------------------------------------------------------------------- 1 | @function grid-width($n) { 2 | @return $n * $gw-column + ($n - 1) * $gw-gutter; 3 | } 4 | 5 | // The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function. 6 | // 7 | // $gw-column: 100px; // Column Width 8 | // $gw-gutter: 40px; // Gutter Width 9 | // 10 | // div { 11 | // width: grid-width(4); // returns 520px; 12 | // margin-left: $gw-gutter; // returns 40px; 13 | // } 14 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_hidpi-media-query.scss: -------------------------------------------------------------------------------- 1 | // HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/) 2 | @mixin hidpi($ratio: 1.3) { 3 | @media only screen and (-webkit-min-device-pixel-ratio: $ratio), 4 | only screen and (min--moz-device-pixel-ratio: $ratio), 5 | only screen and (-o-min-device-pixel-ratio: #{$ratio}/1), 6 | only screen and (min-resolution: #{round($ratio*96)}dpi), 7 | only screen and (min-resolution: #{$ratio}dppx) { 8 | @content; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_render-gradients.scss: -------------------------------------------------------------------------------- 1 | // User for linear and radial gradients within background-image or border-image properties 2 | 3 | @function render-gradients($gradients, $gradient-type, $vendor: false) { 4 | $vendor-gradients: false; 5 | @if $vendor { 6 | $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient($gradients); 7 | } 8 | 9 | @else if $vendor == false { 10 | $vendor-gradients: "#{$gradient-type}-gradient(#{$gradients})"; 11 | $vendor-gradients: unquote($vendor-gradients); 12 | } 13 | @return $vendor-gradients; 14 | } 15 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_transform.scss: -------------------------------------------------------------------------------- 1 | @mixin transform($property: none) { 2 | // none | 3 | @include prefixer(transform, $property, webkit moz ms o spec); 4 | } 5 | 6 | @mixin transform-origin($axes: 50%) { 7 | // x-axis - left | center | right | length | % 8 | // y-axis - top | center | bottom | length | % 9 | // z-axis - length 10 | @include prefixer(transform-origin, $axes, webkit moz ms o spec); 11 | } 12 | 13 | @mixin transform-style ($style: flat) { 14 | @include prefixer(transform-style, $style, webkit moz ms o spec); 15 | } 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Keycodes @ JayJo 2 | ====== 3 | 4 | Keycodes is a small application used to grab keyboard and character codes quickly and easily. No one enjoys sifting through lists of text trying to find the one keycode they need. 5 | 6 | [Keycodes](http://keycodes.atjayjo.com) 7 | 8 | Keycodes will is an ongoing project. I plan to add in other keyboards and languages, in addition to a number pad and a few other features. 9 | 10 | Feel free to fork Keycodes and contribute or leave any comments on how I can improve Keycodes. 11 | 12 | Follow me [@jayjo](http://twitter.com/jayjo) on Twitter for updates. 13 | 14 | Thanks for stopping by. 15 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_clearfix.scss: -------------------------------------------------------------------------------- 1 | // Micro clearfix provides an easy way to contain floats without adding additional markup 2 | // 3 | // Example usage: 4 | // 5 | // // Contain all floats within .wrapper 6 | // .wrapper { 7 | // @include clearfix; 8 | // .content, 9 | // .sidebar { 10 | // float : left; 11 | // } 12 | // } 13 | 14 | @mixin clearfix { 15 | *zoom: 1; 16 | 17 | &:before, 18 | &:after { 19 | content: " "; 20 | display: table; 21 | } 22 | 23 | &:after { 24 | clear: both; 25 | } 26 | } 27 | 28 | // Acknowledgements 29 | // Micro clearfix: [Nicolas Gallagher](http://nicolasgallagher.com/micro-clearfix-hack/) 30 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_transition-property-name.scss: -------------------------------------------------------------------------------- 1 | // Return vendor-prefixed property names if appropriate 2 | // Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background 3 | //************************************************************************// 4 | @function transition-property-names($props, $vendor: false) { 5 | $new-props: (); 6 | 7 | @each $prop in $props { 8 | $new-props: append($new-props, transition-property-name($prop, $vendor), comma); 9 | } 10 | 11 | @return $new-props; 12 | } 13 | 14 | @function transition-property-name($prop, $vendor: false) { 15 | // put other properties that need to be prefixed here aswell 16 | @if $vendor and $prop == transform { 17 | @return unquote('-'+$vendor+'-'+$prop); 18 | } 19 | @else { 20 | @return $prop; 21 | } 22 | } -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_position.scss: -------------------------------------------------------------------------------- 1 | @mixin position ($position: relative, $coordinates: 0 0 0 0) { 2 | 3 | @if type-of($position) == list { 4 | $coordinates: $position; 5 | $position: relative; 6 | } 7 | 8 | $top: nth($coordinates, 1); 9 | $right: nth($coordinates, 2); 10 | $bottom: nth($coordinates, 3); 11 | $left: nth($coordinates, 4); 12 | 13 | position: $position; 14 | 15 | @if $top == auto { 16 | top: $top; 17 | } 18 | @else if not(unitless($top)) { 19 | top: $top; 20 | } 21 | 22 | @if $right == auto { 23 | right: $right; 24 | } 25 | @else if not(unitless($right)) { 26 | right: $right; 27 | } 28 | 29 | @if $bottom == auto { 30 | bottom: $bottom; 31 | } 32 | @else if not(unitless($bottom)) { 33 | bottom: $bottom; 34 | } 35 | 36 | @if $left == auto { 37 | left: $left; 38 | } 39 | @else if not(unitless($left)) { 40 | left: $left; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_border-radius.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Shorthand Border-radius mixins 3 | //************************************************************************// 4 | @mixin border-top-radius($radii) { 5 | @include prefixer(border-top-left-radius, $radii, spec); 6 | @include prefixer(border-top-right-radius, $radii, spec); 7 | } 8 | 9 | @mixin border-bottom-radius($radii) { 10 | @include prefixer(border-bottom-left-radius, $radii, spec); 11 | @include prefixer(border-bottom-right-radius, $radii, spec); 12 | } 13 | 14 | @mixin border-left-radius($radii) { 15 | @include prefixer(border-top-left-radius, $radii, spec); 16 | @include prefixer(border-bottom-left-radius, $radii, spec); 17 | } 18 | 19 | @mixin border-right-radius($radii) { 20 | @include prefixer(border-top-right-radius, $radii, spec); 21 | @include prefixer(border-bottom-right-radius, $radii, spec); 22 | } 23 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_retina-image.scss: -------------------------------------------------------------------------------- 1 | @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $asset-pipeline: false) { 2 | @if $asset-pipeline { 3 | background-image: image_url($filename + "." + $extension); 4 | } 5 | @else { 6 | background-image: url($filename + "." + $extension); 7 | } 8 | 9 | @include hidpi { 10 | 11 | @if $asset-pipeline { 12 | @if $retina-filename { 13 | background-image: image_url($retina-filename + "." + $extension); 14 | } 15 | @else { 16 | background-image: image_url($filename + "@2x" + "." + $extension); 17 | } 18 | } 19 | 20 | @else { 21 | @if $retina-filename { 22 | background-image: url($retina-filename + "." + $extension); 23 | } 24 | @else { 25 | background-image: url($filename + "@2x" + "." + $extension); 26 | } 27 | } 28 | 29 | background-size: $background-size; 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_size.scss: -------------------------------------------------------------------------------- 1 | @mixin size($size) { 2 | @if length($size) == 1 { 3 | @if $size == auto { 4 | width: $size; 5 | height: $size; 6 | } 7 | 8 | @else if unitless($size) { 9 | width: $size + px; 10 | height: $size + px; 11 | } 12 | 13 | @else if not(unitless($size)) { 14 | width: $size; 15 | height: $size; 16 | } 17 | } 18 | 19 | // Width x Height 20 | @if length($size) == 2 { 21 | $width: nth($size, 1); 22 | $height: nth($size, 2); 23 | 24 | @if $width == auto { 25 | width: $width; 26 | } 27 | @else if not(unitless($width)) { 28 | width: $width; 29 | } 30 | @else if unitless($width) { 31 | width: $width + px; 32 | } 33 | 34 | @if $height == auto { 35 | height: $height; 36 | } 37 | @else if not(unitless($height)) { 38 | height: $height; 39 | } 40 | @else if unitless($height) { 41 | height: $height + px; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_font-face.scss: -------------------------------------------------------------------------------- 1 | // Order of the includes matters, and it is: normal, bold, italic, bold+italic. 2 | 3 | @mixin font-face($font-family, $file-path, $weight: normal, $style: normal, $asset-pipeline: false ) { 4 | @font-face { 5 | font-family: $font-family; 6 | font-weight: $weight; 7 | font-style: $style; 8 | 9 | @if $asset-pipeline == true { 10 | src: font-url('#{$file-path}.eot'); 11 | src: font-url('#{$file-path}.eot?#iefix') format('embedded-opentype'), 12 | font-url('#{$file-path}.woff') format('woff'), 13 | font-url('#{$file-path}.ttf') format('truetype'), 14 | font-url('#{$file-path}.svg##{$font-family}') format('svg'); 15 | } @else { 16 | src: url('#{$file-path}.eot'); 17 | src: url('#{$file-path}.eot?#iefix') format('embedded-opentype'), 18 | url('#{$file-path}.woff') format('woff'), 19 | url('#{$file-path}.ttf') format('truetype'), 20 | url('#{$file-path}.svg##{$font-family}') format('svg'); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_modular-scale.scss: -------------------------------------------------------------------------------- 1 | @function modular-scale($value, $increment, $ratio) { 2 | @if $increment > 0 { 3 | @for $i from 1 through $increment { 4 | $value: ($value * $ratio); 5 | } 6 | } 7 | 8 | @if $increment < 0 { 9 | $increment: abs($increment); 10 | @for $i from 1 through $increment { 11 | $value: ($value / $ratio); 12 | } 13 | } 14 | 15 | @return $value; 16 | } 17 | 18 | // div { 19 | // Increment Up GR with positive value 20 | // font-size: modular-scale(14px, 1, 1.618); // returns: 22.652px 21 | // 22 | // Increment Down GR with negative value 23 | // font-size: modular-scale(14px, -1, 1.618); // returns: 8.653px 24 | // 25 | // Can be used with ceil(round up) or floor(round down) 26 | // font-size: floor( modular-scale(14px, 1, 1.618) ); // returns: 22px 27 | // font-size: ceil( modular-scale(14px, 1, 1.618) ); // returns: 23px 28 | // } 29 | // 30 | // modularscale.com 31 | 32 | @function golden-ratio($value, $increment) { 33 | @return modular-scale($value, $increment, 1.618) 34 | } 35 | 36 | // div { 37 | // font-size: golden-ratio(14px, 1); // returns: 22.652px 38 | // } 39 | // 40 | // goldenratiocalculator.com 41 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_triangle.scss: -------------------------------------------------------------------------------- 1 | @mixin triangle ($size, $color, $direction) { 2 | height: 0; 3 | width: 0; 4 | 5 | @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { 6 | border-color: transparent; 7 | border-style: solid; 8 | border-width: $size / 2; 9 | 10 | @if $direction == up { 11 | border-bottom-color: $color; 12 | 13 | } @else if $direction == right { 14 | border-left-color: $color; 15 | 16 | } @else if $direction == down { 17 | border-top-color: $color; 18 | 19 | } @else if $direction == left { 20 | border-right-color: $color; 21 | } 22 | } 23 | 24 | @else if ($direction == up-right) or ($direction == up-left) { 25 | border-top: $size solid $color; 26 | 27 | @if $direction == up-right { 28 | border-left: $size solid transparent; 29 | 30 | } @else if $direction == up-left { 31 | border-right: $size solid transparent; 32 | } 33 | } 34 | 35 | @else if ($direction == down-right) or ($direction == down-left) { 36 | border-bottom: $size solid $color; 37 | 38 | @if $direction == down-right { 39 | border-left: $size solid transparent; 40 | 41 | } @else if $direction == down-left { 42 | border-right: $size solid transparent; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /assets/fonts/style.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'icomoon'; 3 | src:url('../fonts/icomoon.eot'); 4 | src:url('../fonts/icomoon.eot?#iefix') format('embedded-opentype'), 5 | url('../fonts/icomoon.woff') format('woff'), 6 | url('../fonts/icomoon.ttf') format('truetype'), 7 | url('../fonts/icomoon.svg#icomoon') format('svg'); 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | 12 | /* Use the following CSS code if you want to use data attributes for inserting your icons */ 13 | [data-icon]:before { 14 | font-family: 'icomoon'; 15 | content: attr(data-icon); 16 | speak: none; 17 | font-weight: normal; 18 | font-variant: normal; 19 | text-transform: none; 20 | line-height: 1; 21 | -webkit-font-smoothing: antialiased; 22 | } 23 | 24 | /* Use the following CSS code if you want to have a class per icon */ 25 | /* 26 | Instead of a list of all class selectors, 27 | you can use the generic selector below, but it's slower: 28 | [class*="icon-"] { 29 | */ 30 | .icon-settings, .icon-settings-close { 31 | font-family: 'icomoon'; 32 | speak: none; 33 | font-style: normal; 34 | font-weight: normal; 35 | font-variant: normal; 36 | text-transform: none; 37 | line-height: 1; 38 | -webkit-font-smoothing: antialiased; 39 | } 40 | .icon-settings:before { 41 | content: "\e000"; 42 | } 43 | .icon-settings-close:before { 44 | content: "\e001"; 45 | } -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_columns.scss: -------------------------------------------------------------------------------- 1 | @mixin columns($arg: auto) { 2 | // || 3 | @include prefixer(columns, $arg, webkit moz spec); 4 | } 5 | 6 | @mixin column-count($int: auto) { 7 | // auto || integer 8 | @include prefixer(column-count, $int, webkit moz spec); 9 | } 10 | 11 | @mixin column-gap($length: normal) { 12 | // normal || length 13 | @include prefixer(column-gap, $length, webkit moz spec); 14 | } 15 | 16 | @mixin column-fill($arg: auto) { 17 | // auto || length 18 | @include prefixer(columns-fill, $arg, webkit moz spec); 19 | } 20 | 21 | @mixin column-rule($arg) { 22 | // || || 23 | @include prefixer(column-rule, $arg, webkit moz spec); 24 | } 25 | 26 | @mixin column-rule-color($color) { 27 | @include prefixer(column-rule-color, $color, webkit moz spec); 28 | } 29 | 30 | @mixin column-rule-style($style: none) { 31 | // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid 32 | @include prefixer(column-rule-style, $style, webkit moz spec); 33 | } 34 | 35 | @mixin column-rule-width ($width: none) { 36 | @include prefixer(column-rule-width, $width, webkit moz spec); 37 | } 38 | 39 | @mixin column-span($arg: none) { 40 | // none || all 41 | @include prefixer(column-span, $arg, webkit moz spec); 42 | } 43 | 44 | @mixin column-width($length: auto) { 45 | // auto || length 46 | @include prefixer(column-width, $length, webkit moz spec); 47 | } 48 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_prefixer.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Example: @include prefixer(border-radius, $radii, webkit ms spec); 3 | //************************************************************************// 4 | $prefix-for-webkit: true !default; 5 | $prefix-for-mozilla: true !default; 6 | $prefix-for-microsoft: true !default; 7 | $prefix-for-opera: true !default; 8 | $prefix-for-spec: true !default; // required for keyframe mixin 9 | 10 | @mixin prefixer ($property, $value, $prefixes) { 11 | @each $prefix in $prefixes { 12 | 13 | @if $prefix == webkit and $prefix-for-webkit == true { 14 | -webkit-#{$property}: $value; 15 | } 16 | @else if $prefix == moz and $prefix-for-mozilla == true { 17 | -moz-#{$property}: $value; 18 | } 19 | @else if $prefix == ms and $prefix-for-microsoft == true { 20 | -ms-#{$property}: $value; 21 | } 22 | @else if $prefix == o and $prefix-for-opera == true { 23 | -o-#{$property}: $value; 24 | } 25 | @else if $prefix == spec and $prefix-for-spec == true { 26 | #{$property}: $value; 27 | } 28 | @else { 29 | @warn "Unrecognized prefix: #{$prefix}"; 30 | } 31 | } 32 | } 33 | 34 | @mixin disable-prefix-for-all() { 35 | $prefix-for-webkit: false; 36 | $prefix-for-mozilla: false; 37 | $prefix-for-microsoft: false; 38 | $prefix-for-opera: false; 39 | $prefix-for-spec: false; 40 | } 41 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_flex-box.scss: -------------------------------------------------------------------------------- 1 | // CSS3 Flexible Box Model and property defaults 2 | 3 | // Custom shorthand notation for flexbox 4 | @mixin box($orient: inline-axis, $pack: start, $align: stretch) { 5 | @include display-box; 6 | @include box-orient($orient); 7 | @include box-pack($pack); 8 | @include box-align($align); 9 | } 10 | 11 | @mixin display-box { 12 | display: -webkit-box; 13 | display: -moz-box; 14 | display: box; 15 | } 16 | 17 | @mixin box-orient($orient: inline-axis) { 18 | // horizontal|vertical|inline-axis|block-axis|inherit 19 | @include prefixer(box-orient, $orient, webkit moz spec); 20 | } 21 | 22 | @mixin box-pack($pack: start) { 23 | // start|end|center|justify 24 | @include prefixer(box-pack, $pack, webkit moz spec); 25 | } 26 | 27 | @mixin box-align($align: stretch) { 28 | // start|end|center|baseline|stretch 29 | @include prefixer(box-align, $align, webkit moz spec); 30 | } 31 | 32 | @mixin box-direction($direction: normal) { 33 | // normal|reverse|inherit 34 | @include prefixer(box-direction, $direction, webkit moz spec); 35 | } 36 | 37 | @mixin box-lines($lines: single) { 38 | // single|multiple 39 | @include prefixer(box-lines, $lines, webkit moz spec); 40 | } 41 | 42 | @mixin box-ordinal-group($int: 1) { 43 | @include prefixer(box-ordinal-group, $int, webkit moz spec); 44 | } 45 | 46 | @mixin box-flex($value: 0.0) { 47 | @include prefixer(box-flex, $value, webkit moz spec); 48 | } 49 | 50 | @mixin box-flex-group($int: 1) { 51 | @include prefixer(box-flex-group, $int, webkit moz spec); 52 | } 53 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_transition.scss: -------------------------------------------------------------------------------- 1 | // Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. 2 | // Example: @include transition (all, 2.0s, ease-in-out); 3 | // @include transition ((opacity, width), (1.0s, 2.0s), ease-in, (0, 2s)); 4 | // @include transition ($property:(opacity, width), $delay: (1.5s, 2.5s)); 5 | 6 | @mixin transition ($properties...) { 7 | @if length($properties) >= 1 { 8 | @include prefixer(transition, $properties, webkit moz ms o spec); 9 | } 10 | 11 | @else { 12 | $properties: all 0.15s ease-out 0; 13 | @include prefixer(transition, $properties, webkit moz ms o spec); 14 | } 15 | } 16 | 17 | @mixin transition-property ($properties...) { 18 | -webkit-transition-property: transition-property-names($properties, 'webkit'); 19 | -moz-transition-property: transition-property-names($properties, 'moz'); 20 | -ms-transition-property: transition-property-names($properties, 'ms'); 21 | -o-transition-property: transition-property-names($properties, 'o'); 22 | transition-property: transition-property-names($properties, false); 23 | } 24 | 25 | @mixin transition-duration ($times...) { 26 | @include prefixer(transition-duration, $times, webkit moz ms o spec); 27 | } 28 | 29 | @mixin transition-timing-function ($motions...) { 30 | // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() 31 | @include prefixer(transition-timing-function, $motions, webkit moz ms o spec); 32 | } 33 | 34 | @mixin transition-delay ($times...) { 35 | @include prefixer(transition-delay, $times, webkit moz ms o spec); 36 | } 37 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_deprecated-webkit-gradient.scss: -------------------------------------------------------------------------------- 1 | // Render Deprecated Webkit Gradient - Linear || Radial 2 | //************************************************************************// 3 | @function deprecated-webkit-gradient($type, 4 | $deprecated-pos1, $deprecated-pos2, 5 | $full, 6 | $deprecated-radius1: false, $deprecated-radius2: false) { 7 | $gradient-list: (); 8 | $gradient: false; 9 | $full-length: length($full); 10 | $percentage: false; 11 | $gradient-type: $type; 12 | 13 | @for $i from 1 through $full-length { 14 | $gradient: nth($full, $i); 15 | 16 | @if length($gradient) == 2 { 17 | $color-stop: color-stop(nth($gradient, 2), nth($gradient, 1)); 18 | $gradient-list: join($gradient-list, $color-stop, comma); 19 | } 20 | 21 | @else if $gradient != null { 22 | @if $i == $full-length { 23 | $percentage: 100%; 24 | } 25 | 26 | @else { 27 | $percentage: ($i - 1) * (100 / ($full-length - 1)) + "%"; 28 | } 29 | 30 | $color-stop: color-stop(unquote($percentage), $gradient); 31 | $gradient-list: join($gradient-list, $color-stop, comma); 32 | } 33 | } 34 | 35 | @if $type == radial { 36 | $gradient: -webkit-gradient(radial, $deprecated-pos1, $deprecated-radius1, $deprecated-pos2, $deprecated-radius2, $gradient-list); 37 | } 38 | 39 | @else if $type == linear { 40 | $gradient: -webkit-gradient(linear, $deprecated-pos1, $deprecated-pos2, $gradient-list); 41 | } 42 | 43 | @return $gradient; 44 | } 45 | -------------------------------------------------------------------------------- /assets/css/bourbon/_bourbon.scss: -------------------------------------------------------------------------------- 1 | // Custom Functions 2 | @import "functions/compact"; 3 | @import "functions/deprecated-webkit-gradient"; 4 | @import "functions/flex-grid"; 5 | @import "functions/grid-width"; 6 | @import "functions/linear-gradient"; 7 | @import "functions/modular-scale"; 8 | @import "functions/px-to-em"; 9 | @import "functions/radial-gradient"; 10 | @import "functions/render-gradients"; 11 | @import "functions/tint-shade"; 12 | @import "functions/transition-property-name"; 13 | 14 | // CSS3 Mixins 15 | @import "css3/animation"; 16 | @import "css3/appearance"; 17 | @import "css3/background"; 18 | @import "css3/background-image"; 19 | @import "css3/background-size"; 20 | @import "css3/border-image"; 21 | @import "css3/border-radius"; 22 | @import "css3/box-sizing"; 23 | @import "css3/columns"; 24 | @import "css3/flex-box"; 25 | @import "css3/font-face"; 26 | @import "css3/hidpi-media-query"; 27 | @import "css3/image-rendering"; 28 | @import "css3/inline-block"; 29 | @import "css3/keyframes"; 30 | @import "css3/linear-gradient"; 31 | @import "css3/perspective"; 32 | @import "css3/radial-gradient"; 33 | @import "css3/transform"; 34 | @import "css3/transition"; 35 | @import "css3/user-select"; 36 | @import "css3/placeholder"; 37 | 38 | // Addons & other mixins 39 | @import "addons/button"; 40 | @import "addons/clearfix"; 41 | @import "addons/font-family"; 42 | @import "addons/hide-text"; 43 | @import "addons/html5-input-types"; 44 | @import "addons/position"; 45 | @import "addons/prefixer"; 46 | @import "addons/retina-image"; 47 | @import "addons/size"; 48 | @import "addons/timing-functions"; 49 | @import "addons/triangle"; 50 | 51 | // Soon to be deprecated Mixins 52 | @import "bourbon-deprecated-upcoming"; 53 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_keyframes.scss: -------------------------------------------------------------------------------- 1 | // Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content 2 | @mixin keyframes($name) { 3 | $original-prefix-for-webkit: $prefix-for-webkit; 4 | $original-prefix-for-mozilla: $prefix-for-mozilla; 5 | $original-prefix-for-microsoft: $prefix-for-microsoft; 6 | $original-prefix-for-opera: $prefix-for-opera; 7 | $original-prefix-for-spec: $prefix-for-spec; 8 | 9 | @if $original-prefix-for-webkit { 10 | @include disable-prefix-for-all(); 11 | $prefix-for-webkit: true; 12 | @-webkit-keyframes #{$name} { 13 | @content; 14 | } 15 | } 16 | @if $original-prefix-for-mozilla { 17 | @include disable-prefix-for-all(); 18 | $prefix-for-mozilla: true; 19 | @-moz-keyframes #{$name} { 20 | @content; 21 | } 22 | } 23 | @if $original-prefix-for-microsoft { 24 | @include disable-prefix-for-all(); 25 | $prefix-for-microsoft: true; 26 | @-ms-keyframes #{$name} { 27 | @content; 28 | } 29 | } 30 | @if $original-prefix-for-opera { 31 | @include disable-prefix-for-all(); 32 | $prefix-for-opera: true; 33 | @-o-keyframes #{$name} { 34 | @content; 35 | } 36 | } 37 | @if $original-prefix-for-spec { 38 | $prefix-for-spec: true !default; 39 | @include disable-prefix-for-all(); 40 | $prefix-for-spec: true; 41 | @keyframes #{$name} { 42 | @content; 43 | } 44 | } 45 | 46 | $prefix-for-webkit: $original-prefix-for-webkit; 47 | $prefix-for-mozilla: $original-prefix-for-mozilla; 48 | $prefix-for-microsoft: $original-prefix-for-microsoft; 49 | $prefix-for-opera: $original-prefix-for-opera; 50 | $prefix-for-spec: $original-prefix-for-spec; 51 | } 52 | -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_flex-grid.scss: -------------------------------------------------------------------------------- 1 | // Flexible grid 2 | @function flex-grid($columns, $container-columns: $fg-max-columns) { 3 | $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; 4 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 5 | @return percentage($width / $container-width); 6 | } 7 | 8 | // Flexible gutter 9 | @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { 10 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; 11 | @return percentage($gutter / $container-width); 12 | } 13 | 14 | // The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function. 15 | // This function takes the fluid grid equation (target / context = result) and uses columns to help define each. 16 | // 17 | // The calculation presumes that your column structure will be missing the last gutter: 18 | // 19 | // -- column -- gutter -- column -- gutter -- column 20 | // 21 | // $fg-column: 60px; // Column Width 22 | // $fg-gutter: 25px; // Gutter Width 23 | // $fg-max-columns: 12; // Total Columns For Main Container 24 | // 25 | // div { 26 | // width: flex-grid(4); // returns (315px / 995px) = 31.65829%; 27 | // margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%; 28 | // 29 | // p { 30 | // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; 31 | // float: left; 32 | // margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%; 33 | // } 34 | // 35 | // blockquote { 36 | // float: left; 37 | // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; 38 | // } 39 | // } -------------------------------------------------------------------------------- /assets/css/bourbon/functions/_radial-gradient.scss: -------------------------------------------------------------------------------- 1 | // This function is required and used by the background-image mixin. 2 | @function radial-gradient($G1, $G2, 3 | $G3: false, $G4: false, 4 | $G5: false, $G6: false, 5 | $G7: false, $G8: false, 6 | $G9: false, $G10: false, 7 | $pos: 50% 50%, 8 | $shape-size: ellipse cover) { 9 | 10 | @each $value in $G1, $G2 { 11 | $first-val: nth($value, 1); 12 | $pos-type: type-of($first-val); 13 | 14 | @if ($pos-type != color) or ($first-val != "transparent") { 15 | @if ($pos-type == number) 16 | or ($first-val == "center") 17 | or ($first-val == "top") 18 | or ($first-val == "right") 19 | or ($first-val == "bottom") 20 | or ($first-val == "left") { 21 | 22 | $pos: $value; 23 | 24 | @if $pos == $G1 { 25 | $G1: false; 26 | } 27 | } 28 | 29 | @else if 30 | ($first-val == "ellipse") 31 | or ($first-val == "circle") 32 | or ($first-val == "closest-side") 33 | or ($first-val == "closest-corner") 34 | or ($first-val == "farthest-side") 35 | or ($first-val == "farthest-corner") 36 | or ($first-val == "contain") 37 | or ($first-val == "cover") { 38 | 39 | $shape-size: $value; 40 | 41 | @if $value == $G1 { 42 | $G1: false; 43 | } 44 | 45 | @else if $value == $G2 { 46 | $G2: false; 47 | } 48 | } 49 | } 50 | } 51 | 52 | $type: radial; 53 | $gradient: compact($pos, $shape-size, $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10); 54 | $type-gradient: append($type, $gradient, comma); 55 | 56 | @return $type-gradient; 57 | } 58 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_animation.scss: -------------------------------------------------------------------------------- 1 | // http://www.w3.org/TR/css3-animations/#the-animation-name-property- 2 | // Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. 3 | 4 | // Official animation shorthand property. 5 | @mixin animation ($animations...) { 6 | @include prefixer(animation, $animations, webkit moz spec); 7 | } 8 | 9 | // Individual Animation Properties 10 | @mixin animation-name ($names...) { 11 | @include prefixer(animation-name, $names, webkit moz spec); 12 | } 13 | 14 | 15 | @mixin animation-duration ($times...) { 16 | @include prefixer(animation-duration, $times, webkit moz spec); 17 | } 18 | 19 | 20 | @mixin animation-timing-function ($motions...) { 21 | // ease | linear | ease-in | ease-out | ease-in-out 22 | @include prefixer(animation-timing-function, $motions, webkit moz spec); 23 | } 24 | 25 | 26 | @mixin animation-iteration-count ($values...) { 27 | // infinite | 28 | @include prefixer(animation-iteration-count, $values, webkit moz spec); 29 | } 30 | 31 | 32 | @mixin animation-direction ($directions...) { 33 | // normal | alternate 34 | @include prefixer(animation-direction, $directions, webkit moz spec); 35 | } 36 | 37 | 38 | @mixin animation-play-state ($states...) { 39 | // running | paused 40 | @include prefixer(animation-play-state, $states, webkit moz spec); 41 | } 42 | 43 | 44 | @mixin animation-delay ($times...) { 45 | @include prefixer(animation-delay, $times, webkit moz spec); 46 | } 47 | 48 | 49 | @mixin animation-fill-mode ($modes...) { 50 | // none | forwards | backwards | both 51 | @include prefixer(animation-fill-mode, $modes, webkit moz spec); 52 | } 53 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_timing-functions.scss: -------------------------------------------------------------------------------- 1 | // CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) 2 | // Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html 3 | 4 | // EASE IN 5 | $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); 6 | $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); 7 | $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); 8 | $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); 9 | $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); 10 | $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); 11 | $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); 12 | $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); 13 | 14 | // EASE OUT 15 | $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); 16 | $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); 17 | $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); 18 | $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); 19 | $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); 20 | $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); 21 | $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); 22 | $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); 23 | 24 | // EASE IN OUT 25 | $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); 26 | $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); 27 | $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); 28 | $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); 29 | $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); 30 | $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); 31 | $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); 32 | $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); 33 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_background-image.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Background-image property for adding multiple background images with 3 | // gradients, or for stringing multiple gradients together. 4 | //************************************************************************// 5 | 6 | @mixin background-image($images...) { 7 | background-image: add-prefix($images, webkit); 8 | background-image: add-prefix($images, moz); 9 | background-image: add-prefix($images, ms); 10 | background-image: add-prefix($images, o); 11 | background-image: add-prefix($images); 12 | } 13 | 14 | 15 | @function add-prefix($images, $vendor: false) { 16 | $images-prefixed: (); 17 | 18 | @for $i from 1 through length($images) { 19 | $type: type-of(nth($images, $i)); // Get type of variable - List or String 20 | 21 | // If variable is a list - Gradient 22 | @if $type == list { 23 | $gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial) 24 | $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue) 25 | 26 | $gradient: render-gradients($gradient-args, $gradient-type, $vendor); 27 | $images-prefixed: append($images-prefixed, $gradient, comma); 28 | } 29 | 30 | // If variable is a string - Image 31 | @else if $type == string { 32 | $images-prefixed: join($images-prefixed, nth($images, $i), comma); 33 | } 34 | } 35 | @return $images-prefixed; 36 | } 37 | 38 | 39 | //Examples: 40 | //@include background-image(linear-gradient(top, orange, red)); 41 | //@include background-image(radial-gradient(50% 50%, cover circle, orange, red)); 42 | //@include background-image(url("/images/a.png"), linear-gradient(orange, red)); 43 | //@include background-image(url("image.png"), linear-gradient(orange, red), url("image.png")); 44 | //@include background-image(linear-gradient(hsla(0, 100%, 100%, 0.25) 0%, hsla(0, 100%, 100%, 0.08) 50%, transparent 50%), linear-gradient(orange, red)); 45 | -------------------------------------------------------------------------------- /assets/js/global-ob.min.js: -------------------------------------------------------------------------------- 1 | var _0x6856=["keyBoard","click","id","attr","showing","addClass","removeClass","#keyboard","#codebox","siblings","active","on","menu a","loadingStuff","keyCodeKeyboardCodes","Press","mousedown","data-key","data-lmth","data-uni","which","#codebox input","charcode","hasClass","val","unicode","entities","ascii","key","Depress","mouseup","keyCombos","reload",".reload","menuOpener","close","toggleClass",".wrapper","inactive","aside",".settings","ready"];jQuery(document)[_0x6856[41]](function(e){e[_0x6856[0]]=function(){e(_0x6856[12])[_0x6856[11]](_0x6856[1],function(t){var n=e(this)[_0x6856[3]](_0x6856[2]);e(_0x6856[7])[_0x6856[6]]()[_0x6856[5]](n)[_0x6856[5]](_0x6856[4]);e(_0x6856[8])[_0x6856[6]]()[_0x6856[5]](n);e(this)[_0x6856[5]](_0x6856[10])[_0x6856[9]]()[_0x6856[6]]()});return!1};e[_0x6856[13]]=function(){setTimeout(function(){e(_0x6856[7])[_0x6856[5]](_0x6856[4])},450)};e[_0x6856[14]]=function(){e[_0x6856[15]]=function(){e(_0x6856[28])[_0x6856[11]](_0x6856[16],function(t){e(_0x6856[8])[_0x6856[5]](_0x6856[10]);var n=e(this)[_0x6856[3]](_0x6856[17]),r=e(this)[_0x6856[3]](_0x6856[18]),i=e(this)[_0x6856[3]](_0x6856[19]),s=t[_0x6856[20]];e(_0x6856[21])[_0x6856[5]](_0x6856[10]);e(_0x6856[7])[_0x6856[23]](_0x6856[22])?e(_0x6856[21])[_0x6856[24]](n):e(_0x6856[7])[_0x6856[23]](_0x6856[25])?e(_0x6856[21])[_0x6856[24]](i):e(_0x6856[7])[_0x6856[23]](_0x6856[26])?e(_0x6856[21])[_0x6856[24]](r):e(_0x6856[7])[_0x6856[23]](_0x6856[27])&&e(_0x6856[21])[_0x6856[24]](r);e(this)[_0x6856[5]](_0x6856[10])})};e[_0x6856[29]]=function(){e(_0x6856[28])[_0x6856[11]](_0x6856[30],function(t){e(_0x6856[8])[_0x6856[6]](_0x6856[10]);var n=t[_0x6856[20]];e(_0x6856[21])[_0x6856[6]](_0x6856[10]);e(this)[_0x6856[6]](_0x6856[10])})};e.Press();e.Depress()};e[_0x6856[31]]=function(){e(_0x6856[33])[_0x6856[11]](_0x6856[1],function(){location[_0x6856[32]]()})};e[_0x6856[34]]=function(){e(_0x6856[40])[_0x6856[11]](_0x6856[1],function(){e(this)[_0x6856[36]](_0x6856[35]);e(_0x6856[37])[_0x6856[36]](_0x6856[10]);e(_0x6856[39])[_0x6856[36]](_0x6856[38])})};e[_0x6856[0]]();e[_0x6856[13]]();e[_0x6856[14]]();e[_0x6856[34]]()}); -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_linear-gradient.scss: -------------------------------------------------------------------------------- 1 | @mixin linear-gradient($pos, $G1, $G2: false, 2 | $G3: false, $G4: false, 3 | $G5: false, $G6: false, 4 | $G7: false, $G8: false, 5 | $G9: false, $G10: false, 6 | $deprecated-pos1: left top, 7 | $deprecated-pos2: left bottom, 8 | $fallback: false) { 9 | // Detect what type of value exists in $pos 10 | $pos-type: type-of(nth($pos, 1)); 11 | 12 | // If $pos is missing from mixin, reassign vars and add default position 13 | @if ($pos-type == color) or (nth($pos, 1) == "transparent") { 14 | $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5; 15 | $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos; 16 | $pos: top; // Default position 17 | } 18 | 19 | $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10); 20 | 21 | // Set $G1 as the default fallback color 22 | $fallback-color: nth($G1, 1); 23 | 24 | // If $fallback is a color use that color as the fallback color 25 | @if (type-of($fallback) == color) or ($fallback == "transparent") { 26 | $fallback-color: $fallback; 27 | } 28 | 29 | background-color: $fallback-color; 30 | background-image: deprecated-webkit-gradient(linear, $deprecated-pos1, $deprecated-pos2, $full); // Safari <= 5.0 31 | background-image: -webkit-linear-gradient($pos, $full); // Safari 5.1+, Chrome 32 | background-image: -moz-linear-gradient($pos, $full); 33 | background-image: -ms-linear-gradient($pos, $full); 34 | background-image: -o-linear-gradient($pos, $full); 35 | background-image: unquote("linear-gradient(#{$pos}, #{$full})"); 36 | } 37 | 38 | 39 | // Usage: Gradient position is optional, default is top. Position can be a degree. Color stops are optional as well. 40 | // @include linear-gradient(#1e5799, #2989d8); 41 | // @include linear-gradient(#1e5799, #2989d8, $fallback:#2989d8); 42 | // @include linear-gradient(top, #1e5799 0%, #2989d8 50%); 43 | // @include linear-gradient(50deg, rgba(10, 10, 10, 0.5) 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%); 44 | -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 28 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_html5-input-types.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Generate a variable ($all-text-inputs) with a list of all html5 3 | // input types that have a text-based input, excluding textarea. 4 | // http://diveintohtml5.org/forms.html 5 | //************************************************************************// 6 | $inputs-list: 'input[type="email"]', 7 | 'input[type="number"]', 8 | 'input[type="password"]', 9 | 'input[type="search"]', 10 | 'input[type="tel"]', 11 | 'input[type="text"]', 12 | 'input[type="url"]', 13 | 14 | // Webkit & Gecko may change the display of these in the future 15 | 'input[type="color"]', 16 | 'input[type="date"]', 17 | 'input[type="datetime"]', 18 | 'input[type="datetime-local"]', 19 | 'input[type="month"]', 20 | 'input[type="time"]', 21 | 'input[type="week"]'; 22 | 23 | $unquoted-inputs-list: (); 24 | @each $input-type in $inputs-list { 25 | $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma); 26 | } 27 | 28 | $all-text-inputs: $unquoted-inputs-list; 29 | 30 | 31 | // Hover Pseudo-class 32 | //************************************************************************// 33 | $all-text-inputs-hover: (); 34 | @each $input-type in $unquoted-inputs-list { 35 | $input-type-hover: $input-type + ":hover"; 36 | $all-text-inputs-hover: append($all-text-inputs-hover, $input-type-hover, comma); 37 | } 38 | 39 | // Focus Pseudo-class 40 | //************************************************************************// 41 | $all-text-inputs-focus: (); 42 | @each $input-type in $unquoted-inputs-list { 43 | $input-type-focus: $input-type + ":focus"; 44 | $all-text-inputs-focus: append($all-text-inputs-focus, $input-type-focus, comma); 45 | } 46 | 47 | // You must use interpolation on the variable: 48 | // #{$all-text-inputs} 49 | // #{$all-text-inputs-hover} 50 | // #{$all-text-inputs-focus} 51 | 52 | // Example 53 | //************************************************************************// 54 | // #{$all-text-inputs}, textarea { 55 | // border: 1px solid red; 56 | // } 57 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_border-image.scss: -------------------------------------------------------------------------------- 1 | @mixin border-image($images) { 2 | -webkit-border-image: border-add-prefix($images, webkit); 3 | -moz-border-image: border-add-prefix($images, moz); 4 | -o-border-image: border-add-prefix($images, o); 5 | border-image: border-add-prefix($images); 6 | } 7 | 8 | @function border-add-prefix($images, $vendor: false) { 9 | $border-image: (); 10 | $images-type: type-of(nth($images, 1)); 11 | $first-var: nth(nth($images, 1), 1); // Get type of Gradient (Linear || radial) 12 | 13 | // If input is a gradient 14 | @if $images-type == string { 15 | @if ($first-var == "linear") or ($first-var == "radial") { 16 | @for $i from 2 through length($images) { 17 | $gradient-type: nth($images, 1); // Get type of gradient (linear || radial) 18 | $gradient-args: nth($images, $i); // Get actual gradient (red, blue) 19 | $border-image: render-gradients($gradient-args, $gradient-type, $vendor); 20 | } 21 | } 22 | 23 | // If input is a URL 24 | @else { 25 | $border-image: $images; 26 | } 27 | } 28 | 29 | // If input is gradient or url + additional args 30 | @else if $images-type == list { 31 | @for $i from 1 through length($images) { 32 | $type: type-of(nth($images, $i)); // Get type of variable - List or String 33 | 34 | // If variable is a list - Gradient 35 | @if $type == list { 36 | $gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial) 37 | $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue) 38 | $border-image: render-gradients($gradient-args, $gradient-type, $vendor); 39 | } 40 | 41 | // If variable is a string - Image or number 42 | @else if ($type == string) or ($type == number) { 43 | $border-image: append($border-image, nth($images, $i)); 44 | } 45 | } 46 | } 47 | @return $border-image; 48 | } 49 | 50 | //Examples: 51 | // @include border-image(url("image.png")); 52 | // @include border-image(url("image.png") 20 stretch); 53 | // @include border-image(linear-gradient(45deg, orange, yellow)); 54 | // @include border-image(linear-gradient(45deg, orange, yellow) stretch); 55 | // @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); 56 | // @include border-image(radial-gradient(top, cover, orange, yellow, orange)); 57 | -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_radial-gradient.scss: -------------------------------------------------------------------------------- 1 | // Requires Sass 3.1+ 2 | @mixin radial-gradient($G1, $G2, 3 | $G3: false, $G4: false, 4 | $G5: false, $G6: false, 5 | $G7: false, $G8: false, 6 | $G9: false, $G10: false, 7 | $pos: 50% 50%, 8 | $shape-size: ellipse cover, 9 | $deprecated-pos1: center center, 10 | $deprecated-pos2: center center, 11 | $deprecated-radius1: 0, 12 | $deprecated-radius2: 460, 13 | $fallback: false) { 14 | 15 | @each $value in $G1, $G2 { 16 | $first-val: nth($value, 1); 17 | $pos-type: type-of($first-val); 18 | 19 | @if ($pos-type != color) or ($first-val != "transparent") { 20 | @if ($pos-type == number) 21 | or ($first-val == "center") 22 | or ($first-val == "top") 23 | or ($first-val == "right") 24 | or ($first-val == "bottom") 25 | or ($first-val == "left") { 26 | 27 | $pos: $value; 28 | 29 | @if $pos == $G1 { 30 | $G1: false; 31 | } 32 | } 33 | 34 | @else if 35 | ($first-val == "ellipse") 36 | or ($first-val == "circle") 37 | or ($first-val == "closest-side") 38 | or ($first-val == "closest-corner") 39 | or ($first-val == "farthest-side") 40 | or ($first-val == "farthest-corner") 41 | or ($first-val == "contain") 42 | or ($first-val == "cover") { 43 | 44 | $shape-size: $value; 45 | 46 | @if $value == $G1 { 47 | $G1: false; 48 | } 49 | 50 | @else if $value == $G2 { 51 | $G2: false; 52 | } 53 | } 54 | } 55 | } 56 | 57 | $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10); 58 | 59 | // Set $G1 as the default fallback color 60 | $first-color: nth($full, 1); 61 | $fallback-color: nth($first-color, 1); 62 | 63 | @if (type-of($fallback) == color) or ($fallback == "transparent") { 64 | $fallback-color: $fallback; 65 | } 66 | 67 | background-color: $fallback-color; 68 | background-image: deprecated-webkit-gradient(radial, $deprecated-pos1, $deprecated-pos2, $full, $deprecated-radius1, $deprecated-radius2); // Safari <= 5.0 69 | background-image: -webkit-radial-gradient($pos, $shape-size, $full); 70 | background-image: -moz-radial-gradient($pos, $shape-size, $full); 71 | background-image: -ms-radial-gradient($pos, $shape-size, $full); 72 | background-image: -o-radial-gradient($pos, $shape-size, $full); 73 | background-image: unquote("radial-gradient(#{$pos}, #{$shape-size}, #{$full})"); 74 | } 75 | 76 | // Usage: Gradient position and shape-size are required. Color stops are optional. 77 | // @include radial-gradient(50% 50%, circle cover, #1e5799, #efefef); 78 | // @include radial-gradient(50% 50%, circle cover, #eee 10%, #1e5799 30%, #efefef); 79 | -------------------------------------------------------------------------------- /assets/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 14 | 16 | 21 | 24 | 29 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /assets/images/blue-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 14 | 17 | 22 | 25 | 30 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/images/gray-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 14 | 17 | 22 | 25 | 30 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/images/green-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 14 | 17 | 22 | 25 | 30 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/js/global-ob.js: -------------------------------------------------------------------------------- 1 | var _0x6856=["\x6B\x65\x79\x42\x6F\x61\x72\x64","\x63\x6C\x69\x63\x6B","\x69\x64","\x61\x74\x74\x72","\x73\x68\x6F\x77\x69\x6E\x67","\x61\x64\x64\x43\x6C\x61\x73\x73","\x72\x65\x6D\x6F\x76\x65\x43\x6C\x61\x73\x73","\x23\x6B\x65\x79\x62\x6F\x61\x72\x64","\x23\x63\x6F\x64\x65\x62\x6F\x78","\x73\x69\x62\x6C\x69\x6E\x67\x73","\x61\x63\x74\x69\x76\x65","\x6F\x6E","\x6D\x65\x6E\x75\x20\x61","\x6C\x6F\x61\x64\x69\x6E\x67\x53\x74\x75\x66\x66","\x6B\x65\x79\x43\x6F\x64\x65\x4B\x65\x79\x62\x6F\x61\x72\x64\x43\x6F\x64\x65\x73","\x50\x72\x65\x73\x73","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x64\x61\x74\x61\x2D\x6B\x65\x79","\x64\x61\x74\x61\x2D\x6C\x6D\x74\x68","\x64\x61\x74\x61\x2D\x75\x6E\x69","\x77\x68\x69\x63\x68","\x23\x63\x6F\x64\x65\x62\x6F\x78\x20\x69\x6E\x70\x75\x74","\x63\x68\x61\x72\x63\x6F\x64\x65","\x68\x61\x73\x43\x6C\x61\x73\x73","\x76\x61\x6C","\x75\x6E\x69\x63\x6F\x64\x65","\x65\x6E\x74\x69\x74\x69\x65\x73","\x61\x73\x63\x69\x69","\x6B\x65\x79","\x44\x65\x70\x72\x65\x73\x73","\x6D\x6F\x75\x73\x65\x75\x70","\x6B\x65\x79\x43\x6F\x6D\x62\x6F\x73","\x72\x65\x6C\x6F\x61\x64","\x2E\x72\x65\x6C\x6F\x61\x64","\x6D\x65\x6E\x75\x4F\x70\x65\x6E\x65\x72","\x63\x6C\x6F\x73\x65","\x74\x6F\x67\x67\x6C\x65\x43\x6C\x61\x73\x73","\x2E\x77\x72\x61\x70\x70\x65\x72","\x69\x6E\x61\x63\x74\x69\x76\x65","\x61\x73\x69\x64\x65","\x2E\x73\x65\x74\x74\x69\x6E\x67\x73","\x72\x65\x61\x64\x79"];jQuery(document)[_0x6856[41]](function (_0x12f4x1){_0x12f4x1[_0x6856[0]]=function (){_0x12f4x1(_0x6856[12])[_0x6856[11]](_0x6856[1],function (_0x12f4x2){var _0x12f4x3=_0x12f4x1(this)[_0x6856[3]](_0x6856[2]);_0x12f4x1(_0x6856[7])[_0x6856[6]]()[_0x6856[5]](_0x12f4x3)[_0x6856[5]](_0x6856[4]);_0x12f4x1(_0x6856[8])[_0x6856[6]]()[_0x6856[5]](_0x12f4x3);_0x12f4x1(this)[_0x6856[5]](_0x6856[10])[_0x6856[9]]()[_0x6856[6]]();} );return false;} ;_0x12f4x1[_0x6856[13]]=function (){setTimeout(function (){_0x12f4x1(_0x6856[7])[_0x6856[5]](_0x6856[4]);} ,450);} ;_0x12f4x1[_0x6856[14]]=function (){_0x12f4x1[_0x6856[15]]=function (){_0x12f4x1(_0x6856[28])[_0x6856[11]](_0x6856[16],function (_0x12f4x2){_0x12f4x1(_0x6856[8])[_0x6856[5]](_0x6856[10]);var _0x12f4x4=_0x12f4x1(this)[_0x6856[3]](_0x6856[17]);var _0x12f4x5=_0x12f4x1(this)[_0x6856[3]](_0x6856[18]);var _0x12f4x6=_0x12f4x1(this)[_0x6856[3]](_0x6856[19]);var _0x12f4x7=_0x12f4x2[_0x6856[20]];_0x12f4x1(_0x6856[21])[_0x6856[5]](_0x6856[10]);if(_0x12f4x1(_0x6856[7])[_0x6856[23]](_0x6856[22])){_0x12f4x1(_0x6856[21])[_0x6856[24]](_0x12f4x4);} else {if(_0x12f4x1(_0x6856[7])[_0x6856[23]](_0x6856[25])){_0x12f4x1(_0x6856[21])[_0x6856[24]](_0x12f4x6);} else {if(_0x12f4x1(_0x6856[7])[_0x6856[23]](_0x6856[26])){_0x12f4x1(_0x6856[21])[_0x6856[24]](_0x12f4x5);} else {if(_0x12f4x1(_0x6856[7])[_0x6856[23]](_0x6856[27])){_0x12f4x1(_0x6856[21])[_0x6856[24]](_0x12f4x5);} ;} ;} ;} ;_0x12f4x1(this)[_0x6856[5]](_0x6856[10]);} );} ;_0x12f4x1[_0x6856[29]]=function (){_0x12f4x1(_0x6856[28])[_0x6856[11]](_0x6856[30],function (_0x12f4x2){_0x12f4x1(_0x6856[8])[_0x6856[6]](_0x6856[10]);var _0x12f4x8=_0x12f4x2[_0x6856[20]];_0x12f4x1(_0x6856[21])[_0x6856[6]](_0x6856[10]);_0x12f4x1(this)[_0x6856[6]](_0x6856[10]);} );} ;_0x12f4x1.Press();_0x12f4x1.Depress();} ;_0x12f4x1[_0x6856[31]]=function (){_0x12f4x1(_0x6856[33])[_0x6856[11]](_0x6856[1],function (){location[_0x6856[32]]();} );} ;_0x12f4x1[_0x6856[34]]=function (){_0x12f4x1(_0x6856[40])[_0x6856[11]](_0x6856[1],function (){_0x12f4x1(this)[_0x6856[36]](_0x6856[35]);_0x12f4x1(_0x6856[37])[_0x6856[36]](_0x6856[10]);_0x12f4x1(_0x6856[39])[_0x6856[36]](_0x6856[38]);} );} ;_0x12f4x1[_0x6856[0]]();_0x12f4x1[_0x6856[13]]();_0x12f4x1[_0x6856[14]]();_0x12f4x1[_0x6856[34]]();} ); -------------------------------------------------------------------------------- /assets/css/lighttheme.scss: -------------------------------------------------------------------------------- 1 | body.light { 2 | background: rgba(230,230,230,1); 3 | 4 | header { 5 | 6 | .theme-switcher { 7 | background: rgba(230,230,230,1); 8 | color: $dblue; 9 | 10 | a { 11 | color: $dblue; 12 | 13 | &:hover { 14 | color: $green; 15 | } 16 | } 17 | } 18 | } 19 | 20 | .wrapper { 21 | background: rgba(205,205,205,1); 22 | } 23 | 24 | .settings { 25 | background: rgba(205,205,205,1); 26 | 27 | &.close { 28 | background: rgba(205,205,205,1); 29 | } 30 | } 31 | 32 | aside { 33 | width: 145px; 34 | padding: 20px 0; 35 | background: rgba(230,230,230,1); 36 | } 37 | 38 | menu a { 39 | background: rgb(230,230,230); 40 | border-bottom: 1px solid rgb(205,205,205); 41 | border-radius: 0; 42 | color: rgba(0,0,0,.32); 43 | margin: 0; 44 | 45 | &:last-child { 46 | border-bottom: none; 47 | } 48 | 49 | &:hover { 50 | background: rgb(243,243,243); 51 | } 52 | 53 | &.active { 54 | background: rgb(205,205,205); 55 | color: $dblue; 56 | border-bottom: none; 57 | } 58 | } 59 | 60 | key { 61 | @include keyshadow; 62 | border: 2px solid rgba(255,255,255,.35); 63 | 64 | &:hover { 65 | @include lightkeyshadowhover; 66 | } 67 | 68 | &:active, 69 | &.active, 70 | &.caps.activated { 71 | top: 3px; 72 | @include lightkeyshadowactive; 73 | } 74 | 75 | &.double { 76 | color: rgba(0,0,0,.10); 77 | 78 | span { 79 | color: rgba(0,0,0,.4); 80 | } 81 | 82 | &.uppercase { 83 | color: rgba(0,0,0,.4); 84 | 85 | span { 86 | color: rgba(0,0,0,.10); 87 | } 88 | } 89 | } 90 | } 91 | 92 | row.four key.single:active, 93 | row.five key.single:active, 94 | row.four key.single.active, 95 | row.five key.single.active { 96 | top: -8px !important; 97 | } 98 | 99 | .copyright p { 100 | background: rgba(230,230,230,1); 101 | color: $dblue; 102 | } 103 | 104 | .copyright a { 105 | color: $dblue; 106 | 107 | &:hover { 108 | color: $green; 109 | } 110 | } 111 | 112 | #keyboard.unicode row.one key, 113 | #keyboard.unicode row.six key, 114 | #keyboard.unicode key.shft, 115 | #keyboard.unicode .caps, 116 | #keyboard.unicode.capslock .tab, 117 | #keyboard.unicode.capslock .return, 118 | #keyboard.unicode.capslock .delete, 119 | #keyboard.encoded key.f1, 120 | #keyboard.encoded key.f2, 121 | #keyboard.encoded key.f3, 122 | #keyboard.encoded key.f4, 123 | #keyboard.encoded key.f5, 124 | #keyboard.encoded key.f6, 125 | #keyboard.encoded key.f7, 126 | #keyboard.encoded key.f8, 127 | #keyboard.encoded key.f9, 128 | #keyboard.encoded key.f10, 129 | #keyboard.encoded key.f11, 130 | #keyboard.encoded key.f12, 131 | #keyboard.encoded key.f13, 132 | #keyboard.encoded .caps, 133 | #keyboard.encoded .shft, 134 | #keyboard.encoded .ctrl, 135 | #keyboard.encoded .opt, 136 | #keyboard.encoded .cmd { 137 | @include lightkeyshadowactive; 138 | pointer-events: none; 139 | } 140 | 141 | #keyboard.unicode row.six key.space { 142 | top: 16px; 143 | } 144 | 145 | #codebox { 146 | background: rgba(255,255,255,.75); 147 | -webkit-box-shadow: 0 0 9px rgba(0,0,0,.2); 148 | 149 | .code-inner.dark { 150 | background: none; 151 | 152 | p { 153 | color: $dblue; 154 | 155 | span { 156 | color: $green; 157 | } 158 | } 159 | } 160 | 161 | .code-inner { 162 | background: none; 163 | } 164 | } 165 | 166 | input[type=text] { 167 | color: $green; 168 | } 169 | } -------------------------------------------------------------------------------- /assets/css/mixins.scss: -------------------------------------------------------------------------------- 1 | 2 | @mixin keyshadow { 3 | background: rgba(255,255,255,.75); 4 | -webkit-box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 5 | -moz-box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 6 | box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 7 | color: rgba(0,0,0,.4); 8 | /*@include filter-gradient(#1fffff, #00ffff, vertical); // IE6-9 9 | @include background-image(linear-gradient(top, rgba(255,255,255,0.12) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 100%)); */ 10 | } 11 | 12 | @mixin keyshadowhover { 13 | background: rgba(255,255,255,.75); 14 | -webkit-box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 15 | -moz-box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 16 | box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 17 | /*@include filter-gradient(#1fffff, #00ffff, vertical); // IE6-9 18 | @include background-image(linear-gradient(top, rgba(255,255,255,0.12) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 100%)); */ 19 | } 20 | 21 | @mixin keyshadowactive { 22 | color: rgba(255,255,255,.25); 23 | background: rgba(0,0,0,.15); 24 | border: 2px solid rgba(0,0,0,.25); 25 | -webkit-box-shadow: none; 26 | -moz-box-shadow: none; 27 | box-shadow: none; 28 | } 29 | 30 | @mixin lightkeyshadowhover { 31 | background: rgba(255,255,255,1); 32 | -webkit-box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 33 | -moz-box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 34 | box-shadow: 0 3px 0 0 rgba(0,0,0,.10); 35 | /*@include filter-gradient(#1fffff, #00ffff, vertical); // IE6-9 36 | @include background-image(linear-gradient(top, rgba(255,255,255,0.12) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 100%)); */ 37 | } 38 | 39 | @mixin lightkeyshadowactive { 40 | color: rgba(0,0,0,.20); 41 | background: rgba(255,255,255,.3); 42 | border: 2px solid rgba(0,0,0,.17); 43 | -webkit-box-shadow: none; 44 | -moz-box-shadow: none; 45 | box-shadow: none; 46 | } 47 | 48 | @mixin btn { 49 | @include filter-gradient(#000000, #260000, vertical); 50 | $experimental-support-for-svg: true; 51 | @include background-image(linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.08) 100%)); 52 | -webkit-box-shadow: inset 0px 2px 0px 0px rgba(255, 255, 255, .08); 53 | box-shadow: inset 0px 2px 0px 0px rgba(255, 255, 255, .08); 54 | } 55 | 56 | @mixin btnhover { 57 | @include filter-gradient(#000000, #260000, vertical); 58 | $experimental-support-for-svg: true; 59 | @include background-image(linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.25) 100%)); 60 | -webkit-box-shadow: inset 0px 2px 0px 0px rgba(255, 255, 255, .10); 61 | box-shadow: inset 0px 2px 0px 0px rgba(255, 255, 255, .10); 62 | } 63 | 64 | @mixin btnactive { 65 | -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, .45); 66 | box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, .45); 67 | } 68 | 69 | @mixin key { 70 | @include filter-gradient(#000000, #0d0000, vertical); 71 | $experimental-support-for-svg: true; 72 | @include background-image(linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.55) 51%,rgba(0,0,0,0.05) 100%)); 73 | } 74 | 75 | @mixin twosecs { 76 | transition: all 0.2s; 77 | -moz-transition: all 0.2s; 78 | -webkit-transition: all 0.2s; 79 | } 80 | 81 | @mixin onesec { 82 | transition: all 0.05s; 83 | -moz-transition: all 0.05s; 84 | -webkit-transition: all 0.05s; 85 | } 86 | 87 | /************** Icon Fonts ***************/ 88 | 89 | $settings: "\e000"; 90 | $settings-close: "\e001"; 91 | 92 | /************** Font Fonts ***************/ 93 | 94 | $omnes: omnes-pro; 95 | $icons: "icomoon"; 96 | $brandon: brandon-grotesque; 97 | 98 | /************** Colors ***************/ 99 | 100 | $green: rgb(22,160,133); 101 | $white: rgb(255,255,255); 102 | $dblue: rgb(3,49,65); 103 | $dbluetwo: rgb(49,63,81); 104 | $purplish: rgb(21,29,38); 105 | $dpurplish: rgb(39,49,62); 106 | $gray: rgb(118,118,118); 107 | $yellow: rgb(252,205,67); 108 | 109 | -------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | <?php echo $page_title; ?> 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 |
33 | Settings 34 |

LightDark

35 |
36 | 47 |
48 | 50 | -------------------------------------------------------------------------------- /assets/js/global.min.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function(e){displayKey=function(t,n){e("key.active").removeClass("active");var r=t.attr("data-key"),i=t.attr("data-lmth"),s=t.attr("data-uni"),o=t.attr("data-unicaps"),u=t.attr("data-encode"),a=t.attr("data-encodecaps"),f=n.shiftKey?!0:!1,l=e("#keyboard").hasClass("capslock"),c=e("#keyboard").hasClass("charcode"),h=e("#keyboard").hasClass("unicode"),p=e("#keyboard").hasClass("encoded"),d=l||f?!0:!1,v=!1;c?v=r:!d&&h?v=s:p&&!d?v=u:h&&d?v=o:p&&d&&(v=a);if(v){t.addClass("active");e("#codebox input").val(v);e("#codebox").addClass("active")}f&&e("key.shft").addClass("active")};e(".code-inner.dark").hide();var t=e(".a,.b,.c,.d,.e,.f,.g,.h,.i,.j,.k,.l,.m,.n,.o,.p,.q,.r,.s,.t,.u,.v,.w,.x,.y,.z,.1,.2,.3,.4,.5,.6,.7,.8,.9,.0,.til,.hyp,.equ,.lbrack,.rbrack,.bs,.col,.apos,.comm,.great,.quest");e.loadingStuff=function(){setTimeout(function(){e("aside").animate({opacity:1})},75);setTimeout(function(){e(".wrapper").animate({opacity:1})},150);e("#keyboard").addClass("showing")};e.loadingStuff();e.bodyLoad=function(){e(document).ready(function(){if(e("aside").hasClass("inactive")){e(".wrapper").removeClass("active");e(".settings").removeClass("close")}else if(!e("aside").hasClass("inactive")){e(".wrapper").addClass("active");e(".settings").addClass("close")}});e(document).ready(function(){if(e(".cap").hasClass("capsOn")){t.addClass("uppercase");e("#keyboard").addClass("capslock");e(".caps").addClass("activated")}});e(document).on("keydown",function(n){if(n.shiftKey){t.addClass("uppercase");e("#keyboard").addClass("capslock")}});e(document).on("keyup",function(n){if(!e(".cap").hasClass("capsOn")&&!n.shiftKey){t.removeClass("uppercase");e("#keyboard").removeClass("capslock")}})};e.bodyLoad();e.keyBoard=function(){e("menu a").on("click",function(t){var n=e(this).attr("id");e("#keyboard").removeClass().addClass(n).addClass("showing");e("#codebox").removeClass().addClass(n);e(this).addClass("active").siblings().removeClass();e(".cap").hasClass("capsOn")&&e("#keyboard").addClass("capslock")});e(".cap").on("click",function(){t.toggleClass("uppercase");e(this).toggleClass("capsOn");e(".caps").toggleClass("activated");e("#keyboard").toggleClass("capslock")});return!1};e.keyBoard();e.keyCodeKeyboardCodes=function(){e.Press=function(){e("key").on("mousedown",function(t){displayKey(e(this),t)})};e.KeyPress=function(){e(document).on("keydown",function(t){var n=e("[data-key="+t.keyCode+"]");displayKey(n,t);t.preventDefault()})};e.Depress=function(){e("key").on("mouseup",function(t){e("#codebox").removeClass("active");var n=t.which;e(this).removeClass("active")})};e.KeyDepress=function(){e(document).on("keyup",function(t){var n=e("[data-key="+t.keyCode+"]");n.removeClass("active");e("#codebox").removeClass("active");var r=t.which})};e.Press();e.Depress();e.KeyPress();e.KeyDepress()};e.keyCodeKeyboardCodes();e.keyCombos=function(){e(".reload").on("click",function(){location.reload()})};e.menuOpener=function(){e(".settings").on("click",function(){e(this).toggleClass("close");e(".wrapper").toggleClass("active");e("aside").toggleClass("inactive")})};e.menuOpener();e.logoClicker=function(){e("#logo").on("mousedown",function(){e("#codebox").addClass("active");e(".code-inner").hide();e(".code-inner.dark").show()});e("#logo").on("mouseup",function(){e("#codebox").removeClass("active");e(".code-inner").show();e(".code-inner.dark").hide()})};e.logoClicker();e.cookieMonster=function(){var t="type",n="menu",r="cap",i=0/0;e("#"+e.cookie(t)).addClass("active");e("#keyboard").addClass(e.cookie(t));e("#codebox").addClass(e.cookie(t));e("menu a").on("click",function(n){n.preventDefault();e("#"+e.cookie(t)).removeClass("active");e.cookie(t,e(this).attr("id"),i);e("#"+e.cookie(t)).addClass("active")});e(".settings").on("click",function(t){t.preventDefault();e.cookie(n,e("aside").attr("class"),i)});e(".cap").on("click",function(t){t.preventDefault();e.cookie(r,e(this).attr("class"),i)});e("aside").addClass(e.cookie(n));e(".cap").addClass(e.cookie(r))};e.cookieMonster();e(".light").on("click",function(){e("body").addClass("light")});e(".dark").on("click",function(){e("body").removeClass("light")})}); -------------------------------------------------------------------------------- /assets/css/bourbon/css3/_background.scss: -------------------------------------------------------------------------------- 1 | //************************************************************************// 2 | // Background property for adding multiple backgrounds using shorthand 3 | // notation. 4 | //************************************************************************// 5 | 6 | @mixin background( 7 | $background-1 , $background-2: false, 8 | $background-3: false, $background-4: false, 9 | $background-5: false, $background-6: false, 10 | $background-7: false, $background-8: false, 11 | $background-9: false, $background-10: false, 12 | $fallback: false 13 | ) { 14 | $backgrounds: compact($background-1, $background-2, 15 | $background-3, $background-4, 16 | $background-5, $background-6, 17 | $background-7, $background-8, 18 | $background-9, $background-10); 19 | 20 | $fallback-color: false; 21 | @if (type-of($fallback) == color) or ($fallback == "transparent") { 22 | $fallback-color: $fallback; 23 | } 24 | @else { 25 | $fallback-color: extract-background-color($backgrounds); 26 | } 27 | 28 | @if $fallback-color { 29 | background-color: $fallback-color; 30 | } 31 | background: background-add-prefix($backgrounds, webkit); 32 | background: background-add-prefix($backgrounds, moz); 33 | background: background-add-prefix($backgrounds, ms); 34 | background: background-add-prefix($backgrounds, o); 35 | background: background-add-prefix($backgrounds); 36 | } 37 | 38 | @function extract-background-color($backgrounds) { 39 | $final-bg-layer: nth($backgrounds, length($backgrounds)); 40 | @if type-of($final-bg-layer) == list { 41 | @for $i from 1 through length($final-bg-layer) { 42 | $value: nth($final-bg-layer, $i); 43 | @if type-of($value) == color { 44 | @return $value; 45 | } 46 | } 47 | } 48 | @return false; 49 | } 50 | 51 | 52 | @function background-add-prefix($backgrounds, $vendor: false) { 53 | $backgrounds-prefixed: (); 54 | 55 | @for $i from 1 through length($backgrounds) { 56 | $shorthand: nth($backgrounds, $i); // Get member for current index 57 | $type: type-of($shorthand); // Get type of variable - List or String 58 | 59 | // If shorthand is a list 60 | @if $type == list { 61 | $first-member: nth($shorthand, 1); // Get first member of shorthand 62 | 63 | // Linear Gradient 64 | @if index(linear radial, nth($first-member, 1)) { 65 | $gradient-type: nth($first-member, 1); // linear || radial 66 | 67 | // Get actual gradient (red, blue) 68 | $gradient-args: false; 69 | $shorthand-start: false; 70 | // Linear gradient and positioning, repeat, etc. values 71 | @if type-of($first-member) == list { 72 | $gradient-args: nth($first-member, 2); 73 | $shorthand-start: 2; 74 | } 75 | // Linear gradient only 76 | @else { 77 | $gradient-args: nth($shorthand, 2); // Get actual gradient (red, blue) 78 | $shorthand-start: 3; 79 | } 80 | 81 | $gradient: render-gradients($gradient-args, $gradient-type, $vendor); 82 | @for $j from $shorthand-start through length($shorthand) { 83 | $gradient: join($gradient, nth($shorthand, $j), space); 84 | } 85 | $backgrounds-prefixed: append($backgrounds-prefixed, $gradient, comma); 86 | } 87 | 88 | // Image with additional properties 89 | @else { 90 | $backgrounds-prefixed: append($backgrounds-prefixed, $shorthand, comma); 91 | } 92 | 93 | } 94 | 95 | // If shorthand is a simple string, color or image 96 | @else if $type == string { 97 | $backgrounds-prefixed: join($backgrounds-prefixed, $shorthand, comma); 98 | } 99 | } 100 | @return $backgrounds-prefixed; 101 | } 102 | 103 | //Examples: 104 | //@include background(linear-gradient(top, orange, red)); 105 | //@include background(radial-gradient(50% 50%, cover circle, orange, red)); 106 | //@include background(url("/images/a.png") no-repeat, linear-gradient(orange, red)); 107 | //@include background(url("image.png") center center, linear-gradient(orange, red), url("image.png")); 108 | -------------------------------------------------------------------------------- /assets/fonts/icomoon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | This is a custom SVG font generated by IcoMoon. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 34 | 53 | 54 | -------------------------------------------------------------------------------- /assets/fonts/icomoon.dev.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | This is a custom SVG font generated by IcoMoon. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 34 | 53 | 54 | -------------------------------------------------------------------------------- /assets/js/jquery.zclip.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * zClip :: jQuery ZeroClipboard v1.1.1 3 | * http://steamdev.com/zclip 4 | * 5 | * Copyright 2011, SteamDev 6 | * Released under the MIT license. 7 | * http://www.opensource.org/licenses/mit-license.php 8 | * 9 | * Date: Wed Jun 01, 2011 10 | */ 11 | 12 | (function(a){a.fn.zclip=function(c){if(typeof c=="object"&&!c.length){var b=a.extend({path:"ZeroClipboard.swf",copy:null,beforeCopy:null,afterCopy:null,clickAfter:true,setHandCursor:true,setCSSEffects:true},c);return this.each(function(){var e=a(this);if(e.is(":visible")&&(typeof b.copy=="string"||a.isFunction(b.copy))){ZeroClipboard.setMoviePath(b.path);var d=new ZeroClipboard.Client();if(a.isFunction(b.copy)){e.bind("zClip_copy",b.copy)}if(a.isFunction(b.beforeCopy)){e.bind("zClip_beforeCopy",b.beforeCopy)}if(a.isFunction(b.afterCopy)){e.bind("zClip_afterCopy",b.afterCopy)}d.setHandCursor(b.setHandCursor);d.setCSSEffects(b.setCSSEffects);d.addEventListener("mouseOver",function(f){e.trigger("mouseenter")});d.addEventListener("mouseOut",function(f){e.trigger("mouseleave")});d.addEventListener("mouseDown",function(f){e.trigger("mousedown");if(!a.isFunction(b.copy)){d.setText(b.copy)}else{d.setText(e.triggerHandler("zClip_copy"))}if(a.isFunction(b.beforeCopy)){e.trigger("zClip_beforeCopy")}});d.addEventListener("complete",function(f,g){if(a.isFunction(b.afterCopy)){e.trigger("zClip_afterCopy")}else{if(g.length>500){g=g.substr(0,500)+"...\n\n("+(g.length-500)+" characters not shown)"}e.removeClass("hover");alert("Copied text to clipboard:\n\n "+g)}if(b.clickAfter){e.trigger("click")}});d.glue(e[0],e.parent()[0]);a(window).bind("load resize",function(){d.reposition()})}})}else{if(typeof c=="string"){return this.each(function(){var f=a(this);c=c.toLowerCase();var e=f.data("zclipId");var d=a("#"+e+".zclip");if(c=="remove"){d.remove();f.removeClass("active hover")}else{if(c=="hide"){d.hide();f.removeClass("active hover")}else{if(c=="show"){d.show()}}}})}}}})(jQuery);var ZeroClipboard={version:"1.0.7",clients:{},moviePath:"ZeroClipboard.swf",nextId:1,$:function(a){if(typeof(a)=="string"){a=document.getElementById(a)}if(!a.addClass){a.hide=function(){this.style.display="none"};a.show=function(){this.style.display=""};a.addClass=function(b){this.removeClass(b);this.className+=" "+b};a.removeClass=function(d){var e=this.className.split(/\s+/);var b=-1;for(var c=0;c-1){e.splice(b,1);this.className=e.join(" ")}return this};a.hasClass=function(b){return !!this.className.match(new RegExp("\\s*"+b+"\\s*"))}}return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(d,b,c){var a=this.clients[d];if(a){a.receiveEvent(b,c)}},register:function(b,a){this.clients[b]=a},getDOMObjectPosition:function(c,a){var b={left:0,top:0,width:c.width?c.width:c.offsetWidth,height:c.height?c.height:c.offsetHeight};if(c&&(c!=a)){b.left+=c.offsetLeft;b.top+=c.offsetTop}return b},Client:function(a){this.handlers={};this.id=ZeroClipboard.nextId++;this.movieId="ZeroClipboardMovie_"+this.id;ZeroClipboard.register(this.id,this);if(a){this.glue(a)}}};ZeroClipboard.Client.prototype={id:0,ready:false,movie:null,clipText:"",handCursorEnabled:true,cssEffects:true,handlers:null,glue:function(d,b,e){this.domElement=ZeroClipboard.$(d);var f=99;if(this.domElement.style.zIndex){f=parseInt(this.domElement.style.zIndex,10)+1}if(typeof(b)=="string"){b=ZeroClipboard.$(b)}else{if(typeof(b)=="undefined"){b=document.getElementsByTagName("body")[0]}}var c=ZeroClipboard.getDOMObjectPosition(this.domElement,b);this.div=document.createElement("div");this.div.className="zclip";this.div.id="zclip-"+this.movieId;$(this.domElement).data("zclipId","zclip-"+this.movieId);var a=this.div.style;a.position="absolute";a.left=""+c.left+"px";a.top=""+c.top+"px";a.width=""+c.width+"px";a.height=""+c.height+"px";a.zIndex=f;if(typeof(e)=="object"){for(addedStyle in e){a[addedStyle]=e[addedStyle]}}b.appendChild(this.div);this.div.innerHTML=this.getHTML(c.width,c.height)},getHTML:function(d,a){var c="";var b="id="+this.id+"&width="+d+"&height="+a;if(navigator.userAgent.match(/MSIE/)){var e=location.href.match(/^https/i)?"https://":"http://";c+=''}else{c+=''}return c},hide:function(){if(this.div){this.div.style.left="-2000px"}},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.domElement=null;this.div=null}},reposition:function(c){if(c){this.domElement=ZeroClipboard.$(c);if(!this.domElement){this.hide()}}if(this.domElement&&this.div){var b=ZeroClipboard.getDOMObjectPosition(this.domElement);var a=this.div.style;a.left=""+b.left+"px";a.top=""+b.top+"px"}},setText:function(a){this.clipText=a;if(this.ready){this.movie.setText(a)}},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");if(!this.handlers[a]){this.handlers[a]=[]}this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;if(this.ready){this.movie.setHandCursor(a)}},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(d,f){d=d.toString().toLowerCase().replace(/^on/,"");switch(d){case"load":this.movie=document.getElementById(this.movieId);if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){var c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=true;return}this.ready=true;try{this.movie.setText(this.clipText)}catch(h){}try{this.movie.setHandCursor(this.handCursorEnabled)}catch(h){}break;case"mouseover":if(this.domElement&&this.cssEffects){this.domElement.addClass("hover");if(this.recoverActive){this.domElement.addClass("active")}}break;case"mouseout":if(this.domElement&&this.cssEffects){this.recoverActive=false;if(this.domElement.hasClass("active")){this.domElement.removeClass("active");this.recoverActive=true}this.domElement.removeClass("hover")}break;case"mousedown":if(this.domElement&&this.cssEffects){this.domElement.addClass("active")}break;case"mouseup":if(this.domElement&&this.cssEffects){this.domElement.removeClass("active");this.recoverActive=false}break}if(this.handlers[d]){for(var b=0,a=this.handlers[d].length;b 13 | 14 |
15 |
16 | 17 | esc 18 | F1 19 | f2 20 | f3 21 | f4 22 | f5 23 | f6 24 | f7 25 | f8 26 | f9 27 | f10 28 | f11 29 | f12 30 | F13 31 |
32 |
33 | 34 | ~` 35 | !1 36 | @2 37 | #3 38 | $4 39 | %5 40 | ^6 41 | &7 42 | *8 43 | (9 44 | )0 45 | _- 46 | += 47 | Delete 48 |
49 |
50 | 51 | Tab 52 | q 53 | w 54 | e 55 | r 56 | t 57 | y 58 | u 59 | i 60 | o 61 | p 62 | {[ 63 | }] 64 | |\ 65 |
66 |
67 | 68 | Caps lock 69 | a 70 | s 71 | d 72 | f 73 | g 74 | h 75 | j 76 | k 77 | l 78 | :; 79 | "' 80 | Enter 81 | caps lock on 82 |
83 |
84 | 85 | Shift 86 | z 87 | x 88 | c 89 | v 90 | b 91 | n 92 | m 93 | <, 94 | >. 95 | ?/ 96 | Shift 97 |
98 |
99 | 100 | control 101 | option 102 | command 103 | 104 | command 105 | option 106 | control 107 |
108 |
109 |

KeyCodes

110 |
111 |
112 | 113 |
114 | 115 |

I have grown tired of searching online through tables of character codes, so I built Keycodes to help me out. Feel free to use it, that's why it's here. Check back periodically or follow me on Twitter (@jayjo) for updates and other cool stuff.

116 |
117 | 118 |
119 |
120 |
121 | 122 | -------------------------------------------------------------------------------- /assets/css/bourbon/addons/_button.scss: -------------------------------------------------------------------------------- 1 | @mixin button ($style: simple, $base-color: #4294f0) { 2 | 3 | @if type-of($style) == color { 4 | $base-color: $style; 5 | $style: simple; 6 | } 7 | 8 | // Grayscale button 9 | @if $base-color == grayscale($base-color) { 10 | @if $style == simple { 11 | @include simple($base-color, $grayscale: true); 12 | } 13 | 14 | @else if $style == shiny { 15 | @include shiny($base-color, $grayscale: true); 16 | } 17 | 18 | @else if $style == pill { 19 | @include pill($base-color, $grayscale: true); 20 | } 21 | } 22 | 23 | // Colored button 24 | @else { 25 | @if $style == simple { 26 | @include simple($base-color); 27 | } 28 | 29 | @else if $style == shiny { 30 | @include shiny($base-color); 31 | } 32 | 33 | @else if $style == pill { 34 | @include pill($base-color); 35 | } 36 | } 37 | 38 | &:disabled { 39 | opacity: 0.5; 40 | cursor: not-allowed; 41 | } 42 | } 43 | 44 | 45 | // Simple Button 46 | //************************************************************************// 47 | @mixin simple($base-color, $grayscale: false) { 48 | $color: hsl(0, 0, 100%); 49 | $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%); 50 | $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%); 51 | $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%); 52 | $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%); 53 | 54 | @if lightness($base-color) > 70% { 55 | $color: hsl(0, 0, 20%); 56 | $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); 57 | } 58 | 59 | @if $grayscale == true { 60 | $border: grayscale($border); 61 | $inset-shadow: grayscale($inset-shadow); 62 | $stop-gradient: grayscale($stop-gradient); 63 | $text-shadow: grayscale($text-shadow); 64 | } 65 | 66 | border: 1px solid $border; 67 | border-radius: 3px; 68 | box-shadow: inset 0 1px 0 0 $inset-shadow; 69 | color: $color; 70 | display: inline-block; 71 | font-size: 11px; 72 | font-weight: bold; 73 | @include linear-gradient ($base-color, $stop-gradient); 74 | padding: 7px 18px; 75 | text-decoration: none; 76 | text-shadow: 0 1px 0 $text-shadow; 77 | -webkit-background-clip: padding-box; 78 | 79 | &:hover:not(:disabled) { 80 | $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%); 81 | $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%); 82 | $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%); 83 | 84 | @if $grayscale == true { 85 | $base-color-hover: grayscale($base-color-hover); 86 | $inset-shadow-hover: grayscale($inset-shadow-hover); 87 | $stop-gradient-hover: grayscale($stop-gradient-hover); 88 | } 89 | 90 | box-shadow: inset 0 1px 0 0 $inset-shadow-hover; 91 | cursor: pointer; 92 | @include linear-gradient ($base-color-hover, $stop-gradient-hover); 93 | } 94 | 95 | &:active:not(:disabled) { 96 | $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%); 97 | $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%); 98 | 99 | @if $grayscale == true { 100 | $border-active: grayscale($border-active); 101 | $inset-shadow-active: grayscale($inset-shadow-active); 102 | } 103 | 104 | border: 1px solid $border-active; 105 | box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active, 0 1px 1px 0 #eee; 106 | } 107 | } 108 | 109 | 110 | // Shiny Button 111 | //************************************************************************// 112 | @mixin shiny($base-color, $grayscale: false) { 113 | $color: hsl(0, 0, 100%); 114 | $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81); 115 | $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122); 116 | $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46); 117 | $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12); 118 | $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33); 119 | $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114); 120 | $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48); 121 | 122 | @if lightness($base-color) > 70% { 123 | $color: hsl(0, 0, 20%); 124 | $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); 125 | } 126 | 127 | @if $grayscale == true { 128 | $border: grayscale($border); 129 | $border-bottom: grayscale($border-bottom); 130 | $fourth-stop: grayscale($fourth-stop); 131 | $inset-shadow: grayscale($inset-shadow); 132 | $second-stop: grayscale($second-stop); 133 | $text-shadow: grayscale($text-shadow); 134 | $third-stop: grayscale($third-stop); 135 | } 136 | 137 | border: 1px solid $border; 138 | border-bottom: 1px solid $border-bottom; 139 | border-radius: 5px; 140 | box-shadow: inset 0 1px 0 0 $inset-shadow; 141 | color: $color; 142 | display: inline-block; 143 | font-size: 14px; 144 | font-weight: bold; 145 | @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); 146 | padding: 8px 20px; 147 | text-align: center; 148 | text-decoration: none; 149 | text-shadow: 0 -1px 1px $text-shadow; 150 | 151 | &:hover:not(:disabled) { 152 | $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18); 153 | $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51); 154 | $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66); 155 | $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63); 156 | 157 | @if $grayscale == true { 158 | $first-stop-hover: grayscale($first-stop-hover); 159 | $second-stop-hover: grayscale($second-stop-hover); 160 | $third-stop-hover: grayscale($third-stop-hover); 161 | $fourth-stop-hover: grayscale($fourth-stop-hover); 162 | } 163 | 164 | cursor: pointer; 165 | @include linear-gradient(top, $first-stop-hover 0%, 166 | $second-stop-hover 50%, 167 | $third-stop-hover 50%, 168 | $fourth-stop-hover 100%); 169 | } 170 | 171 | &:active:not(:disabled) { 172 | $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); 173 | 174 | @if $grayscale == true { 175 | $inset-shadow-active: grayscale($inset-shadow-active); 176 | } 177 | 178 | box-shadow: inset 0 0 20px 0 $inset-shadow-active, 0 1px 0 #fff; 179 | } 180 | } 181 | 182 | 183 | // Pill Button 184 | //************************************************************************// 185 | @mixin pill($base-color, $grayscale: false) { 186 | $color: hsl(0, 0, 100%); 187 | $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%); 188 | $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%); 189 | $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%); 190 | $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%); 191 | $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%); 192 | $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%); 193 | 194 | @if lightness($base-color) > 70% { 195 | $color: hsl(0, 0, 20%); 196 | $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); 197 | } 198 | 199 | @if $grayscale == true { 200 | $border-bottom: grayscale($border-bottom); 201 | $border-sides: grayscale($border-sides); 202 | $border-top: grayscale($border-top); 203 | $inset-shadow: grayscale($inset-shadow); 204 | $stop-gradient: grayscale($stop-gradient); 205 | $text-shadow: grayscale($text-shadow); 206 | } 207 | 208 | border: 1px solid $border-top; 209 | border-color: $border-top $border-sides $border-bottom; 210 | border-radius: 16px; 211 | box-shadow: inset 0 1px 0 0 $inset-shadow, 0 1px 2px 0 #b3b3b3; 212 | color: $color; 213 | display: inline-block; 214 | font-size: 11px; 215 | font-weight: normal; 216 | line-height: 1; 217 | @include linear-gradient ($base-color, $stop-gradient); 218 | padding: 5px 16px; 219 | text-align: center; 220 | text-decoration: none; 221 | text-shadow: 0 -1px 1px $text-shadow; 222 | -webkit-background-clip: padding-box; 223 | 224 | &:hover:not(:disabled) { 225 | $base-color-hover: adjust-color($base-color, $lightness: -4.5%); 226 | $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%); 227 | $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%); 228 | $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%); 229 | $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%); 230 | $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%); 231 | $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%); 232 | 233 | @if $grayscale == true { 234 | $base-color-hover: grayscale($base-color-hover); 235 | $border-bottom: grayscale($border-bottom); 236 | $border-sides: grayscale($border-sides); 237 | $border-top: grayscale($border-top); 238 | $inset-shadow-hover: grayscale($inset-shadow-hover); 239 | $stop-gradient-hover: grayscale($stop-gradient-hover); 240 | $text-shadow-hover: grayscale($text-shadow-hover); 241 | } 242 | 243 | border: 1px solid $border-top; 244 | border-color: $border-top $border-sides $border-bottom; 245 | box-shadow: inset 0 1px 0 0 $inset-shadow-hover; 246 | cursor: pointer; 247 | @include linear-gradient ($base-color-hover, $stop-gradient-hover); 248 | text-shadow: 0 -1px 1px $text-shadow-hover; 249 | -webkit-background-clip: padding-box; 250 | } 251 | 252 | &:active:not(:disabled) { 253 | $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%); 254 | $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%); 255 | $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%); 256 | $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%); 257 | $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%); 258 | 259 | @if $grayscale == true { 260 | $active-color: grayscale($active-color); 261 | $border-active: grayscale($border-active); 262 | $border-bottom-active: grayscale($border-bottom-active); 263 | $inset-shadow-active: grayscale($inset-shadow-active); 264 | $text-shadow-active: grayscale($text-shadow-active); 265 | } 266 | 267 | background: $active-color; 268 | border: 1px solid $border-active; 269 | border-bottom: 1px solid $border-bottom-active; 270 | box-shadow: inset 0 0 6px 3px $inset-shadow-active, 0 1px 0 0 #fff; 271 | text-shadow: 0 -1px 1px $text-shadow-active; 272 | } 273 | } 274 | -------------------------------------------------------------------------------- /assets/css/reset.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v1.0.1 | MIT License | git.io/normalize */ 2 | 3 | /* ========================================================================== 4 | HTML5 display definitions 5 | ========================================================================== */ 6 | 7 | /* 8 | * Corrects `block` display not defined in IE 6/7/8/9 and Firefox 3. 9 | */ 10 | 11 | article, 12 | aside, 13 | details, 14 | figcaption, 15 | figure, 16 | footer, 17 | header, 18 | hgroup, 19 | nav, 20 | section, 21 | summary { 22 | display: block; 23 | } 24 | 25 | /* 26 | * Corrects `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. 27 | */ 28 | 29 | audio, 30 | canvas, 31 | video { 32 | display: inline-block; 33 | *display: inline; 34 | *zoom: 1; 35 | } 36 | 37 | /* 38 | * Prevents modern browsers from displaying `audio` without controls. 39 | * Remove excess height in iOS 5 devices. 40 | */ 41 | 42 | audio:not([controls]) { 43 | display: none; 44 | height: 0; 45 | } 46 | 47 | /* 48 | * Addresses styling for `hidden` attribute not present in IE 7/8/9, Firefox 3, 49 | * and Safari 4. 50 | * Known issue: no IE 6 support. 51 | */ 52 | 53 | [hidden] { 54 | display: none; 55 | } 56 | 57 | /* ========================================================================== 58 | Base 59 | ========================================================================== */ 60 | 61 | /* 62 | * 1. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using 63 | * `em` units. 64 | * 2. Prevents iOS text size adjust after orientation change, without disabling 65 | * user zoom. 66 | */ 67 | 68 | html { 69 | font-size: 100%; /* 1 */ 70 | -webkit-text-size-adjust: 100%; /* 2 */ 71 | -ms-text-size-adjust: 100%; /* 2 */ 72 | } 73 | 74 | /* 75 | * Addresses `font-family` inconsistency between `textarea` and other form 76 | * elements. 77 | */ 78 | 79 | html, 80 | button, 81 | input, 82 | select, 83 | textarea { 84 | font-family: sans-serif; 85 | } 86 | 87 | /* 88 | * Addresses margins handled incorrectly in IE 6/7. 89 | */ 90 | 91 | body { 92 | margin: 0; 93 | } 94 | 95 | /* ========================================================================== 96 | Links 97 | ========================================================================== */ 98 | 99 | /* 100 | * Addresses `outline` inconsistency between Chrome and other browsers. 101 | */ 102 | 103 | a:focus { 104 | outline: thin dotted; 105 | } 106 | 107 | /* 108 | * Improves readability when focused and also mouse hovered in all browsers. 109 | */ 110 | 111 | a:active, 112 | a:hover { 113 | outline: 0; 114 | } 115 | 116 | /* ========================================================================== 117 | Typography 118 | ========================================================================== */ 119 | 120 | /* 121 | * Addresses font sizes and margins set differently in IE 6/7. 122 | * Addresses font sizes within `section` and `article` in Firefox 4+, Safari 5, 123 | * and Chrome. 124 | */ 125 | 126 | h1 { 127 | font-size: 2em; 128 | margin: 0.67em 0; 129 | } 130 | 131 | h2 { 132 | font-size: 1.5em; 133 | margin: 0.83em 0; 134 | } 135 | 136 | h3 { 137 | font-size: 1.17em; 138 | margin: 1em 0; 139 | } 140 | 141 | h4 { 142 | font-size: 1em; 143 | margin: 1.33em 0; 144 | } 145 | 146 | h5 { 147 | font-size: 0.83em; 148 | margin: 1.67em 0; 149 | } 150 | 151 | h6 { 152 | font-size: 0.75em; 153 | margin: 2.33em 0; 154 | } 155 | 156 | /* 157 | * Addresses styling not present in IE 7/8/9, Safari 5, and Chrome. 158 | */ 159 | 160 | abbr[title] { 161 | border-bottom: 1px dotted; 162 | } 163 | 164 | /* 165 | * Addresses style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. 166 | */ 167 | 168 | b, 169 | strong { 170 | font-weight: bold; 171 | } 172 | 173 | blockquote { 174 | margin: 1em 40px; 175 | } 176 | 177 | /* 178 | * Addresses styling not present in Safari 5 and Chrome. 179 | */ 180 | 181 | dfn { 182 | font-style: italic; 183 | } 184 | 185 | /* 186 | * Addresses styling not present in IE 6/7/8/9. 187 | */ 188 | 189 | mark { 190 | background: #ff0; 191 | color: #000; 192 | } 193 | 194 | /* 195 | * Addresses margins set differently in IE 6/7. 196 | */ 197 | 198 | p, 199 | pre { 200 | margin: 1em 0; 201 | } 202 | 203 | /* 204 | * Corrects font family set oddly in IE 6, Safari 4/5, and Chrome. 205 | */ 206 | 207 | code, 208 | kbd, 209 | pre, 210 | samp { 211 | font-family: monospace, serif; 212 | _font-family: 'courier new', monospace; 213 | font-size: 1em; 214 | } 215 | 216 | /* 217 | * Improves readability of pre-formatted text in all browsers. 218 | */ 219 | 220 | pre { 221 | white-space: pre; 222 | white-space: pre-wrap; 223 | word-wrap: break-word; 224 | } 225 | 226 | /* 227 | * Addresses CSS quotes not supported in IE 6/7. 228 | */ 229 | 230 | q { 231 | quotes: none; 232 | } 233 | 234 | /* 235 | * Addresses `quotes` property not supported in Safari 4. 236 | */ 237 | 238 | q:before, 239 | q:after { 240 | content: ''; 241 | content: none; 242 | } 243 | 244 | /* 245 | * Addresses inconsistent and variable font size in all browsers. 246 | */ 247 | 248 | small { 249 | font-size: 80%; 250 | } 251 | 252 | /* 253 | * Prevents `sub` and `sup` affecting `line-height` in all browsers. 254 | */ 255 | 256 | sub, 257 | sup { 258 | font-size: 75%; 259 | line-height: 0; 260 | position: relative; 261 | vertical-align: baseline; 262 | } 263 | 264 | sup { 265 | top: -0.5em; 266 | } 267 | 268 | sub { 269 | bottom: -0.25em; 270 | } 271 | 272 | /* ========================================================================== 273 | Lists 274 | ========================================================================== */ 275 | 276 | /* 277 | * Addresses margins set differently in IE 6/7. 278 | */ 279 | 280 | dl, 281 | menu, 282 | ol, 283 | ul { 284 | margin: 1em 0; 285 | } 286 | 287 | dd { 288 | margin: 0 0 0 40px; 289 | } 290 | 291 | /* 292 | * Addresses paddings set differently in IE 6/7. 293 | */ 294 | 295 | menu, 296 | ol, 297 | ul { 298 | padding: 0; 299 | } 300 | 301 | /* 302 | * Corrects list images handled incorrectly in IE 7. 303 | */ 304 | 305 | nav ul, 306 | nav ol { 307 | list-style: none; 308 | list-style-image: none; 309 | } 310 | 311 | /* ========================================================================== 312 | Embedded content 313 | ========================================================================== */ 314 | 315 | /* 316 | * 1. Removes border when inside `a` element in IE 6/7/8/9 and Firefox 3. 317 | * 2. Improves image quality when scaled in IE 7. 318 | */ 319 | 320 | img { 321 | border: 0; /* 1 */ 322 | -ms-interpolation-mode: bicubic; /* 2 */ 323 | } 324 | 325 | /* 326 | * Corrects overflow displayed oddly in IE 9. 327 | */ 328 | 329 | svg:not(:root) { 330 | overflow: hidden; 331 | } 332 | 333 | /* ========================================================================== 334 | Figures 335 | ========================================================================== */ 336 | 337 | /* 338 | * Addresses margin not present in IE 6/7/8/9, Safari 5, and Opera 11. 339 | */ 340 | 341 | figure { 342 | margin: 0; 343 | } 344 | 345 | /* ========================================================================== 346 | Forms 347 | ========================================================================== */ 348 | 349 | /* 350 | * Corrects margin displayed oddly in IE 6/7. 351 | */ 352 | 353 | form { 354 | margin: 0; 355 | } 356 | 357 | /* 358 | * Define consistent border, margin, and padding. 359 | */ 360 | 361 | fieldset { 362 | border: 1px solid #c0c0c0; 363 | margin: 0 2px; 364 | padding: 0.35em 0.625em 0.75em; 365 | } 366 | 367 | /* 368 | * 1. Corrects color not being inherited in IE 6/7/8/9. 369 | * 2. Corrects text not wrapping in Firefox 3. 370 | * 3. Corrects alignment displayed oddly in IE 6/7. 371 | */ 372 | 373 | legend { 374 | border: 0; /* 1 */ 375 | padding: 0; 376 | white-space: normal; /* 2 */ 377 | *margin-left: -7px; /* 3 */ 378 | } 379 | 380 | /* 381 | * 1. Corrects font size not being inherited in all browsers. 382 | * 2. Addresses margins set differently in IE 6/7, Firefox 3+, Safari 5, 383 | * and Chrome. 384 | * 3. Improves appearance and consistency in all browsers. 385 | */ 386 | 387 | button, 388 | input, 389 | select, 390 | textarea { 391 | font-size: 100%; /* 1 */ 392 | margin: 0; /* 2 */ 393 | vertical-align: baseline; /* 3 */ 394 | *vertical-align: middle; /* 3 */ 395 | } 396 | 397 | /* 398 | * Addresses Firefox 3+ setting `line-height` on `input` using `!important` in 399 | * the UA stylesheet. 400 | */ 401 | 402 | button, 403 | input { 404 | line-height: normal; 405 | } 406 | 407 | /* 408 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 409 | * and `video` controls. 410 | * 2. Corrects inability to style clickable `input` types in iOS. 411 | * 3. Improves usability and consistency of cursor style between image-type 412 | * `input` and others. 413 | * 4. Removes inner spacing in IE 7 without affecting normal text inputs. 414 | * Known issue: inner spacing remains in IE 6. 415 | */ 416 | 417 | button, 418 | html input[type="button"], /* 1 */ 419 | input[type="reset"], 420 | input[type="submit"] { 421 | -webkit-appearance: button; /* 2 */ 422 | cursor: pointer; /* 3 */ 423 | *overflow: visible; /* 4 */ 424 | } 425 | 426 | /* 427 | * Re-set default cursor for disabled elements. 428 | */ 429 | 430 | button[disabled], 431 | input[disabled] { 432 | cursor: default; 433 | } 434 | 435 | /* 436 | * 1. Addresses box sizing set to content-box in IE 8/9. 437 | * 2. Removes excess padding in IE 8/9. 438 | * 3. Removes excess padding in IE 7. 439 | * Known issue: excess padding remains in IE 6. 440 | */ 441 | 442 | input[type="checkbox"], 443 | input[type="radio"] { 444 | box-sizing: border-box; /* 1 */ 445 | padding: 0; /* 2 */ 446 | *height: 13px; /* 3 */ 447 | *width: 13px; /* 3 */ 448 | } 449 | 450 | /* 451 | * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome. 452 | * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome 453 | * (include `-moz` to future-proof). 454 | */ 455 | 456 | input[type="search"] { 457 | -webkit-appearance: textfield; /* 1 */ 458 | -moz-box-sizing: content-box; 459 | -webkit-box-sizing: content-box; /* 2 */ 460 | box-sizing: content-box; 461 | } 462 | 463 | /* 464 | * Removes inner padding and search cancel button in Safari 5 and Chrome 465 | * on OS X. 466 | */ 467 | 468 | input[type="search"]::-webkit-search-cancel-button, 469 | input[type="search"]::-webkit-search-decoration { 470 | -webkit-appearance: none; 471 | } 472 | 473 | /* 474 | * Removes inner padding and border in Firefox 3+. 475 | */ 476 | 477 | button::-moz-focus-inner, 478 | input::-moz-focus-inner { 479 | border: 0; 480 | padding: 0; 481 | } 482 | 483 | /* 484 | * 1. Removes default vertical scrollbar in IE 6/7/8/9. 485 | * 2. Improves readability and alignment in all browsers. 486 | */ 487 | 488 | textarea { 489 | overflow: auto; /* 1 */ 490 | vertical-align: top; /* 2 */ 491 | } 492 | 493 | /* ========================================================================== 494 | Tables 495 | ========================================================================== */ 496 | 497 | /* 498 | * Remove most spacing between table cells. 499 | */ 500 | 501 | table { 502 | border-collapse: collapse; 503 | border-spacing: 0; 504 | } -------------------------------------------------------------------------------- /assets/js/plugins.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */window.Modernizr=function(e,t,n){function r(e){g.cssText=e}function i(e,t){return r(E.join(e+";")+(t||""))}function s(e,t){return typeof e===t}function o(e,t){return!!~(""+e).indexOf(t)}function u(e,t){for(var r in e){var i=e[r];if(!o(i,"-")&&g[i]!==n)return t=="pfx"?i:!0}return!1}function a(e,t,r){for(var i in e){var o=t[e[i]];if(o!==n)return r===!1?e[i]:s(o,"function")?o.bind(r||t):o}return!1}function f(e,t,n){var r=e.charAt(0).toUpperCase()+e.slice(1),i=(e+" "+x.join(r+" ")+r).split(" ");return s(t,"string")||s(t,"undefined")?u(i,t):(i=(e+" "+T.join(r+" ")+r).split(" "),a(i,t,n))}function l(){h.input=function(n){for(var r=0,i=n.length;r',e,""].join(""),f.id=v,(l?f:c).innerHTML+=s,c.appendChild(f),l||(c.style.background="",c.style.overflow="hidden",a=d.style.overflow,d.style.overflow="hidden",d.appendChild(c)),o=n(f,e),l?f.parentNode.removeChild(f):(c.parentNode.removeChild(c),d.style.overflow=a),!!o},D=function(){function e(e,i){i=i||t.createElement(r[e]||"div"),e="on"+e;var o=e in i;return o||(i.setAttribute||(i=t.createElement("div")),i.setAttribute&&i.removeAttribute&&(i.setAttribute(e,""),o=s(i[e],"function"),s(i[e],"undefined")||(i[e]=n),i.removeAttribute(e))),i=null,o}var r={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return e}(),P={}.hasOwnProperty,H;!s(P,"undefined")&&!s(P.call,"undefined")?H=function(e,t){return P.call(e,t)}:H=function(e,t){return t in e&&s(e.constructor.prototype[t],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if(typeof t!="function")throw new TypeError;var n=O.call(arguments,1),r=function(){if(this instanceof r){var i=function(){};i.prototype=t.prototype;var s=new i,o=t.apply(s,n.concat(O.call(arguments)));return Object(o)===o?o:s}return t.apply(e,n.concat(O.call(arguments)))};return r}),C.flexbox=function(){return f("flexWrap")},C.canvas=function(){var e=t.createElement("canvas");return!!e.getContext&&!!e.getContext("2d")},C.canvastext=function(){return!!h.canvas&&!!s(t.createElement("canvas").getContext("2d").fillText,"function")},C.webgl=function(){return!!e.WebGLRenderingContext},C.touch=function(){var n;return"ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch?n=!0:_(["@media (",E.join("touch-enabled),("),v,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(e){n=e.offsetTop===9}),n},C.geolocation=function(){return"geolocation"in navigator},C.postmessage=function(){return!!e.postMessage},C.websqldatabase=function(){return!!e.openDatabase},C.indexedDB=function(){return!!f("indexedDB",e)},C.hashchange=function(){return D("hashchange",e)&&(t.documentMode===n||t.documentMode>7)},C.history=function(){return!!e.history&&!!history.pushState},C.draganddrop=function(){var e=t.createElement("div");return"draggable"in e||"ondragstart"in e&&"ondrop"in e},C.websockets=function(){return"WebSocket"in e||"MozWebSocket"in e},C.rgba=function(){return r("background-color:rgba(150,255,150,.5)"),o(g.backgroundColor,"rgba")},C.hsla=function(){return r("background-color:hsla(120,40%,100%,.5)"),o(g.backgroundColor,"rgba")||o(g.backgroundColor,"hsla")},C.multiplebgs=function(){return r("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(g.background)},C.backgroundsize=function(){return f("backgroundSize")},C.borderimage=function(){return f("borderImage")},C.borderradius=function(){return f("borderRadius")},C.boxshadow=function(){return f("boxShadow")},C.textshadow=function(){return t.createElement("div").style.textShadow===""},C.opacity=function(){return i("opacity:.55"),/^0.55$/.test(g.opacity)},C.cssanimations=function(){return f("animationName")},C.csscolumns=function(){return f("columnCount")},C.cssgradients=function(){var e="background-image:",t="gradient(linear,left top,right bottom,from(#9f9),to(white));",n="linear-gradient(left top,#9f9, white);";return r((e+"-webkit- ".split(" ").join(t+e)+E.join(n+e)).slice(0,-e.length)),o(g.backgroundImage,"gradient")},C.cssreflections=function(){return f("boxReflect")},C.csstransforms=function(){return!!f("transform")},C.csstransforms3d=function(){var e=!!f("perspective");return e&&"webkitPerspective"in d.style&&_("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t,n){e=t.offsetLeft===9&&t.offsetHeight===3}),e},C.csstransitions=function(){return f("transition")},C.fontface=function(){var e;return _('@font-face {font-family:"font";src:url("https://")}',function(n,r){var i=t.getElementById("smodernizr"),s=i.sheet||i.styleSheet,o=s?s.cssRules&&s.cssRules[0]?s.cssRules[0].cssText:s.cssText||"":"";e=/src/i.test(o)&&o.indexOf(r.split(" ")[0])===0}),e},C.generatedcontent=function(){var e;return _(["#",v,"{font:0/0 a}#",v,':after{content:"',b,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){e=t.offsetHeight>=3}),e},C.video=function(){var e=t.createElement("video"),n=!1;try{if(n=!!e.canPlayType)n=new Boolean(n),n.ogg=e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(r){}return n},C.audio=function(){var e=t.createElement("audio"),n=!1;try{if(n=!!e.canPlayType)n=new Boolean(n),n.ogg=e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=e.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(r){}return n},C.localstorage=function(){try{return localStorage.setItem(v,v),localStorage.removeItem(v),!0}catch(e){return!1}},C.sessionstorage=function(){try{return sessionStorage.setItem(v,v),sessionStorage.removeItem(v),!0}catch(e){return!1}},C.webworkers=function(){return!!e.Worker},C.applicationcache=function(){return!!e.applicationCache},C.svg=function(){return!!t.createElementNS&&!!t.createElementNS(N.svg,"svg").createSVGRect},C.inlinesvg=function(){var e=t.createElement("div");return e.innerHTML="",(e.firstChild&&e.firstChild.namespaceURI)==N.svg},C.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(w.call(t.createElementNS(N.svg,"animate")))},C.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(w.call(t.createElementNS(N.svg,"clipPath")))};for(var B in C)H(C,B)&&(M=B.toLowerCase(),h[M]=C[B](),A.push((h[M]?"":"no-")+M));return h.input||l(),h.addTest=function(e,t){if(typeof e=="object")for(var r in e)H(e,r)&&h.addTest(r,e[r]);else{e=e.toLowerCase();if(h[e]!==n)return h;t=typeof t=="function"?t():t,typeof p!="undefined"&&p&&(d.className+=" "+(t?"":"no-")+e),h[e]=t}return h},r(""),m=y=null,function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=g.elements;return typeof e=="string"?e.split(" "):e}function i(e){var t=v[e[p]];return t||(t={},d++,e[p]=d,v[d]=t),t}function s(e,n,r){n||(n=t);if(m)return n.createElement(e);r||(r=i(n));var s;return r.cache[e]?s=r.cache[e].cloneNode():c.test(e)?s=(r.cache[e]=r.createElem(e)).cloneNode():s=r.createElem(e),s.canHaveChildren&&!l.test(e)?r.frag.appendChild(s):s}function o(e,n){e||(e=t);if(m)return e.createDocumentFragment();n=n||i(e);var s=n.frag.cloneNode(),o=0,u=r(),a=u.length;for(;o",h="hidden"in e,m=e.childNodes.length==1||function(){t.createElement("a");var e=t.createDocumentFragment();return typeof e.cloneNode=="undefined"||typeof e.createDocumentFragment=="undefined"||typeof e.createElement=="undefined"}()}catch(n){h=!0,m=!0}})();var g={elements:f.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:f.shivCSS!==!1,supportsUnknownElements:m,shivMethods:f.shivMethods!==!1,type:"default",shivDocument:a,createElement:s,createDocumentFragment:o};e.html5=g,a(t)}(this,t),h._version=c,h._prefixes=E,h._domPrefixes=T,h._cssomPrefixes=x,h.hasEvent=D,h.testProp=function(e){return u([e])},h.testAllProps=f,h.testStyles=_,h.prefixed=function(e,t,n){return t?f(e,t,n):f(e,"pfx")},d.className=d.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+A.join(" "):""),h}(this,this.document),function(e,t,n){function r(e){return"[object Function]"==d.call(e)}function i(e){return"string"==typeof e}function s(){}function o(e){return!e||"loaded"==e||"complete"==e||"uninitialized"==e}function u(){var e=v.shift();m=1,e?e.t?h(function(){("c"==e.t?k.injectCss:k.injectJs)(e.s,0,e.a,e.x,e.e,1)},0):(e(),u()):m=0}function a(e,n,r,i,s,a,f){function l(t){if(!d&&o(c.readyState)&&(w.r=d=1,!m&&u(),c.onload=c.onreadystatechange=null,t)){"img"!=e&&h(function(){b.removeChild(c)},50);for(var r in T[n])T[n].hasOwnProperty(r)&&T[n][r].onload()}}var f=f||k.errorTimeout,c=t.createElement(e),d=0,g=0,w={t:r,s:n,e:s,a:a,x:f};1===T[n]&&(g=1,T[n]=[]),"object"==e?c.data=n:(c.src=n,c.type=e),c.width=c.height="0",c.onerror=c.onload=c.onreadystatechange=function(){l.call(this,g)},v.splice(i,0,w),"img"!=e&&(g||2===T[n]?(b.insertBefore(c,y?null:p),h(l,f)):T[n].push(c))}function f(e,t,n,r,s){return m=0,t=t||"j",i(e)?a("c"==t?E:w,e,t,this.i++,n,r,s):(v.splice(this.i++,0,e),1==v.length&&u()),this}function l(){var e=k;return e.loader={load:f,i:0},e}var c=t.documentElement,h=e.setTimeout,p=t.getElementsByTagName("script")[0],d={}.toString,v=[],m=0,g="MozAppearance"in c.style,y=g&&!!t.createRange().compareNode,b=y?c:p.parentNode,c=e.opera&&"[object Opera]"==d.call(e.opera),c=!!t.attachEvent&&!c,w=g?"object":c?"script":"img",E=c?"script":w,S=Array.isArray||function(e){return"[object Array]"==d.call(e)},x=[],T={},N={timeout:function(e,t){return t.length&&(e.timeout=t[0]),e}},C,k;k=function(e){function t(e){var e=e.split("!"),t=x.length,n=e.pop(),r=e.length,n={url:n,origUrl:n,prefixes:e},i,s,o;for(s=0;s500&&(i=i.substr(0,500)+"...\n\n("+(i.length-500)+" characters not shown)");t.removeClass("hover")}n.clickAfter&&t.trigger("click")});r.glue(t[0],t.parent()[0]);e(window).bind("load resize",function(){r.reposition()})}})}if(typeof t=="string")return this.each(function(){var n=e(this);t=t.toLowerCase();var r=n.data("zclipId"),i=e("#"+r+".zclip");if(t=="remove"){i.remove();n.removeClass("active hover")}else if(t=="hide"){i.hide();n.removeClass("active hover")}else t=="show"&&i.show()})}})(jQuery);var ZeroClipboard={version:"1.0.7",clients:{},moviePath:"ZeroClipboard.swf",nextId:1,$:function(e){typeof e=="string"&&(e=document.getElementById(e));if(!e.addClass){e.hide=function(){this.style.display="none"};e.show=function(){this.style.display=""};e.addClass=function(e){this.removeClass(e);this.className+=" "+e};e.removeClass=function(e){var t=this.className.split(/\s+/),n=-1;for(var r=0;r-1){t.splice(n,1);this.className=t.join(" ")}return this};e.hasClass=function(e){return!!this.className.match(new RegExp("\\s*"+e+"\\s*"))}}return e},setMoviePath:function(e){this.moviePath=e},dispatch:function(e,t,n){var r=this.clients[e];r&&r.receiveEvent(t,n)},register:function(e,t){this.clients[e]=t},getDOMObjectPosition:function(e,t){var n={left:0,top:0,width:e.width?e.width:e.offsetWidth,height:e.height?e.height:e.offsetHeight};if(e&&e!=t){n.left+=e.offsetLeft;n.top+=e.offsetTop}return n},Client:function(e){this.handlers={};this.id=ZeroClipboard.nextId++;this.movieId="ZeroClipboardMovie_"+this.id;ZeroClipboard.register(this.id,this);e&&this.glue(e)}};ZeroClipboard.Client.prototype={id:0,ready:!1,movie:null,clipText:"",handCursorEnabled:!0,cssEffects:!0,handlers:null,glue:function(e,t,n){this.domElement=ZeroClipboard.$(e);var r=99;this.domElement.style.zIndex&&(r=parseInt(this.domElement.style.zIndex,10)+1);typeof t=="string"?t=ZeroClipboard.$(t):typeof t=="undefined"&&(t=document.getElementsByTagName("body")[0]);var i=ZeroClipboard.getDOMObjectPosition(this.domElement,t);this.div=document.createElement("div");this.div.className="zclip";this.div.id="zclip-"+this.movieId;$(this.domElement).data("zclipId","zclip-"+this.movieId);var s=this.div.style;s.position="absolute";s.left=""+i.left+"px";s.top=""+i.top+"px";s.width=""+i.width+"px";s.height=""+i.height+"px";s.zIndex=r;if(typeof n=="object")for(addedStyle in n)s[addedStyle]=n[addedStyle];t.appendChild(this.div);this.div.innerHTML=this.getHTML(i.width,i.height)},getHTML:function(e,t){var n="",r="id="+this.id+"&width="+e+"&height="+t;if(navigator.userAgent.match(/MSIE/)){var i=location.href.match(/^https/i)?"https://":"http://";n+=''}else n+='';return n},hide:function(){this.div&&(this.div.style.left="-2000px")},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var e=document.getElementsByTagName("body")[0];try{e.removeChild(this.div)}catch(t){}this.domElement=null;this.div=null}},reposition:function(e){if(e){this.domElement=ZeroClipboard.$(e);this.domElement||this.hide()}if(this.domElement&&this.div){var t=ZeroClipboard.getDOMObjectPosition(this.domElement),n=this.div.style;n.left=""+t.left+"px";n.top=""+t.top+"px"}},setText:function(e){this.clipText=e;this.ready&&this.movie.setText(e)},addEventListener:function(e,t){e=e.toString().toLowerCase().replace(/^on/,"");this.handlers[e]||(this.handlers[e]=[]);this.handlers[e].push(t)},setHandCursor:function(e){this.handCursorEnabled=e;this.ready&&this.movie.setHandCursor(e)},setCSSEffects:function(e){this.cssEffects=!!e},receiveEvent:function(e,t){e=e.toString().toLowerCase().replace(/^on/,"");switch(e){case"load":this.movie=document.getElementById(this.movieId);if(!this.movie){var n=this;setTimeout(function(){n.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){var n=this;setTimeout(function(){n.receiveEvent("load",null)},100);this.ready=!0;return}this.ready=!0;try{this.movie.setText(this.clipText)}catch(r){}try{this.movie.setHandCursor(this.handCursorEnabled)}catch(r){}break;case"mouseover":if(this.domElement&&this.cssEffects){this.domElement.addClass("hover");this.recoverActive&&this.domElement.addClass("active")}break;case"mouseout":if(this.domElement&&this.cssEffects){this.recoverActive=!1;if(this.domElement.hasClass("active")){this.domElement.removeClass("active");this.recoverActive=!0}this.domElement.removeClass("hover")}break;case"mousedown":this.domElement&&this.cssEffects&&this.domElement.addClass("active");break;case"mouseup":if(this.domElement&&this.cssEffects){this.domElement.removeClass("active");this.recoverActive=!1}}if(this.handlers[e])for(var i=0,s=this.handlers[e].length;i