diff --git a/it4i_theme/assets/fonts/icon.json b/it4i_theme/assets/fonts/icon.json new file mode 100644 index 0000000000000000000000000000000000000000..fc26e5702c4873a8728da597acfe1854a8aea6a2 --- /dev/null +++ b/it4i_theme/assets/fonts/icon.json @@ -0,0 +1,348 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M661.333 597.333h-33.92l-11.733-11.733c41.813-48.427 66.987-111.36 66.987-180.267 0-153.173-124.16-277.333-277.333-277.333s-277.333 124.16-277.333 277.333 124.16 277.333 277.333 277.333c68.907 0 131.84-25.173 180.267-66.773l11.733 11.733v33.707l213.333 212.907 63.573-63.573-212.907-213.333zM405.333 597.333c-106.027 0-192-85.973-192-192s85.973-192 192-192 192 85.973 192 192-85.973 192-192 192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "search" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 0, + "order": 7, + "prevSize": 24, + "code": 58880, + "name": "search" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M853.333 469.333h-519.253l238.293-238.293-60.373-60.373-341.333 341.333 341.333 341.333 60.373-60.373-238.293-238.293h519.253v-85.333z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "arrow-back" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 1, + "order": 4, + "prevSize": 24, + "code": 58881, + "name": "arrow-back" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M426.667 256l-60.373 60.373 195.627 195.627-195.627 195.627 60.373 60.373 256-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "chevron-right" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 2, + "order": 9, + "prevSize": 24, + "code": 58882, + "name": "chevron-right" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M810.667 273.707l-60.373-60.373-238.293 238.293-238.293-238.293-60.373 60.373 238.293 238.293-238.293 238.293 60.373 60.373 238.293-238.293 238.293 238.293 60.373-60.373-238.293-238.293z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "close" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 3, + "order": 8, + "prevSize": 24, + "code": 58883, + "name": "close" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M128 768h768v-85.333h-768v85.333zM128 554.667h768v-85.333h-768v85.333zM128 256v85.333h768v-85.333h-768z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "menu" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 4, + "order": 10, + "prevSize": 24, + "code": 58884, + "name": "menu" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M512 170.667l-60.373 60.373 238.293 238.293h-519.253v85.333h519.253l-238.293 238.293 60.373 60.373 341.333-341.333z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "arrow-forward" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 5, + "order": 15, + "prevSize": 24, + "code": 58885, + "name": "arrow-forward" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M1024 194.418c-37.676 16.708-78.164 28.002-120.66 33.080 43.372-26 76.686-67.17 92.372-116.23-40.596 24.078-85.556 41.56-133.41 50.98-38.32-40.83-92.922-66.34-153.346-66.34-116.022 0-210.088 94.058-210.088 210.078 0 16.466 1.858 32.5 5.44 47.878-174.6-8.764-329.402-92.4-433.018-219.506-18.084 31.028-28.446 67.116-28.446 105.618 0 72.888 37.088 137.192 93.46 174.866-34.438-1.092-66.832-10.542-95.154-26.278-0.020 0.876-0.020 1.756-0.020 2.642 0 101.788 72.418 186.696 168.522 206-17.626 4.8-36.188 7.372-55.348 7.372-13.538 0-26.698-1.32-39.528-3.772 26.736 83.46 104.32 144.206 196.252 145.896-71.9 56.35-162.486 89.934-260.916 89.934-16.958 0-33.68-0.994-50.116-2.94 92.972 59.61 203.402 94.394 322.042 94.394 386.422 0 597.736-320.124 597.736-597.744 0-9.108-0.206-18.168-0.61-27.18 41.056-29.62 76.672-66.62 104.836-108.748z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "twitter", + "brand", + "tweet", + "social" + ], + "defaultCode": 58525, + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 6, + "order": 9, + "prevSize": 24, + "code": 58886, + "ligatures": "twitter, brand11", + "name": "twitter" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M810.667 384h-170.667v-256h-256v256h-170.667l298.667 298.667 298.667-298.667zM213.333 768v85.333h597.333v-85.333h-597.333z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "file-download" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 7, + "order": 10, + "prevSize": 24, + "code": 58888, + "name": "download" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M512 736.853l263.68 159.147-69.973-299.947 232.96-201.813-306.773-26.027-119.893-282.88-119.893 282.88-306.773 26.027 232.96 201.813-69.973 299.947z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "star" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "id": 8, + "order": 9, + "prevSize": 24, + "code": 58889, + "name": "star" + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M512.008 12.642c-282.738 0-512.008 229.218-512.008 511.998 0 226.214 146.704 418.132 350.136 485.836 25.586 4.738 34.992-11.11 34.992-24.632 0-12.204-0.48-52.542-0.696-95.324-142.448 30.976-172.504-60.41-172.504-60.41-23.282-59.176-56.848-74.916-56.848-74.916-46.452-31.778 3.51-31.124 3.51-31.124 51.4 3.61 78.476 52.766 78.476 52.766 45.672 78.27 119.776 55.64 149.004 42.558 4.588-33.086 17.852-55.68 32.506-68.464-113.73-12.942-233.276-56.85-233.276-253.032 0-55.898 20.004-101.574 52.76-137.428-5.316-12.9-22.854-64.972 4.952-135.5 0 0 43.006-13.752 140.84 52.49 40.836-11.348 84.636-17.036 128.154-17.234 43.502 0.198 87.336 5.886 128.256 17.234 97.734-66.244 140.656-52.49 140.656-52.49 27.872 70.528 10.35 122.6 5.036 135.5 32.82 35.856 52.694 81.532 52.694 137.428 0 196.654-119.778 239.95-233.79 252.624 18.364 15.89 34.724 47.046 34.724 94.812 0 68.508-0.596 123.644-0.596 140.508 0 13.628 9.222 29.594 35.172 24.566 203.322-67.776 349.842-259.626 349.842-485.768 0-282.78-229.234-511.998-511.992-511.998z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "github", + "brand", + "octacat", + "social" + ], + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 27, + "prevSize": 24, + "ligatures": "github, brand40", + "name": "github", + "id": 9, + "code": 58887 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M554 598v-172h-84v172h84zM554 768v-86h-84v86h84zM42 896l470-810 470 810h-940z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "warning" + ], + "defaultCode": 57346, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 11, + "prevSize": 24, + "name": "warning", + "ligatures": "warning", + "id": 2, + "code": 58896 + }, + "setIdx": 1, + "setId": 2, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M614 256h240v426h-300l-16-84h-240v298h-84v-726h384z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "flag" + ], + "defaultCode": 57683, + "grid": 24 + }, + "attrs": [], + "properties": { + "order": 13, + "prevSize": 24, + "name": "note", + "ligatures": "flag", + "id": 140, + "code": 58897 + }, + "setIdx": 1, + "setId": 2, + "iconIdx": 140 + } + ], + "height": 1024, + "metadata": { + "name": "icon" + }, + "preferences": { + "showGlyphs": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "icon-", + "metadata": { + "fontFamily": "icon", + "majorVersion": 1, + "minorVersion": 0 + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "ie7": true, + "showSelector": true, + "selector": "class", + "classSelector": ".icon", + "showMetrics": true, + "showMetadata": true, + "cssVars": true, + "embed": false, + "noie8": false + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 4473924, + "bgColor": 16777215 + }, + "historySize": 100, + "showCodes": true, + "gridSize": 16 + } +} \ No newline at end of file diff --git a/it4i_theme/assets/images/favicon.ico b/it4i_theme/assets/images/favicon.ico index d51e1c2571169b49424f1ab0f91f59c0b4e63b34..e85006a3ce1c6fd81faa6d5a13095519c4a6fc96 100644 Binary files a/it4i_theme/assets/images/favicon.ico and b/it4i_theme/assets/images/favicon.ico differ diff --git a/it4i_theme/assets/javascripts/application.js b/it4i_theme/assets/javascripts/application.js index 1199f2e1dc6c0bfde788472cfe1e8e3b6181de2d..d1ffbec30ec5b39ce047feb48276d784ea3395df 100644 --- a/it4i_theme/assets/javascripts/application.js +++ b/it4i_theme/assets/javascripts/application.js @@ -1 +1,530 @@ -function pegasus(t,e){return e=new XMLHttpRequest,e.open("GET",t),t=[],e.onreadystatechange=e.then=function(n,o,i,r){if(n&&n.call&&(t=[,n,o]),4==e.readyState&&(i=t[0|e.status/200])){try{r=JSON.parse(e.responseText)}catch(s){r=null}i(r,e)}},e.send(),e}if("document"in self&&("classList"in document.createElement("_")?!function(){"use strict";var t=document.createElement("_");if(t.classList.add("c1","c2"),!t.classList.contains("c2")){var e=function(t){var e=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){var n,o=arguments.length;for(n=0;o>n;n++)t=arguments[n],e.call(this,t)}};e("add"),e("remove")}if(t.classList.toggle("c3",!1),t.classList.contains("c3")){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}t=null}():!function(t){"use strict";if("Element"in t){var e="classList",n="prototype",o=t.Element[n],i=Object,r=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},s=Array[n].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},a=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},c=function(t,e){if(""===e)throw new a("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new a("INVALID_CHARACTER_ERR","String contains an invalid character");return s.call(t,e)},l=function(t){for(var e=r.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],o=0,i=n.length;i>o;o++)this.push(n[o]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},u=l[n]=[],d=function(){return new l(this)};if(a[n]=Error[n],u.item=function(t){return this[t]||null},u.contains=function(t){return t+="",-1!==c(this,t)},u.add=function(){var t,e=arguments,n=0,o=e.length,i=!1;do t=e[n]+"",-1===c(this,t)&&(this.push(t),i=!0);while(++n<o);i&&this._updateClassName()},u.remove=function(){var t,e,n=arguments,o=0,i=n.length,r=!1;do for(t=n[o]+"",e=c(this,t);-1!==e;)this.splice(e,1),r=!0,e=c(this,t);while(++o<i);r&&this._updateClassName()},u.toggle=function(t,e){t+="";var n=this.contains(t),o=n?e!==!0&&"remove":e!==!1&&"add";return o&&this[o](t),e===!0||e===!1?e:!n},u.toString=function(){return this.join(" ")},i.defineProperty){var h={get:d,enumerable:!0,configurable:!0};try{i.defineProperty(o,e,h)}catch(f){-2146823252===f.number&&(h.enumerable=!1,i.defineProperty(o,e,h))}}else i[n].__defineGetter__&&o.__defineGetter__(e,d)}}(self)),function(){"use strict";function t(e,o){function i(t,e){return function(){return t.apply(e,arguments)}}var r;if(o=o||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=o.touchBoundary||10,this.layer=e,this.tapDelay=o.tapDelay||200,this.tapTimeout=o.tapTimeout||700,!t.notNeeded(e)){for(var s=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],a=this,c=0,l=s.length;l>c;c++)a[s[c]]=i(a[s[c]],a);n&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,o){var i=Node.prototype.removeEventListener;"click"===t?i.call(e,t,n.hijacked||n,o):i.call(e,t,n,o)},e.addEventListener=function(t,n,o){var i=Node.prototype.addEventListener;"click"===t?i.call(e,t,n.hijacked||(n.hijacked=function(t){t.propagationStopped||n(t)}),o):i.call(e,t,n,o)}),"function"==typeof e.onclick&&(r=e.onclick,e.addEventListener("click",function(t){r(t)},!1),e.onclick=null)}}var e=navigator.userAgent.indexOf("Windows Phone")>=0,n=navigator.userAgent.indexOf("Android")>0&&!e,o=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,i=o&&/OS 4_\d(_\d)?/.test(navigator.userAgent),r=o&&/OS [6-7]_\d/.test(navigator.userAgent),s=navigator.userAgent.indexOf("BB10")>0;t.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(o&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},t.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!n;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},t.prototype.sendClick=function(t,e){var n,o;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),o=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,o.screenX,o.screenY,o.clientX,o.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},t.prototype.determineEventType=function(t){return n&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},t.prototype.focus=function(t){var e;o&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},t.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},t.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},t.prototype.onTouchStart=function(t){var e,n,r;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],o){if(r=window.getSelection(),r.rangeCount&&!r.isCollapsed)return!0;if(!i){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTime<this.tapDelay&&t.preventDefault(),!0},t.prototype.touchHasMoved=function(t){var e=t.changedTouches[0],n=this.touchBoundary;return Math.abs(e.pageX-this.touchStartX)>n||Math.abs(e.pageY-this.touchStartY)>n?!0:!1},t.prototype.onTouchMove=function(t){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},t.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},t.prototype.onTouchEnd=function(t){var e,s,a,c,l,u=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(t.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,s=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,r&&(l=t.changedTouches[0],u=document.elementFromPoint(l.pageX-window.pageXOffset,l.pageY-window.pageYOffset)||u,u.fastClickScrollParent=this.targetElement.fastClickScrollParent),a=u.tagName.toLowerCase(),"label"===a){if(e=this.findControl(u)){if(this.focus(u),n)return!1;u=e}}else if(this.needsFocus(u))return t.timeStamp-s>100||o&&window.top!==window&&"input"===a?(this.targetElement=null,!1):(this.focus(u),this.sendClick(u,t),o&&"select"===a||(this.targetElement=null,t.preventDefault()),!1);return o&&!i&&(c=u.fastClickScrollParent,c&&c.fastClickLastScrollTop!==c.scrollTop)?!0:(this.needsClick(u)||(t.preventDefault(),this.sendClick(u,t)),!1)},t.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},t.prototype.onMouse=function(t){return this.targetElement?t.forwardedTouchEvent?!0:t.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1):!0:!0},t.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail?!0:(e=this.onMouse(t),e||(this.targetElement=null),e)},t.prototype.destroy=function(){var t=this.layer;n&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},t.notNeeded=function(t){var e,o,i,r;if("undefined"==typeof window.ontouchstart)return!0;if(o=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!n)return!0;if(e=document.querySelector("meta[name=viewport]")){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(o>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(s&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction?!0:(r=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],r>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(-1!==e.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===t.style.touchAction||"manipulation"===t.style.touchAction?!0:!1)},t.attach=function(e,n){return new t(e,n)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?(module.exports=t.attach,module.exports.FastClick=t):window.FastClick=t}(),function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.6.0",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.utils.asString=function(t){return void 0===t||null===t?"":t.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(e){return arguments.length&&null!=e&&void 0!=e?Array.isArray(e)?e.map(function(e){return t.utils.asString(e).toLowerCase()}):e.toString().trim().toLowerCase().split(t.tokenizer.seperator):[]},t.tokenizer.seperator=/[\s\-]+/,t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var o=t.Pipeline.registeredFunctions[e];if(!o)throw new Error("Cannot load un-registered function: "+e);n.add(o)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var o=this._stack.indexOf(e);if(-1==o)throw new Error("Cannot find existingFn");o+=1,this._stack.splice(o,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var o=this._stack.indexOf(e);if(-1==o)throw new Error("Cannot find existingFn");this._stack.splice(o,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,o=this._stack.length,i=0;n>i;i++){for(var r=t[i],s=0;o>s&&(r=this._stack[s](r,i,t),void 0!==r&&""!==r);s++);void 0!==r&&""!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var o=this.list;if(!o)return this.list=new t.Vector.Node(e,n,o),this.length++;if(e<o.idx)return this.list=new t.Vector.Node(e,n,o),this.length++;for(var i=o,r=o.next;void 0!=r;){if(e<r.idx)return i.next=new t.Vector.Node(e,n,r),this.length++;i=r,r=r.next}return i.next=new t.Vector.Node(e,n,r),this.length++},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var t,e=this.list,n=0;e;)t=e.val,n+=t*t,e=e.next;return this._magnitude=Math.sqrt(n)},t.Vector.prototype.dot=function(t){for(var e=this.list,n=t.list,o=0;e&&n;)e.idx<n.idx?e=e.next:e.idx>n.idx?n=n.next:(o+=e.val*n.val,e=e.next,n=n.next);return o},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t<arguments.length;t++)e=arguments[t],~this.indexOf(e)||this.elements.splice(this.locationFor(e),0,e);this.length=this.elements.length},t.SortedSet.prototype.toArray=function(){return this.elements.slice()},t.SortedSet.prototype.map=function(t,e){return this.elements.map(t,e)},t.SortedSet.prototype.forEach=function(t,e){return this.elements.forEach(t,e)},t.SortedSet.prototype.indexOf=function(t){for(var e=0,n=this.elements.length,o=n-e,i=e+Math.floor(o/2),r=this.elements[i];o>1;){if(r===t)return i;t>r&&(e=i),r>t&&(n=i),o=n-e,i=e+Math.floor(o/2),r=this.elements[i]}return r===t?i:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,o=n-e,i=e+Math.floor(o/2),r=this.elements[i];o>1;)t>r&&(e=i),r>t&&(n=i),o=n-e,i=e+Math.floor(o/2),r=this.elements[i];return r>t?i:t>r?i+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,o=0,i=0,r=this.length,s=e.length,a=this.elements,c=e.elements;;){if(o>r-1||i>s-1)break;a[o]!==c[i]?a[o]<c[i]?o++:a[o]>c[i]&&i++:(n.add(a[o]),o++,i++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,o;return this.length>=t.length?(e=this,n=t):(e=t,n=this),o=e.clone(),o.add.apply(o,n.toArray()),o},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var o={},i=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));o[n.name]=r,t.SortedSet.prototype.add.apply(i,r)},this),this.documentStore.set(r,i),t.SortedSet.prototype.add.apply(this.corpusTokens,i.toArray());for(var s=0;s<i.length;s++){var a=i.elements[s],c=this._fields.reduce(function(t,e){var n=o[e.name].length;if(!n)return t;var i=o[e.name].filter(function(t){return t===a}).length;return t+i/n*e.boost},0);this.tokenStore.add(a,{ref:r,tf:c})}n&&this.eventEmitter.emit("add",e,this)},t.Index.prototype.remove=function(t,e){var n=t[this._ref],e=void 0===e?!0:e;if(this.documentStore.has(n)){var o=this.documentStore.get(n);this.documentStore.remove(n),o.forEach(function(t){this.tokenStore.remove(t,n)},this),e&&this.eventEmitter.emit("remove",t,this)}},t.Index.prototype.update=function(t,e){var e=void 0===e?!0:e;this.remove(t,!1),this.add(t,!1),e&&this.eventEmitter.emit("update",t,this)},t.Index.prototype.idf=function(t){var e="@"+t;if(Object.prototype.hasOwnProperty.call(this._idfCache,e))return this._idfCache[e];var n=this.tokenStore.count(t),o=1;return n>0&&(o=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=o},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),o=new t.Vector,i=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,c=this,l=this.tokenStore.expand(e).reduce(function(n,i){var r=c.corpusTokens.indexOf(i),s=c.idf(i),l=1,u=new t.SortedSet;if(i!==e){var d=Math.max(3,i.length-e.length);l=1/Math.log(d)}r>-1&&o.insert(r,a*s*l);for(var h=c.tokenStore.get(i),f=Object.keys(h),p=f.length,m=0;p>m;m++)u.add(h[f[m]].ref);return n.union(u)},new t.SortedSet);i.push(l)},this);var a=i.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:o.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),o=n.length,i=new t.Vector,r=0;o>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,c=this.idf(s);i.insert(this.corpusTokens.indexOf(s),a*c)}return i},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,o){return n[o]=t.SortedSet.load(e.store[o]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",o="[aeiouy]",i=n+"[^aeiouy]*",r=o+"[aeiou]*",s="^("+i+")?"+r+i,a="^("+i+")?"+r+i+"("+r+")?$",c="^("+i+")?"+r+i+r+i,l="^("+i+")?"+o,u=new RegExp(s),d=new RegExp(c),h=new RegExp(a),f=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,g=/^(.+?)(ed|ing)$/,y=/.$/,w=/(at|bl|iz)$/,S=new RegExp("([^aeiouylsz])\\1$"),k=new RegExp("^"+i+o+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,x=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,b=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,T=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,C=/^(.+?)(s|t)(ion)$/,L=/^(.+?)e$/,_=/ll$/,A=new RegExp("^"+i+o+"[^aeiouwxy]$"),O=function(n){var o,i,r,s,a,c,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=g,s.test(n)){var O=s.exec(n);s=u,s.test(O[1])&&(s=y,n=n.replace(s,""))}else if(a.test(n)){var O=a.exec(n);o=O[1],a=f,a.test(o)&&(n=o,a=w,c=S,l=k,a.test(n)?n+="e":c.test(n)?(s=y,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=E,s.test(n)){var O=s.exec(n);o=O[1],n=o+"i"}if(s=x,s.test(n)){var O=s.exec(n);o=O[1],i=O[2],s=u,s.test(o)&&(n=o+t[i])}if(s=b,s.test(n)){var O=s.exec(n);o=O[1],i=O[2],s=u,s.test(o)&&(n=o+e[i])}if(s=T,a=C,s.test(n)){var O=s.exec(n);o=O[1],s=d,s.test(o)&&(n=o)}else if(a.test(n)){var O=a.exec(n);o=O[1]+O[2],a=d,a.test(o)&&(n=o)}if(s=L,s.test(n)){var O=s.exec(n);o=O[1],s=d,a=h,c=A,(s.test(o)||a.test(o)&&!c.test(o))&&(n=o)}return s=_,a=d,s.test(n)&&a.test(n)&&(s=y,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return O}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.generateStopWordFilter=function(t){var e=t.reduce(function(t,e){return t[e]=e,t},{});return function(t){return t&&e[t]!==t?t:void 0}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){return t.replace(/^\W+/,"").replace(/\W+$/,"")},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,o=t.charAt(0),i=t.slice(1);return o in n||(n[o]={docs:{}}),0===i.length?(n[o].docs[e.ref]=e,void(this.length+=1)):this.add(i,e,n[o])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n<t.length;n++){if(!e[t.charAt(n)])return!1;e=e[t.charAt(n)]}return!0},t.TokenStore.prototype.getNode=function(t){if(!t)return{};for(var e=this.root,n=0;n<t.length;n++){if(!e[t.charAt(n)])return{};e=e[t.charAt(n)]}return e},t.TokenStore.prototype.get=function(t,e){return this.getNode(t,e).docs||{}},t.TokenStore.prototype.count=function(t,e){return Object.keys(this.get(t,e)).length},t.TokenStore.prototype.remove=function(t,e){if(t){for(var n=this.root,o=0;o<t.length;o++){if(!(t.charAt(o)in n))return;n=n[t.charAt(o)]}delete n.docs[e]}},t.TokenStore.prototype.expand=function(t,e){var n=this.getNode(t),o=n.docs||{},e=e||[];return Object.keys(o).length&&e.push(t),Object.keys(n).forEach(function(n){"docs"!==n&&e.concat(this.expand(t+n,e))},this),e},t.TokenStore.prototype.toJSON=function(){return{root:this.root,length:this.length}},function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.lunr=e()}(this,function(){return t})}(),String.prototype.truncate=function(t){if(this.length>t){for(;" "!=this[t]&&--t>0;);return this.substring(0,t)+"…"}return this},HTMLElement.prototype.wrap=function(t){t.length||(t=[t]);for(var e=t.length-1;e>=0;e--){var n=e>0?this.cloneNode(!0):this,o=t[e],i=o.parentNode,r=o.nextSibling;n.appendChild(o),r?i.insertBefore(n,r):i.appendChild(n)}},document.addEventListener("DOMContentLoaded",function(){"use strict";Modernizr.addTest("ios",function(){return!!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)}),Modernizr.addTest("standalone",function(){return!!navigator.standalone}),FastClick.attach(document.body);var t=document.getElementById("toggle-search"),e=(document.getElementById("reset-search"),document.querySelector(".drawer")),n=document.querySelectorAll(".anchor"),o=document.querySelector(".search .field"),i=document.querySelector(".query"),r=document.querySelector(".results .meta");Array.prototype.forEach.call(n,function(t){t.querySelector("a").addEventListener("click",function(){document.getElementById("toggle-drawer").checked=!1,document.body.classList.remove("toggle-drawer")})});var s=window.pageYOffset,a=function(){var t=window.pageYOffset+window.innerHeight,n=Math.max(0,window.innerHeight-e.offsetHeight);t>document.body.clientHeight-(96-n)?"absolute"!=e.style.position&&(e.style.position="absolute",e.style.top=null,e.style.bottom=0):e.offsetHeight<window.innerHeight?"fixed"!=e.style.position&&(e.style.position="fixed",e.style.top=0,e.style.bottom=null):"fixed"!=e.style.position?t>e.offsetTop+e.offsetHeight?(e.style.position="fixed",e.style.top=null,e.style.bottom="-96px"):window.pageYOffset<e.offsetTop&&(e.style.position="fixed",e.style.top=0,e.style.bottom=null):window.pageYOffset>s?e.style.top&&(e.style.position="absolute",e.style.top=Math.max(0,s)+"px",e.style.bottom=null):e.style.bottom&&(e.style.position="absolute",e.style.top=t-e.offsetHeight+"px",e.style.bottom=null),s=Math.max(0,window.pageYOffset)},c=function(){var t=document.querySelector(".main");window.removeEventListener("scroll",a),matchMedia("only screen and (max-width: 959px)").matches?(e.style.position=null,e.style.top=null,e.style.bottom=null):e.offsetHeight+96<t.offsetHeight&&(window.addEventListener("scroll",a),a())};Modernizr.ios||(window.addEventListener("resize",c),c());var l=function(){pegasus(base_url+"/mkdocs/search_index.json").then(function(e,n){var o=lunr(function(){this.field("title",{boost:10}),this.field("text"),this.ref("location")}),s={};e.docs.map(function(t){t.location=base_url+t.location,s[t.location]=t,o.add(t)}),i.addEventListener("keyup",function(){for(var e=document.querySelector(".results .list");e.firstChild;)e.removeChild(e.firstChild);var n=document.querySelector(".bar.search");if(!i.value.length){for(;r.firstChild;)r.removeChild(r.firstChild);return void n.classList.remove("non-empty")}n.classList.add("non-empty");var a=o.search(i.value);a.map(function(n){var o=s[n.ref],i=document.createElement("article");i.classList.add("result");var r=document.createElement("h1");r.innerHTML=o.title,i.appendChild(r);var a=document.createElement("a");a.href=o.location,a.appendChild(i);var c=document.createElement("span");c.innerHTML=a.href.split("#")[0],i.appendChild(c);var l=a.href.split("#");l[0]==document.location.href.split("#")[0]&&a.addEventListener("click",function(e){if(document.body.classList.remove("toggle-search"),document.body.classList.remove("locked"),t.checked=!1,!matchMedia("only screen and (min-width: 960px)").matches&&(e.preventDefault(),e.stopPropagation(),1!=l.length)){var n=document.getElementById(l[1]);n&&setTimeout(function(){n.scrollIntoView&&n.scrollIntoView()||window.scrollTo(0,n.offsetTop)},100)}}),e.appendChild(a)});var c=document.createElement("strong");for(c.innerHTML=a.length+" search result"+(1!=a.length?"s":"");r.firstChild;)r.removeChild(r.firstChild);r.appendChild(c)})},function(t,e){console.error(t,e.status)}),t.removeEventListener("click",l)};t.addEventListener("click",l);var u=0;t.addEventListener("click",function(t){var e=document.body.classList,n=!matchMedia("only screen and (min-width: 960px)").matches;e.contains("locked")?(e.remove("locked"),n&&setTimeout(function(){window.scrollTo(0,u)},100)):(u=window.scrollY,n&&setTimeout(function(){window.scrollTo(0,0)},400),setTimeout(function(){this.checked&&(n&&e.add("locked"),setTimeout(function(){i.focus()},200))}.bind(this),450))}),o.addEventListener("touchstart",function(){i.focus()}),window.addEventListener("keyup",function(e){var n=e.keyCode||e.which;27==n&&(i.blur(),document.body.classList.remove("toggle-search"),document.body.classList.remove("locked"),t.checked=!1)});var d=document.getElementById("reset-search");d.addEventListener("click",function(){for(var t=document.querySelector(".results .list");t.firstChild;)t.removeChild(t.firstChild);var e=document.querySelector(".bar.search");e.classList.remove("non-empty"),r.innerHTML="",i.value="",i.focus()});var h=document.querySelectorAll("h2");h=Array.prototype.map.call(h,function(t){return t.offsetTop});var f=null;document.addEventListener("scroll",function(){for(var t=window.scrollY+window.innerHeight/3,e=h.length-1,o=0;e>o;o++)t<h[o+1]&&(e=o);e!=f&&(f=e,Array.prototype.forEach.call(n,function(t,e){var n=t.querySelector("a");(e!=f||n.classList.add("current"))&&n.classList.remove("current")}))});var p=document.querySelectorAll(".n + .p");Array.prototype.forEach.call(p,function(t){var e=t.innerText||t.textContent;e&&"("==e[0]&&t.previousSibling.classList.add("f")});var m=document.querySelectorAll("table");if(Array.prototype.forEach.call(m,function(t){var e=document.createElement("div");e.classList.add("data"),e.wrap(t)}),Modernizr.ios){var v=document.querySelectorAll(".scrollable, .standalone .article");Array.prototype.forEach.call(v,function(t){t.addEventListener("touchstart",function(){var t=this.scrollTop;0==t?this.scrollTop=1:t+this.offsetHeight==this.scrollHeight&&(this.scrollTop=t-1)})})}var g=document.querySelectorAll(".project, .overlay, .header");Array.prototype.forEach.call(g,function(t){t.addEventListener("touchmove",function(t){t.preventDefault()})});var y=document.querySelectorAll(".toggle");Array.prototype.forEach.call(y,function(t){t.addEventListener("click",function(){document.body.classList.toggle(this.id)})}),repo_id&&pegasus("https://api.github.com/repos/"+repo_id).then(function(t,e){var n=t.stargazers_count;n>1e4?n=(n/1e3).toFixed(0)+"k":n>1e3&&(n=(n/1e3).toFixed(1)+"k");var o=document.querySelector(".repo-stars .count");o.innerHTML=n},function(t,e){console.error(t,e.status)})}),"standalone"in window.navigator&&window.navigator.standalone){var node,remotes=!1;document.addEventListener("click",function(t){for(node=t.target;"A"!==node.nodeName&&"HTML"!==node.nodeName;)node=node.parentNode;"href"in node&&-1!==node.href.indexOf("http")&&(-1!==node.href.indexOf(document.location.host)||remotes)&&(t.preventDefault(),document.location.href=node.href)},!1)} \ No newline at end of file +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* Hey, there's your missing semicolon, lunr.js! */ +; + +/* Truncate a string after the given number of characters */ +String.prototype.truncate = function(n) { + if (this.length > n) { + while (this[n] != ' ' && --n > 0); + return this.substring(0, n) + '…'; + } + return this; +} + +/* Wrap an HTMLElement around each element in an HTMLElement array */ +HTMLElement.prototype.wrap = function (elms) { + if (!elms.length) elms = [elms]; + for (var i = elms.length - 1; i >= 0; i--) { + var child = (i > 0) ? this.cloneNode(true) : this; + var el = elms[i]; + + /* Cache current parent and sibling */ + var parent = el.parentNode, + sibling = el.nextSibling; + + /* Wrap the element and remove it from its current parent */ + child.appendChild(el); + if (sibling) { + parent.insertBefore(child, sibling); + } else { + parent.appendChild(child); + } + } +} + +/* ---------------------------------------------------------------------------- + * Application logic + * ------------------------------------------------------------------------- */ + +/* Initialize application upon DOM ready */ +document.addEventListener('DOMContentLoaded', function() { + 'use strict'; + + /* Test for iOS */ + Modernizr.addTest('ios', function() { + return !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g); + }); + + /* Test for web application context */ + Modernizr.addTest('standalone', function() { + return !!navigator.standalone; + }); + + /* Attack FastClick to mitigate 300ms delay on touch devices */ + FastClick.attach(document.body); + + /* Grab relevant elements from the DOM */ + var toggle = document.getElementById('toggle-search'), + reset = document.getElementById('reset-search'), + drawer = document.querySelector('.drawer'), + anchors = document.querySelectorAll('.anchor'), + search = document.querySelector('.search .field'), + query = document.querySelector('.query'), + meta = document.querySelector('.results .meta'); + +/* ---------------------------------------------------------------------------- + * Initialize drawer + * ------------------------------------------------------------------------- */ + + /* Automatically close drawer when anchors are clicked */ + Array.prototype.forEach.call(anchors, function(item) { + item.querySelector('a').addEventListener('click', function() { + document.getElementById('toggle-drawer').checked = false; + document.body.classList.remove('toggle-drawer'); + }); + }); + + /* Align drawer to window offset */ + var pageYOffsetLast = window.pageYOffset; + var align = function() { + var boundary = window.pageYOffset + window.innerHeight; + var clipping = Math.max(0, window.innerHeight - drawer.offsetHeight); + + /* Ensure alignment with footer if at end of document */ + if (boundary > document.body.clientHeight - (96 - clipping)) { + if (drawer.style.position != 'absolute') { + drawer.style.position = 'absolute'; + drawer.style.top = null; + drawer.style.bottom = 0; + } + + /* Pin drawer to top, if window is higher than drawer */ + } else if (drawer.offsetHeight < window.innerHeight) { + if (drawer.style.position != 'fixed') { + drawer.style.position = 'fixed'; + drawer.style.top = 0; + drawer.style.bottom = null; + } + + /* If the drawer is not pinned, check if we need to pin it */ + } else if (drawer.style.position != 'fixed') { + + /* Pin drawer to bottom of window */ + if (boundary > drawer.offsetTop + drawer.offsetHeight) { + drawer.style.position = 'fixed'; + drawer.style.top = null; + drawer.style.bottom = -96 + 'px'; + + /* Pin drawer to top of window */ + } else if (window.pageYOffset < drawer.offsetTop) { + drawer.style.position = 'fixed'; + drawer.style.top = 0; + drawer.style.bottom = null; + } + + /* If the drawer is pinned, check if we have to unpin it */ + } else { + if (window.pageYOffset > pageYOffsetLast) { + if (drawer.style.top) { + drawer.style.position = 'absolute'; + drawer.style.top = Math.max(0, pageYOffsetLast) + 'px'; + drawer.style.bottom = null; + } + } else if (drawer.style.bottom) { + drawer.style.position = 'absolute'; + drawer.style.top = (boundary - drawer.offsetHeight) + 'px'; + drawer.style.bottom = null; + } + } + + /* Update last offset (mitigiate negative offsets in Safari) */ + pageYOffsetLast = Math.max(0, window.pageYOffset); + } + + /* Check for media query events */ + var check = function() { + var main = document.querySelector('.main'); + window.removeEventListener('scroll', align); + + /* Reset drawer position when entering collapsed mode */ + if (matchMedia("only screen and (max-width: 959px)").matches) { + drawer.style.position = null; + drawer.style.top = null; + drawer.style.bottom = null; + + /* Check if the scroll handler needs to be registered */ + } else if (drawer.offsetHeight + 96 < main.offsetHeight) { + window.addEventListener('scroll', align); + align(); + } + } + + /* Register resize handler and fire once */ + if (!Modernizr.ios) { + window.addEventListener('resize', check); + check(); + } + +/* ---------------------------------------------------------------------------- + * Initialize search index + * ------------------------------------------------------------------------- */ + + /* Initialize index */ + var initialize = function() { + pegasus(base_url + '/mkdocs/search_index.json').then( + + /* Request successful, we got the index */ + function(data, xhr) { + + /* Create index */ + var index = lunr(function() { + this.field('title', { boost: 10 }); + this.field('text'); + this.ref('location'); + }); + + /* Index articles */ + var articles = {}; + data.docs.map(function(article) { + article.location = base_url + article.location; + articles[article.location] = article; + index.add(article); + }); + + /* Register keyhandler to execute search on key up */ + query.addEventListener('keyup', function() { + var container = document.querySelector('.results .list'); + while (container.firstChild) + container.removeChild(container.firstChild); + + /* Abort, if the query is empty */ + var bar = document.querySelector('.bar.search'); + if (!query.value.length) { + while (meta.firstChild) + meta.removeChild(meta.firstChild); + + /* Restore state */ + bar.classList.remove('non-empty'); + return; + } + + /* Show reset button */ + bar.classList.add('non-empty'); + + /* Execute search */ + var results = index.search(query.value); + results.map(function(result) { + var article = articles[result.ref]; + + /* Create article container */ + var teaser = document.createElement('article'); + teaser.classList.add('result'); + + /* Create title element */ + var title = document.createElement('h1'); + title.innerHTML = article.title; + teaser.appendChild(title); + + // /* Create text element */ + // var text = document.createElement('p'); + // text.innerHTML = article.text.truncate(140); + // teaser.appendChild(text); + + /* Create a link referring to the article */ + var link = document.createElement('a'); + link.href = article.location; + link.appendChild(teaser); + + /* Create url element */ + var url = document.createElement('span'); + url.innerHTML = link.href.split('#')[0]; + teaser.appendChild(url); + + /* Close search and jump to anchor when on same page */ + var parts = link.href.split('#'); + if (parts[0] == document.location.href.split('#')[0]) { + link.addEventListener('click', function(e) { + document.body.classList.remove('toggle-search'); + document.body.classList.remove('locked'); + toggle.checked = false; + + /* Don't catch anchors if the search doesn't cover the page */ + if (matchMedia('only screen and (min-width: 960px)').matches) + return; + + /* Prevent default to intercept scroll-to behaviour and + stop propagation, as this interferes with the link-lock in + the web application context, which opens all internal links + inside the same context */ + e.preventDefault(); + e.stopPropagation(); + + /* Scroll to chapter, if given */ + if (parts.length != 1) { + var chapter = document.getElementById(parts[1]); + if (chapter) { + + /* Scroll to chapter, but wait for 100ms to prevent flashes + on iOS. A short timeout seems to do the trick */ + setTimeout(function() { + chapter.scrollIntoView && chapter.scrollIntoView() || + window.scrollTo(0, chapter.offsetTop); + }, 100); + } + } + }); + } + + /* Add article to search results */ + container.appendChild(link); + }); + + /* Show number of search results */ + var number = document.createElement('strong'); + number.innerHTML = results.length + ' search result' + + (results.length != 1 ? 's' : ''); + + /* Update number */ + while (meta.firstChild) + meta.removeChild(meta.firstChild); + meta.appendChild(number); + }); + }, + + /* Handle error */ + function(data, xhr) { + console.error(data, xhr.status); + } + ); + + /* Remove listener, as we only have to initialize once */ + toggle.removeEventListener('click', initialize); + }; + + /* Initialize on first click */ + toggle.addEventListener('click', initialize); + +/* ---------------------------------------------------------------------------- + * Initialize search modal + * ------------------------------------------------------------------------- */ + + /* Intercept click on search mode toggle */ + var offset = 0; + toggle.addEventListener('click', function(e) { + var list = document.body.classList; + var lock = !matchMedia('only screen and (min-width: 960px)').matches; + + /* Exiting search mode */ + if (list.contains('locked')) { + list.remove('locked'); + + /* Scroll to former position, but wait for 100ms to prevent flashes + on iOS. A short timeout seems to do the trick */ + if (lock) + setTimeout(function() { + window.scrollTo(0, offset); + }, 100); + + /* Entering search mode */ + } else { + offset = window.scrollY; + + /* First timeout: scroll to top after transition, to omit flickering */ + if (lock) + setTimeout(function(){ + window.scrollTo(0, 0); + }, 400); + + /* Second timeout: Lock body after finishing transition and scrolling to + top and focus input field. Sadly, the focus event is not dispatched + on iOS Safari and there's nothing we can do about it. */ + setTimeout(function() { + + /* This additional check is necessary to handle fast subsequent clicks + on the toggle and the timeout to lock the body must be cancelled */ + if (this.checked) { + if (lock) + list.add('locked'); + setTimeout(function() { + query.focus(); + }, 200); + } + }.bind(this), 450); + } + }); + + /* Dispatch input focus on touch of search section */ + search.addEventListener('touchstart', function() { + query.focus(); + }); + + /* Exit search mode when pressing ESC */ + window.addEventListener('keyup', function(e) { + var code = e.keyCode || e.which; + if (code == 27) { + query.blur(); + + /* Exit locked state */ + document.body.classList.remove('toggle-search'); + document.body.classList.remove('locked'); + toggle.checked = false; + } + }); + + /* Delete search results upon click on "x" */ + var empty = document.getElementById('reset-search'); + empty.addEventListener('click', function() { + var container = document.querySelector('.results .list'); + while (container.firstChild) + container.removeChild(container.firstChild); + + /* Hide search button */ + var bar = document.querySelector('.bar.search'); + bar.classList.remove('non-empty'); + + /* Reset number of search results */ + meta.innerHTML = ''; + + /* Empty search input */ + query.value = ''; + query.focus(); + }); + +/* ---------------------------------------------------------------------------- + * Initialize scroll spy + * ------------------------------------------------------------------------- */ + + /* Retrieve vertical offset of article chapters */ + var chapters = document.querySelectorAll('h2'); + chapters = Array.prototype.map.call(chapters, function(item) { + return item.offsetTop; + }); + + /* Update currently active chapter, if the new chapter is two thirds + into the viewport - account for iOS web application context */ + var visible = null; + document.addEventListener('scroll', function() { + var offset = window.scrollY + (window.innerHeight / 3), + active = chapters.length - 1; + for (var c = 0; c < active; c++) + if (offset < chapters[c + 1]) + active = c; + + /* Update anchors, if a new chapter became visible */ + if (active != visible) { + visible = active; + Array.prototype.forEach.call(anchors, function(item, index) { + var link = item.querySelector('a'); + if (index != visible || link.classList.add('current')) + link.classList.remove('current'); + }); + } + }); + +/* ---------------------------------------------------------------------------- + * Fix syntax highlighting + * ------------------------------------------------------------------------- */ + + /* Fix highlighting for function calls */ + var functions = document.querySelectorAll('.n + .p'); + Array.prototype.forEach.call(functions, function(item) { + var text = item.innerText || item.textContent; + if (text && text[0] == '(') + item.previousSibling.classList.add('f'); + }); + +/* ---------------------------------------------------------------------------- + * Progressive structure enhancement + * ------------------------------------------------------------------------- */ + + /* Wrap all data tables */ + var tables = document.querySelectorAll('table'); + Array.prototype.forEach.call(tables, function(item) { + var wrapper = document.createElement('div'); + wrapper.classList.add('data'); + wrapper.wrap(item); + }); + +/* ---------------------------------------------------------------------------- + * Fix overflow scrolling on iOS + * ------------------------------------------------------------------------- */ + + /* Force 1px scroll offset to trigger overflow scrolling */ + if (Modernizr.ios) { + var scrollable = document.querySelectorAll( + '.scrollable, .standalone .article'); + Array.prototype.forEach.call(scrollable, function(item) { + item.addEventListener('touchstart', function() { + var top = this.scrollTop; + + /* We're at the top of the container */ + if (top == 0) { + this.scrollTop = 1; + + /* We're at the bottom of the container */ + } else if (top + this.offsetHeight == this.scrollHeight) { + this.scrollTop = top - 1; + } + }); + }); + } + + /* Prevent scrolling on project, overlay and header */ + var prevented = document.querySelectorAll('.project, .overlay, .header'); + Array.prototype.forEach.call(prevented, function(item) { + item.addEventListener('touchmove', function(e) { + e.preventDefault(); + }); + }); + +/* ---------------------------------------------------------------------------- + * Fallback for browsers that don't support :checked + * ------------------------------------------------------------------------- */ + + /* Set representative class on body for active toggle */ + var toggles = document.querySelectorAll('.toggle'); + Array.prototype.forEach.call(toggles, function(item) { + item.addEventListener('click', function() { + document.body.classList.toggle(this.id); + }); + }); + +/* ---------------------------------------------------------------------------- + * Initialize GitHub star button + * ------------------------------------------------------------------------- */ + + /* Get Stars for current repository */ + if (repo_id) { + pegasus('https://api.github.com/repos/' + repo_id).then( + + /* Request successful, we got the stars */ + function(data, xhr) { + var count = data.stargazers_count; + if (count > 10000) + count = (count / 1000).toFixed(0) + 'k'; + else if (count > 1000) + count = (count / 1000).toFixed(1) + 'k'; + + /* Set number of stars */ + var stars = document.querySelector('.repo-stars .count'); + stars.innerHTML = count; + }, + + /* Handle error */ + function(data, xhr) { + console.error(data, xhr.status); + } + ); + } +}); \ No newline at end of file diff --git a/it4i_theme/assets/javascripts/modernizr.js b/it4i_theme/assets/javascripts/modernizr.js deleted file mode 100644 index e82c90988584779ec7a01eac66ea33341c682a51..0000000000000000000000000000000000000000 --- a/it4i_theme/assets/javascripts/modernizr.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t,n){function r(e,t){return typeof e===t}function i(){var e,t,n,i,o,a,s;for(var l in x)if(x.hasOwnProperty(l)){if(e=[],t=x[l],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;n<t.options.aliases.length;n++)e.push(t.options.aliases[n].toLowerCase());for(i=r(t.fn,"function")?t.fn():t.fn,o=0;o<e.length;o++)a=e[o],s=a.split("."),1===s.length?S[s[0]]=i:(!S[s[0]]||S[s[0]]instanceof Boolean||(S[s[0]]=new Boolean(S[s[0]])),S[s[0]][s[1]]=i),w.push((i?"":"no-")+s.join("-"))}}function o(e){var t=C.className,n=S._config.classPrefix||"";if(T&&(t=t.baseVal),S._config.enableJSClass){var r=new RegExp("(^|\\s)"+n+"no-js(\\s|$)");t=t.replace(r,"$1"+n+"js$2")}S._config.enableClasses&&(t+=" "+n+e.join(" "+n),T?C.className.baseVal=t:C.className=t)}function a(e,t){if("object"==typeof e)for(var n in e)b(e,n)&&a(n,e[n]);else{e=e.toLowerCase();var r=e.split("."),i=S[r[0]];if(2==r.length&&(i=i[r[1]]),"undefined"!=typeof i)return S;t="function"==typeof t?t():t,1==r.length?S[r[0]]=t:(!S[r[0]]||S[r[0]]instanceof Boolean||(S[r[0]]=new Boolean(S[r[0]])),S[r[0]][r[1]]=t),o([(t&&0!=t?"":"no-")+r.join("-")]),S._trigger(e,t)}return S}function s(e,t){return function(){return e.apply(t,arguments)}}function l(e,t){return!!~(""+e).indexOf(t)}function u(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):T?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function c(){var e=t.body;return e||(e=u(T?"svg":"body"),e.fake=!0),e}function f(e,n,r,i){var o,a,s,l,f="modernizr",d=u("div"),p=c();if(parseInt(r,10))for(;r--;)s=u("div"),s.id=i?i[r]:f+(r+1),d.appendChild(s);return o=u("style"),o.type="text/css",o.id="s"+f,(p.fake?p:d).appendChild(o),p.appendChild(d),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(t.createTextNode(e)),d.id=f,p.fake&&(p.style.background="",p.style.overflow="hidden",l=C.style.overflow,C.style.overflow="hidden",C.appendChild(p)),a=n(d,e),p.fake?(p.parentNode.removeChild(p),C.style.overflow=l,C.offsetHeight):d.parentNode.removeChild(d),!!a}function d(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function p(t,r){var i=t.length;if("CSS"in e&&"supports"in e.CSS){for(;i--;)if(e.CSS.supports(d(t[i]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var o=[];i--;)o.push("("+d(t[i])+":"+r+")");return o=o.join(" or "),f("@supports ("+o+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return n}function m(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function h(e,t,i,o){function a(){c&&(delete _.style,delete _.modElem)}if(o=r(o,"undefined")?!1:o,!r(i,"undefined")){var s=p(e,i);if(!r(s,"undefined"))return s}for(var c,f,d,h,g,v=["modernizr","tspan"];!_.style;)c=!0,_.modElem=u(v.shift()),_.style=_.modElem.style;for(d=e.length,f=0;d>f;f++)if(h=e[f],g=_.style[h],l(h,"-")&&(h=m(h)),_.style[h]!==n){if(o||r(i,"undefined"))return a(),"pfx"==t?h:!0;try{_.style[h]=i}catch(y){}if(_.style[h]!=g)return a(),"pfx"==t?h:!0}return a(),!1}function g(e,t,n){var i;for(var o in e)if(e[o]in t)return n===!1?e[o]:(i=t[e[o]],r(i,"function")?s(i,n||t):i);return!1}function v(e,t,n,i,o){var a=e.charAt(0).toUpperCase()+e.slice(1),s=(e+" "+P.join(a+" ")+a).split(" ");return r(t,"string")||r(t,"undefined")?h(s,t,i,o):(s=(e+" "+A.join(a+" ")+a).split(" "),g(s,t,n))}function y(e,t,r){return v(e,n,n,t,r)}var x=[],E={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){x.push({name:e,fn:t,options:n})},addAsyncTest:function(e){x.push({name:null,fn:e})}},S=function(){};S.prototype=E,S=new S;var b,w=[],C=t.documentElement,T="svg"===C.nodeName.toLowerCase();!function(){var e={}.hasOwnProperty;b=r(e,"undefined")||r(e.call,"undefined")?function(e,t){return t in e&&r(e.constructor.prototype[t],"undefined")}:function(t,n){return e.call(t,n)}}(),E._l={},E.on=function(e,t){this._l[e]||(this._l[e]=[]),this._l[e].push(t),S.hasOwnProperty(e)&&setTimeout(function(){S._trigger(e,S[e])},0)},E._trigger=function(e,t){if(this._l[e]){var n=this._l[e];setTimeout(function(){var e,r;for(e=0;e<n.length;e++)(r=n[e])(t)},0),delete this._l[e]}},S._q.push(function(){E.addTest=a});T||!function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=C.elements;return"string"==typeof e?e.split(" "):e}function i(e,t){var n=C.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),C.elements=n+" "+e,u(t)}function o(e){var t=w[e[S]];return t||(t={},b++,e[S]=b,w[b]=t),t}function a(e,n,r){if(n||(n=t),g)return n.createElement(e);r||(r=o(n));var i;return i=r.cache[e]?r.cache[e].cloneNode():E.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!i.canHaveChildren||x.test(e)||i.tagUrn?i:r.frag.appendChild(i)}function s(e,n){if(e||(e=t),g)return e.createDocumentFragment();n=n||o(e);for(var i=n.frag.cloneNode(),a=0,s=r(),l=s.length;l>a;a++)i.createElement(s[a]);return i}function l(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return C.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(C,t.frag)}function u(e){e||(e=t);var r=o(e);return!C.shivCSS||h||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),g||l(e,r),e}function c(e){for(var t,n=e.getElementsByTagName("*"),i=n.length,o=RegExp("^(?:"+r().join("|")+")$","i"),a=[];i--;)t=n[i],o.test(t.nodeName)&&a.push(t.applyElement(f(t)));return a}function f(e){for(var t,n=e.attributes,r=n.length,i=e.ownerDocument.createElement(N+":"+e.nodeName);r--;)t=n[r],t.specified&&i.setAttribute(t.nodeName,t.nodeValue);return i.style.cssText=e.style.cssText,i}function d(e){for(var t,n=e.split("{"),i=n.length,o=RegExp("(^|[\\s,>+~])("+r().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),a="$1"+N+"\\:$2";i--;)t=n[i]=n[i].split("}"),t[t.length-1]=t[t.length-1].replace(o,a),n[i]=t.join("}");return n.join("{")}function p(e){for(var t=e.length;t--;)e[t].removeNode()}function m(e){function t(){clearTimeout(a._removeSheetTimer),r&&r.removeNode(!0),r=null}var r,i,a=o(e),s=e.namespaces,l=e.parentWindow;return!_||e.printShived?e:("undefined"==typeof s[N]&&s.add(N),l.attachEvent("onbeforeprint",function(){t();for(var o,a,s,l=e.styleSheets,u=[],f=l.length,p=Array(f);f--;)p[f]=l[f];for(;s=p.pop();)if(!s.disabled&&T.test(s.media)){try{o=s.imports,a=o.length}catch(m){a=0}for(f=0;a>f;f++)p.push(o[f]);try{u.push(s.cssText)}catch(m){}}u=d(u.reverse().join("")),i=c(e),r=n(e,u)}),l.attachEvent("onafterprint",function(){p(i),clearTimeout(a._removeSheetTimer),a._removeSheetTimer=setTimeout(t,500)}),e.printShived=!0,e)}var h,g,v="3.7.3",y=e.html5||{},x=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,E=/^(?: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,S="_html5shiv",b=0,w={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,g=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){h=!0,g=!0}}();var C={elements:y.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:v,shivCSS:y.shivCSS!==!1,supportsUnknownElements:g,shivMethods:y.shivMethods!==!1,type:"default",shivDocument:u,createElement:a,createDocumentFragment:s,addElements:i};e.html5=C,u(t);var T=/^$|\b(?:all|print)\b/,N="html5shiv",_=!g&&function(){var n=t.documentElement;return!("undefined"==typeof t.namespaces||"undefined"==typeof t.parentWindow||"undefined"==typeof n.applyElement||"undefined"==typeof n.removeNode||"undefined"==typeof e.attachEvent)}();C.type+=" print",C.shivPrint=m,m(t),"object"==typeof module&&module.exports&&(module.exports=C)}("undefined"!=typeof e?e:this,t);var N={elem:u("modernizr")};S._q.push(function(){delete N.elem});var _={style:N.elem.style};S._q.unshift(function(){delete _.style});var z=(E.testProp=function(e,t,r){return h([e],n,t,r)},function(){function e(e,t){var i;return e?(t&&"string"!=typeof t||(t=u(t||"div")),e="on"+e,i=e in t,!i&&r&&(t.setAttribute||(t=u("div")),t.setAttribute(e,""),i="function"==typeof t[e],t[e]!==n&&(t[e]=n),t.removeAttribute(e)),i):!1}var r=!("onblur"in t.documentElement);return e}());E.hasEvent=z,S.addTest("inputsearchevent",z("search"));var k=E.testStyles=f,$=function(){var e=navigator.userAgent,t=e.match(/applewebkit\/([0-9]+)/gi)&&parseFloat(RegExp.$1),n=e.match(/w(eb)?osbrowser/gi),r=e.match(/windows phone/gi)&&e.match(/iemobile\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9,i=533>t&&e.match(/android/gi);return n||i||r}();$?S.addTest("fontface",!1):k('@font-face {font-family:"font";src:url("https://")}',function(e,n){var r=t.getElementById("smodernizr"),i=r.sheet||r.styleSheet,o=i?i.cssRules&&i.cssRules[0]?i.cssRules[0].cssText:i.cssText||"":"",a=/src/i.test(o)&&0===o.indexOf(n.split(" ")[0]);S.addTest("fontface",a)});var j="Moz O ms Webkit",P=E._config.usePrefixes?j.split(" "):[];E._cssomPrefixes=P;var A=E._config.usePrefixes?j.toLowerCase().split(" "):[];E._domPrefixes=A,E.testAllProps=v,E.testAllProps=y;var R="CSS"in e&&"supports"in e.CSS,F="supportsCSS"in e;S.addTest("supports",R||F),S.addTest("csstransforms3d",function(){var e=!!y("perspective","1px",!0),t=S._config.usePrefixes;if(e&&(!t||"webkitPerspective"in C.style)){var n,r="#modernizr{width:0;height:0}";S.supports?n="@supports (perspective: 1px)":(n="@media (transform-3d)",t&&(n+=",(-webkit-transform-3d)")),n+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",k(r+n,function(t){e=7===t.offsetWidth&&18===t.offsetHeight})}return e}),S.addTest("json","JSON"in e&&"parse"in JSON&&"stringify"in JSON),S.addTest("checked",function(){return k("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}",function(e){var t=u("input");return t.setAttribute("type","checkbox"),t.setAttribute("checked","checked"),e.appendChild(t),20===t.offsetLeft})}),S.addTest("target",function(){var t=e.document;if(!("querySelectorAll"in t))return!1;try{return t.querySelectorAll(":target"),!0}catch(n){return!1}}),S.addTest("contains",r(String.prototype.contains,"function")),i(),o(w),delete E.addTest,delete E.addAsyncTest;for(var M=0;M<S._q.length;M++)S._q[M]();e.Modernizr=S}(window,document),function(e){"use strict";e.matchMedia=e.matchMedia||function(e,t){var n,r=e.documentElement,i=r.firstElementChild||r.firstChild,o=e.createElement("body"),a=e.createElement("div");return a.id="mq-test-1",a.style.cssText="position:absolute;top:-100em",o.style.background="none",o.appendChild(a),function(e){return a.innerHTML='­<style media="'+e+'"> #mq-test-1 { width: 42px; }</style>',r.insertBefore(o,i),n=42===a.offsetWidth,r.removeChild(o),{matches:n,media:e}}}(e.document)}(this),function(e){"use strict";function t(){E(!0)}var n={};e.respond=n,n.update=function(){};var r=[],i=function(){var t=!1;try{t=new e.XMLHttpRequest}catch(n){t=new e.ActiveXObject("Microsoft.XMLHTTP")}return function(){return t}}(),o=function(e,t){var n=i();n&&(n.open("GET",e,!0),n.onreadystatechange=function(){4!==n.readyState||200!==n.status&&304!==n.status||t(n.responseText)},4!==n.readyState&&n.send(null))};if(n.ajax=o,n.queue=r,n.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},n.mediaQueriesSupported=e.matchMedia&&null!==e.matchMedia("only all")&&e.matchMedia("only all").matches,!n.mediaQueriesSupported){var a,s,l,u=e.document,c=u.documentElement,f=[],d=[],p=[],m={},h=30,g=u.getElementsByTagName("head")[0]||c,v=u.getElementsByTagName("base")[0],y=g.getElementsByTagName("link"),x=function(){var e,t=u.createElement("div"),n=u.body,r=c.style.fontSize,i=n&&n.style.fontSize,o=!1;return t.style.cssText="position:absolute;font-size:1em;width:1em",n||(n=o=u.createElement("body"),n.style.background="none"),c.style.fontSize="100%",n.style.fontSize="100%",n.appendChild(t),o&&c.insertBefore(n,c.firstChild),e=t.offsetWidth,o?c.removeChild(n):n.removeChild(t),c.style.fontSize=r,i&&(n.style.fontSize=i),e=l=parseFloat(e)},E=function(t){var n="clientWidth",r=c[n],i="CSS1Compat"===u.compatMode&&r||u.body[n]||r,o={},m=y[y.length-1],v=(new Date).getTime();if(t&&a&&h>v-a)return e.clearTimeout(s),void(s=e.setTimeout(E,h));a=v;for(var S in f)if(f.hasOwnProperty(S)){var b=f[S],w=b.minw,C=b.maxw,T=null===w,N=null===C,_="em";w&&(w=parseFloat(w)*(w.indexOf(_)>-1?l||x():1)),C&&(C=parseFloat(C)*(C.indexOf(_)>-1?l||x():1)),b.hasquery&&(T&&N||!(T||i>=w)||!(N||C>=i))||(o[b.media]||(o[b.media]=[]),o[b.media].push(d[b.rules]))}for(var z in p)p.hasOwnProperty(z)&&p[z]&&p[z].parentNode===g&&g.removeChild(p[z]);p.length=0;for(var k in o)if(o.hasOwnProperty(k)){var $=u.createElement("style"),j=o[k].join("\n");$.type="text/css",$.media=k,g.insertBefore($,m.nextSibling),$.styleSheet?$.styleSheet.cssText=j:$.appendChild(u.createTextNode(j)),p.push($)}},S=function(e,t,r){var i=e.replace(n.regex.keyframes,"").match(n.regex.media),o=i&&i.length||0;t=t.substring(0,t.lastIndexOf("/"));var a=function(e){return e.replace(n.regex.urls,"$1"+t+"$2$3")},s=!o&&r;t.length&&(t+="/"),s&&(o=1);for(var l=0;o>l;l++){var u,c,p,m;s?(u=r,d.push(a(e))):(u=i[l].match(n.regex.findStyles)&&RegExp.$1,d.push(RegExp.$2&&a(RegExp.$2))),p=u.split(","),m=p.length;for(var h=0;m>h;h++)c=p[h],f.push({media:c.split("(")[0].match(n.regex.only)&&RegExp.$2||"all",rules:d.length-1,hasquery:c.indexOf("(")>-1,minw:c.match(n.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:c.match(n.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}E()},b=function(){if(r.length){var t=r.shift();o(t.href,function(n){S(n,t.href,t.media),m[t.href]=!0,e.setTimeout(function(){b()},0)})}},w=function(){for(var t=0;t<y.length;t++){var n=y[t],i=n.href,o=n.media,a=n.rel&&"stylesheet"===n.rel.toLowerCase();i&&a&&!m[i]&&(n.styleSheet&&n.styleSheet.rawCssText?(S(n.styleSheet.rawCssText,i,o),m[i]=!0):(!/^([a-zA-Z:]*\/\/)/.test(i)&&!v||i.replace(RegExp.$1,"").split("/")[0]===e.location.host)&&("//"===i.substring(0,2)&&(i=e.location.protocol+i),r.push({href:i,media:o})))}b()};w(),n.update=w,n.getEmValue=x,e.addEventListener?e.addEventListener("resize",t,!1):e.attachEvent&&e.attachEvent("onresize",t)}}(this); \ No newline at end of file diff --git a/it4i_theme/assets/javascripts/standalone.js b/it4i_theme/assets/javascripts/standalone.js new file mode 100644 index 0000000000000000000000000000000000000000..0ed0448740171f9b2c731548696152c7d2263e87 --- /dev/null +++ b/it4i_theme/assets/javascripts/standalone.js @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Taken and adapted from https://gist.github.com/kylebarrow/1042026 + * ------------------------------------------------------------------------- */ + +/* Detect standalone mode */ +if (('standalone' in window.navigator) && window.navigator.standalone) { + + /* If you want to prevent remote links in standalone web apps opening + Mobile Safari, change 'remotes' to true */ + var node, remotes = false; + + /* Bind to document */ + document.addEventListener('click', function(event) { + node = event.target; + + /* Bubble up until we hit link or top HTML element. Warning: BODY element + is not compulsory so better to stop on HTML */ + while (node.nodeName !== 'A' && node.nodeName !== 'HTML') { + node = node.parentNode; + } + if ('href' in node && node.href.indexOf('http') !== -1 && ( + node.href.indexOf(document.location.host) !== -1 || remotes)) { + event.preventDefault(); + document.location.href = node.href; + } + }, false); +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/_highlight.scss b/it4i_theme/assets/stylesheets/_highlight.scss new file mode 100644 index 0000000000000000000000000000000000000000..9882d794e7f2301aefe14d46fc6450be60920d6c --- /dev/null +++ b/it4i_theme/assets/stylesheets/_highlight.scss @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Code highlighter + * ------------------------------------------------------------------------- */ + +/* + * Code block + */ +pre { + background: rgba($black, 0.05); + + /* + * Ensure correct color + */ + &, code { + color: $black; + } +} + +/* + * Operators and comments + */ +.o, .c, .c1, .cm { + color: $black-light; +} + +/* + * Keywords + */ +.k, .kn { + color: #A71D5D; +} + +/* + * Types and functions + */ +.kt, .kd { + color: #0086B3; +} + +/* + * Function definition + */ +.nf, .n.f { + color: #795da3; +} + +/* + * Classes + */ +.nx { + color: #0086b3; +} + +/* + * Strings + */ +.s, .s1 { + color: #183691; +} + +/* + * Constants and numbers + */ +.mi, .bp { + color: #9575CD; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/_palette.scss b/it4i_theme/assets/stylesheets/_palette.scss new file mode 100644 index 0000000000000000000000000000000000000000..3629d28afeb2e71d48de914e354f61a3e7bc78d1 --- /dev/null +++ b/it4i_theme/assets/stylesheets/_palette.scss @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Palette + * ------------------------------------------------------------------------- */ + +/* + * Primary and accent color + */ +$primary: $red-400 !default; +$accent: $teal-a700 !default; + +/* + * Black opacities + */ +$black: rgba(black, 0.87); +$black-light: rgba(black, 0.54); +$black-lighter: rgba(black, 0.26); +$black-lightest: rgba(black, 0.12); + +/* + * White opacities + */ +$white: rgba(white, 1.00); +$white-light: rgba(white, 0.70); +$white-lighter: rgba(white, 0.30); +$white-lightest: rgba(white, 0.12); \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/_print.scss b/it4i_theme/assets/stylesheets/_print.scss new file mode 100644 index 0000000000000000000000000000000000000000..1b29b8b193a6ef72cd57ba1062be1151851b18fc --- /dev/null +++ b/it4i_theme/assets/stylesheets/_print.scss @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Print overrides + * ------------------------------------------------------------------------- */ + +/* + * Print styles + */ +@media print { + + /* + * Hide non-relevant elements + */ + .header, .drawer, .headerlink, .footer { + display: none; + } + + /* + * Article + */ + .article { + + /* + * Remove top spacing + */ + .wrapper { + padding-top: 0; + } + + /* + * Remove color in all code blocks + */ + pre, pre * { + color: $black !important; + } + + pre { + border: 1px solid $black-lightest; + } + + /* + * Border-radius makes this table entirely black on paper, so scrap it + */ + table { + border-radius: none; + box-shadow: none; + + /* + * Color header + */ + th { + color: $primary; + } + } + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/_reset.scss b/it4i_theme/assets/stylesheets/_reset.scss new file mode 100644 index 0000000000000000000000000000000000000000..57bfb1a679e6de00fbeb6bb5e9f0ac907645979f --- /dev/null +++ b/it4i_theme/assets/stylesheets/_reset.scss @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Resets + * ------------------------------------------------------------------------- */ + +/* + * Enfore correct box model - the prefixed versions are necessary for older + * browsers, i.e. Chrome < 10, Firefox < 29, Safari < 6 and Android < 4 + */ +html { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} + +/* + * All elements shall inherit the document default + */ +*, *:before, *:after { + box-sizing: inherit; + -moz-box-sizing: inherit; + -webkit-box-sizing: inherit; +} + +/* + * 16px --> 10px, browser default + */ +html { + font-size: 62.5%; + text-size-adjust: none; +} + +/* + * Reset spacing and borders for all tags + */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, main, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; +} + +/* + * Enforce correct rendering of main element - missing in user agent stylesheet + * of IE11 on Windows 7. + */ +main { + display: block; +} + +/* + * Reset list styles + */ +ul { + list-style: none; +} + +/* + * Reset table styles + */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* + * Reset table cell styles + */ +td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* + * Reset (native) button styles + */ +button { + outline: 0; + padding: 0; + + background: transparent; + border: none; + + font-size: inherit; +} + +/* + * Reset (native) input styles + */ +input { + @include appearance(none); + + outline: none; + border: none; +} + +/* + * Reset link styles + */ +a { + text-decoration: none; + color: inherit; +} + +/* + * Reset tap outlines on iOS and Android + */ +a, button, label, input { + -webkit-tap-highlight-color: rgba(white, 0); + -webkit-tap-highlight-color: transparent; +} + +/* + * Reset headlines + */ +h1, h2, h3, h4, h5, h6 { + font-weight: inherit; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/_shame.scss b/it4i_theme/assets/stylesheets/_shame.scss new file mode 100644 index 0000000000000000000000000000000000000000..cd2b1573383346bb389f9490592007edec850a4e --- /dev/null +++ b/it4i_theme/assets/stylesheets/_shame.scss @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Nothing to see here, move along + * ------------------------------------------------------------------------- */ \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/application.css b/it4i_theme/assets/stylesheets/application.css deleted file mode 100644 index 309a96b09a5be499fe2d8dc373b542cfe7335693..0000000000000000000000000000000000000000 --- a/it4i_theme/assets/stylesheets/application.css +++ /dev/null @@ -1 +0,0 @@ -html{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}*,:after,:before{box-sizing:inherit;-moz-box-sizing:inherit;-webkit-box-sizing:inherit}html{font-size:62.5%;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,main,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0}main{display:block}ul{list-style:none}table{border-collapse:collapse;border-spacing:0}td{text-align:left;font-weight:400;vertical-align:middle}button{outline:0;padding:0;background:transparent;border:none;font-size:inherit}input{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;appearance:none;outline:none;border:none}a{text-decoration:none;color:inherit}a,button,input,label{-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-weight:inherit}pre{background:rgba(0,0,0,.05)}pre,pre code{color:rgba(0,0,0,.87)}.c,.c1,.cm,.o{color:rgba(0,0,0,.54)}.k,.kn{color:#a71d5d}.kd,.kt{color:#0086b3}.n.f,.nf{color:#795da3}.nx{color:#0086b3}.s,.s1{color:#183691}.bp,.mi{color:#9575cd}.icon{font-family:Icon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-search:before{content:"\e600"}.icon-back:before{content:"\e601"}.icon-link:before{content:"\e602"}.icon-close:before{content:"\e603"}.icon-menu:before{content:"\e604"}.icon-forward:before{content:"\e605"}.icon-twitter:before{content:"\e606"}.icon-github:before{content:"\e607"}.icon-download:before{content:"\e608"}.icon-star:before{content:"\e609"}.icon-warning:before{content:"\e610"}.icon-note:before{content:"\e611"}a{-webkit-transition:color .25s;transition:color .25s}.overlay{-webkit-transition:opacity .25s,width 0s .25s,height 0s .25s;transition:opacity .25s,width 0s .25s,height 0s .25s}#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{-webkit-transition:opacity .25s,width 0s,height 0s;transition:opacity .25s,width 0s,height 0s}.js .header{-webkit-transition:background .6s,color .6s;transition:background .6s,color .6s}.js .header:before{-webkit-transition:background .6s;transition:background .6s}.button .icon{-webkit-transition:background .25s;transition:background .25s}body{color:rgba(0,0,0,.87)}@supports (-webkit-appearance:none){body{background:#FFCCBC}}.ios body{background:#fff}hr{border:0;border-top:1px solid rgba(0,0,0,.12)}.toggle-button{cursor:pointer;color:inherit}.backdrop,.backdrop-paper:after{background:#fff}.overlay{background:rgba(0,0,0,.54);opacity:0}#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{opacity:1}.header{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);background:#FFCCBC;color:#fff}.ios.standalone .header:before{background:rgba(0,0,0,.12)}.bar .path{color:hsla(0,0%,100%,.7)}.button .icon{border-radius:100%}.button .icon:active{background:hsla(0,0%,100%,.12)}html{height:100%}body{position:relative;min-height:100%}hr{display:block;height:1px;padding:0;margin:0}.locked{height:100%;overflow:hidden}.scrollable{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch}.scrollable .wrapper{height:100%}.ios .scrollable .wrapper{margin-bottom:2px}.toggle{display:none}.toggle-button{display:block}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.backdrop-paper{max-width:1200px;height:100%;margin-left:auto;margin-right:auto}.backdrop-paper:after{content:" ";display:block;height:100%;margin-left:262px}.overlay{width:0;height:0;z-index:3}.header,.overlay{position:fixed;top:0}.header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;left:0;z-index:2;height:56px;padding:4px;overflow:hidden}.ios.standalone .header{position:absolute}.bar{display:table;max-width:1184px;margin-left:auto;margin-right:auto}.bar a{display:block}.no-js .bar .button-search{display:none}.bar .path .icon:before{vertical-align:-1.5px}.button{display:table-cell;vertical-align:top;width:1%}.button button{margin:0;padding:0}.button button:active:before{position:relative;top:0;left:0}.button .icon{display:inline-block;font-size:24px;margin:4px}.stretch{display:table;table-layout:fixed;width:100%}.header .stretch{padding:0 20px}.stretch .title{display:table-cell;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.header .stretch .title{font-size:18px;padding:13px 0}.main{max-width:1200px;margin-left:auto;margin-right:auto}body,input{font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.no-fontface body,.no-fontface input,body,input{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.no-fontface code,.no-fontface kbd,.no-fontface pre,code,kbd,pre{font-family:Courier New,Courier,monospace}#toggle-drawer:checked~.main .drawer,.toggle-drawer .drawer{-webkit-transform:translateZ(0);transform:translateZ(0)}.no-csstransforms3d #toggle-drawer:checked~.main .drawer,.no-csstransforms3d .toggle-drawer .drawer{display:block}.project{-webkit-transition:none;transition:none}.project .logo img{-webkit-transition:box-shadow .4s;transition:box-shadow .4s}.repo a{-webkit-transition:box-shadow .4s,opacity .4s;transition:box-shadow .4s,opacity .4s}.drawer .toc a.current,.drawer .toc a:focus,.drawer .toc a:hover{color:#FFCCBC}.drawer .anchor a{border-left:2px solid #FFCCBC}.drawer .section{color:rgba(0,0,0,.54)}.ios.standalone .project:before{background:rgba(0,0,0,.12)}.project:focus .logo img,.project:hover .logo img{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05)}.repo a{background:#00bfa5;color:#fff;border-radius:3px}.repo a:focus,.repo a:hover{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05);opacity:.8}.repo a .count{background:rgba(0,0,0,.26);color:#fff;border-radius:0 3px 3px 0}.repo a .count:before{border-width:15px 5px 15px 0;border-color:transparent rgba(0,0,0,.26);border-style:solid}.drawer{width:262px;font-size:13px;line-height:1em}.ios .drawer{overflow:scroll;-webkit-overflow-scrolling:touch}.drawer .toc li a{display:block;padding:14.5px 24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .toc li.anchor a{margin-left:12px;padding:10px 24px 10px 12px}.drawer .toc li ul{margin-left:12px}.drawer .current+ul{margin-bottom:9px}.drawer .section{display:block;padding:14.5px 24px}.drawer .scrollable{top:104px;z-index:-1}.drawer .scrollable .wrapper{height:auto;min-height:100%}.drawer .scrollable .wrapper hr{margin:12px 0;margin-right:auto}.drawer .scrollable .wrapper .toc{margin:12px 0}.project{display:block}.project .banner{display:table;width:100%;height:104px;padding:20px}.project .logo{display:table-cell;width:64px;padding-right:12px}.project .logo img{display:block;height:64px}.project .name{display:table-cell;padding-left:4px;font-size:14px;line-height:1.25em;vertical-align:middle}.project .logo+.name{font-size:20px}.repo{margin:24px 0;text-align:center}.repo li{display:inline-block;padding-right:12px;white-space:nowrap}.repo li:last-child{padding-right:0}.repo a{display:inline-block;padding:0 10px 0 6px;font-size:12px;line-height:30px;height:30px}.repo a .icon{font-size:18px;vertical-align:-3px}.repo a .count{display:inline-block;position:relative;padding:0 8px 0 4px;margin:0 -10px 0 8px;font-size:12px}.repo a .count:before{content:" ";display:block;position:absolute;top:0;left:-5px}.no-js .repo a .count{display:none}.drawer .toc li a{font-weight:700}.drawer .toc li.anchor a{font-weight:400}.drawer .section,.repo a{font-weight:700}.repo a{text-transform:uppercase}.repo a .count{text-transform:none;font-weight:700}pre span{-webkit-transition:color .25s;transition:color .25s}.copyright a{-webkit-transition:color .25s;transition:color .25s}.ios.standalone .article{background:-webkit-linear-gradient(top,#fff 50%,#FFCCBC 0);background:linear-gradient(180deg,#fff 50%,#FFCCBC 0)}.ios.standalone .article .wrapper{background:-webkit-linear-gradient(top,#fff 50%,#fff 0);background:linear-gradient(180deg,#fff 50%,#fff 0)}.article a,.article h1,.article h2{color:#FFCCBC}.article code{background:#eee}.article kbd{color:#555;background-color:#fcfcfc;border:1px solid #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.article h1{border-bottom:1px solid rgba(0,0,0,.12)}.article a{border-bottom:1px dotted}.article a:focus,.article a:hover{color:#00bfa5}.article .headerlink{color:rgba(0,0,0,.26);border:none}.article table{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);border-radius:3px}.article table th{background:#ee7a70;color:#fff}.article table td{border-top:1px solid rgba(0,0,0,.05)}.article blockquote{border-left:2px solid rgba(0,0,0,.54);color:rgba(0,0,0,.54)}.footer{background:#FFCCBC;color:#fff}.footer a{border:none}.copyright{color:rgba(0,0,0,.54)}.pagination a .button,.pagination a .title{color:#fff}.pagination .direction{color:hsla(0,0%,100%,.7)}.admonition{background:#BBDEFB;}.admonition pre{background:hsla(0,0%,100%,.3)}.admonition.warning{background:#FFCCBC}.admonition a,.admonition a:hover{color:#fff}.article{font-size:14px;line-height:1.7em}.article:after{content:" ";display:block;clear:both}.article .wrapper{padding:116px 16px 92px}.ios.standalone .article{position:absolute;top:56px;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch}.ios.standalone .article .wrapper{position:relative;min-height:100%;padding-top:60px;margin-bottom:2px}.article h1{font-size:24px;line-height:1.333334em;padding:20px 0 42px}.article h2{font-size:20px;line-height:1.4em;padding-top:92px;margin-top:-56px}.ios.standalone .article h2{padding-top:36px;margin:0}.article h3,.article h4{font-size:14px;padding-top:76px;margin-top:-56px}.ios.standalone .article h3,.ios.standalone .article h4{padding-top:20px;margin-top:0}.article .headerlink{float:right;margin-left:20px;font-size:14px}h1 .article .headerlink{display:none}.article ol,.article p,.article ul{margin-top:1.5em}.article li,.article li ol,.article li ul{margin-top:.75em}.article li{margin-left:18px}.article li p{display:inline}.article ul>li:before{content:"\e602";display:block;float:left;font-family:Icon;font-size:16px;width:1.2em;margin-left:-1.2em;vertical-align:-.1em}.article p>code{white-space:nowrap;padding:2px 4px}.article kbd{display:inline-block;padding:3px 5px;line-height:10px}.article hr{margin-top:1.5em}.article img{max-width:100%}.article pre{padding:16px;margin:1.5em -16px 0;line-height:1.5em;overflow:auto;-webkit-overflow-scrolling:touch}.article table{margin:3em 0 1.5em;font-size:13px;overflow:hidden}.no-js .article table{display:inline-block;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.article table th{min-width:100px;font-size:12px;text-align:left}.article table td,.article table th{padding:12px 16px;vertical-align:top}.article blockquote{padding-left:16px}.article .data{margin:1.5em -16px;padding:1.5em 0;overflow:auto;-webkit-overflow-scrolling:touch;text-align:center}.article .data table{display:inline-block;margin:0 16px;text-align:left}.footer{position:absolute;bottom:0;left:0;right:0;padding:0 4px}.copyright{margin:1.5em 0}.pagination{max-width:1184px;height:92px;padding:4px 0;margin-left:auto;margin-right:auto;overflow:hidden}.pagination a{display:block;height:100%}.pagination .next,.pagination .previous{position:relative;float:left;height:100%}.pagination .previous{width:25%}.pagination .previous .direction,.pagination .previous .stretch{display:none}.pagination .next{width:75%;text-align:right}.pagination .page{display:table;position:absolute;bottom:4px}.pagination .direction{display:block;position:absolute;bottom:40px;width:100%;font-size:15px;line-height:20px;padding:0 52px}.pagination .stretch{padding:0 4px}.pagination .stretch .title{font-size:18px;padding:11px 0 13px}.admonition{margin:20px -16px 0;padding:20px 16px}.admonition>:first-child{margin-top:0}.admonition .admonition-title{font-size:20px}.admonition .admonition-title:before{content:"\e611";display:block;float:left;font-family:Icon;font-size:24px;vertical-align:-.1em;margin-right:5px}.admonition.warning .admonition-title:before{content:"\e610"}.article h3{font-weight:700}.article h4{font-weight:400;font-style:italic}.article h2 a,.article h3 a,.article h4 a,.article h5 a,.article h6 a{font-weight:400;font-style:normal}.bar{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:opacity .2s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),transform .4s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1)}#toggle-search:checked~.header .bar,.toggle-search .bar{-webkit-transform:translate3d(0,-56px,0);transform:translate3d(0,-56px,0)}.bar.search .button-reset{-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition:opacity .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),transform .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);opacity:0}.bar.search.non-empty .button-reset{-webkit-transform:scale(1);transform:scale(1);opacity:1}.results{-webkit-transition:opacity .3s .1s,width 0s .4s,height 0s .4s;transition:opacity .3s .1s,width 0s .4s,height 0s .4s}#toggle-search:checked~.main .results,.toggle-search .results{-webkit-transition:opacity .4s,width 0s,height 0s;transition:opacity .4s,width 0s,height 0s}.results .list a{-webkit-transition:background .25s;transition:background .25s}.no-csstransforms3d .bar.default{display:table}.no-csstransforms3d .bar.search{display:none;margin-top:0}.no-csstransforms3d #toggle-search:checked~.header .bar.default,.no-csstransforms3d .toggle-search .bar.default{display:none}.no-csstransforms3d #toggle-search:checked~.header .bar.search,.no-csstransforms3d .toggle-search .bar.search{display:table}.bar.search{opacity:0}.bar.search .query{background:transparent;color:rgba(0,0,0,.87)}.bar.search .query::-webkit-input-placeholder{color:rgba(0,0,0,.26)}.bar.search .query:-moz-placeholder,.bar.search .query::-moz-placeholder{color:rgba(0,0,0,.26)}.bar.search .query:-ms-input-placeholder{color:rgba(0,0,0,.26)}.bar.search .button .icon:active{background:rgba(0,0,0,.12)}.results{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05);background:#fff;color:rgba(0,0,0,.87);opacity:0}#toggle-search:checked~.main .results,.toggle-search .results{opacity:1}.results .meta{background:#FFCCBC;color:#fff}.results .list a{border-bottom:1px solid rgba(0,0,0,.12)}.results .list a:last-child{border-bottom:none}.results .list a:active{background:rgba(0,0,0,.12)}.result span{color:rgba(0,0,0,.54)}#toggle-search:checked~.header,.toggle-search .header{background:#fff;color:rgba(0,0,0,.54)}#toggle-search:checked~.header:before,.toggle-search .header:before{background:rgba(0,0,0,.54)}#toggle-search:checked~.header .bar.default,.toggle-search .header .bar.default{opacity:0}#toggle-search:checked~.header .bar.search,.toggle-search .header .bar.search{opacity:1}.bar.search{margin-top:8px}.bar.search .query{font-size:18px;padding:13px 0;margin:0;width:100%;height:48px}.bar.search .query::-ms-clear{display:none}.results{position:fixed;top:0;left:0;width:0;height:100%;z-index:1;overflow-y:scroll;-webkit-overflow-scrolling:touch}.results .scrollable{top:56px}#toggle-search:checked~.main .results,.toggle-search .results{width:100%;overflow-y:visible}.results .meta{font-weight:700}.results .meta strong{display:block;font-size:11px;max-width:1200px;margin-left:auto;margin-right:auto;padding:16px}.results .list a{display:block}.result{max-width:1200px;margin-left:auto;margin-right:auto;padding:12px 16px 16px}.result h1{line-height:24px}.result h1,.result span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result span{font-size:12px}.no-csstransforms3d .results{display:none}.no-csstransforms3d #toggle-search:checked~.main .results,.no-csstransforms3d .toggle-search .results{display:block;overflow:auto}.meta{text-transform:uppercase;font-weight:700}@media only screen and (min-width:960px){.backdrop{background:#f2f2f2}.backdrop-paper:after{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05)}.button-menu{display:none}.drawer{float:left;height:auto;margin-bottom:96px;padding-top:80px}.drawer,.drawer .scrollable{position:static}.article{margin-left:262px}.footer{z-index:4}.copyright{margin-bottom:64px}.results{height:auto;top:64px}.results .scrollable{position:static;max-height:413px}}@media only screen and (max-width:959px){#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{width:100%;height:100%}.drawer{-webkit-transform:translate3d(-262px,0,0);transform:translate3d(-262px,0,0);-webkit-transition:-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),-webkit-transform .25s cubic-bezier(.4,0,.2,1)}.no-csstransforms3d .drawer{display:none}.drawer{background:#fff}.project{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);background:#FFCCBC;color:#fff}.drawer{position:fixed;z-index:4}#toggle-search:checked~.main .results,.drawer,.toggle-search .results{height:100%}}@media only screen and (min-width:720px){.header{height:64px;padding:8px}.header .stretch{padding:0 16px}.header .stretch .title{font-size:20px;padding:12px 0}.project .name{margin:26px 0 0 5px}.article .wrapper{padding:128px 24px 96px}.article .data{margin:1.5em -24px}.article .data table{margin:0 24px}.article h2{padding-top:100px;margin-top:-64px}.ios.standalone .article h2{padding-top:28px;margin-top:8px}.article h3,.article h4{padding-top:84px;margin-top:-64px}.ios.standalone .article h3,.ios.standalone .article h4{padding-top:20px;margin-top:0}.article pre{padding:1.5em 24px;margin:1.5em -24px 0}.footer{padding:0 8px}.pagination{height:96px;padding:8px 0}.pagination .direction{padding:0 56px;bottom:40px}.pagination .stretch{padding:0 8px}.admonition{margin:20px -24px 0;padding:20px 24px}.bar.search .query{font-size:20px;padding:12px 0}.results .scrollable{top:64px}.results .meta strong{padding:16px 24px}.result{padding:16px 24px 20px}}@media only screen and (min-width:1200px){.header{width:100%}.drawer .scrollable .wrapper hr{width:48px}}@media only screen and (orientation:portrait){.ios.standalone .header{height:76px;padding-top:24px}.ios.standalone .header:before{content:" ";position:absolute;top:0;left:0;z-index:3;width:100%;height:20px}.ios.standalone .drawer .scrollable{top:124px}.ios.standalone .project{padding-top:20px}.ios.standalone .project:before{content:" ";position:absolute;top:0;left:0;z-index:3;width:100%;height:20px}.ios.standalone .article{position:absolute;top:76px;right:0;bottom:0;left:0}.ios.standalone .results .scrollable{top:76px}}@media only screen and (orientation:portrait) and (min-width:720px){.ios.standalone .header{height:84px;padding-top:28px}.ios.standalone .results .scrollable{top:84px}}@media only screen and (max-width:719px){.bar .path{display:none}}@media only screen and (max-width:479px){.button-github,.button-twitter{display:none}}@media only screen and (min-width:720px) and (max-width:959px){.header .stretch{padding:0 24px}}@media only screen and (min-width:480px){.pagination .next,.pagination .previous{width:50%}.pagination .previous .direction{display:block}.pagination .previous .stretch{display:table}}@media print{.drawer,.footer,.header,.headerlink{display:none}.article .wrapper{padding-top:0}.article pre,.article pre *{color:rgba(0,0,0,.87)!important}.article pre{border:1px solid rgba(0,0,0,.12)}.article table{border-radius:none;box-shadow:none}.article table th{color:#FFCCBC}} diff --git a/it4i_theme/assets/stylesheets/application.scss b/it4i_theme/assets/stylesheets/application.scss new file mode 100644 index 0000000000000000000000000000000000000000..dc02b3c0175c17476f1507fe2114893a64957c76 --- /dev/null +++ b/it4i_theme/assets/stylesheets/application.scss @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Dependencies + * ------------------------------------------------------------------------- */ + +@import "bourbon"; +@import "quantum-colors"; +@import "quantum-shadows"; + +/* ---------------------------------------------------------------------------- + * Application + * ------------------------------------------------------------------------- */ + +@import "reset"; +@import "palette"; +@import "highlight"; + +@import "fonts/icon"; + +@import "mixins/break"; + +@import "modules/base"; +@import "modules/drawer"; +@import "modules/article"; +@import "modules/search"; + +@import "print"; +@import "shame"; \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/fonts/_icon.scss b/it4i_theme/assets/stylesheets/fonts/_icon.scss new file mode 100644 index 0000000000000000000000000000000000000000..e66951d91a79784a683982612478772f70322f90 --- /dev/null +++ b/it4i_theme/assets/stylesheets/fonts/_icon.scss @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Font faces - defined in base.html for correct path resolution + * ------------------------------------------------------------------------- */ + +// /* +// * Icon font +// */ +// @font-face { +// font-family: 'Icon'; +// src: url('/assets/fonts/icon.eot?52m981'); +// src: url('/assets/fonts/icon.eot?#iefix52m981') format('embedded-opentype'), +// url('/assets/fonts/icon.woff?52m981') format('woff'), +// url('/assets/fonts/icon.ttf?52m981') format('truetype'), +// url('/assets/fonts/icon.svg?52m981#icon') format('svg'); +// font-weight: normal; +// font-style: normal; +// } + +/* ---------------------------------------------------------------------------- + * Representational classes + * ------------------------------------------------------------------------- */ + +/* + * Base icon class + */ +.icon { + font-family: 'Icon'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* + * Magnifying glass + */ +.icon-search:before { + content: "\e600"; +} + +/* + * Back arrow + */ +.icon-back:before { + content: "\e601"; +} + +/* + * Link indicator + */ +.icon-link:before { + content: "\e602"; +} + +/* + * Close button + */ +.icon-close:before { + content: "\e603"; +} + +/* + * Hamburger icon + */ +.icon-menu:before { + content: "\e604"; +} + +/* + * Forward arrow + */ +.icon-forward:before { + content: "\e605"; +} + +/* + * Twitter icon + */ +.icon-twitter:before { + content: "\e606"; +} + +/* + * GitHub icon + */ +.icon-github:before { + content: "\e607"; +} + +/* + * Download icon + */ +.icon-download:before { + content: "\e608"; +} + +/* + * Star icon + */ +.icon-star:before { + content: "\e609"; +} + +/* + * Warning icon + */ +.icon-warning:before { + content: "\e610"; +} + +/* + * Star icon + */ +.icon-note:before { + content: "\e611"; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/mixins/_break.scss b/it4i_theme/assets/stylesheets/mixins/_break.scss new file mode 100644 index 0000000000000000000000000000000000000000..468fa2ec7d9e76c33e4e6f178dd73f355f86e708 --- /dev/null +++ b/it4i_theme/assets/stylesheets/mixins/_break.scss @@ -0,0 +1,206 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Defaults + * ------------------------------------------------------------------------- */ + +$break: ( + devices: ( + mobile: ( + portrait: 220px 479px, + landscape: 480px 719px + ), + tablet: ( + portrait: 720px 959px, + landscape: 960px 1199px + ), + screen: 1200px + ) +) !default; + +/* ---------------------------------------------------------------------------- + * Helper functions + * ------------------------------------------------------------------------- */ + +/* + * Choose minimum and maximum device widths. + */ +@function break-select-min-max($devices) { + $min: 1000000; $max: 0; + @each $key, $value in $devices { + @while type-of($value) == map { + $value: break-select-min-max($value); + } + @if type-of($value) == list { + @each $number in $value { + @if type-of($number) == number { + $min: min($number, $min); + @if $max != null { + $max: max($number, $max); + } + } @else { + @warn "Invalid number: #{$number}"; + } + } + } @elseif type-of($value) == number { + $min: min($value, $min); + $max: null; + } @else { + @warn "Invalid tuple: #{$value}"; + } + } + @return $min, $max; +} + +/* + * Select minimum and maximum widths for a device breakpoint. + */ +@function break-select-device($device) { + $devices: map-get($break, devices); + @for $n from 1 through length($device) { + @if type-of($devices) == map { + $devices: map-get($devices, nth($device, $n)); + } @else { + @warn "Invalid device map: #{$devices}"; + } + } + @if type-of($devices) == list or + type-of($devices) == number { + $devices: (default: $devices); + } + @return break-select-min-max($devices); +} + +/* ---------------------------------------------------------------------------- + * Mixins for numeric breakpoints + * ------------------------------------------------------------------------- */ + +/* + * A minimum-maximum media query breakpoint. + */ +@mixin break-at($breakpoint) { + @if type-of($breakpoint) == number { + @media only screen and (min-width: $breakpoint) { + @content; + } + } @elseif type-of($breakpoint) == list { + $min: nth($breakpoint, 1); $max: nth($breakpoint, 2); + @if type-of($min) == number and type-of($max) == number { + @media only screen and (min-width: $min) and (max-width: $max) { + @content; + } + } @else { + @warn "Invalid breakpoint: #{$breakpoint}"; + } + } @else { + @warn "Invalid breakpoint: #{$breakpoint}"; + } +} + +/* + * An orientation media query breakpoint. + */ +@mixin break-at-orientation($breakpoint) { + @if type-of($breakpoint) == string { + @media only screen and (orientation: $breakpoint) { + @content; + } + } @else { + @warn "Invalid breakpoint: #{$breakpoint}"; + } +} + +/* + * A maximum-aspect-ratio media query breakpoint. + */ +@mixin break-at-ratio($breakpoint) { + @if type-of($breakpoint) == number { + @media only screen and (max-aspect-ratio: $breakpoint) { + @content; + } + } @else { + @warn "Invalid breakpoint: #{$breakpoint}"; + } +} + +/* ---------------------------------------------------------------------------- + * Mixins for device breakpoints + * ------------------------------------------------------------------------- */ + +/* + * A minimum-maximum media query device breakpoint. + */ +@mixin break-at-device($device) { + @if type-of($device) == string { + $device: $device,; + } + @if type-of($device) == list { + $breakpoint: break-select-device($device); + @if nth($breakpoint, 2) != null { + $min: nth($breakpoint, 1); $max: nth($breakpoint, 2); + @media only screen and (min-width: $min) and (max-width: $max) { + @content; + } + } @else { + @warn "Invalid device: #{$device}"; + } + } @else { + @warn "Invalid device: #{$device}"; + } +} + +/* + * A minimum media query device breakpoint. + */ +@mixin break-from-device($device) { + @if type-of($device) == string { + $device: $device,; + } + @if type-of($device) == list { + $breakpoint: break-select-device($device); + $min: nth($breakpoint, 1); + @media only screen and (min-width: $min) { + @content; + } + } @else { + @warn "Invalid device: #{$device}"; + } +} + +/* + * A maximum media query device breakpoint. + */ +@mixin break-to-device($device) { + @if type-of($device) == string { + $device: $device,; + } + @if type-of($device) == list { + $breakpoint: break-select-device($device); + $max: nth($breakpoint, 1) - 1; + @media only screen and (max-width: $max) { + @content; + } + } @else { + @warn "Invalid device: #{$device}"; + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/_article.scss b/it4i_theme/assets/stylesheets/modules/_article.scss new file mode 100644 index 0000000000000000000000000000000000000000..0529e777a13edc3d0807492bf34a20bf0dad9c29 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/_article.scss @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +@import "article/animation"; +@import "article/appearance"; +@import "article/layout"; +@import "article/typography"; \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/_base.scss b/it4i_theme/assets/stylesheets/modules/_base.scss new file mode 100644 index 0000000000000000000000000000000000000000..140d308fbfb4b58a8d5d83d962bdf5e6bacd8f48 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/_base.scss @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +@import "base/animation"; +@import "base/appearance"; +@import "base/layout"; +@import "base/typography"; \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/_drawer.scss b/it4i_theme/assets/stylesheets/modules/_drawer.scss new file mode 100644 index 0000000000000000000000000000000000000000..afefecffd0f6c48950ec2b07e83c712057e3685b --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/_drawer.scss @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +@import "drawer/animation"; +@import "drawer/appearance"; +@import "drawer/layout"; +@import "drawer/typography"; \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/_search.scss b/it4i_theme/assets/stylesheets/modules/_search.scss new file mode 100644 index 0000000000000000000000000000000000000000..77914e3b11d7f70a3f4b5d132a1d409aaf0307fb --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/_search.scss @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +@import "search/animation"; +@import "search/appearance"; +@import "search/layout"; +@import "search/typography"; \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/article/_animation.scss b/it4i_theme/assets/stylesheets/modules/article/_animation.scss new file mode 100644 index 0000000000000000000000000000000000000000..4a3cfb10699f2f99920b7fd5782b007c8a77bac8 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/article/_animation.scss @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Article animation + * ------------------------------------------------------------------------- */ + +/* + * Fade color after highlighting + */ +pre span { + transition: color .25s; +} + +/* + * Copyright and theme information + */ +.copyright { + + /* + * Animate color on hover + */ + a { + transition: color .25s; + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/article/_appearance.scss b/it4i_theme/assets/stylesheets/modules/article/_appearance.scss new file mode 100644 index 0000000000000000000000000000000000000000..f02f84e44056583a8217d4e846011d3bfff9ce8c --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/article/_appearance.scss @@ -0,0 +1,203 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Article appearance + * ------------------------------------------------------------------------- */ + +/* + * Article + */ +.article { + + /* + * Differing top and bottom rubberband backgrounds in iOS web application + */ + .ios.standalone & { + background: linear-gradient( + to bottom, $white 50%, $primary 50%); + + /* Hack [iOS]: Mitigate black bounding box with linear gradient */ + .wrapper { + background: linear-gradient( + to bottom, $white 50%, $white 50%); + } + } + + /* + * Headlines, chapters, links and inline code + */ + h1, h2, a { + color: $primary; + } + + /* + * Inline code + */ + code { + background: #eee; + } + + /* + * Keyboard tags + */ + kbd { + color: #555; + background-color: #fcfcfc; + border: solid 1px #ccc; + border-bottom-color: #bbb; + border-radius: 3px; + box-shadow: inset 0 -1px 0 #bbb; + } + + /* + * Lower border for main headline + */ + h1 { + border-bottom: 1px solid $black-lightest; + } + + /* + * Underline links + */ + a { + border-bottom: 1px dotted; + } + + /* + * Hovered and focused links + */ + a:hover, a:focus { + color: $accent; + } + + /* + * Light permalinks + */ + .headerlink { + color: $black-lighter; + border: none; + } + + /* + * Data tables + */ + table { + @include drop-shadow(1); + + border-radius: 3px; + + /* + * Table heading + */ + th { + background: mix($primary, $white, 75%); + color: $white; + } + + /* + * Table cell + */ + td { + border-top: 1px solid rgba($black, 0.05); + } + } + + /* + * Blockquote styles + */ + blockquote { + border-left: 2px solid $black-light; + color: $black-light; + } +} + +/* + * Article footer + */ +.footer { + background: $primary; + color: $white; + + /* + * Remove bottom border on links + */ + a { + border: none; + } +} + +/* + * Copyright and theme information + */ +.copyright { + color: $black-light; +} + +/* + * Pagination + */ +.pagination { + + /* + * Inherit color for links + */ + a .title, a .button { + color: $white; + } + + /* + * Smaller font size for direction + */ + .direction { + color: $white-light; + } +} + +/* + * Admonition support + */ +.admonition { + background: $light-blue-400; + color: $white; + + /* + * Embedded code blocks + */ + pre { + background: $white-lighter; + } + + /* + * A warning hint + */ + &.warning { + background: $red-400; + } + + /* + * Headlines, chapters, links and inline code + */ + a, a:hover { + color: $white; + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/article/_layout.scss b/it4i_theme/assets/stylesheets/modules/article/_layout.scss new file mode 100644 index 0000000000000000000000000000000000000000..c5605160cfc323a16c8c145fd9c2efe6ad66ebcf --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/article/_layout.scss @@ -0,0 +1,585 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Article layout + * ------------------------------------------------------------------------- */ + +/* + * Article + */ +.article { + font-size: 14px; + line-height: 1.7em; + + /* [tablet landscape+]: Indent to account for drawer */ + @include break-from-device(tablet landscape) { + margin-left: 262px; + } + + /* + * Clearfix + */ + &:after { + content: " "; + display: block; + clear: both; + } + + /* + * Article wrapper + */ + .wrapper { + padding: 116px 16px 92px; + + /* [tablet portait+]: Increase top spacing */ + @include break-from-device(tablet portrait) { + padding: 128px 24px 96px; + } + } + + /* + * Enable overflow scrolling in iOS web application + */ + .ios.standalone & { + @include position(absolute, 56px 0 0 0); + + overflow: auto; + -webkit-overflow-scrolling: touch; + + /* [orientation: portrait]: Account for status bar in portrait mode */ + @include break-at-orientation(portrait) { + @include position(absolute, (56px + 20px) 0 0 0); + } + + /* + * Article wrapper + */ + .wrapper { + position: relative; + min-height: 100%; + padding-top: 60px; + margin-bottom: 2px; + } + } + + /* + * Article headline + */ + h1 { + font-size: 24px; + line-height: 1.333334em; + padding: 20px 0 42px; + } + + /* + * Article chapters + */ + h2 { + font-size: 20px; + line-height: 1.4em; + padding-top: (36px + 56px); + margin-top: (0px - 56px); + + /* + * No offset correction in iOS web application + */ + .ios.standalone & { + padding-top: 36px; + margin: 0; + } + } + + /* + * Sub headlines + */ + h3, h4 { + font-size: 14px; + padding-top: (20px + 56px); + margin-top: (0 - 56px); + + /* + * No offset correction in iOS web application + */ + .ios.standalone & { + padding-top: 20px; + margin-top: 0; + } + } + + /* + * Align permalinks on the right + */ + .headerlink { + float: right; + margin-left: 20px; + font-size: 14px; + + /* + * Hide permalink to main headline + */ + h1 & { + display: none; + } + } + + /* + * Paragraphs and section titles + */ + p, ul, ol { + margin-top: 1.5em; + } + + /* + * Smaler top spacing for nested lists + */ + li ul, li ol { + margin-top: 0.75em; + } + + /* + * List elements + */ + li { + margin-top: 0.75em; + margin-left: 18px; + + /* + * Inline paragraphs in list elements + */ + p { + display: inline; + } + } + + /* + * Add icon for elements of an unordered list + */ + ul > li:before { + content: "\e602"; + display: block; + float: left; + font-family: 'Icon'; + font-size: 16px; + width: 1.2em; + margin-left: -1.2em; + vertical-align: -0.1em; + } + + /* + * Inline code snippets must not wrap + */ + p > code { + white-space: nowrap; + padding: 2px 4px; + } + + /* + * Keyboard tags + */ + kbd { + display: inline-block; + padding: 3px 5px; + line-height: 10px; + } + + /* + * Add spacing at top of separator + */ + hr { + margin-top: 1.5em; + } + + /* + * Limit images to article container + */ + img { + max-width: 100%; + } + + /* + * Code listing container + */ + pre { + padding: 16px; + margin: 1.5em -16px 0; + line-height: 1.5em; + overflow: auto; + -webkit-overflow-scrolling: touch; + } + + /* + * Data tables + */ + table { + margin: 3.0em 0 1.5em; + font-size: 13px; + overflow: hidden; + + /* + * The semi-cool solution, in case javascript is not available + */ + .no-js & { + display: inline-block; + max-width: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + } + + /* + * Table heading + */ + th { + min-width: 100px; + padding: 12px 16px; + font-size: 12px; + text-align: left; + vertical-align: top; + } + + /* + * Table cell + */ + td { + padding: 12px 16px; + vertical-align: top; + } + } + + /* + * Blockquote styles + */ + blockquote { + padding-left: 16px; + } + + /* + * Data table wrapper, in case javascript is available + */ + .data { + margin: 1.5em -16px; + padding: 1.5em 0; + overflow: auto; + -webkit-overflow-scrolling: touch; + text-align: center; + + /* + * Data table + */ + table { + display: inline-block; + margin: 0 16px; + text-align: left; + } + + /* [tablet portait+]: Increase spacing */ + @include break-from-device(tablet portrait) { + margin: 1.5em -24px; + + /* + * Data table + */ + table { + margin: 0 24px; + } + } + } + + /* [tablet portait+]: Increase spacing */ + @include break-from-device(tablet portrait) { + + /* + * Account for larged header bar and anchors + */ + h2 { + padding-top: (28px + 72px); + margin-top: (8px - 72px); + + /* + * No offset correction in iOS web application + */ + .ios.standalone & { + padding-top: 28px; + margin-top: 8px; + } + } + + /* + * Sub headlines + */ + h3, h4 { + padding-top: (20px + 64px); + margin-top: (0 - 64px); + + /* + * No offset correction in iOS web application + */ + .ios.standalone & { + padding-top: 20px; + margin-top: 0; + } + } + + /* + * Increase spacing for code blocks + */ + pre { + padding: 1.5em 24px; + margin: 1.5em -24px 0; + } + } +} + +/* + * Article footer + */ +.footer { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 0 4px; + + /* [tablet portait+]: Larger spacing */ + @include break-from-device(tablet portrait) { + padding: 0 8px; + } + + /* [tablet landscape+]: Stretch footer to viewport */ + @include break-from-device(tablet landscape) { + z-index: 5; + } +} + +/* + * Copyright and theme information + */ +.copyright { + margin: 1.5em 0; + + /* [tablet landscape+]: Add bottom spacing */ + @include break-from-device(tablet landscape) { + margin-bottom: 64px; + } +} + +/* + * Pagination + */ +.pagination { + max-width: 1184px; + height: 92px; + padding: 4px 0; + margin-left: auto; + margin-right: auto; + overflow: hidden; + + /* [tablet portait+]: Larger pagination and spacing */ + @include break-from-device(tablet portrait) { + height: 96px; + padding: 8px 0; + } + + /* + * Links should span icons entirely + */ + a { + display: block; + height: 100%; + } + + /* + * Previous and next page + */ + .previous, + .next { + position: relative; + float: left; + height: 100%; + } + + /* + * Previous page + */ + .previous { + width: 25%; + + /* + * Hide direction + */ + .direction { + display: none; + } + + /* + * Hide title + */ + .stretch { + display: none; + } + } + + /* + * Next page + */ + .next { + width: 75%; + text-align: right; + } + + /* + * Link to page + */ + .page { + display: table; + position: absolute; + bottom: 4px; + } + + /* + * Put direction over page title + */ + .direction { + display: block; + position: absolute; + bottom: 40px; + width: 100%; + font-size: 15px; + line-height: 20px; + padding: 0 52px; + } + + /* + * Decrease indent for stretching content + */ + .stretch { + padding: 0 4px; + + /* + * Correct vertical spacing + */ + .title { + font-size: 18px; + padding: 11px 0 13px; + } + } + + /* [mobile landscape+]: Proportional width for pagination */ + @include break-from-device(mobile landscape) { + + /* + * Previous and next page + */ + .previous, + .next { + width: 50%; + } + + /* + * Previous page + */ + .previous { + width: 50%; + + /* + * Show direction + */ + .direction { + display: block; + } + + /* + * Show title + */ + .stretch { + display: table; + } + } + } + + /* [tablet portrait+]: Increase vertical spacing */ + @include break-from-device(tablet portrait) { + + /* + * Increase vertical spacing + */ + .direction { + padding: 0 56px; + bottom: 40px; + } + + /* + * Increase vertical spacing + */ + .stretch { + padding: 0 8px; + } + } +} + +/* + * Admonition support + */ +.admonition { + margin: 20px -16px 0; + padding: 20px 16px; + + /* + * Remove redundant margin of first child + */ + > :first-child { + margin-top: 0; + } + + /* [tablet portait+]: Increase horizontal spacing */ + @include break-from-device(tablet portrait) { + margin: 20px -24px 0; + padding: 20px 24px; + } + + /* + * Admonition title, if given + */ + .admonition-title { + font-size: 20px; + + /* + * Default icon + */ + &:before { + content: "\e611"; + display: block; + float: left; + font-family: 'Icon'; + font-size: 24px; + vertical-align: -0.1em; + margin-right: 5px; + } + } + + /* + * Warning icon + */ + &.warning .admonition-title:before { + content: "\e610"; + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/article/_typography.scss b/it4i_theme/assets/stylesheets/modules/article/_typography.scss new file mode 100644 index 0000000000000000000000000000000000000000..c657a7a2965fd594c48a54abb819db969b1bc6bb --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/article/_typography.scss @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Article typography + * ------------------------------------------------------------------------- */ + +/* + * Article + */ +.article { + + /* + * Third-level headlines should be bold + */ + h3 { + font-weight: 700; + } + + /* + * Fourth-level headlines should be italic + */ + h4 { + font-weight: 400; + font-style: italic; + } +} + +/* + * Permalink support + */ +.article { + h2, h3, h4, h5, h6 { + a { + font-weight: 400; + font-style: normal; + } + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/base/_animation.scss b/it4i_theme/assets/stylesheets/modules/base/_animation.scss new file mode 100644 index 0000000000000000000000000000000000000000..720621f685cddc4a3b277e214e927c6cce2e3d4f --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/base/_animation.scss @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Base animation + * ------------------------------------------------------------------------- */ + +/* + * Animate color on hover + */ +a { + transition: color .25s; +} + +/* + * Overlay + */ +.overlay { + transition: opacity .25s, + width .0s .25s, + height .0s .25s; + + /* + * Expanded drawer + */ + #toggle-drawer:checked ~ &, + .toggle-drawer & { + transition: opacity .25s, + width .0s, + height .0s; + } +} + +/* + * Application header - check for javascript to omit flashing + */ +.js .header { + transition: background .6s, + color .6s; + + /* + * Status bar + */ + &:before { + transition: background .6s; + } +} + +/* + * Extended visible touch area on icon + */ +.button .icon { + transition: background .25s; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/base/_appearance.scss b/it4i_theme/assets/stylesheets/modules/base/_appearance.scss new file mode 100644 index 0000000000000000000000000000000000000000..5f0870c1b44456083c484a99f76fb306a559213f --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/base/_appearance.scss @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Base appearance + * ------------------------------------------------------------------------- */ + +/* + * Device specific background hacks related to rubberband + */ +body { + color: $black; + + /* Hack [Chrome, Opera]: Set background color in Chrome and Opera */ + @supports (-webkit-appearance: none) { + background: $primary; + } + + /* + * Don't tint menu bar on iOS + */ + .ios & { + background: $white; + } +} + +/* + * Horizontal separators + */ +hr { + border: 0; + border-top: 1px solid $black-lightest; +} + +/* + * Toggle button + */ +.toggle-button { + cursor: pointer; + color: inherit; +} + +/* + * Backdrop + */ +.backdrop { + background: $white; + + /* [tablet landscape+]: Introduce paper with shadow */ + @include break-from-device(tablet landscape) { + background: darken($white, 5%); + } +} + +/* + * Backdrop paper with shadow + */ +.backdrop-paper:after { + background: $white; + + /* [tablet landscape+]: Add drop shadow */ + @include break-from-device(tablet landscape) { + @include drop-shadow(1); + } +} + +/* + * Overlay + */ +.overlay { + background: $black-light; + opacity: 0; + + /* + * Expanded drawer + */ + #toggle-drawer:checked ~ &, + .toggle-drawer & { + opacity: 1; + } +} + +/* + * Application header + */ +.header { + @include drop-shadow(1); + + background: $primary; + color: $white; + + /* + * Add status bar overlay for iOS web application + */ + .ios.standalone &:before { + background: $black-lightest; + } +} + +/* + * Navigation path within header bar + */ +.bar .path { + color: $white-light; +} + +/* + * Draw round area around icon on touch + */ +.button .icon { + border-radius: 100%; +} + +/* + * Pushed/clicked icon + */ +.button .icon:active { + background: $white-lightest; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/base/_layout.scss b/it4i_theme/assets/stylesheets/modules/base/_layout.scss new file mode 100644 index 0000000000000000000000000000000000000000..2a4569153ffc53682ae61e28afb23057ff1357fc --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/base/_layout.scss @@ -0,0 +1,363 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Base layout + * ------------------------------------------------------------------------- */ + +/* + * Stretch container to viewport + */ +html { + height: 100%; +} + +/* + * Stretch body to container and leave room for sticky footer. + */ +body { + position: relative; + min-height: 100%; +} + +/* + * Horizontal separators + */ +hr { + display: block; + height: 1px; + padding: 0; + margin: 0; +} + +/* + * Lock body (e.g. in search mode) + */ +.locked { + height: 100%; + overflow: hidden; +} + +/* + * Scrollable container + */ +.scrollable { + @include position(absolute, 0 0 0 0); + + overflow: auto; + -webkit-overflow-scrolling: touch; + + /* + * Content wrapper + */ + .wrapper { + height: 100%; + + /* Hack [iOS]: Force overflow scrolling */ + .ios & { + margin-bottom: 2px; + } + } +} + +/* + * Toggle states and button + */ +.toggle { + display: none; + + /* + * Toggle button + */ + &-button { + display: block; + } +} + +/* + * Backdrop + */ +.backdrop { + @include position(absolute, 0 0 0 0); + + z-index: -1; +} + +/* + * Backdrop paper container + */ +.backdrop-paper { + max-width: 1200px; + height: 100%; + margin-left: auto; + margin-right: auto; + + /* + * Actual paper + */ + &:after { + content: " "; + display: block; + height: 100%; + margin-left: 262px; + } +} + +/* + * Overlay + */ +.overlay { + position: fixed; + top: 0; + width: 0; + height: 0; + z-index: 4; + + /* [tablet landscape-]: Trigger overlay */ + @include break-to-device(tablet landscape) { + + /* + * Expanded drawer + */ + #toggle-drawer:checked ~ &, + .toggle-drawer & { + width: 100%; + height: 100%; + } + } +} + +/* + * Application header stays always on top + */ +.header { + @include user-select(none); + + position: fixed; + top: 0; + left: 0; + z-index: 3; + height: 56px; + padding: 4px; + overflow: hidden; + + /* [tablet portait+]: Larger header bar */ + @include break-from-device(tablet portrait) { + height: 64px; + padding: 8px; + } + + /* [screen+]: Stretch to screen */ + @include break-from-device(screen) { + width: 100%; + } + + /* + * Absolute positioning in iOS web application + */ + .ios.standalone & { + position: absolute; + + /* [orientation: portrait]: Account for status bar in portrait mode */ + @include break-at-orientation(portrait) { + height: (56px + 20px); + padding-top: (4px + 20px); + + /* [tablet portait+]: Larger header bar */ + @include break-from-device(tablet portrait) { + height: (64px + 20px); + padding-top: (8px + 20px); + } + + /* + * Add status bar overlay + */ + &:before { + content: " "; + position: absolute; + top: 0; + left: 0; + z-index: 4; + width: 100%; + height: 20px; + } + } + } +} + +/* + * Header bar + */ +.bar { + display: table; + max-width: 1184px; + margin-left: auto; + margin-right: auto; + + /* + * Links should span icons entirely + */ + a { + display: block; + } + + /* + * Hide search button, in case javascript is not available. + */ + .no-js & .button-search { + display: none; + } + + /* + * Navigation path + */ + .path { + + /* + * Correct icon alignment + */ + .icon:before { + vertical-align: -1.5px; + } + + /* [tablet portait-]: Hide path */ + @include break-to-device(tablet portrait) { + display: none; + } + } +} + +/* + * Buttons + */ +.button { + display: table-cell; + vertical-align: top; + width: 1%; + + /* + * Remove native spacing on button + */ + button { + margin: 0; + padding: 0; + + /* Hack [IE]: Remove button offset in active state */ + &:active:before { + position: relative; + top: 0; + left: 0; + } + } + + /* + * Button icons + */ + .icon { + display: inline-block; + font-size: 24px; + padding: 8px; + margin: 4px; + } +} + +/* + * Hide source and twitter button + */ +.button-github, +.button-twitter { + + /* [mobile landscape-]: Hide button */ + @include break-to-device(mobile landscape) { + display: none; + } +} + +/* + * Hide menu button + */ +.button-menu { + + /* [tablet landscape+]: Hide button */ + @include break-from-device(tablet landscape) { + display: none; + } +} + +/* + * Stretch content to remaining space + */ +.stretch { + display: table; + table-layout: fixed; + width: 100%; + + /* + * Set vertical spacing for header + */ + .header & { + padding: 0 20px; + + /* [tablet portait]: Increase vertical spacing */ + @include break-at-device(tablet portrait) { + padding: 0 24px; + } + + /* [tablet portait+]: Account for missing menu icon */ + @include break-from-device(tablet portrait) { + padding: 0 (24px - 8px) 0 16px; + } + } + + /* + * Title with ellipsis on overflow + */ + .title { + display: table-cell; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + + /* + * Increase header font size + */ + .header & { + font-size: 18px; + padding: 13px 0; + + /* [tablet portait+]: Slightly larger typography in header */ + @include break-from-device(tablet portrait) { + font-size: 20px; + padding: 12px 0; + } + } + } +} + +/* + * Main content + */ +.main { + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/base/_typography.scss b/it4i_theme/assets/stylesheets/modules/base/_typography.scss new file mode 100644 index 0000000000000000000000000000000000000000..037e46a5b38eb5fe13e8a167f6192de1466f3d46 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/base/_typography.scss @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Base typography + * ------------------------------------------------------------------------- */ + +/* + * Default font styles + */ +body, input { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-weight: 400; + + /* Enable font-smoothing in Webkit and FF */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* + * Use system fonts, if browser doesn't support webfonts + */ + .no-fontface & { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + } +} + +/* + * Proportional fonts + */ +pre, code, kbd { + font-family: 'Courier New', 'Courier', monospace; + + /* + * Use system fonts, if browser doesn't support webfonts + */ + .no-fontface & { + font-family: 'Courier New', 'Courier', monospace; + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/drawer/_animation.scss b/it4i_theme/assets/stylesheets/modules/drawer/_animation.scss new file mode 100644 index 0000000000000000000000000000000000000000..16077f9b6abc6990d5dffe8a81120f63c5b2d84d --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/drawer/_animation.scss @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Drawer animation + * ------------------------------------------------------------------------- */ + +/* + * Drawer container + */ +.drawer { + + /* [tablet landscape-]: Hide menu */ + @include break-to-device(tablet landscape) { + transform: translate3d(-262px, 0, 0); + transition: transform .25s cubic-bezier(.4, 0, .2, 1); + + /* + * Just hide drawer, if browser doesn't support 3D transforms + */ + .no-csstransforms3d & { + display: none; + } + } + + /* + * Expanded drawer + */ + #toggle-drawer:checked ~ .main &, + .toggle-drawer & { + transform: translate3d(0, 0, 0); + + /* + * Just show drawer, if browser doesn't support 3D transforms + */ + .no-csstransforms3d & { + display: block; + } + } +} + +/* + * No color transition for project link + */ +.project { + transition: none; +} + +/* + * Project logo image + */ +.project .logo img { + transition: box-shadow .4s; +} + +/* + * Repository buttons + */ +.repo a { + transition: box-shadow .4s, + opacity .4s; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/drawer/_appearance.scss b/it4i_theme/assets/stylesheets/modules/drawer/_appearance.scss new file mode 100644 index 0000000000000000000000000000000000000000..b4f9926a53c897aebe9dd2c7f1c03380acc6037d --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/drawer/_appearance.scss @@ -0,0 +1,143 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Drawer appearance + * ------------------------------------------------------------------------- */ + +/* + * Drawer container + */ +.drawer { + + /* [tablet landscape-]: Light gray background */ + @include break-to-device(tablet landscape) { + background: $white; + } + + /* + * Color links + */ + .toc a { + + /* + * Current active element + */ + &.current { + color: $primary; + } + + /* + * Hovered link + */ + &:hover, &:focus { + color: $primary; + } + } + + /* + * Color anchors menu + */ + .anchor a { + border-left: 2px solid $primary; + } + + /* + * Main sections + */ + .section { + color: $black-light; + } +} + +/* + * Project information + */ +.project { + + /* [tablet landscape-]: Add drop shadow */ + @include break-to-device(tablet landscape) { + @include drop-shadow(1); + + background: $primary; + color: $white; + } + + /* + * Add status bar overlay for iOS web application + */ + .ios.standalone &:before { + background: $black-lightest; + } + + /* + * Project logo + */ + .logo img { + background: $white; + border-radius: 100%; + } + + /* + * Scale logo on hover + */ + &:hover .logo img, + &:focus .logo img { + @include drop-shadow(2); + } +} + +/* + * Repository buttons + */ +.repo a { + background: $accent; + color: $white; + border-radius: 3px; + + /* + * Hovered button + */ + &:hover, &:focus { + @include drop-shadow(2); + + opacity: 0.8; + } + + /* + * Stars + */ + .count { + background: $black-lighter; + color: $white; + border-radius: 0px 3px 3px 0px; + + /* + * Star bubble + */ + &:before { + border-width: 15px 5px 15px 0; + border-color: transparent $black-lighter; + border-style: solid; + } + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/drawer/_layout.scss b/it4i_theme/assets/stylesheets/modules/drawer/_layout.scss new file mode 100644 index 0000000000000000000000000000000000000000..d6e1df280dbab654730cb2c3e036d42fd3d1bea4 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/drawer/_layout.scss @@ -0,0 +1,305 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Drawer layout + * ------------------------------------------------------------------------- */ + +/* + * Drawer container + */ +.drawer { + width: 262px; + font-size: 13px; + line-height: 1.0em; + + /* [tablet landscape-]: Fixed positioning */ + @include break-to-device(tablet landscape) { + position: fixed; + z-index: 5; + height: 100%; + } + + /* [tablet landscape+]: Inline with content */ + @include break-from-device(tablet landscape) { + position: static; + float: left; + height: auto; + margin-bottom: 96px; + padding-top: 80px; + } + + /* Hack [iOS]: Mitigate scrolling of parent container on boundaries */ + .ios & { + overflow: scroll; + -webkit-overflow-scrolling: touch; + } + + /* + * Links to articles + */ + .toc li a { + display: block; + padding: 14.5px 24px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + /* + * Links to anchors + */ + .toc li.anchor a { + margin-left: 12px; + padding: 10px 24px 10px 12px; + } + + /* + * Nested links and anchors + */ + .toc li ul { + margin-left: 12px; + } + + /* + * Nested anchors + */ + .current + ul { + margin-bottom: 9px; + } + + /* + * Main sections + */ + .section { + display: block; + padding: 14.5px 24px; + } + + /* + * Scrollable container + */ + .scrollable { + top: 104px; + z-index: -1; + + /* [tablet landscape+]: Revert fixed positioning */ + @include break-from-device(tablet landscape) { + position: static; + } + + /* + * Leave room for status bar in iOS web application + */ + .ios.standalone & { + + /* [orientation: portrait]: Account for status bar in portrait mode */ + @include break-at-orientation(portrait) { + top: (104px + 20px); + } + } + + /* + * Content wrapper + */ + .wrapper { + height: auto; + min-height: 100%; + + /* + * Add spacing at top and bottom of separator + */ + hr { + margin: 12px 0; + + /* [screen+]: Shorten separator */ + @include break-from-device(screen) { + width: 48px; + } + + /* Hack [IE]: Left-align horizontal rule */ + margin-right: auto; + } + + /* + * Add spacing at top and bottom of top level navigation + */ + .toc { + margin: 12px 0; + } + } + } +} + +/* + * Project information + */ +.project { + display: block; + + /* + * Leave room for status bar in iOS web application + */ + .ios.standalone & { + + /* [orientation: portrait]: Account for status bar in portrait mode */ + @include break-at-orientation(portrait) { + padding-top: 20px; + + /* + * Add status bar overlay + */ + &:before { + content: " "; + position: absolute; + top: 0; + left: 0; + z-index: 4; + width: 100%; + height: 20px; + } + } + } + + /* + * Project banner + */ + .banner { + display: table; + width: 100%; + height: 104px; + padding: 20px; + } + + /* + * Project logo + */ + .logo { + display: table-cell; + width: 64px; + padding-right: 12px; + + /* + * Project logo image + */ + img { + display: block; + width: 64px; + height: 64px; + } + } + + /* + * Project name + */ + .name { + display: table-cell; + padding-left: 4px; + font-size: 14px; + line-height: 1.25em; + vertical-align: middle; + + /* [tablet portait+]: Slightly larger project name */ + @include break-from-device(tablet portrait) { + margin: 26px 0 0 5px; + } + } + + /* + * Shrink font, if a logo is given. + */ + .logo + .name { + font-size: 12px; + } +} + +/* + * Repository + */ +.repo { + margin: 24px 0; + text-align: center; + + /* + * Inline buttons + */ + li { + display: inline-block; + padding-right: 12px; + white-space: nowrap; + + /* + * No padding on last button + */ + &:last-child { + padding-right: 0; + } + } + + /* + * Buttons + */ + a { + display: inline-block; + padding: 0px 10px 0px 6px; + font-size: 12px; + line-height: 30px; + height: 30px; + + /* + * Slightly larger icons + */ + .icon { + font-size: 18px; + vertical-align: -3px; + } + + /* + * Stars + */ + .count { + display: inline-block; + position: relative; + padding: 0px 8px 0 4px; + margin: 0 -10px 0 8px; + font-size: 12px; + + /* + * Star bubble + */ + &:before { + content: " "; + display: block; + position: absolute; + top: 0px; + left: -5px; + } + + /* + * Hide count, in case javascript is not available. + */ + .no-js & { + display: none; + } + } + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/drawer/_typography.scss b/it4i_theme/assets/stylesheets/modules/drawer/_typography.scss new file mode 100644 index 0000000000000000000000000000000000000000..78ea4f242edaac50fda828b4d31bc9dfd250e747 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/drawer/_typography.scss @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Drawer typography + * ------------------------------------------------------------------------- */ + +/* + * Drawer container + */ +.drawer { + + /* + * Links to articles + */ + .toc li a { + font-weight: 700; + } + + /* + * Links to chapters inside the current article + */ + .toc li.anchor a { + font-weight: 400; + } + + /* + * Main sections + */ + .section { + font-weight: 700; + } +} + +/* + * Repository buttons + */ +.repo a { + text-transform: uppercase; + font-weight: 700; + + /* + * Stars + */ + .count { + text-transform: none; + font-weight: 700; + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/search/_animation.scss b/it4i_theme/assets/stylesheets/modules/search/_animation.scss new file mode 100644 index 0000000000000000000000000000000000000000..37df48f32a9ddc33c42dea637355d41ea268b43e --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/search/_animation.scss @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Search animation + * ------------------------------------------------------------------------- */ + +/* + * Animate header bar in offset and opacity + */ +.bar { + transform: translate3d(0, 0, 0); + transition: opacity .2s cubic-bezier(.75, 0, .25, 1), + transform .4s cubic-bezier(.75, 0, .25, 1); + + /* + * Active search mode + */ + #toggle-search:checked ~ .header &, + .toggle-search & { + transform: translate3d(0, -56px, 0); + } + + /* + * Search animations + */ + &.search { + + /* + * Hide reset button by default + */ + .button-reset { + transform: scale(0.5, 0.5); + transition: opacity .4s cubic-bezier(.1, .7, .1, 1), + transform .4s cubic-bezier(.1, .7, .1, 1); + opacity: 0; + } + + /* + * Show reset button if search is not empty + */ + &.non-empty .button-reset { + transform: scale(1.0, 1.0); + opacity: 1; + } + } +} + +/* + * Search results + */ +.results { + transition: opacity .3s .1s, + width .0s .4s, + height .0s .4s; + + /* + * Active search mode + */ + #toggle-search:checked ~ .main &, + .toggle-search & { + transition: opacity .4s, + width .0s, + height .0s; + } + + /* + * Search result item link + */ + .list a { + transition: background .25s; + } +} + +/* + * Just hide and show bars, if browser doesn't support 3D transforms + */ +.no-csstransforms3d { + + /* + * Show default bar + */ + .bar.default { + display: table; + } + + /* + * Hide search bar + */ + .bar.search { + display: none; + margin-top: 0; + } + + /* + * Active search mode + */ + #toggle-search:checked ~ .header, + .toggle-search { + + /* + * Hide default bar + */ + .bar.default { + display: none; + } + + /* + * Show search bar + */ + .bar.search { + display: table; + } + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/search/_appearance.scss b/it4i_theme/assets/stylesheets/modules/search/_appearance.scss new file mode 100644 index 0000000000000000000000000000000000000000..045cd76137cff65a97748c4918fab85e8079812b --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/search/_appearance.scss @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Search appearance + * ------------------------------------------------------------------------- */ + +/* + * Search bar + */ +.bar.search { + opacity: 0; + + /* + * Search input + */ + .query { + background: transparent; + color: $black; + + /* + * Search input placeholder + */ + @include placeholder { + color: $black-lighter; + } + } + + /* + * Pushed/clicked icon + */ + .button .icon:active { + background: $black-lightest; + } +} + +/* + * Search results + */ +.results { + @include drop-shadow(2); + + background: $white; + color: $black; + opacity: 0; + + /* + * Active search mode + */ + #toggle-search:checked ~ .main &, + .toggle-search & { + opacity: 1; + } + + /* + * Search meta data + */ + .meta { + background: $primary; + color: $white; + } + + /* + * Search result item link + */ + .list a { + border-bottom: 1px solid $black-lightest; + + /* + * Remove border on last element + */ + &:last-child { + border-bottom: none; + } + + /* + * Active item link + */ + &:active { + background: $black-lightest; + } + } +} + +/* + * Article link + */ +.result span { + color: $black-light; +} + +/* + * Active search bar + */ +#toggle-search:checked ~ .header, +.toggle-search .header { + background: $white; + color: $black-light; + + /* + * Add darker status bar overlay in search mode + */ + &:before { + background: $black-light; + } + + /* + * Fade out default header bar + */ + .bar.default { + opacity: 0; + } + + /* + * Fade in search header bar + */ + .bar.search { + opacity: 1; + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/search/_layout.scss b/it4i_theme/assets/stylesheets/modules/search/_layout.scss new file mode 100644 index 0000000000000000000000000000000000000000..33c89be986d66f970245ad3b17759f6ed54f8474 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/search/_layout.scss @@ -0,0 +1,218 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Search layout + * ------------------------------------------------------------------------- */ + +/* + * Search bar + */ +.bar.search { + margin-top: 8px; + + /* + * Search input + */ + .query { + font-size: 18px; + padding: 13px 0; + margin: 0; + width: 100%; + height: 48px; + + /* [tablet portait+]: Slightly larger typo */ + @include break-from-device(tablet portrait) { + font-size: 20px; + padding: 12px 0; + } + + /* Hack [IE]: Hide redundant clear button */ + &::-ms-clear { + display: none; + } + } +} + +/* + * Search results + */ +.results { + position: fixed; + top: 0; + left: 0; + width: 0; + height: 100%; + z-index: 2; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + + /* [tablet landscape+]: Limit results to five entries */ + @include break-from-device(tablet landscape) { + height: auto; + top: 64px; + } + + /* + * Scrollable container + */ + .scrollable { + top: 56px; + + /* [tablet portait+]: Increase vertical spacing */ + @include break-from-device(tablet portrait) { + top: 64px; + } + + /* [tablet landscape+]: Limit results to five entries */ + @include break-from-device(tablet landscape) { + position: static; + max-height: 413px; + } + + /* + * Leave room for status bar in iOS web application + */ + .ios.standalone & { + + /* [orientation: portrait]: Account for status bar in portrait mode */ + @include break-at-orientation(portrait) { + top: (56px + 20px); + + /* [tablet portait+]: Increase vertical spacing */ + @include break-from-device(tablet portrait) { + top: (64px + 20px); + } + } + } + } + + /* + * Active search mode + */ + #toggle-search:checked ~ .main &, + .toggle-search & { + width: 100%; + + /* Hack [Firefox]: div doesn't collapse, unless this is applied */ + overflow-y: visible; + + /* [tablet portait+]: Stretch to viewport */ + @include break-to-device(tablet landscape) { + height: 100%; + } + } + + /* + * Search meta data + */ + .meta { + font-weight: 700; + + /* + * Number of results + */ + strong { + display: block; + font-size: 11px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + padding: 16px; + + /* [tablet portait+]: Increase vertical spacing */ + @include break-from-device(tablet portrait) { + padding: 16px 24px; + } + } + } + + /* + * Search result item link + */ + .list a { + display: block; + } +} + +/* + * Search result item + */ +.result { + max-width: 1200px; + margin-left: auto; + margin-right: auto; + padding: 12px 16px 16px; + + /* [tablet portait+]: Increase vertical spacing */ + @include break-from-device(tablet portrait) { + padding: 16px 24px 20px; + } + + /* + * Article title + */ + h1 { + line-height: 24px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + /* + * Article link + */ + span { + font-size: 12px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } +} + +/* + * Switch visibility, if browser doesn't support 3D transforms + */ +.no-csstransforms3d { + + /* + * Hide search results + */ + .results { + display: none; + } + + /* + * Active search mode + */ + #toggle-search:checked ~ .main, + .toggle-search { + + /* + * Show search results + */ + .results { + display: block; + overflow: auto; + } + } +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/modules/search/_typography.scss b/it4i_theme/assets/stylesheets/modules/search/_typography.scss new file mode 100644 index 0000000000000000000000000000000000000000..465f20edee64afb152c173fdc0ef6743296615a5 --- /dev/null +++ b/it4i_theme/assets/stylesheets/modules/search/_typography.scss @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* + * Search meta data + */ +.meta { + text-transform: uppercase; + font-weight: 700; +} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/palettes.css b/it4i_theme/assets/stylesheets/palettes.css deleted file mode 100644 index ead0d849bf5c31d986114d6b045bc4afd7fe522c..0000000000000000000000000000000000000000 --- a/it4i_theme/assets/stylesheets/palettes.css +++ /dev/null @@ -1 +0,0 @@ -@supports (-webkit-appearance:none){.palette-primary-red{background:#e84e40}}.palette-primary-red .footer,.palette-primary-red .header{background:#e84e40}.palette-primary-red .drawer .toc a.current,.palette-primary-red .drawer .toc a:focus,.palette-primary-red .drawer .toc a:hover{color:#e84e40}.palette-primary-red .drawer .anchor a{border-left:2px solid #e84e40}.ios.standalone .palette-primary-red .article{background:-webkit-linear-gradient(top,#fff 50%,#e84e40 0);background:linear-gradient(180deg,#fff 50%,#e84e40 0)}.palette-primary-red .article a,.palette-primary-red .article code,.palette-primary-red .article h1,.palette-primary-red .article h2{color:#e84e40}.palette-primary-red .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-red .article table th{background:#ee7a70}.palette-primary-red .results .meta{background:#e84e40}@supports (-webkit-appearance:none){.palette-primary-pink{background:#e91e63}}.palette-primary-pink .footer,.palette-primary-pink .header{background:#e91e63}.palette-primary-pink .drawer .toc a.current,.palette-primary-pink .drawer .toc a:focus,.palette-primary-pink .drawer .toc a:hover{color:#e91e63}.palette-primary-pink .drawer .anchor a{border-left:2px solid #e91e63}.ios.standalone .palette-primary-pink .article{background:-webkit-linear-gradient(top,#fff 50%,#e91e63 0);background:linear-gradient(180deg,#fff 50%,#e91e63 0)}.palette-primary-pink .article a,.palette-primary-pink .article code,.palette-primary-pink .article h1,.palette-primary-pink .article h2{color:#e91e63}.palette-primary-pink .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-pink .article table th{background:#ef568a}.palette-primary-pink .results .meta{background:#e91e63}@supports (-webkit-appearance:none){.palette-primary-purple{background:#ab47bc}}.palette-primary-purple .footer,.palette-primary-purple .header{background:#ab47bc}.palette-primary-purple .drawer .toc a.current,.palette-primary-purple .drawer .toc a:focus,.palette-primary-purple .drawer .toc a:hover{color:#ab47bc}.palette-primary-purple .drawer .anchor a{border-left:2px solid #ab47bc}.ios.standalone .palette-primary-purple .article{background:-webkit-linear-gradient(top,#fff 50%,#ab47bc 0);background:linear-gradient(180deg,#fff 50%,#ab47bc 0)}.palette-primary-purple .article a,.palette-primary-purple .article code,.palette-primary-purple .article h1,.palette-primary-purple .article h2{color:#ab47bc}.palette-primary-purple .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-purple .article table th{background:#c075cd}.palette-primary-purple .results .meta{background:#ab47bc}@supports (-webkit-appearance:none){.palette-primary-deep-purple{background:#7e57c2}}.palette-primary-deep-purple .footer,.palette-primary-deep-purple .header{background:#7e57c2}.palette-primary-deep-purple .drawer .toc a.current,.palette-primary-deep-purple .drawer .toc a:focus,.palette-primary-deep-purple .drawer .toc a:hover{color:#7e57c2}.palette-primary-deep-purple .drawer .anchor a{border-left:2px solid #7e57c2}.ios.standalone .palette-primary-deep-purple .article{background:-webkit-linear-gradient(top,#fff 50%,#7e57c2 0);background:linear-gradient(180deg,#fff 50%,#7e57c2 0)}.palette-primary-deep-purple .article a,.palette-primary-deep-purple .article code,.palette-primary-deep-purple .article h1,.palette-primary-deep-purple .article h2{color:#7e57c2}.palette-primary-deep-purple .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-deep-purple .article table th{background:#9e81d1}.palette-primary-deep-purple .results .meta{background:#7e57c2}@supports (-webkit-appearance:none){.palette-primary-indigo{background:#3f51b5}}.palette-primary-indigo .footer,.palette-primary-indigo .header{background:#3f51b5}.palette-primary-indigo .drawer .toc a.current,.palette-primary-indigo .drawer .toc a:focus,.palette-primary-indigo .drawer .toc a:hover{color:#3f51b5}.palette-primary-indigo .drawer .anchor a{border-left:2px solid #3f51b5}.ios.standalone .palette-primary-indigo .article{background:-webkit-linear-gradient(top,#fff 50%,#3f51b5 0);background:linear-gradient(180deg,#fff 50%,#3f51b5 0)}.palette-primary-indigo .article a,.palette-primary-indigo .article code,.palette-primary-indigo .article h1,.palette-primary-indigo .article h2{color:#3f51b5}.palette-primary-indigo .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-indigo .article table th{background:#6f7dc8}.palette-primary-indigo .results .meta{background:#3f51b5}@supports (-webkit-appearance:none){.palette-primary-blue{background:#5677fc}}.palette-primary-blue .footer,.palette-primary-blue .header{background:#5677fc}.palette-primary-blue .drawer .toc a.current,.palette-primary-blue .drawer .toc a:focus,.palette-primary-blue .drawer .toc a:hover{color:#5677fc}.palette-primary-blue .drawer .anchor a{border-left:2px solid #5677fc}.ios.standalone .palette-primary-blue .article{background:-webkit-linear-gradient(top,#fff 50%,#5677fc 0);background:linear-gradient(180deg,#fff 50%,#5677fc 0)}.palette-primary-blue .article a,.palette-primary-blue .article code,.palette-primary-blue .article h1,.palette-primary-blue .article h2{color:#5677fc}.palette-primary-blue .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-blue .article table th{background:#8099fd}.palette-primary-blue .results .meta{background:#5677fc}@supports (-webkit-appearance:none){.palette-primary-light-blue{background:#03a9f4}}.palette-primary-light-blue .footer,.palette-primary-light-blue .header{background:#03a9f4}.palette-primary-light-blue .drawer .toc a.current,.palette-primary-light-blue .drawer .toc a:focus,.palette-primary-light-blue .drawer .toc a:hover{color:#03a9f4}.palette-primary-light-blue .drawer .anchor a{border-left:2px solid #03a9f4}.ios.standalone .palette-primary-light-blue .article{background:-webkit-linear-gradient(top,#fff 50%,#03a9f4 0);background:linear-gradient(180deg,#fff 50%,#03a9f4 0)}.palette-primary-light-blue .article a,.palette-primary-light-blue .article code,.palette-primary-light-blue .article h1,.palette-primary-light-blue .article h2{color:#03a9f4}.palette-primary-light-blue .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-light-blue .article table th{background:#42bff7}.palette-primary-light-blue .results .meta{background:#03a9f4}@supports (-webkit-appearance:none){.palette-primary-cyan{background:#00bcd4}}.palette-primary-cyan .footer,.palette-primary-cyan .header{background:#00bcd4}.palette-primary-cyan .drawer .toc a.current,.palette-primary-cyan .drawer .toc a:focus,.palette-primary-cyan .drawer .toc a:hover{color:#00bcd4}.palette-primary-cyan .drawer .anchor a{border-left:2px solid #00bcd4}.ios.standalone .palette-primary-cyan .article{background:-webkit-linear-gradient(top,#fff 50%,#00bcd4 0);background:linear-gradient(180deg,#fff 50%,#00bcd4 0)}.palette-primary-cyan .article a,.palette-primary-cyan .article code,.palette-primary-cyan .article h1,.palette-primary-cyan .article h2{color:#00bcd4}.palette-primary-cyan .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-cyan .article table th{background:#40cddf}.palette-primary-cyan .results .meta{background:#00bcd4}@supports (-webkit-appearance:none){.palette-primary-teal{background:#009688}}.palette-primary-teal .footer,.palette-primary-teal .header{background:#009688}.palette-primary-teal .drawer .toc a.current,.palette-primary-teal .drawer .toc a:focus,.palette-primary-teal .drawer .toc a:hover{color:#009688}.palette-primary-teal .drawer .anchor a{border-left:2px solid #009688}.ios.standalone .palette-primary-teal .article{background:-webkit-linear-gradient(top,#fff 50%,#009688 0);background:linear-gradient(180deg,#fff 50%,#009688 0)}.palette-primary-teal .article a,.palette-primary-teal .article code,.palette-primary-teal .article h1,.palette-primary-teal .article h2{color:#009688}.palette-primary-teal .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-teal .article table th{background:#40b0a6}.palette-primary-teal .results .meta{background:#009688}@supports (-webkit-appearance:none){.palette-primary-green{background:#259b24}}.palette-primary-green .footer,.palette-primary-green .header{background:#259b24}.palette-primary-green .drawer .toc a.current,.palette-primary-green .drawer .toc a:focus,.palette-primary-green .drawer .toc a:hover{color:#259b24}.palette-primary-green .drawer .anchor a{border-left:2px solid #259b24}.ios.standalone .palette-primary-green .article{background:-webkit-linear-gradient(top,#fff 50%,#259b24 0);background:linear-gradient(180deg,#fff 50%,#259b24 0)}.palette-primary-green .article a,.palette-primary-green .article code,.palette-primary-green .article h1,.palette-primary-green .article h2{color:#259b24}.palette-primary-green .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-green .article table th{background:#5cb45b}.palette-primary-green .results .meta{background:#259b24}@supports (-webkit-appearance:none){.palette-primary-light-green{background:#7cb342}}.palette-primary-light-green .footer,.palette-primary-light-green .header{background:#7cb342}.palette-primary-light-green .drawer .toc a.current,.palette-primary-light-green .drawer .toc a:focus,.palette-primary-light-green .drawer .toc a:hover{color:#7cb342}.palette-primary-light-green .drawer .anchor a{border-left:2px solid #7cb342}.ios.standalone .palette-primary-light-green .article{background:-webkit-linear-gradient(top,#fff 50%,#7cb342 0);background:linear-gradient(180deg,#fff 50%,#7cb342 0)}.palette-primary-light-green .article a,.palette-primary-light-green .article code,.palette-primary-light-green .article h1,.palette-primary-light-green .article h2{color:#7cb342}.palette-primary-light-green .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-light-green .article table th{background:#9dc671}.palette-primary-light-green .results .meta{background:#7cb342}@supports (-webkit-appearance:none){.palette-primary-lime{background:#c0ca33}}.palette-primary-lime .footer,.palette-primary-lime .header{background:#c0ca33}.palette-primary-lime .drawer .toc a.current,.palette-primary-lime .drawer .toc a:focus,.palette-primary-lime .drawer .toc a:hover{color:#c0ca33}.palette-primary-lime .drawer .anchor a{border-left:2px solid #c0ca33}.ios.standalone .palette-primary-lime .article{background:-webkit-linear-gradient(top,#fff 50%,#c0ca33 0);background:linear-gradient(180deg,#fff 50%,#c0ca33 0)}.palette-primary-lime .article a,.palette-primary-lime .article code,.palette-primary-lime .article h1,.palette-primary-lime .article h2{color:#c0ca33}.palette-primary-lime .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-lime .article table th{background:#d0d766}.palette-primary-lime .results .meta{background:#c0ca33}@supports (-webkit-appearance:none){.palette-primary-yellow{background:#f9a825}}.palette-primary-yellow .footer,.palette-primary-yellow .header{background:#f9a825}.palette-primary-yellow .drawer .toc a.current,.palette-primary-yellow .drawer .toc a:focus,.palette-primary-yellow .drawer .toc a:hover{color:#f9a825}.palette-primary-yellow .drawer .anchor a{border-left:2px solid #f9a825}.ios.standalone .palette-primary-yellow .article{background:-webkit-linear-gradient(top,#fff 50%,#f9a825 0);background:linear-gradient(180deg,#fff 50%,#f9a825 0)}.palette-primary-yellow .article a,.palette-primary-yellow .article code,.palette-primary-yellow .article h1,.palette-primary-yellow .article h2{color:#f9a825}.palette-primary-yellow .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-yellow .article table th{background:#fbbe5c}.palette-primary-yellow .results .meta{background:#f9a825}@supports (-webkit-appearance:none){.palette-primary-amber{background:#ffb300}}.palette-primary-amber .footer,.palette-primary-amber .header{background:#ffb300}.palette-primary-amber .drawer .toc a.current,.palette-primary-amber .drawer .toc a:focus,.palette-primary-amber .drawer .toc a:hover{color:#ffb300}.palette-primary-amber .drawer .anchor a{border-left:2px solid #ffb300}.ios.standalone .palette-primary-amber .article{background:-webkit-linear-gradient(top,#fff 50%,#ffb300 0);background:linear-gradient(180deg,#fff 50%,#ffb300 0)}.palette-primary-amber .article a,.palette-primary-amber .article code,.palette-primary-amber .article h1,.palette-primary-amber .article h2{color:#ffb300}.palette-primary-amber .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-amber .article table th{background:#ffc640}.palette-primary-amber .results .meta{background:#ffb300}@supports (-webkit-appearance:none){.palette-primary-orange{background:#fb8c00}}.palette-primary-orange .footer,.palette-primary-orange .header{background:#fb8c00}.palette-primary-orange .drawer .toc a.current,.palette-primary-orange .drawer .toc a:focus,.palette-primary-orange .drawer .toc a:hover{color:#fb8c00}.palette-primary-orange .drawer .anchor a{border-left:2px solid #fb8c00}.ios.standalone .palette-primary-orange .article{background:-webkit-linear-gradient(top,#fff 50%,#fb8c00 0);background:linear-gradient(180deg,#fff 50%,#fb8c00 0)}.palette-primary-orange .article a,.palette-primary-orange .article code,.palette-primary-orange .article h1,.palette-primary-orange .article h2{color:#fb8c00}.palette-primary-orange .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-orange .article table th{background:#fca940}.palette-primary-orange .results .meta{background:#fb8c00}@supports (-webkit-appearance:none){.palette-primary-deep-orange{background:#ff7043}}.palette-primary-deep-orange .footer,.palette-primary-deep-orange .header{background:#ff7043}.palette-primary-deep-orange .drawer .toc a.current,.palette-primary-deep-orange .drawer .toc a:focus,.palette-primary-deep-orange .drawer .toc a:hover{color:#ff7043}.palette-primary-deep-orange .drawer .anchor a{border-left:2px solid #ff7043}.ios.standalone .palette-primary-deep-orange .article{background:-webkit-linear-gradient(top,#fff 50%,#ff7043 0);background:linear-gradient(180deg,#fff 50%,#ff7043 0)}.palette-primary-deep-orange .article a,.palette-primary-deep-orange .article code,.palette-primary-deep-orange .article h1,.palette-primary-deep-orange .article h2{color:#ff7043}.palette-primary-deep-orange .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-deep-orange .article table th{background:#ff9472}.palette-primary-deep-orange .results .meta{background:#ff7043}@supports (-webkit-appearance:none){.palette-primary-brown{background:#795548}}.palette-primary-brown .footer,.palette-primary-brown .header{background:#795548}.palette-primary-brown .drawer .toc a.current,.palette-primary-brown .drawer .toc a:focus,.palette-primary-brown .drawer .toc a:hover{color:#795548}.palette-primary-brown .drawer .anchor a{border-left:2px solid #795548}.ios.standalone .palette-primary-brown .article{background:-webkit-linear-gradient(top,#fff 50%,#795548 0);background:linear-gradient(180deg,#fff 50%,#795548 0)}.palette-primary-brown .article a,.palette-primary-brown .article code,.palette-primary-brown .article h1,.palette-primary-brown .article h2{color:#795548}.palette-primary-brown .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-brown .article table th{background:#9b8076}.palette-primary-brown .results .meta{background:#795548}@supports (-webkit-appearance:none){.palette-primary-grey{background:#757575}}.palette-primary-grey .footer,.palette-primary-grey .header{background:#757575}.palette-primary-grey .drawer .toc a.current,.palette-primary-grey .drawer .toc a:focus,.palette-primary-grey .drawer .toc a:hover{color:#757575}.palette-primary-grey .drawer .anchor a{border-left:2px solid #757575}.ios.standalone .palette-primary-grey .article{background:-webkit-linear-gradient(top,#fff 50%,#757575 0);background:linear-gradient(180deg,#fff 50%,#757575 0)}.palette-primary-grey .article a,.palette-primary-grey .article code,.palette-primary-grey .article h1,.palette-primary-grey .article h2{color:#757575}.palette-primary-grey .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-grey .article table th{background:#989898}.palette-primary-grey .results .meta{background:#757575}@supports (-webkit-appearance:none){.palette-primary-blue-grey{background:#546e7a}}.palette-primary-blue-grey .footer,.palette-primary-blue-grey .header{background:#546e7a}.palette-primary-blue-grey .drawer .toc a.current,.palette-primary-blue-grey .drawer .toc a:focus,.palette-primary-blue-grey .drawer .toc a:hover{color:#546e7a}.palette-primary-blue-grey .drawer .anchor a{border-left:2px solid #546e7a}.ios.standalone .palette-primary-blue-grey .article{background:-webkit-linear-gradient(top,#fff 50%,#546e7a 0);background:linear-gradient(180deg,#fff 50%,#546e7a 0)}.palette-primary-blue-grey .article a,.palette-primary-blue-grey .article code,.palette-primary-blue-grey .article h1,.palette-primary-blue-grey .article h2{color:#546e7a}.palette-primary-blue-grey .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-blue-grey .article table th{background:#7f929b}.palette-primary-blue-grey .results .meta{background:#546e7a}.palette-accent-red .article a:focus,.palette-accent-red .article a:hover{color:#ff2d6f}.palette-accent-red .repo a{background:#ff2d6f}.palette-accent-pink .article a:focus,.palette-accent-pink .article a:hover{color:#f50057}.palette-accent-pink .repo a{background:#f50057}.palette-accent-purple .article a:focus,.palette-accent-purple .article a:hover{color:#e040fb}.palette-accent-purple .repo a{background:#e040fb}.palette-accent-deep-purple .article a:focus,.palette-accent-deep-purple .article a:hover{color:#7c4dff}.palette-accent-deep-purple .repo a{background:#7c4dff}.palette-accent-indigo .article a:focus,.palette-accent-indigo .article a:hover{color:#536dfe}.palette-accent-indigo .repo a{background:#536dfe}.palette-accent-blue .article a:focus,.palette-accent-blue .article a:hover{color:#6889ff}.palette-accent-blue .repo a{background:#6889ff}.palette-accent-light-blue .article a:focus,.palette-accent-light-blue .article a:hover{color:#0091ea}.palette-accent-light-blue .repo a{background:#0091ea}.palette-accent-cyan .article a:focus,.palette-accent-cyan .article a:hover{color:#00b8d4}.palette-accent-cyan .repo a{background:#00b8d4}.palette-accent-teal .article a:focus,.palette-accent-teal .article a:hover{color:#00bfa5}.palette-accent-teal .repo a{background:#00bfa5}.palette-accent-green .article a:focus,.palette-accent-green .article a:hover{color:#12c700}.palette-accent-green .repo a{background:#12c700}.palette-accent-light-green .article a:focus,.palette-accent-light-green .article a:hover{color:#64dd17}.palette-accent-light-green .repo a{background:#64dd17}.palette-accent-lime .article a:focus,.palette-accent-lime .article a:hover{color:#aeea00}.palette-accent-lime .repo a{background:#aeea00}.palette-accent-yellow .article a:focus,.palette-accent-yellow .article a:hover{color:#ffd600}.palette-accent-yellow .repo a{background:#ffd600}.palette-accent-amber .article a:focus,.palette-accent-amber .article a:hover{color:#ffab00}.palette-accent-amber .repo a{background:#ffab00}.palette-accent-orange .article a:focus,.palette-accent-orange .article a:hover{color:#ff9100}.palette-accent-orange .repo a{background:#ff9100}.palette-accent-deep-orange .article a:focus,.palette-accent-deep-orange .article a:hover{color:#ff6e40}.palette-accent-deep-orange .repo a{background:#ff6e40}@media only screen and (max-width:959px){.palette-primary-red .project{background:#e84e40}.palette-primary-pink .project{background:#e91e63}.palette-primary-purple .project{background:#ab47bc}.palette-primary-deep-purple .project{background:#7e57c2}.palette-primary-indigo .project{background:#3f51b5}.palette-primary-blue .project{background:#5677fc}.palette-primary-light-blue .project{background:#03a9f4}.palette-primary-cyan .project{background:#00bcd4}.palette-primary-teal .project{background:#009688}.palette-primary-green .project{background:#259b24}.palette-primary-light-green .project{background:#7cb342}.palette-primary-lime .project{background:#c0ca33}.palette-primary-yellow .project{background:#f9a825}.palette-primary-amber .project{background:#ffb300}.palette-primary-orange .project{background:#fb8c00}.palette-primary-deep-orange .project{background:#ff7043}.palette-primary-brown .project{background:#795548}.palette-primary-grey .project{background:#757575}.palette-primary-blue-grey .project{background:#546e7a}} \ No newline at end of file diff --git a/it4i_theme/assets/stylesheets/palettes.scss b/it4i_theme/assets/stylesheets/palettes.scss new file mode 100644 index 0000000000000000000000000000000000000000..fe2fc69e45592a1e3161574c0fce0c28553b327c --- /dev/null +++ b/it4i_theme/assets/stylesheets/palettes.scss @@ -0,0 +1,221 @@ +/* + * Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 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. + */ + +/* ---------------------------------------------------------------------------- + * Dependencies + * ------------------------------------------------------------------------- */ + +@import "bourbon"; +@import "quantum-colors"; +@import "quantum-shadows"; + +/* ---------------------------------------------------------------------------- + * Application + * ------------------------------------------------------------------------- */ + +@import "palette"; + +@import "mixins/break"; + +/* ---------------------------------------------------------------------------- + * Palette + * ------------------------------------------------------------------------- */ + +/* + * Build primary palette + */ +@each $name, $color in ( + 'red': $red-400, + 'pink': $pink-500, + 'purple': $purple-400, + 'deep-purple': $deep-purple-400, + 'indigo': $indigo-500, + 'blue': $blue-500, + 'light-blue': $light-blue-500, + 'cyan': $cyan-500, + 'teal': $teal-500, + 'green': $green-500, + 'light-green': $light-green-600, + 'lime': $lime-600, + 'yellow': $yellow-800, + 'amber': $amber-600, + 'orange': $orange-600, + 'deep-orange': $deep-orange-400, + 'brown': $brown-500, + 'grey': $grey-600, + 'blue-grey': $blue-grey-600 +) { + + /* + * Device specific background hacks related to rubberband + */ + .palette-primary-#{$name} { + + /* Hack [Chrome, Opera]: Set background color in Chrome and Opera */ + @supports (-webkit-appearance: none) { + background: $color; + } + + /* + * Application header and footer + */ + .header, .footer { + background: $color; + } + + /* + * Drawer container + */ + .drawer { + + /* + * Color links + */ + .toc a { + + /* + * Current active element + */ + &.current { + color: $color; + } + + /* + * Hovered link + */ + &:hover, &:focus { + color: $color; + } + } + + /* + * Color anchors menu + */ + .anchor a { + border-left: 2px solid $color; + } + } + + /* + * Project information + */ + .project { + + /* [tablet landscape-]: Set background color */ + @include break-to-device(tablet landscape) { + background: $color; + } + } + + /* + * Article + */ + .article { + + /* + * Differing top and bottom rubberband backgrounds in iOS web application + */ + .ios.standalone & { + background: linear-gradient( + to bottom, $white 50%, $color 50%); + } + + /* + * Headlines, chapters, links and inline code + */ + h1, h2, a, code { + color: $color; + } + + /* + * Light permalinks + */ + .headerlink { + color: $black-lighter; + } + + /* + * Data table headings + */ + table th { + background: mix($color, $white, 75%); + } + } + + /* + * Search meta data + */ + .results .meta { + background: $color; + } + } +} + +/* + * Build accent palette + */ +@each $name, $color in ( + 'red': $red-a400, + 'pink': $pink-a400, + 'purple': $purple-a200, + 'deep-purple': $deep-purple-a200, + 'indigo': $indigo-a200, + 'blue': $blue-a200, + 'light-blue': $light-blue-a700, + 'cyan': $cyan-a700, + 'teal': $teal-a700, + 'green': $green-a700, + 'light-green': $light-green-a700, + 'lime': $lime-a700, + 'yellow': $yellow-a700, + 'amber': $amber-a700, + 'orange': $orange-a400, + 'deep-orange': $deep-orange-a200 +) { + + /* + * Device specific background hacks related to rubberband + */ + .palette-accent-#{$name} { + + /* + * Article + */ + .article { + + /* + * Hovered and focused links + */ + a:hover, + a:focus { + color: $color; + } + } + + /* + * Repository buttons + */ + .repo a { + background: $color; + } + } +} \ No newline at end of file