diff --git a/.gitignore b/.gitignore index 512a2ea8..385bf43e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ resources/ # Jupyter .ipynb_checkpoints/ + +# Node +node_modules/ diff --git a/assets/js/academic.js b/assets/js/academic.js index 37c58df7..4a6c18bd 100644 --- a/assets/js/academic.js +++ b/assets/js/academic.js @@ -328,6 +328,22 @@ } } + /* --------------------------------------------------------------------------- + * Normalize Bootstrap Carousel Slide Heights. + * --------------------------------------------------------------------------- */ + + function normalizeCarouselSlideHeights() { + $('.carousel').each(function(){ + // Get carousel slides. + let items = $('.carousel-item', this); + // Reset all slide heights. + items.css('min-height', 0); + // Normalize all slide heights. + let maxHeight = Math.max.apply(null, items.map(function(){return $(this).outerHeight()}).get()); + items.css('min-height', maxHeight + 'px'); + }) + } + /* --------------------------------------------------------------------------- * On document ready. * --------------------------------------------------------------------------- */ @@ -509,4 +525,7 @@ }); + // Normalize Bootstrap carousel slide heights. + $(window).on('load resize orientationchange', normalizeCarouselSlideHeights); + })(jQuery); diff --git a/assets/js/vendor/bootstrap.min.js b/assets/js/vendor/bootstrap.min.js new file mode 100644 index 00000000..c4c0d1f9 --- /dev/null +++ b/assets/js/vendor/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.3.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)g(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ee},je="show",He="out",Re={HIDE:"hide"+De,HIDDEN:"hidden"+De,SHOW:"show"+De,SHOWN:"shown"+De,INSERTED:"inserted"+De,CLICK:"click"+De,FOCUSIN:"focusin"+De,FOCUSOUT:"focusout"+De,MOUSEENTER:"mouseenter"+De,MOUSELEAVE:"mouseleave"+De},xe="fade",Fe="show",Ue=".tooltip-inner",We=".arrow",qe="hover",Me="focus",Ke="click",Qe="manual",Be=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Fe))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(xe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:We},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),g(o).addClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===He&&e._leave(null,e)};if(g(this.tip).hasClass(xe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=g.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==je&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),g(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(g(this.element).trigger(i),!i.isDefaultPrevented()){if(g(n).removeClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ke]=!1,this._activeTrigger[Me]=!1,this._activeTrigger[qe]=!1,g(this.tip).hasClass(xe)){var r=_.getTransitionDurationFromElement(n);g(n).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Ae+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ue)),this.getTitle()),g(t).removeClass(xe+" "+Fe)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Se(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Pe[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Qe){var e=t===qe?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===qe?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),g(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Me:qe]=!0),g(e.getTipElement()).hasClass(Fe)||e._hoverState===je?e._hoverState=je:(clearTimeout(e._timeout),e._hoverState=je,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===je&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Me:qe]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=He,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===He&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==Oe.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(be,t,this.constructor.DefaultType),t.sanitize&&(t.template=Se(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ne);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(xe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ie),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ie,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Le}},{key:"NAME",get:function(){return be}},{key:"DATA_KEY",get:function(){return Ie}},{key:"Event",get:function(){return Re}},{key:"EVENT_KEY",get:function(){return De}},{key:"DefaultType",get:function(){return ke}}]),i}();g.fn[be]=Be._jQueryInterface,g.fn[be].Constructor=Be,g.fn[be].noConflict=function(){return g.fn[be]=we,Be._jQueryInterface};var Ve="popover",Ye="bs.popover",ze="."+Ye,Xe=g.fn[Ve],$e="bs-popover",Ge=new RegExp("(^|\\s)"+$e+"\\S+","g"),Je=l({},Be.Default,{placement:"right",trigger:"click",content:"",template:''}),Ze=l({},Be.DefaultType,{content:"(string|element|function)"}),tn="fade",en="show",nn=".popover-header",on=".popover-body",rn={HIDE:"hide"+ze,HIDDEN:"hidden"+ze,SHOW:"show"+ze,SHOWN:"shown"+ze,INSERTED:"inserted"+ze,CLICK:"click"+ze,FOCUSIN:"focusin"+ze,FOCUSOUT:"focusout"+ze,MOUSEENTER:"mouseenter"+ze,MOUSELEAVE:"mouseleave"+ze},sn=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){g(this.getTipElement()).addClass($e+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},o.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(nn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(on),e),t.removeClass(tn+" "+en)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ge);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t .dropdown-toggle.btn-primary { - background: {{ .Get "primary" }}; + background: $sta-primary; } .btn-outline-light:hover, @@ -1674,8 +1686,8 @@ a.badge:hover { .btn-outline-primary:not(:disabled):not(.disabled):active, .show > .btn-outline-primary.dropdown-toggle { color: #fff; - background-color: {{ .Get "primary" }}; - border-color: {{ .Get "primary" }}; + background-color: $sta-primary; + border-color: $sta-primary; } .dark .btn-outline-primary:not(:disabled):not(.disabled).active, @@ -1686,8 +1698,8 @@ a.badge:hover { .btn-outline-primary:hover { color: #fff; - background-color: {{ .Get "primary" }}; - border-color: {{ .Get "primary" }}; + background-color: $sta-primary; + border-color: $sta-primary; } .dark .btn-outline-primary:hover { @@ -1714,18 +1726,18 @@ a.badge:hover { .btn-toolbar .btn.btn-primary:hover, .btn-toolbar .btn.btn-primary:focus { - background-color: {{ .Get "primary_light" }} !important; + background-color: $sta-primary-light !important; } .btn-toolbar .btn.btn-primary:active, .btn-toolbar .btn.btn-primary.active { - background-color: {{ .Get "primary_dark" }} !important; + background-color: $sta-primary-dark !important; } .btn-primary:not(:disabled):not(.disabled).active:focus, .btn-primary:not(:disabled):not(.disabled):active:focus, .show > .btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 .2rem {{ .Get "primary_light" }}; + box-shadow: 0 0 0 .2rem $sta-primary-light; } /************************************************* @@ -1737,7 +1749,7 @@ a.badge:hover { } .navbar-light { - background: {{ .Get "menu_primary" }} !important; + background: $sta-menu-primary !important; box-shadow: 0 0.125rem 0.25rem 0 rgba(0,0,0,.11) } @@ -1746,7 +1758,7 @@ a.badge:hover { } .navbar-toggler { - color: {{ .Get "menu_text" }} !important; + color: $sta-menu-text !important; } .navbar-light .navbar-toggler:focus, @@ -1756,7 +1768,7 @@ a.badge:hover { .dropdown-menu, nav#navbar-main li.nav-item { - font-size: {{ .Get "font_size_small" }}px; + font-size: #{$sta-font-size-small}px; } .navbar-light .navbar-nav>.nav-item>.nav-link, @@ -1765,24 +1777,24 @@ nav#navbar-main li.nav-item { white-space: nowrap; -webkit-transition: 0.2s ease; transition: 0.2s ease; - color: {{ .Get "menu_text" }}; + color: $sta-menu-text; font-weight: 600; } .navbar-light .navbar-nav>.nav-item>.nav-link:focus { - color: {{ .Get "menu_text" }}; + color: $sta-menu-text; background-color: transparent; } .navbar-light .navbar-nav>.nav-item>.nav-link:hover { - color: {{ .Get "menu_text_active" }}; + color: $sta-menu-text-active; background-color: transparent; } .navbar-light .navbar-nav>li.nav-item>a.active, .navbar-light .navbar-nav>li.nav-item>a.active:focus, .navbar-light .navbar-nav>li.nav-item>a.active:hover { - color: {{ .Get "menu_text_active" }}; + color: $sta-menu-text-active; font-weight: 700; background-color: transparent !important; /* Override Bootstrap. */ } @@ -1800,11 +1812,11 @@ nav#navbar-main li.nav-item { } .navbar-light .navbar-toggler .icon-bar { - background-color: {{ .Get "menu_text" }} !important; + background-color: $sta-menu-text !important; } .dropdown-menu { - background-color: {{ .Get "menu_primary" }} !important; + background-color: $sta-menu-primary !important; } .dropdown-menu > li > a { @@ -1813,23 +1825,23 @@ nav#navbar-main li.nav-item { clear: both; font-weight: 400; line-height: 1.42857143; - color: {{ .Get "menu_text" }}; + color: $sta-menu-text; white-space: nowrap; } .dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover { - color: {{ .Get "menu_text_active" }}; + color: $sta-menu-text-active; text-decoration: none; - background-color: {{ .Get "menu_primary" }}; + background-color: $sta-menu-primary; } .dropdown-menu > .active, .dropdown-menu > .active:focus, .dropdown-menu > .active:hover { - color: {{ .Get "menu_primary" }}; + color: $sta-menu-primary; text-decoration: none; - background-color: {{ .Get "menu_text_active" }}; + background-color: $sta-menu-text-active; outline: 0; } @@ -1837,19 +1849,19 @@ nav#navbar-main li.nav-item { .navbar-light .navbar-nav>.open>a:focus, .navbar-light .navbar-nav>.open>a:hover, .navbar-light .navbar-nav>.open>a:visited { - color: {{ .Get "menu_text" }} !important; - background-color: {{ .Get "menu_primary" }} !important; + color: $sta-menu-text !important; + background-color: $sta-menu-primary !important; } .navbar-light .navbar-brand { font-weight: bold; font-size: 1.2em; - color: {{ .Get "menu_title" }}; + color: $sta-menu-title; } .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover { - color: {{ .Get "menu_title" }}; + color: $sta-menu-title; background-color: transparent; } @@ -1891,7 +1903,7 @@ nav#navbar-main li.nav-item { clear: both; font-weight: 400; line-height: 1.42857143; - color: {{ .Get "menu_text" }}; + color: $sta-menu-text; white-space: nowrap; } @@ -1907,7 +1919,7 @@ nav#navbar-main li.nav-item { .navbar-light .navbar-nav .open .dropdown-menu > li > a { padding: 5px 15px 5px 25px; line-height: 20px; - color: {{ .Get "menu_text" }}; + color: $sta-menu-text; } .navbar-light .navbar-nav .open .dropdown-menu > li > a:focus, @@ -1919,7 +1931,7 @@ nav#navbar-main li.nav-item { .navbar-light .navbar-nav .open .dropdown-menu >.nav-item> .active, .navbar-light .navbar-nav .open .dropdown-menu >.nav-item> .active:focus, .navbar-light .navbar-nav .open .dropdown-menu >.nav-item> .active:hover { - color: {{ .Get "menu_text_active" }}; + color: $sta-menu-text-active; background-color: transparent; } @@ -2091,8 +2103,8 @@ div.alert a { } .docs-search .form-control:focus { - border-color: {{ .Get "primary" }}; - box-shadow: 0 0 0 3px {{ .Get "primary_light" }}; + border-color: $sta-primary; + box-shadow: 0 0 0 3px $sta-primary-light; } /* Docs sidebar. */ @@ -2157,7 +2169,7 @@ div.alert a { .docs-sidebar .nav>.active:hover>a, .docs-sidebar .nav>.active>a { font-weight: bold; - color: {{ .Get "primary" }}; + color: $sta-primary; background-color: transparent; } @@ -2166,7 +2178,7 @@ div.alert a { .docs-toggle { line-height: 1; font-size: 1.2rem; - color: {{ .Get "primary" }}; + color: $sta-primary; background-color: transparent; } @@ -2283,7 +2295,7 @@ ul.toc-top { #TableOfContents li a:hover, .toc-top li a:hover { - color: {{ .Get "primary" }}; + color: $sta-primary; text-decoration: none; } @@ -2291,12 +2303,12 @@ ul.toc-top { .anchorjs-link { font-weight: 400; - color: {{ .Get "primary_dark" }}; + color: $sta-primary-dark; transition: color .16s linear; } .anchorjs-link:hover { - color: {{ .Get "primary" }}; + color: $sta-primary; text-decoration: none; } @@ -2312,7 +2324,7 @@ body.dark, .dark .form-control, .dark .form-control:focus { color: rgb(248, 248, 242); - background: {{ .Get "dark_background" }}; + background: $sta-dark-background; } .dark .form-control { @@ -2321,8 +2333,8 @@ body.dark, .dark .form-control:focus { background-color: rgb(68, 71, 90); - border-color: {{ .Get "primary" }}; - box-shadow: 0 0 0 .2rem {{ .Get "primary_dark" }}; + border-color: $sta-primary; + box-shadow: 0 0 0 .2rem $sta-primary-dark; } .dark h1, @@ -2354,7 +2366,7 @@ body.dark, } .dark ul.share li a { - background-color: {{ .Get "primary" }}; + background-color: $sta-primary; } .dark table table { @@ -2407,7 +2419,7 @@ body.dark, } .dark .card h4 a { - color: {{ .Get "primary" }}; + color: $sta-primary; border-bottom: solid 1px transparent; } diff --git a/assets/sass/bootstrap_variables.scss b/assets/sass/bootstrap_variables.scss new file mode 100644 index 00000000..8dbf7951 --- /dev/null +++ b/assets/sass/bootstrap_variables.scss @@ -0,0 +1,2 @@ +/* Set Bootstrap variables */ +$primary: $sta-primary; diff --git a/assets/sass/main.scss b/assets/sass/main.scss new file mode 100644 index 00000000..e615457c --- /dev/null +++ b/assets/sass/main.scss @@ -0,0 +1,36 @@ +{{- $scr := .Scratch -}} +{{- $site := $scr.Get "site" -}} +{{- partial "css/parse_theme.css" . -}} + +$sta-font-size: {{ $scr.Get "font_size" }}; +$sta-font-size-small: {{ $scr.Get "font_size_small" }}; + +$sta-font-body: {{ $scr.Get "body_font" }}; +$sta-font-heading: {{ $scr.Get "heading_font" }}; +$sta-font-nav: {{ $scr.Get "nav_font" }}; +$sta-font-mono: {{ $scr.Get "mono_font" }}; + +$sta-primary: {{ $scr.Get "primary" }}; +$sta-primary-light: {{ $scr.Get "primary_light" }}; +$sta-primary-dark: {{ $scr.Get "primary_dark" }}; + +$sta-link: {{ $scr.Get "link" }}; +$sta-link-hover: {{ $scr.Get "link_hover" }}; + +$sta-menu-primary: {{ $scr.Get "menu_primary" }}; +$sta-menu-text: {{ $scr.Get "menu_text" }}; +$sta-menu-text-active: {{ $scr.Get "menu_text_active" }}; +$sta-menu-title: {{ $scr.Get "menu_title" }}; + +$sta-background: {{ $scr.Get "background" }}; +$sta-dark-background: {{ $scr.Get "dark_background" }}; + +$sta-home-section-odd: {{ $scr.Get "home_section_odd" }}; +$sta-home-section-even: {{ $scr.Get "home_section_even" }}; + +$sta-dark-home-section-odd: {{ $scr.Get "dark_home_section_odd" }}; +$sta-dark-home-section-even: {{ $scr.Get "dark_home_section_even" }}; + +@import "bootstrap_variables"; +@import "vendor/bootstrap/bootstrap"; +@import "academic.scss"; diff --git a/assets/sass/vendor/bootstrap/_alert.scss b/assets/sass/vendor/bootstrap/_alert.scss new file mode 100644 index 00000000..da2a98af --- /dev/null +++ b/assets/sass/vendor/bootstrap/_alert.scss @@ -0,0 +1,51 @@ +// +// Base styles +// + +.alert { + position: relative; + padding: $alert-padding-y $alert-padding-x; + margin-bottom: $alert-margin-bottom; + border: $alert-border-width solid transparent; + @include border-radius($alert-border-radius); +} + +// Headings for larger alerts +.alert-heading { + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: $close-font-size + $alert-padding-x * 2; + + // Adjust close link position + .close { + position: absolute; + top: 0; + right: 0; + padding: $alert-padding-y $alert-padding-x; + color: inherit; + } +} + + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +@each $color, $value in $theme-colors { + .alert-#{$color} { + @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); + } +} diff --git a/assets/sass/vendor/bootstrap/_badge.scss b/assets/sass/vendor/bootstrap/_badge.scss new file mode 100644 index 00000000..2082f058 --- /dev/null +++ b/assets/sass/vendor/bootstrap/_badge.scss @@ -0,0 +1,54 @@ +// Base class +// +// Requires one of the contextual, color modifier classes for `color` and +// `background-color`. + +.badge { + display: inline-block; + padding: $badge-padding-y $badge-padding-x; + @include font-size($badge-font-size); + font-weight: $badge-font-weight; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + @include border-radius($badge-border-radius); + @include transition($badge-transition); + + @at-root a#{&} { + @include hover-focus { + text-decoration: none; + } + } + + // Empty badges collapse automatically + &:empty { + display: none; + } +} + +// Quick fix for badges in buttons +.btn .badge { + position: relative; + top: -1px; +} + +// Pill badges +// +// Make them extra rounded with a modifier to replace v3's badges. + +.badge-pill { + padding-right: $badge-pill-padding-x; + padding-left: $badge-pill-padding-x; + @include border-radius($badge-pill-border-radius); +} + +// Colors +// +// Contextual variations (linked badges get darker on :hover). + +@each $color, $value in $theme-colors { + .badge-#{$color} { + @include badge-variant($value); + } +} diff --git a/assets/sass/vendor/bootstrap/_breadcrumb.scss b/assets/sass/vendor/bootstrap/_breadcrumb.scss new file mode 100644 index 00000000..be309506 --- /dev/null +++ b/assets/sass/vendor/bootstrap/_breadcrumb.scss @@ -0,0 +1,41 @@ +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: $breadcrumb-padding-y $breadcrumb-padding-x; + margin-bottom: $breadcrumb-margin-bottom; + list-style: none; + background-color: $breadcrumb-bg; + @include border-radius($breadcrumb-border-radius); +} + +.breadcrumb-item { + // The separator between breadcrumbs (by default, a forward-slash: "/") + + .breadcrumb-item { + padding-left: $breadcrumb-item-padding; + + &::before { + display: inline-block; // Suppress underlining of the separator in modern browsers + padding-right: $breadcrumb-item-padding; + color: $breadcrumb-divider-color; + content: $breadcrumb-divider; + } + } + + // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built + // without `