diff --git a/.gitignore b/.gitignore index ee6e8e4..58746e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -node_modules -.sass-cache -*.sublime-workspace -.DS_Store -._* +node_modules/ +_dist/* diff --git a/Checklist.md b/Checklist.md deleted file mode 100644 index 3a12114..0000000 --- a/Checklist.md +++ /dev/null @@ -1,4 +0,0 @@ -#Design-Checklist - -- Responsive Design – Mobile: 320, 400, 640px -- Create Favicons (ICO!) with multiple sizes (16, 32, 48, 64px) diff --git a/LICENSE b/LICENSE index eb862e1..9373292 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014 Jan Jastrow +Copyright (c) 2018 Jan Jastrow Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/README.md b/README.md index a314b53..852a969 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -Template -======== +# Website template -My template for a new website +## About the project + +This is my template for a new web project. +Scripting engine is gulp js, and SASS is used for better CSS. diff --git a/_source/apple-touch-icon.png b/_source/apple-touch-icon.png new file mode 100644 index 0000000..bdf9126 Binary files /dev/null and b/_source/apple-touch-icon.png differ diff --git a/_source/favicon.png b/_source/favicon.png new file mode 100644 index 0000000..06a876c Binary files /dev/null and b/_source/favicon.png differ diff --git a/index.html b/_source/index.html similarity index 100% rename from index.html rename to _source/index.html diff --git a/robots.txt b/_source/robots.txt similarity index 93% rename from robots.txt rename to _source/robots.txt index 468c22d..d0e5f1b 100644 --- a/robots.txt +++ b/_source/robots.txt @@ -1,5 +1,5 @@ -# www.robotstxt.org/ - -# Allow crawling of all content -User-agent: * -Disallow: +# www.robotstxt.org/ + +# Allow crawling of all content +User-agent: * +Disallow: diff --git a/_source/sass/styles.scss b/_source/sass/styles.scss new file mode 100644 index 0000000..2f43be2 --- /dev/null +++ b/_source/sass/styles.scss @@ -0,0 +1,7 @@ +body { + background-color: red; + color: black; + font-family: sans-serif; + font-size: 60px; + text-transform: capitalize; +} diff --git a/crossdomain.xml b/crossdomain.xml deleted file mode 100755 index 818b822..0000000 --- a/crossdomain.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/css/main.css b/css/main.css deleted file mode 100644 index 076d35a..0000000 --- a/css/main.css +++ /dev/null @@ -1,594 +0,0 @@ -/*----------------------------------------* Schwerkraftlabor.de | @Gehirnfussel -\*----------------------------------------*/ -/* Imports ---------------------------*/ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; } - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; } - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; } - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ -a:active, -a:hover { - outline: 0; } - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; } - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; } - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; } - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; } - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; } - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - box-sizing: content-box; - height: 0; } - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; } - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ } - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; } - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - /* 2 */ - box-sizing: content-box; } - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ } - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; } - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; } - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -/* Vars ---------------------------*/ -/* Reset ---------------------------*/ -*, *:before, *:after { - box-sizing: inherit; - padding: 0; - margin: 0; } - -html { - height: 100%; - box-sizing: border-box; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - text-size-adjust: 100%; } - -/* Ideal Viewport-Fix for IE */ -@-ms-viewport { - width: device-width; } - -/* Cleafix ---------------------------*/ -.clearfix::before, -.clearfix::after { - content: " "; - display: table; } - -.clearfix::after { - clear: both; } - -.clearfix { - *zoom: 1; } - -/* - FLUIDITY v0.1.0 - @mrmrs - http://mrmrs.cc - MIT -*/ -/* - - Responsive Utilities - -*/ -img, -canvas, -iframe, -video, -svg, -select, -textarea { - max-width: 100%; } - -/* Wrap tables or pre elements in a div with this class */ -.overflow-container { - overflow-y: scroll; } - -/* - Aspect ratios for media objects i.e canvas, iframe, video, svg etc. - Defaults to 16x9 -*/ -.aspect-ratio { - height: 0; - padding-top: 56.25%; - position: relative; } - -.aspect-ratio--object { - height: 100%; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 100%; - z-index: 100; } - -/* Video-Container ---------------------------*/ -.video { - position: relative; - height: 0; - padding-bottom: 56.25%; } - .video > * { - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; } - -/* Grid and stuff ---------------------------*/ -.container { - margin: 0 auto; - /*max-width: 960px; - width: 90%;*/ } - -.row { - overflow: hidden; - max-width: 960px; - margin: 0 auto; } - -.fullrow { - max-width: 100%; } - -.column { - float: left; - margin-left: 5%; } - -.column:first-child { - margin-left: 0; } - -.column.full { - width: 100%; } - -.column.three-fourth { - width: 63.75%; } - -.column.two-thirds { - width: 65%; } - -.column.half { - width: 47.5%; } - -.column.one-third { - width: 30%; } - -.column.one-fourth { - width: 21.25%; } - -/* @import 'font-awesome'; */ -/* Content ---------------------------*/ -body { - color: #000; - font-family: Open Sans, Helvetica, Arial, sans-serif; - font-size: 12pt; - -webkit-font-smoothing: subpixel-antialiased; - -moz-osx-font-smoothing: auto; } - -h1, h2, h3 { - font-family: Open Sans, Helvetica, Arial, sans-serif; - font-weight: 700; - line-height: 1.2em; - margin: 0.4em 0em; } - -h1 { - font-size: 2.0em; - word-break: break-all; } - -h2 { - font-size: 1.5em; } - -h3 { - font-size: 1.25em; } - -p { - line-height: 1.45em; - padding: 0.5em 0; } - -ul li { - margin: 0.3em 0em 0.3em 0.5em; - list-style-position: inside; - list-style-type: square; - font-size: 1em; } - ul li p { - padding-left: 1em; } - -a { - color: #660000; - -webkit-transition: color 0.2s ease; - transition: color 0.2s ease; } - a:hover, a:active, a:focus { - color: #b30000; } - a:active { - position: relative; - top: 1px; } - -a.notdown:active { - position: inherit; } - -@media screen { - a.external:after { - content: "\00A0" "[" "\2197" "]"; } } - -@media print { - a[href]:after { - content: " (" attr(href) ")"; } } - -/* Header ---------------------------*/ -/* Content ---------------------------*/ -.fa { - margin-right: 0.3em; - speak: none; - /* Won't speak the symbol | badly supported by browsers */ } - -.button { - text-overflow: ellipsis; } - -/* Footer ---------------------------*/ -/* Responsive Stuff ---------------------------*/ -@media screen and (max-width: 768px) { - .column.full, - .column.three-fourth, - .column.two-thirds, - .column.half { - float: none; - margin: 0; - width: 100%; } - .column.one-third, - .column.one-fourth { - float: left; - margin: 0; - width: 50%; - padding: 0.4em; } } - -@media screen and (max-width: 568px) { - .column.one-third, - .column.two-third { - float: none; - margin: 0; - width: 100%; } } - -@media screen and (max-width: 480px) { - .column.one-third, - .column.one-fourth, - .column.full, - .column.three-fourth, - .column.two-thirds, - .column.half, - .column.full { - float: left; - margin: 0; - width: 100%; } } diff --git a/css/main.min.css b/css/main.min.css deleted file mode 100644 index fa1406a..0000000 --- a/css/main.min.css +++ /dev/null @@ -1 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */body,mark{color:#000}img,legend{border:0}.column.full,.video>*{width:100%}b,h1,h2,h3,optgroup,strong{font-weight:700}body,h1,h2,h3{font-family:Open Sans,Helvetica,Arial,sans-serif}html{font-family:sans-serif;height:100%;box-sizing:border-box;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-size:12pt;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;color:#600;-webkit-transition:color .2s ease;transition:color .2s ease}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}dfn{font-style:italic}mark{background:#ff0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{padding:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,:after,:before{box-sizing:inherit;padding:0;margin:0}.container,.row{margin:0 auto}@-ms-viewport{width:device-width}.clearfix::after,.clearfix::before{content:" ";display:table}.clearfix::after{clear:both}canvas,iframe,img,select,svg,textarea,video{max-width:100%}.overflow-container{overflow-y:scroll}.aspect-ratio{height:0;padding-top:56.25%;position:relative}.aspect-ratio--object{height:100%;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;z-index:100}.video{position:relative;height:0;padding-bottom:56.25%}.video>*{position:absolute;top:0;left:0;height:100%}.row{overflow:hidden;max-width:960px}.fullrow{max-width:100%}.column{float:left;margin-left:5%}.column:first-child{margin-left:0}.column.three-fourth{width:63.75%}.column.two-thirds{width:65%}.column.half{width:47.5%}.column.one-third{width:30%}.column.one-fourth{width:21.25%}h1,h2,h3{line-height:1.2em;margin:.4em 0}h1{font-size:2em;word-break:break-all}h2{font-size:1.5em}h3{font-size:1.25em}p{line-height:1.45em;padding:.5em 0}ul li{margin:.3em 0 .3em .5em;list-style-position:inside;list-style-type:square;font-size:1em}ul li p{padding-left:1em}a:active,a:focus,a:hover{color:#b30000}a:active{position:relative;top:1px}a.notdown:active{position:inherit}@media screen{a.external:after{content:"\00A0" "[" "\2197" "]"}}@media print{a[href]:after{content:" (" attr(href) ")"}}.fa{margin-right:.3em;speak:none}.button{text-overflow:ellipsis}@media screen and (max-width:768px){.column.full,.column.half,.column.three-fourth,.column.two-thirds{float:none;margin:0;width:100%}.column.one-fourth,.column.one-third{float:left;margin:0;width:50%;padding:.4em}}@media screen and (max-width:568px){.column.one-third,.column.two-third{float:none;margin:0;width:100%}}@media screen and (max-width:480px){.column.full,.column.half,.column.one-fourth,.column.one-third,.column.three-fourth,.column.two-thirds{float:left;margin:0;width:100%}} \ No newline at end of file diff --git a/favicon.png b/favicon.png deleted file mode 100644 index 237476b..0000000 Binary files a/favicon.png and /dev/null differ diff --git a/fonts/FontAwesome.otf b/fonts/FontAwesome.otf deleted file mode 100644 index f7936cc..0000000 Binary files a/fonts/FontAwesome.otf and /dev/null differ diff --git a/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot deleted file mode 100755 index 33b2bb8..0000000 Binary files a/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/fonts/fontawesome-webfont.svg b/fonts/fontawesome-webfont.svg deleted file mode 100755 index 1ee89d4..0000000 --- a/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,565 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf deleted file mode 100755 index ed9372f..0000000 Binary files a/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/fonts/fontawesome-webfont.woff b/fonts/fontawesome-webfont.woff deleted file mode 100755 index 8b280b9..0000000 Binary files a/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/fonts/fontawesome-webfont.woff2 b/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 3311d58..0000000 Binary files a/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/gulpfile.js b/gulpfile.js index a11e40c..8689588 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,86 +1,68 @@ -// Require all those npm-modules - -var gulp = require('gulp'), +// Require npm-modules +var del = require('del'), + gulp = require('gulp'), sass = require('gulp-sass'), autoprefixer = require('gulp-autoprefixer'), cssnano = require('gulp-cssnano'), - jshint = require('gulp-jshint'), - uglify = require('gulp-uglify'), - imagemin = require('gulp-imagemin'), - pngcrush = require('imagemin-pngcrush'), - rename = require('gulp-rename'), - del = require('del'), - concat = require('gulp-concat'), - notify = require('gulp-notify'), - cache = require('gulp-cache'), livereload = require('gulp-livereload'), - plumber = require('gulp-plumber'); + notify = require('gulp-notify'), + plumber = require('gulp-plumber'), + rename = require('gulp-rename'); -// render scss -gulp.task('styles', function() {var onError = function(err) { - notify.onError({ - title: "Gulp", - subtitle: "Failure!", - message: "Error: <%= error.message %>", - sound: "Submarine" - })(err); - - this.emit('end'); - }; - gulp.src('./src/scss/main.scss') - .pipe(plumber({errorHandler: onError})) - .pipe(sass({ style: 'expanded' })) - .pipe(autoprefixer('last 2 version', 'IE 9', 'safari 5', 'Firefox ESR', 'opera 12.1', 'ios 6', 'android 4', 'BlackBerry 10')) - .pipe(gulp.dest('./css')) - .pipe(rename({suffix: '.min'})) - .pipe(cssnano()) - .pipe(gulp.dest('./css')) - .pipe(notify({ message: 'Styles task complete' })); -}); - - -// compress images -gulp.task('images', function() { - gulp.src('./src/img/*') - .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))) - .pipe(gulp.dest('./img/')) - .pipe(notify({ message: 'Images task complete' })); -}); - - -// do the javascript-dance -gulp.task('scripts', function() { - gulp.src('./src/js/**/*.js') - .pipe(concat('main.js')) - .pipe(gulp.dest('./js')) - .pipe(rename({suffix: '.min'})) - .pipe(uglify()) - .pipe(gulp.dest('./js')) - .pipe(notify({ message: 'Scripts task complete' })); -}); - - -// watch it while working -gulp.task('watch', function() { - // Watch .scss files - gulp.watch('src/scss/**/*.scss', ['styles']); - - // Watch .js files - gulp.watch('src/js/**/*.js', ['scripts']); - - // Watch image files - gulp.watch('src/img/**/*', ['images']); -}); +var sassConfig = { + inputDirectory: '_source/sass/**/*.scss', + outputDirectory: '_dist/css', + options: { + outputStyle: 'expanded' + }, + autoprefixer: ['last 2 version', 'IE 11', 'Firefox ESR', 'ios 10', 'android 4.4'] +} +// Tasks // clean the folders gulp.task('clean', function(cb) { - del(['./css/*', './js/*', './img/*'], cb) + return del([sassConfig.outputDirectory + '/*'], cb) }); +// watcher +gulp.task('watch', function() { + gulp.watch(sassConfig.inputDirectory, ['sass']); + livereload.listen() +}); -// default: all of them! \o/ +// render SASS +gulp.task('sass', function() {var onError = function(err) { + notify.onError({ + title: "Gulp", + subtitle: "Failure!", + message: "Error: <%= error.message %>", + sound: "Submarine" + })(err); + this.emit('end'); +}; + return gulp + .src(sassConfig.inputDirectory) + .pipe(plumber({errorHandler: onError})) + .pipe(sass(sassConfig.options).on('error', sass.logError)) + .pipe(autoprefixer(sassConfig.autoprefixer)) + .pipe(gulp.dest(sassConfig.outputDirectory)) + .pipe(cssnano()) + .pipe(rename({suffix: '.min'})) + .pipe(gulp.dest(sassConfig.outputDirectory)) + .pipe(notify({ message: 'SASS rendered' })) + .pipe(livereload()); +}); + +gulp.task('sass-only', function() { + return gulp + .src(sassConfig.inputDirectory) + .pipe(sass(sassConfig.options).on('error', sass.logError)) + .pipe(gulp.dest(sassConfig.outputDirectory)); +}); + +// Default: First 'clean', then the rest gulp.task('default', ['clean'], function() { - gulp.start('styles', 'scripts', 'images'); + gulp.start('sass'); }); diff --git a/htaccess b/htaccess deleted file mode 100644 index 286b2b5..0000000 --- a/htaccess +++ /dev/null @@ -1,987 +0,0 @@ -# Apache Server Configs v2.14.0 | MIT License -# https://github.com/h5bp/server-configs-apache - -# based on html5-boilerplate htaccess-file: -# https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess - -# (!) Using `.htaccess` files slows down Apache, therefore, if you have -# access to the main server configuration file (which is usually called -# `httpd.conf`), you should add this logic there. -# -# https://httpd.apache.org/docs/current/howto/htaccess.html. - -# ###################################################################### -# # CROSS-ORIGIN # -# ###################################################################### - -# ---------------------------------------------------------------------- -# | Cross-origin requests | -# ---------------------------------------------------------------------- - -# Allow cross-origin requests. -# -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS -# http://enable-cors.org/ -# http://www.w3.org/TR/cors/ - -# -# Header set Access-Control-Allow-Origin "*" -# - -# ---------------------------------------------------------------------- -# | Cross-origin images | -# ---------------------------------------------------------------------- - -# Send the CORS header for images when browsers request it. -# -# https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image -# https://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html - - - - - SetEnvIf Origin ":" IS_CORS - Header set Access-Control-Allow-Origin "*" env=IS_CORS - - - - -# ---------------------------------------------------------------------- -# | Cross-origin web fonts | -# ---------------------------------------------------------------------- - -# Allow cross-origin access to web fonts. - - - - Header set Access-Control-Allow-Origin "*" - - - -# ---------------------------------------------------------------------- -# | Cross-origin resource timing | -# ---------------------------------------------------------------------- - -# Allow cross-origin access to the timing information for all resources. -# -# If a resource isn't served with a `Timing-Allow-Origin` header that -# would allow its timing information to be shared with the document, -# some of the attributes of the `PerformanceResourceTiming` object will -# be set to zero. -# -# http://www.w3.org/TR/resource-timing/ -# http://www.stevesouders.com/blog/2014/08/21/resource-timing-practical-tips/ - -# -# Header set Timing-Allow-Origin: "*" -# - - -# ###################################################################### -# # ERRORS # -# ###################################################################### - -# ---------------------------------------------------------------------- -# | Custom error messages/pages | -# ---------------------------------------------------------------------- - -# Customize what Apache returns to the client in case of an error. -# https://httpd.apache.org/docs/current/mod/core.html#errordocument - -ErrorDocument 404 /404.html - -# ---------------------------------------------------------------------- -# | Error prevention | -# ---------------------------------------------------------------------- - -# Disable the pattern matching based on filenames. -# -# This setting prevents Apache from returning a 404 error as the result -# of a rewrite when the directory with the same name does not exist. -# -# https://httpd.apache.org/docs/current/content-negotiation.html#multiviews - -Options -MultiViews - - -# ###################################################################### -# # INTERNET EXPLORER # -# ###################################################################### - -# ---------------------------------------------------------------------- -# | Document modes | -# ---------------------------------------------------------------------- - -# Force Internet Explorer 8/9/10 to render pages in the highest mode -# available in the various cases when it may not. -# -# https://hsivonen.fi/doctype/#ie8 -# -# (!) Starting with Internet Explorer 11, document modes are deprecated. -# If your business still relies on older web apps and services that were -# designed for older versions of Internet Explorer, you might want to -# consider enabling `Enterprise Mode` throughout your company. -# -# https://msdn.microsoft.com/en-us/library/ie/bg182625.aspx#docmode -# http://blogs.msdn.com/b/ie/archive/2014/04/02/stay-up-to-date-with-enterprise-mode-for-internet-explorer-11.aspx - - - - Header set X-UA-Compatible "IE=edge" - - # `mod_headers` cannot match based on the content-type, however, - # the `X-UA-Compatible` response header should be send only for - # HTML documents and not for the other resources. - - - Header unset X-UA-Compatible - - - - -# ---------------------------------------------------------------------- -# | Iframes cookies | -# ---------------------------------------------------------------------- - -# Allow cookies to be set from iframes in Internet Explorer. -# -# https://msdn.microsoft.com/en-us/library/ms537343.aspx -# http://www.w3.org/TR/2000/CR-P3P-20001215/ - -# -# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"" -# - - -# ###################################################################### -# # MEDIA TYPES AND CHARACTER ENCODINGS # -# ###################################################################### - -# ---------------------------------------------------------------------- -# | Media types | -# ---------------------------------------------------------------------- - -# Serve resources with the proper media types (f.k.a. MIME types). -# -# https://www.iana.org/assignments/media-types/media-types.xhtml -# https://httpd.apache.org/docs/current/mod/mod_mime.html#addtype - - - - # Data interchange - - AddType application/atom+xml atom - AddType application/json json map topojson - AddType application/ld+json jsonld - AddType application/rss+xml rss - AddType application/vnd.geo+json geojson - AddType application/xml rdf xml - - - # JavaScript - - # Normalize to standard type. - # https://tools.ietf.org/html/rfc4329#section-7.2 - - AddType application/javascript js - - - # Manifest files - - AddType application/manifest+json webmanifest - AddType application/x-web-app-manifest+json webapp - AddType text/cache-manifest appcache - - - # Media files - - AddType audio/mp4 f4a f4b m4a - AddType audio/ogg oga ogg opus - AddType image/bmp bmp - AddType image/svg+xml svg svgz - AddType image/webp webp - AddType video/mp4 f4v f4p m4v mp4 - AddType video/ogg ogv - AddType video/webm webm - AddType video/x-flv flv - - # Serving `.ico` image files with a different media type - # prevents Internet Explorer from displaying then as images: - # https://github.com/h5bp/html5-boilerplate/commit/37b5fec090d00f38de64b591bcddcb205aadf8ee - - AddType image/x-icon cur ico - - - # Web fonts - - AddType application/font-woff woff - AddType application/font-woff2 woff2 - AddType application/vnd.ms-fontobject eot - - # Browsers usually ignore the font media types and simply sniff - # the bytes to figure out the font type. - # https://mimesniff.spec.whatwg.org/#matching-a-font-type-pattern - # - # However, Blink and WebKit based browsers will show a warning - # in the console if the following font types are served with any - # other media types. - - AddType application/x-font-ttf ttc ttf - AddType font/opentype otf - - - # Other - - AddType application/octet-stream safariextz - AddType application/x-bb-appworld bbaw - AddType application/x-chrome-extension crx - AddType application/x-opera-extension oex - AddType application/x-xpinstall xpi - AddType text/vcard vcard vcf - AddType text/vnd.rim.location.xloc xloc - AddType text/vtt vtt - AddType text/x-component htc - - - -# ---------------------------------------------------------------------- -# | Character encodings | -# ---------------------------------------------------------------------- - -# Serve all resources labeled as `text/html` or `text/plain` -# with the media type `charset` parameter set to `UTF-8`. -# -# https://httpd.apache.org/docs/current/mod/core.html#adddefaultcharset - -AddDefaultCharset utf-8 - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Serve the following file types with the media type `charset` -# parameter set to `UTF-8`. -# -# https://httpd.apache.org/docs/current/mod/mod_mime.html#addcharset - - - AddCharset utf-8 .atom \ - .bbaw \ - .css \ - .geojson \ - .js \ - .json \ - .jsonld \ - .manifest \ - .rdf \ - .rss \ - .topojson \ - .vtt \ - .webapp \ - .webmanifest \ - .xloc \ - .xml - - - -# ###################################################################### -# # REWRITES # -# ###################################################################### - -# ---------------------------------------------------------------------- -# | Rewrite engine | -# ---------------------------------------------------------------------- - -# (1) Turn on the rewrite engine (this is necessary in order for -# the `RewriteRule` directives to work). -# -# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#RewriteEngine -# -# (2) Enable the `FollowSymLinks` option if it isn't already. -# -# https://httpd.apache.org/docs/current/mod/core.html#options -# -# (3) If your web host doesn't allow the `FollowSymlinks` option, -# you need to comment it out or remove it, and then uncomment -# the `Options +SymLinksIfOwnerMatch` line (4), but be aware -# of the performance impact. -# -# https://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks -# -# (4) Some cloud hosting services will require you set `RewriteBase`. -# -# https://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-modrewrite-not-working-on-my-site -# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase -# -# (5) Depending on how your server is set up, you may also need to -# use the `RewriteOptions` directive to enable some options for -# the rewrite engine. -# -# https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions -# -# (6) Set %{ENV:PROTO} variable, to allow rewrites to redirect with the -# appropriate schema automatically (http or https). - - - - # (1) - RewriteEngine On - - # (2) - Options +FollowSymlinks - - # (3) - # Options +SymLinksIfOwnerMatch - - # (4) - # RewriteBase / - - # (5) - # RewriteOptions - - # (6) - RewriteCond %{HTTPS} =on - RewriteRule ^ - [env=proto:https] - RewriteCond %{HTTPS} !=on - RewriteRule ^ - [env=proto:http] - - - -# ---------------------------------------------------------------------- -# | Forcing `https://` | -# ---------------------------------------------------------------------- - -# Redirect from the `http://` to the `https://` version of the URL. -# https://wiki.apache.org/httpd/RewriteHTTPToHTTPS - -# -# RewriteEngine On -# RewriteCond %{HTTPS} !=on -# RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] -# - -# ---------------------------------------------------------------------- -# | Suppressing / Forcing the `www.` at the beginning of URLs | -# ---------------------------------------------------------------------- - -# The same content should never be available under two different -# URLs, especially not with and without `www.` at the beginning. -# This can cause SEO problems (duplicate content), and therefore, -# you should choose one of the alternatives and redirect the other -# one. -# -# By default `Option 1` (no `www.`) is activated. -# http://no-www.org/faq.php?q=class_b -# -# If you would prefer to use `Option 2`, just comment out all the -# lines from `Option 1` and uncomment the ones from `Option 2`. -# -# (!) NEVER USE BOTH RULES AT THE SAME TIME! - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Option 1: rewrite www.example.com → example.com - - - RewriteEngine On - RewriteCond %{HTTPS} !=on - RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] - RewriteRule ^ %{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L] - - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Option 2: rewrite example.com → www.example.com -# -# Be aware that the following might not be a good idea if you use "real" -# subdomains for certain parts of your website. - -# -# RewriteEngine On -# RewriteCond %{HTTPS} !=on -# RewriteCond %{HTTP_HOST} !^www\. [NC] -# RewriteCond %{SERVER_ADDR} !=127.0.0.1 -# RewriteCond %{SERVER_ADDR} !=::1 -# RewriteRule ^ %{ENV:PROTO}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] -# - - -# ###################################################################### -# # SECURITY # -# ###################################################################### - -# ---------------------------------------------------------------------- -# | Clickjacking | -# ---------------------------------------------------------------------- - -# Protect website against clickjacking. -# -# The example below sends the `X-Frame-Options` response header with -# the value `DENY`, informing browsers not to display the content of -# the web page in any frame. -# -# This might not be the best setting for everyone. You should read -# about the other two possible values the `X-Frame-Options` header -# field can have: `SAMEORIGIN` and `ALLOW-FROM`. -# https://tools.ietf.org/html/rfc7034#section-2.1. -# -# Keep in mind that while you could send the `X-Frame-Options` header -# for all of your website’s pages, this has the potential downside that -# it forbids even non-malicious framing of your content (e.g.: when -# users visit your website using a Google Image Search results page). -# -# Nonetheless, you should ensure that you send the `X-Frame-Options` -# header for all pages that allow a user to make a state changing -# operation (e.g: pages that contain one-click purchase links, checkout -# or bank-transfer confirmation pages, pages that make permanent -# configuration changes, etc.). -# -# Sending the `X-Frame-Options` header can also protect your website -# against more than just clickjacking attacks: -# https://cure53.de/xfo-clickjacking.pdf. -# -# https://tools.ietf.org/html/rfc7034 -# http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx -# https://www.owasp.org/index.php/Clickjacking - -# - -# Header set X-Frame-Options "DENY" - -# # `mod_headers` cannot match based on the content-type, however, -# # the `X-Frame-Options` response header should be send only for -# # HTML documents and not for the other resources. - -# -# Header unset X-Frame-Options -# - -# - -# ---------------------------------------------------------------------- -# | Content Security Policy (CSP) | -# ---------------------------------------------------------------------- - -# Mitigate the risk of cross-site scripting and other content-injection -# attacks. -# -# This can be done by setting a `Content Security Policy` which -# whitelists trusted sources of content for your website. -# -# The example header below allows ONLY scripts that are loaded from -# the current website's origin (no inline scripts, no CDN, etc). -# That almost certainly won't work as-is for your website! -# -# To make things easier, you can use an online CSP header generator -# such as: http://cspisawesome.com/. -# -# http://content-security-policy.com/ -# http://www.html5rocks.com/en/tutorials/security/content-security-policy/ -# http://www.w3.org/TR/CSP11/). - -# - -# Header set Content-Security-Policy "script-src 'self'; object-src 'self'" - -# # `mod_headers` cannot match based on the content-type, however, -# # the `Content-Security-Policy` response header should be send -# # only for HTML documents and not for the other resources. - -# -# Header unset Content-Security-Policy -# - -# - -# ---------------------------------------------------------------------- -# | File access | -# ---------------------------------------------------------------------- - -# Block access to directories without a default document. -# -# You should leave the following uncommented, as you shouldn't allow -# anyone to surf through every directory on your server (which may -# includes rather private places such as the CMS's directories). - - - Options -Indexes - - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Block access to all hidden files and directories with the exception of -# the visible content from within the `/.well-known/` hidden directory. -# -# These types of files usually contain user preferences or the preserved -# state of an utility, and can include rather private places like, for -# example, the `.git` or `.svn` directories. -# -# The `/.well-known/` directory represents the standard (RFC 5785) path -# prefix for "well-known locations" (e.g.: `/.well-known/manifest.json`, -# `/.well-known/keybase.txt`), and therefore, access to its visible -# content should not be blocked. -# -# https://www.mnot.net/blog/2010/04/07/well-known -# https://tools.ietf.org/html/rfc5785 - - - RewriteEngine On - RewriteCond %{REQUEST_URI} "!(^|/)\.well-known/([^./]+./?)+$" [NC] - RewriteCond %{SCRIPT_FILENAME} -d [OR] - RewriteCond %{SCRIPT_FILENAME} -f - RewriteRule "(^|/)\." - [F] - - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Block access to files that can expose sensitive information. -# -# By default, block access to backup and source files that may be -# left by some text editors and can pose a security risk when anyone -# has access to them. -# -# http://feross.org/cmsploit/ -# -# (!) Update the `` regular expression from below to -# include any files that might end up on your production server and -# can expose sensitive information about your website. These files may -# include: configuration files, files that contain metadata about the -# project (e.g.: project dependencies), build scripts, etc.. - - - - # Apache < 2.3 - - Order allow,deny - Deny from all - Satisfy All - - - # Apache ≥ 2.3 - - Require all denied - - - - -# ---------------------------------------------------------------------- -# | HTTP Strict Transport Security (HSTS) | -# ---------------------------------------------------------------------- - -# Force client-side SSL redirection. -# -# If a user types `example.com` in their browser, even if the server -# redirects them to the secure version of the website, that still leaves -# a window of opportunity (the initial HTTP connection) for an attacker -# to downgrade or redirect the request. -# -# The following header ensures that browser will ONLY connect to your -# server via HTTPS, regardless of what the users type in the browser's -# address bar. -# -# (!) Remove the `includeSubDomains` optional directive if the website's -# subdomains are not using HTTPS. -# -# http://www.html5rocks.com/en/tutorials/security/transport-layer-security/ -# https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14#section-6.1 -# http://blogs.msdn.com/b/ieinternals/archive/2014/08/18/hsts-strict-transport-security-attacks-mitigations-deployment-https.aspx - -# -# Header always set Strict-Transport-Security "max-age=16070400; includeSubDomains" -# - -# ---------------------------------------------------------------------- -# | Reducing MIME type security risks | -# ---------------------------------------------------------------------- - -# Prevent some browsers from MIME-sniffing the response. -# -# This reduces exposure to drive-by download attacks and cross-origin -# data leaks, and should be left uncommented, especially if the server -# is serving user-uploaded content or content that could potentially be -# treated as executable by the browser. -# -# http://www.slideshare.net/hasegawayosuke/owasp-hasegawa -# http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx -# https://msdn.microsoft.com/en-us/library/ie/gg622941.aspx -# https://mimesniff.spec.whatwg.org/ - - - Header set X-Content-Type-Options "nosniff" - - -# ---------------------------------------------------------------------- -# | Reflected Cross-Site Scripting (XSS) attacks | -# ---------------------------------------------------------------------- - -# (1) Try to re-enable the cross-site scripting (XSS) filter built -# into most web browsers. -# -# The filter is usually enabled by default, but in some cases it -# may be disabled by the user. However, in Internet Explorer for -# example, it can be re-enabled just by sending the -# `X-XSS-Protection` header with the value of `1`. -# -# (2) Prevent web browsers from rendering the web page if a potential -# reflected (a.k.a non-persistent) XSS attack is detected by the -# filter. -# -# By default, if the filter is enabled and browsers detect a -# reflected XSS attack, they will attempt to block the attack -# by making the smallest possible modifications to the returned -# web page. -# -# Unfortunately, in some browsers (e.g.: Internet Explorer), -# this default behavior may allow the XSS filter to be exploited, -# thereby, it's better to inform browsers to prevent the rendering -# of the page altogether, instead of attempting to modify it. -# -# https://hackademix.net/2009/11/21/ies-xss-filter-creates-xss-vulnerabilities -# -# (!) Do not rely on the XSS filter to prevent XSS attacks! Ensure that -# you are taking all possible measures to prevent XSS attacks, the -# most obvious being: validating and sanitizing your website's inputs. -# -# http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx -# http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-the-x-xss-protection-http-header.aspx -# https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29 - -# - -# # (1) (2) -# Header set X-XSS-Protection "1; mode=block" - -# # `mod_headers` cannot match based on the content-type, however, -# # the `X-XSS-Protection` response header should be send only for -# # HTML documents and not for the other resources. - -# -# Header unset X-XSS-Protection -# - -# - -# ---------------------------------------------------------------------- -# | Server-side technology information | -# ---------------------------------------------------------------------- - -# Remove the `X-Powered-By` response header that: -# -# * is set by some frameworks and server-side languages -# (e.g.: ASP.NET, PHP), and its value contains information -# about them (e.g.: their name, version number) -# -# * doesn't provide any value as far as users are concern, -# and in some cases, the information provided by it can -# be used by attackers -# -# (!) If you can, you should disable the `X-Powered-By` header from the -# language / framework level (e.g.: for PHP, you can do that by setting -# `expose_php = off` in `php.ini`) -# -# https://php.net/manual/en/ini.core.php#ini.expose-php - - - Header unset X-Powered-By - - -# ---------------------------------------------------------------------- -# | Server software information | -# ---------------------------------------------------------------------- - -# Prevent Apache from adding a trailing footer line containing -# information about the server to the server-generated documents -# (e.g.: error messages, directory listings, etc.) -# -# https://httpd.apache.org/docs/current/mod/core.html#serversignature - -ServerSignature Off - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Prevent Apache from sending in the `Server` response header its -# exact version number, the description of the generic OS-type or -# information about its compiled-in modules. -# -# (!) The `ServerTokens` directive will only work in the main server -# configuration file, so don't try to enable it in the `.htaccess` file! -# -# https://httpd.apache.org/docs/current/mod/core.html#servertokens - -#ServerTokens Prod - - -# ###################################################################### -# # WEB PERFORMANCE # -# ###################################################################### - -# ---------------------------------------------------------------------- -# | Compression | -# ---------------------------------------------------------------------- - - - - # Force compression for mangled `Accept-Encoding` request headers - # https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html - - - - SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding - RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Compress all output labeled with one of the following media types. - # - # (!) For Apache versions below version 2.3.7 you don't need to - # enable `mod_filter` and can remove the `` - # and `` lines as `AddOutputFilterByType` is still in - # the core directives. - # - # https://httpd.apache.org/docs/current/mod/mod_filter.html#addoutputfilterbytype - - - AddOutputFilterByType DEFLATE "application/atom+xml" \ - "application/javascript" \ - "application/json" \ - "application/ld+json" \ - "application/manifest+json" \ - "application/rdf+xml" \ - "application/rss+xml" \ - "application/schema+json" \ - "application/vnd.geo+json" \ - "application/vnd.ms-fontobject" \ - "application/x-font-ttf" \ - "application/x-javascript" \ - "application/x-web-app-manifest+json" \ - "application/xhtml+xml" \ - "application/xml" \ - "font/eot" \ - "font/opentype" \ - "image/bmp" \ - "image/svg+xml" \ - "image/vnd.microsoft.icon" \ - "image/x-icon" \ - "text/cache-manifest" \ - "text/css" \ - "text/html" \ - "text/javascript" \ - "text/plain" \ - "text/vcard" \ - "text/vnd.rim.location.xloc" \ - "text/vtt" \ - "text/x-component" \ - "text/x-cross-domain-policy" \ - "text/xml" - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Map the following filename extensions to the specified - # encoding type in order to make Apache serve the file types - # with the appropriate `Content-Encoding` response header - # (do note that this will NOT make Apache compress them!). - # - # If these files types would be served without an appropriate - # `Content-Enable` response header, client applications (e.g.: - # browsers) wouldn't know that they first need to uncompress - # the response, and thus, wouldn't be able to understand the - # content. - # - # https://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding - - - AddEncoding gzip svgz - - - - -# ---------------------------------------------------------------------- -# | Content transformation | -# ---------------------------------------------------------------------- - -# Prevent intermediate caches or proxies (e.g.: such as the ones -# used by mobile network providers) from modifying the website's -# content. -# -# https://tools.ietf.org/html/rfc2616#section-14.9.5 -# -# (!) If you are using `mod_pagespeed`, please note that setting -# the `Cache-Control: no-transform` response header will prevent -# `PageSpeed` from rewriting `HTML` files, and, if the -# `ModPagespeedDisableRewriteOnNoTransform` directive isn't set -# to `off`, also from rewriting other resources. -# -# https://developers.google.com/speed/pagespeed/module/configuration#notransform - -# -# Header merge Cache-Control "no-transform" -# - -# ---------------------------------------------------------------------- -# | ETags | -# ---------------------------------------------------------------------- - -# Remove `ETags` as resources are sent with far-future expires headers. -# -# https://developer.yahoo.com/performance/rules.html#etags -# https://tools.ietf.org/html/rfc7232#section-2.3 - -# `FileETag None` doesn't work in all cases. - - Header unset ETag - - -FileETag None - -# ---------------------------------------------------------------------- -# | Expires headers | -# ---------------------------------------------------------------------- - -# Serve resources with far-future expires headers. -# -# (!) If you don't control versioning with filename-based -# cache busting, you should consider lowering the cache times -# to something like one week. -# -# https://httpd.apache.org/docs/current/mod/mod_expires.html - - - - ExpiresActive on - ExpiresDefault "access plus 1 month" - - # CSS - - ExpiresByType text/css "access plus 1 year" - - - # Data interchange - - ExpiresByType application/atom+xml "access plus 1 hour" - ExpiresByType application/rdf+xml "access plus 1 hour" - ExpiresByType application/rss+xml "access plus 1 hour" - - ExpiresByType application/json "access plus 0 seconds" - ExpiresByType application/ld+json "access plus 0 seconds" - ExpiresByType application/schema+json "access plus 0 seconds" - ExpiresByType application/vnd.geo+json "access plus 0 seconds" - ExpiresByType application/xml "access plus 0 seconds" - ExpiresByType text/xml "access plus 0 seconds" - - - # Favicon (cannot be renamed!) and cursor images - - ExpiresByType image/vnd.microsoft.icon "access plus 1 week" - ExpiresByType image/x-icon "access plus 1 week" - - # HTML - - ExpiresByType text/html "access plus 0 seconds" - - - # JavaScript - - ExpiresByType application/javascript "access plus 1 year" - ExpiresByType application/x-javascript "access plus 1 year" - ExpiresByType text/javascript "access plus 1 year" - - - # Manifest files - - ExpiresByType application/manifest+json "access plus 1 week" - ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" - ExpiresByType text/cache-manifest "access plus 0 seconds" - - - # Media files - - ExpiresByType audio/ogg "access plus 1 month" - ExpiresByType image/bmp "access plus 1 month" - ExpiresByType image/gif "access plus 1 month" - ExpiresByType image/jpeg "access plus 1 month" - ExpiresByType image/png "access plus 1 month" - ExpiresByType image/svg+xml "access plus 1 month" - ExpiresByType image/webp "access plus 1 month" - ExpiresByType video/mp4 "access plus 1 month" - ExpiresByType video/ogg "access plus 1 month" - ExpiresByType video/webm "access plus 1 month" - - - # Web fonts - - # Embedded OpenType (EOT) - ExpiresByType application/vnd.ms-fontobject "access plus 1 month" - ExpiresByType font/eot "access plus 1 month" - - # OpenType - ExpiresByType font/opentype "access plus 1 month" - - # TrueType - ExpiresByType application/x-font-ttf "access plus 1 month" - - # Web Open Font Format (WOFF) 1.0 - ExpiresByType application/font-woff "access plus 1 month" - ExpiresByType application/x-font-woff "access plus 1 month" - ExpiresByType font/woff "access plus 1 month" - - # Web Open Font Format (WOFF) 2.0 - ExpiresByType application/font-woff2 "access plus 1 month" - - - # Other - - ExpiresByType text/x-cross-domain-policy "access plus 1 week" - - - -# ---------------------------------------------------------------------- -# | File concatenation | -# ---------------------------------------------------------------------- - -# Allow concatenation from within specific files. -# -# e.g.: -# -# If you have the following lines in a file called, for -# example, `main.combined.js`: -# -# -# -# -# Apache will replace those lines with the content of the -# specified files. - -# -# -# Options +Includes -# AddOutputFilterByType INCLUDES application/javascript \ -# application/x-javascript \ -# text/javascript -# SetOutputFilter INCLUDES -# -# -# Options +Includes -# AddOutputFilterByType INCLUDES text/css -# SetOutputFilter INCLUDES -# -# - -# ---------------------------------------------------------------------- -# | Filename-based cache busting | -# ---------------------------------------------------------------------- - -# If you're not using a build process to manage your filename version -# revving, you might want to consider enabling the following directives -# to route all requests such as `/style.12345.css` to `/style.css`. -# -# To understand why this is important and even a better solution than -# using something like `*.css?v231`, please see: -# http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/ - -# -# RewriteEngine On -# RewriteCond %{REQUEST_FILENAME} !-f -# RewriteRule ^(.+)\.(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp|webmanifest)$ $1.$3 [L] -# diff --git a/humans.txt b/humans.txt deleted file mode 100755 index dd9c88c..0000000 --- a/humans.txt +++ /dev/null @@ -1,14 +0,0 @@ -/* TEAM */ - Design: Jan Jastrow - Site: http://jastrow.me - Twitter: @Gehirnfussel - Location: Flensburg, Schleswig-Holstein, Germany - -/* THANKS */ - Name: Humanstxt.org - Site: http://humanstxt.org/ - Comment: Thanks for this great Idea :) - -/* SITE */ - Standards: HTML5, CSS3 - Software: Atom.io, Gulp, Photoshop CS5 diff --git a/js/main.js b/js/main.js deleted file mode 100644 index b3d4d70..0000000 --- a/js/main.js +++ /dev/null @@ -1,22 +0,0 @@ -/* Some scripts and stuff ---------------------------*/ - - -/* Target-Blank for CSS-Class "external" ---------------------------*/ -function externalLinks() { - if (!document.getElementsByTagName) {return;} - var anchors = document.getElementsByTagName("a"); - for (var i=0; iarticle,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}"; -c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| -"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); -if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d - break - } - if (elem.hasAttribute('data-instant')) { - return false - } - if (elem.hasAttribute('data-no-instant')) { - return true - } - } - while (elem = elem.parentNode); - return false - } - - function isWhitelisted(elem) { - do { - if (!elem.hasAttribute) { // Parent of - break - } - if (elem.hasAttribute('data-no-instant')) { - return false - } - if (elem.hasAttribute('data-instant')) { - return true - } - } - while (elem = elem.parentNode); - return false - } - - function triggerPageEvent(eventType, arg1) { - for (var i = 0; i < $eventsCallbacks[eventType].length; i++) { - $eventsCallbacks[eventType][i](arg1) - } - - /* The `change` event takes one boolean argument: "isInitialLoad" */ - } - - function changePage(title, body, newUrl, scrollY) { - document.title = title - - document.documentElement.replaceChild(body, document.body) - /* We cannot just use `document.body = doc.body`, it causes Safari (tested - 5.1, 6.0 and Mobile 7.0) to execute script tags directly. - */ - - if (newUrl) { - history.pushState(null, null, newUrl) - - var hashIndex = newUrl.indexOf('#'), - hashElem = hashIndex > -1 - && document.getElementById(newUrl.substr(hashIndex + 1)), - offset = 0 - - if (hashElem) { - while (hashElem.offsetParent) { - offset += hashElem.offsetTop - - hashElem = hashElem.offsetParent - } - } - scrollTo(0, offset) - - $currentLocationWithoutHash = removeHash(newUrl) - } - else { - scrollTo(0, scrollY) - } - instantanize() - bar.done() - triggerPageEvent('change', false) - } - - function setPreloadingAsHalted() { - $isPreloading = false - $isWaitingForCompletion = false - } - - - ////////// EVENT HANDLERS ////////// - - - function mousedown(e) { - preload(getLinkTarget(e.target).href) - } - - function mouseover(e) { - var a = getLinkTarget(e.target) - a.addEventListener('mouseout', mouseout) - - if (!$delayBeforePreload) { - preload(a.href) - } - else { - $urlToPreload = a.href - $preloadTimer = setTimeout(preload, $delayBeforePreload) - } - } - - function touchstart(e) { - var a = getLinkTarget(e.target) - if ($preloadOnMousedown) { - a.removeEventListener('mousedown', mousedown) - } - else { - a.removeEventListener('mouseover', mouseover) - } - preload(a.href) - } - - function click(e) { - if (e.which > 1 || e.metaKey || e.ctrlKey) { // Opening in new tab - return - } - e.preventDefault() - display(getLinkTarget(e.target).href) - } - - function mouseout() { - if ($preloadTimer) { - clearTimeout($preloadTimer) - $preloadTimer = false - return - } - - if (!$isPreloading || $isWaitingForCompletion) { - return - } - $xhr.abort() - setPreloadingAsHalted() - } - - function readystatechange() { - if ($xhr.readyState < 4) { - return - } - if ($xhr.status == 0) { - /* Request aborted */ - return - } - - $timing.ready = +new Date - $timing.start - triggerPageEvent('receive') - - if ($xhr.getResponseHeader('Content-Type').match(/\/(x|ht|xht)ml/)) { - var doc = document.implementation.createHTMLDocument('') - doc.documentElement.innerHTML = $xhr.responseText - $title = doc.title - $body = doc.body - var urlWithoutHash = removeHash($url) - $history[urlWithoutHash] = { - body: $body, - title: $title, - scrollY: urlWithoutHash in $history ? $history[urlWithoutHash].scrollY : 0 - } - - var elems = doc.head.children, - found = 0, - elem, - data - - for (var i = elems.length - 1; i >= 0; i--) { - elem = elems[i] - if (elem.hasAttribute('data-instant-track')) { - data = elem.getAttribute('href') || elem.getAttribute('src') || elem.innerHTML - for (var j = $trackedAssets.length - 1; j >= 0; j--) { - if ($trackedAssets[j] == data) { - found++ - } - } - } - } - if (found != $trackedAssets.length) { - $mustRedirect = true // Assets have changed - } - } - else { - $mustRedirect = true // Not an HTML document - } - - if ($isWaitingForCompletion) { - $isWaitingForCompletion = false - display($url) - } - } - - - ////////// MAIN FUNCTIONS ////////// - - - function instantanize(isInitializing) { - var as = document.getElementsByTagName('a'), - a, - domain = location.protocol + '//' + location.host - - for (var i = as.length - 1; i >= 0; i--) { - a = as[i] - if (a.target // target="_blank" etc. - || a.hasAttribute('download') - || a.href.indexOf(domain + '/') != 0 // Another domain, or no href attribute - || (a.href.indexOf('#') > -1 - && removeHash(a.href) == $currentLocationWithoutHash) // Anchor - || ($useWhitelist - ? !isWhitelisted(a) - : isBlacklisted(a)) - ) { - continue - } - a.addEventListener('touchstart', touchstart) - if ($preloadOnMousedown) { - a.addEventListener('mousedown', mousedown) - } - else { - a.addEventListener('mouseover', mouseover) - } - a.addEventListener('click', click) - } - if (!isInitializing) { - var scripts = document.body.getElementsByTagName('script'), - script, - copy, - parentNode, - nextSibling - - for (i = 0, j = scripts.length; i < j; i++) { - script = scripts[i] - if (script.hasAttribute('data-no-instant')) { - continue - } - copy = document.createElement('script') - if (script.src) { - copy.src = script.src - } - if (script.innerHTML) { - copy.innerHTML = script.innerHTML - } - parentNode = script.parentNode - nextSibling = script.nextSibling - parentNode.removeChild(script) - parentNode.insertBefore(copy, nextSibling) - } - } - } - - function preload(url) { - if (!$preloadOnMousedown - && 'display' in $timing - && +new Date - ($timing.start + $timing.display) < 100) { - /* After a page is displayed, if the user's cursor happens to be above - a link a mouseover event will be in most browsers triggered - automatically, and in other browsers it will be triggered when the - user moves his mouse by 1px. - - Here are the behavior I noticed, all on Windows: - - Safari 5.1: auto-triggers after 0 ms - - IE 11: auto-triggers after 30-80 ms (depends on page's size?) - - Firefox: auto-triggers after 10 ms - - Opera 18: auto-triggers after 10 ms - - - Chrome: triggers when cursor moved - - Opera 12.16: triggers when cursor moved - - To remedy to this, we do not start preloading if last display - occurred less than 100 ms ago. If they happen to click on the link, - they will be redirected. - */ - - return - } - if ($preloadTimer) { - clearTimeout($preloadTimer) - $preloadTimer = false - } - - if (!url) { - url = $urlToPreload - } - - if ($isPreloading && (url == $url || $isWaitingForCompletion)) { - return - } - $isPreloading = true - $isWaitingForCompletion = false - - $url = url - $body = false - $mustRedirect = false - $timing = { - start: +new Date - } - triggerPageEvent('fetch') - $xhr.open('GET', url) - $xhr.send() - } - - function display(url) { - if (!('display' in $timing)) { - $timing.display = +new Date - $timing.start - } - if ($preloadTimer) { - /* Happens when there’s a delay before preloading and that delay - hasn't expired (preloading didn't kick in). - */ - - if ($url && $url != url) { - /* Happens when the user clicks on a link before preloading - kicks in while another link is already preloading. - */ - - location.href = url - return - } - preload(url) - bar.start(0, true) - triggerPageEvent('wait') - $isWaitingForCompletion = true - return - } - if (!$isPreloading || $isWaitingForCompletion) { - /* If the page isn't preloaded, it likely means the user has focused - on a link (with his Tab key) and then pressed Return, which - triggered a click. - Because very few people do this, it isn't worth handling this case - and preloading on focus (also, focusing on a link doesn't mean it's - likely that you'll "click" on it), so we just redirect them when - they "click". - It could also mean the user hovered over a link less than 100 ms - after a page display, thus we didn't start the preload (see - comments in `preload()` for the rationale behind this.) - - If the page is waiting for completion, the user clicked twice while - the page was preloading. Either on the same link or on another - link. If it's the same link something might have gone wrong (or he - could have double clicked), so we send him to the page the old way. - If it's another link, it hasn't been preloaded, so we redirect the - user the old way. - */ - - location.href = url - return - } - if ($mustRedirect) { - location.href = $url - return - } - if (!$body) { - bar.start(0, true) - triggerPageEvent('wait') - $isWaitingForCompletion = true - return - } - $history[$currentLocationWithoutHash].scrollY = pageYOffset - setPreloadingAsHalted() - changePage($title, $body, $url) - } - - - ////////// PROGRESS BAR FUNCTIONS ////////// - - - var bar = function() { - var $barContainer, - $barElement, - $barTransformProperty, - $barProgress, - $barTimer - - function init() { - $barContainer = document.createElement('div') - $barContainer.id = 'instantclick' - $barElement = document.createElement('div') - $barElement.id = 'instantclick-bar' - $barElement.className = 'instantclick-bar' - $barContainer.appendChild($barElement) - - var vendors = ['Webkit', 'Moz', 'O'] - - $barTransformProperty = 'transform' - if (!($barTransformProperty in $barElement.style)) { - for (var i = 0; i < 3; i++) { - if (vendors[i] + 'Transform' in $barElement.style) { - $barTransformProperty = vendors[i] + 'Transform' - } - } - } - - var transitionProperty = 'transition' - if (!(transitionProperty in $barElement.style)) { - for (var i = 0; i < 3; i++) { - if (vendors[i] + 'Transition' in $barElement.style) { - transitionProperty = '-' + vendors[i].toLowerCase() + '-' + transitionProperty - } - } - } - - var style = document.createElement('style') - style.innerHTML = '#instantclick{position:' + ($hasTouch ? 'absolute' : 'fixed') + ';top:0;left:0;width:100%;pointer-events:none;z-index:2147483647;' + transitionProperty + ':opacity .25s .1s}' - + '.instantclick-bar{background:#29d;width:100%;margin-left:-100%;height:2px;' + transitionProperty + ':all .25s}' - /* We set the bar's background in `.instantclick-bar` so that it can be - overriden in CSS with `#instantclick-bar`, as IDs have higher priority. - */ - document.head.appendChild(style) - - if ($hasTouch) { - updatePositionAndScale() - addEventListener('resize', updatePositionAndScale) - addEventListener('scroll', updatePositionAndScale) - } - - } - - function start(at, jump) { - $barProgress = at - if (document.getElementById($barContainer.id)) { - document.body.removeChild($barContainer) - } - $barContainer.style.opacity = '1' - if (document.getElementById($barContainer.id)) { - document.body.removeChild($barContainer) - /* So there's no CSS animation if already done once and it goes from 1 to 0 */ - } - update() - if (jump) { - setTimeout(jumpStart, 0) - /* Must be done in a timer, otherwise the CSS animation doesn't happen. */ - } - clearTimeout($barTimer) - $barTimer = setTimeout(inc, 500) - } - - function jumpStart() { - $barProgress = 10 - update() - } - - function inc() { - $barProgress += 1 + (Math.random() * 2) - if ($barProgress >= 98) { - $barProgress = 98 - } - else { - $barTimer = setTimeout(inc, 500) - } - update() - } - - function update() { - $barElement.style[$barTransformProperty] = 'translate(' + $barProgress + '%)' - if (!document.getElementById($barContainer.id)) { - document.body.appendChild($barContainer) - } - } - - function done() { - if (document.getElementById($barContainer.id)) { - clearTimeout($barTimer) - $barProgress = 100 - update() - $barContainer.style.opacity = '0' - /* If you're debugging, setting this to 0.5 is handy. */ - return - } - - /* The bar container hasn't been appended: It's a new page. */ - start($barProgress == 100 ? 0 : $barProgress) - /* $barProgress is 100 on popstate, usually. */ - setTimeout(done, 0) - /* Must be done in a timer, otherwise the CSS animation doesn't happen. */ - } - - function updatePositionAndScale() { - /* Adapted from code by Sam Stephenson and Mislav Marohnić - http://signalvnoise.com/posts/2407 - */ - - $barContainer.style.left = pageXOffset + 'px' - $barContainer.style.width = innerWidth + 'px' - $barContainer.style.top = pageYOffset + 'px' - - var landscape = 'orientation' in window && Math.abs(orientation) == 90, - scaleY = innerWidth / screen[landscape ? 'height' : 'width'] * 2 - /* We multiply the size by 2 because the progress bar is harder - to notice on a mobile device. - */ - $barContainer.style[$barTransformProperty] = 'scaleY(' + scaleY + ')' - } - - return { - init: init, - start: start, - done: done - } - }() - - - ////////// PUBLIC VARIABLE AND FUNCTIONS ////////// - - var supported = 'pushState' in history - && (!$ua.match('Android') || $ua.match('Chrome/')) - && location.protocol != "file:" - - /* The state of Android's AOSP browsers: - - 2.3.7: pushState appears to work correctly, but - `doc.documentElement.innerHTML = body` is buggy. - See details here: http://stackoverflow.com/q/21918564 - Note an issue anymore, but it may fail where 3.0 do, this needs - testing again. - - 3.0: pushState appears to work correctly (though the URL bar is only - updated on focus), but - `document.documentElement.replaceChild(doc.body, document.body)` - throws DOMException: WRONG_DOCUMENT_ERR. - - 4.0.2: Doesn't support pushState. - - 4.0.4, - 4.1.1, - 4.2, - 4.3: pushState is here, but it doesn't update the URL bar. - (Great logic there.) - - 4.4: Works correctly. Claims to be 'Chrome/30.0.0.0'. - - All androids tested with Android SDK's Emulator. - Version numbers are from the browser's user agent. - - Because of this mess, the only whitelisted browser on Android is Chrome. - */ - - function init() { - if ($currentLocationWithoutHash) { - /* Already initialized */ - return - } - if (!supported) { - triggerPageEvent('change', true) - return - } - for (var i = arguments.length - 1; i >= 0; i--) { - var arg = arguments[i] - if (arg === true) { - $useWhitelist = true - } - else if (arg == 'mousedown') { - $preloadOnMousedown = true - } - else if (typeof arg == 'number') { - $delayBeforePreload = arg - } - } - $currentLocationWithoutHash = removeHash(location.href) - $history[$currentLocationWithoutHash] = { - body: document.body, - title: document.title, - scrollY: pageYOffset - } - - var elems = document.head.children, - elem, - data - for (var i = elems.length - 1; i >= 0; i--) { - elem = elems[i] - if (elem.hasAttribute('data-instant-track')) { - data = elem.getAttribute('href') || elem.getAttribute('src') || elem.innerHTML - /* We can't use just `elem.href` and `elem.src` because we can't - retrieve `href`s and `src`s from the Ajax response. - */ - $trackedAssets.push(data) - } - } - - $xhr = new XMLHttpRequest() - $xhr.addEventListener('readystatechange', readystatechange) - - instantanize(true) - - bar.init() - - triggerPageEvent('change', true) - - addEventListener('popstate', function() { - var loc = removeHash(location.href) - if (loc == $currentLocationWithoutHash) { - return - } - - if (!(loc in $history)) { - location.href = location.href - /* Reloads the page while using cache for scripts, styles and images, - unlike `location.reload()` */ - return - } - - $history[$currentLocationWithoutHash].scrollY = pageYOffset - $currentLocationWithoutHash = loc - changePage($history[loc].title, $history[loc].body, false, $history[loc].scrollY) - }) - } - - function on(eventType, callback) { - $eventsCallbacks[eventType].push(callback) - } - - - /* The debug function isn't included by default to reduce file size. - To enable it, add a slash at the beginning of the comment englobing - the debug function, and uncomment "debug: debug," in the return - statement below the function. */ - - /* - function debug() { - return { - currentLocationWithoutHash: $currentLocationWithoutHash, - history: $history, - xhr: $xhr, - url: $url, - title: $title, - mustRedirect: $mustRedirect, - body: $body, - timing: $timing, - isPreloading: $isPreloading, - isWaitingForCompletion: $isWaitingForCompletion - } - } - //*/ - - - //////////////////// - - - return { - // debug: debug, - supported: supported, - init: init, - on: on - } - -}(document, location); diff --git a/src/js/scripts.js b/src/js/scripts.js deleted file mode 100644 index b51e979..0000000 --- a/src/js/scripts.js +++ /dev/null @@ -1,23 +0,0 @@ -/* Some scripts and stuff ---------------------------*/ - - - -/* Target-Blank for CSS-Class "external" ---------------------------*/ -function externalLinks() { - if (!document.getElementsByTagName) {return;} - var anchors = document.getElementsByTagName("a"); - for (var i=0; i * { - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; - } -} - -/* Grid and stuff ---------------------------*/ -.container { - margin: 0 auto; - /*max-width: 960px; - width: 90%;*/ -} - -.row { - overflow: hidden; - max-width: 960px; - margin: 0 auto; -} -.fullrow { - max-width: 100%; -} - -.column { - float: left; - margin-left: 5%; -} - -.column:first-child { - margin-left: 0; -} - -.column.full { - width: 100%; -} - -.column.three-fourth { - width: 63.75%; -} - -.column.two-thirds { - width: 65%; -} - -.column.half { - width: 47.5%; -} - -.column.one-third { - width: 30%; -} - -.column.one-fourth { - width: 21.25%; -} diff --git a/src/scss/_font-awesome.scss b/src/scss/_font-awesome.scss deleted file mode 100644 index 2dcdc22..0000000 --- a/src/scss/_font-awesome.scss +++ /dev/null @@ -1,1801 +0,0 @@ -/*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.3.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; -} -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); -} -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-fw { - width: 1.28571429em; - text-align: center; -} -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} -.fa-ul > li { - position: relative; -} -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} -.fa-li.fa-lg { - left: -1.85714286em; -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.fa.pull-left { - margin-right: .3em; -} -.fa.pull-right { - margin-left: .3em; -} -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -.fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -.fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} -.fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #ffffff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\f000"; -} -.fa-music:before { - content: "\f001"; -} -.fa-search:before { - content: "\f002"; -} -.fa-envelope-o:before { - content: "\f003"; -} -.fa-heart:before { - content: "\f004"; -} -.fa-star:before { - content: "\f005"; -} -.fa-star-o:before { - content: "\f006"; -} -.fa-user:before { - content: "\f007"; -} -.fa-film:before { - content: "\f008"; -} -.fa-th-large:before { - content: "\f009"; -} -.fa-th:before { - content: "\f00a"; -} -.fa-th-list:before { - content: "\f00b"; -} -.fa-check:before { - content: "\f00c"; -} -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\f00d"; -} -.fa-search-plus:before { - content: "\f00e"; -} -.fa-search-minus:before { - content: "\f010"; -} -.fa-power-off:before { - content: "\f011"; -} -.fa-signal:before { - content: "\f012"; -} -.fa-gear:before, -.fa-cog:before { - content: "\f013"; -} -.fa-trash-o:before { - content: "\f014"; -} -.fa-home:before { - content: "\f015"; -} -.fa-file-o:before { - content: "\f016"; -} -.fa-clock-o:before { - content: "\f017"; -} -.fa-road:before { - content: "\f018"; -} -.fa-download:before { - content: "\f019"; -} -.fa-arrow-circle-o-down:before { - content: "\f01a"; -} -.fa-arrow-circle-o-up:before { - content: "\f01b"; -} -.fa-inbox:before { - content: "\f01c"; -} -.fa-play-circle-o:before { - content: "\f01d"; -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e"; -} -.fa-refresh:before { - content: "\f021"; -} -.fa-list-alt:before { - content: "\f022"; -} -.fa-lock:before { - content: "\f023"; -} -.fa-flag:before { - content: "\f024"; -} -.fa-headphones:before { - content: "\f025"; -} -.fa-volume-off:before { - content: "\f026"; -} -.fa-volume-down:before { - content: "\f027"; -} -.fa-volume-up:before { - content: "\f028"; -} -.fa-qrcode:before { - content: "\f029"; -} -.fa-barcode:before { - content: "\f02a"; -} -.fa-tag:before { - content: "\f02b"; -} -.fa-tags:before { - content: "\f02c"; -} -.fa-book:before { - content: "\f02d"; -} -.fa-bookmark:before { - content: "\f02e"; -} -.fa-print:before { - content: "\f02f"; -} -.fa-camera:before { - content: "\f030"; -} -.fa-font:before { - content: "\f031"; -} -.fa-bold:before { - content: "\f032"; -} -.fa-italic:before { - content: "\f033"; -} -.fa-text-height:before { - content: "\f034"; -} -.fa-text-width:before { - content: "\f035"; -} -.fa-align-left:before { - content: "\f036"; -} -.fa-align-center:before { - content: "\f037"; -} -.fa-align-right:before { - content: "\f038"; -} -.fa-align-justify:before { - content: "\f039"; -} -.fa-list:before { - content: "\f03a"; -} -.fa-dedent:before, -.fa-outdent:before { - content: "\f03b"; -} -.fa-indent:before { - content: "\f03c"; -} -.fa-video-camera:before { - content: "\f03d"; -} -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\f03e"; -} -.fa-pencil:before { - content: "\f040"; -} -.fa-map-marker:before { - content: "\f041"; -} -.fa-adjust:before { - content: "\f042"; -} -.fa-tint:before { - content: "\f043"; -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\f044"; -} -.fa-share-square-o:before { - content: "\f045"; -} -.fa-check-square-o:before { - content: "\f046"; -} -.fa-arrows:before { - content: "\f047"; -} -.fa-step-backward:before { - content: "\f048"; -} -.fa-fast-backward:before { - content: "\f049"; -} -.fa-backward:before { - content: "\f04a"; -} -.fa-play:before { - content: "\f04b"; -} -.fa-pause:before { - content: "\f04c"; -} -.fa-stop:before { - content: "\f04d"; -} -.fa-forward:before { - content: "\f04e"; -} -.fa-fast-forward:before { - content: "\f050"; -} -.fa-step-forward:before { - content: "\f051"; -} -.fa-eject:before { - content: "\f052"; -} -.fa-chevron-left:before { - content: "\f053"; -} -.fa-chevron-right:before { - content: "\f054"; -} -.fa-plus-circle:before { - content: "\f055"; -} -.fa-minus-circle:before { - content: "\f056"; -} -.fa-times-circle:before { - content: "\f057"; -} -.fa-check-circle:before { - content: "\f058"; -} -.fa-question-circle:before { - content: "\f059"; -} -.fa-info-circle:before { - content: "\f05a"; -} -.fa-crosshairs:before { - content: "\f05b"; -} -.fa-times-circle-o:before { - content: "\f05c"; -} -.fa-check-circle-o:before { - content: "\f05d"; -} -.fa-ban:before { - content: "\f05e"; -} -.fa-arrow-left:before { - content: "\f060"; -} -.fa-arrow-right:before { - content: "\f061"; -} -.fa-arrow-up:before { - content: "\f062"; -} -.fa-arrow-down:before { - content: "\f063"; -} -.fa-mail-forward:before, -.fa-share:before { - content: "\f064"; -} -.fa-expand:before { - content: "\f065"; -} -.fa-compress:before { - content: "\f066"; -} -.fa-plus:before { - content: "\f067"; -} -.fa-minus:before { - content: "\f068"; -} -.fa-asterisk:before { - content: "\f069"; -} -.fa-exclamation-circle:before { - content: "\f06a"; -} -.fa-gift:before { - content: "\f06b"; -} -.fa-leaf:before { - content: "\f06c"; -} -.fa-fire:before { - content: "\f06d"; -} -.fa-eye:before { - content: "\f06e"; -} -.fa-eye-slash:before { - content: "\f070"; -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\f071"; -} -.fa-plane:before { - content: "\f072"; -} -.fa-calendar:before { - content: "\f073"; -} -.fa-random:before { - content: "\f074"; -} -.fa-comment:before { - content: "\f075"; -} -.fa-magnet:before { - content: "\f076"; -} -.fa-chevron-up:before { - content: "\f077"; -} -.fa-chevron-down:before { - content: "\f078"; -} -.fa-retweet:before { - content: "\f079"; -} -.fa-shopping-cart:before { - content: "\f07a"; -} -.fa-folder:before { - content: "\f07b"; -} -.fa-folder-open:before { - content: "\f07c"; -} -.fa-arrows-v:before { - content: "\f07d"; -} -.fa-arrows-h:before { - content: "\f07e"; -} -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\f080"; -} -.fa-twitter-square:before { - content: "\f081"; -} -.fa-facebook-square:before { - content: "\f082"; -} -.fa-camera-retro:before { - content: "\f083"; -} -.fa-key:before { - content: "\f084"; -} -.fa-gears:before, -.fa-cogs:before { - content: "\f085"; -} -.fa-comments:before { - content: "\f086"; -} -.fa-thumbs-o-up:before { - content: "\f087"; -} -.fa-thumbs-o-down:before { - content: "\f088"; -} -.fa-star-half:before { - content: "\f089"; -} -.fa-heart-o:before { - content: "\f08a"; -} -.fa-sign-out:before { - content: "\f08b"; -} -.fa-linkedin-square:before { - content: "\f08c"; -} -.fa-thumb-tack:before { - content: "\f08d"; -} -.fa-external-link:before { - content: "\f08e"; -} -.fa-sign-in:before { - content: "\f090"; -} -.fa-trophy:before { - content: "\f091"; -} -.fa-github-square:before { - content: "\f092"; -} -.fa-upload:before { - content: "\f093"; -} -.fa-lemon-o:before { - content: "\f094"; -} -.fa-phone:before { - content: "\f095"; -} -.fa-square-o:before { - content: "\f096"; -} -.fa-bookmark-o:before { - content: "\f097"; -} -.fa-phone-square:before { - content: "\f098"; -} -.fa-twitter:before { - content: "\f099"; -} -.fa-facebook-f:before, -.fa-facebook:before { - content: "\f09a"; -} -.fa-github:before { - content: "\f09b"; -} -.fa-unlock:before { - content: "\f09c"; -} -.fa-credit-card:before { - content: "\f09d"; -} -.fa-rss:before { - content: "\f09e"; -} -.fa-hdd-o:before { - content: "\f0a0"; -} -.fa-bullhorn:before { - content: "\f0a1"; -} -.fa-bell:before { - content: "\f0f3"; -} -.fa-certificate:before { - content: "\f0a3"; -} -.fa-hand-o-right:before { - content: "\f0a4"; -} -.fa-hand-o-left:before { - content: "\f0a5"; -} -.fa-hand-o-up:before { - content: "\f0a6"; -} -.fa-hand-o-down:before { - content: "\f0a7"; -} -.fa-arrow-circle-left:before { - content: "\f0a8"; -} -.fa-arrow-circle-right:before { - content: "\f0a9"; -} -.fa-arrow-circle-up:before { - content: "\f0aa"; -} -.fa-arrow-circle-down:before { - content: "\f0ab"; -} -.fa-globe:before { - content: "\f0ac"; -} -.fa-wrench:before { - content: "\f0ad"; -} -.fa-tasks:before { - content: "\f0ae"; -} -.fa-filter:before { - content: "\f0b0"; -} -.fa-briefcase:before { - content: "\f0b1"; -} -.fa-arrows-alt:before { - content: "\f0b2"; -} -.fa-group:before, -.fa-users:before { - content: "\f0c0"; -} -.fa-chain:before, -.fa-link:before { - content: "\f0c1"; -} -.fa-cloud:before { - content: "\f0c2"; -} -.fa-flask:before { - content: "\f0c3"; -} -.fa-cut:before, -.fa-scissors:before { - content: "\f0c4"; -} -.fa-copy:before, -.fa-files-o:before { - content: "\f0c5"; -} -.fa-paperclip:before { - content: "\f0c6"; -} -.fa-save:before, -.fa-floppy-o:before { - content: "\f0c7"; -} -.fa-square:before { - content: "\f0c8"; -} -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\f0c9"; -} -.fa-list-ul:before { - content: "\f0ca"; -} -.fa-list-ol:before { - content: "\f0cb"; -} -.fa-strikethrough:before { - content: "\f0cc"; -} -.fa-underline:before { - content: "\f0cd"; -} -.fa-table:before { - content: "\f0ce"; -} -.fa-magic:before { - content: "\f0d0"; -} -.fa-truck:before { - content: "\f0d1"; -} -.fa-pinterest:before { - content: "\f0d2"; -} -.fa-pinterest-square:before { - content: "\f0d3"; -} -.fa-google-plus-square:before { - content: "\f0d4"; -} -.fa-google-plus:before { - content: "\f0d5"; -} -.fa-money:before { - content: "\f0d6"; -} -.fa-caret-down:before { - content: "\f0d7"; -} -.fa-caret-up:before { - content: "\f0d8"; -} -.fa-caret-left:before { - content: "\f0d9"; -} -.fa-caret-right:before { - content: "\f0da"; -} -.fa-columns:before { - content: "\f0db"; -} -.fa-unsorted:before, -.fa-sort:before { - content: "\f0dc"; -} -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\f0dd"; -} -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\f0de"; -} -.fa-envelope:before { - content: "\f0e0"; -} -.fa-linkedin:before { - content: "\f0e1"; -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\f0e2"; -} -.fa-legal:before, -.fa-gavel:before { - content: "\f0e3"; -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\f0e4"; -} -.fa-comment-o:before { - content: "\f0e5"; -} -.fa-comments-o:before { - content: "\f0e6"; -} -.fa-flash:before, -.fa-bolt:before { - content: "\f0e7"; -} -.fa-sitemap:before { - content: "\f0e8"; -} -.fa-umbrella:before { - content: "\f0e9"; -} -.fa-paste:before, -.fa-clipboard:before { - content: "\f0ea"; -} -.fa-lightbulb-o:before { - content: "\f0eb"; -} -.fa-exchange:before { - content: "\f0ec"; -} -.fa-cloud-download:before { - content: "\f0ed"; -} -.fa-cloud-upload:before { - content: "\f0ee"; -} -.fa-user-md:before { - content: "\f0f0"; -} -.fa-stethoscope:before { - content: "\f0f1"; -} -.fa-suitcase:before { - content: "\f0f2"; -} -.fa-bell-o:before { - content: "\f0a2"; -} -.fa-coffee:before { - content: "\f0f4"; -} -.fa-cutlery:before { - content: "\f0f5"; -} -.fa-file-text-o:before { - content: "\f0f6"; -} -.fa-building-o:before { - content: "\f0f7"; -} -.fa-hospital-o:before { - content: "\f0f8"; -} -.fa-ambulance:before { - content: "\f0f9"; -} -.fa-medkit:before { - content: "\f0fa"; -} -.fa-fighter-jet:before { - content: "\f0fb"; -} -.fa-beer:before { - content: "\f0fc"; -} -.fa-h-square:before { - content: "\f0fd"; -} -.fa-plus-square:before { - content: "\f0fe"; -} -.fa-angle-double-left:before { - content: "\f100"; -} -.fa-angle-double-right:before { - content: "\f101"; -} -.fa-angle-double-up:before { - content: "\f102"; -} -.fa-angle-double-down:before { - content: "\f103"; -} -.fa-angle-left:before { - content: "\f104"; -} -.fa-angle-right:before { - content: "\f105"; -} -.fa-angle-up:before { - content: "\f106"; -} -.fa-angle-down:before { - content: "\f107"; -} -.fa-desktop:before { - content: "\f108"; -} -.fa-laptop:before { - content: "\f109"; -} -.fa-tablet:before { - content: "\f10a"; -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\f10b"; -} -.fa-circle-o:before { - content: "\f10c"; -} -.fa-quote-left:before { - content: "\f10d"; -} -.fa-quote-right:before { - content: "\f10e"; -} -.fa-spinner:before { - content: "\f110"; -} -.fa-circle:before { - content: "\f111"; -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\f112"; -} -.fa-github-alt:before { - content: "\f113"; -} -.fa-folder-o:before { - content: "\f114"; -} -.fa-folder-open-o:before { - content: "\f115"; -} -.fa-smile-o:before { - content: "\f118"; -} -.fa-frown-o:before { - content: "\f119"; -} -.fa-meh-o:before { - content: "\f11a"; -} -.fa-gamepad:before { - content: "\f11b"; -} -.fa-keyboard-o:before { - content: "\f11c"; -} -.fa-flag-o:before { - content: "\f11d"; -} -.fa-flag-checkered:before { - content: "\f11e"; -} -.fa-terminal:before { - content: "\f120"; -} -.fa-code:before { - content: "\f121"; -} -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\f122"; -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\f123"; -} -.fa-location-arrow:before { - content: "\f124"; -} -.fa-crop:before { - content: "\f125"; -} -.fa-code-fork:before { - content: "\f126"; -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\f127"; -} -.fa-question:before { - content: "\f128"; -} -.fa-info:before { - content: "\f129"; -} -.fa-exclamation:before { - content: "\f12a"; -} -.fa-superscript:before { - content: "\f12b"; -} -.fa-subscript:before { - content: "\f12c"; -} -.fa-eraser:before { - content: "\f12d"; -} -.fa-puzzle-piece:before { - content: "\f12e"; -} -.fa-microphone:before { - content: "\f130"; -} -.fa-microphone-slash:before { - content: "\f131"; -} -.fa-shield:before { - content: "\f132"; -} -.fa-calendar-o:before { - content: "\f133"; -} -.fa-fire-extinguisher:before { - content: "\f134"; -} -.fa-rocket:before { - content: "\f135"; -} -.fa-maxcdn:before { - content: "\f136"; -} -.fa-chevron-circle-left:before { - content: "\f137"; -} -.fa-chevron-circle-right:before { - content: "\f138"; -} -.fa-chevron-circle-up:before { - content: "\f139"; -} -.fa-chevron-circle-down:before { - content: "\f13a"; -} -.fa-html5:before { - content: "\f13b"; -} -.fa-css3:before { - content: "\f13c"; -} -.fa-anchor:before { - content: "\f13d"; -} -.fa-unlock-alt:before { - content: "\f13e"; -} -.fa-bullseye:before { - content: "\f140"; -} -.fa-ellipsis-h:before { - content: "\f141"; -} -.fa-ellipsis-v:before { - content: "\f142"; -} -.fa-rss-square:before { - content: "\f143"; -} -.fa-play-circle:before { - content: "\f144"; -} -.fa-ticket:before { - content: "\f145"; -} -.fa-minus-square:before { - content: "\f146"; -} -.fa-minus-square-o:before { - content: "\f147"; -} -.fa-level-up:before { - content: "\f148"; -} -.fa-level-down:before { - content: "\f149"; -} -.fa-check-square:before { - content: "\f14a"; -} -.fa-pencil-square:before { - content: "\f14b"; -} -.fa-external-link-square:before { - content: "\f14c"; -} -.fa-share-square:before { - content: "\f14d"; -} -.fa-compass:before { - content: "\f14e"; -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\f150"; -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\f151"; -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\f152"; -} -.fa-euro:before, -.fa-eur:before { - content: "\f153"; -} -.fa-gbp:before { - content: "\f154"; -} -.fa-dollar:before, -.fa-usd:before { - content: "\f155"; -} -.fa-rupee:before, -.fa-inr:before { - content: "\f156"; -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\f157"; -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\f158"; -} -.fa-won:before, -.fa-krw:before { - content: "\f159"; -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\f15a"; -} -.fa-file:before { - content: "\f15b"; -} -.fa-file-text:before { - content: "\f15c"; -} -.fa-sort-alpha-asc:before { - content: "\f15d"; -} -.fa-sort-alpha-desc:before { - content: "\f15e"; -} -.fa-sort-amount-asc:before { - content: "\f160"; -} -.fa-sort-amount-desc:before { - content: "\f161"; -} -.fa-sort-numeric-asc:before { - content: "\f162"; -} -.fa-sort-numeric-desc:before { - content: "\f163"; -} -.fa-thumbs-up:before { - content: "\f164"; -} -.fa-thumbs-down:before { - content: "\f165"; -} -.fa-youtube-square:before { - content: "\f166"; -} -.fa-youtube:before { - content: "\f167"; -} -.fa-xing:before { - content: "\f168"; -} -.fa-xing-square:before { - content: "\f169"; -} -.fa-youtube-play:before { - content: "\f16a"; -} -.fa-dropbox:before { - content: "\f16b"; -} -.fa-stack-overflow:before { - content: "\f16c"; -} -.fa-instagram:before { - content: "\f16d"; -} -.fa-flickr:before { - content: "\f16e"; -} -.fa-adn:before { - content: "\f170"; -} -.fa-bitbucket:before { - content: "\f171"; -} -.fa-bitbucket-square:before { - content: "\f172"; -} -.fa-tumblr:before { - content: "\f173"; -} -.fa-tumblr-square:before { - content: "\f174"; -} -.fa-long-arrow-down:before { - content: "\f175"; -} -.fa-long-arrow-up:before { - content: "\f176"; -} -.fa-long-arrow-left:before { - content: "\f177"; -} -.fa-long-arrow-right:before { - content: "\f178"; -} -.fa-apple:before { - content: "\f179"; -} -.fa-windows:before { - content: "\f17a"; -} -.fa-android:before { - content: "\f17b"; -} -.fa-linux:before { - content: "\f17c"; -} -.fa-dribbble:before { - content: "\f17d"; -} -.fa-skype:before { - content: "\f17e"; -} -.fa-foursquare:before { - content: "\f180"; -} -.fa-trello:before { - content: "\f181"; -} -.fa-female:before { - content: "\f182"; -} -.fa-male:before { - content: "\f183"; -} -.fa-gittip:before, -.fa-gratipay:before { - content: "\f184"; -} -.fa-sun-o:before { - content: "\f185"; -} -.fa-moon-o:before { - content: "\f186"; -} -.fa-archive:before { - content: "\f187"; -} -.fa-bug:before { - content: "\f188"; -} -.fa-vk:before { - content: "\f189"; -} -.fa-weibo:before { - content: "\f18a"; -} -.fa-renren:before { - content: "\f18b"; -} -.fa-pagelines:before { - content: "\f18c"; -} -.fa-stack-exchange:before { - content: "\f18d"; -} -.fa-arrow-circle-o-right:before { - content: "\f18e"; -} -.fa-arrow-circle-o-left:before { - content: "\f190"; -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\f191"; -} -.fa-dot-circle-o:before { - content: "\f192"; -} -.fa-wheelchair:before { - content: "\f193"; -} -.fa-vimeo-square:before { - content: "\f194"; -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\f195"; -} -.fa-plus-square-o:before { - content: "\f196"; -} -.fa-space-shuttle:before { - content: "\f197"; -} -.fa-slack:before { - content: "\f198"; -} -.fa-envelope-square:before { - content: "\f199"; -} -.fa-wordpress:before { - content: "\f19a"; -} -.fa-openid:before { - content: "\f19b"; -} -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\f19c"; -} -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\f19d"; -} -.fa-yahoo:before { - content: "\f19e"; -} -.fa-google:before { - content: "\f1a0"; -} -.fa-reddit:before { - content: "\f1a1"; -} -.fa-reddit-square:before { - content: "\f1a2"; -} -.fa-stumbleupon-circle:before { - content: "\f1a3"; -} -.fa-stumbleupon:before { - content: "\f1a4"; -} -.fa-delicious:before { - content: "\f1a5"; -} -.fa-digg:before { - content: "\f1a6"; -} -.fa-pied-piper:before { - content: "\f1a7"; -} -.fa-pied-piper-alt:before { - content: "\f1a8"; -} -.fa-drupal:before { - content: "\f1a9"; -} -.fa-joomla:before { - content: "\f1aa"; -} -.fa-language:before { - content: "\f1ab"; -} -.fa-fax:before { - content: "\f1ac"; -} -.fa-building:before { - content: "\f1ad"; -} -.fa-child:before { - content: "\f1ae"; -} -.fa-paw:before { - content: "\f1b0"; -} -.fa-spoon:before { - content: "\f1b1"; -} -.fa-cube:before { - content: "\f1b2"; -} -.fa-cubes:before { - content: "\f1b3"; -} -.fa-behance:before { - content: "\f1b4"; -} -.fa-behance-square:before { - content: "\f1b5"; -} -.fa-steam:before { - content: "\f1b6"; -} -.fa-steam-square:before { - content: "\f1b7"; -} -.fa-recycle:before { - content: "\f1b8"; -} -.fa-automobile:before, -.fa-car:before { - content: "\f1b9"; -} -.fa-cab:before, -.fa-taxi:before { - content: "\f1ba"; -} -.fa-tree:before { - content: "\f1bb"; -} -.fa-spotify:before { - content: "\f1bc"; -} -.fa-deviantart:before { - content: "\f1bd"; -} -.fa-soundcloud:before { - content: "\f1be"; -} -.fa-database:before { - content: "\f1c0"; -} -.fa-file-pdf-o:before { - content: "\f1c1"; -} -.fa-file-word-o:before { - content: "\f1c2"; -} -.fa-file-excel-o:before { - content: "\f1c3"; -} -.fa-file-powerpoint-o:before { - content: "\f1c4"; -} -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\f1c5"; -} -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\f1c6"; -} -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\f1c7"; -} -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\f1c8"; -} -.fa-file-code-o:before { - content: "\f1c9"; -} -.fa-vine:before { - content: "\f1ca"; -} -.fa-codepen:before { - content: "\f1cb"; -} -.fa-jsfiddle:before { - content: "\f1cc"; -} -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\f1cd"; -} -.fa-circle-o-notch:before { - content: "\f1ce"; -} -.fa-ra:before, -.fa-rebel:before { - content: "\f1d0"; -} -.fa-ge:before, -.fa-empire:before { - content: "\f1d1"; -} -.fa-git-square:before { - content: "\f1d2"; -} -.fa-git:before { - content: "\f1d3"; -} -.fa-hacker-news:before { - content: "\f1d4"; -} -.fa-tencent-weibo:before { - content: "\f1d5"; -} -.fa-qq:before { - content: "\f1d6"; -} -.fa-wechat:before, -.fa-weixin:before { - content: "\f1d7"; -} -.fa-send:before, -.fa-paper-plane:before { - content: "\f1d8"; -} -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\f1d9"; -} -.fa-history:before { - content: "\f1da"; -} -.fa-genderless:before, -.fa-circle-thin:before { - content: "\f1db"; -} -.fa-header:before { - content: "\f1dc"; -} -.fa-paragraph:before { - content: "\f1dd"; -} -.fa-sliders:before { - content: "\f1de"; -} -.fa-share-alt:before { - content: "\f1e0"; -} -.fa-share-alt-square:before { - content: "\f1e1"; -} -.fa-bomb:before { - content: "\f1e2"; -} -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\f1e3"; -} -.fa-tty:before { - content: "\f1e4"; -} -.fa-binoculars:before { - content: "\f1e5"; -} -.fa-plug:before { - content: "\f1e6"; -} -.fa-slideshare:before { - content: "\f1e7"; -} -.fa-twitch:before { - content: "\f1e8"; -} -.fa-yelp:before { - content: "\f1e9"; -} -.fa-newspaper-o:before { - content: "\f1ea"; -} -.fa-wifi:before { - content: "\f1eb"; -} -.fa-calculator:before { - content: "\f1ec"; -} -.fa-paypal:before { - content: "\f1ed"; -} -.fa-google-wallet:before { - content: "\f1ee"; -} -.fa-cc-visa:before { - content: "\f1f0"; -} -.fa-cc-mastercard:before { - content: "\f1f1"; -} -.fa-cc-discover:before { - content: "\f1f2"; -} -.fa-cc-amex:before { - content: "\f1f3"; -} -.fa-cc-paypal:before { - content: "\f1f4"; -} -.fa-cc-stripe:before { - content: "\f1f5"; -} -.fa-bell-slash:before { - content: "\f1f6"; -} -.fa-bell-slash-o:before { - content: "\f1f7"; -} -.fa-trash:before { - content: "\f1f8"; -} -.fa-copyright:before { - content: "\f1f9"; -} -.fa-at:before { - content: "\f1fa"; -} -.fa-eyedropper:before { - content: "\f1fb"; -} -.fa-paint-brush:before { - content: "\f1fc"; -} -.fa-birthday-cake:before { - content: "\f1fd"; -} -.fa-area-chart:before { - content: "\f1fe"; -} -.fa-pie-chart:before { - content: "\f200"; -} -.fa-line-chart:before { - content: "\f201"; -} -.fa-lastfm:before { - content: "\f202"; -} -.fa-lastfm-square:before { - content: "\f203"; -} -.fa-toggle-off:before { - content: "\f204"; -} -.fa-toggle-on:before { - content: "\f205"; -} -.fa-bicycle:before { - content: "\f206"; -} -.fa-bus:before { - content: "\f207"; -} -.fa-ioxhost:before { - content: "\f208"; -} -.fa-angellist:before { - content: "\f209"; -} -.fa-cc:before { - content: "\f20a"; -} -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\f20b"; -} -.fa-meanpath:before { - content: "\f20c"; -} -.fa-buysellads:before { - content: "\f20d"; -} -.fa-connectdevelop:before { - content: "\f20e"; -} -.fa-dashcube:before { - content: "\f210"; -} -.fa-forumbee:before { - content: "\f211"; -} -.fa-leanpub:before { - content: "\f212"; -} -.fa-sellsy:before { - content: "\f213"; -} -.fa-shirtsinbulk:before { - content: "\f214"; -} -.fa-simplybuilt:before { - content: "\f215"; -} -.fa-skyatlas:before { - content: "\f216"; -} -.fa-cart-plus:before { - content: "\f217"; -} -.fa-cart-arrow-down:before { - content: "\f218"; -} -.fa-diamond:before { - content: "\f219"; -} -.fa-ship:before { - content: "\f21a"; -} -.fa-user-secret:before { - content: "\f21b"; -} -.fa-motorcycle:before { - content: "\f21c"; -} -.fa-street-view:before { - content: "\f21d"; -} -.fa-heartbeat:before { - content: "\f21e"; -} -.fa-venus:before { - content: "\f221"; -} -.fa-mars:before { - content: "\f222"; -} -.fa-mercury:before { - content: "\f223"; -} -.fa-transgender:before { - content: "\f224"; -} -.fa-transgender-alt:before { - content: "\f225"; -} -.fa-venus-double:before { - content: "\f226"; -} -.fa-mars-double:before { - content: "\f227"; -} -.fa-venus-mars:before { - content: "\f228"; -} -.fa-mars-stroke:before { - content: "\f229"; -} -.fa-mars-stroke-v:before { - content: "\f22a"; -} -.fa-mars-stroke-h:before { - content: "\f22b"; -} -.fa-neuter:before { - content: "\f22c"; -} -.fa-facebook-official:before { - content: "\f230"; -} -.fa-pinterest-p:before { - content: "\f231"; -} -.fa-whatsapp:before { - content: "\f232"; -} -.fa-server:before { - content: "\f233"; -} -.fa-user-plus:before { - content: "\f234"; -} -.fa-user-times:before { - content: "\f235"; -} -.fa-hotel:before, -.fa-bed:before { - content: "\f236"; -} -.fa-viacoin:before { - content: "\f237"; -} -.fa-train:before { - content: "\f238"; -} -.fa-subway:before { - content: "\f239"; -} -.fa-medium:before { - content: "\f23a"; -} diff --git a/src/scss/_mixins.scss b/src/scss/_mixins.scss deleted file mode 100755 index b2a8a57..0000000 --- a/src/scss/_mixins.scss +++ /dev/null @@ -1,97 +0,0 @@ -// Usage: Light-on-dark = on -@mixin font-smoothing($value: on) { - @if $value == on { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - @else { - -webkit-font-smoothing: subpixel-antialiased; - -moz-osx-font-smoothing: auto; - } -} - -@mixin box-sizing($model) { - -webkit-box-sizing: $model; - -moz-box-sizing: $model; - box-sizing: $model; -} - -@mixin border-radius($radius) { - -moz-border-radius: $radius; - -webkit-border-radius: $radius; - border-radius: $radius; -} - -@mixin transition($transition) { - -moz-transition: $transition; - -webkit-transition: $transition; - -o-transition: $transition; - transition: $transition; -} - -@mixin box-shadow ($boxshadow) { - -moz-box-shadow: $boxshadow; - -webkit-box-shadow: $boxshadow; - box-shadow: $boxshadow; -} -@mixin linear-gradient4 ($f1, $f2, $f3, $f4) { - background: -moz-linear-gradient(top, $f1, $f2, $f3, $f4); /* FF3.6+ */ - background: -webkit-linear-gradient(top, $f1, $f2, $f3, $f4); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, $f1, $f2, $f3, $f4); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, $f1, $f2, $f3, $f4); /* IE10+ */ - background: linear-gradient(to bottom, $f1, $f2, $f3, $f4); /* W3C */ -} - -@mixin linear-gradient ($f1, $f2) { - background: -moz-linear-gradient(top, $f1 0%, $f2 100%); /* FF3.6+ */ - background: -webkit-linear-gradient(top, $f1 0%, $f2 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, $f1 0%, $f2 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, $f1 0%, $f2 100%); /* IE10+ */ - background: linear-gradient(to bottom, $f1 0%, $f2 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$f1', endColorstr='$f2',GradientType=0 ); /* IE6-9 */ -} - -@mixin linear-gradient6 ($a1, $a2, $a3, $a4, $a5, $a6) { - background: -moz-linear-gradient($a1, $a2, $a3, $a4, $a5, $a6); /* FF3.6+ */ - background: -webkit-linear-gradient($a1, $a2, $a3, $a4, $a5, $a6); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient($a1, $a2, $a3, $a4, $a5, $a6); /* Opera 11.10+ */ - background: -ms-linear-gradient($a1, $a2, $a3, $a4, $a5, $a6); /* IE10+ */ - background: linear-gradient($a1, $a2, $a3, $a4, $a5, $a6); /* W3C */ -} - -@mixin hyphens ($value) { - -webkit-hyphens: $value; - -moz-hyphens: $value; - -ms-hyphens: $value; - hyphens: $value; -} - -@mixin vertical-align { - position: relative; - top: 50%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); - - // IE 6-10 hack - position: inherit\9; - top: inherit\9; - -ms-transform: translateY(0%)\9; - display:table-cell\9; - vertical-align:middle\9; -} - -@mixin vertical-align2 { - display: flex; - align-items: center; - justify-content: center; -} - -@mixin flexbox { - display: -webkit-box; - -webkit-box-orient: horizontal; - display: -moz-box; - -moz-box-orient: horizontal; - display: box; - box-orient: horizontal; -} diff --git a/src/scss/_normalize.scss b/src/scss/_normalize.scss deleted file mode 100644 index 458eea1..0000000 --- a/src/scss/_normalize.scss +++ /dev/null @@ -1,427 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/src/scss/_responsive-utilities.scss b/src/scss/_responsive-utilities.scss deleted file mode 100644 index 74bac7c..0000000 --- a/src/scss/_responsive-utilities.scss +++ /dev/null @@ -1,43 +0,0 @@ -/* - - Responsive Utilities - -*/ - -img, -canvas, -iframe, -video, -svg, -select, -textarea { - max-width: 100%; -} - -/* Wrap tables or pre elements in a div with this class */ - -.overflow-container { - overflow-y: scroll; -} - -/* - Aspect ratios for media objects i.e canvas, iframe, video, svg etc. - Defaults to 16x9 -*/ - -.aspect-ratio { - height: 0; - padding-top: 56.25%; - position: relative; -} - -.aspect-ratio--object { - height: 100%; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 100%; - z-index: 100; -} diff --git a/src/scss/main.scss b/src/scss/main.scss deleted file mode 100644 index 45169b1..0000000 --- a/src/scss/main.scss +++ /dev/null @@ -1,152 +0,0 @@ -/*----------------------------------------*\ - Schwerkraftlabor.de | @Gehirnfussel -\*----------------------------------------*/ - -/* Imports ---------------------------*/ - -@import 'normalize'; -@import 'defaults'; -@import 'mixins'; -/* @import 'font-awesome'; */ - -/* Content ---------------------------*/ - -$linkcolor: #660000; - -body { - color: #000; - font-family: $font-sans-serif; - font-size: 12pt; - @include font-smoothing(off); -} -h1, h2, h3 { - font-family: $font-sans-serif; - font-weight: 700; - line-height: 1.2em; - margin: 0.4em 0.0em; -} -h1 { - font-size: 2.0em; - word-break: break-all; -} -h2 { - font-size: 1.5em; -} -h3 { - font-size: 1.25em; -} -p { - line-height: 1.45em; - padding: 0.5em 0; -} -ul { - li { - margin: 0.3em 0em 0.3em 0.5em; - list-style-position: inside; - list-style-type: square; - font-size: 1em; - - p { - padding-left: 1em; - } - } -} -a { - color: $linkcolor; - transition: color 0.2s ease; - &:hover, &:active, &:focus{ - color: lighten($linkcolor, 15%); - } - &:active { - position: relative; - top: 1px; - } -} -a.notdown { - &:active { - position: inherit; - } -} -@media screen { - a.external:after { - content: "\00A0" "[" "\2197" "]"; - } -} -@media print { - a[href]:after { - content: " (" attr(href) ")"; - } -} - -/* Header ---------------------------*/ - - - - -/* Content ---------------------------*/ - -.fa { - margin-right: 0.3em; - speak: none; /* Won't speak the symbol | badly supported by browsers */ -} - -.button { - text-overflow: ellipsis; // Overflow = "..." -} - - - -/* Footer ---------------------------*/ - - - - -/* Responsive Stuff ---------------------------*/ - -@media screen and (max-width: 768px) { - .column.full, - .column.three-fourth, - .column.two-thirds, - .column.half { - float: none; - margin: 0; - width: 100%; - } - .column.one-third, - .column.one-fourth { - float: left; - margin: 0; - width: 50%; - padding: 0.4em; - } -} - -@media screen and (max-width: 568px) { - .column.one-third, - .column.two-third { - float: none; - margin: 0; - width: 100%; - } -} - -@media screen and (max-width: 480px) { -.column.one-third, -.column.one-fourth, -.column.full, -.column.three-fourth, -.column.two-thirds, -.column.half, -.column.full { - float: left; - margin: 0; - width: 100%; -} - -}