diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..3a287c45 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..ebe01992 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +_assets/css/vendor/* linguist-vendored +_assets/js/plugins/* linguist-vendored +_assets/js/vendor/* linguist-vendored +assets/fonts/* linguist-vendored +assets/js/vendor/* linguist-vendored \ No newline at end of file diff --git a/.gitignore b/.gitignore index a93dd0cb..9f31bc8f 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ example/_site node_modules npm-debug.log* /vendor +torrents Gemfile.lock \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index e9b5ec46..536ab071 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,21 +1,21 @@ -The MIT License (MIT) - -Copyright (c) 2016 Michael Rose - -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 NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +The MIT License (MIT) + +Copyright (c) 2017 Michael Rose + +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 NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Rakefile b/Rakefile new file mode 100644 index 00000000..921330e6 --- /dev/null +++ b/Rakefile @@ -0,0 +1,76 @@ +require "bundler/gem_tasks" +require "jekyll" +require "listen" + +def listen_ignore_paths(base, options) + [ + /_config\.ya?ml/, + /_site/, + /\.jekyll-metadata/ + ] +end + +def listen_handler(base, options) + site = Jekyll::Site.new(options) + Jekyll::Command.process_site(site) + proc do |modified, added, removed| + t = Time.now + c = modified + added + removed + n = c.length + relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s } + print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ") + begin + Jekyll::Command.process_site(site) + puts "regenerated in #{Time.now - t} seconds." + rescue => e + puts "error:" + Jekyll.logger.warn "Error:", e.message + Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information." + end + end +end + +task :preview do + base = Pathname.new('.').expand_path + options = { + "source" => base.join('test').to_s, + "destination" => base.join('test/_site').to_s, + "force_polling" => false, + "serving" => true, + "theme" => "minimal-mistakes-jekyll" + } + + options = Jekyll.configuration(options) + + ENV["LISTEN_GEM_DEBUGGING"] = "1" + listener = Listen.to( + base.join("_data"), + base.join("_includes"), + base.join("_layouts"), + base.join("_sass"), + base.join("assets"), + options["source"], + :ignore => listen_ignore_paths(base, options), + :force_polling => options['force_polling'], + &(listen_handler(base, options)) + ) + + begin + listener.start + Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'" + + unless options['serving'] + trap("INT") do + listener.stop + puts " Halting auto-regeneration." + exit 0 + end + + loop { sleep 1000 } + end + rescue ThreadError + # You pressed Ctrl-C, oh my! + end + + Jekyll::Commands::Serve.process(options) +end diff --git a/_config.yml b/_config.yml index 4fa45cbb..9f225f98 100644 --- a/_config.yml +++ b/_config.yml @@ -5,6 +5,8 @@ # For technical reasons, this file is *NOT* reloaded automatically when you use # `jekyll serve`. If you change this file, please restart the server process. +minimal_mistakes_skin : "nord" + # Site Settings locale : "en-US" title : "Wii U Guide" @@ -206,7 +208,7 @@ sass: style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style # Plugins -gems: +plugins: - jekyll-paginate - jekyll-sitemap - jekyll-gist @@ -268,6 +270,7 @@ defaults: values: layout: single author_profile: false + sidebar: true - scope: path: "_pages/af_ZA" type: pages diff --git a/_data/navigation/en_US.yml b/_data/navigation/en_US.yml index 96cb1a8c..0edb6bc0 100644 --- a/_data/navigation/en_US.yml +++ b/_data/navigation/en_US.yml @@ -1,23 +1,32 @@ --- main: - - title: Guide + title: Wii U Guide + url: / - title: FAQ + url: faq - title: Donations + url: donations - title: Credits + url: credits - title: disc2app + url: disc2app - title: vWii Modding + url: vwii-modding - title: NAND Backup - - - title: Uninstall CFW + url: nand-backup - title: Site Navigation + url: site-navigation + - + title: Uninstall CFW + url: uninstall-cfw bottom: - title: For support in English, ask for help at Nintendo Homebrew on Discord. @@ -30,3 +39,34 @@ footer: title: Site Navigation - title: Why Ads? +sidebar_title: + - + title: Overall Progress +sidebar_pages: + - + title: Home + url: / + - + title: Get Started + url: get-started + - + title: Homebrew Launcher + url: homebrew-launcher + - + title: Multiple Options + url: multiple-options + - + title: Mocha CFW + url: mocha-cfw + - + title: Haxchi + url: haxchi + - + title: Coldboot Haxchi + url: coldboot-haxchi + - + title: Homebrew Launcher (Channel) + url: homebrew-launcher-(channel) + - + title: NAND Backup (Optional) + url: nand-backup \ No newline at end of file diff --git a/_includes/analytics-providers/google-universal.html b/_includes/analytics-providers/google-universal.html index 3ada6e36..10d65b2e 100644 --- a/_includes/analytics-providers/google-universal.html +++ b/_includes/analytics-providers/google-universal.html @@ -2,8 +2,8 @@ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', '{{ site.analytics.google.tracking_id }}', 'auto'); ga('send', 'pageview'); - \ No newline at end of file + diff --git a/_includes/author-profile-custom-links.html b/_includes/author-profile-custom-links.html new file mode 100644 index 00000000..3560e258 --- /dev/null +++ b/_includes/author-profile-custom-links.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/_includes/author-profile.html b/_includes/author-profile.html index f6637c8f..2d105431 100644 --- a/_includes/author-profile.html +++ b/_includes/author-profile.html @@ -30,16 +30,14 @@ diff --git a/_includes/breadcrumbs.html b/_includes/breadcrumbs.html index 11ec3564..6eec214b 100644 --- a/_includes/breadcrumbs.html +++ b/_includes/breadcrumbs.html @@ -1,4 +1,4 @@ -{% case site.categories.type %} +{% case site.category_archive.type %} {% when "liquid" %} {% assign path_type = "#" %} {% when "jekyll-archives" %} @@ -9,7 +9,7 @@ {% assign path_type = nil %} {% assign crumb_path = '/' %} {% else %} - {% assign crumb_path = site.categories.path %} + {% assign crumb_path = site.category_archive.path %} {% endif %} diff --git a/_includes/nav_list b/_includes/nav_list index 36cfa912..ba7dd597 100644 --- a/_includes/nav_list +++ b/_includes/nav_list @@ -1,47 +1,32 @@ -{% assign navigation = site.data.navigation[include.nav] %} +{% assign split_path = page.path | split: "/" %} +{% assign locale = split_path[1] %} +{% if locale == 'en_US' %} + {% assign locale_var = '/' %} +{% else %} + {% assign locale_var = locale | prepend:'/' | append:'/' %} +{% endif %} + +{% assign title = site.data.navigation[locale].sidebar_title %} +{% assign navigation = site.data.navigation[locale].sidebar_pages %} diff --git a/_includes/page__hero.html b/_includes/page__hero.html index 8936e3af..93e9155f 100644 --- a/_includes/page__hero.html +++ b/_includes/page__hero.html @@ -22,13 +22,21 @@ {% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %} {% endif %} +{% if page.header.image_description %} + {% assign image_description = page.header.image_description %} +{% else %} + {% assign image_description = page.title %} +{% endif %} + +{% assign image_description = image_description | markdownify | strip_html | strip_newlines | escape_once %} +
{% if page.header.overlay_color or page.header.overlay_image %}

- {% if paginator %} + {% if paginator and site.paginate_show_page_num %} {{ site.title }}{% unless paginator.page == 1 %} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %} {% else %} {{ page.title | default: site.title | markdownify | remove: "

" | remove: "

" }} @@ -45,7 +53,7 @@ {% endif %}

{% else %} - {{ page.title }} + {{ image_description }} {% endif %} {% if page.header.caption %} {{ page.header.caption | markdownify | remove: "

" | remove: "

" }}
diff --git a/_includes/page__hero_video.html b/_includes/page__hero_video.html new file mode 100644 index 00000000..8586a95a --- /dev/null +++ b/_includes/page__hero_video.html @@ -0,0 +1,4 @@ +{% capture video_id %}{{ page.header.video.id }}{% endcapture %} +{% capture video_provider %}{{ page.header.video.provider }}{% endcapture %} + +{% include video id=video_id provider=video_provider %} diff --git a/_includes/paginator.html b/_includes/paginator.html index efe3fe14..cf49ae8a 100644 --- a/_includes/paginator.html +++ b/_includes/paginator.html @@ -1,22 +1,23 @@ {% if paginator.total_pages > 1 %}
- \ No newline at end of file + diff --git a/_layouts/default.html b/_layouts/default.html index 420c59a6..739b9f05 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,9 +1,13 @@ --- --- -{% include base_path %} - + {% include head.html %} diff --git a/_layouts/single-no-ads.html b/_layouts/single-no-ads.html index 203fecd7..e7c775e7 100644 --- a/_layouts/single-no-ads.html +++ b/_layouts/single-no-ads.html @@ -2,10 +2,10 @@ layout: default --- -{% include base_path %} - {% if page.header.overlay_color or page.header.overlay_image or page.header.image %} {% include page__hero.html %} +{% elsif page.header.video.id and page.header.video.provider %} + {% include page__hero_video.html %} {% endif %} {% if page.url != "/" and site.breadcrumbs %} @@ -14,6 +14,14 @@ layout: default {% endunless %} {% endif %} + + +
{% include sidebar.html %} @@ -21,7 +29,7 @@ layout: default {% if page.title %}{% endif %} {% if page.excerpt %}{% endif %} {% if page.date %}{% endif %} - {% if page.modified %}{% endif %} + {% if page.last_modified_at %}{% endif %}
{% unless page.header.overlay_color or page.header.overlay_image %} @@ -35,7 +43,7 @@ layout: default
{{ content }} - {% if page.link %}
{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}
{% endif %} + {% if page.link %}
{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}
{% endif %}
@@ -44,8 +52,8 @@ layout: default

{{ site.data.ui-text[site.locale].meta_label }}

{% endif %} {% include page__taxonomy.html %} - {% if page.modified %} -

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

+ {% if page.last_modified_at %} +

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

{% elsif page.date %}

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

{% endif %} @@ -59,20 +67,27 @@ layout: default {% if site.comments.provider and page.comments %} {% include comments.html %} {% endif %} - - - {% comment %}{% endcomment %} + + {% comment %}{% endcomment %} {% if page.id and page.related and site.related_posts.size > 0 %} + {% comment %}{% endcomment %} + {% elsif page.id and page.related %} + {% endif %}
diff --git a/_layouts/single.html b/_layouts/single.html index 26513205..38a17773 100644 --- a/_layouts/single.html +++ b/_layouts/single.html @@ -1,150 +1,157 @@ ---- -layout: default ---- - -{% include base_path %} - -{% if page.header.overlay_color or page.header.overlay_image or page.header.image %} - {% include page__hero.html %} -{% endif %} - -{% if page.url != "/" and site.breadcrumbs %} - {% unless paginator %} - {% include breadcrumbs.html %} - {% endunless %} -{% endif %} - - - - -
- {% include sidebar.html %} - -
- {% if page.title %}{% endif %} - {% if page.excerpt %}{% endif %} - {% if page.date %}{% endif %} - {% if page.modified %}{% endif %} - -
- {% unless page.header.overlay_color or page.header.overlay_image %} -
- {% if page.title %}

{{ page.title | markdownify | remove: "

" | remove: "

" }}

{% endif %} - {% if page.read_time %} -

{% include read-time.html %}

- {% endif %} -
- {% endunless %} - -
- -
- - {% assign split_path = page.path | split: "/" %} - {% assign locale = split_path[1] %} - - {% for link in site.data.navigation[locale].bottom %} - {% if link.url contains 'http' %} - {% assign domain = '' %} - {% else %} - {% assign domain = site.url | append: site.baseurl %} - {% endif %} -
{{ link.title }}
- {% endfor %} - -
- -
- - - - - - - -
- -
- - {{ content }} - {% if page.link %}{% endif %} - -
- -
- - - - - - -
- -
- -
- {% if site.data.ui-text[site.locale].meta_label %} -

{{ site.data.ui-text[site.locale].meta_label }}

- {% endif %} - {% include page__taxonomy.html %} - {% if page.modified %} -

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

- {% elsif page.date %} -

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

- {% endif %} -
- - {% if page.share %}{% include social-share.html %}{% endif %} - - {% include post_pagination.html %} -
- - {% if site.comments.provider and page.comments %} - {% include comments.html %} - {% endif %} - -
- - {% comment %}{% endcomment %} - {% if page.id and page.related and site.related_posts.size > 0 %} - - {% endif %} -
+--- +layout: default +--- + +{% if page.header.overlay_color or page.header.overlay_image or page.header.image %} + {% include page__hero.html %} +{% elsif page.header.video.id and page.header.video.provider %} + {% include page__hero_video.html %} +{% endif %} + +{% if page.url != "/" and site.breadcrumbs %} + {% unless paginator %} + {% include breadcrumbs.html %} + {% endunless %} +{% endif %} + + + + +
+ {% include sidebar.html %} + +
+ {% if page.title %}{% endif %} + {% if page.excerpt %}{% endif %} + {% if page.date %}{% endif %} + {% if page.last_modified_at %}{% endif %} + +
+ {% unless page.header.overlay_color or page.header.overlay_image %} +
+ {% if page.title %}

{{ page.title | markdownify | remove: "

" | remove: "

" }}

{% endif %} + {% if page.read_time %} +

{% include read-time.html %}

+ {% endif %} +
+ {% endunless %} + +
+ +
+ + {% assign split_path = page.path | split: "/" %} + {% assign locale = split_path[1] %} + + {% for link in site.data.navigation[locale].bottom %} + {% if link.url contains 'http' %} + {% assign domain = '' %} + {% else %} + {% assign domain = site.url | append: site.baseurl %} + {% endif %} +
{{ link.title }}
+ {% endfor %} + +
+ +
+ + + + + + + +
+ +
+ + {{ content }} + {% if page.link %}{% endif %} + +
+ +
+ + + + + + +
+ +
+ +
+ {% if site.data.ui-text[site.locale].meta_label %} +

{{ site.data.ui-text[site.locale].meta_label }}

+ {% endif %} + {% include page__taxonomy.html %} + {% if page.last_modified_at %} +

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

+ {% elsif page.date %} +

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

+ {% endif %} +
+ + {% if page.share %}{% include social-share.html %}{% endif %} + + {% include post_pagination.html %} +
+ + {% if site.comments.provider and page.comments %} + {% include comments.html %} + {% endif %} +
+ + {% comment %}{% endcomment %} + {% if page.id and page.related and site.related_posts.size > 0 %} + + {% comment %}{% endcomment %} + {% elsif page.id and page.related %} + + {% endif %} +
diff --git a/_layouts/splash.html b/_layouts/splash.html index 3b5af143..ce61ae3c 100644 --- a/_layouts/splash.html +++ b/_layouts/splash.html @@ -2,10 +2,10 @@ layout: default --- -{% include base_path %} - {% if page.header.overlay_color or page.header.overlay_image or page.header.image %} {% include page__hero.html %} +{% elsif page.header.video.id and page.header.video.provider %} + {% include page__hero_video.html %} {% endif %} @@ -17,13 +17,11 @@ layout: default
-
- {% if page.title %}{% endif %} {% if page.excerpt %}{% endif %} {% if page.date %}{% endif %} - {% if page.modified %}{% endif %} + {% if page.last_modified_at %}{% endif %}

diff --git a/_pages/en_US/coldboot-haxchi.txt b/_pages/en_US/coldboot-haxchi.txt index 2b12d158..31bdfaee 100644 --- a/_pages/en_US/coldboot-haxchi.txt +++ b/_pages/en_US/coldboot-haxchi.txt @@ -2,23 +2,28 @@ title: "Coldboot Haxchi" --- +{% include toc title="Table of Contents" %} + +### Required Reading + CBHC (Coldboot Haxchi) changes your default system title to make your SysNAND launch the DS virtual console game by default instead of the system menu, which will then load patched SysNAND. -This page is optional. Regular Haxchi works just fine as is; this just offers extra convenience. If you would like to skip Haxchi, continue to [Homebrew Launcher (Channel)](homebrew-launcher-(channel)). +This page is optional. Regular Haxchi works just fine as is; this just offers extra convenience. If you would like to skip Coldboot Haxchi, continue to [Homebrew Launcher (Channel)](homebrew-launcher-(channel)). +{: .notice--primary} -**You MUST have a functional Haxchi setup for this to work. If you do not, you will BRICK!** -{: .notice--danger} +{% capture notice-1 %} +You MUST have a functional Haxchi setup for this to work. If you do not, you will BRICK! -**Your Haxchi DS virtual console game MUST be on the internal memory of your Wii U. If it is on a USB drive, you will BRICK!** -{: .notice--danger} +Your Haxchi DS virtual console game MUST be on the internal memory of your Wii U. If it is on a USB drive, you will BRICK! -**Your Haxchi DS virtual console game MUST be a LEGITIMATE copy or you will BRICK!** -{: .notice--danger} +Your Haxchi DS virtual console game MUST be a LEGITIMATE copy or you will BRICK! -**You must remove all USB devices before installing or you may BRICK!** -{: .notice--danger} +You must remove all USB devices before installing or you may BRICK! +{% endcapture %} -#### Instructions +
{{ notice-1 | markdownify }}
+ +### Instructions 1. Remove all USB devices from your Wii U 1. Enter the Homebrew Launcher by holding (A) while launching your Haxchi DS virtual console game diff --git a/_pages/en_US/disc2app.txt b/_pages/en_US/disc2app.txt index 05365a9f..f43347e5 100644 --- a/_pages/en_US/disc2app.txt +++ b/_pages/en_US/disc2app.txt @@ -2,6 +2,10 @@ title: "disc2app" --- +{% include toc title="Table of Contents" %} + +### Required Reading + This will allow you to dump your discs to a format you can install for the purpose of playing them without needing the disc. If you are planning to use an external hard drive to install your dumped discs on, note the following: @@ -11,14 +15,14 @@ If you are planning to use an external hard drive to install your dumped discs o + Formatting an external hard drive for use with a Wii U will erase its contents. + If you are using an external HDD that does not have its own power source, then you will need a [Y-cable](http://amzn.to/2mjQjin). -#### What you need +### What you need * A Wii U that can access patched SysNAND (Mocha CFW, Haxchi, CBHC, etc) * 25GB of free space on your SD card -#### Instructions +### Instructions -##### Section I - Formatting external drive +#### Section I - Formatting external drive If you are planning to use an external hard drive to install your dumped discs on, follow this section. If you are not planning to use an external hard drive or you already have a Wii U formatted external hard drive, skip this section. {: .notice--info} @@ -30,7 +34,7 @@ This will completely erase the contents of the external hard drive! 1. Power on your Wii U 1. Format the external hard drive when prompted -##### Section II - Using disc2app +#### Section II - Using disc2app 1. Launch the Homebrew Launcher Channel on patched SysNAND 1. Launch disc2app @@ -39,7 +43,7 @@ This will completely erase the contents of the external hard drive! 1. Allow the disc dump process to proceed automatically; this will take some time 1. When it is complete, you will be returned to the system menu -##### Section III - Installing dumped game +#### Section III - Installing dumped game 1. Launch the Homebrew Launcher Channel on patched SysNAND 1. Launch WUP Installer GX2 diff --git a/_pages/en_US/f3-(linux).txt b/_pages/en_US/f3-(linux).txt index 6cf849cb..2cb76647 100644 --- a/_pages/en_US/f3-(linux).txt +++ b/_pages/en_US/f3-(linux).txt @@ -2,17 +2,21 @@ title: "F3 (Linux)" --- +{% include toc title="Table of Contents" %} + +### Required Reading + This page will walk you through the process of checking your SD card for errors using F3. Depending on the size of your SD card and the speed of your computer, this process can take up to several hours! This page is for Linux users only. If you are not on Linux, check out the [H2testw (Windows)](h2testw-(windows)) or [F3X (Mac)](f3x-(mac)) pages. -#### What you need +### What you need * The latest version of [F3](https://github.com/AltraMayor/f3/archive/v6.0.zip) -#### Instructions +### Instructions 1. Unzip the F3 `.zip` file 1. `cd` into the F3 directory diff --git a/_pages/en_US/f3x-(mac).txt b/_pages/en_US/f3x-(mac).txt index c188f354..c61e4e67 100644 --- a/_pages/en_US/f3x-(mac).txt +++ b/_pages/en_US/f3x-(mac).txt @@ -2,17 +2,21 @@ title: "F3X (Mac)" --- +{% include toc title="Table of Contents" %} + +### Required Reading + This page will walk you through the process of checking your SD card for errors using F3X. Depending on the size of your SD card and the speed of your computer, this process can take up to several hours! This page is for Mac users only. If you are not on Mac, check out the [H2testw (Windows)](h2testw-(windows)) or [F3 (Linux)](f3-(linux)) pages. -#### What you need +### What you need * The latest release of [F3X](https://github.com/insidegui/F3X/releases/latest) -#### Instructions +### Instructions 1. Unzip the F3X `.zip` file 1. Insert your SD card into your computer diff --git a/_pages/en_US/faq.txt b/_pages/en_US/faq.txt index 97c51201..fa4b1958 100644 --- a/_pages/en_US/faq.txt +++ b/_pages/en_US/faq.txt @@ -2,8 +2,6 @@ title: "FAQ" --- -{% capture notice-1 %} - **Q:** *I am on the latest system version, is my device hackable?* **A:** Yes @@ -42,7 +40,3 @@ title: "FAQ" **Q:** *Can I do this without a computer (e.g. an Android phone)?* **A:** All you need is the ability to put files on an SD card! - -{% endcapture %} - -
{{ notice-1 | markdownify }}
diff --git a/_pages/en_US/get-started.txt b/_pages/en_US/get-started.txt index 6e749a9f..a356f0a3 100644 --- a/_pages/en_US/get-started.txt +++ b/_pages/en_US/get-started.txt @@ -2,6 +2,10 @@ title: "Get Started" --- +{% include toc title="Table of Contents" %} + +### Required Reading + These steps will prepare your SD card for installing Coldboot Haxchi custom firmware. Before beginning, you should make sure your Wii U is currently on firmware 5.5.0, 5.5.1 or 5.5.2. Older versions aren't currently supported. @@ -17,7 +21,7 @@ Your SD card *cannot* be named `wiiu`, or it will cause problems. Before starting, you may want to check your SD card for errors using [H2testw (Windows)](h2testw-(windows)), [F3 (Linux)](f3-(linux)), or [F3X (Mac)](f3x-(mac))! {: .notice--warning} -#### What you need +### What you need * [`config.txt`]({{ base_path }}/images/config.txt) * The latest release of [Homebrew App Store](https://github.com/vgmoose/hbas/releases/latest) @@ -32,9 +36,9 @@ Before starting, you may want to check your SD card for errors using [H2testw (W * The latest releases of [Haxchi and CBHC](https://github.com/FIX94/haxchi/releases/latest) *(both `.zip` files)* * The latest release of [NNU-Patcher](https://wiiubru.com/appstore/zips/nnupatcher.zip) -#### Instructions +### Instructions -##### Section I - Prep Work +#### Section I - Prep Work 1. Power off your device 1. Insert your SD card into your computer @@ -58,7 +62,7 @@ Before starting, you may want to check your SD card for errors using [H2testw (W 1. Reinsert your SD card into your device 1. Power on your device -##### Section II - DS Virtual Console Game +#### Section II - DS Virtual Console Game There are two methods for using Wii U custom firmware. @@ -103,7 +107,7 @@ Currently, Brain Age is the cheapest of these titles on the eShop ($6.99 USD). If already own Brain Age or Brain Training and have had it installed on your Wii U for a while, try deleting it and redownloading the game from the eShop. Older versions of the game are not compatible with the exploit. -##### Section III - Block System Updates +#### Section III - Block System Updates Note that, to access the eShop with these DNS addresses set, you must first run NNU-Patcher through the Homebrew Launcher. Additionally note that NNU-Patcher is a temporary patch and will need to be ran again if you need to access the eShop after a reboot. diff --git a/_pages/en_US/h2testw-(windows).txt b/_pages/en_US/h2testw-(windows).txt index 8defdb7a..0845abb7 100644 --- a/_pages/en_US/h2testw-(windows).txt +++ b/_pages/en_US/h2testw-(windows).txt @@ -2,17 +2,21 @@ title: "H2testw (Windows)" --- +{% include toc title="Table of Contents" %} + +### Required Reading + This page will walk you through the process of checking your SD card for errors using h2testw. Depending on the size of your SD card and the speed of your computer, this process can take up to several hours! This page is for Windows users only. If you are not on Windows, check out the [F3 (Linux)](f3-(linux)) or [F3X (Mac)](f3x-(mac)) pages. -#### What you need +### What you need * The latest version of [h2testw](http://www.heise.de/ct/Redaktion/bo/downloads/h2testw_1.4.zip) -#### Instructions +### Instructions 1. Copy `h2testw.exe` from the h2testw `.zip` to your desktop 1. Insert your SD card into your computer diff --git a/_pages/en_US/haxchi.txt b/_pages/en_US/haxchi.txt index 7c04920a..821cfe60 100644 --- a/_pages/en_US/haxchi.txt +++ b/_pages/en_US/haxchi.txt @@ -2,17 +2,20 @@ title: "Haxchi" --- +{% include toc title="Table of Contents" %} + +### Required Reading + Haxchi is a custom firmware that patches signature checks, region checks, and runs other custom code in the background. Haxchi is an exploit that allows us to launch CFW directly from the system menu without using the Homebrew Launcher. - -#### What you need +### What you need + A legitimate copy of one of the exploitable DS virtual console games installed to your Wii U's internal memory + If you do not already have one of the exploitable games installed, see [Get Started](get-started) -#### Instructions +### Instructions 1. Launch the Haxchi Installer 1. Select the DS virtual console game you are installing Haxchi onto, then press (A) to select it diff --git a/_pages/en_US/homebrew-launcher-(channel).txt b/_pages/en_US/homebrew-launcher-(channel).txt index 61eb0cc8..a2f431c7 100644 --- a/_pages/en_US/homebrew-launcher-(channel).txt +++ b/_pages/en_US/homebrew-launcher-(channel).txt @@ -2,9 +2,13 @@ title: "Homebrew Launcher (Channel)" --- +{% include toc title="Table of Contents" %} + +### Required Reading + This will install the Homebrew Channel so that, once you have a patched SysNAND running, the Homebrew Launcher will appear as an icon on the system menu. -#### Instructions +### Instructions 1. Enter the Homebrew Launcher + CBHC users must press (Home) while CBHC is booting to access the CBHC boot options menu, then select the Homebrew Launcher diff --git a/_pages/en_US/homebrew-launcher.txt b/_pages/en_US/homebrew-launcher.txt index 73c771ce..6d098369 100644 --- a/_pages/en_US/homebrew-launcher.txt +++ b/_pages/en_US/homebrew-launcher.txt @@ -2,13 +2,17 @@ title: "Homebrew Launcher" --- +{% include toc title="Table of Contents" %} + +### Required Reading + The Homebrew Launcher is a homebrew application that lists and allows the launching of other homebrew applications from the SD card. We launch this using the Wii U's built in browser, so your Wii U will need to be able to access the internet. -#### Instructions +### Instructions -##### Section I - Preparing Browser +#### Section I - Preparing Browser 1. Launch the browser on your device 1. Go to the browser settings and select "Reset Save Data" @@ -16,7 +20,7 @@ We launch this using the Wii U's built in browser, so your Wii U will need to be + This will also delete all save data including settings, history, and bookmarks 1. Return to the browser -##### Section II (i) - Versions 5.5.0 & 5.5.1 +#### Section II (i) - Versions 5.5.0 & 5.5.1 1. Go to `http://loadiine.ovh` + You may want to bookmark this address to save time on typing in the future @@ -26,7 +30,7 @@ We launch this using the Wii U's built in browser, so your Wii U will need to be + If it freezes, just force the console to power off by holding the power button, then try again 1. Your console should load the Homebrew Launcher -##### Section II (ii) - Versions 5.5.2 +#### Section II (ii) - Version 5.5.2 1. Open the browser curtains + This improves the success rate of the 5.5.2 browser exploit @@ -39,23 +43,24 @@ We launch this using the Wii U's built in browser, so your Wii U will need to be 1. Your console should load the Homebrew Launcher ___ +### Methods -{% capture notice-1 %} +___ -[Mocha CFW](mocha-cfw) +#### Mocha CFW This method requires that you rerun the web exploit used above *after every reboot*. It is not recommended that you use this on 5.5.2 as that version's web exploit is extremely unreliable. -{% endcapture %} +Continue to [Mocha CFW](mocha-cfw) +{: .notice--primary} -
{{ notice-1 | markdownify }}
+___ -{% capture notice-1 %} - -[Haxchi](haxchi) +#### Haxchi This method uses a cheap exploitable DS Virtual Console game to launch your Custom Firmware automatically at boot. This is *essentially required* for users on 5.5.2 as the web exploit for that version is extremely unreliable. -{% endcapture %} +Continue to [Haxchi](haxchi) +{: .notice--primary} -
{{ notice-1 | markdownify }}
\ No newline at end of file +___ \ No newline at end of file diff --git a/_pages/en_US/mocha-cfw.txt b/_pages/en_US/mocha-cfw.txt index 29d766c5..0a3caa5a 100644 --- a/_pages/en_US/mocha-cfw.txt +++ b/_pages/en_US/mocha-cfw.txt @@ -2,11 +2,15 @@ title: "Mocha CFW" --- +{% include toc title="Table of Contents" %} + +### Required Reading + Mocha CFW is a custom firmware that patches signature checks, region checks, and runs other custom code in the background. In order to boot the patched signature checks and boot patched SysNAND, you will need to enter the Homebrew Launcher and run Mocha CFW every time your device reboots. -#### Instructions +### Instructions 1. Launch Mocha CFW 1. The Mocha CFW configuration menu should load diff --git a/_pages/en_US/nand-backup.txt b/_pages/en_US/nand-backup.txt index 202c0a33..131f7fde 100644 --- a/_pages/en_US/nand-backup.txt +++ b/_pages/en_US/nand-backup.txt @@ -2,7 +2,11 @@ title: "NAND Backup" --- -These steps will create a backup of your NAND on your SD card, which will allow you to restore your device using a hardmod in the case of a brick. +{% include toc title="Table of Contents" %} + +### Required Reading + +This is an optional page which will create a backup of your NAND on your SD card, which will allow you to restore your device using a hardmod in the case of a brick. If you have a black Wii U (32GB) model, your SD card must be at least 64GB in size. If you have a white (8GB) Wii U model, your SD card must be at least 16GB in size. @@ -11,11 +15,11 @@ Note that Mocha CFW users should follow these instructions after a reboot *witho Before starting, you may want to check your SD card for errors using [H2testw (Windows)](h2testw-(windows)), [F3 (Linux)](f3-(linux)), or [F3X (Mac)](f3x-(mac))! {: .notice--warning} -#### What you need +### What you need * The latest release of [Wii U NAND Dumper](https://github.com/koolkdev/wiiu-nanddumper/releases/latest) -#### Instructions +### Instructions 1. Power off your device 1. Insert your SD card into your computer diff --git a/_pages/en_US/uninstall-cfw.txt b/_pages/en_US/uninstall-cfw.txt index 79895f43..c043efbf 100644 --- a/_pages/en_US/uninstall-cfw.txt +++ b/_pages/en_US/uninstall-cfw.txt @@ -2,17 +2,21 @@ title: "Uninstall CFW" --- +{% include toc title="Table of Contents" %} + +### Required Reading + This will remove CFW from your Wii U, regardless of install method, for the purpose of restoring the device to stock. {: .notice--danger} If you followed this guide back when it used RedNAND, note that games and saves are saved to the internal memory not the SD card. This means all games and saves installed after installing RedNAND would be removed if you uninstall as your system would only have the SysNAND you started with! {: .notice--danger} -#### Instructions +### Instructions -##### Section I - Removal from Wii U +#### Section I - Removal from Wii U -###### CBHC +##### CBHC 1. Launch the Homebrew Launcher Channel 1. Launch the CBHC installer @@ -23,16 +27,16 @@ If you followed this guide back when it used RedNAND, note that games and saves 1. Go to the System Settings under "Data Management" and delete your DS virtual console game 1. Reinstall your DS virtual console game from the eShop -###### Haxchi +##### Haxchi 1. Go to the System Settings under "Data Management" and delete your DS virtual console game 1. Reinstall your DS virtual console game from the eShop -###### Homebrew Launcher +##### Homebrew Launcher 1. Remove the bookmark from the Wii U's internet browser if you made one -##### Section II - Removal from SD Card +#### Section II - Removal from SD Card {% capture notice-3 %} **Remove any extra files and folders from the root of the SD card that are *not* in the following list (you may not have all or even any of these):** diff --git a/_pages/en_US/vwii-modding.txt b/_pages/en_US/vwii-modding.txt index 4b5dc146..4a795aad 100644 --- a/_pages/en_US/vwii-modding.txt +++ b/_pages/en_US/vwii-modding.txt @@ -2,9 +2,13 @@ title: "vWii Modding" --- +{% include toc title="Table of Contents" %} + +### Required Reading + This will allow you to install the Homebrew Channel and other modifications to the Wii U's vWii (virtual Wii). -#### What you need +### What you need * [`vWii_cIOS_apps_20131218.zip`]({{ base_path }}/images/vWii_cIOS_apps_20131218.zip) * [`Patched_IOS80_Installer_for_vWii.zip`]({{ base_path }}/images/Patched_IOS80_Installer_for_vWii.zip) @@ -12,9 +16,9 @@ This will allow you to install the Homebrew Channel and other modifications to t * The latest release of [Hackmii Installer](https://bootmii.org/download/) * A previous release of [the Homebrew Launcher](https://github.com/dimok789/homebrew_launcher/releases/tag/1.4) *(the launcher `.zip` file)* -#### Instructions +### Instructions -##### Section I - Prep Work +#### Section I - Prep Work 1. Power off your device 1. Insert your SD card into your computer @@ -26,7 +30,7 @@ This will allow you to install the Homebrew Channel and other modifications to t 1. Reinsert your SD card into your device 1. Power on your device -##### Section II - wuphax +#### Section II - wuphax 1. Launch the Homebrew Launcher + If you have not already done the main Wii U guide and do not know how to do this, please follow [Homebrew Launcher](homebrew-launcher), then return to this page. @@ -47,7 +51,7 @@ This will allow you to install the Homebrew Channel and other modifications to t 1. Press (B) when prompted to restore the Mii Channel 1. Go through the prompts to get back to vWii -##### Section III - Dumping vWii NAND +#### Section III - Dumping vWii NAND This NAND backup will allow you to restore your vWii to a working state if anything goes wrong. {: .notice--info} @@ -61,7 +65,7 @@ This NAND backup will allow you to restore your vWii to a working state if anyth 1. **Copy the `nand.bin` and `keys.bin` from the root of your SD card to a safe location on your computer and back both up to multiple locations (such as online file storage); this backup will save your vWii from a brick if anything goes wrong** 1. Delete `nand.bin` and `keys.bin` from the root of your SD card -##### Section IV - cIOS Installation +#### Section IV - cIOS Installation Ensure that there are no folders named `wad` or `wads` on the root of your SD card and that there are no other `.wad` files anywhere except `/apps/` on the SD card. {: .notice--warning} @@ -89,7 +93,7 @@ Ensure that there are no folders named `wad` or `wads` on the root of your SD ca 1. Press (A) to install 1. Wait for the install to complete, then press (B) to exit -##### Section V - Patching IOS80 +#### Section V - Patching IOS80 This step will brick your vWii installation if it fails for any reason (power outage, etc) which will require a vWii NAND backup to restore. Ensure you have yours before proceeding with this section. {: .notice--danger} diff --git a/_sass/_buttons.scss b/_sass/_buttons.scss deleted file mode 100644 index d6cf90ea..00000000 --- a/_sass/_buttons.scss +++ /dev/null @@ -1,153 +0,0 @@ -/* ========================================================================== - BUTTONS - ========================================================================== */ - -/* - Default button - ========================================================================== */ - -.btn { - /* default button */ - display: inline-block; - margin-bottom: 0.25em; - padding: 0.5em 1em; - color: #fff !important; - font-family: $sans-serif; - font-size: $type-size-6; - font-weight: bold; - text-align: center; - text-decoration: none; - background-color: $primary-color; - border: 0 !important; - border-radius: $border-radius; - cursor: pointer; - - &:hover { - background-color: mix(white, #000, 20%); - } - - .icon { - margin-right: 0.5em; - } - - .icon + .hidden { - margin-left: -0.5em; /* override for hidden text*/ - } - - /* fills width of parent container */ - - &--block { - display: block; - width: 100%; - - + .btn--block { - margin-top: 0.25em; - } - } - - /* for dark backgrounds */ - - &--inverse { - color: $gray !important; - border: 1px solid $light-gray !important; /* override*/ - background-color: #fff; - - &:hover { - color: #fff !important; - border-color: $gray; - } - } - - /* light outline */ - - &--light-outline { - border: 1px solid #fff !important; /* override*/ - background-color: transparent; - } - - /* information */ - - &--info { - background-color: $info-color; - - &:hover { - background-color: mix(#000, $info-color, 20%); - } - } - - /* warning */ - - &--warning { - background-color: $warning-color; - - &:hover { - background-color: mix(#000, $warning-color, 20%); - } - } - - /* success */ - - &--success { - background-color: $success-color; - - &:hover { - background-color: mix(#000, $success-color, 20%); - } - } - - /* danger */ - - &--danger { - background-color: $danger-color; - - &:hover { - background-color: mix(#000, $danger-color, 20%); - } - } - - /* disabled */ - - &--disabled { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - box-shadow: none; - opacity: 0.65; - } - - /* social buttons */ - - $social: - (facebook, $facebook-color), - (twitter, $twitter-color), - (google-plus, $google-plus-color), - (linkedin, $linkedin-color); - - @each $socialnetwork, $color in $social { - &--#{$socialnetwork} { - background-color: $color; - - &:hover { - background-color: mix(#000, $color, 20%); - } - } - } - - /* extra large button */ - - &--x-large { - font-size: $type-size-4; - } - - /* large button */ - - &--large { - font-size: $type-size-5; - } - - /* small button */ - - &--small { - font-size: $type-size-7; - } -} \ No newline at end of file diff --git a/_sass/_navigation.scss b/_sass/_navigation.scss deleted file mode 100644 index 30bb48ae..00000000 --- a/_sass/_navigation.scss +++ /dev/null @@ -1,552 +0,0 @@ -/* ========================================================================== - NAVIGATION - ========================================================================== */ - -/* - Breadcrumb navigation links - ========================================================================== */ - -.breadcrumbs { - @include container; - @include clearfix; - margin-top: 0; - margin-bottom: 0; - padding-left: 2em; - padding-right: 2em; - font-family: $sans-serif; - -webkit-animation: intro 0.3s both; - animation: intro 0.3s both; - -webkit-animation-delay: 0.30s; - animation-delay: 0.30s; - - @include breakpoint($large) { - padding-left: 1em; - padding-right: 1em; - } - - @include breakpoint($x-large) { - max-width: $x-large; - } - - ol { - padding: 0; - list-style: none; - font-size: $type-size-6; - - @include breakpoint($large) { - @include span(10 of 12 last); - } - - @include breakpoint($x-large) { - @include prefix(0.5 of 12); - } - } - - li { - display: inline; - } - - .current { - font-weight: bold; - } -} - - -/* - Post pagination navigation links - ========================================================================== */ - -.pagination { - @include full(); - @include clearfix(); - margin-top: 1em; - padding-top: 1em; - - ul { - margin: 0; - padding: 0; - list-style-type: none; - font-family: $sans-serif; - } - - li { - display: block; - float: left; - margin-left: -1px; - - a { - margin-bottom: 0.25em; - padding: 0.5em 1em; - font-family: $sans-serif; - font-size: 14px; - font-weight: bold; - line-height: 1.5; - text-align: center; - text-decoration: none; - color: mix(#fff, $gray, 25%); - border: 1px solid $light-gray; - border-radius: 0; - - &:hover { - color: $link-color-hover; - } - - &.current { - color: #fff; - background: $nord1; - } - - &.disabled { - color: mix(#fff, $gray, 75%); - pointer-events: none; - cursor: not-allowed; - } - } - - &:first-child { - margin-left: 0; - - a { - border-top-left-radius: $border-radius; - border-bottom-left-radius: $border-radius; - } - } - - &:last-child { - a { - border-top-right-radius: $border-radius; - border-bottom-right-radius: $border-radius; - } - } - } - - /* next/previous buttons */ - &--pager { - display: block; - padding: 1em 2em; - float: left; - width: 50%; - font-family: $sans-serif; - font-size: $type-size-5; - font-weight: bold; - text-align: center; - text-decoration: none; - color: $link-color; - border: 1px solid $light-gray; - border-radius: $border-radius; - - &:hover { - color: $link-color-hover; - } - - &:first-child { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - - &:last-child { - margin-left: -1px; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - &.disabled { - color: mix(#fff, $gray, 75%); - pointer-events: none; - cursor: not-allowed; - } - } -} - -.page__content + .pagination, -.page__meta + .pagination, -.page__share + .pagination, -.page__comments + .pagination { - margin-top: 2em; - padding-top: 2em; - border-top: 1px solid $border-color; -} - - -/* - Priority plus navigation - ========================================================================== */ - -.greedy-nav { - position: relative; - min-width: 250px; - background: $nord1; - - a { - display: block; - margin: 0 1rem; - padding: 0.5rem 0; - color: $masthead-link-color; - text-decoration: none; - - &:hover { - color: $masthead-link-color-hover; - } - } - - button { - position: absolute; - height: 100%; - right: 0; - top: 0; - padding: 0 0.5rem; - border: 0; - outline: none; - background: transparent; - color: $nord0; - cursor: pointer; - } - - .nav-selector { - right: 3rem; - } - - .visible-links { - display: table; - - li { - display: table-cell; - vertical-align: middle; - - &:first-child { - font-weight: bold; - - a { - margin-left: 0; - } - } - - &:last-child { - a { - margin-right: 0; - } - } - } - - a { - position: relative; - - &:before { - content: ""; - position: absolute; - left: 0; - bottom: 0; - height: 4px; - background: mix(#fff, $primary-color, 50%); - width: 100%; - -webkit-transition: $global-transition; - transition: $global-transition; - -webkit-transform: scaleX(0) translate3d(0, 0 , 0); - -ms-transform: scaleX(0) translate3d(0, 0 , 0); - transform: scaleX(0) translate3d(0, 0 , 0); /* hide*/ - } - - &:hover:before { - -webkit-transform: scaleX(1); - -ms-transform: scaleX(1); - transform: scaleX(1); /* reveal*/ - } - } - } - - .hidden-links { - position: absolute; - top: 100%; - right: 0; - margin-top: 15px; - padding: 5px; - border: 1px solid $border-color; - border-radius: $border-radius; - background: $nord1; - box-shadow: 0 0 10px rgba(#000, 0.25); - - a { - margin: 0; - padding: 10px 20px; - font-size: $type-size-5; - - &:hover { - color: $masthead-link-color-hover; - background: mix(#000, $primary-color, 75%); - } - } - - &:before { - content: ""; - position: absolute; - top: -11px; - right: 14px; - width: 0; - border-style: solid; - border-width: 0 10px 10px; - border-color: mix(#000, $border-color, 55%) transparent; - display: block; - z-index: 0; - } - - &:after { - content: ""; - position: absolute; - top: -10px; - right: 14px; - width: 0; - border-style: solid; - border-width: 0 10px 10px; - border-color: #fff transparent; - display: block; - z-index: 1; - } - - li { - display: block; - border-bottom: 1px solid $nord3; - - &:last-child { - border-bottom: none; - } - } - } - - .links-menu { - right: 3rem; - } -} - - -/* - Navigation list - ========================================================================== */ - -.nav__list { - margin-bottom: 1.5em; - - input[type="checkbox"], - label { - display: none; - } - - @include breakpoint(max-width ($large - 1px)) { - - label { - position: relative; - display: inline-block; - padding: 0.5em 2.5em 0.5em 1em; - color: $gray; - font-size: $type-size-6; - font-weight: bold; - border: 1px solid $light-gray; - border-radius: $border-radius; - z-index: 20; - -webkit-transition: 0.2s ease-out; - transition: 0.2s ease-out; - cursor: pointer; - - &:before, - &:after { - content: ''; - position: absolute; - right: 1em; - top: 1.25em; - width: 0.75em; - height: 0.125em; - line-height: 1; - background-color: $gray; - transition: 0.2s ease-out; - } - - &:after { - transform: rotate(90deg); - } - - &:hover { - color: #fff; - border-color: $gray; - background-color: mix(white, #000, 20%); - - &:before, - &:after { - background-color: #fff; - } - } - } - - /* selected*/ - input:checked + label { - color: white; - background-color: mix(white, #000, 20%); - - &:before, - &:after { - background-color: #fff; - } - } - - // on hover show expand - label:hover:after { - transform: rotate(90deg); - } - - input:checked + label:hover:after { - transform: rotate(0); - } - - ul { - margin-bottom: 1em; - } - - a { - display: block; - padding: 0.25em 0; - - @include breakpoint($large) { - padding-top: 0.125em; - padding-bottom: 0.125em; - } - - &:hover { - text-decoration: underline; - } - } - } -} - -.nav__list .nav__items { - margin: 0; - font-size: 1.25rem; - - a { - color: inherit; - } - - .active { - margin-left: -0.5em; - padding-left: 0.5em; - padding-right: 0.5em; - color: #fff; - font-weight: bold; - background: $primary-color; - border-radius: $border-radius; - - &:hover { - color: #fff; - } - } - - @include breakpoint(max-width ($large - 1px)) { - position: relative; - max-height: 0; - opacity: 0%; - overflow: hidden; - z-index: 10; - -webkit-transition: 0.3s ease-in-out; - transition: 0.3s ease-in-out; - -webkit-transform: translate(0, 10%); - -ms-transform: translate(0, 10%); - transform: translate(0, 10%); - } -} - -@include breakpoint(max-width ($large - 1px)) { - .nav__list input:checked ~ .nav__items { - -webkit-transition: 0.5s ease-in-out; - transition: 0.5s ease-in-out; - max-height: 9999px; // exaggerate max-height to accommodate tall lists - overflow: visible; - opacity: 1; - margin-top: 1em; - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); - } -} - -.nav__title { - margin: 0; - padding: 0.5rem 1rem; - font-family: $sans-serif-narrow; - font-size: $type-size-5; - font-weight: bold; -} - -.nav__sub-title { - display: block; - margin: 0.5rem 0; - padding: 0.5rem 0; - font-family: $sans-serif-narrow; - font-size: $type-size-6; - font-weight: bold; - text-transform: uppercase; - border-bottom: 1px solid $border-color; -} - - -/* - Table of contents navigation - ========================================================================== */ - -.toc { - font-family: $sans-serif-narrow; - color: $gray; - text-transform: uppercase; - letter-spacing: 1px; - background-color: #fff; - border: 1px solid $border-color; - border-radius: $border-radius; - box-shadow: $box-shadow; - - .nav__title { - color: #fff; - font-size: $type-size-6; - background: $primary-color; - border-top-left-radius: $border-radius; - border-top-right-radius: $border-radius; - } -} - -.toc__menu { - margin: 0; - padding: 0; - width: 100%; - list-style: none; - font-size: 0.8rem; - - a { - display: block; - padding: 0.5rem 1rem; - color: $gray; - font-size: $type-size-7; - font-weight: bold; - line-height: 1.5; - border-bottom: 1px solid $border-color; - - &:hover { - color: #000; - background: $lighter-gray; - } - } - - > li:last-child { - a { - border-bottom: none; - } - } - - li ul > li a { - padding-left: 2rem; - font-weight: normal; - } - - /* hide sub sub links on small screens*/ - li > ul li { - display: none; - - @include breakpoint($medium) { - display: block; - } - } -} diff --git a/_sass/_nord.scss b/_sass/_nord.scss deleted file mode 100644 index 7a8aad88..00000000 --- a/_sass/_nord.scss +++ /dev/null @@ -1,241 +0,0 @@ -// -// ++++++++++++++++++++++++++++++++++++++++++++++++++++ -// title Nord + -// project nord + -// version 0.2.0 + -// repository https://github.com/arcticicestudio/nord + -// author Arctic Ice Studio + -// email development@arcticicestudio.com + -// copyright Copyright (C) 2017 + -// ++++++++++++++++++++++++++++++++++++++++++++++++++++ -// -// [References] -// Sass -// (http://sass-lang.com) -// SassDoc -// (http://sassdoc.com) - -//// -/// An arctic, north-bluish color palette. -/// Created for the clean- and minimal flat design pattern to achieve a optimal focus and readability for code syntax -/// highlighting and UI. -/// It consists of a total of sixteen, carefully selected, dimmed pastel colors for a eye-comfortable, but yet colorful -/// ambiance. -/// -/// @author Arctic Ice Studio -//// - -/// Base component color of "Polar Night". -/// -/// Used for texts, backgrounds, carets and structuring characters like curly- and square brackets. -/// -/// @access public -/// @example scss - SCSS -/// /* For dark ambiance themes */ -/// .background { -/// background-color: $nord0; -/// } -/// /* For light ambiance themes */ -/// .text { -/// color: $nord0; -/// } -/// @group polarnight -/// @since 0.1.0 -$nord0: #2E3440; - -/// Lighter shade color of the base component color. -/// -/// Used as a lighter background color for UI elements like status bars. -/// -/// @access public -/// @group polarnight -/// @see $nord0 -/// @since 0.1.0 -$nord1: #3B4252; - -/// Lighter shade color of the base component color. -/// -/// Used as line highlighting in the editor. -/// In the UI scope it may be used as selection- and hightlight color. -/// -/// @access public -/// @example scss - SCSS -/// /* Code Syntax Highlighting scope */ -/// .editor { -/// &.line { -/// background-color: $nord2; -/// } -/// } -/// -/// /* UI scope */ -/// button { -/// &:selected { -/// background-color: $nord2; -/// } -/// } -/// @group polarnight -/// @see $nord0 -/// @since 0.1.0 -$nord2: #434C5E; - -/// Lighter shade color of the base component color. -/// -/// Used for comments, invisibles, indent- and wrap guide marker. -/// In the UI scope used as pseudoclass color for disabled elements. -/// -/// @access public -/// @example scss - SCSS -/// /* Code Syntax Highlighting scope */ -/// .editor { -/// &.indent-guide, -/// &.wrap-guide { -/// &.marker { -/// color: $nord3; -/// } -/// } -/// } -/// .comment, -/// .invisible { -/// color: $nord3; -/// } -/// -/// /* UI scope */ -/// button { -/// &:disabled { -/// background-color: $nord3; -/// } -/// } -/// @group polarnight -/// @see $nord0 -/// @since 0.1.0 -$nord3: #4C566A; - -/// Base component color of "Snow Storm". -/// -/// Main color for text, variables, constants and attributes. -/// In the UI scope used as semi-light background depending on the theme shading design. -/// -/// @access public -/// @example scss - SCSS -/// /* For light ambiance themes */ -/// .background { -/// background-color: $nord4; -/// } -/// /* For dark ambiance themes */ -/// .text { -/// color: $nord4; -/// } -/// @group snowstorm -/// @since 0.1.0 -$nord4: #D8DEE9; - -/// Lighter shade color of the base component color. -/// -/// Used as a lighter background color for UI elements like status bars. -/// Used as semi-light background depending on the theme shading design. -/// -/// @access public -/// @group snowstorm -/// @see $nord4 -/// @since 0.1.0 -$nord5: #E5E9F0; - -/// Lighter shade color of the base component color. -/// -/// Used for punctuations, carets and structuring characters like curly- and square brackets. -/// In the UI scope used as background, selection- and hightlight color depending on the theme shading design. -/// -/// @access public -/// @group snowstorm -/// @see $nord4 -/// @since 0.1.0 -$nord6: #ECEFF4; - -/// Bluish core color. -/// -/// Used for classes, types and documentation tags. -/// -/// @access public -/// @group frost -/// @since 0.1.0 -$nord7: #8FBCBB; - -/// Bluish core accent color. -/// -/// Represents the accent color of the color palette. -/// Main color for primary UI elements and methods/functions. -/// -/// Can be used for -/// - Markup quotes -/// - Markup link URLs -/// -/// @access public -/// @group frost -/// @since 0.1.0 -$nord8: #88C0D0; - -/// Bluish core color. -/// -/// Used for language-specific syntactic/reserved support characters and keywords, operators, tags, units and -/// punctuations like (semi)colons,commas and braces. -/// -/// @access public -/// @group frost -/// @since 0.1.0 -$nord9: #81A1C1; - -/// Bluish core color. -/// -/// Used for markup doctypes, import/include/require statements, pre-processor statements and at-rules (`@`). -/// -/// @access public -/// @group frost -/// @since 0.1.0 -$nord10: #5E81AC; - -/// Colorful component color. -/// -/// Used for errors, git/diff deletion and linter marker. -/// -/// @access public -/// @group aurora -/// @since 0.1.0 -$nord11: #BF616A; - -/// Colorful component color. -/// -/// Used for annotations. -/// -/// @access public -/// @group aurora -/// @since 0.1.0 -$nord12: #D08770; - -/// Colorful component color. -/// -/// Used for escape characters, regular expressions and markup entities. -/// In the UI scope used for warnings and git/diff renamings. -/// -/// @access public -/// @group aurora -/// @since 0.1.0 -$nord13: #EBCB8B; - -/// Colorful component color. -/// -/// Main color for strings and attribute values. -/// In the UI scope used for git/diff additions and success visualizations. -/// -/// @access public -/// @group aurora -/// @since 0.1.0 -$nord14: #A3BE8C; - -/// Colorful component color. -/// -/// Used for numbers. -/// -/// @access public -/// @group aurora -/// @since 0.1.0 -$nord15: #B48EAD; \ No newline at end of file diff --git a/_sass/_print.scss b/_sass/_print.scss deleted file mode 100644 index 09bdb1d8..00000000 --- a/_sass/_print.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* ========================================================================== - PRINT STYLES - ========================================================================== */ - -/* - Hide the following elements on print - ========================================================================== */ - -@media print { - .masthead, - .toc, - .page__share, - .page__related, - .ads, - .page__footer { - display: none; - } -} diff --git a/_sass/_variables.scss b/_sass/_variables.scss deleted file mode 100644 index 1d80dbb6..00000000 --- a/_sass/_variables.scss +++ /dev/null @@ -1,130 +0,0 @@ -/* ========================================================================== - Variables - ========================================================================== */ - -@import "nord"; - -/* - Typography - ========================================================================== */ - -$doc-font-size : 16 !default; - -/* paragraph indention */ -$paragraph-indent : false !default; // true, false (default) -$indent-var : 1.3em !default; - -/* system typefaces */ -$serif : Georgia, Times, serif !default; -$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif !default; -$monospace : Monaco, Consolas, "Lucida Console", monospace !default; - -/* sans serif typefaces */ -$sans-serif-narrow : $sans-serif !default; -$helvetica : Helvetica, "Helvetica Neue", Arial, sans-serif !default; - -/* serif typefaces */ -$georgia : Georgia, serif !default; -$times : Times, serif !default; -$bodoni : "Bodoni MT", serif !default; -$calisto : "Calisto MT", serif !default; -$garamond : Garamond, serif !default; - -$global-font-family : $sans-serif !default; -$header-font-family : $sans-serif !default; -$caption-font-family : $serif !default; - -/* type scale */ -$type-size-1 : 2.441em !default; // ~39.056px -$type-size-2 : 1.953em !default; // ~31.248px -$type-size-3 : 1.563em !default; // ~25.008px -$type-size-4 : 1.25em !default; // ~20px -$type-size-5 : .9em !default; // ~16px -$type-size-6 : 0.75em !default; // ~12px -$type-size-7 : 0.6875em !default; // ~11px -$type-size-8 : 0.625em !default; // ~10px - - -/* - Colors - ========================================================================== */ - -$gray : #7a8288 !default; -$dark-gray : mix(#000, $gray, 40%) !default; -$darker-gray : mix(#000, $gray, 60%) !default; -$light-gray : mix(#fff, $gray, 50%) !default; -$lighter-gray : mix(#fff, $gray, 90%) !default; - -$body-color : $nord0 !default; -$background-color : $nord0 !default; -$code-background-color : $nord2 !default; -$code-background-color-dark : $nord1 !default; -$text-color : $nord4 !default; -$border-color : $nord5 !default; - -$primary-color : $nord4 !default; -$success-color : $nord14 !default; -$warning-color : $nord12 !default; -$danger-color : $nord11 !default; -$info-color : $nord10 !default; - -/* brands */ -$behance-color : #1769FF !default; -$dribbble-color : #ea4c89 !default; -$facebook-color : #3b5998 !default; -$flickr-color : #ff0084 !default; -$foursquare-color : #0072b1 !default; -$github-color : #171516 !default; -$google-plus-color : #dd4b39 !default; -$instagram-color : #517fa4 !default; -$lastfm-color : #d51007 !default; -$linkedin-color : #007bb6 !default; -$pinterest-color : #cb2027 !default; -$rss-color : #fa9b39 !default; -$soundcloud-color : #ff3300 !default; -$stackoverflow-color : #fe7a15 !default; -$tumblr-color : #32506d !default; -$twitter-color : #55acee !default; -$vimeo-color : #1ab7ea !default; -$vine-color : #00bf8f !default; -$youtube-color : #bb0000 !default; -$xing-color : #006567 !default; - - -/* links */ -$link-color : mix(#fff, $info-color, 15%) !default; -$link-color-hover : mix(#fff, $link-color, 25%) !default; -$link-color-visited : mix(#000, $link-color, 25%) !default; -$masthead-link-color : $primary-color !default; -$masthead-link-color-hover : mix(#fff, $primary-color, 25%) !default; - - -/* - Breakpoints - ========================================================================== */ - -$small : 768px !default; -$medium : 900px !default; -$medium-wide : 1024px !default; -$large : 1280px !default; -$x-large : 1400px !default; - - -/* - Grid - ========================================================================== */ - -$right-sidebar-width-narrow : 200px !default; -$right-sidebar-width : 300px !default; -$right-sidebar-width-wide : 400px !default; - - -/* - Other - ========================================================================== */ - -$border-radius : 4px !default; -$box-shadow : 0 1px 1px rgba(0, 0, 0, 0.125) !default; -$navicon-width : 28px !default; -$navicon-height : 4px !default; -$global-transition : all 0.2s ease-in-out !default; diff --git a/_sass/minimal-mistakes.scss b/_sass/minimal-mistakes.scss new file mode 100644 index 00000000..873b4232 --- /dev/null +++ b/_sass/minimal-mistakes.scss @@ -0,0 +1,40 @@ +/*! + * Minimal Mistakes Jekyll Theme 4.6.0 by Michael Rose + * Copyright 2017 Michael Rose - mademistakes.com | @mmistakes + * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt) +*/ + +/* Variables */ +@import "minimal-mistakes/variables"; + +/* Mixins and functions */ +@import "minimal-mistakes/vendor/breakpoint/breakpoint"; +@include breakpoint-set("to ems", true); +@import "minimal-mistakes/vendor/font-awesome/font-awesome"; +@import "minimal-mistakes/vendor/magnific-popup/magnific-popup"; // Magnific Popup +@import "minimal-mistakes/vendor/susy/susy"; +@import "minimal-mistakes/mixins"; + +/* Core CSS */ +@import "minimal-mistakes/reset"; +@import "minimal-mistakes/base"; +@import "minimal-mistakes/forms"; +@import "minimal-mistakes/tables"; +@import "minimal-mistakes/animations"; + +/* Components */ +@import "minimal-mistakes/buttons"; +@import "minimal-mistakes/notices"; +@import "minimal-mistakes/masthead"; +@import "minimal-mistakes/navigation"; +@import "minimal-mistakes/footer"; +@import "minimal-mistakes/syntax"; + +/* Utility classes */ +@import "minimal-mistakes/utilities"; + +/* Layout specific */ +@import "minimal-mistakes/page"; +@import "minimal-mistakes/archive"; +@import "minimal-mistakes/sidebar"; +@import "minimal-mistakes/print"; \ No newline at end of file diff --git a/_sass/_animations.scss b/_sass/minimal-mistakes/_animations.scss similarity index 100% rename from _sass/_animations.scss rename to _sass/minimal-mistakes/_animations.scss diff --git a/_sass/_archive.scss b/_sass/minimal-mistakes/_archive.scss similarity index 59% rename from _sass/_archive.scss rename to _sass/minimal-mistakes/_archive.scss index 0509f814..70cb116e 100644 --- a/_sass/_archive.scss +++ b/_sass/minimal-mistakes/_archive.scss @@ -5,13 +5,15 @@ .archive { margin-bottom: 2em; - @include breakpoint($medium) { - @include span(12 of 12); + @include breakpoint($large) { + float: right; + width: calc(100% - #{$right-sidebar-width-narrow}); + padding-right: $right-sidebar-width-narrow; } - @include breakpoint($large) { - @include span(10 of 12 last); - @include prefix(0.5 of 12); + @include breakpoint($x-large) { + width: calc(100% - #{$right-sidebar-width}); + padding-right: $right-sidebar-width; } a { @@ -24,7 +26,7 @@ margin: 1.414em 0 0; padding-bottom: 0.5em; font-size: $type-size-5; - color: mix(#fff, $gray, 25%); + color: $muted-text-color; border-bottom: 1px solid $border-color; + .list__item .archive__item-title { @@ -35,6 +37,8 @@ .archive__item-title { margin-bottom: 0.25em; font-family: $sans-serif-narrow; + overflow: hidden; + text-overflow: ellipsis; a + a { opacity: 0.5; @@ -68,6 +72,7 @@ } .archive__item:hover { + .archive__item-teaser { box-shadow: 0 0 10px rgba(#000, 0.25); } @@ -83,17 +88,6 @@ ========================================================================== */ .list__item { - @include breakpoint($medium) { - padding-right: $right-sidebar-width-narrow; - } - - @include breakpoint($large) { - padding-right: $right-sidebar-width; - } - - @include breakpoint($x-large) { - padding-right: $right-sidebar-width-wide; - } .page__meta { margin: 0 0 4px; @@ -105,9 +99,68 @@ Grid view ========================================================================== */ +.archive { + + .grid__wrapper { + /* extend grid elements to the right */ + + @include breakpoint($large) { + margin-right: -1 * $right-sidebar-width-narrow; + } + + @include breakpoint($x-large) { + margin-right: -1 * $right-sidebar-width; + } + } +} + .grid__item { margin-bottom: 2em; + @include breakpoint($small) { + float: left; + width: span(5 of 10); + + &:nth-child(2n+1) { + clear: both; + margin-left: 0; + } + + &:nth-child(2n+2) { + clear: none; + margin-left: gutter(of 10); + } + } + + @include breakpoint($medium) { + margin-left: 0; /* override margin*/ + margin-right: 0; /* override margin*/ + width: span(3 of 12); + + &:nth-child(2n+1) { + clear: none; + } + + &:nth-child(4n+1) { + clear: both; + } + + &:nth-child(4n+2) { + clear: none; + margin-left: gutter(1 of 12); + } + + &:nth-child(4n+3) { + clear: none; + margin-left: gutter(1 of 12); + } + + &:nth-child(4n+4) { + clear: none; + margin-left: gutter(1 of 12); + } + } + .page__meta { margin: 0 0 4px; } @@ -119,29 +172,23 @@ .archive__item-excerpt { display: none; - } - @include breakpoint($small) { - @include gallery(5 of 10); - .archive__item-teaser { - max-height: 200px; - } - } - - @include breakpoint($medium) { - margin-left: 0; /* reset before mixin does its thing*/ - margin-right: 0; /* reset before mixin does its thing*/ - @include gallery(2.5 of 10); - - .archive__item-teaser { - max-height: 120px; - } - - .archive__item-excerpt { + @include breakpoint($medium) { display: block; font-size: $type-size-6; } } + + .archive__item-teaser { + + @include breakpoint($small) { + max-height: 200px; + } + + @include breakpoint($medium) { + max-height: 120px; + } + } } @@ -160,8 +207,24 @@ font-size: 1.25rem; @include breakpoint($small) { + float: left; margin-bottom: 0; - @include gallery(4 of 12); + width: span(4 of 12); + + &:nth-child(3n+1) { + clear: both; + margin-left: 0; + } + + &:nth-child(3n+2) { + clear: none; + margin-left: gutter(of 12); + } + + &:nth-child(3n+3) { + clear: none; + margin-left: gutter(of 12); + } .feature__item-teaser { max-height: 200px; @@ -170,7 +233,11 @@ } &--left { - @include full(); + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; font-size: 1.25rem; .archive__item-teaser { @@ -178,20 +245,27 @@ } @include breakpoint($small) { + .archive__item-teaser { - @include span(5 of 12); + float: left; + width: span(5 of 12); } .archive__item-body { - @include span(7 of 12 last); - @include prefix(0.5 of 12); - @include suffix(1 of 12); + float: right; + padding-left: gutter(0.5 of 12); + padding-right: gutter(1 of 12); + width: span(7 of 12); } } } &--right { - @include full(); + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; font-size: 1.25rem; .archive__item-teaser { @@ -202,19 +276,25 @@ text-align: right; .archive__item-teaser { - @include span(5 of 12 rtl); + float: right; + width: span(5 of 12); } .archive__item-body { - @include span(7 of 12 last rtl); - @include prefix(0.5 of 12); - @include suffix(1 of 12); + float: right; + width: span(7 of 12); + padding-left: gutter(0.5 of 12); + padding-right: gutter(1 of 12); } } } &--center { - @include full(); + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; font-size: 1.25rem; .archive__item-teaser { @@ -235,4 +315,4 @@ } } } -} +} \ No newline at end of file diff --git a/_sass/_base.scss b/_sass/minimal-mistakes/_base.scss similarity index 95% rename from _sass/_base.scss rename to _sass/minimal-mistakes/_base.scss index c5311a29..d9f7df30 100644 --- a/_sass/_base.scss +++ b/_sass/minimal-mistakes/_base.scss @@ -118,8 +118,13 @@ a { &:hover, &:active { + color: $link-color-hover; outline: 0; } + + &:visited { + color: $link-color-visited; + } } /* code */ @@ -141,7 +146,7 @@ td > code { padding-bottom: 0.1rem; font-size: $type-size-6; background: $code-background-color; - border: 1px solid $lighter-gray; + border: 1px solid $border-color; border-radius: $border-radius; box-shadow: $box-shadow; @@ -236,20 +241,16 @@ figure { figcaption { margin-bottom: 0.5em; - color: mix(#fff, $text-color, 25%); + color: $muted-text-color; font-family: $caption-font-family; font-size: $type-size-6; a { - color: inherit; - text-decoration: none; - border-bottom: 1px solid $light-gray; -webkit-transition: $global-transition; transition: $global-transition; &:hover { - color: #000; - border-bottom-color: #000; + color: $link-color-hover; } } } diff --git a/_sass/minimal-mistakes/_buttons.scss b/_sass/minimal-mistakes/_buttons.scss new file mode 100644 index 00000000..6027eac7 --- /dev/null +++ b/_sass/minimal-mistakes/_buttons.scss @@ -0,0 +1,98 @@ +/* ========================================================================== + BUTTONS + ========================================================================== */ + +/* + Default button + ========================================================================== */ + +.btn { + /* default */ + display: inline-block; + margin-bottom: 0.25em; + padding: 0.5em 1em; + font-family: $sans-serif; + font-size: $type-size-6; + font-weight: bold; + text-align: center; + text-decoration: none; + border-width: 0; + border-radius: $border-radius; + cursor: pointer; + + .icon { + margin-right: 0.5em; + } + + .icon + .hidden { + margin-left: -0.5em; /* override for hidden text*/ + } + + /* button colors */ + $buttoncolors: + (primary, $primary-color), + (inverse, #fff), + (light-outline, transparent), + (success, $success-color), + (warning, $warning-color), + (danger, $danger-color), + (info, $info-color), + (facebook, $facebook-color), + (twitter, $twitter-color), + (google-plus, $google-plus-color), + (linkedin, $linkedin-color); + + @each $buttoncolor, $color in $buttoncolors { + &--#{$buttoncolor} { + @include yiq-contrasted($color); + @if ($buttoncolor == inverse) { + border: 1px solid $border-color; + } + @if ($buttoncolor == light-outline) { + border: 1px solid #fff; + } + + &:hover { + @include yiq-contrasted(mix(#000, $color, 20%)); + } + + &:visited { + @include yiq-contrasted($color); + } + } + } + + /* fills width of parent container */ + &--block { + display: block; + width: 100%; + + + .btn--block { + margin-top: 0.25em; + } + } + + /* disabled */ + &--disabled { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + box-shadow: none; + opacity: 0.65; + } + + /* extra large button */ + &--x-large { + font-size: $type-size-4; + } + + /* large button */ + &--large { + font-size: $type-size-5; + } + + /* small button */ + &--small { + font-size: $type-size-7; + } +} \ No newline at end of file diff --git a/_sass/_footer.scss b/_sass/minimal-mistakes/_footer.scss similarity index 78% rename from _sass/_footer.scss rename to _sass/minimal-mistakes/_footer.scss index 2525a710..3b3ddd31 100644 --- a/_sass/_footer.scss +++ b/_sass/minimal-mistakes/_footer.scss @@ -3,28 +3,31 @@ ========================================================================== */ .page__footer { - @include full(); @include clearfix; + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; /* sticky footer fix start */ position: absolute; bottom: 0; - width: 100%; - clear: both; height: auto; /* sticky footer fix end */ margin-top: 3em; - color: $primary-color; - -webkit-animation: intro 0.3s both; - animation: intro 0.3s both; + color: $muted-text-color; + -webkit-animation: $intro-transition; + animation: $intro-transition; -webkit-animation-delay: 0.45s; animation-delay: 0.45s; - background-color: $nord1; - border-top: 1px solid $light-gray; + background-color: $footer-background-color; footer { - @include container; @include clearfix; + margin-left: auto; + margin-right: auto; margin-top: 2em; + max-width: 100%; padding: 0 1em 2em; @include breakpoint($x-large) { @@ -33,7 +36,7 @@ } a { - color: mix(#fff, $link-color, 20%); + color: inherit; text-decoration: none; &:hover { @@ -42,7 +45,7 @@ } .fa { - color: mix(#fff, $gray, 25%); + color: $muted-text-color; } } diff --git a/_sass/_forms.scss b/_sass/minimal-mistakes/_forms.scss similarity index 95% rename from _sass/_forms.scss rename to _sass/minimal-mistakes/_forms.scss index a1f0f146..dc521319 100644 --- a/_sass/_forms.scss +++ b/_sass/minimal-mistakes/_forms.scss @@ -4,6 +4,8 @@ form { margin: 0 0 5px 0; + padding: 1em; + background-color: $form-background-color; fieldset { margin-bottom: 5px; @@ -19,7 +21,6 @@ form { padding: 0; color: $text-color; border: 0; - border-bottom: 1px solid mix(#fff, #000, 80%); white-space: normal; } @@ -80,14 +81,10 @@ select { padding: 0.25em; margin-bottom: 0.5em; color: $text-color; - background-color: #fff; - border: 1px solid mix(#fff, #000, 80%); + background-color: $background-color; + border: $border-color; border-radius: $border-radius; box-shadow: $box-shadow; - - &:hover { - border-color: mix(#fff, $primary-color, 50%); - } } .input-mini { @@ -224,6 +221,7 @@ textarea:focus { border-color: $primary-color; outline: 0; outline: thin dotted \9; + box-shadow: inset 0 1px 3px rgba($text-color, 0.06), 0 0 5px rgba($primary-color, 0.7); } input[type="file"]:focus, @@ -240,7 +238,7 @@ select:focus { .help-block, .help-inline { - color: $info-color; + color: $muted-text-color; } .help-block { @@ -382,7 +380,7 @@ select:focus { color: #000; border-width: 2px !important; border-style: solid !important; - border-color: lighten(#000,50); + border-color: $border-color; border-radius: $border-radius; } diff --git a/_sass/_masthead.scss b/_sass/minimal-mistakes/_masthead.scss similarity index 55% rename from _sass/_masthead.scss rename to _sass/minimal-mistakes/_masthead.scss index 48077d98..ee5abb02 100644 --- a/_sass/_masthead.scss +++ b/_sass/minimal-mistakes/_masthead.scss @@ -4,18 +4,23 @@ .masthead { position: relative; - background: $nord1; border-bottom: 1px solid $border-color; - -webkit-animation: intro 0.3s both; - animation: intro 0.3s both; + -webkit-animation: $intro-transition; + animation: $intro-transition; -webkit-animation-delay: 0.15s; animation-delay: 0.15s; z-index: 20; &__inner-wrap { - @include container; @include clearfix; - padding: 1em 1em 1em; + margin-left: auto; + margin-right: auto; + padding: 1em; + max-width: 100%; + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; font-family: $sans-serif-narrow; @include breakpoint($x-large) { @@ -32,7 +37,31 @@ } } +.site-title { + display: -webkit-box; + display: flex; + padding: 0.5rem 0; + align-self: stretch; + -webkit-box-align: center; + align-items: center; + font-weight: bold; + z-index: 20; +} + .masthead__menu { + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; + + .site-nav { + margin-left: 0; + + @include breakpoint($small) { + float: right; + } + } ul { margin: 0; @@ -51,4 +80,4 @@ padding-right: 2em; font-weight: 700; } -} +} \ No newline at end of file diff --git a/_sass/_mixins.scss b/_sass/minimal-mistakes/_mixins.scss similarity index 50% rename from _sass/_mixins.scss rename to _sass/minimal-mistakes/_mixins.scss index 14782b19..1d221fc8 100644 --- a/_sass/_mixins.scss +++ b/_sass/minimal-mistakes/_mixins.scss @@ -50,4 +50,43 @@ content: ""; display: table; } +} + +/* + Compass YIQ Color Contrast + https://github.com/easy-designs/yiq-color-contrast + ========================================================================== */ + +@function yiq-is-light( + $color, + $threshold: $yiq-contrasted-threshold +) { + $red: red($color); + $green: green($color); + $blue: blue($color); + + $yiq: (($red*299)+($green*587)+($blue*114))/1000; + + @if $yiq-debug { @debug $yiq, $threshold; } + + @return if($yiq >= $threshold, true, false); +} + +@function yiq-contrast-color( + $color, + $dark: $yiq-contrasted-dark-default, + $light: $yiq-contrasted-light-default, + $threshold: $yiq-contrasted-threshold +) { + @return if(yiq-is-light($color, $threshold), $yiq-contrasted-dark-default, $yiq-contrasted-light-default); +} + +@mixin yiq-contrasted( + $background-color, + $dark: $yiq-contrasted-dark-default, + $light: $yiq-contrasted-light-default, + $threshold: $yiq-contrasted-threshold +) { + background-color: $background-color; + color: yiq-contrast-color($background-color, $dark, $light, $threshold); } \ No newline at end of file diff --git a/_sass/minimal-mistakes/_navigation.scss b/_sass/minimal-mistakes/_navigation.scss new file mode 100644 index 00000000..0736b359 --- /dev/null +++ b/_sass/minimal-mistakes/_navigation.scss @@ -0,0 +1,569 @@ +/* ========================================================================== + NAVIGATION + ========================================================================== */ + +/* + Breadcrumb navigation links + ========================================================================== */ + + .breadcrumbs { + @include clearfix; + margin: 0 auto; + max-width: 100%; + padding-left: 2em; + padding-right: 2em; + font-family: $sans-serif; + -webkit-animation: $intro-transition; + animation: $intro-transition; + -webkit-animation-delay: 0.30s; + animation-delay: 0.30s; + + @include breakpoint($large) { + padding-left: 1em; + padding-right: 1em; + } + + @include breakpoint($x-large) { + max-width: $x-large; + } + + ol { + padding: 0; + list-style: none; + font-size: $type-size-6; + + @include breakpoint($large) { + float: right; + width: span(10 of 12); + } + + @include breakpoint($x-large) { + padding-left: gutter(0.5 of 12); + } + } + + li { + display: inline; + } + + .current { + font-weight: bold; + } + } + + + /* + Post pagination navigation links + ========================================================================== */ + + .pagination { + @include clearfix(); + float: left; + margin-top: 1em; + padding-top: 1em; + width: 100%; + + ul { + margin: 0; + padding: 0; + list-style-type: none; + font-family: $sans-serif; + } + + li { + display: block; + float: left; + margin-left: -1px; + + a { + display: block; + margin-bottom: 0.25em; + padding: 0.5em 1em; + font-family: $sans-serif; + font-size: 14px; + font-weight: bold; + line-height: 1.5; + text-align: center; + text-decoration: none; + color: $muted-text-color; + border: 1px solid mix(#000, $border-color, 25%); + border-radius: 0; + + &:hover { + color: $link-color-hover; + } + + &.current, + &.current.disabled { + color: #fff; + background: $primary-color; + } + + &.disabled { + color: rgba($muted-text-color, 0.5); + pointer-events: none; + cursor: not-allowed; + } + } + + &:first-child { + margin-left: 0; + + a { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + } + } + + &:last-child { + a { + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + } + } + + /* next/previous buttons */ + &--pager { + display: block; + padding: 1em 2em; + float: left; + width: 50%; + font-family: $sans-serif; + font-size: $type-size-5; + font-weight: bold; + text-align: center; + text-decoration: none; + color: $muted-text-color; + border: 1px solid mix(#000, $border-color, 25%); + border-radius: $border-radius; + + &:hover { + @include yiq-contrasted($muted-text-color); + } + + &:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + &:last-child { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + &.disabled { + color: rgba($muted-text-color, 0.5); + pointer-events: none; + cursor: not-allowed; + } + } + } + + .page__content + .pagination, + .page__meta + .pagination, + .page__share + .pagination, + .page__comments + .pagination { + margin-top: 2em; + padding-top: 2em; + border-top: 1px solid $border-color; + } + + + /* + Priority plus navigation + ========================================================================== */ + + .greedy-nav { + position: relative; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + background: $background-color; + + a { + display: block; + margin: 0 1rem; + padding: 0.5rem 0; + color: $masthead-link-color; + text-decoration: none; + + &:hover { + color: $masthead-link-color-hover; + } + + &.site-title { + margin-left: 0; + } + } + + button { + padding: 0 0.5rem; + align-self: stretch; + border: 0; + outline: none; + color: #fff; + background: transparent; + cursor: pointer; + } + + .visible-links { + display: -webkit-box; + display: flex; + -webkit-box-pack: end; + -webkit-box-flex: 1; + flex: 1; + padding-right: 2rem; + overflow: hidden; + + li { + -webkit-box-flex: 0; + flex: none; + + &:first-child { + a { + margin-left: 0; + } + } + &:last-child { + a { + margin-right: 0; + } + } + } + + a { + position: relative; + + &:before { + content: ""; + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background: $primary-color; + width: 100%; + -webkit-transition: $global-transition; + transition: $global-transition; + -webkit-transform: scaleX(0) translate3d(0, 0 , 0); + transform: scaleX(0) translate3d(0, 0 , 0); /* hide*/ + } + + &:hover:before { + -webkit-transform: scaleX(1); + -ms-transform: scaleX(1); + transform: scaleX(1); /* reveal*/ + } + } + } + + .links-menu{ + right: 2.5rem; + } + + .lang-menu{ + right: .2rem; + } + + .hidden-links { + position: absolute; + top: 100%; + margin-top: 15px; + padding: 5px; + border: 1px solid $border-color; + border-radius: $border-radius; + background: $background-color; + box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12); + + &.hidden { + display: none; + } + + a { + margin: 0; + padding: 10px 20px; + font-size: $type-size-5; + + &:hover { + color: $masthead-link-color-hover; + background: $navicon-link-color-hover; + } + } + + &:before { + content: ""; + position: absolute; + top: -11px; + right: 5px; + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: $border-color transparent; + display: block; + z-index: 0; + } + + &:after { + content: ""; + position: absolute; + top: -10px; + right: 5px; + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: $background-color transparent; + display: block; + z-index: 1; + } + + li { + display: block; + border-bottom: 1px solid $border-color; + + &:last-child { + border-bottom: none; + } + } + } + } + + + /* + Navigation list + ========================================================================== */ + + .nav__list { + margin-bottom: 1.5em; + + input[type="checkbox"], + label { + display: none; + } + + @include breakpoint(max-width ($large - 1px)) { + + label { + position: relative; + display: inline-block; + padding: 0.5em 2.5em 0.5em 1em; + font-size: $type-size-6; + font-weight: bold; + border: 1px solid $light-gray; + border-radius: $border-radius; + z-index: 20; + -webkit-transition: 0.2s ease-out; + transition: 0.2s ease-out; + cursor: pointer; + + &:before, + &:after { + content: ''; + position: absolute; + right: 1em; + top: 1.25em; + width: 0.75em; + height: 0.125em; + line-height: 1; + background-color: $gray; + -webkit-transition: 0.2s ease-out; + transition: 0.2s ease-out; + } + + &:after { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); + } + + &:hover { + color: #fff; + border-color: $gray; + background-color: mix(white, #000, 20%); + + &:before, + &:after { + background-color: #fff; + } + } + } + + /* selected*/ + input:checked + label { + color: white; + background-color: mix(white, #000, 20%); + + &:before, + &:after { + background-color: #fff; + } + } + + /* on hover show expand*/ + label:hover:after { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); + } + + input:checked + label:hover:after { + -webkit-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); + } + + ul { + margin-bottom: 1em; + } + + a { + display: block; + padding: 0.25em 0; + + @include breakpoint($large) { + padding-top: 0.125em; + padding-bottom: 0.125em; + } + + &:hover { + text-decoration: underline; + } + } + } + } + + .nav__list .nav__items { + margin: 0; + font-size: 1.4rem; + + a { + color: inherit; + line-height: 1.6; + } + + ol { + padding-left: 0.9rem; + } + + li { + list-style: inherit; + } + + .active { + font-weight: bold; + } + + .completed { + color: $gray; + text-decoration: line-through; + } + + @include breakpoint(max-width ($large - 1px)) { + position: relative; + max-height: 0; + opacity: 0%; + overflow: hidden; + z-index: 10; + -webkit-transition: 0.3s ease-in-out; + transition: 0.3s ease-in-out; + -webkit-transform: translate(0, 10%); + -ms-transform: translate(0, 10%); + transform: translate(0, 10%); + } + } + + @include breakpoint(max-width ($large - 1px)) { + .nav__list input:checked ~ .nav__items { + -webkit-transition: 0.5s ease-in-out; + transition: 0.5s ease-in-out; + max-height: 9999px; /* exaggerate max-height to accommodate tall lists*/ + overflow: visible; + opacity: 1; + margin-top: 1em; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); + } + } + + .nav__title { + margin: 0; + padding: 0.5rem 1rem; + font-family: $sans-serif-narrow; + font-size: $type-size-5; + font-weight: bold; + } + + .nav__sub-title { + display: block; + margin: 0.5rem 0; + padding: 0.5rem 0; + font-family: $sans-serif-narrow; + font-size: $type-size-6; + font-weight: bold; + text-transform: uppercase; + border-bottom: 1px solid $border-color; + } + + + /* + Table of contents navigation + ========================================================================== */ + + .toc { + font-family: $sans-serif-narrow; + color: $gray; + text-transform: uppercase; + letter-spacing: 1px; + background-color: $background-color; + border: 1px solid $border-color; + border-radius: $border-radius; + box-shadow: $box-shadow; + + .nav__title { + color: #fff; + font-size: $type-size-6; + background: $primary-color; + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + } + } + + .toc__menu { + margin: 0; + padding: 0; + width: 100%; + list-style: none; + font-size: 1rem; + + a { + display: block; + padding: 0.5rem 1rem; + color: $text-color; + font-size: $type-size-7; + font-weight: bold; + line-height: 1.5; + border-bottom: 1px solid $border-color; + } + + > li:last-child { + a { + border-bottom: none; + } + } + + li ul > li a { + padding-left: 1.75rem; + font-weight: normal; + } + + /* hide sub sub links on small screens*/ + li > ul li { + display: none; + + @include breakpoint($medium) { + display: block; + } + } + } diff --git a/_sass/_notices.scss b/_sass/minimal-mistakes/_notices.scss similarity index 70% rename from _sass/_notices.scss rename to _sass/minimal-mistakes/_notices.scss index d109b763..10cd1b21 100644 --- a/_sass/_notices.scss +++ b/_sass/minimal-mistakes/_notices.scss @@ -15,9 +15,9 @@ padding: 1em; font-family: $global-font-family; font-size: $type-size-6 !important; - font-weight: bold; text-indent: initial; /* override*/ - background-color: mix($body-color, $notice-color, 45%); + font-weight: bold; + background-color: mix($background-color, $notice-color, 45%); border-radius: $border-radius; box-shadow: 0 1px 1px rgba($notice-color, 0.25); @@ -63,13 +63,13 @@ /* Default notice */ .notice { - @include notice($nord3); + @include notice($light-gray); } /* Primary notice */ .notice--primary { - @include notice($nord8); + @include notice($primary-color); } /* Info notice */ @@ -94,33 +94,4 @@ .notice--danger { @include notice($danger-color); -} - -.screenshot_image{ - position: relative; - width: auto; - display: inline-block; - - position: relative; - font-family: $monospace; - font-size: $type-size-7; - line-height: 1.8; - border: 2px solid $border-color; - border-radius: $border-radius; - background-color: $border-color; - box-shadow: $box-shadow; - - &:before { - position: absolute; - top: 0; - right: 0; - padding: 0.5em; - background-color: $nord6; - content: "\f08e"; - font-family: "fontawesome" !important; - line-height: 1; - text-transform: none; - speak: none; - color: $background-color; - } } \ No newline at end of file diff --git a/_sass/_page.scss b/_sass/minimal-mistakes/_page.scss similarity index 80% rename from _sass/_page.scss rename to _sass/minimal-mistakes/_page.scss index 5af49c84..a3f1476d 100644 --- a/_sass/_page.scss +++ b/_sass/minimal-mistakes/_page.scss @@ -3,13 +3,17 @@ ========================================================================== */ #main { - @include container; @include clearfix; + margin-left: auto; margin-top: 2em; + margin-right: auto; padding-left: 1em; padding-right: 1em; - animation: intro 0.3s both; - animation-delay: 0.35s; + -webkit-animation: $intro-transition; + animation: $intro-transition; + max-width: 100%; + -webkit-animation-delay: 0.35s; + animation-delay: 0.35s; @include breakpoint($x-large) { max-width: $x-large; @@ -17,19 +21,34 @@ } .page { + @include breakpoint($large) { - @include span(10 of 12 last); - @include prefix(0.5 of 12); - @include suffix(2 of 12); + float: right; + width: calc(100% - #{$right-sidebar-width-narrow}); + padding-right: $right-sidebar-width-narrow; + } + + @include breakpoint($x-large) { + width: calc(100% - #{$right-sidebar-width}); + padding-right: $right-sidebar-width; } .page__inner-wrap { - @include full(); + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; .page__content, .page__meta, .page__share { - @include full(); + position: relative; + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; } } } @@ -56,7 +75,7 @@ } p, li, dl { - font-size: .9em; + font-size: .85em; } /* paragraph indents */ @@ -72,8 +91,7 @@ } } - a { - text-decoration: none; + a:not(.btn) { &:hover { text-decoration: underline; @@ -84,10 +102,6 @@ } } - hr { - border-top-color: $nord3; - } - dt { margin-top: 1em; font-family: $sans-serif; @@ -115,8 +129,10 @@ position: relative; margin-bottom: 2em; @include clearfix; - animation: intro 0.3s both; - animation-delay: 0.25s; + -webkit-animation: $intro-transition; + animation: $intro-transition; + -webkit-animation-delay: 0.25s; + animation-delay: 0.25s; &--overlay { position: relative; @@ -126,8 +142,10 @@ background-size: cover; background-repeat: no-repeat; background-position: center; - animation: intro 0.3s both; - animation-delay: 0.25s; + -webkit-animation: $intro-transition; + animation: $intro-transition; + -webkit-animation-delay: 0.25s; + animation-delay: 0.25s; a { color: #fff; @@ -183,7 +201,7 @@ text-align: right; z-index: 5; opacity: 0.5; - border-radius: $border-radius 0 $border-radius 0; + border-radius: $border-radius 0 0 0; @include breakpoint($large) { padding: 5px 10px; @@ -231,7 +249,7 @@ .page__meta { margin-top: 2em; - color: mix(#fff, $gray, 25%); + color: $muted-text-color; font-family: $sans-serif; font-size: $type-size-6; @@ -271,7 +289,7 @@ margin-bottom: 8px; padding: 5px 10px; text-decoration: none; - border: 1px solid $light-gray; + border: 1px solid mix(#000, $border-color, 25%); border-radius: $border-radius; &:hover { @@ -286,7 +304,11 @@ ========================================================================== */ .page__comments { - @include full(); + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; } .page__comments-title { @@ -299,8 +321,7 @@ } .page__comments-form { - padding: 1em; - background: $lighter-gray; + -webkit-transition: $global-transition; transition: $global-transition; &.disabled { @@ -382,14 +403,19 @@ ========================================================================== */ .page__related { + @include clearfix(); + float: left; margin-top: 2em; padding-top: 1em; border-top: 1px solid $border-color; - @include clearfix(); - float: left; @include breakpoint($large) { - @include pre(2.5 of 12); + float: right; + width: calc(100% - #{$right-sidebar-width-narrow}); + } + + @include breakpoint($x-large) { + width: calc(100% - #{$right-sidebar-width}); } a { @@ -402,4 +428,4 @@ margin-bottom: 10px; font-size: $type-size-6; text-transform: uppercase; -} +} \ No newline at end of file diff --git a/_sass/minimal-mistakes/_print.scss b/_sass/minimal-mistakes/_print.scss new file mode 100644 index 00000000..b93f1d40 --- /dev/null +++ b/_sass/minimal-mistakes/_print.scss @@ -0,0 +1,252 @@ +/* ========================================================================== + PRINT STYLES + ========================================================================== */ + +@media print { + + [hidden] { + display: none; + } + + * { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + } + + html { + margin: 0; + padding: 0; + min-height: auto !important; + font-size: 16px; + } + + body { + margin: 0 auto; + background: #fff !important; + color: #000 !important; + font-size: 1rem; + line-height: 1.5; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + color: #000; + line-height: 1.2; + margin-bottom: 0.75rem; + margin-top: 0; + } + + h1 { + font-size: 2.5rem; + } + + h2 { + font-size: 2rem; + } + + h3 { + font-size: 1.75rem; + } + + h4 { + font-size: 1.5rem; + } + + h5 { + font-size: 1.25rem; + } + + h6 { + font-size: 1rem; + } + + a, + a:visited { + color: #000; + text-decoration: underline; + word-wrap: break-word; + } + + table { + border-collapse: collapse; + } + + thead { + display: table-header-group; + } + + table, + th, + td { + border-bottom: 1px solid #000; + } + + td, + th { + padding: 8px 16px; + } + + img { + border: 0; + display: block; + max-width: 100% !important; + vertical-align: middle; + } + + hr { + border: 0; + border-bottom: 2px solid #bbb; + height: 0; + margin: 2.25rem 0; + padding: 0; + } + + dt { + font-weight: bold; + } + + dd { + margin: 0; + margin-bottom: 0.75rem; + } + + abbr[title], + acronym[title] { + border: 0; + text-decoration: none; + } + + table, + blockquote, + pre, + code, + figure, + li, + hr, + ul, + ol, + a, + tr { + page-break-inside: avoid; + } + + h2, + h3, + h4, + p, + a { + orphans: 3; + widows: 3; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + page-break-after: avoid; + page-break-inside: avoid; + } + + h1 + p, + h2 + p, + h3 + p { + page-break-before: avoid; + } + + img { + page-break-after: auto; + page-break-before: auto; + page-break-inside: avoid; + } + + pre { + white-space: pre-wrap !important; + word-wrap: break-word; + } + + a[href^='http://']:after, + a[href^='https://']:after, + a[href^='ftp://']:after { + content: " (" attr(href) ")"; + font-size: 80%; + } + + abbr[title]:after, + acronym[title]:after { + content: " (" attr(title) ")"; + } + + #main { + max-width: 100%; + } + + .page { + margin: 0; + padding: 0; + width: 100%; + } + + .page-break, + .page-break-before { + page-break-before: always; + } + + .page-break-after { + page-break-after: always; + } + + .no-print { + display: none; + } + + a.no-reformat:after { + content: ''; + } + + abbr[title].no-reformat:after, + acronym[title].no-reformat:after { + content: ''; + } + + .page__hero-caption { + color: #000 !important; + background: #fff !important; + opacity: 1; + + a { + color: #000 !important; + } + } + +/* + Hide the following elements on print + ========================================================================== */ + + .masthead, + .toc, + .page__share, + .page__related, + .pagination, + .ads, + .page__footer, + .page__comments-form, + .author__avatar, + .author__content, + .author__urls-wrapper, + .nav__list, + .sidebar, + .adsbygoogle { + display: none !important; + height: 1px !important; + } +} \ No newline at end of file diff --git a/_sass/_reset.scss b/_sass/minimal-mistakes/_reset.scss similarity index 99% rename from _sass/_reset.scss rename to _sass/minimal-mistakes/_reset.scss index d9ae7875..4aedb96a 100644 --- a/_sass/_reset.scss +++ b/_sass/minimal-mistakes/_reset.scss @@ -2,7 +2,7 @@ STYLE RESETS ========================================================================== */ -@include border-box-sizing; +* { box-sizing: border-box; } html { /* apply a natural box layout model to all elements */ @@ -184,4 +184,4 @@ input[type="search"]::-webkit-search-cancel-button { textarea { overflow: auto; /* remove vertical scrollbar in IE6-9*/ vertical-align: top; /* readability and alignment cross-browser*/ -} +} \ No newline at end of file diff --git a/_sass/_sidebar.scss b/_sass/minimal-mistakes/_sidebar.scss similarity index 78% rename from _sass/_sidebar.scss rename to _sass/minimal-mistakes/_sidebar.scss index de892e1b..ecb285c2 100644 --- a/_sass/_sidebar.scss +++ b/_sass/minimal-mistakes/_sidebar.scss @@ -7,25 +7,39 @@ ========================================================================== */ .sidebar { + @include clearfix(); + margin-bottom: 1em; -webkit-transform: translate3d(0, 0 , 0); transform: translate3d(0, 0 , 0); - @include clearfix(); - margin-bottom: 1em; + @include breakpoint(max-width $large) { + /* fix z-index order of follow links */ + position: relative; + z-index: 10; + } @include breakpoint($large) { - @include span(2 of 12); - opacity: 0.75; + float: left; + width: calc(#{$right-sidebar-width-narrow} - 1em); + opacity: 1; -webkit-transition: opacity 0.2s ease-in-out; transition: opacity 0.2s ease-in-out; - &:hover { - opacity: 1; + a { + &:hover { + text-decoration: underline; + } + } + + &.sticky { + overflow-y: auto; + /* calculate height of nav list */ + height: calc(100vh - 90px - 2em); // viewport height - approx. masthead height - main content top margin } } @include breakpoint($x-large) { - padding-right: 0; + width: calc(#{$right-sidebar-width} - 1em); } h2, h3, h4, h5, h6 { @@ -48,15 +62,31 @@ margin-bottom: 1em; @include breakpoint($large) { - position: relative; - float: right; + position: absolute; + top: 0; + right: 0; width: $right-sidebar-width-narrow; - margin-left: span(0.5 of 12); + margin-right: -1 * $right-sidebar-width-narrow; + padding-left: 1em; z-index: 10; } @include breakpoint($x-large) { width: $right-sidebar-width; + margin-right: -1 * $right-sidebar-width; + } +} + +.splash .sidebar__right { + + @include breakpoint($large) { + position: relative; + float: right; + margin-right: 0; + } + + @include breakpoint($x-large) { + margin-right: 0; } } @@ -161,11 +191,15 @@ list-style-type: none; border: 1px solid $border-color; border-radius: $border-radius; - background: #fff; + background: $background-color; z-index: -1; - box-shadow: 0 0 10px rgba(#000, 0.25); + box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12); cursor: default; + &.is--visible { + display: block; + } + @include breakpoint($large) { display: block; position: relative; @@ -202,7 +236,7 @@ width: 0; border-style: solid; border-width: 0 10px 10px; - border-color: #fff transparent; + border-color: $background-color transparent; z-index: 1; @include breakpoint($large) { @@ -228,4 +262,4 @@ text-decoration: underline; } } -} +} \ No newline at end of file diff --git a/_sass/_syntax.scss b/_sass/minimal-mistakes/_syntax.scss similarity index 97% rename from _sass/_syntax.scss rename to _sass/minimal-mistakes/_syntax.scss index 94088be3..e7a75540 100644 --- a/_sass/_syntax.scss +++ b/_sass/minimal-mistakes/_syntax.scss @@ -5,10 +5,9 @@ div.highlighter-rouge, figure.highlight { position: relative; - margin-top: 1em; margin-bottom: 1em; font-family: $monospace; - font-size: $type-size-7; + font-size: $type-size-6; line-height: 1.8; border: 1px solid $border-color; border-radius: $border-radius; @@ -26,7 +25,6 @@ figure.highlight { line-height: 1; text-transform: none; speak: none; - color: $background-color; } .highlight { @@ -48,10 +46,10 @@ figure.highlight { padding: 5px; border: 0; - // line numbers + /* line numbers*/ &.gutter { padding-right: 1em; - color: $light-gray; + color: rgba($muted-text-color, 0.5); } } diff --git a/_sass/_tables.scss b/_sass/minimal-mistakes/_tables.scss similarity index 91% rename from _sass/_tables.scss rename to _sass/minimal-mistakes/_tables.scss index 993be593..37808a7f 100644 --- a/_sass/_tables.scss +++ b/_sass/minimal-mistakes/_tables.scss @@ -16,7 +16,7 @@ table { } thead { - background-color: $nord1; + background-color: mix($background-color, $dark-gray, 45%);; border-bottom: 1px solid $light-gray; color: $primary-color; } diff --git a/_sass/_utilities.scss b/_sass/minimal-mistakes/_utilities.scss similarity index 87% rename from _sass/_utilities.scss rename to _sass/minimal-mistakes/_utilities.scss index 687ceaf6..8502d263 100644 --- a/_sass/_utilities.scss +++ b/_sass/minimal-mistakes/_utilities.scss @@ -57,7 +57,7 @@ body:hover .visually-hidden button { background: #fff; z-index: 100000; text-decoration: none; - box-shadow: 0 0 2px 2px rgba(0,0,0,.6); + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); } @@ -114,7 +114,9 @@ body:hover .visually-hidden button { .cf { clear: both; } .wrapper { - @include container(); + margin-left: auto; + margin-right: auto; + width: 100%; } @@ -183,7 +185,7 @@ body:hover .visually-hidden button { .social-icons { .fa { - color: #000; + color: $text-color; } .fa-behance, @@ -191,6 +193,11 @@ body:hover .visually-hidden button { color: $behance-color; } + .fa-bitbucket, + .fa-bitbucket-square { + color: $bitbucket-color; + } + .fa-dribbble { color: $dribbble-color; } @@ -286,14 +293,15 @@ body:hover .visually-hidden button { /* - Navicons - ========================================================================== */ + Navicons + ========================================================================== */ .navicon { position: relative; width: $navicon-width; height: $navicon-height; - background: $primary-color; + top: ($navicon-height / 2); + background: $text-color; margin: auto; &:before, @@ -303,7 +311,7 @@ body:hover .visually-hidden button { left: 0; width: $navicon-width; height: $navicon-height; - background: $primary-color; + background: $text-color; } &:before { @@ -337,17 +345,18 @@ body:hover .visually-hidden button { transform: rotate3d(0,0,1,-45deg); } } - + /* - Langicons - ========================================================================== */ - + Langicons + ========================================================================== */ + .langicon { position: relative; width: $navicon-width; + display: inline-block; background: transparent; margin: auto; - color: $primary-color; + color: $text-color; &:before, &:after { @@ -356,30 +365,19 @@ body:hover .visually-hidden button { left: 0; width: $navicon-width; height: $navicon-height; - background: $primary-color; + background: $text-color; display: none; } - /* overlay the lines by setting both their top values to 0*/ - &:before, &:after{ - -webkit-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; - top: 0; - width: $navicon-width; + &:before { + top: (-2 * $navicon-height); } - /* rotate the lines to form the x shape*/ - &:before{ - -webkit-transform: rotate3d(0,0,1,45deg); - transform: rotate3d(0,0,1,45deg); - } - &:after{ - -webkit-transform: rotate3d(0,0,1,-45deg); - transform: rotate3d(0,0,1,-45deg); + &:after { + bottom: (-2 * $navicon-height); } } - + .close .langicon { /* hide the middle line*/ background: transparent; @@ -395,14 +393,23 @@ body:hover .visually-hidden button { -webkit-transform-origin: 50% 50%; -ms-transform-origin: 50% 50%; transform-origin: 50% 50%; - top: 0; width: $navicon-width; - display: block; - -webkit-transition: 0.3s; - transition: 0.3s; + display: inherit; + } + + /* rotate the lines to form the x shape*/ + &:before{ + -webkit-transform: rotate3d(0,0,1,45deg); + transform: rotate3d(0,0,1,45deg); + } + &:after{ + top: (-2 * $navicon-height); + -webkit-transform: rotate3d(0,0,1,-45deg); + transform: rotate3d(0,0,1,-45deg); } } + /* Sticky, fixed to top content ========================================================================== */ @@ -529,6 +536,48 @@ a.reversefootnote { } +/* + Google Custom Search Engine + ========================================================================== */ + +.gsc-control-cse { + + table, tr, td { + border: 0; /* remove table borders widget */ + } +} + +/* + Responsive Video Embed + ========================================================================== */ + +.responsive-video-container { + position: relative; + margin-bottom: 1em; + padding-bottom: 56.25%; + height: 0; + overflow: hidden; + max-width: 100%; + + iframe, + object, + embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } +} + +// full screen video fixes +:-webkit-full-screen-ancestor { + .masthead, + .page__footer { + position: static; + } +} + /* Ads ========================================================================== */ diff --git a/_sass/minimal-mistakes/_variables.scss b/_sass/minimal-mistakes/_variables.scss new file mode 100644 index 00000000..cf7b5d70 --- /dev/null +++ b/_sass/minimal-mistakes/_variables.scss @@ -0,0 +1,137 @@ +/* ========================================================================== + Variables + ========================================================================== */ + +/* + Typography + ========================================================================== */ + +$doc-font-size : 16 !default; + +/* paragraph indention */ +$paragraph-indent : false !default; // true, false (default) +$indent-var : 1.3em !default; + +/* system typefaces */ +$serif : Georgia, Times, serif !default; +$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif !default; +$monospace : Monaco, Consolas, "Lucida Console", monospace !default; + +/* sans serif typefaces */ +$sans-serif-narrow : $sans-serif !default; +$helvetica : Helvetica, "Helvetica Neue", Arial, sans-serif !default; + +/* serif typefaces */ +$georgia : Georgia, serif !default; +$times : Times, serif !default; +$bodoni : "Bodoni MT", serif !default; +$calisto : "Calisto MT", serif !default; +$garamond : Garamond, serif !default; + +$global-font-family : $sans-serif !default; +$header-font-family : $sans-serif !default; +$caption-font-family : $serif !default; + +/* type scale */ +$type-size-1 : 2.441em !default; // ~39.056px +$type-size-2 : 1.953em !default; // ~31.248px +$type-size-3 : 1.563em !default; // ~25.008px +$type-size-4 : 1.25em !default; // ~20px +$type-size-5 : 1em !default; +$type-size-6 : 0.75em !default; // ~12px +$type-size-7 : 0.6875em !default; // ~11px +$type-size-8 : 0.625em !default; // ~10px + + +/* + Colors + ========================================================================== */ + +$gray : #7a8288 !default; +$dark-gray : mix(#000, $gray, 40%) !default; +$darker-gray : mix(#000, $gray, 60%) !default; +$light-gray : mix(#fff, $gray, 50%) !default; +$lighter-gray : mix(#fff, $gray, 90%) !default; + +$background-color : #fff !default; +$code-background-color : #fafafa !default; +$code-background-color-dark : $light-gray !default; +$text-color : $dark-gray !default; +$muted-text-color : mix(#fff, $text-color, 35%) !default; +$border-color : $lighter-gray !default; +$form-background-color : $lighter-gray !default; +$footer-background-color : $lighter-gray !default; + +$primary-color : #88C0D0 !default; +$success-color : #A3BE8C !default; +$warning-color : #D08770 !default; +$danger-color : #BF616A !default; +$info-color : #5E81AC !default; + +/* YIQ color contrast */ +$yiq-contrasted-dark-default : $dark-gray !default; +$yiq-contrasted-light-default : #fff !default; +$yiq-contrasted-threshold : 175 !default; +$yiq-debug : false !default; + +/* brands */ +$behance-color : #1769FF !default; +$bitbucket-color : #205081 !default; +$dribbble-color : #ea4c89 !default; +$facebook-color : #3b5998 !default; +$flickr-color : #ff0084 !default; +$foursquare-color : #0072b1 !default; +$github-color : #171516 !default; +$google-plus-color : #dd4b39 !default; +$instagram-color : #517fa4 !default; +$lastfm-color : #d51007 !default; +$linkedin-color : #007bb6 !default; +$pinterest-color : #cb2027 !default; +$rss-color : #fa9b39 !default; +$soundcloud-color : #ff3300 !default; +$stackoverflow-color : #fe7a15 !default; +$tumblr-color : #32506d !default; +$twitter-color : #55acee !default; +$vimeo-color : #1ab7ea !default; +$vine-color : #00bf8f !default; +$youtube-color : #bb0000 !default; +$xing-color : #006567 !default; + +/* links */ +$link-color : mix(#fff, $info-color, 15%) !default; +$link-color-hover : mix(#fff, $link-color, 25%) !default; +$link-color-visited : mix(#000, $link-color, 25%) !default; +$masthead-link-color : $primary-color !default; +$masthead-link-color-hover : mix(#fff, $primary-color, 25%) !default; +$navicon-link-color-hover : mix(#fff, $primary-color, 75%) !default; + +/* + Breakpoints + ========================================================================== */ + +$small : 600px !default; +$medium : 768px !default; +$medium-wide : 900px !default; +$large : 1024px !default; +$x-large : 1280px !default; + + +/* + Grid + ========================================================================== */ + +$right-sidebar-width-narrow : 200px !default; +$right-sidebar-width : 300px !default; +$right-sidebar-width-wide : 400px !default; + + +/* + Other + ========================================================================== */ + +$border-radius : 4px !default; +$box-shadow : 0 1px 1px rgba(0, 0, 0, 0.125) !default; +$navicon-width : 1.3rem !default; +$navicon-height : 0.22rem !default; +$global-transition : all 0.2s ease-in-out !default; +$intro-transition : intro 0.3s both !default; diff --git a/_sass/minimal-mistakes/skins/_air.scss b/_sass/minimal-mistakes/skins/_air.scss new file mode 100644 index 00000000..bdbca84f --- /dev/null +++ b/_sass/minimal-mistakes/skins/_air.scss @@ -0,0 +1,23 @@ +/* ========================================================================== + Air skin + ========================================================================== */ + +/* Colors */ +$background-color: #eeeeee !default; +$text-color: #222831 !default; +$muted-text-color: #393e46 !default; +$primary-color: #0092ca !default; +$border-color: mix(#fff, #393e46, 75%) !default; +$footer-background-color: $primary-color !default; +$link-color: #393e46 !default; +$masthead-link-color: $text-color !default; +$masthead-link-color-hover: $text-color !default; +$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; + +.page__footer { + color: #fff !important; // override +} + +.page__footer-follow .social-icons .fa { + color: inherit; +} \ No newline at end of file diff --git a/_sass/minimal-mistakes/skins/_contrast.scss b/_sass/minimal-mistakes/skins/_contrast.scss new file mode 100644 index 00000000..431c7131 --- /dev/null +++ b/_sass/minimal-mistakes/skins/_contrast.scss @@ -0,0 +1,34 @@ +/* ========================================================================== + Contrast skin + ========================================================================== */ + +/* Colors */ +$text-color: #000 !default; +$muted-text-color: $text-color !default; +$primary-color: #ff0000 !default; +$border-color: mix(#fff, $text-color, 75%) !default; +$footer-background-color: #000 !default; +$link-color: #0000ff !default; +$masthead-link-color: $text-color !default; +$masthead-link-color-hover: $text-color !default; +$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; + +.page__content { + + .notice, + .notice--primary, + .notice--info, + .notice--warning, + .notice--success, + .notice--danger { + color: $text-color; + } +} + +.page__footer { + color: #fff !important; // override +} + +.page__footer-follow .social-icons .fa { + color: inherit; +} \ No newline at end of file diff --git a/_sass/minimal-mistakes/skins/_dark.scss b/_sass/minimal-mistakes/skins/_dark.scss new file mode 100644 index 00000000..8ccfc25b --- /dev/null +++ b/_sass/minimal-mistakes/skins/_dark.scss @@ -0,0 +1,24 @@ +/* ========================================================================== + Dark skin + ========================================================================== */ + +/* Colors */ +$background-color: #252a34 !default; +$text-color: #eaeaea !default; +$primary-color: #00adb5 !default; +$border-color: mix(#fff, $background-color, 20%) !default; +$code-background-color: mix(#000, $background-color, 15%) !default; +$code-background-color-dark: mix(#000, $background-color, 20%) !default; +$form-background-color: mix(#000, $background-color, 15%) !default; +$footer-background-color: mix(#000, $background-color, 30%) !default; +$link-color: mix($primary-color, $text-color, 40%) !default; +$link-color-hover: mix(#fff, $link-color, 25%) !default; +$link-color-visited: mix(#000, $link-color, 25%) !default; +$masthead-link-color: $text-color !default; +$masthead-link-color-hover: mix(#000, $text-color, 20%) !default; +$navicon-link-color-hover: mix(#000, $background-color, 30%) !default; + +.author__urls.social-icons .fa, +.page__footer-follow .social-icons .fa { + color: inherit; +} \ No newline at end of file diff --git a/_sass/minimal-mistakes/skins/_default.scss b/_sass/minimal-mistakes/skins/_default.scss new file mode 100644 index 00000000..7489b584 --- /dev/null +++ b/_sass/minimal-mistakes/skins/_default.scss @@ -0,0 +1,5 @@ +/* ========================================================================== + Default skin + ========================================================================== */ + +// Intentionally left blank diff --git a/_sass/minimal-mistakes/skins/_dirt.scss b/_sass/minimal-mistakes/skins/_dirt.scss new file mode 100644 index 00000000..e7993737 --- /dev/null +++ b/_sass/minimal-mistakes/skins/_dirt.scss @@ -0,0 +1,15 @@ +/* ========================================================================== + Dirt skin + ========================================================================== */ + +/* Colors */ +$background-color: #f3f3f3 !default; +$text-color: #343434 !default; +$muted-text-color: #8e8b82 !default; +$primary-color: #343434 !default; +$border-color: #e9dcbe !default; +$footer-background-color: #e9dcbe !default; +$link-color: #343434 !default; +$masthead-link-color: $text-color !default; +$masthead-link-color-hover: $text-color !default; +$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; \ No newline at end of file diff --git a/_sass/minimal-mistakes/skins/_mint.scss b/_sass/minimal-mistakes/skins/_mint.scss new file mode 100644 index 00000000..d0e86c8f --- /dev/null +++ b/_sass/minimal-mistakes/skins/_mint.scss @@ -0,0 +1,23 @@ +/* ========================================================================== + Mint skin + ========================================================================== */ + +/* Colors */ +$background-color: #f3f6f6 !default; +$text-color: #40514e !default; +$muted-text-color: #40514e !default; +$primary-color: #11999e !default; +$border-color: mix(#fff, #40514e, 75%) !default; +$footer-background-color: #30e3ca !default; +$link-color: #11999e !default; +$masthead-link-color: $text-color !default; +$masthead-link-color-hover: $text-color !default; +$navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; + +.page__footer { + color: #fff !important; // override +} + +.page__footer-follow .social-icons .fa { + color: inherit; +} \ No newline at end of file diff --git a/_sass/minimal-mistakes/skins/_nord.scss b/_sass/minimal-mistakes/skins/_nord.scss new file mode 100644 index 00000000..f540171a --- /dev/null +++ b/_sass/minimal-mistakes/skins/_nord.scss @@ -0,0 +1,24 @@ +/* ========================================================================== + Nord skin + ========================================================================== */ + +/* Colors */ +$background-color: #2E3440 !default; +$text-color: #D8DEE9 !default; +$primary-color: #88C0D0 !default; +$border-color: mix(#fff, $background-color, 20%) !default; +$code-background-color: mix(#000, $background-color, 15%) !default; +$code-background-color-dark: mix(#000, $background-color, 20%) !default; +$form-background-color: mix(#000, $background-color, 15%) !default; +$footer-background-color: mix(#000, $background-color, 30%) !default; +$link-color: mix($primary-color, $text-color, 40%) !default; +$link-color-hover: mix(#fff, $link-color, 25%) !default; +$link-color-visited: mix(#000, $link-color, 25%) !default; +$masthead-link-color: $text-color !default; +$masthead-link-color-hover: mix(#000, $text-color, 20%) !default; +$navicon-link-color-hover: mix(#000, $background-color, 30%) !default; + +.author__urls.social-icons .fa, +.page__footer-follow .social-icons .fa { + color: inherit; +} \ No newline at end of file diff --git a/_sass/minimal-mistakes/skins/_sunrise.scss b/_sass/minimal-mistakes/skins/_sunrise.scss new file mode 100644 index 00000000..9c3c4d08 --- /dev/null +++ b/_sass/minimal-mistakes/skins/_sunrise.scss @@ -0,0 +1,26 @@ +/* ========================================================================== + Sunrise skin + ========================================================================== */ + +/* Colors */ +$dark-gray: #0e2431 !default; +$background-color: #e8d5b7 !default; +$text-color: #000 !default; +$muted-text-color: $dark-gray !default; +$primary-color: #fc3a52 !default; +$border-color: mix(#000, $background-color, 20%) !default; +$code-background-color: mix(#fff, $background-color, 20%) !default; +$code-background-color-dark: mix(#000, $background-color, 10%) !default; +$form-background-color: mix(#fff, $background-color, 15%) !default; +$footer-background-color: #f9b248 !default; +$link-color: mix(#000, $primary-color, 10%) !default; +$link-color-hover: mix(#fff, $link-color, 25%) !default; +$link-color-visited: mix(#000, $link-color, 25%) !default; +$masthead-link-color: $text-color !default; +$masthead-link-color-hover: mix(#000, $text-color, 20%) !default; +$navicon-link-color-hover: mix(#000, $background-color, 30%) !default; + +.author__urls.social-icons .fa, +.page__footer-follow .social-icons .fa { + color: inherit; +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/_breakpoint.scss b/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss similarity index 100% rename from _sass/vendor/breakpoint/_breakpoint.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss diff --git a/_sass/vendor/breakpoint/_context.scss b/_sass/minimal-mistakes/vendor/breakpoint/_context.scss similarity index 100% rename from _sass/vendor/breakpoint/_context.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_context.scss diff --git a/_sass/vendor/breakpoint/_helpers.scss b/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss similarity index 100% rename from _sass/vendor/breakpoint/_helpers.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_helpers.scss diff --git a/_sass/vendor/breakpoint/_legacy-settings.scss b/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss similarity index 100% rename from _sass/vendor/breakpoint/_legacy-settings.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss diff --git a/_sass/vendor/breakpoint/_no-query.scss b/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss similarity index 100% rename from _sass/vendor/breakpoint/_no-query.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_no-query.scss diff --git a/_sass/vendor/breakpoint/_parsers.scss b/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss similarity index 100% rename from _sass/vendor/breakpoint/_parsers.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_parsers.scss diff --git a/_sass/vendor/breakpoint/_respond-to.scss b/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss similarity index 100% rename from _sass/vendor/breakpoint/_respond-to.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss diff --git a/_sass/vendor/breakpoint/_settings.scss b/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss similarity index 100% rename from _sass/vendor/breakpoint/_settings.scss rename to _sass/minimal-mistakes/vendor/breakpoint/_settings.scss diff --git a/_sass/vendor/breakpoint/parsers/_double.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/_double.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss diff --git a/_sass/vendor/breakpoint/parsers/_query.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/_query.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss diff --git a/_sass/vendor/breakpoint/parsers/_resolution.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/_resolution.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss diff --git a/_sass/vendor/breakpoint/parsers/_single.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/_single.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss diff --git a/_sass/vendor/breakpoint/parsers/_triple.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/_triple.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss diff --git a/_sass/vendor/breakpoint/parsers/double/_default-pair.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/double/_default-pair.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss diff --git a/_sass/vendor/breakpoint/parsers/double/_default.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/double/_default.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss diff --git a/_sass/vendor/breakpoint/parsers/double/_double-string.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/double/_double-string.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss diff --git a/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/resolution/_resolution.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss diff --git a/_sass/vendor/breakpoint/parsers/single/_default.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/single/_default.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss diff --git a/_sass/vendor/breakpoint/parsers/triple/_default.scss b/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss similarity index 100% rename from _sass/vendor/breakpoint/parsers/triple/_default.scss rename to _sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss diff --git a/_sass/vendor/font-awesome/_animated.scss b/_sass/minimal-mistakes/vendor/font-awesome/_animated.scss similarity index 100% rename from _sass/vendor/font-awesome/_animated.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_animated.scss diff --git a/_sass/vendor/font-awesome/_bordered-pulled.scss b/_sass/minimal-mistakes/vendor/font-awesome/_bordered-pulled.scss similarity index 100% rename from _sass/vendor/font-awesome/_bordered-pulled.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_bordered-pulled.scss diff --git a/_sass/vendor/font-awesome/_core.scss b/_sass/minimal-mistakes/vendor/font-awesome/_core.scss similarity index 100% rename from _sass/vendor/font-awesome/_core.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_core.scss diff --git a/_sass/vendor/font-awesome/_fixed-width.scss b/_sass/minimal-mistakes/vendor/font-awesome/_fixed-width.scss similarity index 100% rename from _sass/vendor/font-awesome/_fixed-width.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_fixed-width.scss diff --git a/_sass/vendor/font-awesome/_font-awesome.scss b/_sass/minimal-mistakes/vendor/font-awesome/_font-awesome.scss similarity index 85% rename from _sass/vendor/font-awesome/_font-awesome.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_font-awesome.scss index 2308b14c..f1c83aaa 100644 --- a/_sass/vendor/font-awesome/_font-awesome.scss +++ b/_sass/minimal-mistakes/vendor/font-awesome/_font-awesome.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ diff --git a/_sass/vendor/font-awesome/_icons.scss b/_sass/minimal-mistakes/vendor/font-awesome/_icons.scss similarity index 93% rename from _sass/vendor/font-awesome/_icons.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_icons.scss index 29443443..e63e702c 100644 --- a/_sass/vendor/font-awesome/_icons.scss +++ b/_sass/minimal-mistakes/vendor/font-awesome/_icons.scss @@ -605,6 +605,7 @@ .#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } .#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } .#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery:before, .#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } .#{$fa-css-prefix}-battery-3:before, .#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } @@ -731,3 +732,58 @@ .#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } .#{$fa-css-prefix}-fa:before, .#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } +.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } +.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } +.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } +.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } +.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } +.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } +.#{$fa-css-prefix}-vcard:before, +.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } +.#{$fa-css-prefix}-vcard-o:before, +.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } +.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } +.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } +.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } +.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } +.#{$fa-css-prefix}-drivers-license:before, +.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } +.#{$fa-css-prefix}-drivers-license-o:before, +.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } +.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } +.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } +.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } +.#{$fa-css-prefix}-thermometer-4:before, +.#{$fa-css-prefix}-thermometer:before, +.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } +.#{$fa-css-prefix}-thermometer-3:before, +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } +.#{$fa-css-prefix}-thermometer-2:before, +.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } +.#{$fa-css-prefix}-thermometer-1:before, +.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } +.#{$fa-css-prefix}-thermometer-0:before, +.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } +.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } +.#{$fa-css-prefix}-bathtub:before, +.#{$fa-css-prefix}-s15:before, +.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } +.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } +.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } +.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } +.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } +.#{$fa-css-prefix}-times-rectangle:before, +.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } +.#{$fa-css-prefix}-times-rectangle-o:before, +.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } +.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } +.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } +.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } +.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } +.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } +.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } +.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } +.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } +.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } +.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } +.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/_sass/vendor/font-awesome/_larger.scss b/_sass/minimal-mistakes/vendor/font-awesome/_larger.scss similarity index 100% rename from _sass/vendor/font-awesome/_larger.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_larger.scss diff --git a/_sass/vendor/font-awesome/_list.scss b/_sass/minimal-mistakes/vendor/font-awesome/_list.scss similarity index 100% rename from _sass/vendor/font-awesome/_list.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_list.scss diff --git a/_sass/vendor/font-awesome/_mixins.scss b/_sass/minimal-mistakes/vendor/font-awesome/_mixins.scss similarity index 100% rename from _sass/vendor/font-awesome/_mixins.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_mixins.scss diff --git a/_sass/vendor/font-awesome/_path.scss b/_sass/minimal-mistakes/vendor/font-awesome/_path.scss similarity index 100% rename from _sass/vendor/font-awesome/_path.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_path.scss diff --git a/_sass/vendor/font-awesome/_rotated-flipped.scss b/_sass/minimal-mistakes/vendor/font-awesome/_rotated-flipped.scss similarity index 100% rename from _sass/vendor/font-awesome/_rotated-flipped.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_rotated-flipped.scss diff --git a/_sass/vendor/font-awesome/_screen-reader.scss b/_sass/minimal-mistakes/vendor/font-awesome/_screen-reader.scss similarity index 100% rename from _sass/vendor/font-awesome/_screen-reader.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_screen-reader.scss diff --git a/_sass/vendor/font-awesome/_stacked.scss b/_sass/minimal-mistakes/vendor/font-awesome/_stacked.scss similarity index 100% rename from _sass/vendor/font-awesome/_stacked.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_stacked.scss diff --git a/_sass/vendor/font-awesome/_variables.scss b/_sass/minimal-mistakes/vendor/font-awesome/_variables.scss similarity index 92% rename from _sass/vendor/font-awesome/_variables.scss rename to _sass/minimal-mistakes/vendor/font-awesome/_variables.scss index a5a89ef9..498fc4a0 100644 --- a/_sass/vendor/font-awesome/_variables.scss +++ b/_sass/minimal-mistakes/vendor/font-awesome/_variables.scss @@ -4,14 +4,18 @@ $fa-font-path: "../fonts" !default; $fa-font-size-base: 14px !default; $fa-line-height-base: 1 !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts" !default; // for referencing Bootstrap CDN font files directly +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly $fa-css-prefix: fa !default; -$fa-version: "4.6.3" !default; +$fa-version: "4.7.0" !default; $fa-border-color: #eee !default; $fa-inverse: #fff !default; $fa-li-width: (30em / 14) !default; $fa-var-500px: "\f26e"; +$fa-var-address-book: "\f2b9"; +$fa-var-address-book-o: "\f2ba"; +$fa-var-address-card: "\f2bb"; +$fa-var-address-card-o: "\f2bc"; $fa-var-adjust: "\f042"; $fa-var-adn: "\f170"; $fa-var-align-center: "\f037"; @@ -60,11 +64,15 @@ $fa-var-automobile: "\f1b9"; $fa-var-backward: "\f04a"; $fa-var-balance-scale: "\f24e"; $fa-var-ban: "\f05e"; +$fa-var-bandcamp: "\f2d5"; $fa-var-bank: "\f19c"; $fa-var-bar-chart: "\f080"; $fa-var-bar-chart-o: "\f080"; $fa-var-barcode: "\f02a"; $fa-var-bars: "\f0c9"; +$fa-var-bath: "\f2cd"; +$fa-var-bathtub: "\f2cd"; +$fa-var-battery: "\f240"; $fa-var-battery-0: "\f244"; $fa-var-battery-1: "\f243"; $fa-var-battery-2: "\f242"; @@ -214,19 +222,25 @@ $fa-var-dollar: "\f155"; $fa-var-dot-circle-o: "\f192"; $fa-var-download: "\f019"; $fa-var-dribbble: "\f17d"; +$fa-var-drivers-license: "\f2c2"; +$fa-var-drivers-license-o: "\f2c3"; $fa-var-dropbox: "\f16b"; $fa-var-drupal: "\f1a9"; $fa-var-edge: "\f282"; $fa-var-edit: "\f044"; +$fa-var-eercast: "\f2da"; $fa-var-eject: "\f052"; $fa-var-ellipsis-h: "\f141"; $fa-var-ellipsis-v: "\f142"; $fa-var-empire: "\f1d1"; $fa-var-envelope: "\f0e0"; $fa-var-envelope-o: "\f003"; +$fa-var-envelope-open: "\f2b6"; +$fa-var-envelope-open-o: "\f2b7"; $fa-var-envelope-square: "\f199"; $fa-var-envira: "\f299"; $fa-var-eraser: "\f12d"; +$fa-var-etsy: "\f2d7"; $fa-var-eur: "\f153"; $fa-var-euro: "\f153"; $fa-var-exchange: "\f0ec"; @@ -294,6 +308,7 @@ $fa-var-fort-awesome: "\f286"; $fa-var-forumbee: "\f211"; $fa-var-forward: "\f04e"; $fa-var-foursquare: "\f180"; +$fa-var-free-code-camp: "\f2c5"; $fa-var-frown-o: "\f119"; $fa-var-futbol-o: "\f1e3"; $fa-var-gamepad: "\f11b"; @@ -326,6 +341,7 @@ $fa-var-google-plus-square: "\f0d4"; $fa-var-google-wallet: "\f1ee"; $fa-var-graduation-cap: "\f19d"; $fa-var-gratipay: "\f184"; +$fa-var-grav: "\f2d6"; $fa-var-group: "\f0c0"; $fa-var-h-square: "\f0fd"; $fa-var-hacker-news: "\f1d4"; @@ -342,6 +358,7 @@ $fa-var-hand-rock-o: "\f255"; $fa-var-hand-scissors-o: "\f257"; $fa-var-hand-spock-o: "\f259"; $fa-var-hand-stop-o: "\f256"; +$fa-var-handshake-o: "\f2b5"; $fa-var-hard-of-hearing: "\f2a4"; $fa-var-hashtag: "\f292"; $fa-var-hdd-o: "\f0a0"; @@ -365,8 +382,12 @@ $fa-var-hourglass-start: "\f251"; $fa-var-houzz: "\f27c"; $fa-var-html5: "\f13b"; $fa-var-i-cursor: "\f246"; +$fa-var-id-badge: "\f2c1"; +$fa-var-id-card: "\f2c2"; +$fa-var-id-card-o: "\f2c3"; $fa-var-ils: "\f20b"; $fa-var-image: "\f03e"; +$fa-var-imdb: "\f2d8"; $fa-var-inbox: "\f01c"; $fa-var-indent: "\f03c"; $fa-var-industry: "\f275"; @@ -404,6 +425,7 @@ $fa-var-line-chart: "\f201"; $fa-var-link: "\f0c1"; $fa-var-linkedin: "\f0e1"; $fa-var-linkedin-square: "\f08c"; +$fa-var-linode: "\f2b8"; $fa-var-linux: "\f17c"; $fa-var-list: "\f03a"; $fa-var-list-alt: "\f022"; @@ -436,8 +458,10 @@ $fa-var-maxcdn: "\f136"; $fa-var-meanpath: "\f20c"; $fa-var-medium: "\f23a"; $fa-var-medkit: "\f0fa"; +$fa-var-meetup: "\f2e0"; $fa-var-meh-o: "\f11a"; $fa-var-mercury: "\f223"; +$fa-var-microchip: "\f2db"; $fa-var-microphone: "\f130"; $fa-var-microphone-slash: "\f131"; $fa-var-minus: "\f068"; @@ -502,6 +526,7 @@ $fa-var-plus: "\f067"; $fa-var-plus-circle: "\f055"; $fa-var-plus-square: "\f0fe"; $fa-var-plus-square-o: "\f196"; +$fa-var-podcast: "\f2ce"; $fa-var-power-off: "\f011"; $fa-var-print: "\f02f"; $fa-var-product-hunt: "\f288"; @@ -511,10 +536,12 @@ $fa-var-qrcode: "\f029"; $fa-var-question: "\f128"; $fa-var-question-circle: "\f059"; $fa-var-question-circle-o: "\f29c"; +$fa-var-quora: "\f2c4"; $fa-var-quote-left: "\f10d"; $fa-var-quote-right: "\f10e"; $fa-var-ra: "\f1d0"; $fa-var-random: "\f074"; +$fa-var-ravelry: "\f2d9"; $fa-var-rebel: "\f1d0"; $fa-var-recycle: "\f1b8"; $fa-var-reddit: "\f1a1"; @@ -541,6 +568,7 @@ $fa-var-rss-square: "\f143"; $fa-var-rub: "\f158"; $fa-var-ruble: "\f158"; $fa-var-rupee: "\f156"; +$fa-var-s15: "\f2cd"; $fa-var-safari: "\f267"; $fa-var-save: "\f0c7"; $fa-var-scissors: "\f0c4"; @@ -565,6 +593,7 @@ $fa-var-shirtsinbulk: "\f214"; $fa-var-shopping-bag: "\f290"; $fa-var-shopping-basket: "\f291"; $fa-var-shopping-cart: "\f07a"; +$fa-var-shower: "\f2cc"; $fa-var-sign-in: "\f090"; $fa-var-sign-language: "\f2a7"; $fa-var-sign-out: "\f08b"; @@ -581,6 +610,7 @@ $fa-var-smile-o: "\f118"; $fa-var-snapchat: "\f2ab"; $fa-var-snapchat-ghost: "\f2ac"; $fa-var-snapchat-square: "\f2ad"; +$fa-var-snowflake-o: "\f2dc"; $fa-var-soccer-ball-o: "\f1e3"; $fa-var-sort: "\f0dc"; $fa-var-sort-alpha-asc: "\f15d"; @@ -626,6 +656,7 @@ $fa-var-subscript: "\f12c"; $fa-var-subway: "\f239"; $fa-var-suitcase: "\f0f2"; $fa-var-sun-o: "\f185"; +$fa-var-superpowers: "\f2dd"; $fa-var-superscript: "\f12b"; $fa-var-support: "\f1cd"; $fa-var-table: "\f0ce"; @@ -635,6 +666,7 @@ $fa-var-tag: "\f02b"; $fa-var-tags: "\f02c"; $fa-var-tasks: "\f0ae"; $fa-var-taxi: "\f1ba"; +$fa-var-telegram: "\f2c6"; $fa-var-television: "\f26c"; $fa-var-tencent-weibo: "\f1d5"; $fa-var-terminal: "\f120"; @@ -644,6 +676,17 @@ $fa-var-th: "\f00a"; $fa-var-th-large: "\f009"; $fa-var-th-list: "\f00b"; $fa-var-themeisle: "\f2b2"; +$fa-var-thermometer: "\f2c7"; +$fa-var-thermometer-0: "\f2cb"; +$fa-var-thermometer-1: "\f2ca"; +$fa-var-thermometer-2: "\f2c9"; +$fa-var-thermometer-3: "\f2c8"; +$fa-var-thermometer-4: "\f2c7"; +$fa-var-thermometer-empty: "\f2cb"; +$fa-var-thermometer-full: "\f2c7"; +$fa-var-thermometer-half: "\f2c9"; +$fa-var-thermometer-quarter: "\f2ca"; +$fa-var-thermometer-three-quarters: "\f2c8"; $fa-var-thumb-tack: "\f08d"; $fa-var-thumbs-down: "\f165"; $fa-var-thumbs-o-down: "\f088"; @@ -653,6 +696,8 @@ $fa-var-ticket: "\f145"; $fa-var-times: "\f00d"; $fa-var-times-circle: "\f057"; $fa-var-times-circle-o: "\f05c"; +$fa-var-times-rectangle: "\f2d3"; +$fa-var-times-rectangle-o: "\f2d4"; $fa-var-tint: "\f043"; $fa-var-toggle-down: "\f150"; $fa-var-toggle-left: "\f191"; @@ -693,11 +738,16 @@ $fa-var-upload: "\f093"; $fa-var-usb: "\f287"; $fa-var-usd: "\f155"; $fa-var-user: "\f007"; +$fa-var-user-circle: "\f2bd"; +$fa-var-user-circle-o: "\f2be"; $fa-var-user-md: "\f0f0"; +$fa-var-user-o: "\f2c0"; $fa-var-user-plus: "\f234"; $fa-var-user-secret: "\f21b"; $fa-var-user-times: "\f235"; $fa-var-users: "\f0c0"; +$fa-var-vcard: "\f2bb"; +$fa-var-vcard-o: "\f2bc"; $fa-var-venus: "\f221"; $fa-var-venus-double: "\f226"; $fa-var-venus-mars: "\f228"; @@ -722,10 +772,16 @@ $fa-var-wheelchair: "\f193"; $fa-var-wheelchair-alt: "\f29b"; $fa-var-wifi: "\f1eb"; $fa-var-wikipedia-w: "\f266"; +$fa-var-window-close: "\f2d3"; +$fa-var-window-close-o: "\f2d4"; +$fa-var-window-maximize: "\f2d0"; +$fa-var-window-minimize: "\f2d1"; +$fa-var-window-restore: "\f2d2"; $fa-var-windows: "\f17a"; $fa-var-won: "\f159"; $fa-var-wordpress: "\f19a"; $fa-var-wpbeginner: "\f297"; +$fa-var-wpexplorer: "\f2de"; $fa-var-wpforms: "\f298"; $fa-var-wrench: "\f0ad"; $fa-var-xing: "\f168"; diff --git a/_sass/vendor/magnific-popup/_magnific-popup.scss b/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss similarity index 100% rename from _sass/vendor/magnific-popup/_magnific-popup.scss rename to _sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss diff --git a/_sass/vendor/magnific-popup/_settings.scss b/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss similarity index 98% rename from _sass/vendor/magnific-popup/_settings.scss rename to _sass/minimal-mistakes/vendor/magnific-popup/_settings.scss index caaca026..e7866b3f 100644 --- a/_sass/vendor/magnific-popup/_settings.scss +++ b/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss @@ -43,4 +43,4 @@ $mfp-caption-subtitle-color: #bdbdbd; // Caption sub .mfp-counter { font-family: $serif; } // Caption font family // A11y -$mfp-use-visuallyhidden: false; +$mfp-use-visuallyhidden: false; \ No newline at end of file diff --git a/_sass/vendor/susy/_su.scss b/_sass/minimal-mistakes/vendor/susy/_su.scss similarity index 100% rename from _sass/vendor/susy/_su.scss rename to _sass/minimal-mistakes/vendor/susy/_su.scss diff --git a/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss b/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss new file mode 100644 index 00000000..185b3561 --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss @@ -0,0 +1,13 @@ +// Susy (Prefixed) +// =============== + +$susy-version: 3; + +@import 'susy/utilities'; +@import 'susy/su-validate'; +@import 'susy/su-math'; +@import 'susy/settings'; +@import 'susy/normalize'; +@import 'susy/parse'; +@import 'susy/syntax-helpers'; +@import 'susy/api'; diff --git a/_sass/minimal-mistakes/vendor/susy/_susy.scss b/_sass/minimal-mistakes/vendor/susy/_susy.scss new file mode 100644 index 00000000..bfda3d08 --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/_susy.scss @@ -0,0 +1,5 @@ +// Susy (Un-Prefixed) +// ================== + +@import 'susy-prefix'; +@import 'susy/unprefix'; diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss b/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss new file mode 100644 index 00000000..99db8d1e --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss @@ -0,0 +1,5 @@ +// SVG Grid Background +// =================== + +@import 'svg-grid/prefix'; +@import 'svg-grid/svg-unprefix'; diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss new file mode 100644 index 00000000..21fb45fa --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss @@ -0,0 +1,7 @@ +// Prefixed SVG Plugin +// =================== + +@import 'svg-settings'; +@import 'svg-utilities'; +@import 'svg-grid-math'; +@import 'svg-api'; diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss new file mode 100644 index 00000000..7d880e3e --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss @@ -0,0 +1,114 @@ +/// Plugin: SVG Grid Image +/// ====================== +/// @group plugin_svg-grid +/// @see susy-svg-grid + + + +/// ## Overview +/// If you want to generate svg-backgrounds +/// for help visualizing and debugging your grids, +/// import the SVG Grid Plugin. +/// +/// The plugin adds `svg-grid-colors` setting +/// to your global defaults, +/// which you can override in `$susy`. +/// It also provides you with a new function, +/// `susy-svg-grid()`, +/// which will return inline svg for use in +/// backgrounds or generated content. +/// +/// This function come with an unprefixed alias by default, +/// using the `svg-grid` import. +/// If you only only want prefixed versions of the API, +/// import the `svg-grid/prefix` partial instead. +/// +/// @group plugin_svg-grid +/// +/// @example scss - importing the plugin +/// // The full path to import Susy will depend on your setup… +/// +/// // unprefixed +/// @import 'plugins/svg-grid'; +/// +/// // prefixed +/// @import 'plugins/svg-grid/prefix'; +/// +/// @example scss - generating background grids +/// .grid { +/// background: susy-svg-grid() no-repeat scroll; +/// } + + + +// SVG Grid +// -------- +/// Return inline svg-data in to display the grid. +/// +/// @group plugin_svg-grid +/// +/// @param {Map | List} $grid [$susy] - +/// Map or shorthand defining the current grid +/// @param {Color | List | null} $colors [null] - +/// Column color, or list of colors for column-gradient, +/// used to override the global `svg-grid-colors` setting +/// @param {Length | null} $offset [null] - +/// Manually override the default grid-image offset, +/// to account for grid edges +/// +/// @return {String} - +/// CSS inline-data SVG string, in `url()` format, +/// for use in image or content properties +/// @example scss +/// .grid { +/// background: susy-svg-grid() no-repeat scroll; +/// } +@function susy-svg-grid( + $grid: $susy, + $colors: null, + $offset: null +) { + // Grid parsing & normalizing + $grid: susy-compile($grid, $context-only: true); + + // Color and gradient handling + $gradient: ''; + + @if (not $colors) { + $colors: susy-get('svg-grid-colors'); + } + + @if length($colors) > 1 { + $gradient: _susy-svg-gradient($colors); + $colors: 'url(%23susy-svg-gradient)'; + } @else { + $colors: _susy-svg-color($colors); + } + + // Get a default image-width + $span: ( + 'span': map-get($grid, 'columns'), + 'spread': map-get($grid, 'container-spread'), + ); + $span: map-merge($grid, $span); + $image-width: su-call('su-span', $span); + $image-width: if((type-of($image-width) == 'number'), $image-width, 100%); + + // SVG construction + $columns: map-get($grid, 'columns'); + $offset: $offset or _susy-svg-offset($grid); + + $attrs: 'fill="#{$colors}" width="#{$image-width}"'; + $svg: 'data:image/svg+xml,'; + $svg: $svg + '%3Csvg xmlns="http://www.w3.org/2000/svg" #{$attrs} %3E'; + $svg: $svg + $gradient; + + @for $column from 1 through length($columns) { + $width: susy-span(1 narrow at $column, $grid); + $x: _susy-svg-column-position($column, $grid); + + $svg: $svg + _susy-svg-rect($x, $width, $offset); + } + + @return url('#{$svg}%3C/svg%3E'); +} diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss new file mode 100644 index 00000000..044801ab --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss @@ -0,0 +1,67 @@ +// SVG Grid Math +// ============= + + + +// SVG Column Position +// ------------------- +/// Determine the proper horizontal position +/// for a column rectangle +/// +/// @access private +/// +/// @param {Integer} $column - +/// 1-indexed column location on the grid +/// @param {Map} $grid - +/// Normalized settings map representing the current grid +/// +/// @return {Length} - +/// Horizontal position of svg column rectangle, +/// as distance from the grid edge +@function _susy-svg-column-position( + $column, + $grid +) { + $x: $column - 1; + + @if ($x > 0) { + $x: susy-span(first $x wide, $grid); + } + + @return $x; +} + + + +// SVG Offset +// ---------- +/// Determine if a grid image needs to be offset, +/// to account for edge gutters. +/// +/// @access private +/// +/// @param {Map} $grid - +/// Normalized settings map representing the current grid +/// +/// @return {Length | null} - +/// Expected distance from container edge to first column, +/// based on spread values and gutter-widths +@function _susy-svg-offset( + $grid +) { + $columns: su-valid-columns(map-get($grid, 'columns')); + $gutters: su-valid-gutters(map-get($grid, 'gutters')); + $container: su-valid-spread(map-get($grid, 'container-spread')) + 1; + + @if ($container == 0) { + @return null; + } + + $gutter: su-call('su-gutter', $grid); + + @if (type-of($gutter) == 'string') { + @return 'calc(#{$container} * #{$gutter} / 2)'; + } + + @return $container * $gutter / 2; +} diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss new file mode 100644 index 00000000..3fcc91fb --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss @@ -0,0 +1,14 @@ +// SVG Settings +// ============ + + +// Susy SVG Defaults +// ================= +/// This plugin adds the `svg-grid-colors` property +/// and default value to `$_susy-defaults` — +/// you can override that value in `$susy` +/// or any other grid settings map. +/// @group plugin_svg-grid +$_susy-defaults: map-merge(( + 'svg-grid-colors': hsla(120, 50%, 50%, 0.5) hsla(120, 50%, 75%, 0.5), + ), $_susy-defaults); diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss new file mode 100644 index 00000000..187157cf --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss @@ -0,0 +1,18 @@ +// Unprefix Susy SVG Grid +// ====================== + + + +// SVG Grid +// -------- +/// Un-prefixed alias for `susy-svg-grid` +/// +/// @group plugin_svg-grid +/// @alias susy-svg-grid +@function svg-grid( + $grid: $susy, + $colors: susy-get('svg-grid-colors'), + $offset: null +) { + @return susy-svg-grid($grid, $colors, $offset); +} diff --git a/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss new file mode 100644 index 00000000..e4bf18ff --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss @@ -0,0 +1,133 @@ +// SVG Utilities +// ============= + + + +// SVG Validate Units +// ------------------ +/// Make sure a length is supported in svg +/// +/// @access private +/// +/// @param {Length} $length - +/// The length to validate +/// @param {String} $name [null] - +/// Optional name of length origin, +/// for error reporting +/// +/// @return {Length} - +/// An svg-validated length, or comparable valid length +@function _susy-svg-validate-units( + $length, + $name: null +) { + $_svg-units: ('em', 'ex', 'px', 'pt', 'pc', 'cm', 'mm', 'in', '%'); + $string: type-of($length) == 'string'; + + @if ($length == 0) or ($string) or index($_svg-units, unit($length)) { + @return $length; + } + + @return _susy-error( + '`#{unit($length)}` #{$name} units are not supported in SVG', + '_susy-svg-validate-units'); +} + + + +// SVG Rect +// -------- +/// Build a single svg rectangle +/// +/// @access private +/// +/// @param {Length} $x - +/// Horizontal position for the rectangle +/// @param {Length} $width - +/// Width of the rectangle +/// @param {Length} $offset [null] - +/// Offset the rectangle, to account for edge gutters +/// +/// @return {String} - +/// Escaped string representing one svg rectangle +@function _susy-svg-rect( + $x, + $width, + $offset: null +) { + $x: _susy-svg-validate-units($x); + $width: _susy-svg-validate-units($width); + $offset: if($offset == 0, null, $offset); + + @if (type-of($offset) == 'number') and (type-of($x) == 'number') { + @if comparable($x, $offset) { + $x: $x + $offset; + } @else { + $x: 'calc(#{$x} + #{$offset})'; + } + } @else if $offset and ($x != 0) { + $x: 'calc(#{$x} + #{$offset})'; + } @else if $offset { + $x: $offset; + } + + @return '%3Crect x="#{$x}" width="#{$width}" height="100%"/%3E'; +} + + + +// SVG Color +// --------- +/// Stringify colors, and escape hex symbol +/// +/// @access private +/// +/// @param {Color} $color - +/// Color to stringify and escape +/// +/// @return {String} - +/// Escaped string value of color +@function _susy-svg-color( + $color +) { + $color: inspect($color); // convert to string + + @if (str-index($color, '#') == 1) { + $color: '%23' + str-slice($color, 2); + } + + @return $color; +} + + + +// SVG Gradient +// ------------ +/// Create a multi-color svg gradient +/// +/// @access private +/// +/// @param {List} $colors - +/// List of colors to be equally spaced from `0%` to `100%` +/// in each column rectangle +/// +/// @return {String} - +/// Escaped string representing one svg gradient +/// (`id="susy-svg-gradient"`) +@function _susy-svg-gradient( + $colors +) { + $gradient: '%3Cdefs%3E%3ClinearGradient spreadMethod="pad"'; + $gradient: '#{$gradient} id="susy-svg-gradient"'; + $gradient: '#{$gradient} x1="0%" y1="0%" x2="100%" y2="0%"%3E'; + + @for $i from 1 through length($colors) { + $color: _susy-svg-color(nth($colors, $i)); + $offset: percentage(($i - 1) / (length($colors) - 1)); + $stop: '%3Cstop offset="#{$offset}" style="stop-color:#{$color};" /%3E'; + + $gradient: $gradient + $stop; + } + + @return $gradient + '%3C/linearGradient%3E%3C/defs%3E'; +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_api.scss b/_sass/minimal-mistakes/vendor/susy/susy/_api.scss new file mode 100644 index 00000000..de8c9bdd --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_api.scss @@ -0,0 +1,318 @@ +/// Susy3 API Functions +/// =================== +/// These three functions form the core of Susy's +/// layout-building grid API. +/// +/// - Use `span()` and `gutter()` to return any grid-width, +/// and apply the results wherever you need them: +/// CSS `width`, `margin`, `padding`, `flex-basis`, `transform`, etc. +/// - For asymmetrical-fluid grids, +/// `slice()` can help manage your nesting context. +/// +/// All three functions come with an unprefixed alias by default, +/// using the `susy` import. +/// Import the `susy-prefix` partial instead, +/// if you only only want prefixed versions of the API. +/// +/// This is a thin syntax-sugar shell around +/// the "Su" core-math functions: `su-span`, `su-gutter`, and `su-slice`. +/// If you prefer the more constrained syntax of the math engine, +/// you are welcome to use those functions instead. +/// +/// @group b-api +/// @see susy-span +/// @see susy-gutter +/// @see susy-slice +/// @see su-span +/// @see su-gutter +/// @see su-slice + + + +/// ## Shorthand +/// +/// All functions draw on the same shorthand syntax in two parts, +/// seperated by the word `of`. +/// +/// ### Span Syntax: `` [`` ``] +/// The first part describes the +/// **span** width, location, and spread in any order. +/// Only the width is required: +/// +/// - `span(2)` will return the width of 2 columns. +/// - `span(3 wide)` will return 3-columns, with an additional gutter. +/// - location is only needed with asymmetrical grids, +/// where `span(3 at 2)` will return the width of +/// specific columns on the grid. +/// Since these are functions, they will not handle placement for you. +/// +/// ### Context Syntax: `[of ]` +/// The second half of Susy's shorthand +/// describes the grid-**context** – +/// available columns, container-spread, and optional gutter override – +/// in any order. +/// All of these settings have globally-defined defaults: +/// +/// - `span(2 of 6)` will set the context to +/// a slice of 6 columns from the global grid. +/// More details below. +/// - `span(2 of 12 wide)` changes the container-spread +/// as well as the column-context. +/// - `span(2 of 12 set-gutters 0.5em)` +/// will override the global gutters setting +/// for this one calculation. +/// +/// A single unitless number for `columns` +/// will be treated as a slice of the parent grid. +/// On a grid with `columns: susy-repeat(12, 120px)`, +/// the shorthand `of 4` will use the parent `120px` column-width. +/// You can also be more explicit, +/// and say `of susy-repeat(4, 100px)`. +/// If you are using asymmetrical grids, +/// like `columns: (1 1 2 3 5 8)`, +/// Susy can't slice it for you without knowing which columns you want. +/// The `slice` function accepts exactly the same syntax as `span`, +/// but returns a list of columns rather than a width. +/// Use it in your context like `of slice(first 3)`. +/// +/// @group b-api + + + +// Susy Span +// --------- +/// This is the primary function in Susy — +/// used to return the width of a span across one or more columns, +/// and any relevant gutters along the way. +/// With the default settings, +/// `span(3)` will return the width of 3 columns, +/// and the 2 intermediate gutters. +/// This can be used to set the `width` property of grid elements, +/// or `margin` and `padding` +/// to push, pull, and pad your elements. +/// +/// - This is a thin syntax-sugar shell around +/// the core-math `su-span()` function. +/// - The un-prefixed alias `span()` is available by default. +/// +/// @group b-api +/// @see su-span +/// @see $susy +/// +/// @param {list} $span - +/// Shorthand expression to define the width of the span, +/// optionally containing: +/// - a count, length, or column-list span. +/// - `at $n`, `first`, or `last` location on asymmetrical grids, +/// where `at 1 == first`, +/// and `last` will calculate the proper location +/// based on columns and span. +/// - `narrow`, `wide`, or `wider` for optionally spreading +/// across adjacent gutters. +/// - `of $n ` for available grid columns +/// and spread of the container. +/// Span counts like `of 6` are valid +/// in the context of symmetrical grids, +/// where Susy can safely infer a slice of the parent columns. +/// - and `set-gutters $n` to override global gutter settings. +/// +/// @param {map} $config [()] - +/// Optional map of Susy grid configuration settings. +/// See `$susy` documentation for details. +/// +/// @return {length} - +/// Calculated length value, using the units given, +/// or converting to `%` for fraction-based grids, +/// or a full `calc` function when units/fractions +/// are not comparable outside the browser. +/// +/// @example scss - span half the grid +/// .foo { +/// // the result is a bit under 50% to account for gutters +/// width: susy-span(6 of 12); +/// } +/// +/// @example scss - span a specific segment of asymmetrical grid +/// .foo { +/// width: susy-span(3 at 3 of (1 2 3 5 8)); +/// } +@function susy-span( + $span, + $config: () +) { + $output: susy-compile($span, $config); + + @if map-get($output, 'span') { + @return su-call('su-span', $output); + } + + $actual: '[#{type-of($span)}] `#{inspect($span)}`'; + @return _susy-error( + 'Unable to determine span value from #{$actual}.', + 'susy-span'); +} + + + +// Susy Gutter +// ----------- +/// The gutter function returns +/// the width of a single gutter on your grid, +/// to be applied where you see fit – +/// on `margins`, `padding`, `transform`, or element `width`. +/// +/// - This is a thin syntax-sugar shell around +/// the core-math `su-gutter()` function. +/// - The un-prefixed alias `gutter()` is available by default. +/// +/// @group b-api +/// @see su-gutter +/// @see $susy +/// +/// @param {list | number} $context [null] - +/// Optional context for nested gutters, +/// including shorthand for +/// `columns`, `gutters`, and `container-spread` +/// (additional shorthand will be ignored) +/// +/// @param {map} $config [()] - +/// Optional map of Susy grid configuration settings. +/// See `$susy` documentation for details. +/// +/// @return {length} - +/// Width of a gutter as `%` of current context, +/// or in the units defined by `column-width` when available +/// +/// @example scss - add gutters before or after an element +/// .floats { +/// float: left; +/// width: span(3 of 6); +/// margin-left: gutter(of 6); +/// } +/// +/// @example scss - add gutters to padding +/// .flexbox { +/// flex: 1 1 span(3 wide of 6 wide); +/// padding: gutter(of 6) / 2; +/// } +/// +@function susy-gutter( + $context: susy-get('columns'), + $config: () +) { + $context: susy-compile($context, $config, 'context-only'); + + @return su-call('su-gutter', $context); +} + + + +// Susy Slice +// ---------- +/// Working with asymmetrical grids (un-equal column widths) +/// can be challenging –  +/// expecially when they involve fluid/fractional elements. +/// Describing a context `of (15em 6em 6em 6em 15em)` is a lot +/// to put inside the span or gutter function shorthand. +/// This slice function returns a sub-slice of asymmetrical columns to use +/// for a nested context. +/// `slice(3 at 2)` will give you a subset of the global grid, +/// spanning 3 columns, starting with the second. +/// +/// - This is a thin syntax-sugar shell around +/// the core-math `su-slice()` function. +/// - The un-prefixed alias `slice()` is available by default. +/// +/// @group b-api +/// @see su-slice +/// @see $susy +/// +/// @param {list} $span - +/// Shorthand expression to define the subset span, optionally containing: +/// - `at $n`, `first`, or `last` location on asymmetrical grids; +/// - `of $n ` for available grid columns +/// and spread of the container +/// - Span-counts like `of 6` are only valid +/// in the context of symmetrical grids +/// - Valid spreads include `narrow`, `wide`, or `wider` +/// +/// @param {map} $config [()] - +/// Optional map of Susy grid configuration settings. +/// See `$susy` documentation for details. +/// +/// @return {list} - +/// Subset list of columns for use for a nested context +/// +/// @example scss - Return a nested segment of asymmetrical grid +/// $context: susy-slice(3 at 3 of (1 2 3 5 8)); +/// /* $context: #{$context}; */ +@function susy-slice( + $span, + $config: () +) { + $span: susy-compile($span, $config); + + @return su-call('su-slice', $span); +} + + + +/// ## Building Grids +/// The web has come a long way +/// since the days of double-margin-hacks +/// and inconsistent subpixel rounding. +/// In addition to floats and tables, +/// we can now use much more powerful tools, +/// like flexbox and CSS grid, +/// to build more interesting and responsive layouts. +/// +/// With Susy3, we hope you'll start moving in that direction. +/// You can still build classic 12-column Grid Systems, +/// and we'll help you get there, +/// but Susy3 is primarily designed for a grid-math-on-demand +/// approach to layout: +/// applying our functions only where you really need grid math. +/// Read the [intro article by OddBird][welcome] for more details. +/// +/// [welcome]: http://oddbird.net/2017/06/28/susy3/ +/// +/// @group b-api +/// @link http://oddbird.net/2017/06/28/susy3/ Article: Welcome to Susy3 +/// +/// @example scss - floats +/// .float { +/// width: span(3); +/// margin-right: gutter(); +/// } +/// +/// @example scss - flexbox +/// .flexbox { +/// flex: 1 1 span(3); +/// // half a gutter on either side… +/// padding: 0 gutter() / 2; +/// } +/// +/// @example scss - pushing and pulling +/// .push-3 { +/// margin-left: span(3 wide); +/// } +/// +/// .pull-3 { +/// margin-left: 0 - span(3 wide); +/// } +/// +/// @example scss - building an attribute system +/// // markup example:
+/// [data-span] { +/// float: left; +/// +/// &:not([data-span*='last']) { +/// margin-right: gutter(); +/// } +/// } +/// +/// @for $span from 1 through length(susy-get('columns')) { +/// [data-span*='#{$span}'] { +/// width: span($span); +/// } +/// } diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss b/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss new file mode 100644 index 00000000..a988504c --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss @@ -0,0 +1,261 @@ +/// Syntax Normalization +/// ==================== +/// Susy is divided into two layers: +/// "Su" provides the core math functions with a stripped-down syntax, +/// while "Susy" adds global settings, shorthand syntax, +/// and other helpers. +/// Each setting (e.g. span, location, columns, spread, etc.) +/// has a single canonical syntax in Su. +/// +/// This normalization module helps translate between those layers, +/// transforming parsed Susy input into +/// values that Su will understand. +/// +/// @group x-normal +/// +/// @see susy-normalize +/// @see susy-normalize-span +/// @see susy-normalize-columns +/// @see susy-normalize-spread +/// @see susy-normalize-location + + + +// Susy Normalize +// -------------- +/// Normalize the values in a configuration map. +/// In addition to the global `$susy` properties, +/// this map can include local span-related imformation, +/// like `span` and `location`. +/// +/// Normalization does not check that values are valid, +/// which will happen in the Su math layer. +/// These functions merely look for known Susy syntax – +/// returning a map with those shorthand values +/// converted into low-level data for Su. +/// For example `span: all` and `location: first` +/// will be converted into specific numbers. +/// +/// @group x-normal +/// @see $susy +/// @see susy-parse +/// +/// @param {map} $config - +/// Map of Susy configuration settings to normalize. +/// See `$susy` and `susy-parse()` documentation for details. +/// @param {map | null} $context [null] - +/// Map of Susy configuration settings to use as global reference, +/// or `null` to use global settings. +/// +/// @return {map} - +/// Map of Susy configuration settings, +/// with all values normalized for Su math functions. +@function susy-normalize( + $config, + $context: null +) { + // Spread + @each $setting in ('spread', 'container-spread') { + $value: map-get($config, $setting); + + @if $value { + $value: susy-normalize-spread($value); + $config: map-merge($config, ($setting: $value)); + } + } + + // Columns + $columns: map-get($config, 'columns'); + + @if $columns { + $columns: susy-normalize-columns($columns, $context); + $config: map-merge($config, ('columns': $columns)); + } + + @if not $columns { + $map: type-of($context) == 'map'; + $columns: if($map, map-get($context, 'columns'), null); + $columns: $columns or susy-get('columns'); + } + + // Span + $span: map-get($config, 'span'); + + @if $span { + $span: susy-normalize-span($span, $columns); + $config: map-merge($config, ('span': $span)); + } + + // Location + $location: map-get($config, 'location'); + + @if $location { + $location: susy-normalize-location($span, $location, $columns); + $config: map-merge($config, ('location': $location)); + } + + @return $config; +} + + + +// Normalize Span +// -------------- +/// Normalize `span` shorthand for Su. +/// Su span syntax allows an explicit length (e.g. `3em`), +/// unitless column-span number (e.g. `3` columns), +/// or an explicit list of columns (e.g. `(3 5 8)`). +/// +/// Susy span syntax also allows the `all` keyword, +/// which will be converted to a slice of the context +/// in normalization. +/// +/// @group x-normal +/// +/// @param {number | list | 'all'} $span - +/// Span value to normalize. +/// @param {list} $columns - +/// Normalized list of columns in the grid +/// +/// @return {number | list} - +/// Number or list value for `$span` +@function susy-normalize-span( + $span, + $columns: susy-get('columns') +) { + @if ($span == 'all') { + @return length($columns); + } + + @return $span; +} + + + +// Normalize Columns +// ----------------- +/// Normalize `column` shorthand for Su. +/// Su column syntax only allows column lists (e.g. `120px 1 1 1 120px`). +/// +/// Susy span syntax also allows a unitless `slice` number (e.g `of 5`), +/// which will be converted to a slice of the context +/// in normalization. +/// +/// @group x-normal +/// +/// @param {list | integer} $columns - +/// List of available columns, +/// or unitless integer representing a slice of +/// the available context. +/// @param {map | null} $context [null] - +/// Map of Susy configuration settings to use as global reference, +/// or `null` to access global settings. +/// +/// @return {list} - +/// Columns list value, normalized for Su input. +/// +/// @throws +/// when attempting to access a slice of asymmetrical context +@function susy-normalize-columns( + $columns, + $context: null +) { + $context: $context or susy-settings(); + + @if type-of($columns) == 'list' { + @return _susy-flatten($columns); + } + + @if (type-of($columns) == 'number') and (unitless($columns)) { + $span: $columns; + $context: map-get($context, 'columns'); + $symmetrical: susy-repeat(length($context), nth($context, 1)); + + @if ($context == $symmetrical) { + @return susy-repeat($span, nth($context, 1)); + } @else { + $actual: 'of `#{$span}`'; + $columns: 'grid-columns `#{$context}`'; + @return _susy-error( + 'context-slice #{$actual} can not be determined based on #{$columns}.', + 'susy-normalize-columns'); + } + } + + @return $columns; +} + + + +// Normalize Spread +// ---------------- +/// Normalize `spread` shorthand for Su. +/// Su spread syntax only allows the numbers `-1`, `0`, or `1` – +/// representing the number of gutters covered +/// in relation to columns spanned. +/// +/// Susy spread syntax also allows keywords for each value – +/// `narrow` for `-1`, `wide` for `0`, or `wider` for `1` – +/// which will be converted to their respective integers +/// in normalization. +/// +/// @group x-normal +/// +/// @param {0 | 1 | -1 | 'narrow' | 'wide' | 'wider'} $spread - +/// Spread across adjacent gutters, relative to a column-count — +/// either `narrow` (-1), `wide` (0), or `wider` (1) +/// +/// @return {number} - +/// Numeric value for `$spread` +@function susy-normalize-spread( + $spread +) { + $normal-spread: ( + 'narrow': -1, + 'wide': 0, + 'wider': 1, + ); + + @return map-get($normal-spread, $spread) or $spread; +} + + + +// Normalize Location +// ------------------ +/// Normalize `location` shorthand for Su. +/// Su location syntax requires the (1-indexed) number for a column. +/// +/// Susy also allows the `first` and `last` keywords, +/// where `first` is always `1`, +/// and `last` is calculated based on span and column values. +/// Both keywords are normalized into an integer index +/// in normalization. +/// +/// @group x-normal +/// +/// @param {number} $span - +/// Number of grid-columns to be spanned +/// @param {integer | 'first' | 'last'} $location - +/// Starting (1-indexed) column position of a span, +/// or a named location keyword. +/// @param {list} $columns - +/// Already-normalized list of columns in the grid. +/// +/// @return {integer} - +/// Numeric value for `$location` +@function susy-normalize-location( + $span, + $location, + $columns +) { + $count: length($columns); + $normal-locations: ( + 'first': 1, + 'alpha': 1, + 'last': $count - $span + 1, + 'omega': $count - $span + 1, + ); + + @return map-get($normal-locations, $location) or $location; +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss b/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss new file mode 100644 index 00000000..98aa40a9 --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss @@ -0,0 +1,163 @@ +/// Shorthand Syntax Parser +/// ======================= +/// The syntax parser converts [shorthand syntax][short] +/// into a map of settings that can be compared/merged with +/// other config maps and global setting. +/// +/// [short]: b-api.html +/// +/// @group x-parser + + + +// Parse +// ----- +/// The `parse` function provides all the syntax-sugar in Susy, +/// converting user shorthand +/// into a usable map of keys and values +/// that can be normalized and passed to Su. +/// +/// @group x-parser +/// @see $susy +/// +/// @param {list} $shorthand - +/// Shorthand expression to define the width of the span, +/// optionally containing: +/// - a count, length, or column-list span; +/// - `at $n`, `first`, or `last` location on asymmetrical grids; +/// - `narrow`, `wide`, or `wider` for optionally spreading +/// across adjacent gutters; +/// - `of $n ` for available grid columns +/// and spread of the container +/// (span counts like `of 6` are only valid +/// in the context of symmetrical grids); +/// - and `set-gutters $n` to override global gutter settings +/// @param {bool} $context-only [false] - +/// Allow the parser to ignore span and span-spread values, +/// only parsing context and container-spread. +/// This makes it possible to accept spanless values, +/// like the `gutters()` syntax. +/// When parsing context-only, +/// the `of` indicator is optional. +/// +/// @return {map} - +/// Map of span and grid settings +/// parsed from shorthand input – +/// including all the properties available globally – +/// `columns`, `gutters`, `spread`, `container-spread` – +/// along with the span-specific properties +/// `span`, and `location`. +/// +/// @throw +/// when a shorthand value is not recognized +@function susy-parse( + $shorthand, + $context-only: false +) { + $parse-error: 'Unknown shorthand property:'; + $options: ( + 'first': 'location', + 'last': 'location', + 'alpha': 'location', + 'omega': 'location', + 'narrow': 'spread', + 'wide': 'spread', + 'wider': 'spread', + ); + + $return: (); + $span: null; + $columns: null; + + $of: null; + $next: false; + + // Allow context-only shorthand, without span + @if ($context-only) and (not index($shorthand, 'of')) { + @if su-valid-columns($shorthand, 'fail-silent') { + $shorthand: 'of' $shorthand; + } @else { + $shorthand: join('of', $shorthand); + } + } + + // loop through the shorthand list + @for $i from 1 through length($shorthand) { + $item: nth($shorthand, $i); + $type: type-of($item); + $error: false; + $details: '[#{$type}] `#{$item}`'; + + // if we know what's supposed to be coming next… + @if $next { + + // Add to the return map + $return: map-merge($return, ($next: $item)); + + // Reset next to `false` + $next: false; + + } @else { // If we don't know what's supposed to be coming… + + // Keywords… + @if ($type == 'string') { + // Check the map for keywords… + @if map-has-key($options, $item) { + $setting: map-get($options, $item); + + // Spread could be on the span or the container… + @if ($setting == 'spread') and ($of) { + $return: map-merge($return, ('container-spread': $item)); + } @else { + $return: map-merge($return, ($setting: $item)); + } + + } @else if ($item == 'all') { + // `All` is a span shortcut + $span: 'all'; + } @else if ($item == 'at') { + // Some keywords setup what's next… + $next: 'location'; + } @else if ($item == 'set-gutters') { + $next: 'gutters'; + } @else if ($item == 'of') { + $of: true; + } @else { + $error: true; + } + + } @else if ($type == 'number') or ($type == 'list') { // Numbers & lists… + + @if not ($span or $of) { + // We don't have a span, and we're not expecting context… + $span: $item; + } @else if ($of) and (not $columns) { + // We are expecting context… + $columns: $item; + } @else { + $error: true; + } + + } @else { + $error: true; + } + } + + @if $error { + @return _susy-error('#{$parse-error} #{$details}', 'susy-parse'); + } + } + + // If we have span, merge it in + @if $span { + $return: map-merge($return, ('span': $span)); + } + + // If we have columns, merge them in + @if $columns { + $return: map-merge($return, ('columns': $columns)); + } + + // Return the map of settings… + @return $return; +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss b/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss new file mode 100644 index 00000000..b824477c --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss @@ -0,0 +1,329 @@ +/// Susy3 Configuration +/// =================== +/// Susy3 has 4 core settings, in a single settings map. +/// You'll notice a few differences from Susy2: +/// +/// **Columns** no longer accept a single number, like `12`, +/// but use a syntax more similar to the new +/// CSS [grid-template-columns][columns] – +/// a list of relative sizes for each column on the grid. +/// Unitless numbers in Susy act very similar to `fr` units in CSS, +/// and the `susy-repeat()` function (similar to the css `repeat()`) +/// helps quickly establish equal-width columns. +/// +/// [columns]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns +/// +/// - `susy-repeat(12)` will create 12 fluid, equal-width columns +/// - `susy-repeat(6, 120px)` will create 6 equal `120px`-wide columns +/// - `120px susy-repeat(4) 120px` will create 6 columns, +/// the first and last are `120px`, +/// while the middle 4 are equal fractions of the remainder. +/// Susy will output `calc()` values in order to achieve this. +/// +/// **Gutters** haven't changed – +/// a single fraction or explicit width – +/// but the `calc()` output feature +/// means you can now use any combination of units and fractions +/// to create static-gutters on a fluid grid, etc. +/// +/// **Spread** existed in the Susy2 API as a span option, +/// and was otherwise handled behind the scenes. +/// Now we're giving you full control over all spread issues. +/// You can find a more [detailed explanation of spread on the blog][spread]. +/// +/// [spread]: http://oddbird.net/2017/06/13/susy-spread/ +/// +/// You can access your global settings at any time +/// with the `susy-settings()` function, +/// or grab a single setting from the global scope +/// with `susy-get('columns')`, `susy-get('gutters')` etc. +/// +/// @group a-config +/// @link http://oddbird.net/2017/06/13/susy-spread/ +/// Article: Understanding Spread in Susy3 +/// +/// @see $susy +/// @see susy-settings +/// @see susy-get + + + +// Susy +// ---- +/// The grid is defined in a single map variable, +/// with four initial properties: +/// `columns`, `gutters`, `spread` and `container-spread`. +/// Anything you put in the root `$susy` variable map +/// will be treated as a global project default. +/// You can create similar configuration maps +/// under different variable names, +/// to override the defaults as-needed. +/// +/// @group a-config +/// @type Map +/// +/// @see $_susy-defaults +/// @see {function} susy-repeat +/// @link +/// https://codepen.io/mirisuzanne/pen/EgmJJp?editors=1100 +/// Spread examples on CodePen +/// +/// @prop {list} columns - +/// Columns are described by a list of numbers, +/// representing the relative width of each column. +/// The syntax is a simplified version of CSS native +/// `grid-template-columns`, +/// expecting a list of grid-column widths. +/// Unitless numbers create fractional fluid columns +/// (similar to the CSS-native `fr` unit), +/// while length values (united numbers) +/// are used to define static columns. +/// You can mix-and match units and fractions, +/// to create a mixed grid. +/// Susy will generate `calc()` values when necessary, +/// to make all your units work together. +/// +/// Use the `susy-repeat($count, $value)` function +/// to more easily repetative columns, +/// similar to the CSS-native `repeat()`. +/// +/// - `susy-repeat(8)`: +/// an 8-column, symmetrical, fluid grid. +///
Identical to `(1 1 1 1 1 1 1 1)`. +/// - `susy-repeat(6, 8em)`: +/// a 6-column, symmetrical, em-based grid. +///
Identical to `(8em 8em 8em 8em 8em 8em)`. +/// - `(300px susy-repeat(4) 300px)`: +/// a 6-column, asymmetrical, mixed fluid/static grid +/// using `calc()` output. +///
Identical to `(300px 1 1 1 1 300px)`. +/// +/// **NOTE** that `12` is no longer a valid 12-column grid definition, +/// and you must list all the columns individually +/// (or by using the `susy-repeat()` function). +/// +/// @prop {number} gutters - +/// Gutters are defined as a single width, +/// or fluid ratio, similar to the native-CSS +/// `grid-column-gap` syntax. +/// Similar to columns, +/// gutters can use any valid CSS length unit, +/// or unitless numbers to define a relative fraction. +/// +/// - `0.5`: +/// a fluid gutter, half the size of a single-fraction column. +/// - `1em`: +/// a static gutter, `1em` wide. +/// +/// Mix static gutters with fluid columns, or vice versa, +/// and Susy will generate the required `calc()` to make it work. +/// +/// @prop {string} spread [narrow] - +/// Spread of an element across adjacent gutters: +/// either `narrow` (none), `wide` (one), or `wider` (two) +/// +/// - Both spread settings default to `narrow`, +/// the most common use-case. +/// A `narrow` spread only has gutters *between* columns +/// (one less gutter than columns). +/// This is how all css-native grids work, +/// and most margin-based grid systems. +/// - A `wide` spread includes the same number of gutters as columns, +/// spanning across a single side-gutter. +/// This is how most padding-based grid systems often work, +/// and is also useful for pushing and pulling elements into place. +/// - The rare `wider` spread includes gutters +/// on both sides of the column-span +/// (one more gutters than columns). +/// +/// @prop {string} container-spread [narrow] - +/// Spread of a container around adjacent gutters: +/// either `narrow` (none), `wide` (one), or `wider` (two). +/// See `spread` property for details. +/// +/// @since 3.0.0-beta.1 - +/// `columns` setting no longer accepts numbers +/// (e.g. `12`) for symmetrical fluid grids, +/// or the initial `12 x 120px` syntax for +/// symmetrical fixed-unit grids. +/// Use `susy-repeat(12)` or `susy-repeat(12, 120px)` instead. +/// +/// @example scss - default values +/// // 4 symmetrical, fluid columns +/// // gutters are 1/4 the size of a column +/// // elements span 1 less gutter than columns +/// // containers span 1 less gutter as well +/// $susy: ( +/// 'columns': susy-repeat(4), +/// 'gutters': 0.25, +/// 'spread': 'narrow', +/// 'container-spread': 'narrow', +/// ); +/// +/// @example scss - inside-static gutters +/// // 6 symmetrical, fluid columns… +/// // gutters are static, triggering calc()… +/// // elements span equal columns & gutters… +/// // containers span equal columns & gutters… +/// $susy: ( +/// 'columns': susy-repeat(6), +/// 'gutters': 0.5em, +/// 'spread': 'wide', +/// 'container-spread': 'wide', +/// ); +$susy: () !default; + + + +// Susy Repeat +// ----------- +/// Similar to the `repeat(, )` function +/// that is available in native CSS Grid templates, +/// the `susy-repeat()` function helps generate repetative layouts +/// by repeating any value a given number of times. +/// Where Susy previously allowed `8` as a column definition +/// for 8 equal columns, you should now use `susy-repeat(8)`. +/// +/// @group a-config +/// +/// @param {integer} $count - +/// The number of repetitions, e.g. `12` for a 12-column grid. +/// @param {*} $value [1] - +/// The value to be repeated. +/// Technically any value can be repeated here, +/// but the function exists to repeat column-width descriptions: +/// e.g. the default `1` for single-fraction fluid columns, +/// `5em` for a static column, +/// or even `5em 120px` if you are alternating column widths. +/// +/// @return {list} - +/// List of repeated values +/// +/// @example scss +/// // 12 column grid, with 5em columns +/// $susy: ( +/// columns: susy-repeat(12, 5em), +/// ); +/// +/// @example scss +/// // asymmetrical 5-column grid +/// $susy: ( +/// columns: 20px susy-repeat(3, 100px) 20px, +/// ); +/// +/// /* result: #{susy-get('columns')} */ +@function susy-repeat( + $count, + $value: 1 +) { + $return: (); + + @for $i from 1 through $count { + $return: join($return, $value); + } + + @return $return; +} + + + +// Susy Defaults +// ------------- +/// Configuration map of Susy factory defaults. +/// Do not override this map directly – +/// use `$susy` for user and project setting overrides. +/// +/// @access private +/// @type Map +/// +/// @see $susy +/// +/// @prop {number | list} columns [susy-repeat(4)] +/// @prop {number} gutters [0.25] +/// @prop {string} spread ['narrow'] +/// @prop {string} container-spread ['narrow'] +$_susy-defaults: ( + 'columns': susy-repeat(4), + 'gutters': 0.25, + 'spread': 'narrow', + 'container-spread': 'narrow', +); + + + +// Susy Settings +// ------------- +/// Return a combined map of Susy settings, +/// based on the factory defaults (`$_susy-defaults`), +/// user-defined project configuration (`$susy`), +/// and any local overrides required – +/// such as a configuration map passed into a function. +/// +/// @group a-config +/// +/// @param {maps} $overrides… - +/// Optional map override of global configuration settings. +/// See `$susy` above for properties. +/// +/// @return {map} - +/// Combined map of Susy configuration settings, +/// in order of specificity: +/// any `$overrides...`, +/// then `$susy` project settings, +/// and finally the `$_susy-defaults` +/// +/// @example scss - global settings +/// @each $key, $value in susy-settings() { +/// /* #{$key}: #{$value} */ +/// } +/// +/// @example scss - local settings +/// $local: ('columns': 1 2 3 5 8); +/// +/// @each $key, $value in susy-settings($local) { +/// /* #{$key}: #{$value} */ +/// } +@function susy-settings( + $overrides... +) { + $settings: map-merge($_susy-defaults, $susy); + + @each $config in $overrides { + $settings: map-merge($settings, $config); + } + + @return $settings; +} + + + +// Susy Get +// -------- +/// Return the current global value of any Susy setting +/// +/// @group a-config +/// +/// @param {string} $key - +/// Setting to retrieve from the configuration. +/// +/// @return {*} - +/// Value mapped to `$key` in the configuration maps, +/// in order of specificity: +/// `$susy`, then `$_susy-defaults` +/// +/// @example scss - +/// /* columns: #{susy-get('columns')} */ +/// /* gutters: #{susy-get('gutters')} */ +@function susy-get( + $key +) { + $settings: susy-settings(); + + @if not map-has-key($settings, $key) { + @return _susy-error( + 'There is no Susy setting called `#{$key}`', + 'susy-get'); + } + + @return map-get($settings, $key); +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss b/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss new file mode 100644 index 00000000..1e885284 --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss @@ -0,0 +1,441 @@ +/// Grid Math Engine +/// ================ +/// The `su` functions give you direct access to the math layer, +/// without any syntax-sugar like shorthand parsing, and normalization. +/// If you prefer named arguments, and stripped-down syntax, +/// you can use these functions directly in your code – +/// replacing `span`, `gutter`, and `slice`. +/// +/// These functions are also useful +/// for building mixins or other extensions to Susy. +/// Apply the Susy syntax to new mixins and functions, +/// using our "Plugin Helpers", +/// or write your own syntax and pass the normalized results along +/// to `su` for compilation. +/// +/// @group su-math +/// +/// @see su-span +/// @see su-gutter +/// @see su-slice +/// @ignore _su-sum +/// @ignore _su-calc-span +/// @ignore _su-calc-sum +/// @ignore _su-needs-calc-output + + + +// Su Span +// ------- +/// Calculates and returns a CSS-ready span width, +/// based on normalized span and context data – +/// a low-level version of `susy-span`, +/// with all of the logic and none of the syntax sugar. +/// +/// - Grids defined with unitless numbers will return `%` values. +/// - Grids defined with comparable units +/// will return a value in the units provided. +/// - Grids defined with a mix of units, +/// or a combination of untiless numbers and unit-lengths, +/// will return a `calc()` string. +/// +/// @group su-math +/// @see susy-span +/// +/// @param {number | list} $span - +/// Number or list of grid columns to span +/// @param {list} $columns - +/// List of columns available +/// @param {number} $gutters - +/// Width of a gutter in column-comparable units +/// @param {0 | 1 | -1} $spread - +/// Number of gutters spanned, +/// relative to `span` count +/// @param {0 | 1 | -1} $container-spread [$spread] - +/// Number of gutters spanned, +/// relative to `columns` count +/// @param {integer} $location [1] - +/// Optional position of sub-span among full set of columns +/// +/// @return {length} - +/// Relative or static length of a span on the grid +@function su-span( + $span, + $columns, + $gutters, + $spread, + $container-spread: $spread, + $location: 1 +) { + $span: su-valid-span($span); + $columns: su-valid-columns($columns); + $gutters: su-valid-gutters($gutters); + $spread: su-valid-spread($spread); + + @if (type-of($span) == 'number') { + @if (not unitless($span)) { + @return $span; + } + + $location: su-valid-location($span, $location, $columns); + $span: su-slice($span, $columns, $location, $validate: false); + } + + @if _su-needs-calc-output($span, $columns, $gutters, $spread, not 'validate') { + @return _su-calc-span($span, $columns, $gutters, $spread, $container-spread, not 'validate'); + } + + $span-width: _su-sum($span, $gutters, $spread, $validate: false); + + @if unitless($span-width) { + $container-spread: su-valid-spread($container-spread); + $container: _su-sum($columns, $gutters, $container-spread, $validate: false); + @return percentage($span-width / $container); + } + + @return $span-width; +} + + + +// Su Gutter +// --------- +/// Calculates and returns a CSS-ready gutter width, +/// based on normalized grid data – +/// a low-level version of `susy-gutter`, +/// with all of the logic and none of the syntax sugar. +/// +/// - Grids defined with unitless numbers will return `%` values. +/// - Grids defined with comparable units +/// will return a value in the units provided. +/// - Grids defined with a mix of units, +/// or a combination of untiless numbers and unit-lengths, +/// will return a `calc()` string. +/// +/// @group su-math +/// @see susy-gutter +/// +/// @param {list} $columns - +/// List of columns in the grid +/// @param {number} $gutters - +/// Width of a gutter in column-comparable units +/// @param {0 | 1 | -1} $container-spread - +/// Number of gutters spanned, +/// relative to `columns` count +/// +/// @return {length} - +/// Relative or static length of one gutter in a grid +@function su-gutter( + $columns, + $gutters, + $container-spread +) { + @if (type-of($gutters) == 'number') { + @if ($gutters == 0) or (not unitless($gutters)) { + @return $gutters; + } + } + + @if _su-needs-calc-output($gutters, $columns, $gutters, -1, not 'validate') { + @return _su-calc-span($gutters, $columns, $gutters, -1, $container-spread, not 'validate'); + } + + $container: _su-sum($columns, $gutters, $container-spread); + @return percentage($gutters / $container); +} + + + +// Su Slice +// -------- +/// Returns a list of columns +/// based on a given span/location slice of the grid – +/// a low-level version of `susy-slice`, +/// with all of the logic and none of the syntax sugar. +/// +/// @group su-math +/// @see susy-slice +/// +/// @param {number} $span - +/// Number of grid columns to span +/// @param {list} $columns - +/// List of columns in the grid +/// @param {number} $location [1] - +/// Starting index of a span in the list of columns +/// @param {bool} $validate [true] - +/// Check that arguments are valid before proceeding +/// +/// @return {list} - +/// Subset list of grid columns, based on span and location +@function su-slice( + $span, + $columns, + $location: 1, + $validate: true +) { + @if $validate { + $columns: su-valid-columns($columns); + $location: su-valid-location($span, $location, $columns); + } + + $floor: floor($span); + $sub-columns: (); + + @for $i from $location to ($location + $floor) { + $sub-columns: append($sub-columns, nth($columns, $i)); + } + + @if $floor != $span { + $remainder: $span - $floor; + $column: $location + $floor; + $sub-columns: append($sub-columns, nth($columns, $column) * $remainder); + } + + @return $sub-columns; +} + + + +// Su Sum +// ------ +/// Get the total sum of column-units in a layout. +/// +/// @group su-math +/// @access private +/// +/// @param {list} $columns - +/// List of columns in the grid +/// @param {number} $gutters - +/// Width of a gutter in column-comparable units +/// @param {0 | 1 | -1} $spread - +/// Number of gutters spanned, +/// relative to `columns` count +/// @param {bool} $validate [true] - +/// Check that arguments are valid before proceeding +/// +/// @return {number} - +/// Total sum of column-units in a grid +@function _su-sum( + $columns, + $gutters, + $spread, + $validate: true +) { + @if $validate { + $columns: su-valid-span($columns); + $gutters: su-valid-gutters($gutters); + $spread: su-valid-spread($spread); + } + + // Calculate column-sum + $column-sum: 0; + @each $column in $columns { + $column-sum: $column-sum + $column; + } + + $gutter-sum: (ceil(length($columns)) + $spread) * $gutters; + $total: if(($gutter-sum > 0), $column-sum + $gutter-sum, $column-sum); + + @return $total; +} + + + +// Su Calc +// ------- +/// Return a usable span width as a `calc()` function, +/// in order to create mixed-unit grids. +/// +/// @group su-math +/// @access private +/// +/// @param {number | list} $span - +/// Pre-sliced list of grid columns to span +/// @param {list} $columns - +/// List of columns available +/// @param {number} $gutters - +/// Width of a gutter in column-comparable units +/// @param {0 | 1 | -1} $spread - +/// Number of gutters spanned, +/// relative to `span` count +/// @param {0 | 1 | -1} $container-spread [$spread] - +/// Number of gutters spanned, +/// relative to `columns` count +/// @param {bool} $validate [true] - +/// Check that arguments are valid before proceeding +/// +/// @return {length} - +/// Relative or static length of a span on the grid +@function _su-calc-span( + $span, + $columns, + $gutters, + $spread, + $container-spread: $spread, + $validate: true +) { + @if $validate { + $span: su-valid-span($span); + $columns: su-valid-columns($columns); + $gutters: su-valid-gutters($gutters); + $spread: su-valid-spread($spread); + $container-spread: su-valid-spread($container-spread); + } + + // Span and context + $span: _su-calc-sum($span, $gutters, $spread, not 'validate'); + $context: _su-calc-sum($columns, $gutters, $container-spread, not 'validate'); + + // Fixed and fluid + $fixed-span: map-get($span, 'fixed'); + $fluid-span: map-get($span, 'fluid'); + $fixed-context: map-get($context, 'fixed'); + $fluid-context: map-get($context, 'fluid'); + + $calc: '#{$fixed-span}'; + $fluid-calc: '(100% - #{$fixed-context})'; + + // Fluid-values + @if (not $fluid-span) { + $fluid-calc: null; + } @else if ($fluid-span != $fluid-context) { + $fluid-span: '* #{$fluid-span}'; + $fluid-context: if($fluid-context, '/ #{$fluid-context}', ''); + $fluid-calc: '(#{$fluid-calc $fluid-context $fluid-span})'; + } + + @if $fluid-calc { + $calc: if(($calc != ''), '#{$calc} + ', ''); + $calc: '#{$calc + $fluid-calc}'; + } + + @return calc(#{unquote($calc)}); +} + + + +// Su Calc-Sum +// ----------- +/// Get the total sum of fixed and fluid column-units +/// for creating a mixed-unit layout with `calc()` values. +/// +/// @group su-math +/// @access private +/// +/// @param {list} $columns - +/// List of columns available +/// @param {number} $gutters - +/// Width of a gutter in column-comparable units +/// @param {0 | 1 | -1} $spread - +/// Number of gutters spanned, +/// relative to `span` count +/// @param {bool} $validate [true] - +/// Check that arguments are valid before proceeding +/// +/// @return {map} - +/// Map with `fixed` and `fluid` keys +/// containing the proper math as strings +@function _su-calc-sum( + $columns, + $gutters, + $spread, + $validate: true +) { + @if $validate { + $columns: su-valid-span($columns); + $gutters: su-valid-gutters($gutters); + $spread: su-valid-spread($spread); + } + + $fluid: 0; + $fixed: (); + $calc: null; + + // Gutters + $gutters: $gutters * (length($columns) + $spread); + + // Columns + @each $col in append($columns, $gutters) { + @if unitless($col) { + $fluid: $fluid + $col; + } @else { + $fixed: _su-map-add-units($fixed, $col); + } + } + + // Compile Fixed Units + @each $unit, $total in $fixed { + @if ($total != (0 * $total)) { + $calc: if($calc, '#{$calc} + #{$total}', '#{$total}'); + } + } + + // Calc null or string + @if $calc { + $calc: if(str-index($calc, '+'), '(#{$calc})', '#{$calc}'); + } + + // Fluid 0 => null + $fluid: if(($fluid == 0), null, $fluid); + + + // Return map + $return: ( + 'fixed': $calc, + 'fluid': $fluid, + ); + + @return $return; +} + + + +// Needs Calc +// ---------- +/// Check if `calc()` will be needed in defining a span, +/// if the necessary units in a grid are not comparable. +/// +/// @group su-math +/// @access private +/// +/// @param {list} $span - +/// Slice of columns to span +/// @param {list} $columns - +/// List of available columns in the grid +/// @param {number} $gutters - +/// Width of a gutter +/// @param {0 | 1 | -1} $spread - +/// Number of gutters spanned, +/// relative to `span` count +/// @param {bool} $validate [true] - +/// Check that arguments are valid before proceeding +/// +/// @return {bool} - +/// `True` when units do not match, and `calc()` will be required +@function _su-needs-calc-output( + $span, + $columns, + $gutters, + $spread, + $validate: true +) { + @if $validate { + $span: su-valid-span($span); + $columns: su-valid-columns($columns); + $gutters: su-valid-gutters($gutters); + } + + $has-gutter: if((length($span) > 1) or ($spread >= 0), true, false); + $check: if($has-gutter, append($span, $gutters), $span); + $safe-span: _su-is-comparable($check...); + + @if ($safe-span == 'static') { + @return false; + } @else if (not $safe-span) { + @return true; + } + + $safe-fluid: _su-is-comparable($gutters, $columns...); + + @return not $safe-fluid; +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss b/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss new file mode 100644 index 00000000..5befad30 --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss @@ -0,0 +1,213 @@ +/// Validation +/// ========== +/// Each argument to Su has a single canonical syntax. +/// These validation functions check to ensure +/// that each argument is valid, +/// in order to provide useful errors +/// before attempting to calculate the results/ +/// +/// @group x-validation +/// +/// @see su-valid-columns +/// @see su-valid-gutters +/// @see su-valid-spread +/// @see su-valid-location + + + +// Valid Span +// ---------- +/// Check that the `span` argument +/// is a number, length, or column-list +/// +/// @group x-validation +/// +/// @param {number | list} $span - +/// Number of columns, or length of span +/// +/// @return {number | list} - +/// Validated `$span` number, length, or columns list +/// +/// @throw +/// when span value is not a number, or valid column list +@function su-valid-span( + $span +) { + $type: type-of($span); + @if ($type == 'number') { + @return $span; + } @else if ($type == 'list') and su-valid-columns($span, 'silent-failure') { + @return $span; + } + + $actual: '[#{type-of($span)}] `#{inspect($span)}`'; + @return _susy-error( + '#{$actual} is not a valid number, length, or column-list for $span.', + 'su-valid-span'); +} + + + +// Valid Columns +// ------------- +/// Check that the `columns` argument is a valid +/// list of column-lengths +/// +/// @group x-validation +/// +/// @param {list} $columns - +/// List of column-lengths +/// @param {bool} $silent-failure [true] - +/// Set false to return null on failure +/// +/// @return {list} - +/// Validated `$columns` list +/// +/// @throw +/// when column value is not a valid list of numbers +@function su-valid-columns( + $columns, + $silent-failure: false +) { + @if (type-of($columns) == 'list') { + $fail: false; + + @each $col in $columns { + @if (type-of($col) != 'number') { + $fail: true; + } + } + + @if not $fail { + @return $columns; + } + } + + // Silent Failure + @if $silent-failure { + @return null; + } + + // Error Message + $actual: '[#{type-of($columns)}] `#{inspect($columns)}`'; + + @return _susy-error( + '#{$actual} is not a valid list of numbers for $columns.', + 'su-valid-columns'); +} + + + +// Valid Gutters +// ------------- +/// Check that the `gutters` argument is a valid number +/// +/// @group x-validation +/// +/// @param {number} $gutters - +/// Width of a gutter +/// +/// @return {number} - +/// Validated `$gutters` number +/// +/// @throw +/// when gutter value is not a number +@function su-valid-gutters( + $gutters +) { + $type: type-of($gutters); + + @if ($type == 'number') { + @return $gutters; + } + + $actual: '[#{$type}] `#{inspect($gutters)}`'; + @return _susy-error( + '#{$actual} is not a number or length for $gutters.', + 'su-valid-gutters'); +} + + + +// Valid Spread +// ------------ +/// Check that the `spread` argument is a valid +/// intiger between `-1` and `1` +/// +/// @group x-validation +/// +/// @param {0 | 1 | -1} $spread - +/// Number of gutters to include in a span, +/// relative to the number columns +/// +/// @return {0 | 1 | -1} - +/// Validated `$spread` number +/// +/// @throw +/// when spread value is not a valid spread +@function su-valid-spread( + $spread +) { + @if index(0 1 -1, $spread) { + @return $spread; + } + + $actual: '[#{type-of($spread)}] `#{inspect($spread)}`'; + @return _susy-error( + '#{$actual} is not a normalized [0 | 1 | -1] value for `$spread`.', + 'su-valid-spread'); +} + + + +// Valid Location +// -------------- +/// Check that the `location` argument is a valid number, +/// within the scope of available columns +/// +/// @group x-validation +/// +/// @param {number} $span - +/// Number of grid-columns to be spanned +/// @param {integer | string} $location - +/// Starting (1-indexed) column-position of that span +/// @param {list} $columns - +/// List of available columns in the grid +/// +/// @return {integer} - +/// Validated `$location` intiger +/// +/// @throw +/// when location value is not a valid index, +/// given the context and span. +@function su-valid-location( + $span, + $location, + $columns +) { + $count: length($columns); + + @if $location { + @if (type-of($location) != 'number') or (not unitless($location)) { + $actual: '[#{type-of($location)}] `#{$location}`'; + @return _susy-error( + '#{$actual} is not a unitless number for $location.', + 'su-valid-location'); + } @else if (round($location) != $location) { + @return _susy-error( + 'Location (`#{$location}`) must be a 1-indexed intiger position.', + 'su-valid-location'); + } @else if ($location > $count) or ($location < 1) { + @return _susy-error( + 'Position `#{$location}` does not exist in grid `#{$columns}`.', + 'su-valid-location'); + } @else if ($location + $span - 1 > $count) { + $details: 'grid `#{$columns}` for span `#{$span}` at `#{$location}`'; + @return _susy-error( + 'There are not enough columns in #{$details}.', + 'su-valid-location'); + } + } + + @return $location; +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss b/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss new file mode 100644 index 00000000..f6043eac --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss @@ -0,0 +1,191 @@ +/// Syntax Utilities for Extending Susy +/// =================================== +/// There are many steps involved +/// when translating between the Susy syntax layer, +/// and the Su core math. +/// That entire process can be condensed with these two functions. +/// For anyone that wants to access the full power of Susy, +/// and build their own plugins, functions, or mixins – +/// this is the primary API for compiling user input, +/// and accessing the core math. +/// +/// This is the same technique we use internally, +/// to keep our API layer simple and light-weight. +/// Every function accepts two arguments, +/// a "shorthand" description of the span or context, +/// and an optional settings-map to override global defaults. +/// +/// - Use `susy-compile()` to parse, merge, and normalize +/// all the user settings into a single map. +/// - Then use `su-call()` to call one of the core math functions, +/// with whatever data is needed for that function. +/// +/// @group plugin-utils +/// @see susy-compile +/// @see su-call +/// +/// @example scss - Susy API `gutter` function +/// @function susy-gutter( +/// $context: susy-get('columns'), +/// $config: () +/// ) { +/// // compile and normalize all user arguments and global settings +/// $context: susy-compile($context, $config, 'context-only'); +/// // call `su-gutter` with the appropriate data +/// @return su-call('su-gutter', $context); +/// } +/// +/// @example scss - Sample `span` mixin for floated grids +/// @mixin span( +/// $span, +/// $config: () +/// ) { +/// $context: susy-compile($span, $config); +/// width: su-call('su-span', $context); +/// +/// @if index($span, 'last') { +/// float: right; +/// } @else { +/// float: left; +/// margin-right: su-call('su-gutter', $context); +/// } +/// } + + + +// Compile +// ------- +/// Susy's syntax layer has various moving parts, +/// with syntax-parsing for the grid/span shorthand, +/// and normalization for each of the resulting values. +/// The compile function rolls this all together +/// in a single call – +/// for quick access from our internal API functions, +/// or any additional functions and mixins you add to your project. +/// Pass user input and configuration maps to the compiler, +/// and it will hand back a map of values ready for Su. +/// Combine this with the `su-call` function +/// to quickly parse, normalize, and process grid calculations. +/// +/// @group plugin-utils +/// @see su-call +/// +/// @param {list | map} $shorthand - +/// Shorthand expression to define the width of the span, +/// optionally containing: +/// - a count, length, or column-list span; +/// - `at $n`, `first`, or `last` location on asymmetrical grids; +/// - `narrow`, `wide`, or `wider` for optionally spreading +/// across adjacent gutters; +/// - `of $n ` for available grid columns +/// and spread of the container +/// (span counts like `of 6` are only valid +/// in the context of symmetrical grids); +/// - and `set-gutters $n` to override global gutter settings +/// @param {map} $config [null] - +/// Optional map of Susy grid configuration settings +/// @param {bool} $context-only [false] - +/// Allow the parser to ignore span and span-spread values, +/// only parsing context and container-spread +/// +/// @return {map} - +/// Parsed and normalized map of settings, +/// based on global and local configuration, +/// alongwith shorthad adjustments. +/// +/// @example scss - +/// $user-input: 3 wide of susy-repeat(6, 120px) set-gutters 10px; +/// $grid-data: susy-compile($user-input, $susy); +/// +/// @each $key, $value in $grid-data { +/// /* #{$key}: #{$value}, */ +/// } +@function susy-compile( + $short, + $config: null, + $context-only: false +) { + // Get and normalize config + $config: if($config, susy-settings($config), susy-settings()); + $normal-config: susy-normalize($config); + + // Parse and normalize shorthand + @if (type-of($short) != 'map') and (length($short) > 0) { + $short: susy-parse($short, $context-only); + } + + $normal-short: susy-normalize($short, $normal-config); + + // Merge and return + @return map-merge($normal-config, $normal-short); +} + + + +// Call +// ---- +/// The Susy parsing and normalization process +/// results in a map of configuration settings, +/// much like the global `$susy` settings map. +/// In order to pass that information along to Su math functions, +/// the proper values have to be picked out, +/// and converted to arguments. +/// +/// The `su-call` function streamlines that process, +/// weeding out the unnecessary data, +/// and passing the rest along to Su in the proper format. +/// Combine this with `susy-compile` to quickly parse, +/// normalize, and process grid calculations. +/// +/// @group plugin-utils +/// +/// @require su-span +/// @require su-gutter +/// @require su-slice +/// @see susy-compile +/// +/// @param {'su-span' | 'su-gutter' | 'su-slice'} $name - +/// Name of the Su math function to call. +/// @param {map} $config - +/// Parsed and normalized map of Susy configuration settings +/// to use for math-function arguments. +/// +/// @return {*} - +/// Results of the function being called. +/// +/// @example scss - +/// $user-input: 3 wide of susy-repeat(6, 120px) set-gutters 10px; +/// $grid-data: susy-compile($user-input, $susy); +/// +/// .su-span { +/// width: su-call('su-span', $grid-data); +/// } +@function su-call( + $name, + $config +) { + $grid-function-args: ( + 'su-span': ('span', 'columns', 'gutters', 'spread', 'container-spread', 'location'), + 'su-gutter': ('columns', 'gutters', 'container-spread'), + 'su-slice': ('span', 'columns', 'location'), + ); + + $args: map-get($grid-function-args, $name); + + @if not $args { + $options: 'Try one of these: #{map-keys($grid-function-args)}'; + @return _susy-error( + '#{$name} is not a public Su function. #{$options}', + 'su-call'); + } + + $call: if(function-exists('get-function'), get-function($name), $name); + $output: (); + + @each $arg in $args { + $value: map-get($config, $arg); + $output: if($value, map-merge($output, ($arg: $value)), $output); + } + + @return call($call, $output...); +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss b/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss new file mode 100644 index 00000000..2cfd1b81 --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss @@ -0,0 +1,56 @@ +// Unprefix Susy +// ============= + + +// Span +// ---- +/// Un-prefixed alias for `susy-span` +/// (available by default) +/// +/// @group api +/// @alias susy-span +/// +/// @param {list} $span +/// @param {map} $config [()] +@function span( + $span, + $config: () +) { + @return susy-span($span, $config); +} + + +// Gutter +// ------ +/// Un-prefixed alias for `susy-gutter` +/// (available by default) +/// +/// @group api +/// @alias susy-gutter +/// +/// @param {integer | list} $context [null] - +/// @param {map} $config [()] +@function gutter( + $context: susy-get('columns'), + $config: () +) { + @return susy-gutter($context, $config); +} + + +// Slice +// ----- +/// Un-prefixed alias for `susy-slice` +/// (available by default) +/// +/// @group api +/// @alias susy-slice +/// +/// @param {list} $span +/// @param {map} $config [()] +@function slice( + $span, + $config: () +) { + @return susy-slice($span, $config); +} diff --git a/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss b/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss new file mode 100644 index 00000000..3c62de2d --- /dev/null +++ b/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss @@ -0,0 +1,167 @@ +// Sass Utilities +// ============== +// - Susy Error Output Override [variable] +// - Susy Error [function] + + + +// Susy Error Output Override +// -------------------------- +/// Turn off error output for testing +/// @group x-utility +/// @access private +$_susy-error-output-override: false !default; + + + +// Susy Error +// ---------- +/// Optionally return error messages without failing, +/// as a way to test error cases +/// +/// @group x-utility +/// @access private +/// +/// @param {string} $message - +/// A useful error message, explaining the problem +/// @param {string} $source - +/// The original source of the error for debugging +/// @param {bool} $override [$_susy-error-output-override] - +/// Optionally return the error rather than failing +/// @return {string} - +/// Combined error with source and message +/// @throws When `$override == true` +@function _susy-error( + $message, + $source, + $override: $_susy-error-output-override +) { + @if $override { + @return 'ERROR [#{$source}] #{$message}'; + } + + @error '[#{$source}] #{$message}'; +} + + +// Su Is Comparable +// ---------------- +/// Check that the units in a grid are comparable +/// +/// @group x-validation +/// @access private +/// +/// @param {numbers} $lengths… - +/// Arglist of all the number values to compare +/// (columns, gutters, span, etc) +/// +/// @return {'fluid' | 'static' | false} - +/// The type of span (fluid or static) when units match, +/// or `false` for mismatched units +@function _su-is-comparable( + $lengths... +) { + $first: nth($lengths, 1); + + @if (length($lengths) == 1) { + @return if(unitless($first), 'fluid', 'static'); + } + + @for $i from 2 through length($lengths) { + $comp: nth($lengths, $i); + + $fail: not comparable($first, $comp); + $fail: $fail or (unitless($first) and not unitless($comp)); + $fail: $fail or (unitless($comp) and not unitless($first)); + + @if $fail { + @return false; + } + } + + @return if(unitless($first), 'fluid', 'static'); +} + + +// Su Map Add Units +// ---------------- +/// The calc features use a map of units and values +/// to compile the proper algorythm. +/// This function adds a new value to any comparable existing unit/value, +/// or adds a new unit/value pair to the map +/// +/// @group x-utility +/// @access private +/// +/// @param {map} $map - +/// A map of unit/value pairs, e.g. ('px': 120px) +/// @param {length} $value - +/// A new length to be added to the map +/// @return {map} - +/// The updated map, with new value added +/// +/// @example scss - +/// $map: (0px: 120px); +/// $map: _su-map-add-units($map, 1in); // add a comparable unit +/// $map: _su-map-add-units($map, 3vw); // add a new unit +/// +/// @each $units, $value in $map { +/// /* #{$units}: #{$value} */ +/// } +@function _su-map-add-units( + $map, + $value +) { + $unit: $value * 0; + $has: map-get($map, $unit) or 0; + + @if ($has == 0) { + @each $try, $could in $map { + $match: comparable($try, $value); + $unit: if($match, $try, $unit); + $has: if($match, $could, $has); + } + } + + @return map-merge($map, ($unit: $has + $value)); +} + + +// Susy Flatten +// ------------ +/// Flatten a multidimensional list +/// +/// @group x-utility +/// @access private +/// +/// @param {list} $list - +/// The list to be flattened +/// @return {list} - +/// The flattened list +/// +/// @example scss - +/// $list: 120px (30em 30em) 120px; +/// /* #{_susy-flatten($list)} */ +@function _susy-flatten( + $list +) { + $flat: (); + + // Don't iterate over maps + @if (type-of($list) == 'map') { + @return $list; + } + + // Iterate over lists (or single items) + @each $item in $list { + @if (type-of($item) == 'list') { + $item: _susy-flatten($item); + $flat: join($flat, $item); + } @else { + $flat: append($flat, $item); + } + } + + // Return flattened list + @return $flat; +} diff --git a/_sass/vendor/susy/_susy.scss b/_sass/vendor/susy/_susy.scss deleted file mode 100644 index 224e98ad..00000000 --- a/_sass/vendor/susy/_susy.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Susy -// ==== - -@import 'susy/language/susy'; diff --git a/_sass/vendor/susy/_susyone.scss b/_sass/vendor/susy/_susyone.scss deleted file mode 100644 index 5b934c68..00000000 --- a/_sass/vendor/susy/_susyone.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Susy -// ==== - -@import 'susy/language/susyone'; diff --git a/_sass/vendor/susy/susy/_su.scss b/_sass/vendor/susy/susy/_su.scss deleted file mode 100644 index a1454157..00000000 --- a/_sass/vendor/susy/susy/_su.scss +++ /dev/null @@ -1,7 +0,0 @@ -// Su -// == - -@import "su/utilities"; -@import "su/settings"; -@import "su/validation"; -@import "su/grid"; diff --git a/_sass/vendor/susy/susy/language/_susy.scss b/_sass/vendor/susy/susy/language/_susy.scss deleted file mode 100644 index 0ee9cae2..00000000 --- a/_sass/vendor/susy/susy/language/_susy.scss +++ /dev/null @@ -1,24 +0,0 @@ -// Susy Next Syntax -// ================ - -$susy-version: 2.1; - -@import "../su"; -@import "../output/float"; - -@import "susy/settings"; -@import "susy/validation"; -@import "susy/grids"; -@import "susy/box-sizing"; -@import "susy/context"; -@import "susy/background"; -@import "susy/container"; -@import "susy/span"; -@import "susy/gutters"; -@import "susy/isolate"; -@import "susy/gallery"; -@import "susy/rows"; -@import "susy/margins"; -@import "susy/padding"; -@import "susy/bleed"; -@import "susy/breakpoint-plugin"; diff --git a/_sass/vendor/susy/susy/language/_susyone.scss b/_sass/vendor/susy/susy/language/_susyone.scss deleted file mode 100644 index a783d3a8..00000000 --- a/_sass/vendor/susy/susy/language/_susyone.scss +++ /dev/null @@ -1,13 +0,0 @@ -// --------------------------------------------------------------------------- -// Partials - -$susy-version: 1.5; - -@import "susyone/settings"; -@import "susyone/functions"; -@import "susyone/grid"; -@import "susyone/isolation"; -@import "susyone/padding"; -@import "susyone/margin"; -@import "susyone/media"; -@import "susyone/background"; diff --git a/_sass/vendor/susy/susy/language/susy/_background.scss b/_sass/vendor/susy/susy/language/susy/_background.scss deleted file mode 100644 index d39dc721..00000000 --- a/_sass/vendor/susy/susy/language/susy/_background.scss +++ /dev/null @@ -1,385 +0,0 @@ -// Background Grid Syntax -// ====================== - -$susy-overlay-grid-head-exists: false; - - -// Show Grid/s -// ----------- -// Show grid on any element using either background or overlay. -// - [$grid] : -@mixin show-grid( - $grid: $susy -) { - $inspect: $grid; - $_output: debug-get(output, $grid); - - @include susy-inspect(show-grid, $inspect); - @if $_output == overlay and susy-get(debug image, $grid) != hide { - @include overlay-grid($grid); - } @else { - @include background-grid($grid); - } -} - -@mixin show-grids( - $grid: $susy -) { - @include show-grid($grid); -} - -// Background Grid -// --------------- -// Show a grid background on any element. -// - [$grid] : -@mixin background-grid( - $grid: $susy -) { - $inspect : $grid; - $_output : get-background($grid); - - @if length($_output) > 0 { - $_flow: susy-get(flow, $grid); - - $_image: (); - @each $name, $layer in map-get($_output, image) { - $_direction: if($name == baseline, to bottom, to to($_flow)); - $_image: append($_image, linear-gradient($_direction, $layer), comma); - } - $_output: map-merge($_output, (image: $_image)); - - @include background-grid-output($_output...); - @include susy-inspect(background-grid, $inspect); - } -} - - -// Overlay Grid -// ------------ -// Generate an icon to trigger grid-overlays on any given elements. -// $grids... : [] [, ]* -@mixin overlay-grid ( - $grid: $susy -) { - @if not($susy-overlay-grid-head-exists) { - @at-root head { @include overlay-head($grid); } - @at-root head:before { @include overlay-trigger; } - @at-root head:hover { @include overlay-trigger-hover; } - $susy-overlay-grid-head-exists: true !global; - } - - head:hover ~ &, - head:hover ~ body & { - position: relative; - &:before { - @include grid-overlay-base; - @include background-grid($grid); - } - } -} - - -// [Private] Overlay Trigger -// ------------------------- -@mixin overlay-trigger { - content: "|||"; - display: block; - padding: 5px 10px; - font: { - family: sans-serif; - size: 16px; - weight: bold; - } -} - - -// [Private] Overlay Trigger Hover -// ------------------------------- -@mixin overlay-trigger-hover { - background: rgba(white, .5); - color: red; -} - - -// [Private] Overlay Head -// ---------------------- -// styles to create grid overlay toggle -@mixin overlay-head ( - $grid: $susy -) { - $_toggle: debug-get(toggle, $grid); - $_horz: null; - $_vert: null; - - @each $side in $_toggle { - $_horz: if($side == left or $side == right, $side, $_horz); - $_vert: if($side == top or $side == bottom, $side, $_vert); - } - - display: block; - position: fixed; - #{$_horz}: 10px; - #{$_vert}: 10px; - z-index: 999; - color: #333; - background: rgba(white, .25); -} - - -// [Private] Grid Overlay Base -// --------------------------- -// Base styles for generating a grid overlay -@mixin grid-overlay-base() { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - content: " "; - z-index: 998; -} - - -// Get Symmetrical Background -// -------------------------- -// - $grid: -@function get-background-sym( - $grid -) { - $grid : parse-grid($grid); - $_gutters : susy-get(gutters, $grid); - $_column-width : susy-get(column-width, $grid); - $_math : susy-get(math, $grid); - - $_color : debug-get(color); - $_trans : transparent; - $_light : lighten($_color, 15%); - - $_end : 1 + $_gutters; - $_after : percentage(1/$_end); - $_stops : (); - $_size : span(1 $grid wide); - - @if is-inside($grid) { - $_stops: $_color, $_light; - } @else if is-split($grid) { - $_split: $_gutters/2; - $_before: percentage($_split/$_end); - $_after: percentage((1 + $_split)/$_end); - $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after; - } @else { - $_stops: $_color, $_light $_after, $_trans $_after; - } - - @if $_math == static { - $_size: valid-column-math($_math, $_column-width) * $_end; - } - - $_output: ( - image: (columns: $_stops), - size: $_size, - ); - - @return $_output; -} - - -// Get Asymmetrical Inside -// ----------------------- -// - $grid: -@function get-asym-inside( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - @if $location == 1 { - $this-stop: append($this-stop, $_color, comma); - } @else { - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, $_color $start, comma); - } - - @if $location == susy-count($_columns) { - $this-stop: append($this-stop, $_light, comma); - } @else { - $_end: parse-span(1 at ($location + 1) $grid); - $_end: get-isolation($_end); - $this-stop: append($this-stop, $_light $_end, comma); - } - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Split -// ---------------------- -// - $grid: -@function get-asym-split( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, transparent $start, comma); - $this-stop: append($this-stop, $_color $start, comma); - - $_end: $start + span(1 at $location $grid); - $this-stop: append($this-stop, $_light $_end, comma); - $this-stop: append($this-stop, transparent $_end, comma); - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Outside -// ------------------------ -// - $grid: -@function get-asym-outside( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_trans : transparent; - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - @if $location == 1 { - $this-stop: append($this-stop, $_color, comma); - } @else { - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, $_color $start, comma); - } - - @if $location == susy-count($_columns) { - $this-stop: append($this-stop, $_light, comma); - } @else { - $gutter: get-span-width(first $location $grid); - - $_end: parse-span(1 at ($location + 1) $grid); - $_end: get-isolation($_end); - - $gutter: $_light $gutter, $_trans $gutter, $_trans $_end; - $this-stop: join($this-stop, $gutter, comma); - } - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Background -// --------------------------- -// - $grid: -@function get-background-asym( - $grid -) { - $_stops: (); - - @if is-inside($grid) { - $_stops: get-asym-inside($grid); - } @else if is-split($grid) { - $_stops: get-asym-split($grid); - } @else { - $_stops: get-asym-outside($grid); - } - - @return (image: (columns: $_stops)); -} - - -// Get Background -// -------------- -// - $grid: -@function get-background( - $grid -) { - $grid : parse-grid($grid); - $_show : susy-get(debug image, $grid); - $_return : (); - - @if $_show and $_show != 'hide' { - $_columns: susy-get(columns, $grid); - - @if $_show != 'show-baseline' { - $_sym: is-symmetrical($_columns); - $_return: if($_sym, get-background-sym($grid), get-background-asym($grid)); - $_return: map-merge($_return, (clip: content-box)); - } - - @if $_show != 'show-columns' - and global-variable-exists(base-line-height) - and type-of($base-line-height) == 'number' - and not unitless($base-line-height) { - $_color: variable-exists('grid-background-baseline-color'); - $_color: if($_color, $grid-background-baseline-color, #000); - - $_image: map-get($_return, image); - $_size: map-get($_return, size); - $_baseline: (baseline: ($_color 1px, transparent 1px)); - $_baseline-size: 100% $base-line-height; - - $_return: map-merge($_return, ( - image: if($_image, map-merge($_image, $_baseline), $_baseline), - size: if($_size, ($_size, $_baseline-size), $_baseline-size), - )); - - @if $_show == 'show' { - $_clip: map-get($_return, clip); - $_return: map-merge($_return, (clip: join($_clip, border-box, comma))); - } - } @else if $_show == 'show-baseline' { - @warn 'Please provide a $base-line-height with the desired height and units'; - } - } - - @if map-get($_return, image) { - $_return: map-merge($_return, (flow: susy-get(flow, $grid))); - } - - @return $_return; -} - - -// Get Debug -// --------- -// Return the value of a debug setting -// - $key: -@function debug-get( - $key, - $grid: $susy -) { - $key: join(debug, $key, space); - @return susy-get($key, $grid); -} diff --git a/_sass/vendor/susy/susy/language/susy/_bleed.scss b/_sass/vendor/susy/susy/language/susy/_bleed.scss deleted file mode 100644 index 8ef59743..00000000 --- a/_sass/vendor/susy/susy/language/susy/_bleed.scss +++ /dev/null @@ -1,200 +0,0 @@ -// Bleed Syntax -// ============ - -// Bleed -// ----- -// Add negative margins, and equal positive padding to create bleed. -// - $bleed : -@mixin bleed( - $bleed: 0 gutter() -) { - $inspect : $bleed; - $output : get-bleed($bleed); - - @if susy-get(global-box-sizing) != content-box { - $output: map-merge((box-sizing: content-box), $output); - } - - @include susy-inspect(bleed, $inspect); - @include output($output); -} - - -// Bleed-x -// ------- -// Shortcut for horizontal bleed. -// - $bleed : -@mixin bleed-x( - $bleed: gutter() -) { - $bleed : parse-span($bleed); - $trbl : susy-get(span, $bleed); - - @if length($trbl) == 1 { - $bleed: map-merge($bleed, (span: 0 nth($trbl, 1))); - } @else if length($trbl) == 2 { - $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1))); - } @else { - @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.'; - } - - @include bleed($bleed); -} - - -// Bleed-y -// ------- -// Shortcut for vertical bleed. -// - $bleed : -@mixin bleed-y( - $bleed: if(function-exists(rhythm), rhythm(1), 1em) -) { - $bleed : parse-span($bleed); - $trbl : susy-get(span, $bleed); - - @if length($trbl) == 1 { - $bleed: map-merge($bleed, (span: nth($trbl, 1) 0)); - } @else if length($trbl) == 2 { - $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0)); - } @else { - @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.'; - } - - @include bleed($bleed); -} - - -// Get Bleed -// --------- -// Return bleed output values -// - $bleed: -@function get-bleed( - $bleed -) { - $bleed : map-merge((spread: wide), parse-span($bleed)); - $trbl : susy-get(span, $bleed); - $short : null; - $output : (); - - @for $i from 1 through length($trbl) { - $this: nth($trbl, $i); - $new: (); - $margin: null; - $padding: null; - $padding-x: null; - - @if $this > 0 { - $this: map-merge($bleed, (span: $this)); - $margin: span($this); - $padding: $margin; - $padding-x: $padding; - } - - @if $margin and $margin > 0 { - $margin: - $margin; - - @if is-inside($this) { - $gutter: gutter($this); - $join: if($gutter and comparable($padding, $gutter), true, false); - $padding-x: if($join and $padding > 0, $padding + $gutter, $padding); - } - } - - @if $i == 1 { - $new: ( - margin-top: $margin, - padding-top: $padding, - margin-right: $margin, - padding-right: $padding-x, - margin-bottom: $margin, - padding-bottom: $padding, - margin-left: $margin, - padding-left: $padding-x, - ); - } @else if $i == 2 { - $new: ( - margin-right: $margin, - padding-right: $padding-x, - margin-left: $margin, - padding-left: $padding-x, - ); - } @else if $i == 3 { - $new: ( - margin-bottom: $margin, - padding-bottom: $padding, - ); - } @else if $i == 4 { - $new: ( - margin-left: $margin, - padding-left: $padding-x, - ); - } - - $output: map-merge($output, $new); - } - - @each $prop, $value in $output { - $output: if($value == 0, map-merge($output, ($prop: null)), $output); - } - - @return bleed-shorthand($output); -} - -// Bleed Shorthand -// --------------- -// Convert bleed output into shorthand when possible. -// - $bleed: -@function bleed-shorthand( - $bleed -) { - $margin: (); - $padding: (); - $return: (); - - @each $key, $value in $bleed { - @if str-index($key, margin) { - $margin: map-merge($margin, ($key: $value)); - } @else if str-index($key, padding) > 0 { - $padding: map-merge($padding, ($key: $value)); - } - } - - $props: ( - margin: $margin, - padding: $padding, - ); - - @each $name, $map in $props { - $four: if(length(map-keys($map)) == 4, true, false); - $null: if(index(map-values($map), null), true, false); - - @if $four and not($null) { - $top: map-get($map, '#{$name}-top'); - $right: map-get($map, '#{$name}-right'); - $bottom: map-get($map, '#{$name}-bottom'); - $left: map-get($map, '#{$name}-left'); - - $tb: if($top == $bottom, $top, null); - $rl: if($right == $left, $right, null); - $all: if($tb == $rl, $tb, null); - - $new: if($all, $all, null); - - @if not($new) { - @if $tb and $rl { - $new: $tb $rl; - } @else if $rl { - $new: $top $rl $bottom; - } @else { - $new: $top $right $bottom $left; - } - } - - $return: map-merge($return, ($name: $new)); - } @else { - $return: map-merge($return, $map); - } - } - - @return $return; -} diff --git a/_sass/vendor/susy/susy/language/susy/_box-sizing.scss b/_sass/vendor/susy/susy/language/susy/_box-sizing.scss deleted file mode 100644 index f551241d..00000000 --- a/_sass/vendor/susy/susy/language/susy/_box-sizing.scss +++ /dev/null @@ -1,47 +0,0 @@ -// Susy Box Sizing -// ================= - -// Global Box Sizing -// ----------------- -// Set a box model globally on all elements. -// - [$box]: border-box | content-box -// - [$inherit]: true | false -@mixin global-box-sizing( - $box: susy-get(global-box-sizing), - $inherit: false -) { - $inspect: $box; - - @if $inherit { - @at-root { - html { @include output((box-sizing: $box)); } - *, *:before, *:after { box-sizing: inherit; } - } - } @else { - *, *:before, *:after { @include output((box-sizing: $box)); } - } - - @include susy-inspect(global-box-sizing, $inspect); - @include update-box-model($box); -} - -// Border Box Sizing -// ----------------- -// A legacy shortcut... -// - [$inherit]: true | false -@mixin border-box-sizing( - $inherit: false -) { - @include global-box-sizing(border-box, $inherit); -} - -// Update Box Model -// ---------------- -// PRIVATE: Updates global box model setting -@mixin update-box-model( - $box -) { - @if $box != susy-get(global-box-sizing) { - @include susy-set(global-box-sizing, $box); - } -} diff --git a/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss b/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss deleted file mode 100644 index 30de288b..00000000 --- a/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss +++ /dev/null @@ -1,185 +0,0 @@ -// Breakpoint Integration -// ====================== - -$susy-media: () !default; -$susy-media-fallback: false !default; - -$_susy-media-context: (); - - -// Susy Breakpoint -// --------------- -// Change grids at different media query breakpoints. -// - $query : [] | | -// - $layout : -// - $no-query : | -@mixin susy-breakpoint( - $query, - $layout: false, - $no-query: $susy-media-fallback -) { - @include susy-media-router($query, $no-query) { - @if $layout { - @include with-layout($layout) { - @content; - } - } @else { - @content; - } - } -} - - -// Susy Media -// ---------- -// - $query: [] | -// - $no-query: | -@mixin susy-media( - $query, - $no-query: $susy-media-fallback -) { - $old-context: $_susy-media-context; - $name: if(map-has-key($susy-media, $query), $query, null); - $query: susy-get-media($query); - $query: susy-parse-media($query); - - @include susy-media-context($query, $name); - - @if $no-query and type-of($no-query) != string { - @content; - } @else { - @media #{susy-render-media($query)} { - @content; - } - - @if type-of($no-query) == string { - #{$no-query} & { - @content; - } - } - } - - @include susy-media-context($old-context, $clean: true); -} - - -// Media Router -// ------------ -// Rout media arguments to the correct mixin. -@mixin susy-media-router( - $query, - $no-query: $susy-media-fallback -) { - @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) { - @include breakpoint($query, $no-query) { - @content; - } - } @else { - @include susy-media($query, $no-query) { - @content; - } - } -} - - -// Update Context -// ------------- -// Set the new media context -@mixin susy-media-context( - $query, - $name: null, - $clean: false -) { - $query: map-merge((name: $name), $query); - - @if $clean { - $_susy-media-context: $query !global; - } @else { - $_susy-media-context: map-merge($_susy-media-context, $query) !global; - } -} - - -// Media Context -// ------------- -// Return the full media context, or a single media property (e.g. min-width) -@function susy-media-context( - $property: false -) { - @if $property { - @return map-get($_susy-media-context, $property); - } @else { - @return $_susy-media-context; - } -} - - -// Get Media -// --------- -// Return a named media-query from $susy-media. -// - $name: -@function susy-get-media( - $name -) { - @if map-has-key($susy-media, $name) { - $map-value: map-get($susy-media, $name); - @if ($name == $map-value) { - $name: $map-value; - } @else { - $name: susy-get-media($map-value); - } - } - - @return $name; -} - - -// Render Media -// ------------ -// Build a media-query string from various media settings -@function susy-render-media( - $query -) { - $output: null; - @each $property, $value in $query { - $string: null; - - @if $property == media { - $string: $value; - } @else { - $string: '(#{$property}: #{$value})'; - } - - $output: if($output, '#{$output} and #{$string}', $string); - } - - @return $output; -} - - -// Parse Media -// ----------- -// Return parsed media-query settings based on shorthand -@function susy-parse-media( - $query -) { - $mq: null; - @if type-of($query) == map { - $mq: $query; - } @else if type-of($query) == number { - $mq: (min-width: $query); - } @else if type-of($query) == list and length($query) == 2 { - @if type-of(nth($query, 1)) == number { - $mq: ( - min-width: min($query...), - max-width: max($query...), - ); - } @else { - $mq: (nth($query, 1): nth($query, 2)); - } - } @else { - $mq: (media: '#{$query}'); - } - - @return $mq; -} diff --git a/_sass/vendor/susy/susy/language/susy/_container.scss b/_sass/vendor/susy/susy/language/susy/_container.scss deleted file mode 100644 index e5f4a858..00000000 --- a/_sass/vendor/susy/susy/language/susy/_container.scss +++ /dev/null @@ -1,81 +0,0 @@ -// Container Syntax -// ================ - -// Container [mixin] -// ----------------- -// Set a container element -// - [$layout] : -@mixin container( - $layout: $susy -) { - $inspect : $layout; - $layout : parse-grid($layout); - - $_width : get-container-width($layout); - $_justify : parse-container-position(susy-get(container-position, $layout)); - $_property : if(susy-get(math, $layout) == static, width, max-width); - - $_box : susy-get(box-sizing, $layout); - - @if $_box { - @include output((box-sizing: $_box)); - } - - @include susy-inspect(container, $inspect); - @include float-container($_width, $_justify, $_property); - @include show-grid($layout); -} - -// Container [function] -// -------------------- -// Return container width -// - [$layout] : -@function container( - $layout: $susy -) { - $layout: parse-grid($layout); - @return get-container-width($layout); -} - -// Get Container Width -// ------------------- -// Calculate the container width -// - [$layout]: -@function get-container-width( - $layout: $susy -) { - $layout : parse-grid($layout); - $_width : susy-get(container, $layout); - $_column-width : susy-get(column-width, $layout); - $_math : susy-get(math, $layout); - - @if not($_width) or $_width == auto { - @if valid-column-math($_math, $_column-width) { - $_columns : susy-get(columns, $layout); - $_gutters : susy-get(gutters, $layout); - $_spread : if(is-split($layout), wide, narrow); - $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width; - } @else { - $_width: 100%; - } - } - - @return $_width; -} - -// Parse Container Position -// ------------------------ -// Parse the $container-position into margin values. -// - [$justify] : left | center | right | [] -@function parse-container-position( - $justify: map-get($susy-defaults, container-position) -) { - $_return: if($justify == left, 0, auto) if($justify == right, 0, auto); - - @if not(index(left right center, $justify)) { - $_return: nth($justify, 1); - $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return); - } - - @return $_return; -} diff --git a/_sass/vendor/susy/susy/language/susy/_context.scss b/_sass/vendor/susy/susy/language/susy/_context.scss deleted file mode 100644 index 52e12a6c..00000000 --- a/_sass/vendor/susy/susy/language/susy/_context.scss +++ /dev/null @@ -1,36 +0,0 @@ -// Context Syntax -// ============== - -// Nested [function] -// ----------------- -// Return a subset grid for nested context. -// - $context : -@function nested( - $context -) { - $context : parse-span($context); - $span : susy-get(span, $context); - $location : get-location($context); - $columns : susy-get(columns, $context); - - @return susy-slice($span, $location, $columns); -} - -// Nested [mixin] -// -------------- -// Use a subset grid for a nested context -// - $context : -// - @content : -@mixin nested( - $context -) { - $inspect : $context; - $context : parse-span($context); - $old : susy-get(columns); - $susy : map-merge($susy, (columns: nested($context))) !global; - - @include susy-inspect(nested, $inspect); - @content; - - $susy : map-merge($susy, (columns: $old)) !global; -} diff --git a/_sass/vendor/susy/susy/language/susy/_gallery.scss b/_sass/vendor/susy/susy/language/susy/_gallery.scss deleted file mode 100644 index e59b9a0c..00000000 --- a/_sass/vendor/susy/susy/language/susy/_gallery.scss +++ /dev/null @@ -1,94 +0,0 @@ -// Gallery Syntax -// ============== - -// Gallery -// ------- -// Create an isolated gallery -// - $span : -// - [$selector] : child | of-type -@mixin gallery( - $span, - $selector: child -) { - $inspect : $span; - $span : parse-span($span); - $span : map-merge($span, (location: 1)); - - $n : susy-get(span, $span); - $columns : susy-get(columns, $span); - $context : susy-count($columns); - $flow : susy-get(flow, $span); - - $inside : is-inside($span); - $from : from($flow); - $line : floor($context / $n); - $symmetrical : is-symmetrical($columns); - - $output: ( - width : null, - float : from, - margin-before : null, - margin-after : null, - padding-before : null, - padding-after : null, - flow : $flow, - ); - - @if $inside { - $gutters: get-gutters($span); - $output: map-merge($output, ( - padding-before: map-get($gutters, before), - padding-after: map-get($gutters, after), - )); - } - - @if $symmetrical { - $output: map-merge($output, (width: get-span-width($span))); - } - - $box : susy-get(box-sizing, $span); - $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false); - - @include susy-inspect(gallery, $inspect); - - // Collective Output - @if $box == border-box or ($inside and not($box) and not($global-box)) { - @include output((box-sizing: border-box)); - } @else if $box == content-box { - @include output((box-sizing: content-box)); - } - - @include float-span-output($output...); - - // Individual Loop - @for $item from 1 through $line { - $nth: '#{$line}n + #{$item}'; - &:nth-#{$selector}(#{$nth}) { - // Individual Prep - $output: ( - width : if($symmetrical, null, get-span-width($span)), - float : null, - margin-before : get-isolation($span), - margin-after : -100%, - padding-before : null, - padding-after : null, - flow : $flow, - ); - - // Individual Output - @include float-span-output($output...); - - @if get-edge($span) == first { - @include break; - @include first($span); - } @else { - @include nobreak; - } - - // Individual Location Increment - $location: get-location($span) + $n; - $location: if($location > $context, 1, $location); - $span: map-merge($span, (location: $location)); - } - } -} diff --git a/_sass/vendor/susy/susy/language/susy/_grids.scss b/_sass/vendor/susy/susy/language/susy/_grids.scss deleted file mode 100644 index 4fa72edc..00000000 --- a/_sass/vendor/susy/susy/language/susy/_grids.scss +++ /dev/null @@ -1,64 +0,0 @@ -// Grid Syntax -// =========== - - -// Layout -// ------ -// Set a new layout using a shorthand -// - $layout: -// - $clean: boolean -@mixin layout( - $layout, - $clean: false -) { - $inspect : $layout; - $susy : _get-layout($layout, $clean) !global; - - @include susy-inspect(layout, $inspect); -} - - -// Use Grid -// -------- -// Use an arbitrary layout for a section of code -// - $layout: -// - $clean: boolean -@mixin with-layout( - $layout, - $clean: false -) { - $inspect : $layout; - $old : $susy; - $susy : _get-layout($layout, $clean) !global; - - @include susy-inspect(with-layout, $inspect); - - @content; - - $susy: $old !global; -} - - -// Layout -// ------ -// Return a parsed layout map based on shorthand syntax -// - $layout: -@function layout( - $layout: $susy -) { - @return parse-grid($layout); -} - - -// Get Layout -// ---------- -// Return a new layout based on current and given settings -// - $layout: -// - $clean: boolean -@function _get-layout( - $layout, - $clean: false -) { - $layout: layout($layout); - @return if($clean, $layout, _susy-deep-merge($susy, $layout)); -} diff --git a/_sass/vendor/susy/susy/language/susy/_gutters.scss b/_sass/vendor/susy/susy/language/susy/_gutters.scss deleted file mode 100644 index efe7ac20..00000000 --- a/_sass/vendor/susy/susy/language/susy/_gutters.scss +++ /dev/null @@ -1,154 +0,0 @@ -// Gutter Syntax -// ============= - - -// Gutters -// ------- -// Set gutters on an element. -// - [$span] : -@mixin gutters( - $span: $susy -) { - $inspect : $span; - $span : parse-gutters($span); - $_gutters : get-gutters($span); - - $_output: ( - before: map-get($_gutters, before), - after: map-get($_gutters, after), - flow: susy-get(flow, $span), - ); - - @include susy-inspect(gutters, $inspect); - - @if is-inside($span) { - @include padding-output($_output...); - } @else { - @include margin-output($_output...); - } -} - -@mixin gutter( - $span: $susy -) { - @include gutters($span); -} - - -// Gutter -// ------ -// Return the width of a gutter. -// - [$span] : -@function gutter( - $span: $susy -) { - $span: parse-gutters($span); - - $_gutters: get-gutters($span); - $_gutters: map-get($_gutters, before) or map-get($_gutters, after); - - @return $_gutters; -} - -@function gutters( - $span: $susy -) { - @return gutter($span); -} - - -// Get Gutter Width -// ---------------- -// Return gutter width. -// - [$context]: -@function get-gutter-width( - $context: $susy -) { - $context : parse-gutters($context); - - $_gutters : susy-get(gutters, $context); - $_gutter : susy-get(gutter-override, $context); - - @if $_gutters and ($_gutters > 0) and not($_gutter) { - $_column-width: susy-get(column-width, $context); - $_math: gutter-math($context); - @if $_math == static { - $_gutter: $_gutters * valid-column-math($_math, $_column-width); - } @else { - $_columns : susy-get(columns, $context); - $_spread : if(is-split($context), wide, susy-get(spread, $context)); - $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread)); - } - } - - $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter); - - @return $_gutter; -} - - -// Get Gutters -// ----------- -// Return before and after gutter values. -// - [$context]: -@function get-gutters( - $context: $susy -) { - $context : parse-gutters($context); - - $_gutter-position : susy-get(gutter-position, $context); - $_gutter : get-gutter-width($context); - - $_return : (before: null, after: null); - - @if is-split($context) and $_gutter { - $_gutter: $_gutter / 2; - $_return: map-merge($_return, (before: $_gutter, after: $_gutter)); - } @else { - $_return: map-merge($_return, ($_gutter-position: $_gutter)); - } - - @return $_return; -} - - -// Is Inside -// --------- -// Returns true if gutters are inside. -// $context: -@function is-inside( - $context -) { - $_inside: inside inside-static; - $_gutter-position: susy-get(gutter-position, $context); - - @return if(index($_inside, $_gutter-position), true, false); -} - - -// Is Split -// -------- -// Returns true if gutters are split. -// $context: -@function is-split( - $context -) { - $_split: split inside inside-static; - $_gutter-position: susy-get(gutter-position, $context); - - @return if(index($_split, $_gutter-position), true, false); -} - - -// Gutter Math -// ----------- -// Return the math to use for gutter calculations -// $context: -@function gutter-math( - $context: $susy -) { - $_return : susy-get(math, $context); - $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return); - - @return $_return; -} diff --git a/_sass/vendor/susy/susy/language/susy/_isolate.scss b/_sass/vendor/susy/susy/language/susy/_isolate.scss deleted file mode 100644 index 7ddfd7f5..00000000 --- a/_sass/vendor/susy/susy/language/susy/_isolate.scss +++ /dev/null @@ -1,77 +0,0 @@ -// Isolation Syntax -// ================ - - -// Isolate [Mixin] -// --------------- -// Set isolation as an override. -// - $location: -@mixin isolate( - $isolate: 1 -) { - $inspect: $isolate; - - $output: ( - push: isolate($isolate), - flow: susy-get(flow, $isolate), - ); - - @include susy-inspect(isolate, $inspect); - @include isolate-output($output...); -} - - -// Isolate [function] -// ------------------ -// Return an isolation offset width. -// - $location: -@function isolate( - $isolate: 1 -) { - $isolate: parse-span($isolate); - $isolation: susy-get(span, $isolate); - - @if $isolation and not(get-location($isolate)) { - $new: ( - span: null, - location: $isolation, - ); - $isolate: map-merge($isolate, $new); - } - - @return get-isolation($isolate); -} - - -// Get Isolation -// ------------- -// Return the isolation offset width -// - $input: -@function get-isolation( - $input -) { - $location : get-location($input); - $columns : susy-get(columns, $input); - $width : null; - - @if type-of($location) == number and not(unitless($location)) { - $width: $location; - } @else if $location { - $push: $location - 1; - @if $push > 0 { - $push: map-merge($input, ( - span: $push, - location: 1, - spread: wide, - )); - $width: get-span-width($push); - } - } - - @if susy-get(gutter-position, $input) == split - and susy-get(gutters, $input) > 0 { - $width: if($width == null, gutters($input), $width + gutters($input)); - } - - @return $width or 0; -} diff --git a/_sass/vendor/susy/susy/language/susy/_margins.scss b/_sass/vendor/susy/susy/language/susy/_margins.scss deleted file mode 100644 index cb368399..00000000 --- a/_sass/vendor/susy/susy/language/susy/_margins.scss +++ /dev/null @@ -1,94 +0,0 @@ -// Margin Syntax -// ============= - -// Pre -// --- -// Add spanning-margins before an element. -// - $span : -@mixin pre( - $span -) { - $inspect: $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $gutter : gutter($span); - $span : span($span); - $width : if($split and $gutter, $span + $gutter, $span); - - @include susy-inspect(pre, $inspect); - @include margin-output($width, null, $flow); -} - -// Post -// ---- -// Add spanning-margins after an element. -// - $span : -@mixin post( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $width : if($split, span($span) + gutter($span), span($span)); - - @include susy-inspect(post, $inspect); - @include margin-output(null, $width, $flow); -} - -// Push -// ---- -// Simple synonymn for pre. -// - $span : -@mixin push( - $span -) { - @include pre($span); -} - -// Pull -// ---- -// Add negative spanning-margins before an element. -// - $span : -@mixin pull( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); - - @include susy-inspect(pull, $inspect); - @include margin-output($width, null, $flow); -} - -// Squish -// ------ -// Add spanning-margins before and after an element. -// - $pre : -// - [$post] : -@mixin squish( - $pre, - $post: false -) { - $inspect : ($pre, $post); - $pre : map-merge((spread: wide), parse-span($pre)); - - @if $post { - $post: map-merge((spread: wide), parse-span($post)); - } @else { - $span: susy-get(span, $pre); - @if length($span) > 1 { - $pre: map-merge($pre, (span: nth($span, 1))); - $post: map-merge($pre, (span: nth($span, 2))); - } @else { - $post: $pre; - } - } - - @include susy-inspect(squish, $inspect); - @include pre($pre); - @include post($post); -} diff --git a/_sass/vendor/susy/susy/language/susy/_padding.scss b/_sass/vendor/susy/susy/language/susy/_padding.scss deleted file mode 100644 index cdf75c8b..00000000 --- a/_sass/vendor/susy/susy/language/susy/_padding.scss +++ /dev/null @@ -1,74 +0,0 @@ -// Padding Syntax -// ============== - -// Prefix -// ------ -// Add spanning-padding before an element. -// - $span : -@mixin prefix( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $width : span($span); - - @if is-inside($span) { - $gutter: gutter($span); - $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); - } - - @include susy-inspect(prefix, $inspect); - @include padding-output($width, null, $flow); -} - -// Suffix -// ------ -// Add spanning-padding after an element. -// - $span : -@mixin suffix( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $width : span($span); - - @if is-inside($span) { - $gutter: gutter($span); - $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); - } - - @include susy-inspect(suffix, $inspect); - @include padding-output(null, $width, $flow); -} - -// Pad -// --- -// Add spanning-padding before and after an element. -// - $pre : -// - [$post] : -@mixin pad( - $pre, - $post: false -) { - $inspect : ($pre, $post); - $pre : map-merge((spread: wide), parse-span($pre)); - - @if $post { - $post: map-merge((spread: wide), parse-span($post)); - } @else { - $span: susy-get(span, $pre); - @if length($span) > 1 { - $pre: map-merge($pre, (span: nth($span, 1))); - $post: map-merge($pre, (span: nth($span, 2))); - } @else { - $post: $pre; - } - } - - @include susy-inspect(pad, $inspect); - @include prefix($pre); - @include suffix($post); - -} diff --git a/_sass/vendor/susy/susy/language/susy/_rows.scss b/_sass/vendor/susy/susy/language/susy/_rows.scss deleted file mode 100644 index d7264313..00000000 --- a/_sass/vendor/susy/susy/language/susy/_rows.scss +++ /dev/null @@ -1,138 +0,0 @@ -// Row Start & End -// =============== - -// Break -// ----- -// Apply to any element that should force a line break. -@mixin break { - @include output((clear: both)); -} - - -// NoBreak -// ------- -// Cancel the break() effect, e.g. when using media queries. -@mixin nobreak { - @include output((clear: none)); -} - - -// Full -// ---- -// - [$context]: -@mixin full( - $context: $susy -) { - $inspect : $context; - @include susy-inspect(full, $inspect); - @include span(full of parse-grid($context) break); -} - - -// First -// ----- -// - [$context]: -@mixin first( - $context: $susy -) { - $inspect : $context; - $context : parse-grid($context); - $flow : susy-get(flow, $context); - - @include susy-inspect(first, $inspect); - @if not(is-split($context)) { - @include float-first($flow); - } -} - -@mixin alpha( - $context: $susy -) { - @include first($context); -} - - -// Last -// ---- -// - [$context]: -@mixin last( - $context: $susy -) { - $inspect : $context; - $context : parse-grid($context); - - @include susy-inspect(last, $inspect); - - $output: ( - flow: susy-get(flow, $context), - last-flow: susy-get(last-flow, $context), - margin: if(is-split($context), null, 0), - ); - - @include float-last($output...); -} - -@mixin omega( - $context: $susy -) { - @include last($context); -} - - -// Get Edge -// -------- -// Calculate edge value based on location, if possible -@function get-edge( - $span -) { - $span : parse-span($span); - $edge : susy-get(edge, $span); - - @if not($edge) { - $count: susy-count(susy-get(columns, $span)); - $location: susy-get(location, $span); - $n: susy-get(span, $span); - - $number: if(type-of($location) == number, true, false); - $index: if($number and unitless($location), true, false); - - @if $n == $count { - $edge: full; - } @else if $location and $n and $index { - @if $location == 1 { - $edge: if($n == $count, full, first); - } @else if $location + $n - 1 == $count { - $edge: last; - } - } - } - - @if $edge == alpha or $edge == omega { - $edge: if($edge == alpha, first, last); - } - - @return $edge; -} - - -// Get Location -// ------------ -// Calculate location value based on edge, if possible -@function get-location( - $span -) { - $span : parse-span($span); - $location : susy-get(location, $span); - $edge : get-edge($span); - $n : susy-get(span, $span); - - @if $edge and not($location) and type-of($n) == number and unitless($n) { - @if $edge == first { - $location: 1; - } @else if $edge == last { - $location: susy-count(susy-get(columns, $span)) - $n + 1; - } - } - - @return $location -} diff --git a/_sass/vendor/susy/susy/language/susy/_settings.scss b/_sass/vendor/susy/susy/language/susy/_settings.scss deleted file mode 100644 index 9b5d897d..00000000 --- a/_sass/vendor/susy/susy/language/susy/_settings.scss +++ /dev/null @@ -1,216 +0,0 @@ -// Susy Settings -// ============= - -// Susy Language Defaults -// ---------------------- -// - PRIVATE -@include susy-defaults(( - container: auto, - math: fluid, - output: float, - container-position: center, - gutter-position: after, - global-box-sizing: content-box, - debug: ( - image: hide, - color: rgba(#66f, .25), - output: background, - toggle: top right, - ), -)); - - -// Valid Keyword Values -// -------------------- -// - PRIVATE: DONT'T TOUCH -$susy-keywords: ( - container: auto, - math: static fluid, - output: isolate float, - container-position: left center right, - flow: ltr rtl, - gutter-position: before after split inside inside-static, - box-sizing: border-box content-box, - span: full, - edge: first alpha last omega full, - spread: narrow wide wider, - gutter-override: no-gutters no-gutter, - role: nest, - clear: break nobreak, - debug image: show hide show-columns show-baseline, - debug output: background overlay, -); - - -// Parse Susy Keywords and Maps -// ---------------------------- -@function parse-settings( - $short: $susy -) { - $_return: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - @each $item in $short { - // strings - @if type-of($item) == string { - @each $key, $value in $susy-keywords { - @if index($value, $item) { - $_key-value: append($key, $item); - $_return: _susy-deep-set($_return, $_key-value...); - } - } - // maps - } @else if type-of($item) == map { - $_return: map-merge($_return, $item); - } - } - } - - @return $_return; -} - - -// Parse Columns & Gutters -// ----------------------- -@function parse-layout( - $short -) { - $_return: (); - $_columns: (); - $_gutters: null; - - @if not(unitless(nth(nth($short, 1), 1))) { - $_gutters: nth($short, 1); - } @else { - $_columns: (columns: nth($short, 1)); - $_gutters: if(length($short) > 1, nth($short, 2), $_gutters); - } - - @if type-of($_gutters) == list and length($_gutters) > 0 { - $_gutters: ( - gutters: nth($_gutters, 2) / nth($_gutters, 1), - column-width: nth($_gutters, 1), - ); - } @else { - $_gutters: if($_gutters, (gutters: $_gutters), ()); - } - - $_return: map-merge($_return, $_columns); - $_return: map-merge($_return, $_gutters); - - @return $_return; -} - - -// Parse Grid/Context -// ------------------ -@function parse-grid( - $short: $susy -) { - $_return: parse-settings($short); - $_layout: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - @each $item in $short { - // number or list - @if type-of($item) == number or type-of($item) == list { - @if type-of($item) == list or unitless($item) { - $_layout: append($_layout, $item); - } @else { - $_return: map-merge($_return, (container: $item)); - } - } - } - - $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout); - } - - @return map-merge($_return, $_layout); -} - - -// Parse Span -// ---------- -@function parse-span( - $short, - $key: span -) { - $_return: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - $_at: index($short, at); - - @if $_at { - $_loci: $_at + 1; - $_location: nth($short, $_loci); - $_return: map-merge($_return, (location: $_location)); - $short: set-nth($short, $_at, null); - $short: set-nth($short, $_loci, null); - } - - $_i: 1; - $_span: (); - - @while $_i <= length($short) { - $_this: nth($short, $_i); - - @if type-of($_this) == number { - $_span: append($_span, $_this); - $short: set-nth($short, $_i, null); - } @else if $_this == of { - $short: set-nth($short, $_i, null); - $_i: length($short) + 1; - } - - $_i: $_i + 1; - } - - @if length($_span) > 0 { - $_span: if(length($_span) == 1, nth($_span, 1), $_span); - $_return: map-merge($_return, ($key: $_span)); - } - - $_return: map-merge($_return, parse-grid($short)); - } - - @return $_return; -} - - -// Parse Gutters -// ------------- -@function parse-gutters( - $short: $susy -) { - $_gutters: parse-span($short, gutter-override); - $_span: susy-get(gutter-override, $_gutters); - - @if $_span and not(map-get($_gutters, columns)) { - $_context: (); - $_new: (); - - @each $item in $_span { - @if type-of($item) == number and unitless($item) { - $_context: append($_context, $item); - } @else { - $_new: append($_new, $item); - } - } - - $_context: parse-grid($_context); - $_new: if(length($_new) == 0, null, $_new); - $_new: if(length($_new) == 1, nth($_new, 1), $_new); - $_new: (gutter-override: if($_new != $_span, $_new, $_span)); - - $_gutters: map-merge($_gutters, $_new); - $_gutters: map-merge($_gutters, $_context); - } - - @return $_gutters; -} diff --git a/_sass/vendor/susy/susy/language/susy/_span.scss b/_sass/vendor/susy/susy/language/susy/_span.scss deleted file mode 100644 index 86ccda91..00000000 --- a/_sass/vendor/susy/susy/language/susy/_span.scss +++ /dev/null @@ -1,163 +0,0 @@ -// Span Syntax -// =========== - -// Span [mixin] -// ------------ -// Set a spanning element using shorthand syntax. -// - $span : -@mixin span( - $span -) { - $inspect: $span; - $span: parse-span($span); - $output: span-math($span); - $nesting: susy-get(span, $span); - $clear: susy-get(clear, $span); - - $box: susy-get(box-sizing, $span); - $content-box: if(susy-get(global-box-sizing) != 'border-box', true, false); - $box: $box or if(is-inside($span) and $content-box, border-box, null); - - @if $clear == break { - @include break; - } @else if $clear == nobreak { - @include nobreak; - } - - @include susy-inspect(span, $inspect); - @include output((box-sizing: $box)); - @include float-span-output($output...); - - @if valid-columns($nesting, silent) { - @include nested($span) { @content; } - } @else { - @content; - } -} - -// Span [function] -// --------------- -// Return the width of a span. -// - $span : -@function span( - $span -) { - @return get-span-width($span); -} - -// Span Math -// --------- -// Get all the span results. -// - $span: -@function span-math( - $span -) { - $nest : if(susy-get(role, $span) == nest, true, false); - $split-nest : if(is-split($span) and $nest, true, false); - $edge : get-edge($span); - $location : get-location($span); - - $float : from; - $padding-before : null; - $padding-after : null; - $margin-before : null; - $margin-after : null; - - // calculate widths - $spread: index(map-values($span), spread); - $span: if($split-nest and not($spread), map-merge($span, (spread: wide)), $span); - $width: get-span-width($span); - $gutters: get-gutters($span); - - // apply gutters - @if is-inside($span) { - @if not(susy-get(role, $span)) { - $padding-before: map-get($gutters, before); - $padding-after: map-get($gutters, after); - } - } @else { - @if not($split-nest) { - $margin-before: map-get($gutters, before); - $margin-after: map-get($gutters, after); - } - } - - // special margin handling - @if susy-get(output, $span) == isolate and $location { - $margin-before: get-isolation($span); - $margin-after: -100%; - } @else if $edge { - $is-split: is-split($span); - $pos: susy-get(gutter-position, $span); - - @if $edge == last { - $float: susy-get(last-flow, $span); - } - - @if not($is-split) { - @if $edge == full or ($edge == first and $pos == before) { - $margin-before: 0; - } - @if $edge == full or ($edge == last and $pos == after) { - $margin-after: 0; - } - } - - } - - @return ( - width : $width, - float : $float, - margin-before : $margin-before, - margin-after : $margin-after, - padding-before : $padding-before, - padding-after : $padding-after, - flow : susy-get(flow, $span), - ); -} - -// Get Span Width -// -------------- -// Return span width. -// - $span: -@function get-span-width( - $span -) { - $span : parse-span($span); - - $n : susy-get(span, $span); - $location : get-location($span); - $columns : susy-get(columns, $span); - $gutters : susy-get(gutters, $span); - $spread : susy-get(spread, $span); - - $context : null; - $span-sum : null; - $width : null; - - @if $n == 'full' { - $pos: susy-get(gutter-position, $span); - $role: susy-get(role, $span); - $n: if($pos == split and $role != nest, susy-count($columns), 100%); - } - - @if type-of($n) != number { - @warn "(#{type-of($n)}) #{$n} is not a valid span."; - } @else if unitless($n) { - $context: susy-sum($columns, $gutters, if(is-split($span), wide, narrow)); - $spread: if(is-inside($span), $spread or wide, $spread); - $span-sum: susy($n, $location, $columns, $gutters, $spread); - - $_math: susy-get(math, $span); - $_column-width: susy-get(column-width, $span); - @if $_math == static { - $width: $span-sum * valid-column-math($_math, $_column-width); - } @else { - $width: percentage($span-sum / $context); - } - } @else { - $width: $n; - } - - @return $width; -} diff --git a/_sass/vendor/susy/susy/language/susy/_validation.scss b/_sass/vendor/susy/susy/language/susy/_validation.scss deleted file mode 100644 index a235b176..00000000 --- a/_sass/vendor/susy/susy/language/susy/_validation.scss +++ /dev/null @@ -1,16 +0,0 @@ -// Validation -// ========== - - -// Validate Column Math -// -------------------- -@function valid-column-math( - $math, - $column-width -) { - @if $math == static and not($column-width) { - @error 'Static math requires a valid column-width setting.'; - } - - @return $column-width; -} diff --git a/_sass/vendor/susy/susy/language/susyone/_background.scss b/_sass/vendor/susy/susy/language/susyone/_background.scss deleted file mode 100644 index 38c6726b..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_background.scss +++ /dev/null @@ -1,18 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -@import "compass/layout/grid-background"; -@import "compass/css3/background-origin"; -@import "compass/css3/background-clip"; - -// --------------------------------------------------------------------------- -// Susy Grid Background -// -// A wrapper for the compass "column-grid-background" mixin -// Uses all your settings to create a grid background for a container element. -// Note: Sub-pixel rounding can lead to several pixels of variation between browsers. -@mixin susy-grid-background(){ - @include column-grid-background($total-columns, column(), gutter(), 0); - @include background-origin(content-box); - @include background-clip(content-box); -} diff --git a/_sass/vendor/susy/susy/language/susyone/_functions.scss b/_sass/vendor/susy/susy/language/susyone/_functions.scss deleted file mode 100644 index 68184589..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_functions.scss +++ /dev/null @@ -1,377 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -// We need access to some basic font settings for handling media-queries. -@import "compass/typography/vertical_rhythm"; - -// For now, we also need this... -$browser-default-font-size-px : 16px; -$browser-default-font-size-percent : 100%; -$browser-default-font-size-pt : 12pt; - -$rem-with-px-fallback : true !default; - -// --------------------------------------------------------------------------- -// Sass list Functions - -// Return a list with specific items removed -// -// filter($list, $target) -// - $list : The list to filter. -// - $target : An item to be removed from the list. -@function filter($list, $target) { - $clean: compact(); - @if index($list, $target) { - @each $item in $list { - $clean: if($item == $target, $clean, append($clean, $item)); - } - } @else { $clean: $list; } - @return $clean; -} - -// --------------------------------------------------------------------------- -// Don't use static output when it will break things - -// Switch element-level output to fluid, when container-width is wrong for static -// -// fix-static-misalignment([$style, $width]) -// - $style: $container-style. -// - $width: $container-width. -@function fix-static-misalignment( - $style: $container-style, - $width: $container-width -) { - @if $container-width and $container-width != container-outer-width($width: false) { - $style: fluid; - } - @return $style; -} - -// --------------------------------------------------------------------------- -// Grid Functions - -// Returns the full width of a grid based on your grid settings. -// -// $columns : The number of columns to get width for. -@function columns-width( - $columns : $total-columns -) { - @if round($columns) != $columns { - @warn "Susy works best with integer column-spans." + - "For partial-columns, you may need to finesse the math by hand using functions directly."; - } - @return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width); -} - -// Return the grid width after adding or subtracting grid padding -// -// $width : the width of the grid without padding; -// $operation : ( add | subtract ) if padding should be added or subtracted; -@function handle-grid-padding( - $width, - $operation : subtract -) { - $pad: $grid-padding*2; - - @if comparable($width, $grid-padding) { - $width: if($operation == subtract, $width - $pad, $width + $pad); - } @else { - @warn "$grid-padding must be set in units comparable to the container width."; - } - - @return $width; -} - -// Return the full outer width of a Container element. -// -// $columns : The number of columns in the Grid Layout. -@function container-outer-width( - $columns : $total-columns, - $width : $container-width -) { - $outerwidth: if($width, $width, columns-width($columns)); - - @if $width { - @if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); } - } @else { - @if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); } - } - - @return $outerwidth; -} - -// Return the percentage width of a single column in a given 'context'. -// -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function column( - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, $column-width, relative-width($column-width, $context)); -} - -// Return the percentage width of multiple 'columns' in a given 'context'. -// -// $columns : The number of columns to get relative width for. -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function columns( - $columns, - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context)); -} - -// Return the percentage width of a single gutter in a given 'context'. -// -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function gutter( - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, $gutter-width, relative-width($gutter-width, $context)); -} - -// Return the percentage width of a given value in a given 'context'. -// -// $width : Any given width value. -// $context : The grid context in columns, if nested. -@function relative-width( - $width, - $context : $total-columns -) { - @return percentage($width / columns-width($context)); -} - -// Return the total space occupied by multiple columns and associated gutters. -// Useful for adding padding or margins (prefix, suffix, push, pull, etc.) -// -// $columns : The number of columns to get relative space for. -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function space( - $columns, - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0); -} - -// Accept a list including column-count and (optional) position. -// Return either the column count or the position alone. -// -// $columns : the list to split and interprate. -// $request : The value to return, either 'columns' or 'position'. -@function split-columns-value( - $columns, - $request : columns -) { - $pos : false; - $cols : false; - - @each $var in $columns { - @if (type-of($var) == 'string') { - $pos: $var; - } @else { - @if (type-of($var) == 'number') and (unitless($var)) { - $cols: $var; - } @else { - @warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.'; - } - } - } - - @if $request == 'columns' { - @return $cols; - } @else { - @if $request == 'position' { - @return $pos; - } @else { - @warn '"#{$request}" is not a valid value for $request'; - } - } -} - -// Accept nth-selector variables, and format them as a valid CSS3 selector. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -@function format-nth( - $n : last, - $selector : child -) { - @if ($n == 'last') or ($n =='first') or ($n =='only') { - $selector: '#{$n}-#{$selector}'; - } @else { - $selector: 'nth-#{$selector}(#{$n})'; - } - @return $selector; -} - -// --------------------------------------------------------------------------- -// Media Functions - -// Return an em value adjusted to match the browser default font size. -// Note: This only works if actual sizes are set relative to browser defaults. -// -// $ems : The initial value to be converted. -// $font-size : The current font-size in. -@function base-ems( - $ems, - $font-size: $base-font-size -){ - $font-size : if(unit($ems) == 'rem', $base-font-size, $font-size); - $unit : unit($font-size); - $mult : $ems / ($ems * 0 + 1); - - @if $unit == 'px' { - @return $font-size / $browser-default-font-size-px * $mult * 1em; - } - @else if $unit == '%' { - @return $font-size / $browser-default-font-size-percent * $mult * 1em; - } - @else if $unit == 'em' { - @return $font-size / 1em * $mult * 1em; - } - @else if $unit == 'pt' { - @return $font-size / $browser-default-font-size-pt * $mult * 1em; - } - @else { - @warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.'; - } -} - -// This name will be deprecated... -@function absolute-ems( - $ems, - $font-size: $base-font-size -){ - @return base-ems( $ems, $font-size); - } - -// Return a length, after any em-values have been sent through absolute-ems(). -// -// $length : The length value to be checked and adjusted if necessary. -// $font-size : The current font-size in px. -@function fix-ems( - $length, - $font-size: $base-font-size -){ - @if $length { - @if (unit($length) == 'em') or (unit($length) == 'rem') { - $length: absolute-ems($length,$font-size); - } - } - @return $length; -} - -// Sort a list of arguments into "$min $layout $max $ie" order, and return the list. -// -// $media-layout : a list of values [$min $layout $max $ie] including... -// : - one unitless number (columns in a layout) -// : - two optional lengths (min and max-width media-query breakpoints). -// : - one optional boolean or string to trigger fallback support for IE. -// $font-size : [optional] The base font-size of your layout, if you are using ems. -// : - defaults to $base-font-size -@function medialayout( - $media-layout, - $font-size: $base-font-size -) { - $media : false; - $min : false; - $layout : false; - $max : false; - $ie : false; - $has-layout : false; - - @each $val in $media-layout { - @if (type-of($val) == "number") { - @if unitless($val) { - $layout : $val; - $has-layout : true; - } @else { - @if ($has-layout) and not($media) { - $max: $val; - } @else { - @if $media { - $media: join($media,$val); - } @else { - $media: $val; - } - } - } - } @else { - $ie: $val; - } - } - @if (length($media) > 0) { - @if (length($media) == 1) { - $min: nth($media,1); - } @else { - $min: nth($media,1); - $max: nth($media,2); - @if comparable($min, $max) { - @if ($min > $max) { - $max: nth($media,1); - $min: nth($media,2); - } - } @else { - @warn "Can't compare incompatible units." + - "Using #{$min} for min-width, and #{$max} for max-width"; - } - @if (length($media) > 2) { - @warn "You can only send two lengths: a min-width and an (optional) max-width." + - "You sent #{length($media)}: #{$media}"; - } - } - } - - // media-queries must be set in ems relative to the browser default - // rather than the font-size set in CSS. - $min: fix-ems($min,$font-size); - $max: fix-ems($max,$font-size); - - @return $min $layout $max $ie; -} - -// Return the nearest layout (column-count) above a given breakpoint. -// -// $min : The min-width media-query breakpoint above which to establish a new layout. -@function get-layout( - $min -) { - $min : fix-ems($min); - $return : false; - - @if comparable($min, $column-width) { - $return : ceil(($min + $gutter-width) / ($column-width + $gutter-width)); - } @else { - @warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable."; - } - - @return $return; -} - -// Check to see if a given $media-layout list is simply the default. -// -// $media-layout : a list of values including - -// : One unitless number (columns in a layout) -// : Two optional lengths (min and max-width media-query breakpoints). -// : One optional boolean or string to trigger fallback support for IE. -@function is-default-layout( - $media-layout -) { - $media-layout : medialayout($media-layout); - $min : nth($media-layout,1); - $layout-cols : nth($media-layout,2); - $max : nth($media-layout,3); - - @if $min or $max { - @return false; - } @else { - @return if($layout-cols == $total-columns,true,false); - } -} diff --git a/_sass/vendor/susy/susy/language/susyone/_grid.scss b/_sass/vendor/susy/susy/language/susyone/_grid.scss deleted file mode 100644 index 491c6229..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_grid.scss +++ /dev/null @@ -1,312 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -@import "compass/utilities/general/clearfix"; -@import "compass/css3/box-sizing"; - -// --------------------------------------------------------------------------- -// Border-Box Sizing - -// Apply the border-box sizing model to all elements -// and adjust the grid math appropriately. -@mixin border-box-sizing { - $border-box-sizing: true !global; - * { @include box-sizing(border-box); } -} - -// --------------------------------------------------------------------------- -// Container - -// Set the width of a container -// -// $columns : The number of columns in the Grid Layout. -@mixin set-container-width( - $columns : $total-columns, - $style : $container-style, - $px-vals : $pixel-values-only -){ - $width: container-outer-width($columns); - - @if $style == 'static' { - @if $px-vals == true { - width: round(convert-length($width, px)); - } @else { - @include rem(width, $width); - } - } @else { - @if $style == 'fluid' { - @if unit($width) == '%' { - @if $px-vals == true { - width: round(convert-length($width, px)); - } @else { - @include rem(width, $width); - } - } - } @else { - @if $px-vals == true { - max-width: round(convert-length($width, px)); - } @else { - @include rem(max-width, $width); - } - - @include for-legacy-browser(ie,"6") { - @if unit($width) == 'rem' { - _width: round(convert-length($width, px)); - } @else { - _width: $width; - } - } - } - } -} - -// Set the outer grid-containing element(s). -// -// $columns : The number of columns in the container. -@mixin apply-container( - $columns : $total-columns, - $px-vals : $pixel-values-only -){ - @include pie-clearfix; - @include set-container-width($columns); - @if $px-vals == true { - padding-left: round(convert-length($grid-padding, px)); - padding-right: round(convert-length($grid-padding, px)); - } @else { - @include rem(padding-left, $grid-padding); - @include rem(padding-right, $grid-padding); - } - margin: { left: auto; right: auto; } -} - -// Set one or more layouts on a grid-containing element at any number of media-query breakpoints. -// -// $media-layout-1 : [default:$total-columns] A list of values including - -// : One unitless number (representing columns in a layout) -// : Two optional lengths (representing min and max-width media-query breakpoints). -// $media-layout-2 ...-10 : [optional] Same as $media-layout-1 -@mixin container( - $media-layouts... -){ - $media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns); - - @each $ml in $media-layouts { - @if is-default-layout($ml) { - @include apply-container; - } @else { - @include at-breakpoint($ml) { - @include apply-container; - } - } - } -} - -// --------------------------------------------------------------------------- -// Columns - -// Create a grid element spanning any number of 'columns' in a grid 'context'. -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $padding : [optional] Padding applied to the inside of individual grid columns. -// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px) -// : Padding values are applied only on the horizontal axis in from-to order -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin span-columns( - $columns, - $context : $total-columns, - $padding : false, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - $pos : split-columns-value($columns,position); - $cols : split-columns-value($columns,columns); - $pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); - $pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); - - @if $padding != false { - $pad-from : nth($padding, 1); - - @if length($padding) > 1 { - $pad-to: nth($padding, 2); - } @else { - $pad-to: $pad-from; - } - - $pad-from : if($style == static, $pad-from, relative-width($pad-from, $context)); - $pad-to : if($style == static, $pad-to, relative-width($pad-to, $context)); - - padding-#{$from}: $pad-from; - padding-#{$to}: $pad-to; - } - - width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from); - - @if ($pos == 'omega') { - @include omega($from); - } @else { - float: $from; - margin-#{$to}: gutter($context, $style); - @include for-legacy-browser(ie, "6") { - display: inline; - } - } -} - -// Apply to elements spanning the last column, to account for the page edge. -// Only needed as an override. Normally 'omega' can just be called by `columns`. -// -// $from : The start-direction for your document. -@mixin omega( - $from : $from-direction -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: $omega-float; - margin-#{$to}: 0; - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: - $gutter-width; - @include for-legacy-browser(ie, "6") { - display: inline; - } - } -} - -// Shortcut to apply omega to a specific subset of elements. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -// $from : The start-direction for your document. -@mixin nth-omega( - $n : last, - $selector : child, - $from : $from-direction -) { - $from : unquote($from); - - &:#{format-nth($n,$selector)} { - @if $n == "first" { - @include omega($from); - } @else { - @include with-browser-ranges(css-sel3) { - @include omega($from); - } - } - } -} - - - -// --------------------------------------------------------------------------- -// Resets - -// Reset a '+columns' grid element to default block behavior -// -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin reset-columns( - $from: $from-direction -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: none; - width: auto; - margin-#{$to}: auto; - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: auto; - @include for-legacy-browser(ie, "6") { - display: block; - } - } -} - -// Apply to elements previously set as omega. -// This will return floats and margins back to non-omega settigns. -// -// $context : [optional] The context (columns spanned by parent). -// $from : The start-direction for your document. -// $style : The container style to use. -@mixin remove-omega( - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: $from; - margin-#{$to}: gutter($context, $style); - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: auto; - } -} - -// Shortcut to apply remove-omega to a specific subset of elements. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -// $context : [optional] The context (columns spanned by parent). -// $from : The start-direction for your document. -// $style : The container style to use. -@mixin remove-nth-omega( - $n : last, - $selector : child, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - - &:#{format-nth($n,$selector)} { - @if $n == "first" { - @include remove-omega($context, $from, $style); - } @else { - @include with-browser-ranges(css-sel3) { - @include remove-omega($context, $from, $style); - } - } - } -} - - -// --------------------------------------------------------------------------- -// Change Settings - -@mixin with-grid-settings( - $columns: $total-columns, - $width: $column-width, - $gutter: $gutter-width, - $padding: $grid-padding -) { - // keep the defaults around - $default-columns: $total-columns; - $default-width: $column-width; - $default-gutter: $gutter-width; - $default-padding: $grid-padding; - - // use the new settings - $total-columns: $columns !global; - $column-width: $width !global; - $gutter-width: $gutter !global; - $grid-padding: $padding !global; - - // apply to contents - @content; - - // re-instate the defaults - $total-columns: $default-columns !global; - $column-width: $default-width !global; - $gutter-width: $default-gutter !global; - $grid-padding: $default-padding !global; -} diff --git a/_sass/vendor/susy/susy/language/susyone/_isolation.scss b/_sass/vendor/susy/susy/language/susyone/_isolation.scss deleted file mode 100644 index 2b70038b..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_isolation.scss +++ /dev/null @@ -1,51 +0,0 @@ -// --------------------------------------------------------------------------- -// Isolation - -// Isolate the position of a grid element (use in addition to span-columns) -// -// $location : The grid column to isolate in, relative to the container; -// $context : [optional] The context (columns spanned by parent). -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin isolate( - $location, - $context: $total-columns, - $from: $from-direction, - $style: fix-static-misalignment() -) { - $to: opposite-position($from); - margin-#{$to}: -100%; - margin-#{$from}: space($location - 1, $context, $style); -} - -// Isolate a group of elements in a grid, using nth-child selectors -// -// $columns : The column-width of each item on the grid; -// $context : [optional] The context (columns spanned by parent). -// $selector : [child | of-type | last-of-type ] (default is 'child') -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin isolate-grid( - $columns, - $context: $total-columns, - $selector: 'child', - $from: $from-direction, - $style: fix-static-misalignment() -) { - $to: opposite-position($from); - $location: 1; - $line: floor($context / $columns); - - @include span-columns($columns, $context, $from: $from, $style: $style); - margin-#{$to}: -100%; - - @for $item from 1 through $line { - $nth: '#{$line}n + #{$item}'; - &:#{format-nth($nth,$selector)} { - margin-#{$from}: space($location - 1, $context, $style); - @if $location == 1 { clear: $from; } - @else { clear: none; } - - $location: $location + $columns; - @if $location > $context { $location: 1; } - } - } -} diff --git a/_sass/vendor/susy/susy/language/susyone/_margin.scss b/_sass/vendor/susy/susy/language/susyone/_margin.scss deleted file mode 100644 index accbbe65..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_margin.scss +++ /dev/null @@ -1,93 +0,0 @@ -// --------------------------------------------------------------------------- -// Margin Mixins - -// Apply 'columns' margin before an element to push it along the grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pre( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - margin-#{$from}: space($columns, $context, $style); -} - -// 'push' is a synonymn for 'pre' -@mixin push( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @include pre($columns, $context, $from, $style); -} - -// Apply negative 'columns' margin before an element to pull it along the grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pull( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - margin-#{$from}: 0 - space($columns, $context, $style); -} - -// Apply 'columns' margin after an element to contain it in a grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin post( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - margin-#{$to}: space($columns, $context, $style); -} - -// Apply 'columns' before and/or after an element to contain it on a grid. -// -// $pre : The number of columns to add as margin before. -// $post : The number of columns to add as margin after. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin squish( - $pre : false, - $post : false, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @if $pre { - @include pre($pre, $context, $from, $style) - } - @if $post { - @include post($post, $context, $from, $style) - } -} diff --git a/_sass/vendor/susy/susy/language/susyone/_media.scss b/_sass/vendor/susy/susy/language/susyone/_media.scss deleted file mode 100644 index ca860fc9..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_media.scss +++ /dev/null @@ -1,105 +0,0 @@ -// --------------------------------------------------------------------------- -// Media Mixins - -// Create a new layout context for (@content) descendants. -// -// $layout-cols : a (unitless) number of columns to use for this layout. -@mixin layout( - $layout-cols -) { - // store default $total-columns setting for later, then change it. - $default-layout : $total-columns; - $total-columns : $layout-cols !global; - - // apply children in this new layout context. - @content; - - // return to default $total-columns setting. - $total-columns : $default-layout !global; -} - -// Nest a block of code inside a new media-query and layout context. -// -// $media-layout : a list of values [$min $layout $max $ie] including... -// : - one unitless number (columns in a layout) -// : - two optional lengths (min and max-width media-query breakpoints). -// : - one optional boolean or string to trigger fallback support for IE. -// $font-size : [optional] The base font-size of your layout, if you are using ems. -// : - defaults to $base-font-size -@mixin at-breakpoint( - $media-layout, - $font-size: $base-font-size -) { - $media-layout : medialayout($media-layout,$font-size); - $min : nth($media-layout,1); - $layout : nth($media-layout,2); - $max : nth($media-layout,3); - $ie : nth($media-layout,4); - - @if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) { - @warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work."; - } - - // We need to have either a min-width breakpoint or a layout in order to proceed. - @if $min or $layout or $max { - - // If we don't have a layout, we create one based on the min-width. - @if not($layout) { - $layout: get-layout($min); - } - - // If we still don't have a layout, we have a problem. - @if $layout { - // Set our new layout context. - @include layout($layout) { - @if $breakpoint-media-output { - @include with-browser-ranges(css-mediaqueries) { - @if $min and $max { - // Both $min and $max - @media (min-width: $min) and (max-width: $max) { - @content; - } - } @else { - @if not($min) and not($max) { - // Neither $min nor $max: - // We can create a breakpoint based on the number of columns in the layout. - $min: fix-ems(container-outer-width($width: false)); - } - @if $min { - // Min only: - @media (min-width: $min) { - @content; - } - } @else { - // Max only: - @media (max-width: $max) { - @content; - } - } - } - } - } - // Set an IE fallback - @if $ie and $breakpoint-ie-output { - @if (type-of($ie) == 'bool') { - $ie: 'lt-ie9'; - } - .#{$ie} & { - @content; - } - } - - @if $breakpoint-raw-output { - @content; - } - } - } @else { - @warn "We were unable to determine a layout for your breakpoint."; - } - - } @else { - @warn "You need to provide either a valid layout (number of columns)" - + "or a valid media-query min-width breakpoint (length)."; - } - -} diff --git a/_sass/vendor/susy/susy/language/susyone/_padding.scss b/_sass/vendor/susy/susy/language/susyone/_padding.scss deleted file mode 100644 index 8e6394a4..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_padding.scss +++ /dev/null @@ -1,92 +0,0 @@ -// --------------------------------------------------------------------------- -// Padding Mixins - -// add empty colums as padding before an element. -// $columns : The number of columns to prefix. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin prefix( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - padding-#{$from}: space($columns, $context, $style); -} - -// add empty colums as padding after an element. -// $columns : The number of columns to suffix. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin suffix( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - padding-#{$to}: space($columns, $context, $style); -} - -// add empty colums as padding before and after an element. -// $columns : The number of columns to pad. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pad( - $prefix : false, - $suffix : false, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @if $prefix { - @include prefix($prefix, $context, $from, $style); - } - @if $suffix { - @include suffix($suffix, $context, $from, $style); - } -} - -// Bleed into colums with margin/padding on any side of an element. -// $width : The side of the bleed. -// : Any unit-length will be used directly. -// : Any unitless number will be used as a column-count. -// : Use "2 of 6" format to represent 2 cals in a 6-col nested context. -// $sides : One or more sides to bleed [ top | right | bottom | left | all ]. -// $style : The container style to use. -@mixin bleed( - $width: $grid-padding, - $sides: left right, - $style: fix-static-misalignment() -) { - @if $border-box-sizing { @include box-sizing(content-box) } - - @if type-of($width) == 'list' { - $width: filter($width, of); - $width: space(nth($width,1), nth($width,2), $style); - } @else if unitless($width) { - $width: space($width, $style: $style); - } - - @if $sides == 'all' { - margin: - $width; - padding: $width; - } @else { - @each $side in $sides { - margin-#{$side}: - $width; - padding-#{$side}: $width; - } - } -} diff --git a/_sass/vendor/susy/susy/language/susyone/_settings.scss b/_sass/vendor/susy/susy/language/susyone/_settings.scss deleted file mode 100644 index e8ff9c84..00000000 --- a/_sass/vendor/susy/susy/language/susyone/_settings.scss +++ /dev/null @@ -1,60 +0,0 @@ -// --------------------------------------------------------------------------- -// Susy Settings - -// The total number of columns in the grid -$total-columns : 12 !default; - -// The width of columns and gutters. -// These must all be set with the comparable units. -$column-width : 4em !default; -$gutter-width : 1em !default; - -// Padding on the left and right of a Grid Container. -$grid-padding : $gutter-width !default; - -// --------------------------------------------------------------------------- -// Advanced Settings - -// From Direction: -// Controls for right-to-left or bi-directional sites. -$from-direction : left !default; - -// Omega Float Direction: -// The direction that +omega elements are floated by deafult. -$omega-float : opposite-position($from-direction) !default; - -// Container Width: -// Override the total width of your grid, using any length (50em, 75%, etc.) -$container-width : false !default; - -// Container Style: -// 'magic' - Static (fixed or elastic) when there's enough space, -// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM). -// 'static' - Forces the grid container to remain static at all times. -// 'fluid' - Forces the grid to remain fluid at all times. -// (this will overrule any static $container-width settings) -$container-style : magic !default; - -// Border-Box Sizing -// Adjust the grid math appropriately for box-sizing: border-box; -// Warning: This does not actually apply the new box model! -// In most cases you can ignore this setting, -// and simply apply the border-box-sizing mixin. -$border-box-sizing : false !default; - -// Pixel Values only: -// Make sure only pixel values are set for the container width. -$pixel-values-only : false !default; - -// --------------------------------------------------------------------------- -// IE Settings - -// When you are using a seperate IE stylesheet, -// you can use these settings to control the output of at-breakpoint. -// By default, at-breakpoint will output media-queries as well as -// any defined ie-fallback classes. -$breakpoint-media-output : true !default; -$breakpoint-ie-output : true !default; - -// Danger Zone! Only set as 'true' in IE-specific style sheets. -$breakpoint-raw-output : false !default; diff --git a/_sass/vendor/susy/susy/output/_float.scss b/_sass/vendor/susy/susy/output/_float.scss deleted file mode 100644 index 9c24051c..00000000 --- a/_sass/vendor/susy/susy/output/_float.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Float API -// ========= - -@import "shared"; - -@import "float/container"; -@import "float/span"; -@import "float/end"; -@import "float/isolate"; diff --git a/_sass/vendor/susy/susy/output/_shared.scss b/_sass/vendor/susy/susy/output/_shared.scss deleted file mode 100644 index dd9df4ed..00000000 --- a/_sass/vendor/susy/susy/output/_shared.scss +++ /dev/null @@ -1,15 +0,0 @@ -// Shared API -// ========== - -@import "support"; - -@import "shared/inspect"; -@import "shared/output"; -@import "shared/direction"; -@import "shared/background"; -@import "shared/container"; -@import "shared/margins"; -@import "shared/padding"; - - - diff --git a/_sass/vendor/susy/susy/output/_support.scss b/_sass/vendor/susy/susy/output/_support.scss deleted file mode 100644 index 53dbc9c3..00000000 --- a/_sass/vendor/susy/susy/output/_support.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Susy Browser Support -// ==================== - -@import "support/support"; -@import "support/prefix"; -@import "support/background"; -@import "support/box-sizing"; -@import "support/rem"; -@import "support/clearfix"; diff --git a/_sass/vendor/susy/susy/output/float/_container.scss b/_sass/vendor/susy/susy/output/float/_container.scss deleted file mode 100644 index 121eb11a..00000000 --- a/_sass/vendor/susy/susy/output/float/_container.scss +++ /dev/null @@ -1,16 +0,0 @@ -// Float Container API -// =================== - -// Float Container -// --------------- -// - [$width] : -// - [$justify] : left | center | right -// - [$math] : fluid | static -@mixin float-container( - $width, - $justify: auto auto, - $property: max-width -) { - @include susy-clearfix; - @include container-output($width, $justify, $property); -} diff --git a/_sass/vendor/susy/susy/output/float/_end.scss b/_sass/vendor/susy/susy/output/float/_end.scss deleted file mode 100644 index 3369997f..00000000 --- a/_sass/vendor/susy/susy/output/float/_end.scss +++ /dev/null @@ -1,40 +0,0 @@ -// Float Ends API -// ============== - -// Susy End Defaults -// ----------------- -// - PRIVATE -@include susy-defaults(( - last-flow: to, -)); - -// Float Last -// ---------- -// - [$flow] : ltr | rtl -@mixin float-last( - $flow: map-get($susy-defaults, flow), - $last-flow: map-get($susy-defaults, last-flow), - $margin: 0 -) { - $to: to($flow); - - $output: ( - float: if($last-flow == to, $to, null), - margin-#{$to}: $margin, - ); - - @include output($output); -} - -// Float First -// ----------- -// - [$flow] : ltr | rtl -@mixin float-first( - $flow: map-get($susy-defaults, flow) -) { - $output: ( - margin-#{from($flow)}: 0, - ); - - @include output($output); -} diff --git a/_sass/vendor/susy/susy/output/float/_isolate.scss b/_sass/vendor/susy/susy/output/float/_isolate.scss deleted file mode 100644 index 4dd3c230..00000000 --- a/_sass/vendor/susy/susy/output/float/_isolate.scss +++ /dev/null @@ -1,22 +0,0 @@ -// Float Isolation API -// =================== - -// Isolate Output -// -------------- -// - $push : -// - [$flow] : ltr | rtl -@mixin isolate-output( - $push, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - float: $from, - margin-#{$from}: $push, - margin-#{$to}: -100%, - ); - - @include output($output); -} diff --git a/_sass/vendor/susy/susy/output/float/_span.scss b/_sass/vendor/susy/susy/output/float/_span.scss deleted file mode 100644 index 5b732ccb..00000000 --- a/_sass/vendor/susy/susy/output/float/_span.scss +++ /dev/null @@ -1,35 +0,0 @@ -// Float Span API -// ============== - -// Float Span Output -// ----------------- -// - $width : -// - [$float] : from | to -// - [$margin-before] : -// - [$margin-after] : -// - [$padding-before] : -// - [$padding-after] : -// - [$flow] : ltr | rtl -@mixin float-span-output( - $width, - $float : from, - $margin-before : null, - $margin-after : null, - $padding-before : null, - $padding-after : null, - $flow : map-get($susy-defaults, flow) -) { - $to : to($flow); - $from : from($flow); - - $output: ( - width: $width, - float: if($float == to, $to, null) or if($float == from, $from, null), - margin-#{$from}: $margin-before, - margin-#{$to}: $margin-after, - padding-#{$from}: $padding-before, - padding-#{$to}: $padding-after, - ); - - @include output($output); -} diff --git a/_sass/vendor/susy/susy/output/shared/_background.scss b/_sass/vendor/susy/susy/output/shared/_background.scss deleted file mode 100644 index c230f613..00000000 --- a/_sass/vendor/susy/susy/output/shared/_background.scss +++ /dev/null @@ -1,26 +0,0 @@ -// Grid Background API -// =================== -// - Sub-pixel rounding can lead to several pixels variation between browsers. - -// Grid Background Output -// ---------------------- -// - $image: background-image -// - $size: background-size -// - $clip: background-clip -// - [$flow]: ltr | rtl -@mixin background-grid-output ( - $image, - $size: null, - $clip: null, - $flow: map-get($susy-defaults, flow) -) { - $output: ( - background-image: $image, - background-size: $size, - background-origin: $clip, - background-clip: $clip, - background-position: from($flow) top, - ); - - @include output($output); -} diff --git a/_sass/vendor/susy/susy/output/shared/_container.scss b/_sass/vendor/susy/susy/output/shared/_container.scss deleted file mode 100644 index 7c7d4f17..00000000 --- a/_sass/vendor/susy/susy/output/shared/_container.scss +++ /dev/null @@ -1,21 +0,0 @@ -// Shared Container API -// ==================== - -// Container Output -// ---------------- -// - [$width] : -// - [$justify] : left | center | right -// - [$math] : fluid | static -@mixin container-output( - $width, - $justify: auto auto, - $property: max-width -) { - $output: ( - #{$property}: $width or 100%, - margin-left: nth($justify, 1), - margin-right: nth($justify, 2), - ); - - @include output($output); -} diff --git a/_sass/vendor/susy/susy/output/shared/_direction.scss b/_sass/vendor/susy/susy/output/shared/_direction.scss deleted file mode 100644 index abb9c36f..00000000 --- a/_sass/vendor/susy/susy/output/shared/_direction.scss +++ /dev/null @@ -1,42 +0,0 @@ -// Direction Helpers -// ================= - -// Susy Flow Defaults -// ------------------ -// - PRIVATE -@include susy-defaults(( - flow: ltr, -)); - -// Get Direction -// ------------- -// Return the 'from' or 'to' direction of a ltr or rtl flow. -// - [$flow] : ltr | rtl -// - [$key] : from | to -@function get-direction( - $flow: map-get($susy-defaults, flow), - $key: from -) { - $return: if($flow == rtl, (from: right, to: left), (from: left, to: right)); - @return map-get($return, $key); -} - -// To -// -- -// Return the 'to' direction of a flow -// - [$flow] : ltr | rtl -@function to( - $flow: map-get($susy-defaults, flow) -) { - @return get-direction($flow, to); -} - -// From -// ---- -// Return the 'from' direction of a flow -// - [$flow] : ltr | rtl -@function from( - $flow: map-get($susy-defaults, flow) -) { - @return get-direction($flow, from); -} diff --git a/_sass/vendor/susy/susy/output/shared/_inspect.scss b/_sass/vendor/susy/susy/output/shared/_inspect.scss deleted file mode 100644 index b0af9b6d..00000000 --- a/_sass/vendor/susy/susy/output/shared/_inspect.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Debugging -// ========= - -// Susy Inspect -// ------------ -// Output arguments passed to a inspect. -// - $mixin : -// - $inspec : - -@mixin susy-inspect( - $mixin, - $inspect -) { - $show: false; - - @each $item in $inspect { - @if index($item, inspect) { - $show: true; - } - } - - @if $show or susy-get(debug inspect) { - -susy-#{$mixin}: inspect($inspect); - } -} diff --git a/_sass/vendor/susy/susy/output/shared/_margins.scss b/_sass/vendor/susy/susy/output/shared/_margins.scss deleted file mode 100644 index cd73e8cf..00000000 --- a/_sass/vendor/susy/susy/output/shared/_margins.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Margins API -// =========== - -// Margin Output -// ------------- -// - $before : -// - $after : -// - [$flow] : ltr | rtl -@mixin margin-output( - $before, - $after, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - margin-#{$from}: $before, - margin-#{$to}: $after, - ); - - @include output($output); -} diff --git a/_sass/vendor/susy/susy/output/shared/_output.scss b/_sass/vendor/susy/susy/output/shared/_output.scss deleted file mode 100644 index 20fc2d61..00000000 --- a/_sass/vendor/susy/susy/output/shared/_output.scss +++ /dev/null @@ -1,14 +0,0 @@ -// Output -// ====== - -// Output -// ------ -// Output CSS with proper browser support. -// - $styles : -@mixin output( - $styles -) { - @each $prop, $val in $styles { - @include susy-support($prop, $val); - } -} diff --git a/_sass/vendor/susy/susy/output/shared/_padding.scss b/_sass/vendor/susy/susy/output/shared/_padding.scss deleted file mode 100644 index 5069d0cb..00000000 --- a/_sass/vendor/susy/susy/output/shared/_padding.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Padding API -// =========== - -// Padding Output -// -------------- -// - $before : -// - $after : -// - [$flow] : ltr | rtl -@mixin padding-output( - $before, - $after, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - padding-#{$from}: $before, - padding-#{$to}: $after, - ); - - @include output($output); -} diff --git a/_sass/vendor/susy/susy/output/support/_background.scss b/_sass/vendor/susy/susy/output/support/_background.scss deleted file mode 100644 index b1415028..00000000 --- a/_sass/vendor/susy/susy/output/support/_background.scss +++ /dev/null @@ -1,58 +0,0 @@ -// Background Properties -// ===================== - -// Susy Background Image -// --------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-image( - $image -) { - @if susy-support(background-image, (mixin: background-image), $warn: false) { - @include background-image($image...); - } @else { - background-image: $image; - } -} - -// Susy Background Size -// --------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-size( - $size -) { - @if susy-support(background-options, (mixin: background-size)) { - @include background-size($size); - } @else { - background-size: $size; - } -} - -// Susy Background Origin -// ---------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-origin( - $origin -) { - @if susy-support(background-options, (mixin: background-origin)) { - @include background-origin($origin); - } @else { - background-origin: $origin; - } -} - -// Susy Background Clip -// -------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-clip( - $clip -) { - @if susy-support(background-options, (mixin: background-clip)) { - @include background-clip($clip); - } @else { - background-clip: $clip; - } -} diff --git a/_sass/vendor/susy/susy/output/support/_box-sizing.scss b/_sass/vendor/susy/susy/output/support/_box-sizing.scss deleted file mode 100644 index bf50bbc9..00000000 --- a/_sass/vendor/susy/susy/output/support/_box-sizing.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Box Sizing -// ========== - -// Box Sizing -// ---------- -// Check for an existing support mixin, or provide a simple fallback. -// - $model: -@mixin susy-box-sizing( - $model: content-box -) { - @if $model { - @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) { - @include box-sizing($model); - } @else { - $prefix: (moz, webkit, official); - @include susy-prefix(box-sizing, $model, $prefix); - } - } -} diff --git a/_sass/vendor/susy/susy/output/support/_clearfix.scss b/_sass/vendor/susy/susy/output/support/_clearfix.scss deleted file mode 100644 index 48c6e7b7..00000000 --- a/_sass/vendor/susy/susy/output/support/_clearfix.scss +++ /dev/null @@ -1,18 +0,0 @@ -// Susy Fallback Clearfix -// ====================== - - -// Clearfix -// -------- -// Check for an existing support mixin, or provide a simple fallback. -@mixin susy-clearfix { - @if susy-support(clearfix, (mixin: clearfix)) { - @include clearfix; - } @else { - &:after { - content: " "; - display: block; - clear: both; - } - } -} diff --git a/_sass/vendor/susy/susy/output/support/_prefix.scss b/_sass/vendor/susy/susy/output/support/_prefix.scss deleted file mode 100644 index f4e26ecc..00000000 --- a/_sass/vendor/susy/susy/output/support/_prefix.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Susy Prefix -// =========== - -// Prefix -// ------ -// Output simple prefixed properties. -// - $prop : -// - $val : -// - [$prefix] : -@mixin susy-prefix( - $prop, - $val, - $prefix: official -) { - @each $fix in $prefix { - $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}'); - @include susy-rem($fix, $val); - } -} diff --git a/_sass/vendor/susy/susy/output/support/_rem.scss b/_sass/vendor/susy/susy/output/support/_rem.scss deleted file mode 100644 index 0a807f79..00000000 --- a/_sass/vendor/susy/susy/output/support/_rem.scss +++ /dev/null @@ -1,22 +0,0 @@ -// rem Support -// =========== - -// rem -// --- -// Check for an existing support mixin, or output directly. -// - $prop : -// - $val : -@mixin susy-rem( - $prop, - $val -) { - $_reqs: ( - variable: rhythm-unit rem-with-px-fallback, - mixin: rem, - ); - @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem { - @include rem($prop, $val); - } @else { - #{$prop}: $val; - } -} diff --git a/_sass/vendor/susy/susy/output/support/_support.scss b/_sass/vendor/susy/susy/output/support/_support.scss deleted file mode 100644 index 96991135..00000000 --- a/_sass/vendor/susy/susy/output/support/_support.scss +++ /dev/null @@ -1,85 +0,0 @@ -// Browser Support -// =============== - -// Susy Support Defaults -// --------------------- -@include susy-defaults(( - use-custom: ( - clearfix: false, - background-image: true, - background-options: false, - breakpoint: true, - box-sizing: true, - rem: true, - ), -)); - - -// Susy Support [mixin] -// -------------------- -// Send property-value pairs to the proper support modules. -// - $prop : -// - $val : -@mixin susy-support( - $prop, - $val -) { - // Background Support - @if $prop == background-image { - @include susy-background-image($val); - } @else if $prop == background-size { - @include susy-background-size($val); - } @else if $prop == background-origin { - @include susy-background-origin($val); - } @else if $prop == background-clip { - @include susy-background-clip($val); - } - - // Box-Sizing Support - @else if $prop == box-sizing { - @include susy-box-sizing($val); - } - - // Rem Support - @else { - @include susy-rem($prop, $val); - } -} - - -// Susy Support [function] -// ----------------------- -// Check for support of a feature. -// - $feature : -// - e.g "rem" or "box-sizing" -// - $requirements : -// - e.g (variable: rem-with-px-fallback, mixin: rem) -// - $warn : -@function susy-support( - $feature, - $requirements: (), - $warn: true -) { - $_support: susy-get(use-custom $feature); - - @if $_support { - $_fail: false; - - @each $_type, $_req in $requirements { - @each $_i in $_req { - $_pass: call(unquote("#{$_type}-exists"), $_i); - - @if not($_pass) { - $_fail: true; - @if $warn { - @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available."; - } - } - } - } - - $_support: if($_fail, false, $_support); - } - - @return $_support; -} diff --git a/_sass/vendor/susy/susy/su/_grid.scss b/_sass/vendor/susy/susy/su/_grid.scss deleted file mode 100644 index 7fe2a02d..00000000 --- a/_sass/vendor/susy/susy/su/_grid.scss +++ /dev/null @@ -1,103 +0,0 @@ -// Column math -// =========== - - -// Is Symmetrical -// -------------- -// Returns true if a grid is symmetrical. -// - [$columns] : | -@function is-symmetrical( - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - @return if(type-of($columns) == number, $columns, null); -} - - -// Susy Count -// ---------- -// Find the number of columns in a given layout -// - [$columns] : | -@function susy-count( - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - @return is-symmetrical($columns) or length($columns); -} - - -// Susy Sum -// -------- -// Find the total sum of column-units in a layout -// - [$columns] : | -// - [$gutters] : -// - [$spread] : false/narrow | wide | wider -@function susy-sum( - $columns : susy-get(columns), - $gutters : susy-get(gutters), - $spread : false -) { - $columns: valid-columns($columns); - $gutters: valid-gutters($gutters); - - $spread: if($spread == wide, 0, if($spread == wider, 1, -1)); - $gutter-sum: (susy-count($columns) + $spread) * $gutters; - $column-sum: is-symmetrical($columns); - - @if not($column-sum) { - @each $column in $columns { - $column-sum: ($column-sum or 0) + $column; - } - } - - @return $column-sum + $gutter-sum; -} - - -// Susy Slice -// ---------- -// Return a subset of columns at a given location. -// - $span : -// - $location : -// - [$columns] : | -@function susy-slice( - $span, - $location, - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - $sub-columns: $span; - - @if not(is-symmetrical($columns)) { - $location: $location or 1; - $sub-columns: (); - @for $i from $location to ($location + $span) { - $sub-columns: append($sub-columns, nth($columns, $i)); - } - } - - @return $sub-columns; -} - - -// Susy -// ---- -// Find the sum of a column-span. -// - $span : -// - $location : -// - [$columns] : | -// - [$gutters] : -// - [$spread] : false/narrow | wide | wider -@function susy( - $span, - $location : false, - $columns : susy-get(columns), - $gutters : susy-get(gutters), - $spread : false -) { - $columns: valid-columns($columns); - $gutters: valid-gutters($gutters); - $span: susy-slice($span, $location, $columns); - - @return susy-sum($span, $gutters, $spread); -} diff --git a/_sass/vendor/susy/susy/su/_settings.scss b/_sass/vendor/susy/susy/su/_settings.scss deleted file mode 100644 index 8b439aaa..00000000 --- a/_sass/vendor/susy/susy/su/_settings.scss +++ /dev/null @@ -1,73 +0,0 @@ -// Settings -// ======== - -// Version -// ------- -$su-version: 1.1; - - -// Default Settings -// ---------------- -// PRIVATE: The basic settings -$susy-defaults: ( - columns: 4, - gutters: .25, -); - - -// User Settings -// ------------- -// - Define the $susy variable with a map of your own settings. -// - Set EITHER $column-width OR $container -// - Use $column-width for static layouts -$susy: () !default; - - -// Susy Defaults -// ------------- -// PRIVATE: Add defaults to Susy -@mixin susy-defaults( - $defaults -) { - $susy-defaults: map-merge($susy-defaults, $defaults) !global; -} - - -// Susy Set -// -------- -// Change one setting -// - $key : setting name -// - $value : setting value -@mixin susy-set( - $key-value... -) { - $susy: _susy-deep-set($susy, $key-value...) !global; -} - - -// Susy Get -// -------- -// Return one setting from a grid -// - $key : -// - $layout : -@function susy-get( - $key, - $layout: map-merge($susy-defaults, $susy) -) { - $layout: parse-grid($layout); - $_options: $layout $susy $susy-defaults; - $_break: false; - $_return: null; - - @each $opt in $_options { - @if type-of($opt) == map and not($_break) { - $_keyset: _susy-deep-has-key($opt, $key...); - @if $_keyset { - $_return: _susy-deep-get($opt, $key...); - $_break: true; - } - } - } - - @return $_return; -} diff --git a/_sass/vendor/susy/susy/su/_utilities.scss b/_sass/vendor/susy/susy/su/_utilities.scss deleted file mode 100644 index b737f212..00000000 --- a/_sass/vendor/susy/susy/su/_utilities.scss +++ /dev/null @@ -1,111 +0,0 @@ -// Map Functions -// ============= - - -// Truncate List -// ------------- -// - Return a list, truncated to a given length -@function _susy-truncate-list( - $list, - $length -) { - $_return: (); - - @for $i from 1 through length($list) { - $_return: if($i <= $length, append($_return, nth($list, $i)), $_return); - } - - @return $_return; -} - - -// Deep Get -// -------- -// - Return a value deep in nested maps -@function _susy-deep-get( - $map, - $keys... -) { - $_return: $map; - - @each $key in $keys { - @if type-of($_return) == map { - $_return: map-get($_return, $key); - } - } - - @return $_return; -} - - -// Deep Set -// -------- -// - Set a value deep in nested maps -@function _susy-deep-set( - $map, - $keys-value... -) { - $_value: nth($keys-value, -1); - $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1); - $_length: length($_keys); - $_return: (); - - @for $i from 1 through $_length { - $_n: 0 - $i; - $_level: _susy-truncate-list($_keys, $_length + $_n); - $_level: _susy-deep-get($map, $_level...); - $_merge: nth($_keys, $_n); - $_merge: ($_merge: $_value); - $_return: if($_level, map-merge($_level, $_merge), $_merge); - $_value: $_return; - } - - @return $_return; -} - - -// Deep Merge -// ---------- -// Return 2 objects of any depth, merged -@function _susy-deep-merge( - $map1, - $map2 -) { - - @if type-of($map1) != map or type-of($map2) != map { - $map1: $map2; - } @else { - @each $key, $value in $map2 { - $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value)); - $map1: map-merge($map1, $_new); - } - } - - @return $map1; -} - - -// Deep Has-Key -// ------------ -// - Return true if a deep key exists -@function _susy-deep-has-key( - $map, - $keys... -) { - $_return: null; - $_stop: false; - - @each $key in $keys { - @if not($_stop) { - $_return: map-has-key($map, $key); - } - - @if $_return { - $map: map-get($map, $key); - } @else { - $_stop: true; - } - } - - @return $_return; -} diff --git a/_sass/vendor/susy/susy/su/_validation.scss b/_sass/vendor/susy/susy/su/_validation.scss deleted file mode 100644 index 4c6ab8da..00000000 --- a/_sass/vendor/susy/susy/su/_validation.scss +++ /dev/null @@ -1,57 +0,0 @@ -// Math Validation -// =============== - - -// Valid Columns -// ------------- -// Check that a column setting is valid. -@function valid-columns( - $columns, - $silent: false -) { - $type: type-of($columns); - $return: null; - - @if $type == number and unitless($columns) { - $return: $columns; - } @else if $type == list { - $fail: null; - @each $col in $columns { - @if type-of($col) == number { - $fail: $fail or if(unitless($col), null, true); - } @else { - $fail: true; - } - } - $return: if($fail, $return, $columns); - } - - @if $return != $columns and not($silent) { - $return: null; - $warn: '$columns must be a unitless number or list of unitless numbers.'; - @warn $warn + ' Current value [#{$type}]: #{$columns}'; - } - - @return $return; -} - - -// Valid Gutters -// ------------- -// Check that a gutter setting is valid. -@function valid-gutters( - $gutters, - $silent: false -) { - $type: type-of($gutters); - $return: null; - - @if $type == number and unitless($gutters) { - $return: $gutters; - } @else if not($silent) { - $warn: '$gutters must be a unitless number.'; - @warn $warn + ' Current value [#{$type}]: #{$gutters}'; - } - - @return $return; -} diff --git a/assets/css/main.scss b/assets/css/main.scss index fab1b1f0..80ba817c 100644 --- a/assets/css/main.scss +++ b/assets/css/main.scss @@ -1,79 +1,8 @@ --- +# Only the main Sass file needs front matter (the dashes are enough) --- -/* - * Minimal Mistakes Jekyll Theme - * - * - Michael Rose - * - mademistakes.com - * - https://twitter.com/mmistakes - * -*/ +@charset "utf-8"; -/* - Variables - ========================================================================== */ - -@import "variables"; - - -/* - Vendor - ========================================================================== */ - -/* Breakpoint - media query mixins */ -@import "vendor/breakpoint/breakpoint"; -@include breakpoint-set("to ems", true); - -/* Font Awesome - icon font set */ -@import "vendor/font-awesome/font-awesome"; - -/* Magnific Popup - responsive lightbox */ -@import "vendor/magnific-popup/magnific-popup"; // Magnific Popup - -/* Susy - grid mixins */ -$susy: ( - columns: 12, - gutters: 1/4, - math: fluid, - output: float, - gutter-position: after, - container: $large, - global-box-sizing: border-box, - // debug: ( - // image: show, - // color: blue, - // output: overlay, - // toggle: top right, - // ), -); -@import "vendor/susy/susy"; - - -/* - Base - ========================================================================== */ - -@import "mixins"; -@import "reset"; -@import "base"; -@import "utilities"; -@import "animations"; -@import "tables"; -@import "buttons"; -@import "notices"; -@import "masthead"; -@import "navigation"; -@import "footer"; -@import "syntax"; -@import "forms"; - - -/* - Layout specific - ========================================================================== */ - -@import "page"; -@import "archive"; -@import "sidebar"; -@import "print"; +@import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}"; // skin +@import "minimal-mistakes"; // main partials diff --git a/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf index d4de13e8..401ec0f3 100644 Binary files a/assets/fonts/FontAwesome.otf and b/assets/fonts/FontAwesome.otf differ diff --git a/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot index c7b00d2b..e9f60ca9 100644 Binary files a/assets/fonts/fontawesome-webfont.eot and b/assets/fonts/fontawesome-webfont.eot differ diff --git a/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg index 8b66187f..855c845e 100644 --- a/assets/fonts/fontawesome-webfont.svg +++ b/assets/fonts/fontawesome-webfont.svg @@ -1,685 +1,2671 @@ - - + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf index f221e50a..35acda2f 100644 Binary files a/assets/fonts/fontawesome-webfont.ttf and b/assets/fonts/fontawesome-webfont.ttf differ diff --git a/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff index 6e7483cf..400014a4 100644 Binary files a/assets/fonts/fontawesome-webfont.woff and b/assets/fonts/fontawesome-webfont.woff differ diff --git a/assets/fonts/fontawesome-webfont.woff2 b/assets/fonts/fontawesome-webfont.woff2 index 7eb74fd1..4d13fc60 100644 Binary files a/assets/fonts/fontawesome-webfont.woff2 and b/assets/fonts/fontawesome-webfont.woff2 differ diff --git a/assets/js/_main.js b/assets/js/_main.js index 704d6c30..f51e9471 100644 --- a/assets/js/_main.js +++ b/assets/js/_main.js @@ -25,38 +25,10 @@ $(document).ready(function(){ // FitVids init $("#main").fitVids(); - // init sticky sidebar - $(".sticky").Stickyfill(); - - var stickySideBar = function(){ - var show = $(".author__urls-wrapper #toggle-nav").length === 0 ? $(window).width() > 1024 : !$(".author__urls-wrapper #toggle-nav").is(":visible"); - // console.log("has button: " + $(".author__urls-wrapper #toggle-nav").length === 0); - // console.log("Window Width: " + windowWidth); - // console.log("show: " + show); - //old code was if($(window).width() > 1024) - if (show) { - // fix - Stickyfill.rebuild(); - Stickyfill.init(); - $(".author__urls").show(); - } else { - // unfix - Stickyfill.stop(); - $(".author__urls").hide(); - } - }; - - stickySideBar(); - - $(window).resize(function(){ - stickySideBar(); - }); - // Follow menu drop down - - $(".author__urls-wrapper #toggle-nav").on("click", function() { - $(".author__urls").fadeToggle("fast", function() {}); - $(".author__urls-wrapper #toggle-nav").toggleClass("open"); + $(".author__urls-wrapper button").on("click", function() { + $(".author__urls").toggleClass("is--visible"); + $(".author__urls-wrapper button").toggleClass("open"); }); // init smooth scroll @@ -98,19 +70,100 @@ $(document).ready(function(){ }); if((window.location.href.indexOf("/he_IL/") > -1) || (window.location.href.indexOf("/ar_SA/") > -1)) { - $(".nav-selector").css("left", "3rem"); - $(".lang-selector").css("left", "0"); - $(".links-menu").css("right", "auto"); - $(".lang-menu").css("right", "auto"); - $(".links-menu").css("left", "3rem"); - $(".lang-menu").css("left", "0"); - $('.greedy-nav').prepend(''); - $('.greedy-nav').prepend(''); - $('.greedy-nav').prepend(''); - $('.greedy-nav').prepend(''); - $(".masthead__menu-item--lg").css("padding-right", "inherit"); - $(".masthead__menu-item--lg").css("padding-left", "2em"); - document.body.style.direction = "rtl"; + $("body").css("direction", "rtl"); + + $("nav.greedy-nav .nav-selector").css("left", "2.5rem"); + $("nav.greedy-nav .lang-selector").css("left", ".2rem"); + + $("nav.greedy-nav .links-menu").css("right", "auto"); + $("nav.greedy-nav .lang-menu").css("right", "auto"); + + $("nav.greedy-nav .links-menu").css("left", "2.5rem"); + $("nav.greedy-nav .lang-menu").css("left", ".2rem"); + + $("nav.greedy-nav .visible-links").css("padding-right", "0"); + $("nav.greedy-nav .visible-links").css("padding-left", "2rem"); + + $("nav.greedy-nav .visible-links li:first-child a").css("margin-right", "0"); + $("nav.greedy-nav .visible-links li:first-child a").css("margin-left", "1rem"); + + $("nav.greedy-nav .visible-links li:first-child").css("padding-right", "0"); + $("nav.greedy-nav .visible-links li:first-child").css("padding-left", "2em"); + + $("nav.greedy-nav .visible-links li:last-child a").css("margin-right", "1rem"); + $("nav.greedy-nav .visible-links li:last-child a").css("margin-left", "0"); + + // for some reason js cannot directly modify :before and :after pseudo-elements' css + $('nav.greedy-nav').prepend(''); + $('nav.greedy-nav').prepend(''); + + $('nav.greedy-nav').prepend(''); + $('nav.greedy-nav').prepend(''); } + var sidebar_shown = true; + var sidebar_hidden_pages = ["404", "credits", "disc2app", "donations", "f3-(linux)", "f3x-(mac)", + "faq", "file-extensions-(windows)", "h2testw-(windows)", "site-navigation", + "troubleshooting", "uninstall-cfw", "vwii-modding", "why-ads"]; + + for(var i = 0; i < sidebar_hidden_pages.length; i++){ + if(window.location.href.indexOf(sidebar_hidden_pages[i]) > -1) { + sidebar_shown = false; + } + } + + var methods = { + "get-started": "0", + "homebrew-launcher": "1", + "mocha-cfw": "2", + "haxchi": "3", + "coldboot-haxchi": "4", + }; + + for(var method in methods){ + if(window.location.href.indexOf("/" + method) > -1) { + localStorage.setItem('method', methods[method]); + } + } + + var method; + if(!(method = localStorage.getItem('method'))){ + sidebar_shown = false; + } + + if(sidebar_shown){ + var unhide = []; + var route = { + "0": ["homebrew-launcher", "multiple-options", "homebrew-launcher-(channel)", "nand-backup"], + "1": ["homebrew-launcher", "multiple-options", "homebrew-launcher-(channel)", "nand-backup"], + "2": ["homebrew-launcher", "mocha-cfw", "homebrew-launcher-(channel)", "nand-backup"], + "3": ["homebrew-launcher", "haxchi", "coldboot-haxchi","homebrew-launcher-(channel)", "nand-backup"], + "4": ["homebrew-launcher", "haxchi", "coldboot-haxchi","homebrew-launcher-(channel)", "nand-backup"], + }; + unhide = unhide.concat(route[method]); + if(typeof unhide !== 'undefined' && unhide.length > 0){ + unhide.push("home"); + unhide.push("get-started"); + var ol = $('.sidebar.sticky .nav__list .nav__items ol'); + for (var i = 0; i < unhide.length; i++){ + ol.children('li[data-name="' + unhide[i] + '"]').css("display", ""); + } + ol.children().each(function(idx, li) { + var link = $(li).find("a").attr('href'); + var name = $(li).attr('data-name'); + if((window.location.href.endsWith(link) || + window.location.href.endsWith(link + "/") || + window.location.href.indexOf(link + "#") > -1 || + window.location.href.indexOf(link + ".html") > -1) + && name !== "home"){ + $(li).addClass("active"); + return false; + } + $(li).addClass("completed"); + }); + if (ol.children(".active").css("display") != "none"){ + $('.sidebar.sticky').css("display", "inherit"); + } + } + } }); diff --git a/assets/js/main.min.js b/assets/js/main.min.js index 262e3693..f2cae020 100644 --- a/assets/js/main.min.js +++ b/assets/js/main.min.js @@ -1,5 +1,6 @@ -function updateNav(){var e=$btn.hasClass("hidden")?$nav.width():$nav.width()-$btn.width()-80;$vlinks.width()>e?(breaks.push($vlinks.width()),$vlinks.children().last().prependTo($hlinks),$btn.hasClass("hidden")&&$btn.removeClass("hidden")):(e>breaks[breaks.length-1]&&($hlinks.children().first().appendTo($vlinks),breaks.pop()),breaks.length<1&&($btn.addClass("hidden"),$hlinks.addClass("hidden"))),$btn.attr("count",breaks.length),$vlinks.width()>e&&updateNav()}!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Te.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function r(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(Ae)||[],function(e,n){t[n]=!0}),t}function a(){ie.addEventListener?(ie.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(ie.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(ie.addEventListener||"load"===e.event.type||"complete"===ie.readyState)&&(a(),pe.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var i="data-"+t.replace(He,"-$1").toLowerCase();if(n=e.getAttribute(i),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:De.test(n)?pe.parseJSON(n):n)}catch(e){}pe.data(e,t,n)}else n=void 0}return n}function u(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,i){if(Ie(e)){var r,o,a=pe.expando,s=e.nodeType,l=s?pe.cache:e,u=s?e[a]:e[a]&&a;if(u&&l[u]&&(i||l[u].data)||void 0!==n||"string"!=typeof t)return u||(u=s?e[a]=ne.pop()||pe.guid++:a),l[u]||(l[u]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(i?l[u]=pe.extend(l[u],t):l[u].data=pe.extend(l[u].data,t)),o=l[u],i||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(r=o[t],null==r&&(r=o[pe.camelCase(t)])):r=o,r}}function d(e,t,n){if(Ie(e)){var i,r,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(i=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in i?t=[t]:(t=pe.camelCase(t),t=t in i?[t]:t.split(" ")),r=t.length;for(;r--;)delete i[t[r]];if(n?!u(i):!pe.isEmptyObject(i))return}(n||(delete a[s].data,u(a[s])))&&(o?pe.cleanData([e],!0):de.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function f(e,t,n,i){var r,o=1,a=20,s=i?function(){return i.cur()}:function(){return pe.css(e,t,"")},l=s(),u=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==u&&+l)&&Me.exec(pe.css(e,t));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do o=o||".5",c/=o,pe.style(e,t,c+u);while(o!==(o=s()/l)&&1!==o&&--a)}return n&&(c=+c||+l||0,r=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=r)),r}function p(e){var t=We.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,i,r=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[r]);r++)!t||pe.nodeName(i,t)?o.push(i):pe.merge(o,h(i,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function m(e,t){for(var n,i=0;null!=(n=e[i]);i++)pe._data(n,"globalEval",!t||pe._data(t[i],"globalEval"))}function g(e){Fe.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t,n,i,r){for(var o,a,s,l,u,c,d,f=e.length,v=p(t),y=[],b=0;f>b;b++)if(a=e[b],a||0===a)if("object"===pe.type(a))pe.merge(y,a.nodeType?[a]:a);else if(Ye.test(a)){for(l=l||v.appendChild(t.createElement("div")),u=(qe.exec(a)||["",""])[1].toLowerCase(),d=Xe[u]||Xe._default,l.innerHTML=d[1]+pe.htmlPrefilter(a)+d[2],o=d[0];o--;)l=l.lastChild;if(!de.leadingWhitespace&&Re.test(a)&&y.push(t.createTextNode(Re.exec(a)[0])),!de.tbody)for(a="table"!==u||Ue.test(a)?""!==d[1]||Ue.test(a)?0:l:l.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(y,l.childNodes),l.textContent="";l.firstChild;)l.removeChild(l.firstChild);l=v.lastChild}else y.push(t.createTextNode(a));for(l&&v.removeChild(l),de.appendChecked||pe.grep(h(y,"input"),g),b=0;a=y[b++];)if(i&&pe.inArray(a,i)>-1)r&&r.push(a);else if(s=pe.contains(a.ownerDocument,a),l=h(v.appendChild(a),"script"),s&&m(l),n)for(o=0;a=l[o++];)ze.test(a.type||"")&&n.push(a);return l=null,v}function y(){return!0}function b(){return!1}function x(){try{return ie.activeElement}catch(e){}}function w(e,t,n,i,r,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(i=i||n,n=void 0);for(s in t)w(e,s,n,i,t[s],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),r===!1)r=b;else if(!r)return e;return 1===o&&(a=r,r=function(e){return pe().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,r,i,n)})}function C(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function T(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function k(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function E(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,i,r,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(i=0,r=s[n].length;r>i;i++)pe.event.add(t,n,s[n][i])}a.data&&(a.data=pe.extend({},a.data))}}function S(e,t){var n,i,r;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!de.noCloneEvent&&t[pe.expando]){r=pe._data(t);for(i in r.events)pe.removeEvent(t,i,r.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(T(t).text=e.text,k(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),de.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Fe.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function N(e,t,n,i){t=oe.apply([],t);var r,o,a,s,l,u,c=0,d=e.length,f=d-1,p=t[0],m=pe.isFunction(p);if(m||d>1&&"string"==typeof p&&!de.checkClone&&it.test(p))return e.each(function(r){var o=e.eq(r);m&&(t[0]=p.call(this,r,o.html())),N(o,t,n,i)});if(d&&(u=v(t,e[0].ownerDocument,!1,e,i),r=u.firstChild,1===u.childNodes.length&&(u=r),r||i)){for(s=pe.map(h(u,"script"),T),a=s.length;d>c;c++)o=u,c!==f&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(l=s[s.length-1].ownerDocument,pe.map(s,k),c=0;a>c;c++)o=s[c],ze.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(l,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(ot,"")));u=r=null}return e}function L(e,t,n){for(var i,r=t?pe.filter(t,e):e,o=0;null!=(i=r[o]);o++)n||1!==i.nodeType||pe.cleanData(h(i)),i.parentNode&&(n&&pe.contains(i.ownerDocument,i)&&m(h(i,"script")),i.parentNode.removeChild(i));return e}function A(e,t){var n=pe(t.createElement(e)).appendTo(t.body),i=pe.css(n[0],"display");return n.detach(),i}function j(e){var t=ie,n=ut[e];return n||(n=A(e,t),"none"!==n&&n||(lt=(lt||pe("',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(z),T("BeforeChange",function(e,t,n){t!==n&&(t===z?W():n===z&&W(!0))}),T(l+"."+z,function(){W()})},getIframe:function(n,i){var r=n.src,o=t.st.iframe;e.each(o.patterns,function(){if(r.indexOf(this.index)>-1)return this.id&&(r="string"==typeof this.id?r.substr(r.lastIndexOf(this.id)+this.id.length,r.length):this.id.call(this,r)),r=this.src.replace("%id%",r),!1});var a={};return o.srcAction&&(a[o.srcAction]=r),t._parseMarkup(i,a,n),t.updateStatus("ready"),i}}});var X=function(e){var n=t.items.length;return e>n-1?e-n:e<0?n+e:e},Y=function(e,t,n){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,n)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var n=t.st.gallery,i=".mfp-gallery",o=Boolean(e.fn.mfpFastClick);return t.direction=!0,!(!n||!n.enabled)&&(a+=" mfp-gallery",T(p+i,function(){n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function(){if(t.items.length>1)return t.next(),!1}),r.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),T("UpdateStatus"+i,function(e,n){n.text&&(n.text=Y(n.text,t.currItem.index,t.items.length))}),T(f+i,function(e,i,r,o){var a=t.items.length;r.counter=a>1?Y(n.tCounter,o.index,a):""}),T("BuildControls"+i,function(){if(t.items.length>1&&n.arrows&&!t.arrowLeft){var i=n.arrowMarkup,r=t.arrowLeft=e(i.replace(/%title%/gi,n.tPrev).replace(/%dir%/gi,"left")).addClass(b),a=t.arrowRight=e(i.replace(/%title%/gi,n.tNext).replace(/%dir%/gi,"right")).addClass(b),s=o?"mfpFastClick":"click";r[s](function(){t.prev()}),a[s](function(){t.next()}),t.isIE7&&(k("b",r[0],!1,!0),k("a",r[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(r.add(a))}}),T(h+i,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),void T(l+i,function(){r.off(i),t.wrap.off("click"+i),t.arrowLeft&&o&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null}))},next:function(){t.direction=!0,t.index=X(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=X(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),r=Math.min(n[1],t.items.length);for(e=1;e<=(t.direction?r:i);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?i:r);e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=X(n),!t.items[n].preloaded){var i=t.items[n];i.parsed||(i=t.parseEl(n)),E("LazyLoad",i),"image"===i.type&&(i.img=e('').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,E("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var U="retina";e.magnificPopup.registerModule(U,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,n=e.ratio;n=isNaN(n)?n():n,n>1&&(T("ImageHasSize."+U,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),T("ElementParse."+U,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function(){var t=1e3,n="ontouchstart"in window,i=function(){C.off("touchmove"+o+" touchend"+o)},r="mfpFastClick",o="."+r;e.fn.mfpFastClick=function(r){return e(this).each(function(){var a,s=e(this);if(n){var l,u,c,d,f,p;s.on("touchstart"+o,function(e){d=!1,p=1,f=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],u=f.clientX,c=f.clientY,C.on("touchmove"+o,function(e){f=e.originalEvent?e.originalEvent.touches:e.touches,p=f.length,f=f[0],(Math.abs(f.clientX-u)>10||Math.abs(f.clientY-c)>10)&&(d=!0,i())}).on("touchend"+o,function(e){i(),d||p>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){a=!1},t),r())})})}s.on("click"+o,function(){a||r()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+o+" click"+o),n&&C.off("touchmove"+o+" touchend"+o)}}(),N()}(window.jQuery||window.Zepto),!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(e){var t="1.7.2",n={},i={exclude:[],excludeWithin:[],offset:0,direction:"top",delegateSelector:null,scrollElement:null,scrollTarget:null,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficient:2,preventDefault:!0},r=function(t){var n=[],i=!1,r=t.dir&&"left"===t.dir?"scrollLeft":"scrollTop";return this.each(function(){var t=e(this);if(this!==document&&this!==window)return!document.scrollingElement||this!==document.documentElement&&this!==document.body?void(t[r]()>0?n.push(this):(t[r](1),i=t[r]()>0,i&&n.push(this),t[r](0))):(n.push(document.scrollingElement),!1)}),n.length||this.each(function(){this===document.documentElement&&"smooth"===e(this).css("scrollBehavior")&&(n=[this]),n.length||"BODY"!==this.nodeName||(n=[this])}),"first"===t.el&&n.length>1&&(n=[n[0]]),n};e.fn.extend({scrollable:function(e){var t=r.call(this,{dir:e});return this.pushStack(t)},firstScrollable:function(e){var t=r.call(this,{el:"first",dir:e});return this.pushStack(t)},smoothScroll:function(t,n){if(t=t||{},"options"===t)return n?this.each(function(){var t=e(this),i=e.extend(t.data("ssOpts")||{},n);e(this).data("ssOpts",i)}):this.first().data("ssOpts");var i=e.extend({},e.fn.smoothScroll.defaults,t),r=function(t){var n=function(e){return e.replace(/(:|\.|\/)/g,"\\$1")},r=this,o=e(this),a=e.extend({},i,o.data("ssOpts")||{}),s=i.exclude,l=a.excludeWithin,u=0,c=0,d=!0,f={},p=e.smoothScroll.filterPath(location.pathname),h=e.smoothScroll.filterPath(r.pathname),m=location.hostname===r.hostname||!r.hostname,g=a.scrollTarget||h===p,v=n(r.hash);if(v&&!e(v).length&&(d=!1),a.scrollTarget||m&&g&&v){for(;d&&u=0;e--)u(D[e])}function u(e){if(e.inited){var t=_.top<=e.limit.start?0:_.top>=e.limit.end?2:1;e.mode!=t&&m(e,t)}}function c(){for(var e=D.length-1;e>=0;e--)if(D[e].inited){var t=Math.abs(b(D[e].clone)-D[e].docOffsetTop),n=Math.abs(D[e].parent.node.offsetHeight-D[e].parent.height);if(t>=2||n>=2)return!1}return!0}function d(e){isNaN(parseFloat(e.computed.top))||e.isCell||"none"==e.computed.display||(e.inited=!0,e.clone||g(e),"absolute"!=e.parent.computed.position&&"relative"!=e.parent.computed.position&&(e.parent.node.style.position="relative"),u(e),e.parent.height=e.parent.node.offsetHeight,e.docOffsetTop=b(e.clone))}function f(e){var t=!0;e.clone&&v(e),i(e.node.style,e.css);for(var n=D.length-1;n>=0;n--)if(D[n].node!==e.node&&D[n].parent.node===e.parent.node){t=!1;break}t&&(e.parent.node.style.position=e.parent.css.position),e.mode=-1}function p(){for(var e=D.length-1;e>=0;e--)d(D[e])}function h(){for(var e=D.length-1;e>=0;e--)f(D[e])}function m(e,t){var n=e.node.style;switch(t){case 0:n.position="absolute",n.left=e.offset.left+"px",n.right=e.offset.right+"px",n.top=e.offset.top+"px",n.bottom="auto",n.width="auto",n.marginLeft=0,n.marginRight=0,n.marginTop=0;break;case 1:n.position="fixed",n.left=e.box.left+"px",n.right=e.box.right+"px",n.top=e.css.top,n.bottom="auto",n.width="auto",n.marginLeft=0,n.marginRight=0,n.marginTop=0;break;case 2:n.position="absolute",n.left=e.offset.left+"px",n.right=e.offset.right+"px",n.top="auto",n.bottom=0,n.width="auto",n.marginLeft=0,n.marginRight=0}e.mode=t}function g(e){e.clone=document.createElement("div");var t=e.node.nextSibling||e.node,n=e.clone.style;n.height=e.height+"px",n.width=e.width+"px",n.marginTop=e.computed.marginTop,n.marginBottom=e.computed.marginBottom,n.marginLeft=e.computed.marginLeft,n.marginRight=e.computed.marginRight,n.padding=n.border=n.borderSpacing=0,n.fontSize="1em",n.position="static",n.cssFloat=e.computed.cssFloat,e.node.parentNode.insertBefore(e.clone,t)}function v(e){e.clone.parentNode.removeChild(e.clone),e.clone=void 0}function y(e){var t=getComputedStyle(e),n=e.parentNode,i=getComputedStyle(n),o=e.style.position;e.style.position="relative";var a={top:t.top,marginTop:t.marginTop,marginBottom:t.marginBottom,marginLeft:t.marginLeft,marginRight:t.marginRight,cssFloat:t.cssFloat,display:t.display},s={top:r(t.top),marginBottom:r(t.marginBottom),paddingLeft:r(t.paddingLeft),paddingRight:r(t.paddingRight),borderLeftWidth:r(t.borderLeftWidth),borderRightWidth:r(t.borderRightWidth)};e.style.position=o;var l={position:e.style.position,top:e.style.top,bottom:e.style.bottom,left:e.style.left,right:e.style.right,width:e.style.width,marginTop:e.style.marginTop,marginLeft:e.style.marginLeft,marginRight:e.style.marginRight},u=x(e),c=x(n),d={node:n,css:{position:n.style.position},computed:{position:i.position -},numeric:{borderLeftWidth:r(i.borderLeftWidth),borderRightWidth:r(i.borderRightWidth),borderTopWidth:r(i.borderTopWidth),borderBottomWidth:r(i.borderBottomWidth)}},f={node:e,box:{left:u.win.left,right:O.clientWidth-u.win.right},offset:{top:u.win.top-c.win.top-d.numeric.borderTopWidth,left:u.win.left-c.win.left-d.numeric.borderLeftWidth,right:-u.win.right+c.win.right-d.numeric.borderRightWidth},css:l,isCell:"table-cell"==t.display,computed:a,numeric:s,width:u.win.right-u.win.left,height:u.win.bottom-u.win.top,mode:-1,inited:!1,parent:d,limit:{start:u.doc.top-s.top,end:c.doc.top+n.offsetHeight-d.numeric.borderBottomWidth-e.offsetHeight-s.top-s.marginBottom}};return f}function b(e){for(var t=0;e;)t+=e.offsetTop,e=e.offsetParent;return t}function x(e){var n=e.getBoundingClientRect();return{doc:{top:n.top+t.pageYOffset,left:n.left+t.pageXOffset},win:n}}function w(){I=setInterval(function(){!c()&&E()},500)}function C(){clearInterval(I)}function T(){H&&(document[$]?C():w())}function k(){H||(o(),p(),t.addEventListener("scroll",a),t.addEventListener("wheel",s),t.addEventListener("resize",E),t.addEventListener("orientationchange",E),e.addEventListener(P,T),w(),H=!0)}function E(){if(H){h();for(var e=D.length-1;e>=0;e--)D[e]=y(D[e].node);p()}}function S(){t.removeEventListener("scroll",a),t.removeEventListener("wheel",s),t.removeEventListener("resize",E),t.removeEventListener("orientationchange",E),e.removeEventListener(P,T),C(),H=!1}function N(){S(),h()}function L(){for(N();D.length;)D.pop()}function A(e){for(var t=D.length-1;t>=0;t--)if(D[t].node===e)return;var n=y(e);D.push(n),H?d(n):k()}function j(e){for(var t=D.length-1;t>=0;t--)D[t].node===e&&(f(D[t]),D.splice(t,1))}var _,I,D=[],H=!1,O=e.documentElement,M=function(){},$="hidden",P="visibilitychange";void 0!==e.webkitHidden&&($="webkitHidden",P="webkitvisibilitychange"),t.getComputedStyle||n();for(var B=["","-webkit-","-moz-","-ms-"],F=document.createElement("div"),q=B.length-1;q>=0;q--){try{F.style.position=B[q]+"sticky"}catch(e){}""!=F.style.position&&n()}o(),t.Stickyfill={stickies:D,add:A,remove:j,init:k,rebuild:E,pause:S,stop:N,kill:L}}(document,window),window.jQuery&&!function(e){e.fn.Stickyfill=function(e){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery),$(document).ready(function(){var e=function(){$("body").css("margin-bottom",$(".page__footer").outerHeight(!0))},t=!1;e(),$(window).resize(function(){t=!0}),setInterval(function(){t&&(t=!1,e())},250),$("#main").fitVids(),$(".sticky").Stickyfill();var n=function(){var e=0===$(".author__urls-wrapper #toggle-nav").length?$(window).width()>1024:!$(".author__urls-wrapper #toggle-nav").is(":visible");e?(Stickyfill.rebuild(),Stickyfill.init(),$(".author__urls").show()):(Stickyfill.stop(),$(".author__urls").hide())};n(),$(window).resize(function(){n()}),$(".author__urls-wrapper #toggle-nav").on("click",function(){$(".author__urls").fadeToggle("fast",function(){}),$(".author__urls-wrapper #toggle-nav").toggleClass("open")}),$("a").smoothScroll({offset:-20}),$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0}),(window.location.href.indexOf("/he_IL/")>-1||window.location.href.indexOf("/ar_SA/")>-1)&&($(".nav-selector").css("left","3rem"),$(".lang-selector").css("left","0"),$(".links-menu").css("right","auto"),$(".lang-menu").css("right","auto"),$(".links-menu").css("left","3rem"),$(".lang-menu").css("left","0"),$(".greedy-nav").prepend(""),$(".greedy-nav").prepend(""),$(".greedy-nav").prepend(""),$(".greedy-nav").prepend(""),$(".masthead__menu-item--lg").css("padding-right","inherit"),$(".masthead__menu-item--lg").css("padding-left","2em"),document.body.style.direction="rtl")}); \ No newline at end of file +/*! + * Minimal Mistakes Jekyll Theme 4.6.0 by Michael Rose + * Copyright 2017 Michael Rose - mademistakes.com | @mmistakes + * Licensed under MIT + */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(e,t){var n=(t=t||te).createElement("script");n.text=e,t.head.appendChild(n).parentNode.removeChild(n)}function r(e){var t=!!e&&"length"in e&&e.length,n=he.type(e);return"function"!==n&&!he.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function o(e,t,n){return he.isFunction(t)?he.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?he.grep(e,function(e){return e===t!==n}):"string"!=typeof t?he.grep(e,function(e){return ae.call(t,e)>-1!==n}):ke.test(t)?he.filter(t,e,n):(t=he.filter(t,e),he.grep(e,function(e){return ae.call(t,e)>-1!==n&&1===e.nodeType}))}function a(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function s(e){var t={};return he.each(e.match(Ae)||[],function(e,n){t[n]=!0}),t}function l(e){return e}function u(e){throw e}function c(e,t,n,r){var i;try{e&&he.isFunction(i=e.promise)?i.call(e).done(t).fail(n):e&&he.isFunction(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}function f(){te.removeEventListener("DOMContentLoaded",f),e.removeEventListener("load",f),he.ready()}function d(){this.expando=he.expando+d.uid++}function p(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:He.test(e)?JSON.parse(e):e)}function h(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Fe,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=p(n)}catch(e){}qe.set(e,t,n)}else n=void 0;return n}function m(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return he.css(e,t,"")},l=s(),u=n&&n[3]||(he.cssNumber[t]?"":"px"),c=(he.cssNumber[t]||"px"!==u&&+l)&&$e.exec(he.css(e,t));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do{o=o||".5",c/=o,he.style(e,t,c+u)}while(o!==(o=s()/l)&&1!==o&&--a)}return n&&(c=+c||+l||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=u,r.start=c,r.end=i)),i}function g(e){var t,n=e.ownerDocument,r=e.nodeName,i=We[r];return i||(t=n.body.appendChild(n.createElement(r)),i=he.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),We[r]=i,i)}function v(e,t){for(var n,r,i=[],o=0,a=e.length;o-1)i&&i.push(o);else if(u=he.contains(o.ownerDocument,o),a=y(f.appendChild(o),"script"),u&&x(a),n)for(c=0;o=a[c++];)Xe.test(o.type||"")&&n.push(o);return f}function w(){return!0}function C(){return!1}function T(){try{return te.activeElement}catch(e){}}function k(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)k(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=C;else if(!i)return e;return 1===o&&(a=i,i=function(e){return he().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=he.guid++)),e.each(function(){he.event.add(this,t,i,r,n)})}function S(e,t){return i(e,"table")&&i(11!==t.nodeType?t:t.firstChild,"tr")?he(">tbody",e)[0]||e:e}function E(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function j(e){var t=nt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){var n,r,i,o,a,s,l,u;if(1===t.nodeType){if(Pe.hasData(e)&&(o=Pe.access(e),a=Pe.set(t,o),u=o.events)){delete a.handle,a.events={};for(i in u)for(n=0,r=u[i].length;n1&&"string"==typeof h&&!de.checkClone&&tt.test(h))return e.each(function(n){var o=e.eq(n);m&&(t[0]=h.call(this,n,o.html())),I(o,t,r,i)});if(d&&(o=b(t,e[0].ownerDocument,!1,e,i),a=o.firstChild,1===o.childNodes.length&&(o=a),a||i)){for(l=(s=he.map(y(o,"script"),E)).length;f=0&&nw.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[M]=!0,e}function i(e){var t=D.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Ce(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&void 0!==e.getElementsByTagName&&e}function c(){}function f(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function h(e,n,r){for(var i=0,o=n.length;i-1&&(r[u]=!(a[u]=f))}}else x=m(x===a?x.splice(g,x.length):x),o?o(null,a,x,l):Z.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=d(function(e){return e===t},a,!0),u=d(function(e){return Q(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==j)||((t=n).nodeType?l(e,n,r):u(e,n,r));return t=null,i}];s1&&p(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(oe,"$1"),n,s0,o=e.length>0,a=function(r,a,s,l,u){var c,f,d,p=0,h="0",g=r&&[],v=[],y=j,x=r||o&&w.find.TAG("*",u),b=_+=null==y?1:Math.random()||.1,C=x.length;for(u&&(j=a===D||a||u);h!==C&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===D||(I(c),s=!O);d=e[f++];)if(d(c,a||D,s)){l.push(c);break}u&&(_=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,v,a,s);if(r){if(p>0)for(;h--;)g[h]||v[h]||(v[h]=Y.call(l));v=m(v)}Z.apply(l,v),u&&!r&&v.length>0&&p+n.length>1&&t.uniqueSort(l)}return u&&(_=b,j=y),g};return i?r(a):a}var x,b,w,C,T,k,S,E,j,N,A,I,D,L,O,P,q,H,F,M="sizzle"+1*new Date,$=e.document,_=0,B=0,R=n(),W=n(),z=n(),U=function(e,t){return e===t&&(A=!0),0},X={}.hasOwnProperty,V=[],Y=V.pop,G=V.push,Z=V.push,K=V.slice,Q=function(e,t){for(var n=0,r=e.length;n+~]|"+ee+")"+ee+"*"),le=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),ue=new RegExp(re),ce=new RegExp("^"+te+"$"),fe={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+re),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,pe=/^h\d$/i,he=/^[^{]+\{\s*\[native \w/,me=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ge=/[+~]/,ve=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),ye=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},xe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,be=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},we=function(){I()},Ce=d(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{Z.apply(V=K.call($.childNodes),$.childNodes),V[$.childNodes.length].nodeType}catch(e){Z={apply:V.length?function(e,t){G.apply(e,K.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}b=t.support={},T=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},I=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:$;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=D.documentElement,O=!T(D),$!==D&&(n=D.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",we,!1):n.attachEvent&&n.attachEvent("onunload",we)),b.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),b.getElementsByTagName=i(function(e){return e.appendChild(D.createComment("")),!e.getElementsByTagName("*").length}),b.getElementsByClassName=he.test(D.getElementsByClassName),b.getById=i(function(e){return L.appendChild(e).id=M,!D.getElementsByName||!D.getElementsByName(M).length}),b.getById?(w.filter.ID=function(e){var t=e.replace(ve,ye);return function(e){return e.getAttribute("id")===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&O){var n=t.getElementById(e);return n?[n]:[]}}):(w.filter.ID=function(e){var t=e.replace(ve,ye);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&O){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),w.find.TAG=b.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):b.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=b.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&O)return t.getElementsByClassName(e)},q=[],P=[],(b.qsa=he.test(D.querySelectorAll))&&(i(function(e){L.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+ee+"*(?:value|"+J+")"),e.querySelectorAll("[id~="+M+"-]").length||P.push("~="),e.querySelectorAll(":checked").length||P.push(":checked"),e.querySelectorAll("a#"+M+"+*").length||P.push(".#.+[+~]")}),i(function(e){e.innerHTML="";var t=D.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+ee+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&P.push(":enabled",":disabled"),L.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(b.matchesSelector=he.test(H=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){b.disconnectedMatch=H.call(e,"*"),H.call(e,"[s!='']:x"),q.push("!=",re)}),P=P.length&&new RegExp(P.join("|")),q=q.length&&new RegExp(q.join("|")),t=he.test(L.compareDocumentPosition),F=t||he.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!b.sortDetached&&t.compareDocumentPosition(e)===n?e===D||e.ownerDocument===$&&F($,e)?-1:t===D||t.ownerDocument===$&&F($,t)?1:N?Q(N,e)-Q(N,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],l=[t];if(!i||!o)return e===D?-1:t===D?1:i?-1:o?1:N?Q(N,e)-Q(N,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;s[r]===l[r];)r++;return r?a(s[r],l[r]):s[r]===$?-1:l[r]===$?1:0},D):D},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==D&&I(e),n=n.replace(le,"='$1']"),b.matchesSelector&&O&&!z[n+" "]&&(!q||!q.test(n))&&(!P||!P.test(n)))try{var r=H.call(e,n);if(r||b.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,D,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==D&&I(e),F(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==D&&I(e);var n=w.attrHandle[t.toLowerCase()],r=n&&X.call(w.attrHandle,t.toLowerCase())?n(e,t,!O):void 0;return void 0!==r?r:b.attributes||!O?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(xe,be)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!b.detectDuplicates,N=!b.sortStable&&e.slice(0),e.sort(U),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return N=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},(w=t.selectors={cacheLength:50,createPseudo:r,match:fe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ve,ye),e[3]=(e[3]||e[4]||e[5]||"").replace(ve,ye),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return fe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ue.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ve,ye).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=R[e+" "];return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&R(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ie," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,f,d,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s,x=!1;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(x=(p=(u=(c=(f=(d=g)[M]||(d[M]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===_&&u[1])&&u[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[_,p,x];break}}else if(y&&(d=t,f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),u=c[e]||[],p=u[0]===_&&u[1],x=p),!1===x)for(;(d=++p&&d&&d[m]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++x||(y&&(f=d[M]||(d[M]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[_,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=w.pseudos[e]||w.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[M]?o(n):o.length>1?(i=[e,e,"",n],w.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=Q(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(oe,"$1"));return i[M]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(ve,ye),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return ce.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(ve,ye).toLowerCase(),function(t){var n;do{if(n=O?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:s(!1),disabled:s(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return pe.test(e.nodeName)},input:function(e){return de.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&9===t.nodeType&&O&&w.relative[o[1].type]){if(!(t=(w.find.ID(a.matches[0].replace(ve,ye),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=fe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(ve,ye),ge.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&f(o)))return Z.apply(n,r),n;break}}return(c||S(e,d))(r,t,!O,n,!t||ge.test(e)&&u(t.parentNode)||t),n},b.sortStable=M.split("").sort(U).join("")===M,b.detectDuplicates=!!A,I(),b.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("fieldset"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),b.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(J,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);he.find=xe,he.expr=xe.selectors,he.expr[":"]=he.expr.pseudos,he.uniqueSort=he.unique=xe.uniqueSort,he.text=xe.getText,he.isXMLDoc=xe.isXML,he.contains=xe.contains,he.escapeSelector=xe.escape;var be=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&he(e).is(n))break;r.push(e)}return r},we=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Ce=he.expr.match.needsContext,Te=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,ke=/^.[^:#\[\.,]*$/;he.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?he.find.matchesSelector(r,e)?[r]:[]:he.find.matches(e,he.grep(t,function(e){return 1===e.nodeType}))},he.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(he(e).filter(function(){for(t=0;t1?he.uniqueSort(n):n},filter:function(e){return this.pushStack(o(this,e||[],!1))},not:function(e){return this.pushStack(o(this,e||[],!0))},is:function(e){return!!o(this,"string"==typeof e&&Ce.test(e)?he(e):e||[],!1).length}});var Se,Ee=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(he.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Se,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Ee.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof he?t[0]:t,he.merge(this,he.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:te,!0)),Te.test(r[1])&&he.isPlainObject(t))for(r in t)he.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=te.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):he.isFunction(e)?void 0!==n.ready?n.ready(e):e(he):he.makeArray(e,this)}).prototype=he.fn,Se=he(te);var je=/^(?:parents|prev(?:Until|All))/,Ne={children:!0,contents:!0,next:!0,prev:!0};he.fn.extend({has:function(e){var t=he(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&he.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?he.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?ae.call(he(e),this[0]):ae.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(he.uniqueSort(he.merge(this.get(),he(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),he.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return be(e,"parentNode")},parentsUntil:function(e,t,n){return be(e,"parentNode",n)},next:function(e){return a(e,"nextSibling")},prev:function(e){return a(e,"previousSibling")},nextAll:function(e){return be(e,"nextSibling")},prevAll:function(e){return be(e,"previousSibling")},nextUntil:function(e,t,n){return be(e,"nextSibling",n)},prevUntil:function(e,t,n){return be(e,"previousSibling",n)},siblings:function(e){return we((e.parentNode||{}).firstChild,e)},children:function(e){return we(e.firstChild)},contents:function(e){return i(e,"iframe")?e.contentDocument:(i(e,"template")&&(e=e.content||e),he.merge([],e.childNodes))}},function(e,t){he.fn[e]=function(n,r){var i=he.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=he.filter(r,i)),this.length>1&&(Ne[e]||he.uniqueSort(i),je.test(e)&&i.reverse()),this.pushStack(i)}});var Ae=/[^\x20\t\r\n\f]+/g;he.Callbacks=function(e){e="string"==typeof e?s(e):he.extend({},e);var t,n,r,i,o=[],a=[],l=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;l=-1)for(n=a.shift();++l-1;)o.splice(n,1),n<=l&&l--}),this},has:function(e){return e?he.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},he.extend({Deferred:function(t){var n=[["notify","progress",he.Callbacks("memory"),he.Callbacks("memory"),2],["resolve","done",he.Callbacks("once memory"),he.Callbacks("once memory"),0,"resolved"],["reject","fail",he.Callbacks("once memory"),he.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return he.Deferred(function(t){he.each(n,function(n,r){var i=he.isFunction(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&he.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){function o(t,n,r,i){return function(){var s=this,c=arguments,f=function(){var e,f;if(!(t=a&&(r!==u&&(s=void 0,c=[e]),n.rejectWith(s,c))}};t?d():(he.Deferred.getStackHook&&(d.stackTrace=he.Deferred.getStackHook()),e.setTimeout(d))}}var a=0;return he.Deferred(function(e){n[0][3].add(o(0,e,he.isFunction(i)?i:l,e.notifyWith)),n[1][3].add(o(0,e,he.isFunction(t)?t:l)),n[2][3].add(o(0,e,he.isFunction(r)?r:u))}).promise()},promise:function(e){return null!=e?he.extend(e,i):i}},o={};return he.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[0][2].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=re.call(arguments),o=he.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?re.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(c(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||he.isFunction(i[n]&&i[n].then)))return o.then();for(;n--;)c(i[n],a(n),o.reject);return o.promise()}});var Ie=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;he.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&Ie.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},he.readyException=function(t){e.setTimeout(function(){throw t})};var De=he.Deferred();he.fn.ready=function(e){return De.then(e).catch(function(e){he.readyException(e)}),this},he.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--he.readyWait:he.isReady)||(he.isReady=!0,!0!==e&&--he.readyWait>0||De.resolveWith(te,[he]))}}),he.ready.then=De.then,"complete"===te.readyState||"loading"!==te.readyState&&!te.documentElement.doScroll?e.setTimeout(he.ready):(te.addEventListener("DOMContentLoaded",f),e.addEventListener("load",f));var Le=function(e,t,n,r,i,o,a){var s=0,l=e.length,u=null==n;if("object"===he.type(n)){i=!0;for(s in n)Le(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,he.isFunction(r)||(a=!0),u&&(a?(t.call(e,r),t=null):(u=t,t=function(e,t,n){return u.call(he(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){qe.remove(this,e)})}}),he.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Pe.get(e,t),n&&(!r||Array.isArray(n)?r=Pe.access(e,t,he.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=he.queue(e,t),r=n.length,i=n.shift(),o=he._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){he.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Pe.get(e,n)||Pe.access(e,n,{empty:he.Callbacks("once memory").add(function(){Pe.remove(e,[t+"queue",n])})})}}),he.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Xe=/^$|\/(?:java|ecma)script/i,Ve={option:[1,""],thead:[1,"
","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Ve.optgroup=Ve.option,Ve.tbody=Ve.tfoot=Ve.colgroup=Ve.caption=Ve.thead,Ve.th=Ve.td;var Ye=/<|&#?\w+;/;!function(){var e=te.createDocumentFragment().appendChild(te.createElement("div")),t=te.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),de.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",de.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Ge=te.documentElement,Ze=/^key/,Ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Qe=/^([^.]*)(?:\.(.+)|)/;he.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,u,c,f,d,p,h,m,g=Pe.get(e);if(g)for(n.handler&&(o=n,n=o.handler,i=o.selector),i&&he.find.matchesSelector(Ge,i),n.guid||(n.guid=he.guid++),(l=g.events)||(l=g.events={}),(a=g.handle)||(a=g.handle=function(t){return void 0!==he&&he.event.triggered!==t.type?he.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||"").match(Ae)||[""]).length;u--;)s=Qe.exec(t[u])||[],p=m=s[1],h=(s[2]||"").split(".").sort(),p&&(f=he.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=he.event.special[p]||{},c=he.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&he.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=l[p])||(d=l[p]=[],d.delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(p,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),he.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,u,c,f,d,p,h,m,g=Pe.hasData(e)&&Pe.get(e);if(g&&(l=g.events)){for(u=(t=(t||"").match(Ae)||[""]).length;u--;)if(s=Qe.exec(t[u])||[],p=m=s[1],h=(s[2]||"").split(".").sort(),p){for(f=he.event.special[p]||{},d=l[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;o--;)c=d[o],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,g.handle)||he.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)he.event.remove(e,p+t[u],n,r,!0);he.isEmptyObject(l)&&Pe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=he.event.fix(e),l=new Array(arguments.length),u=(Pe.get(this,"events")||{})[s.type]||[],c=he.event.special[s.type]||{};for(l[0]=s,t=1;t=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==e.type||!0!==u.disabled)){for(o=[],a={},n=0;n-1:he.find(i,this,null,[u]).length),a[i]&&o.push(r);o.length&&s.push({elem:u,handlers:o})}return u=this,l\x20\t\r\n\f]*)[^>]*)\/>/gi,et=/\s*$/g;he.extend({htmlPrefilter:function(e){return e.replace(Je,"<$1>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),l=he.contains(e.ownerDocument,e);if(!(de.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||he.isXMLDoc(e)))for(a=y(s),o=y(e),r=0,i=o.length;r0&&x(a,!l&&y(e,"script")),s},cleanData:function(e){for(var t,n,r,i=he.event.special,o=0;void 0!==(n=e[o]);o++)if(Oe(n)){if(t=n[Pe.expando]){if(t.events)for(r in t.events)i[r]?he.event.remove(n,r):he.removeEvent(n,r,t.handle);n[Pe.expando]=void 0}n[qe.expando]&&(n[qe.expando]=void 0)}}}),he.fn.extend({detach:function(e){return D(this,e,!0)},remove:function(e){return D(this,e)},text:function(e){return Le(this,function(e){return void 0===e?he.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return I(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||S(this,e).appendChild(e)})},prepend:function(){return I(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=S(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return I(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return I(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(he.cleanData(y(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return he.clone(this,e,t)})},html:function(e){return Le(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!et.test(e)&&!Ve[(Ue.exec(e)||["",""])[1].toLowerCase()]){e=he.htmlPrefilter(e);try{for(;n1)}}),he.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||he.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(he.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.options.duration?this.pos=t=he.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=he.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){he.fx.step[e.prop]?he.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[he.cssProps[e.prop]]&&!he.cssHooks[e.prop]?e.elem[e.prop]=e.now:he.style(e.elem,e.prop,e.now+e.unit)}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},he.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},he.fx=$.prototype.init,he.fx.step={};var pt,ht,mt=/^(?:toggle|show|hide)$/,gt=/queueHooks$/;he.Animation=he.extend(U,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return m(n.elem,e,$e.exec(t),n),n}]},tweener:function(e,t){he.isFunction(e)?(t=e,e=["*"]):e=e.match(Ae);for(var n,r=0,i=e.length;r1)},removeAttr:function(e){return this.each(function(){he.removeAttr(this,e)})}}),he.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?he.prop(e,t,n):(1===o&&he.isXMLDoc(e)||(i=he.attrHooks[t.toLowerCase()]||(he.expr.match.bool.test(t)?vt:void 0)),void 0!==n?null===n?void he.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=he.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!de.radioValue&&"radio"===t&&i(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Ae);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),vt={set:function(e,t,n){return!1===t?he.removeAttr(e,n):e.setAttribute(n,n),n}},he.each(he.expr.match.bool.source.match(/\w+/g),function(e,t){var n=yt[t]||he.find.attr;yt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=yt[a],yt[a]=i,i=null!=n(e,t,r)?a:null,yt[a]=o),i}});var xt=/^(?:input|select|textarea|button)$/i,bt=/^(?:a|area)$/i;he.fn.extend({prop:function(e,t){return Le(this,he.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[he.propFix[e]||e]})}}),he.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&he.isXMLDoc(e)||(t=he.propFix[t]||t,i=he.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=he.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||bt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),de.optSelected||(he.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),he.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){he.propFix[this.toLowerCase()]=this}),he.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,l=0;if(he.isFunction(e))return this.each(function(t){he(this).addClass(e.call(this,t,V(this)))});if("string"==typeof e&&e)for(t=e.match(Ae)||[];n=this[l++];)if(i=V(n),r=1===n.nodeType&&" "+X(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=X(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,l=0;if(he.isFunction(e))return this.each(function(t){he(this).removeClass(e.call(this,t,V(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(Ae)||[];n=this[l++];)if(i=V(n),r=1===n.nodeType&&" "+X(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=X(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):he.isFunction(e)?this.each(function(n){he(this).toggleClass(e.call(this,n,V(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=he(this),o=e.match(Ae)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||((t=V(this))&&Pe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Pe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+X(V(n))+" ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g;he.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=he.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,he(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=he.map(i,function(e){return null==e?"":e+""})),(t=he.valHooks[this.type]||he.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})):i?(t=he.valHooks[i.type]||he.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(wt,""):null==n?"":n:void 0}}),he.extend({valHooks:{option:{get:function(e){var t=he.find.attr(e,"value");return null!=t?t:X(he.text(e))}},select:{get:function(e){var t,n,r,o=e.options,a=e.selectedIndex,s="select-one"===e.type,l=s?null:[],u=s?a+1:o.length;for(r=a<0?u:s?a:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),he.each(["radio","checkbox"],function(){he.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=he.inArray(he(e).val(),t)>-1}},de.checkOn||(he.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Ct=/^(?:focusinfocus|focusoutblur)$/;he.extend(he.event,{trigger:function(t,n,r,i){var o,a,s,l,u,c,f,d=[r||te],p=ue.call(t,"type")?t.type:t,h=ue.call(t,"namespace")?t.namespace.split("."):[];if(a=s=r=r||te,3!==r.nodeType&&8!==r.nodeType&&!Ct.test(p+he.event.triggered)&&(p.indexOf(".")>-1&&(h=p.split("."),p=h.shift(),h.sort()),u=p.indexOf(":")<0&&"on"+p,t=t[he.expando]?t:new he.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:he.makeArray(n,[t]),f=he.event.special[p]||{},i||!f.trigger||!1!==f.trigger.apply(r,n))){if(!i&&!f.noBubble&&!he.isWindow(r)){for(l=f.delegateType||p,Ct.test(l+p)||(a=a.parentNode);a;a=a.parentNode)d.push(a),s=a;s===(r.ownerDocument||te)&&d.push(s.defaultView||s.parentWindow||e)}for(o=0;(a=d[o++])&&!t.isPropagationStopped();)t.type=o>1?l:f.bindType||p,(c=(Pe.get(a,"events")||{})[t.type]&&Pe.get(a,"handle"))&&c.apply(a,n),(c=u&&a[u])&&c.apply&&Oe(a)&&(t.result=c.apply(a,n),!1===t.result&&t.preventDefault());return t.type=p,i||t.isDefaultPrevented()||f._default&&!1!==f._default.apply(d.pop(),n)||!Oe(r)||u&&he.isFunction(r[p])&&!he.isWindow(r)&&((s=r[u])&&(r[u]=null),he.event.triggered=p,r[p](),he.event.triggered=void 0,s&&(r[u]=s)),t.result}},simulate:function(e,t,n){var r=he.extend(new he.Event,n,{type:e,isSimulated:!0});he.event.trigger(r,null,t)}}),he.fn.extend({trigger:function(e,t){return this.each(function(){he.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return he.event.trigger(e,t,n,!0)}}),he.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){he.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),he.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),de.focusin="onfocusin"in e,de.focusin||he.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){he.event.simulate(t,e.target,he.event.fix(e))};he.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=Pe.access(r,t);i||r.addEventListener(e,n,!0),Pe.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Pe.access(r,t)-1;i?Pe.access(r,t,i):(r.removeEventListener(e,n,!0),Pe.remove(r,t))}}});var Tt=e.location,kt=he.now(),St=/\?/;he.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||he.error("Invalid XML: "+t),n};var Et=/\[\]$/,jt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;he.param=function(e,t){var n,r=[],i=function(e,t){var n=he.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!he.isPlainObject(e))he.each(e,function(){i(this.name,this.value)});else for(n in e)Y(n,e[n],t,i);return r.join("&")},he.fn.extend({serialize:function(){return he.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=he.prop(this,"elements");return e?he.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!he(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!ze.test(e))}).map(function(e,t){var n=he(this).val();return null==n?null:Array.isArray(n)?he.map(n,function(e){return{name:t.name,value:e.replace(jt,"\r\n")}}):{name:t.name,value:n.replace(jt,"\r\n")}}).get()}});var It=/%20/g,Dt=/#.*$/,Lt=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,qt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ft={},Mt={},$t="*/".concat("*"),_t=te.createElement("a");_t.href=Tt.href,he.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:Pt.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":he.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?K(K(e,he.ajaxSettings),t):K(he.ajaxSettings,e)},ajaxPrefilter:G(Ft),ajaxTransport:G(Mt),ajax:function(t,n){function r(t,n,r,s){var u,d,p,b,w,C=n;c||(c=!0,l&&e.clearTimeout(l),i=void 0,a=s||"",T.readyState=t>0?4:0,u=t>=200&&t<300||304===t,r&&(b=Q(h,T,r)),b=J(h,b,T,u),u?(h.ifModified&&((w=T.getResponseHeader("Last-Modified"))&&(he.lastModified[o]=w),(w=T.getResponseHeader("etag"))&&(he.etag[o]=w)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,d=b.data,p=b.error,u=!p)):(p=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",u?v.resolveWith(m,[d,C,T]):v.rejectWith(m,[T,C,p]),T.statusCode(x),x=void 0,f&&g.trigger(u?"ajaxSuccess":"ajaxError",[T,h,u?d:p]),y.fireWith(m,[T,C]),f&&(g.trigger("ajaxComplete",[T,h]),--he.active||he.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,l,u,c,f,d,p,h=he.ajaxSetup({},n),m=h.context||h,g=h.context&&(m.nodeType||m.jquery)?he(m):he.event,v=he.Deferred(),y=he.Callbacks("once memory"),x=h.statusCode||{},b={},w={},C="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s)for(s={};t=Ot.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)T.always(e[T.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),r(0,t),this}};if(v.promise(T),h.url=((t||h.url||Tt.href)+"").replace(Ht,Tt.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(Ae)||[""],null==h.crossDomain){u=te.createElement("a");try{u.href=h.url,u.href=u.href,h.crossDomain=_t.protocol+"//"+_t.host!=u.protocol+"//"+u.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=he.param(h.data,h.traditional)),Z(Ft,h,n,T),c)return T;(f=he.event&&h.global)&&0==he.active++&&he.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!qt.test(h.type),o=h.url.replace(Dt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(It,"+")):(p=h.url.slice(o.length),h.data&&(o+=(St.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Lt,"$1"),p=(St.test(o)?"&":"?")+"_="+kt+++p),h.url=o+p),h.ifModified&&(he.lastModified[o]&&T.setRequestHeader("If-Modified-Since",he.lastModified[o]),he.etag[o]&&T.setRequestHeader("If-None-Match",he.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&T.setRequestHeader("Content-Type",h.contentType),T.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(d in h.headers)T.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(!1===h.beforeSend.call(m,T,h)||c))return T.abort();if(C="abort",y.add(h.complete),T.done(h.success),T.fail(h.error),i=Z(Mt,h,n,T)){if(T.readyState=1,f&&g.trigger("ajaxSend",[T,h]),c)return T;h.async&&h.timeout>0&&(l=e.setTimeout(function(){T.abort("timeout")},h.timeout));try{c=!1,i.send(b,r)}catch(e){if(c)throw e;r(-1,e)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return he.get(e,t,n,"json")},getScript:function(e,t){return he.get(e,void 0,t,"script")}}),he.each(["get","post"],function(e,t){he[t]=function(e,n,r,i){return he.isFunction(n)&&(i=i||r,r=n,n=void 0),he.ajax(he.extend({url:e,type:t,dataType:i,data:n,success:r},he.isPlainObject(e)&&e))}}),he._evalUrl=function(e){return he.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},he.fn.extend({wrapAll:function(e){var t;return this[0]&&(he.isFunction(e)&&(e=e.call(this[0])),t=he(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return he.isFunction(e)?this.each(function(t){he(this).wrapInner(e.call(this,t))}):this.each(function(){var t=he(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=he.isFunction(e);return this.each(function(n){he(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){he(this).replaceWith(this.childNodes)}),this}}),he.expr.pseudos.hidden=function(e){return!he.expr.pseudos.visible(e)},he.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},he.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},Rt=he.ajaxSettings.xhr();de.cors=!!Rt&&"withCredentials"in Rt,de.ajax=Rt=!!Rt,he.ajaxTransport(function(t){var n,r;if(de.cors||Rt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Bt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),he.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),he.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return he.globalEval(e),e}}}),he.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),he.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=he("