diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000000..da0310f513b --- /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 = true + +[*.md] +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.gitignore b/.gitignore index f60f3093679..5b58b33f89d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,5 @@ _site *.sublime-workspace codekit-config.json node_modules -Gemfile.lock -.sass-cache \ No newline at end of file +.sass-cache +.jekyll-metadata diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cd4bdd85490..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: ruby -rvm: - - 2.1 - -before_install: - - export NOKOGIRI_USE_SYSTEM_LIBRARIES=true - -script: - - bundle exec jekyll build --drafts - - bundle exec htmlproof ./_site - -notifications: - email: false diff --git a/404.md b/404.md index 8c84a383e13..74e94d520d1 100644 --- a/404.md +++ b/404.md @@ -3,6 +3,8 @@ layout: page title: "Page Not Found" description: "Page not found. Your pixels are in another canvas." sitemap: false +search_omit: true +permalink: /404.html --- Sorry, but the page you were trying to view does not exist --- perhaps you can try searching for it below. @@ -12,5 +14,5 @@ Sorry, but the page you were trying to view does not exist --- perhaps you can t var GOOG_FIXURL_SITE = '{{ site.url }}' \ No newline at end of file diff --git a/Gemfile b/Gemfile index 963403db904..718d148751a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,6 @@ -source 'https://rubygems.org' +source "https://rubygems.org" -gem 'jekyll' -gem 'jekyll-sitemap' -gem 'octopress', '~> 3.0.0.rc.12' - -group :test do - gem 'html-proofer' -end +gem "jekyll" +gem "jekyll-sitemap" +gem "jekyll-gist" +gem "jekyll-feed" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000000..9afc35aa713 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,62 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.4.0) + colorator (1.1.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) + ffi (1.9.14) + ffi (1.9.14-x64-mingw32) + forwardable-extended (2.6.0) + jekyll (3.2.1) + colorator (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.1) + kramdown (~> 1.3) + liquid (~> 3.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (~> 1.7) + safe_yaml (~> 1.0) + jekyll-feed (0.7.0) + jekyll-gist (1.4.0) + octokit (~> 4.2) + jekyll-sass-converter (1.4.0) + sass (~> 3.4) + jekyll-sitemap (0.11.0) + addressable (~> 2.4.0) + jekyll-watch (1.5.0) + listen (~> 3.0, < 3.1) + kramdown (1.12.0) + liquid (3.0.6) + listen (3.0.8) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + mercenary (0.3.6) + multipart-post (2.0.0) + octokit (4.3.0) + sawyer (~> 0.7.0, >= 0.5.3) + pathutil (0.14.0) + forwardable-extended (~> 2.6) + rb-fsevent (0.9.7) + rb-inotify (0.9.7) + ffi (>= 0.5.0) + rouge (1.11.1) + safe_yaml (1.0.4) + sass (3.4.22) + sawyer (0.7.0) + addressable (>= 2.3.5, < 2.5) + faraday (~> 0.8, < 0.10) + +PLATFORMS + ruby + x64-mingw32 + +DEPENDENCIES + jekyll + jekyll-feed + jekyll-gist + jekyll-sitemap + +BUNDLED WITH + 1.12.5 diff --git a/README.md b/README.md index ee01de58629..425149ee4d4 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,15 @@ Looking for a simple, responsive, theme for your Jekyll powered blog? Well look no further. Here be **So Simple Theme**, the followup to [**Minimal Mistakes**](http://mmistakes.github.io/minimal-mistakes/) -- by designer slash illustrator [Michael Rose](http://mademistakes.com). -[![Build Status](https://travis-ci.org/mmistakes/so-simple-theme.svg?branch=master)](https://travis-ci.org/mmistakes/so-simple-theme) +## Notable features: -## So Simple Theme is all about: - -* Responsive templates. Looking good on mobile, tablet, and desktop. +* Compatible with Jekyll 3 and GitHub Pages. +* Responsive templates. Looks good on mobile, tablet, and desktop devices. * Gracefully degrading in older browsers. Compatible with Internet Explorer 9+ and all modern browsers. * Minimal embellishments and subtle animations. * Optional large feature images for posts and pages. * [Custom 404 page](http://mmistakes.github.io/so-simple-theme/404.html) to get you started. -* [Simple site search](https://github.com/christian-fei/Simple-Jekyll-Search) +* Basic [search capabilities](https://github.com/mathaywarduk/jekyll-search) * Support for Disqus Comments ![screenshot of So Simple Theme](http://mmistakes.github.io/so-simple-theme/images/so-simple-theme-preview.jpg) @@ -22,9 +21,8 @@ See a [live version of So Simple](http://mmistakes.github.io/so-simple-theme/) h ## Getting Started -So Simple takes advantage of Sass and data files to make customizing easier. These features require Jekyll 2.x and will not work with older versions of Jekyll. +So Simple takes advantage of Sass and data files to make customizing easier and requires Jekyll 3.x. To learn how to install and use this theme check out the [Setup Guide](http://mmistakes.github.io/so-simple-theme/theme-setup/) for more information. [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/mmistakes/so-simple-theme/trend.png)](https://bitdeli.com/free "Bitdeli Badge") - diff --git a/_config.yml b/_config.yml index 823d882b274..65717757312 100644 --- a/_config.yml +++ b/_config.yml @@ -2,47 +2,49 @@ title: Jesse Stuart locale: en_US -description: +description: logo: site-logo.png search: false -url: - +url: # Jekyll configuration permalink: /:categories/:title/ markdown: kramdown -highlighter: pygments +highlighter: rouge sass: sass_dir: _sass style: compressed gems: - jekyll-sitemap + - jekyll-gist + - jekyll-feed kramdown: + input: GFM auto_ids: true footnote_nr: 1 entity_output: as_char - toc_levels: 1..6 - use_coderay: false + toc_levels: 1..2 + enable_coderay: false -include: [".htaccess"] -exclude: ["lib", "config.rb", "Capfile", "config", "log", "Rakefile", "Rakefile.rb", "tmp", "less", "*.sublime-project", "*.sublime-workspace", "test", "spec", "Gruntfile.js", "package.json", "node_modules", "Gemfile", "Gemfile.lock", "LICENSE", "README.md", "vendor"] +mathjax: true +include: [".htaccess"] +exclude: ["lib", "config.rb", "Capfile", "config", "log", "Rakefile", "Rakefile.rb", "tmp", ".less", "*.sublime-project", "*.sublime-workspace", "test", "spec", "Gruntfile.js", "package.json", "node_modules", "Gemfile", "Gemfile.lock", "LICENSE", "README.md", "vendor"] # Site owner owner: name: Jesse Stuart avatar: bio-photo.jpg email: jdstuart@icloud.com - # twitter: jesse_stuart - # facebook: jesse.d.stuart github: jessestuart linkedin: jessedstuart - # instagram: jaystu + twitter: jesse_stuart + instagram: jaystu google: analytics: UA-53770919-1 # verify: UQj93ERU9zgECodaaXgVpkjrFn9UrDMEzVamacSoQ8Y # ad-client: ca-pub-7328585512091257 # ad-slot: 7855747535 - # bing-verify: D81F4C18A6CB3018F64D7C827D953DFD \ No newline at end of file + disqus-shortname: diff --git a/_data/authors.yml b/_data/authors.yml index 182a6e69d51..92562924197 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -1,20 +1,11 @@ # Authors -# billy_rick: -# name: Billy Rick -# web: http://thewhip.com -# email: billy@rick.com -# bio: "What do you want, jewels? I am a very extravagant man." -# avatar: bio-photo-2.jpg -# twitter: extravagantman -# google: -# plus: BillyRick -# -# cornelius_fiddlebone: -# name: Cornelius Fiddlebone -# email: cornelius@thewhip.com -# bio: "I ordered what?" -# avatar: bio-photo.jpg -# twitter: rhymeswithsackit -# google: -# plus: CorneliusFiddlebone \ No newline at end of file +jesse: + name: Jesse Stuart + web: http://jessesturat.com + email: jdstuart@icloud.com + bio: "" + avatar: bio-photo-2.jpg + twitter: extravagantman + google: + plus: BillyRick diff --git a/_data/navigation.yml b/_data/navigation.yml index 41a05e05954..3efb43cf85a 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -4,10 +4,10 @@ - title: About url: /about/ - + - title: Publications url: /publications - + - title: Resume url: /images/jesse_stuart-resume(8.13.14).pdf @@ -21,4 +21,4 @@ # url: /theme-setup/ # # - title: Made Mistakes -# url: http://mademistakes.com \ No newline at end of file +# url: http://mademistakes.com diff --git a/_includes/ad-footer.html b/_includes/ad-footer.html index 1628318011c..ff2bc6e00d3 100644 --- a/_includes/ad-footer.html +++ b/_includes/ad-footer.html @@ -1,5 +1,5 @@ \ No newline at end of file + diff --git a/_includes/head.html b/_includes/head.html index 58681721317..649f064de67 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -15,9 +15,8 @@ {% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %} -{% if site.owner.google.plus %}{% endif %} - + @@ -25,7 +24,7 @@ - + @@ -38,6 +37,11 @@ +{% if site.mathjax == true %} + + +{% endif %} + diff --git a/_includes/navigation.html b/_includes/navigation.html index 92c2a1afd3e..3aea0e697e4 100644 --- a/_includes/navigation.html +++ b/_includes/navigation.html @@ -9,28 +9,27 @@ {% endif %}
  • {{ link.title }}
  • {% endfor %} - {% if site.search %}
  • Search
  • {% endif %} {% include browser-upgrade.html %} -{% if site.search %}{% include site-search.html %}{% endif %} - {% if page.image.feature %}
    {% if site.logo != null %}
    - +
    {% endif %}
    {% else %}
    - {% if site.logo != null %} - - {% endif %} -

    {{ site.title }}

    + {% if site.logo != null %} + + {% endif %} +

    {{ site.title }}

    {{ site.description }}

    {% endif %} + + diff --git a/_includes/scripts.html b/_includes/scripts.html index f3b16ed60e2..e92a6d15831 100644 --- a/_includes/scripts.html +++ b/_includes/scripts.html @@ -1,60 +1,25 @@ - + + + -{% if site.search %} - - -{% endif %} {% if site.owner.google.analytics %} {% endif %} - -{% if page.comments %} - {% include disqus_comments.html %} -{% endif %} \ No newline at end of file diff --git a/_includes/site-search.html b/_includes/site-search.html deleted file mode 100644 index 8c49fcadb47..00000000000 --- a/_includes/site-search.html +++ /dev/null @@ -1,7 +0,0 @@ -
    -
    - - - -
    -
    \ No newline at end of file diff --git a/_includes/social-share.html b/_includes/social-share.html new file mode 100644 index 00000000000..cf3db5e9864 --- /dev/null +++ b/_includes/social-share.html @@ -0,0 +1,10 @@ + + Tweet + + + Like + + + +1 + + \ No newline at end of file diff --git a/_layouts/page.html b/_layouts/page.html index 19ff9a4267d..a29355f24d9 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -13,8 +13,11 @@
    - {% if page.image.feature %}{{ page.title }}{% if page.image.credit %}

    Photo Credit: {{ page.image.credit }}{% endif %}{% endif %} + {% if page.image.feature %}{{ page.title }}{% if page.image.credit %}

    Photo Credit: {{ page.image.credit }}

    {% endif %}{% endif %}
    +
    +

    {% if page.headline %}{{ page.headline }}{% else %}{{ page.title }}{% endif %}

    +
    {{ content }}
    @@ -23,12 +26,12 @@
    -{% include scripts.html %} +{% include scripts.html %} - \ No newline at end of file + diff --git a/_layouts/post.html b/_layouts/post.html index 9b77dcf7171..b37474d3206 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -13,10 +13,12 @@
    - {% if page.image.feature %}{{ page.title }}{% if page.image.credit %}

    Photo Credit: {{ page.image.credit }}{% endif %}{% endif %} + {% if page.image.feature %}{{ page.title }}{% if page.image.credit %}

    Image credit: {{ page.image.credit }}

    {% endif %}{% endif %}
    - + {% if page.link %}

    {% if page.headline %}{{ page.headline }}{% else %}{{ page.title }}{% endif %}

    {% else %} @@ -29,7 +31,7 @@

    {% if page.headline %}{{ page.headline }}{% else %}{{ pa {% endif %} {% if author.avatar contains 'http' %} {{ author.name }} bio photo - {% else %} + {% elsif author.avatar %} {{ author.name }} bio photo {% endif %} By {{ author.name }} @@ -63,16 +65,24 @@

    {% if page.headline %}{{ page.headline }}{% else %}{{ pa {% if site.owner.disqus-shortname and page.comments == true %}
    {% endif %}

    +
    -{% include scripts.html %} +{% include scripts.html %} diff --git a/_octopress.yml b/_octopress.yml deleted file mode 100644 index 3223f5e241d..00000000000 --- a/_octopress.yml +++ /dev/null @@ -1,10 +0,0 @@ -# Default extensions -post_ext: md -page_ext: md - -# Found in _templates/ -post_layout: post -page_layout: page - -# Format titles with titlecase? -titlecase: true diff --git a/_posts/blog/2014-08-08-hello-world.md b/_posts/blog/2014-08-08-hello-world.md new file mode 100644 index 00000000000..0bd616c257e --- /dev/null +++ b/_posts/blog/2014-08-08-hello-world.md @@ -0,0 +1,34 @@ +--- +layout: post +title: "Hello World" +modified: +categories: blog +excerpt: +tags: [] +image: + feature: +date: 2014-08-08T15:39:55-04:00 +modified: 2016-06-01T14:19:19-04:00 +--- + +You'll find this post in your `_posts` directory - edit this post and re-build (or run with the `-w` switch) to see your changes! +To add new posts, simply add a file in the `_posts` directory that follows the convention: YYYY-MM-DD-name-of-post.ext. + +## Sample Heading + +### Sample Heading 2 + +Jekyll also offers powerful support for code snippets: + +```ruby +def print_hi(name) + puts "Hi, #{name}" +end +print_hi('Tom') +#=> prints 'Hi, Tom' to STDOUT. +``` + +Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh]. + +[jekyll-gh]: https://github.com/jekyll/jekyll +[jekyll]: http://jekyllrb.com diff --git a/_posts/blog/2015-08-10-mathjax-example.md b/_posts/blog/2015-08-10-mathjax-example.md new file mode 100644 index 00000000000..a2f012b959e --- /dev/null +++ b/_posts/blog/2015-08-10-mathjax-example.md @@ -0,0 +1,32 @@ +--- +layout: post +title: "MathJax Example" +modified: +categories: blog +excerpt: +tags: [] +image: + feature: +date: 2015-08-10T08:08:50-04:00 +--- + +[MathJax](http://www.mathjax.org/) is a simple way of including Tex/LaTex/MathML based mathematics in HTML webpages. To get up and running you need to include the MathJax script in the header of your github pages page, and then write some maths. For LaTex, there are two delimiters you need to know about, one for block or displayed mathematics `\[ ... \]`, and the other for inline mathematics `\( ... \)`. + +## Usage + +To enable MathJax support be sure Kramdown is your Markdown flavor of choice and MathJax is set to true in your `_config.yml` file. + +```yaml +markdown: kramdown +mathjax: true +``` + +``` +Here is an example MathJax inline rendering \\( 1/x^{2} \\), and here is a block rendering: +\\[ \frac{1}{n^{2}} \\] +``` + +Here is an example MathJax inline rendering \\( 1/x^{2} \\), and here is a block rendering: +\\[ \frac{1}{n^{2}} \\] + +The only thing to look out for is the escaping of the backslash when using markdown, so the delimiters become `\\[ ... \\]` and `\\( ... \\)` for inline and block maths respectively. diff --git a/_sass/elements.scss b/_sass/_animations.scss similarity index 71% rename from _sass/elements.scss rename to _sass/_animations.scss index d8f6d1250c6..686a8969aa9 100644 --- a/_sass/elements.scss +++ b/_sass/_animations.scss @@ -1,129 +1,33 @@ -hr { - display: block; - margin: 1em 0; - padding: 0; - height: 1px; - border: 0; - border-top: 1px solid #ccc; - border-bottom: 1px solid #fff; -} - -// Figures and images -// -------------------------------------------------- -figure { - margin: 0; - padding-top: 10px; - padding-bottom: 10px; - @include clearfix; - img { - margin-bottom: 10px; - } - a { - img { - @include translate(0, 0); - -webkit-transition-duration: 0.25s; - -moz-transition-duration: 0.25s; - -o-transition-duration: 0.25s; - @include opacity(0.7); - &:hover { - @include translate(0, -5px); - @include box-shadow(0 0 10px rgba($black, .20)); - @include opacity(1); - } - } - } - &.half { - @media #{$large} { - img { - width: 310px; - float: left; - margin-right: 10px; - } - figcaption { - clear: left; - } - } - } - &.third { - @media #{$large} { - img { - width: 200px; - float: left; - margin-right: 10px; - } - figcaption { - clear: left; - } - } - } -} -svg:not(:root) { - overflow: hidden; -} - +/* ========================================================================== + Animations + ========================================================================== */ -// Tables -// -------------------------------------------------- -table { - width: 100%; -} - -// Buttons -// -------------------------------------------------- -.btn { - display: inline-block; - margin-bottom: 20px; - padding: 8px 20px; - @include font-rem(14); - background-color: $black; - color: $white; - border: 2px solid $black !important; - @include rounded(20px); - &:visited { - color: $white; - } - &:hover { - background-color: $white; - color: $black; - } -} - -.close-btn { - position: absolute; - top: 0; - right: 0; - z-index: 1; - background-color: transparent; - border: 0 solid transparent; - color: $white; -} +/* add .animated class to elements you wish to animate + * along with the type of animation (eg:
    ) + */ -// Well -// -------------------------------------------------- -.well { - padding: 20px; - border: 1px solid $comp-color; - @include rounded(4px); -} - -// Animations -// -------------------------------------------------- .animated{-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:1s;-moz-animation-duration:1s;-ms-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;}.animated.hinge{-webkit-animation-duration:2s;-moz-animation-duration:2s;-ms-animation-duration:2s;-o-animation-duration:2s;animation-duration:2s;}@-webkit-keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;} } +/* + Fade-in animation .fadeIn + ========================================================================== */ + +@-webkit-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} @-moz-keyframes fadeIn { - 0% {opacity: 0;} + 0% {opacity: 0;} 100% {opacity: 1;} } - @-o-keyframes fadeIn { - 0% {opacity: 0;} + 0% {opacity: 0;} 100% {opacity: 1;} } - @keyframes fadeIn { - 0% {opacity: 0;} + 0% {opacity: 0;} 100% {opacity: 1;} } @@ -133,48 +37,46 @@ table { -o-animation-name: fadeIn; animation-name: fadeIn; } + +/* + Fade-in down animation .fadeInDown + ========================================================================== */ + @-webkit-keyframes fadeInDown { 0% { opacity: 0; -webkit-transform: translateY(-20px); } - 100% { opacity: 1; -webkit-transform: translateY(0); } } - @-moz-keyframes fadeInDown { 0% { opacity: 0; -moz-transform: translateY(-20px); } - 100% { opacity: 1; -moz-transform: translateY(0); } } - @-o-keyframes fadeInDown { 0% { opacity: 0; -o-transform: translateY(-20px); } - 100% { opacity: 1; -o-transform: translateY(0); } } - @keyframes fadeInDown { 0% { opacity: 0; transform: translateY(-20px); } - 100% { opacity: 1; transform: translateY(0); @@ -187,48 +89,46 @@ table { -o-animation-name: fadeInDown; animation-name: fadeInDown; } + +/* + Fade-in down big animation .fadeInDownBig + ========================================================================== */ + @-webkit-keyframes fadeInDownBig { 0% { opacity: 0; -webkit-transform: translateY(-2000px); } - 100% { opacity: 1; -webkit-transform: translateY(0); } } - @-moz-keyframes fadeInDownBig { 0% { opacity: 0; -moz-transform: translateY(-2000px); } - 100% { opacity: 1; -moz-transform: translateY(0); } } - @-o-keyframes fadeInDownBig { 0% { opacity: 0; -o-transform: translateY(-2000px); } - 100% { opacity: 1; -o-transform: translateY(0); } } - @keyframes fadeInDownBig { 0% { opacity: 0; transform: translateY(-2000px); } - 100% { opacity: 1; transform: translateY(0); @@ -241,81 +141,71 @@ table { -o-animation-name: fadeInDownBig; animation-name: fadeInDownBig; } + +/* + Bounce-in animation .bounceIn + ========================================================================== */ + @-webkit-keyframes bounceIn { 0% { opacity: 0; -webkit-transform: scale(.3); } - 50% { opacity: 1; -webkit-transform: scale(1.05); } - 70% { -webkit-transform: scale(.9); } - 100% { -webkit-transform: scale(1); } } - @-moz-keyframes bounceIn { 0% { opacity: 0; -moz-transform: scale(.3); } - 50% { opacity: 1; -moz-transform: scale(1.05); } - 70% { -moz-transform: scale(.9); } - 100% { -moz-transform: scale(1); } } - @-o-keyframes bounceIn { 0% { opacity: 0; -o-transform: scale(.3); } - 50% { opacity: 1; -o-transform: scale(1.05); } - 70% { -o-transform: scale(.9); } - 100% { -o-transform: scale(1); } } - @keyframes bounceIn { 0% { opacity: 0; transform: scale(.3); } - 50% { opacity: 1; transform: scale(1.05); } - 70% { transform: scale(.9); } - 100% { transform: scale(1); } @@ -327,81 +217,71 @@ table { -o-animation-name: bounceIn; animation-name: bounceIn; } + +/* + Bounce-in down animation .bounceInDown + ========================================================================== */ + @-webkit-keyframes bounceInDown { 0% { opacity: 0; -webkit-transform: translateY(-2000px); } - 60% { opacity: 1; -webkit-transform: translateY(30px); } - 80% { -webkit-transform: translateY(-10px); } - 100% { -webkit-transform: translateY(0); } } - @-moz-keyframes bounceInDown { 0% { opacity: 0; -moz-transform: translateY(-2000px); } - 60% { opacity: 1; -moz-transform: translateY(30px); } - 80% { -moz-transform: translateY(-10px); } - 100% { -moz-transform: translateY(0); } } - @-o-keyframes bounceInDown { 0% { opacity: 0; -o-transform: translateY(-2000px); } - 60% { opacity: 1; -o-transform: translateY(30px); } - 80% { -o-transform: translateY(-10px); } - 100% { -o-transform: translateY(0); } } - @keyframes bounceInDown { 0% { opacity: 0; transform: translateY(-2000px); } - 60% { opacity: 1; transform: translateY(30px); } - 80% { transform: translateY(-10px); } - 100% { transform: translateY(0); } @@ -414,10 +294,14 @@ table { animation-name: bounceInDown; } +/* + Drop animation .drop + ========================================================================== */ + @-webkit-keyframes drop { 0% { -webkit-transform: translateY(-500px); - } + } 100% { -webkit-transform: translateY(0); } @@ -425,7 +309,7 @@ table { @-moz-keyframes drop { 0% { -moz-transform: translateY(-500px); - } + } 100% { -moz-transform: translateY(0); } @@ -433,7 +317,7 @@ table { @-o-keyframes drop { 0% { -o-transform: translateY(-500px); - } + } 100% { -o-transform: translateY(0); } @@ -441,7 +325,7 @@ table { @keyframes drop { 0% { transform: translateY(-500px); - } + } 100% { transform: translateY(0); } @@ -451,4 +335,4 @@ table { -moz-animation-name: drop; -o-animation-name: drop; animation-name: drop; -} \ No newline at end of file +} diff --git a/_sass/_archives.scss b/_sass/_archives.scss new file mode 100644 index 00000000000..ce32afd7e44 --- /dev/null +++ b/_sass/_archives.scss @@ -0,0 +1,88 @@ +/* ========================================================================== + Archive pages + ========================================================================== */ + + + + +/* + Post archive + ========================================================================== */ + +.post-list { + margin: 0; + padding: 0; + list-style-type: none; + + li { + padding: 8px 0; + border-bottom: 1px solid lighten($black,80); + border-bottom: 1px solid rgba($black,.10); + @include font-size(18,no); + @include clearfix; + + > a { + border-bottom-width: 0; /* remove underlines from items in post indexes */ + } + } + + a > span { + float: right; + } + + .entry-date { + @include font-size(14,no); + text-transform: uppercase; + display: none; + + @include media($medium) { + display: inline; + } + } + + /* post excerpt */ + .excerpt { + display: block; + float: none; + @include font-size(14, no, 16); + + @include media($medium) { + width: 70%; + } + + @include media($large) { + width: 60%; + } + } +} + +/* + Tag archive + ========================================================================== */ + +.tag-box { + list-style: none; + margin: 0; + padding: 4px 0; + overflow: hidden; + @include clearfix; + + &.inline li { + float: left; + @include font-size(14); + line-height: 2.5; + } + + a { + padding: 4px 6px; + margin: 2px; + background-color: lighten($black, 90); + @include rounded(4px); + text-decoration: none; + + span { + vertical-align: super; + @include font-size(10); + } + } +} diff --git a/_sass/_base.scss b/_sass/_base.scss new file mode 100644 index 00000000000..d32e9f80717 --- /dev/null +++ b/_sass/_base.scss @@ -0,0 +1,232 @@ +/* ========================================================================== + Base elements + ========================================================================== */ + +/* + Selections + ========================================================================== */ + +::-moz-selection { + background-color: lighten($base-color, 65%); + color: $base-color; + text-shadow: none; +} +::selection { + background-color: lighten($base-color, 65%); + color: $base-color; + text-shadow: none; +} + + +/* + Body + ========================================================================== */ + +body { + margin: 0; + padding: 0; + width: 100%; + font-family: $base-font; + color: $text-color; + background-color: $body-color; + border-top: 5px solid $black; +} + +/* + Typography + ========================================================================== */ + +body { + font-family: $base-font; + color: $text-color; + @include font-size(16); +} + +p { + @include font-size(18,yes,28); +} + +li { + @include font-size(16,12,24); +} + +/* headings */ + +h1, h2, h3, h4, h5, h6 { + font-family: $heading-font; + text-rendering: optimizeLegibility; // Fix the character spacing for headings +} + +h1 { + @include font-size(36); +} + +h2 { + @include font-size(32); +} + +h3 { + @include font-size(28); +} + +h4 { + @include font-size(24); +} + +h5 { + @include font-size(20); +} + +h6 { + @include font-size(18); +} + +/* underlined text */ + +u, +ins { + text-decoration: none; + border-bottom: 1px solid $text-color; +} + +/* + Links + ========================================================================== */ + +a { + text-decoration: none; + color: $link-color; + + &:visited { + color: lighten($link-color, 20); + } + + &:hover { + color: darken($link-color, 20); + } + + &:focus { + outline: thin dotted; + color: darken($link-color, 20); + } + + &:hover, + &:active { + outline: 0; + } +} + +/* + Horizontal rules + ========================================================================== */ + +hr { + display: block; + margin: 1em 0; + padding: 0; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + border-bottom: 1px solid #fff; +} + +/* + Figures and Images + ========================================================================== */ + +figure { + margin: 0; + padding-top: 10px; + padding-bottom: 10px; + @include clearfix; + + img { + margin-bottom: 10px; + } + + a { + + img { + @include transform(translateY(0)); + -webkit-transition-duration: 0.25s; + -moz-transition-duration: 0.25s; + -o-transition-duration: 0.25s; + opacity: 0.7; + + &:hover { + @include transform(translateY(-5px)); + @include box-shadow(0 0 10px rgba($black, .20)); + opacity: 1; + } + } + } +} + +svg:not(:root) { + overflow: hidden; +} + +// Figure captions + +figcaption { + padding-top: 10px; + @include font-size(14); + line-height: 1.3; + color: lighten($text-color, 10); +} + + +// Tables +// -------------------------------------------------- + +table { + width: 100%; +} + + +// Blockquotes +// -------------------------------------------------- + +blockquote { + font-family: $alt-font; + font-style: italic; + @include font-size(16); + padding-left: 20px; + border-left: 8px solid $black; +} + + +// Code +// -------------------------------------------------- + +tt, code, kbd, samp, pre { + font-family: $code-font; +} + +p, +li { + + code { + @include font-size(14); + font-family: $code-font; + white-space: nowrap; + margin: 0 2px; + padding: 0 5px; + border: 1px solid lighten($black, 90); + background-color: lighten($black, 95); + @include rounded(3px); + } +} + +pre { + @include font-size(14); + overflow-x: auto; +} + + +// Global Transition +// --------------------------------------------------- + +b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, .highlight { + @include transition(all 0.2s ease); +} diff --git a/_sass/_buttons.scss b/_sass/_buttons.scss new file mode 100644 index 00000000000..dc53fb646dd --- /dev/null +++ b/_sass/_buttons.scss @@ -0,0 +1,41 @@ +/* ========================================================================== + Buttons + ========================================================================== */ + +/* + Default button + ========================================================================== */ + +.btn { + display: inline-block; + margin-bottom: 20px; + padding: 8px 20px; + @include font-size(14); + background-color: $black; + color: $white; + border: 2px solid $black !important; + border-radius: $border-radius; + + &:visited { + color: $white; + } + + &:hover { + background-color: $white; + color: $black; + } +} + +/* + Close button + ========================================================================== */ + +.close-btn { + position: absolute; + top: 0; + right: 0; + z-index: 1; + background-color: transparent; + border: 0 solid transparent; + color: $white; +} diff --git a/_sass/_footer.scss b/_sass/_footer.scss new file mode 100644 index 00000000000..b763fff7e47 --- /dev/null +++ b/_sass/_footer.scss @@ -0,0 +1,33 @@ +/* ========================================================================== + Site footer + ========================================================================== */ + +.footer-wrapper { + @include clearfix; + margin: 2em auto; + text-align: center; + font-family: $alt-font; + @include font-size(14); + font-style: italic; + color: lighten($text-color,20); + + a { + color: lighten($text-color,20); + } +} + +/* + Social media icons + ========================================================================== */ + +.social-icons { + margin: 1em 0 2em; + + a { + padding: 4px 8px; + + &:hover { + color: $black; + } + } +} diff --git a/_sass/_footnotes.scss b/_sass/_footnotes.scss new file mode 100644 index 00000000000..37266f35b58 --- /dev/null +++ b/_sass/_footnotes.scss @@ -0,0 +1,8 @@ +/* ========================================================================== + Footnotes (class generated by Kramdown) + ========================================================================== */ + +.footnotes { + @include font-size(14); + font-family: $base-font; +} \ No newline at end of file diff --git a/_sass/_forms.scss b/_sass/_forms.scss new file mode 100644 index 00000000000..d8c8e98024c --- /dev/null +++ b/_sass/_forms.scss @@ -0,0 +1,292 @@ +/* ========================================================================== + Forms + ========================================================================== */ + +form { + margin: 0 0 5px 0; + + fieldset { + margin-bottom: 5px; + padding: 0; + border-width: 0; + } + + legend { + display: block; + width: 100%; + margin-bottom: 5px * 2; + *margin-left: -7px; + padding: 0; + color: $text-color; + border: 0; + border-bottom: 1px solid lighten($black, 80); + white-space: normal; + } + + p { + margin-bottom: 5px / 2; + } + + ul { + list-style-type: none; + margin: 0 0 5px 0; + padding: 0; + } + + br { + display: none; + } +} + +label, +input, +button, +select, +textarea { + vertical-align: baseline; + *vertical-align: middle; +} + +input, +button, +select, +textarea { + font-family: $base-font; + @include box-sizing(border-box); +} + +label { + display: block; + margin-bottom: 10px / 8; + font-weight: bold; + color: $text-color; + cursor: pointer; + + input, + textarea, + select { + display: block; + } +} + +input, +textarea, +select { + display: inline-block; + width: 100%; + padding: 4px; + margin-bottom: 5px / 4; + background-color: $white; + border: 1px solid lighten($black, 80); + color: $text-color; + + &:hover { + border-color: lighten($accent-color, 50); + } +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +input[type="image"], +input[type="checkbox"], +input[type="radio"] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + line-height: normal; + cursor: pointer; + @include rounded(0); + border: 0 \9; +} + +input[type="checkbox"], +input[type="radio"] { + @include box-sizing(border-box); + padding: 0; + *width: 13px; + *height: 13px; +} + +input[type="image"] { + border: 0; + @include box-shadow(none); +} + +input[type="file"] { + width: auto; + padding: initial; + line-height: initial; + border: initial; + background-color: transparent; + background-color: initial; + @include box-shadow(none); +} + +input[type="button"], +input[type="reset"], +input[type="submit"] { + width: auto; + height: auto; + cursor: pointer; + *overflow: visible; +} + +select, +input[type="file"] { + *margin-top: 4px; +} + +select { + width: auto; + background-color: $white; +} + +select[multiple], +select[size] { + height : auto; +} + +textarea { + @include resize(vertical); + height: auto; + overflow: auto; + vertical-align: top; +} + +input[type="hidden"] { + display: none; +} + +.radio, +.checkbox { + padding-left: 18px; + font-weight: normal; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +// disabled +// -------------------------------------------------- + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + opacity: 0.5; + cursor: not-allowed; +} + +// focus and active +// -------------------------------------------------- + +input:focus, +textarea:focus { + border-color: $accent-color; + outline: 0; + outline: thin dotted \9; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus, +select:focus { + @include box-shadow(none); +} + +// help text +// -------------------------------------------------- + +.help-block, +.help-inline { + color: lighten($black, 50); +} + +.help-block { + display: block; + margin-bottom: 1em; + line-height: 1em; +} + +.help-inline { + display: inline-block; + vertical-align: middle; + padding-left: 5px; +} + +// .form-inline +// -------------------------------------------------- + +.form-inline input, +.form-inline textarea, +.form-inline select { + display: inline-block; + margin-bottom: 0; +} + +.form-inline label { + display: inline-block; +} + +.form-inline .radio, +.form-inline .checkbox, +.form-inline .radio { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; +} + +// Search +// -------------------------------------------------- + +.simple-search { + text-align: center; + + label { + display: none; + } + + /* input field */ + #goog-wm-qt { + + @include media($medium) { + width: 80%; + } + } + + /* submit button */ + #goog-wm-sb {} +} diff --git a/_sass/_grid-settings.scss b/_sass/_grid-settings.scss new file mode 100644 index 00000000000..850392d6277 --- /dev/null +++ b/_sass/_grid-settings.scss @@ -0,0 +1,9 @@ +@import "vendor/neat/neat-helpers"; + +// Change the grid settings +$visual_grid: false; +$max-width: em(960); + +// Define your breakpoints +$medium: new-breakpoint(min-width em(768) 12); +$large: new-breakpoint(min-width em(1000) 12); \ No newline at end of file diff --git a/_sass/_helpers.scss b/_sass/_helpers.scss new file mode 100644 index 00000000000..6693f7f3b1c --- /dev/null +++ b/_sass/_helpers.scss @@ -0,0 +1,123 @@ +/* ========================================================================== + Helpers and Utility Classes + ========================================================================== */ + +.wrap { + margin: 0 auto; +} + +/* + Typography + ========================================================================== */ + +/* capitalize all letters */ + +.all-caps { + text-transform: uppercase; +} + +/* center text */ + +.center { + text-align: center; +} + +/* remove bullets from list items */ + +/** + * + */ + +.unstyled-list { + list-style: none; + margin-left: 0; + padding-left: 0; + + li { + list-style-type: none; + } +} + +/* + Image alignment + ========================================================================== */ + +/* float left */ + +.pull-left { + float: left; + padding-right: $gutter; +} + +/* float right */ + +.pull-right { + float: right; + padding-left: $gutter; +} + +/* + Image layout in
    + ========================================================================== */ + +figure { + + /* 2 images in a row. should be of equal height/width to maintain layout */ + + &.half { + + @include media($large) { + + img { + width: 47.5%; + float: left; + margin-right: 2.5%; + margin-bottom: 2.5%; + } + + figcaption { + clear: left; + } + } + } + + /* 3 images in a row. should be of equal height/width to maintain layout */ + + &.third { + + @include media($large) { + + img { + width: 30.8%; + float: left; + margin-right: 2.5%; + margin-bottom: 2.5%; + } + + figcaption { + clear: left; + } + } + } +} + +/* + No scrollbars + ========================================================================== */ + +.no-scroll { + overflow: hidden; +} + +/* + Link arrow (used in link post titles) + ========================================================================== */ + +.link-arrow { + font-weight: 100; + text-decoration: underline; + font-style: normal; +} diff --git a/_sass/_masthead.scss b/_sass/_masthead.scss new file mode 100644 index 00000000000..50fc0c68593 --- /dev/null +++ b/_sass/_masthead.scss @@ -0,0 +1,89 @@ +/* ========================================================================== + Masthead + ========================================================================== */ + +.masthead { + margin-top: 40px; + @include clearfix; + + @include media($medium) { + margin-top: 0; + } + + .wrap { + text-align: center; + max-width: em(440); + padding-right: 20px; + padding-left: 20px; + + @include media($medium) { + max-width: em(728); + padding-right: 60px; + padding-left: 60px; + } + + @include media($large) { + max-width: em(960); + } + } +} + +/* + Site logo + ========================================================================== */ + +.site-logo { + + img { + width: 100px; + height: 100px; + @include animation-duration(1s); + @include animation-delay(.05s); + border: 4px solid $white; + @include rounded(100px); /* crops in a circle */ + + @include media($medium) { + width: 150px; + height: 150px; + @include rounded(150px); /* crops in a circle */ + } + + @include media($large) { + width: 200px; + height: 200px; + @include rounded(200px); /* crops in a circle */ + } + } +} + +/* + Site title/name + ========================================================================== */ + +.site-title { + margin-bottom: 0; + @include animation-duration(1s); + @include animation-delay(.75s); + + a { + color: $black; + } +} + +/* + Site description text + ========================================================================== */ + +.site-description { + margin-top: 0; + font-family: $alt-font; + @include font-size(16); + font-weight: 400; + font-style: italic; + @include animation-duration(1s); + @include animation-delay(1s); + + @include media($medium) { + @include font-size(20); + } +} diff --git a/_sass/_mixins.scss b/_sass/_mixins.scss new file mode 100644 index 00000000000..96516edfa22 --- /dev/null +++ b/_sass/_mixins.scss @@ -0,0 +1,197 @@ +// UTILITY MIXINS +// -------------------------------------------------- + +// Webkit-style focus +// -------------------- +@mixin tab-focus() { + // Default + outline: thin dotted #333; + // Webkit + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +// Center-align a block level element +// ---------------------------------- +@mixin center-block() { + display: block; + margin-left: auto; + margin-right: auto; +} + +@mixin text-overflow() { +overflow: hidden; +text-overflow: ellipsis; +white-space: nowrap; } + +// MIXINS +// -------------------------------------------------- + +%tab-focus { + // Default + outline: thin dotted #333; + // Webkit + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + + +// Typography +// -------------------------------------------------- + +/* Vertical Rhythm + https://github.com/sturobson/Sassifaction + + In this mixin you can specify the font size in PX and + it will calculate the REM based on your $doc-font-size + & $doc-line-height variables. + + @include font-size(24); + + It will also create a bottom margin based on the + $doc-font-size & $doc-line-height variables unless you + specify that it shouldn't have one. + + @include font-size(24, no); + + Or if you want to specify a different bottom margin to + be generated. + + @include font-size(24,32); + + This mixin also generates a pixel-less line height by + default unless you specify that you either don't want + one where I'd suggest declaring 1 within the mixin. + + @include font-size(24, yes, 1); + + There's also the option to specify a different line-height + for it to generate to, where you would specify the + line-height in (effectively) it's pixel value. + + @include font-size(24, yes, 40); +*/ + +@mixin font-size($size, $margin: yes, $line-height: $doc-line-height) { + + // generates the font-size in REMs with a PX fallback + font-size: 0px + $size; + font-size: 0rem + $size / $doc-font-size; + + // line-height functions + //////////////////////// + + // if you a line-height is specified in the mixin + @if $line-height != $doc-line-height and $line-height != 1 { + line-height: ceil($size / $line-height) * ($line-height / $size); + } + + // if $line-height == 1 + // because, typing 1 is quicker than 16 + @else if $line-height == 1 { + line-height: 1; + } + + // normal $line-height + // if the line-height is left. + @else { + line-height: ceil($size / $doc-line-height) * ($doc-line-height / $size); + } + + // margin-bottom functions + ////////////////////////// + + // if no is bottom margin is required + @if $margin == no { + margin-bottom: 0; + } + + // if a specific bottom margin is required + @else if $margin != yes and $margin != no { + margin-bottom: 0px + $margin; + margin-bottom: 0rem + ($margin / $doc-font-size); + } + + // if you're keeping the vertical rhythm with the margin + @else { + margin-bottom: 0px + $doc-line-height; + margin-bottom: 0rem + ($doc-line-height / $doc-font-size); + } +} + +// ROUND CORNERS +// -------------------------------------------------- + +// @include rounded(VALUE); +@mixin rounded($radius:4px) { +border-radius : $radius; } + +// @include border-radius(VALUE,VALUE,VALUE,VALUE); +@mixin border-radius($topright: 0, $bottomright: 0, $bottomleft: 0, $topleft: 0) { +border-top-right-radius : $topright; +border-bottom-right-radius : $bottomright; +border-bottom-left-radius : $bottomleft; +border-top-left-radius : $topleft; +background-clip : padding-box; } + +// @include box-shadow(HORIZONTAL VERTICAL BLUR COLOR)) +@mixin box-shadow($shadow: 0 1px 3px rgba(0,0,0,.25)) { +-webkit-box-shadow : $shadow; +-moz-box-shadow : $shadow; +box-shadow : $shadow; } + +// @include drop-shadow(HORIZONTAL, VERTICAL, BLUR, ALPHA); +@mixin drop-shadow($x-axis: 0, $y-axis: 1px, $blur: 2px, $alpha: 0.1) { +-webkit-box-shadow : $x-axis $y-axis $blur rgba(0, 0, 0, $alpha); +-moz-box-shadow : $x-axis $y-axis $blur rgba(0, 0, 0, $alpha); +box-shadow : $x-axis $y-axis $blur rgba(0, 0, 0, $alpha); } + +// @include text-shadow(); +@mixin text-shadow($shadow: 0 2px 3px rgba(0,0,0,.25)) { +text-shadow : $shadow; } + +// @include opacity(VALUE); +@mixin opacity($opacity : .5) { +opacity : $opacity; } + +// For image replacement +@mixin hide-text() { +text-indent : 100%; +white-space : nowrap; +overflow : hidden; } + +// Hide from visual and speaking browsers +@mixin hidden() { +display : none !important; +visibility : hidden; } +.hidden { + display: none; + visibility: hidden; +} + +// Hide but maintain layout +@mixin invisible() { +visibility : hidden; } + +// @include resize(VALUE) (none, both, horizontal, vertical, inherit) +@mixin resize($direction: both) { +resize : $direction; +overflow : auto; } + +// @include userselect(VALUE) (all, element, none, text) +@mixin user-select($select) { +-webkit-user-select : $select; +-moz-user-select : $select; +-o-user-select : $select; +user-select : $select; } + +// Hidden but available to speaking browsers +@mixin visuallyhidden() { +overflow : hidden; +position : absolute; +clip : rect(0 0 0 0); +height : 1px; +width : 1px; +margin : -1px; +padding : 0; +border : 0; } \ No newline at end of file diff --git a/_sass/_navigation.scss b/_sass/_navigation.scss new file mode 100644 index 00000000000..2b41ecc6c31 --- /dev/null +++ b/_sass/_navigation.scss @@ -0,0 +1,116 @@ +/* ========================================================================== + Top navigation + ========================================================================== */ + +.navigation-wrapper { + text-align: center; + @include clearfix; + + ul { + display: inline-block; + width: 100%; + vertical-align: top; + margin: 0 0 50px; + padding: 4px 20px; + background-color: $black; + + @include media($medium) { + width: auto; + @include rounded(0 0 10px 10px); + } + + @include clearfix; + } + + li { + display: block; + float: left; + list-style: none; + text-align: center; + @include font-size(24,no); + text-transform: uppercase; + color: $white; + + @include media($medium) { + @include font-size(14,no); + } + + a:hover { + @include box-shadow($shadow: inset 0 0 1px $white); + } + } + + a { + display: block; + margin-bottom: 10px; + padding: 12px 20px; + + @include media($medium) { + margin-bottom: 0; + padding: 6px 10px; + } + + color: $white; + @include rounded(4px); + + &:hover { + background-color: lighten($black, 10); + } + } +} + +/* + Responsive navigation toggle + ========================================================================== */ + +#site-nav { + display: none; + z-index: 5; + + @include media($medium) { + -webkit-animation-duration: 1s; + -moz-animation-duration: 1s; + -o-animation-duration: 1s; + animation-duration: 1s; + } + + &.closed { + + @include media($medium) { + display: block; + } + } + + &.opened { + display: block; + max-height: 100%; + + li { + float: none; + + @include media($medium) { + float: left; + } + } + } +} + +/* display when JavaScript is disabled */ +.no-js #site-nav { + display: block; +} + +#nav-toggle { + z-index: 20; + display: block; + vertical-align: top; + margin: 0; + padding: 6px 20px; + background-color: $black; + height: 44px; + @include rounded(0); + + @include media($medium) { + display: none; + } +} diff --git a/_sass/_notices.scss b/_sass/_notices.scss new file mode 100644 index 00000000000..8b0ddc54d2f --- /dev/null +++ b/_sass/_notices.scss @@ -0,0 +1,26 @@ +/* ========================================================================== + Notices + ========================================================================== */ + +/* + Default notice + ========================================================================== */ + +.notice { + margin-top: 1.5em; + padding: .5em 1em; + text-indent: 0; + @include font-size(16); + background-color: lighten($black, 95); + border: 1px solid lighten($black, 90); + @include rounded(4px); +} + +/* + Browser upgrade notice + ========================================================================== */ + +.upgrade { + padding: 10px; + text-align: center; +} diff --git a/_sass/_page.scss b/_sass/_page.scss new file mode 100644 index 00000000000..66bb2aca5bc --- /dev/null +++ b/_sass/_page.scss @@ -0,0 +1,349 @@ +/* ========================================================================== + Page/post layout and styling + ========================================================================== */ + +/* + Main content + ========================================================================== */ + +#main { + @include clearfix; +} + +.entry, +.hentry { + @include clearfix; + border-bottom: 1px solid lighten($black,80); + border-bottom: 1px solid rgba($black,.10); +} + +/* feature image */ + +.entry-feature-image { + margin: 20px 0 0; + width: 100%; + + @include media($medium) { + margin-top: -75px; /* move up to be overlapped by site logo */ + } + + @include media($large) { + margin-top: -145px; /* move up further to be overlapped by site logo */ + } +} + +/* page header */ + +.entry-header { + @include fill-parent; +} + +/* tag listing in page header */ + +.entry-tags { + margin: 2em 0 0; + padding: 0; + text-transform: uppercase; + @include font-size(16); + font-weight: 600; + + a { + color: $text-color; + padding: 0 5px; + } + + li { + display: inline-block; + margin-bottom: 0; + + &:before { + content: "\2022"; + } + + &:first-child { + + &:before { + content: ""; + } + + a { + padding-left: 0; + } + } + } +} + +/* page title */ + +span + .entry-title { + margin-top: 0; +} + +.entry-title { + font-family: $alt-font; + font-style: italic; + @include font-size(36,yes,36); + font-weight: 400; + line-height: 1; + letter-spacing: -3px; + + a { + color: $black; + text-decoration: underline; + } + + @include media($medium) { + @include font-size(52,yes,54); + } + + @include media($large) { + @include font-size(68,yes,72); + } +} + +/* page/post wrapper */ + +.entry-wrapper { + @include outer-container; + margin-top: 0; + margin-bottom: 3em; + padding-right: $gutter; + padding-left: $gutter; +} + +/* page/post meta content (date, author, etc) */ + +.entry-meta { + @include span-columns(12); + text-transform: uppercase; + @include font-size(14); + + a { + color: $text-color; + } + + @include media($large) { + @include span-columns(2.5); + } + + & > span { + padding: 0 20px 10px 0; + display: inline-block; + + @include media($large) { + display: block; + padding: 8px 0; + border-bottom: 1px solid lighten($black,80); + border-bottom: 1px solid rgba($black,.10); + } + } +} + +/* author avatar (circular) */ + +.bio-photo { + display: none; + + @include media($large) { + display: block; + width: 150px; + height: 150px; + margin-bottom: 10px; + @include rounded(150px); + @include clearfix; + } +} + + +/* feature image credit */ + +.image-credit { + margin: 0 auto; + max-width: 440px; + padding-top: 5px; + padding-right: 20px; + padding-left: 20px; + text-align: right; + @include font-size(12, no); + line-height: 1.3; + color: lighten($text-color, 30); + @include clearfix(); + + @include media($medium) { + max-width: 760px; + padding-right: 60px; + padding-left: 60px; + @include font-size(14, no); + } + + @include media($large) { + max-width: 960px; + } + + a { + color: lighten($text-color, 30); + } +} + +/* main content block */ + +.entry-content { + @include span-columns(12); + + p:first-child { + margin-top: 0; + } + + @include media($large) { + @include span-columns(9.5); + } + + /* nice link underlines */ + p > a, + li > a { + border-bottom: 1px dotted lighten($link-color, 50); + + &:hover { + border-bottom-style: solid; + } + } +} + +/* + Disqus + ========================================================================== */ + +#disqus_thread { + margin-top: 2em; +} + +/* + Pagination + ========================================================================== */ + +.pagination { + margin-top: 2em; + text-align: center; +} + +/* + Overrides + ========================================================================== */ + +/* adjust width for lack of meta/author column */ + +#home, +#page { + + .entry-wrapper { + max-width: em(760); + } + + .entry-title { + text-align: center; + max-width: 100%; + } + + .entry-content { + @include span-columns(12); + } +} + +/* + Kramdown generated table of contents + ========================================================================== */ + +#markdown-toc { + font-family: $alt-font; + margin-top: $gutter; + margin-bottom: $gutter; + padding-left: 0; + border: 1px solid $border-color; + border-radius: $border-radius; + + ul { + list-style-type: none; + padding-left: 0; + } + + li { + @include font-size(16,no,18); + border-bottom: 1px solid $border-color; + list-style-type: none; + } + + h6 { + margin: 0; + padding: (.25 * $gutter) (.5 * $gutter); + background: $table-stripe-color; + } + + a { + display: block; + padding: (.25 * $gutter) (.5 * $gutter); + border-left: 2px solid transparent; + border-bottom: 0 solid transparent; + + &:hover, + &:focus { + background: lighten($border-color,5); + } + } +} + +/* + Tables + ========================================================================== */ + +/** For nicer looking tables apply the .table class + * Example: + * + * + * + * + * + * + *
    cell1cell2cell3
    +*/ + +.table { + border-collapse: collapse; + margin: ((0px + $doc-line-height) / 2) 0; + margin: ((0rem + ($doc-line-height / $doc-font-size)) / 2) 0; + width: 100%; + + tbody { + + tr:hover > td, tr:hover > th { + background-color: $table-hover-color; + } + } + + thead { + + tr:first-child td { + border-bottom: 2px solid $table-border-color; + } + } + + th { + padding: (0px + $doc-line-height) / 2; + padding: (0rem + ($doc-line-height / $doc-font-size)) / 2; + font-family: $alt-font; + font-weight: bold; + text-align: left; + background-color: $table-header-color; + border-bottom: 1px solid darken($border-color, 15%); + } + + td { + border-bottom: 1px solid $border-color; + padding: (0px + $doc-line-height) / 2; + padding: (0rem + ($doc-line-height / $doc-font-size)) / 2; + @include font-size(18); + } + + tr, td, th { + vertical-align: middle; + } +} diff --git a/_sass/_reset.scss b/_sass/_reset.scss new file mode 100644 index 00000000000..bf5f5c93748 --- /dev/null +++ b/_sass/_reset.scss @@ -0,0 +1,150 @@ +// STYLE RESETS +// Adapted from http://github.com/necolas/normalize.css +// -------------------------------------------------- + +// Apply a natural box layout model to all elements +*, *:before, *:after { + -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; + } + +// Remove margin +body { margin: 0; } + +// Display HTML5 elements in IE6-9 and FF3 +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +// Display block in IE6-9 and FF3 +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +// Prevents modern browsers from displaying 'audio' without controls +audio:not([controls]) { + display: none; +} + +// Base font settings +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +// Apply focus state +a:focus { + @extend %tab-focus; +} + +// Remove outline +a:hover, +a:active { + outline: 0; +} + +// Prevent sub and sup affecting line-height in all browsers +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} + +// Normalize blockquotes +blockquote { + margin: 0; +} + +// Img border in a's and image quality +img { + // Responsive images (ensure images don't scale beyond their parents) + max-width: 100%; // Part 1: Set a maximum relative to the parent + width: auto\9; // IE7-8 need help adjusting responsive images + height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching + + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +// Prevent max-width from affecting Google Maps +#map_canvas img, +.google-maps img { + max-width: none; +} + +// Consistent form font size in all browsers, margin changes, misc +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; // Inner spacing ie IE6/7 + line-height: normal; // FF3/4 have !important on line-height in UA stylesheet +} + +button::-moz-focus-inner, +input::-moz-focus-inner { // Inner padding and border oddities in FF3/4 + padding: 0; + border: 0; +} + +button, +html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS. + cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. +} + +input[type="search"] { // Appearance in Safari/Chrome + @include box-sizing(content-box); + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5 +} + +textarea { + overflow: auto; // Remove vertical scrollbar in IE6-9 + vertical-align: top; // Readability and alignment cross-browser +} diff --git a/_sass/_search.scss b/_sass/_search.scss new file mode 100644 index 00000000000..1f14f9c54e0 --- /dev/null +++ b/_sass/_search.scss @@ -0,0 +1,42 @@ +/* ========================================================================== + Search + ========================================================================== */ + +.search-wrapper { + @include outer-container; + margin-top: 0; + padding-right: $gutter; + padding-left: $gutter; + height: 1px; +} + +/* + Google search form + ========================================================================== */ + +#goog-fixurl { + + ul { + list-style: none; + margin-left: 0; + padding-left: 0; + + li { + list-style-type: none; + } + } +} + +#goog-wm-qt { + width: auto; + margin-right: 10px; + padding: 8px 10px; + @include font-size(14); + border-width: 2px; + border-radius: $border-radius; +} + +/* button */ +#goog-wm-sb { + @extend .btn; +} diff --git a/_sass/_syntax.scss b/_sass/_syntax.scss new file mode 100644 index 00000000000..fc1915ce9f8 --- /dev/null +++ b/_sass/_syntax.scss @@ -0,0 +1,231 @@ +/* ========================================================================== + Syntax highlighting and formatting + ========================================================================== */ + +pre.highlight { + padding: 1em; +} + +/* + Pygments.rb and Rouge + ========================================================================== */ + +.highlight { + background-color: #efefef; + font-family: $code-font; + color: #333332; + margin-bottom: 1.5em; + @include rounded($border-radius); + + pre { + position: relative; + margin: 0; + padding: 1em; + } + + .lineno { padding-right: 24px; color: lighten(#333332,50);} + .hll { background-color: #ffffcc } + .c { color: #999988; font-style: italic } /* Comment */ + .err { color: #a61717; background-color: #e3d2d2 } /* Error */ + .k { color: #000000; font-weight: bold } /* Keyword */ + .o { color: #000000; font-weight: bold } /* Operator */ + .cm { color: #999988; font-style: italic } /* Comment.Multiline */ + .cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */ + .c1 { color: #999988; font-style: italic } /* Comment.Single */ + .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ + .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ + .ge { color: #000000; font-style: italic } /* Generic.Emph */ + .gr { color: #aa0000 } /* Generic.Error */ + .gh { color: #999999 } /* Generic.Heading */ + .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ + .go { color: #888888 } /* Generic.Output */ + .gp { color: #555555 } /* Generic.Prompt */ + .gs { font-weight: bold } /* Generic.Strong */ + .gu { color: #aaaaaa } /* Generic.Subheading */ + .gt { color: #aa0000 } /* Generic.Traceback */ + .kc { color: #000000; font-weight: bold } /* Keyword.Constant */ + .kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ + .kn { color: #000000; font-weight: bold } /* Keyword.Namespace */ + .kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ + .kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ + .kt { color: #445588; font-weight: bold } /* Keyword.Type */ + .m { color: #009999 } /* Literal.Number */ + .s { color: #d01040 } /* Literal.String */ + .na { color: #008080 } /* Name.Attribute */ + .nb { color: #0086B3 } /* Name.Builtin */ + .nc { color: #445588; font-weight: bold } /* Name.Class */ + .no { color: #008080 } /* Name.Constant */ + .nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */ + .ni { color: #800080 } /* Name.Entity */ + .ne { color: #990000; font-weight: bold } /* Name.Exception */ + .nf { color: #990000; font-weight: bold } /* Name.Function */ + .nl { color: #990000; font-weight: bold } /* Name.Label */ + .nn { color: #555555 } /* Name.Namespace */ + .nt { color: #000080 } /* Name.Tag */ + .nv { color: #008080 } /* Name.Variable */ + .ow { color: #000000; font-weight: bold } /* Operator.Word */ + .w { color: #bbbbbb } /* Text.Whitespace */ + .mf { color: #009999 } /* Literal.Number.Float */ + .mh { color: #009999 } /* Literal.Number.Hex */ + .mi { color: #009999 } /* Literal.Number.Integer */ + .mo { color: #009999 } /* Literal.Number.Oct */ + .sb { color: #d01040 } /* Literal.String.Backtick */ + .sc { color: #d01040 } /* Literal.String.Char */ + .sd { color: #d01040 } /* Literal.String.Doc */ + .s2 { color: #d01040 } /* Literal.String.Double */ + .se { color: #d01040 } /* Literal.String.Escape */ + .sh { color: #d01040 } /* Literal.String.Heredoc */ + .si { color: #d01040 } /* Literal.String.Interpol */ + .sx { color: #d01040 } /* Literal.String.Other */ + .sr { color: #009926 } /* Literal.String.Regex */ + .s1 { color: #d01040 } /* Literal.String.Single */ + .ss { color: #990073 } /* Literal.String.Symbol */ + .bp { color: #999999 } /* Name.Builtin.Pseudo */ + .vc { color: #008080 } /* Name.Variable.Class */ + .vg { color: #008080 } /* Name.Variable.Global */ + .vi { color: #008080 } /* Name.Variable.Instance */ + .il { color: #009999 } /* Literal.Number.Integer.Long */ +} + +/* + Coderay + ========================================================================== */ + +.CodeRay { + background-color: #efefef; + font-family: $code-font; + @include font-size(12); + color: #333332; + margin-bottom: 1.5em; + @include rounded(4px); + + pre { + margin: 0px; + padding: 1em; + } +} + +div.CodeRay {} +span.CodeRay { white-space: pre; border: 0px; padding: 2px } + +table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px } +table.CodeRay td { + padding: 1em 0.5em; + vertical-align: top; +} + +ol.CodeRay { font-size: 10pt } +ol.CodeRay li { white-space: pre } + +.CodeRay { + + .line-numbers, + .no { + background-color: #ececec; + color: #aaa; + text-align: right; + } + + .line-numbers a { + color: #aaa; + } + + .line-numbers tt { font-weight: bold } + .line-numbers .highlighted { color: red } + .line { display: block; float: left; width: 100%; } + span.line-numbers { padding: 0 24px 0 4px } + .code { width: 100% } + + .code pre { overflow: auto } + .debug { color: white !important; background: blue !important; } + .annotation { color: #007 } + .attribute-name { color: #f08 } + .attribute-value { color: #700 } + .binary { color: #509; font-weight: bold } + .comment { color: #998; font-style: italic;} + .char { color: #04d } + .char .content { color: #04d } + .char .delimiter { color: #039 } + .class { color: #458; font-weight: bold } + .complex { color: #a08; font-weight: bold } + .constant { color: teal; } + .color { color: #0a0 } + .class-variable { color: #369 } + .decorator { color: #b0b; } + .definition { color: #099; font-weight: bold } + .directive { color: #088; font-weight: bold } + .delimiter { color: black } + .doc { color: #970 } + .doctype { color: #34b } + .doc-string { color: #d42; font-weight: bold } + .escape { color: #666; font-weight: bold } + .entity { color: #800; font-weight: bold } + .error { color: #f00; background-color: #faa } + .exception { color: #c00; font-weight: bold } + .filename { color: #099; } + .function { color: #900; font-weight: bold } + .global-variable { color: teal; font-weight: bold } + .hex { color: #058; font-weight: bold } + .integer { color: #099; } + .include { color: #b44; font-weight: bold } + .inline { color: black } + .inline .inline { background: #ccc } + .inline .inline .inline { background: #bbb } + .inline .inline-delimiter { color: #d14; } + .inline-delimiter { color: #d14; } + .important { color: #f00; } + .interpreted { color: #b2b; font-weight: bold } + .instance-variable { color: teal } + .label { color: #970; font-weight: bold } + .local-variable { color: #963 } + .octal { color: #40e; font-weight: bold } + .operator { } + .predefined-constant { font-weight: bold } + .predefined { color: #369; font-weight: bold } + .preprocessor { color: #579; } + .pseudo-class { color: #00c; font-weight: bold } + .predefined-type { color: #074; font-weight: bold } + .reserved, + .keyword { color: #000; font-weight: bold } + + .key { color: #808; } + .key .delimiter { color: #606; } + .key .char { color: #80f; } + .value { color: #088; } + + .regexp { background-color: #fff0ff } + .regexp .content { color: #808 } + .regexp .delimiter { color: #404 } + .regexp .modifier { color: #c2c } + .regexp .function { color: #404; font-weight: bold } + + .string { color: #d20; } + .string .string { } + .string .string .string { background-color: #ffd0d0 } + .string .content { color: #d14; } + .string .char { color: #d14; } + .string .delimiter { color: #d14; } + + .shell { color: #d14 } + .shell .content { } + .shell .delimiter { color: #d14 } + + .symbol { color: #990073 } + .symbol .content { color: #a60 } + .symbol .delimiter { color: #630 } + + .tag { color: #070 } + .tag-special { color: #d70; font-weight: bold } + .type { color: #339; font-weight: bold } + .variable { color: #036 } + + .insert { background: #afa; } + .delete { background: #faa; } + .change { color: #aaf; background: #007; } + .head { color: #f8f; background: #505 } + + .insert .insert { color: #080; font-weight: bold } + .delete .delete { color: #800; font-weight: bold } + .change .change { color: #66f; } + .head .head { color: #f4f; } +} diff --git a/_sass/_variables.scss b/_sass/_variables.scss new file mode 100644 index 00000000000..999969efdb8 --- /dev/null +++ b/_sass/_variables.scss @@ -0,0 +1,46 @@ +// TYPOGRAPHY ================================================ +$base-font : 'source-sans-pro', sans-serif; +$heading-font : $base-font; +$caption-font : $base-font; +$code-font : 'source-code-pro', monospace; +$alt-font : 'volkhov', serif; + +$doc-font-size : 16; +$doc-line-height : 24; + +$border-radius : 3px; + + +// set-up the body font-size / line-height +body { + margin-top: 0px + $doc-line-height; + font-size: 0px + $doc-font-size; +} + + +// COLORS ===================================================== +$body-color : #fff; +$text-color : #222; +$base-color : #343434; +$comp-color : adjust-hue($base-color, 180); +$border-color : #ddd; +$white : #fff; +$black : #000; +$accent-color : $black; +$link-color : #222; + +$table-border-color : $border-color; +$table-border : 1px solid $table-border-color; +$table-background : $body-color; +$table-header-color : lighten($table-background, 10); +$table-hover-color : darken($table-background, 2); +$table-stripe-color : darken($table-background, 4); +$table-stripe-color-hover : darken($table-stripe-color, 5); + + +// MEDIA QUERIES ============================================== +$micro : "only screen and (min-width: 30em)"; +$small : "only screen and (min-width: 37.5em)"; +$medium : "only screen and (min-width: 48em)"; +$large : "only screen and (min-width: 62em)"; +$x-large : "only screen and (min-width: 86.375em)"; diff --git a/_sass/_wells.scss b/_sass/_wells.scss new file mode 100644 index 00000000000..9d35050434a --- /dev/null +++ b/_sass/_wells.scss @@ -0,0 +1,11 @@ +/* ========================================================================== + Wells + ========================================================================== */ + +/* Used to call out text in a subtle manner */ + +.well { + padding: 20px; + border: 1px solid $comp-color; + @include rounded(4px); +} diff --git a/_sass/coderay.scss b/_sass/coderay.scss deleted file mode 100644 index 200fd8ca5b6..00000000000 --- a/_sass/coderay.scss +++ /dev/null @@ -1,133 +0,0 @@ -.CodeRay { - background-color: #efefef; - font-family: $code-font; - @include font(12); - color: #333332; - margin-bottom: 1.5em; - @include rounded(4px); - pre { - margin: 0px; - padding: 1em; - } -} - -div.CodeRay { } -span.CodeRay { white-space: pre; border: 0px; padding: 2px } - -table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px } -table.CodeRay td { - padding: 1em 0.5em; - vertical-align: top; -} - -.CodeRay .line-numbers, .CodeRay .no { - background-color: #ECECEC; - color: #AAA; - text-align: right; -} - -.CodeRay .line-numbers a { - color: #AAA; -} - -.CodeRay .line-numbers tt { font-weight: bold } -.CodeRay .line-numbers .highlighted { color: red } -.CodeRay .line { display: block; float: left; width: 100%; } -.CodeRay span.line-numbers { padding: 0 24px 0 4px } -.CodeRay .code { width: 100% } - -ol.CodeRay { font-size: 10pt } -ol.CodeRay li { white-space: pre } - -.CodeRay .code pre { overflow: auto } -.CodeRay .debug { color:white ! important; background:blue ! important; } - -.CodeRay .annotation { color:#007 } -.CodeRay .attribute-name { color:#f08 } -.CodeRay .attribute-value { color:#700 } -.CodeRay .binary { color:#509; font-weight:bold } -.CodeRay .comment { color:#998; font-style: italic;} -.CodeRay .char { color:#04D } -.CodeRay .char .content { color:#04D } -.CodeRay .char .delimiter { color:#039 } -.CodeRay .class { color:#458; font-weight:bold } -.CodeRay .complex { color:#A08; font-weight:bold } -.CodeRay .constant { color:teal; } -.CodeRay .color { color:#0A0 } -.CodeRay .class-variable { color:#369 } -.CodeRay .decorator { color:#B0B; } -.CodeRay .definition { color:#099; font-weight:bold } -.CodeRay .directive { color:#088; font-weight:bold } -.CodeRay .delimiter { color:black } -.CodeRay .doc { color:#970 } -.CodeRay .doctype { color:#34b } -.CodeRay .doc-string { color:#D42; font-weight:bold } -.CodeRay .escape { color:#666; font-weight:bold } -.CodeRay .entity { color:#800; font-weight:bold } -.CodeRay .error { color:#F00; background-color:#FAA } -.CodeRay .exception { color:#C00; font-weight:bold } -.CodeRay .filename { color:#099; } -.CodeRay .function { color:#900; font-weight:bold } -.CodeRay .global-variable { color:teal; font-weight:bold } -.CodeRay .hex { color:#058; font-weight:bold } -.CodeRay .integer { color:#099; } -.CodeRay .include { color:#B44; font-weight:bold } -.CodeRay .inline { color: black } -.CodeRay .inline .inline { background: #ccc } -.CodeRay .inline .inline .inline { background: #bbb } -.CodeRay .inline .inline-delimiter { color: #D14; } -.CodeRay .inline-delimiter { color: #D14; } -.CodeRay .important { color:#f00; } -.CodeRay .interpreted { color:#B2B; font-weight:bold } -.CodeRay .instance-variable { color:teal } -.CodeRay .label { color:#970; font-weight:bold } -.CodeRay .local-variable { color:#963 } -.CodeRay .octal { color:#40E; font-weight:bold } -.CodeRay .operator { } -.CodeRay .predefined-constant { font-weight:bold } -.CodeRay .predefined { color:#369; font-weight:bold } -.CodeRay .preprocessor { color:#579; } -.CodeRay .pseudo-class { color:#00C; font-weight:bold } -.CodeRay .predefined-type { color:#074; font-weight:bold } -.CodeRay .reserved, .keyword { color:#000; font-weight:bold } - -.CodeRay .key { color: #808; } -.CodeRay .key .delimiter { color: #606; } -.CodeRay .key .char { color: #80f; } -.CodeRay .value { color: #088; } - -.CodeRay .regexp { background-color:#fff0ff } -.CodeRay .regexp .content { color:#808 } -.CodeRay .regexp .delimiter { color:#404 } -.CodeRay .regexp .modifier { color:#C2C } -.CodeRay .regexp .function { color:#404; font-weight: bold } - -.CodeRay .string { color: #D20; } -.CodeRay .string .string { } -.CodeRay .string .string .string { background-color:#ffd0d0 } -.CodeRay .string .content { color: #D14; } -.CodeRay .string .char { color: #D14; } -.CodeRay .string .delimiter { color: #D14; } - -.CodeRay .shell { color:#D14 } -.CodeRay .shell .content { } -.CodeRay .shell .delimiter { color:#D14 } - -.CodeRay .symbol { color:#990073 } -.CodeRay .symbol .content { color:#A60 } -.CodeRay .symbol .delimiter { color:#630 } - -.CodeRay .tag { color:#070 } -.CodeRay .tag-special { color:#D70; font-weight:bold } -.CodeRay .type { color:#339; font-weight:bold } -.CodeRay .variable { color:#036 } - -.CodeRay .insert { background: #afa; } -.CodeRay .delete { background: #faa; } -.CodeRay .change { color: #aaf; background: #007; } -.CodeRay .head { color: #f8f; background: #505 } - -.CodeRay .insert .insert { color: #080; font-weight:bold } -.CodeRay .delete .delete { color: #800; font-weight:bold } -.CodeRay .change .change { color: #66f; } -.CodeRay .head .head { color: #f4f; } \ No newline at end of file diff --git a/_sass/forms.scss b/_sass/forms.scss deleted file mode 100644 index d3b5eb839b0..00000000000 --- a/_sass/forms.scss +++ /dev/null @@ -1,317 +0,0 @@ -form { - margin: 0 0 5px 0; - fieldset { - margin-bottom: 5px; - padding: 0; - border-width: 0; - } - legend { - display: block; - width: 100%; - margin-bottom: 5px * 2; - *margin-left: -7px; - padding: 0; - color: $text-color; - border: 0; - border-bottom: 1px solid lighten($black, 80); - white-space: normal; - } - p { - margin-bottom: 5px / 2; - } - ul { - list-style-type: none; - margin: 0 0 5px 0; - padding: 0; - } - br { - display: none; - } -} -label, -input, -button, -select, -textarea { - vertical-align: baseline; - *vertical-align: middle; -} -input, -button, -select, -textarea { - font-family: $base-font; - @include box-sizing(border-box); -} -label { - display: block; - margin-bottom: 10px / 8; - font-weight: bold; - color: $text-color; - cursor: pointer; - input, - textarea, - select { - display: block; - } -} -input, -textarea, -select { - display: inline-block; - width: 100%; - padding: 4px; - margin-bottom: 5px / 4; - background-color: $white; - border: 1px solid lighten($black, 80); - color: $text-color; - &:hover { - border-color: lighten($accent-color, 50); - } -} -.input-mini { - width: 60px; -} -.input-small { - width: 90px; -} -input[type="image"], -input[type="checkbox"], -input[type="radio"] { - width: auto; - height: auto; - padding: 0; - margin: 3px 0; - *margin-top: 0; - line-height: normal; - cursor: pointer; - @include rounded(0); - border: 0 \9; -} -input[type="checkbox"], -input[type="radio"] { - @include box-sizing(border-box); - padding: 0; - *width: 13px; - *height: 13px; -} -input[type="image"] { - border: 0; - @include box-shadow(none); -} -input[type="file"] { - width: auto; - padding: initial; - line-height: initial; - border: initial; - background-color: transparent; - background-color: initial; - @include box-shadow(none); -} -input[type="button"], -input[type="reset"], -input[type="submit"] { - width : auto; - height : auto; - cursor : pointer; - *overflow : visible; -} -select, -input[type="file"] { - *margin-top : 4px; -} -select { - width : auto; - background-color : $white; -} -select[multiple], -select[size] { - height : auto; -} -textarea { - @include resize(vertical); - height : auto; - overflow : auto; - vertical-align : top; -} -input[type="hidden"] { - display : none; -} -.radio, -.checkbox { - padding-left : 18px; - font-weight : normal; -} -.radio input[type="radio"], -.checkbox input[type="checkbox"] { - float : left; - margin-left : -18px; -} -.radio.inline, -.checkbox.inline { - display : inline-block; - padding-top : 5px; - margin-bottom : 0; - vertical-align : middle; -} -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left : 10px; -} - -// disabled -// -------------------------------------------------- - -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - @include opacity(.5); - cursor : not-allowed; -} - -// focus and active -// -------------------------------------------------- - -input:focus, -textarea:focus { - border-color : $accent-color; - outline : 0; - outline : thin dotted \9; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus, -select:focus { - @include box-shadow(none); -} - -// help text -// -------------------------------------------------- - -.help-block, -.help-inline { - color : lighten($black, 50); -} -.help-block { - display : block; - margin-bottom : 1em; - line-height : 1em; -} -.help-inline { - display : inline-block; - vertical-align : middle; - padding-left : 5px; -} - -// .form-inline -// -------------------------------------------------- - -.form-inline input, -.form-inline textarea, -.form-inline select { - display : inline-block; - margin-bottom : 0; -} -.form-inline label { - display : inline-block; -} -.form-inline .radio, -.form-inline .checkbox, -.form-inline .radio { - padding-left : 0; - margin-bottom : 0; - vertical-align : middle; -} -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float : left; - margin-left : 0; - margin-right : 3px; } - -// Jekyll Simple Search -// ------------------------------------------------- -.dosearch { - padding: 6px 10px; - cursor: pointer; - display: block; - color: $white; - @include rounded(4px); - &:hover { - @include box-shadow($shadow: inset 0 0 1px $white); - background-color: lighten($black, 10); - } -} -.search-form { - width: 100%; - position: relative; - opacity: 0; - transition: all 200ms 100ms cubic-bezier(0, 0.6, 0.4, 1); - top: 0; - left: -200px; - z-index: 9002; - .search-field { - -webkit-appearance: none; - border: none; - width: 100%; - color: $white; - border: none; - border-bottom: 1px solid lighten($white, 20); - background-color: transparent; - box-shadow: none; - border-radius: 0; - background-clip: padding-box; - @include font-rem(32); - &:focus { - box-shadow: none; - outline: none; - } - } - &.active { - opacity: 1; - top: 0; - left: 0; - } - &.hidden { - display: none; - } - ::-webkit-input-placeholder { - @include font-rem(32); - } - .search-field::-webkit-search-decoration, - .search-field::-webkit-search-cancel-button, - .search-field::-webkit-search-results-button, - .search-field::-webkit-search-results-decoration { - display: none; - } - .post-list { - position: absolute; - width: 100%; - h4, li, p, a { - color: $white; - } - li { - border-bottom: 1px solid lighten($white,20); - } - } -} -body.search-overlay { - overflow: hidden; -} -body.search-overlay:after { - content: ''; - background-color: lighten($black,5); - background-color: rgba($black,.95); - width: 100%; - min-height: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - z-index: 9001; -} -.no-js .dosearch { - display: none; -} \ No newline at end of file diff --git a/_sass/grid.scss b/_sass/grid.scss deleted file mode 100644 index ffb89e7ad26..00000000000 --- a/_sass/grid.scss +++ /dev/null @@ -1,47 +0,0 @@ -// Defining number of columns in the grid. -// Common Values would be 12, 16 or 24 -$width: 100%; -$def_grid: 12; -$margin: 0; - -@mixin container(){ - margin:0 auto; - width:$width; -} - -// Works out the width of elements based -// on total number of columns and width -// number of columns being displayed. -// Removes 20px for margins -@mixin grid($grid:$def_grid,$cols:'',$float:left,$display:inline){ - display:$display; - float:$float; - width:(100%/$grid * $cols) - ($margin * 2); -} - -// Allows for padding before element -@mixin prefix($grid:$def_grid,$cols:''){ - margin-left:(100%/$grid * $cols); -} -// Allows for padding after element -@mixin suffix($grid:$def_grid,$cols:''){ - margin-right:(100%/$grid * $cols); -} -// Removes left margin -@mixin first(){ - margin-left:0; -} -// Removes right margin -@mixin last(){ - margin-right:0; -} - -@mixin push($grid:$def_grid,$move:'') { - position:relative; - left:(100%/$grid * $move); -} - -@mixin pull($grid:$def_grid,$move:''){ - position:relative; - left:(100%/$grid * $move) * -1; -} \ No newline at end of file diff --git a/_sass/mixins.scss b/_sass/mixins.scss deleted file mode 100644 index 041db82b97e..00000000000 --- a/_sass/mixins.scss +++ /dev/null @@ -1,269 +0,0 @@ -// UTILITY MIXINS -// -------------------------------------------------- - -// Clearfix -// -------------------- -// For clearing floats like a boss h5bp.com/q -@mixin clearfix { - *zoom: 1; - &:before, - &:after { - display: table; - content: ""; - // Fixes Opera/contenteditable bug: - // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952 - line-height: 0; - } - &:after { - clear: both; - } -} - -// Webkit-style focus -// -------------------- -@mixin tab-focus() { - // Default - outline: thin dotted #333; - // Webkit - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -// Center-align a block level element -// ---------------------------------- -@mixin center-block() { - display: block; - margin-left: auto; - margin-right: auto; -} - -// TYPOGRAPHY -// -------------------------------------------------- - -// Full-fat vertical rhythm -// ------------------------ -@mixin font-size($size) { - font-size: 0px + $size; - font-size: 0rem + $size / $doc-font-size; - line-height: 0 + round($doc-line-height / $size*10000) / 10000; - margin-bottom: 0px + $doc-line-height; - margin-bottom: 0rem + ($doc-line-height / $doc-font-size); -} - -// Just the REMs -// ------------- -@mixin font-rem($size) { - font-size: 0px + $size; - font-size: 0rem + $size / $doc-font-size; -} - -// Just font-size and line-height -// ------------------------------ -@mixin font($size) { - font-size: 0px + $size; - font-size: 0rem + $size / $doc-font-size; - line-height: 0 + round($doc-line-height / $size*10000) / 10000; -} - -@mixin text-overflow() { -overflow: hidden; -text-overflow: ellipsis; -white-space: nowrap; } - -// GRADIENTS -// -------------------------------------------------- - -@mixin horizontal($startColor : $white, $endColor : $lightergrey) { -background-color: $endColor; -background-image : -webkit-gradient(linear, 0 0, 100% 0, from($startColor), to($endColor)); // Safari 4+, Chrome 2+ -background-image : -webkit-linear-gradient(left, $startColor, $endColor); // Safari 5.1+, Chrome 10+ -background-image : -moz-linear-gradient(left, $startColor, $endColor); // FF 3.6+ -background-image : -ms-linear-gradient(left, $startColor, $endColor); // IE10 -background-image : -o-linear-gradient(left, $startColor, $endColor); // Opera 11.10 -background-image : linear-gradient(left, $startColor, $endColor); // W3C -background-repeat : repeat-x; } - -@mixin vertical($startColor : $white, $endColor: $lightergrey) { -background-image : -webkit-gradient(linear, 0 0, 0 100%, from($startColor), to($endColor)); // Safari 4+, Chrome 2+ -background-image : -webkit-linear-gradient(top, $startColor, $endColor); // Safari 5.1+, Chrome 10+ -background-color : $endColor; -background-image : -moz-linear-gradient(top, $startColor, $endColor); // FF 3.6+ -background-image : -ms-linear-gradient(top, $startColor, $endColor); // IE10 -background-image : -o-linear-gradient(top, $startColor, $endColor); // Opera 11.10 -background-image : linear-gradient(top, $startColor, $endColor); // W3C -background-repeat : repeat-x; } - -@mixin directional($startColor : $white, $endColor : $lightergrey, $deg : 45deg) { -background-color : $endColor; -background-image : -moz-linear-gradient($deg, $startColor, $endColor); // FF 3.6+ -background-image : -ms-linear-gradient($deg, $startColor, $endColor); // IE10 -background-image : -webkit-linear-gradient($deg, $startColor, $endColor); // Safari 5.1+, Chrome 10+ -background-image : -o-linear-gradient($deg, $startColor, $endColor); // Opera 11.10 -background-image : linear-gradient($deg, $startColor, $endColor); // W3C -background-repeat : repeat-x; } - -// .bordered(COLOR, COLOR, COLOR, COLOR); -@mixin bordered($top-color: #eee, $right-color: #eee, $bottom-color: #eee, $left-color: #eee) { -border-top : solid 1px $top-color; -border-left : solid 1px $left-color; -border-right : solid 1px $right-color; -border-bottom : solid 1px $bottom-color; } - -// ROUND CORNERS -// -------------------------------------------------- - -// @include rounded(VALUE); -@mixin rounded($radius:4px) { -border-radius : $radius; } - -// @include border-radius(VALUE,VALUE,VALUE,VALUE); -@mixin border-radius($topright: 0, $bottomright: 0, $bottomleft: 0, $topleft: 0) { -border-top-right-radius : $topright; -border-bottom-right-radius : $bottomright; -border-bottom-left-radius : $bottomleft; -border-top-left-radius : $topleft; -background-clip : padding-box; } - -// @include box-shadow(HORIZONTAL VERTICAL BLUR COLOR)) -@mixin box-shadow($shadow: 0 1px 3px rgba(0,0,0,.25)) { --webkit-box-shadow : $shadow; --moz-box-shadow : $shadow; -box-shadow : $shadow; } - -// @include drop-shadow(HORIZONTAL, VERTICAL, BLUR, ALPHA); -@mixin drop-shadow($x-axis: 0, $y-axis: 1px, $blur: 2px, $alpha: 0.1) { --webkit-box-shadow : $x-axis $y-axis $blur rgba(0, 0, 0, $alpha); --moz-box-shadow : $x-axis $y-axis $blur rgba(0, 0, 0, $alpha); -box-shadow : $x-axis $y-axis $blur rgba(0, 0, 0, $alpha); } - -// @include text-shadow(); -@mixin text-shadow($shadow: 0 2px 3px rgba(0,0,0,.25)) { -text-shadow : $shadow; } - -// @include opacity(VALUE); -@mixin opacity($opacity : .5) { -opacity : $opacity; } - -// TRANSFORMATIONS -// -------------------------------------------------- - -// @include rotate(VALUEdeg); -@mixin rotate($deg) { --webkit-transform : rotate($deg); --moz-transform : rotate($deg); --ms-transform : rotate($deg); --o-transform : rotate($deg); -transform : rotate($deg); } - -// @include scale(VALUE); -@mixin scale($ratio) { --webkit-transform : scale($ratio); --moz-transform : scale($ratio); --ms-transform : scale($ratio); --o-transform : scale($ratio); -transform : scale($ratio); } - -// @include skew(VALUE, VALUE); -@mixin skew($x: 0, $y: 0) { --webkit-transform : skew($x, $y); --moz-transform : skew($x, $y); --ms-transform : skew($x, $y); --o-transform : skew($x, $y); -transform : skew($x, $y); } - -// @include transition(PROPERTY DURATION DELAY(OPTIONAL) TIMING-FINCTION); -@mixin transition($transition) { --webkit-transition : $transition; --moz-transition : $transition; --ms-transition : $transition; --o-transition : $transition; -transition : $transition; } - -// @include translate(VALUE, VALUE) -@mixin translate($x: 0, $y: 0) { --webkit-transform : translate($x, $y); --moz-transform : translate($x, $y); --ms-transform : translate($x, $y); --o-transform : translate($x, $y); -transform : translate($x, $y); } - -@mixin translate3d($x: 0, $y: 0, $z: 0) { --webkit-transform : translate($x, $y, $z); --moz-transform : translate($x, $y, $z); --ms-transform : translate($x, $y, $z); --o-transform : translate($x, $y, $z); -transform : translate($x, $y, $z); } - -@mixin animation($name, $duration: 300ms, $delay: 0, $ease: ease) { - -webkit-animation: $name $duration $delay $ease; - -moz-animation: $name $duration $delay $ease; - -ms-animation: $name $duration $delay $ease;} - -// BACKGROUND -// -------------------------------------------------- - -// @include background-alpha(VALUE VALUE); -@mixin background-alpha($color: $white, $alpha: 1) { -background-color : hsla(hue($color), saturation($color), lightness($color), $alpha); } - -// @include background-size(VALUE VALUE); -@mixin background-size($size){ --webkit-background-size : $size; --moz-background-size : $size; --o-background-size : $size; -background-size : $size; } - -// @include background-clip(VALUE); (border-box, padding-box, content-box) -@mixin background-clip($clip) { --webkit-background-clip : $clip; --moz-background-clip : $clip; -background-clip : $clip; } - -// @include box-sizing(VALUE); (border-box, padding-box, content-box) -@mixin box-sizing($boxsize: border-box) { --webkit-box-sizing : $boxsize; --moz-box-sizing : $boxsize; --ms-box-sizing : $boxsize; -box-sizing : $boxsize; } - -// For image replacement -@mixin hide-text() { -text-indent : 100%; -white-space : nowrap; -overflow : hidden; } - -// Hide from visual and speaking browsers -@mixin hidden() { -display : none !important; -visibility : hidden; } -.hidden { - display: none; - visibility: hidden; -} - -// Hide but maintain layout -@mixin invisible() { -visibility : hidden; } - -// @include resize(VALUE) (none, both, horizontal, vertical, inherit) -@mixin resize($direction: both) { -resize : $direction; -overflow : auto; } - -// @include userselect(VALUE) (all, element, none, text) -@mixin user-select($select) { --webkit-user-select : $select; --moz-user-select : $select; --o-user-select : $select; -user-select : $select; } - -// Hidden but available to speaking browsers -@mixin visuallyhidden() { -overflow : hidden; -position : absolute; -clip : rect(0 0 0 0); -height : 1px; -width : 1px; -margin : -1px; -padding : 0; -border : 0; } \ No newline at end of file diff --git a/_sass/page.scss b/_sass/page.scss deleted file mode 100644 index 0dc2f2d0df6..00000000000 --- a/_sass/page.scss +++ /dev/null @@ -1,455 +0,0 @@ -body { - margin: 0; - padding: 0; - width: 100%; - background-color: $body-color; - border-top: 5px solid $black; - @media #{$medium} { - @include font-rem(20); - } -} - -// Top Navigation -// -------------------------------------------------- -.navigation-wrapper { - text-align: center; - @include clearfix; - ul { - display: inline-block; - vertical-align: top; - margin: 0 0 50px; - padding: 4px 20px; - background-color: $black; - @include rounded(0 0 10px 10px); - @include clearfix; - } - li { - display: block; - float: left; - list-style: none; - text-align: center; - @include font-rem(14); - text-transform: uppercase; - color: $white; - a:hover { - @include box-shadow($shadow: inset 0 0 1px $white); - } - } - a { - display: block; - padding: 6px 10px; - color: $white; - @include rounded(4px); - &:hover { - background-color: lighten($black, 10); - } - } -} -// Responsive nav toggle stuff -#site-nav { - z-index: 9000; - display: none; - @media #{$medium} { - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - } - &.closed { - @media #{$medium} { - display: block; - } - } - &.opened { - display: block; - max-height: 100%; - li { - float: none; - @media #{$medium} { - float: left; - } - } - } -} -.no-js #site-nav { - display: block; -} -#nav-toggle { - z-index: 9999; - display: block; - vertical-align: top; - margin: 0; - padding: 4px 20px; - background-color: $black; - @include rounded(0); - @media #{$medium} { - display: none; - } -} - -// Masthead -// -------------------------------------------------- -.masthead { - margin-top: 40px; - @include clearfix; - @media #{$medium} { - margin-top: 0; - } - .wrap { - text-align: center; - max-width: 27.5em; - padding-right: 20px; - padding-left: 20px; - @media #{$medium} { - max-width: 45.5em; - padding-right: 60px; - padding-left: 60px; - } - @media #{$large} { - max-width: 60em; - } - } -} -.site-logo { - img { - width: 100px; - height: 100px; - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-delay: .05s; - -moz-animation-delay: .05s; - -o-animation-delay: .05s; - animation-delay: .05s; - border: 4px solid $white; - @include rounded(100px); - @media #{$medium} { - width: 150px; - height: 150px; - @include rounded(150px); - } - @media #{$large} { - width: 200px; - height: 200px; - @include rounded(200px); - } - } -} -.site-title { - margin-bottom: 0; - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-delay: .75s; - -moz-animation-delay: .75s; - -o-animation-delay: .75s; - animation-delay: .75s; - a { color: $black; } -} -.site-description { - margin-top: 0; - font-family: $alt-font; - @include font-rem(16); - font-weight: 400; - font-style: italic; - -webkit-animation-duration: 1s; - -moz-animation-duration: 1s; - -o-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-delay: 1s; - -moz-animation-delay: 1s; - -o-animation-delay: 1s; - animation-delay: 1s; - @media #{$medium} { - @include font-rem(20); - } -} - -// Main -// -------------------------------------------------- -#main { - @include clearfix; -} -.entry, -.hentry { - @include clearfix; - border-bottom: 1px solid lighten($black,80); - border-bottom: 1px solid rgba($black,.10); -} -.entry-feature-image { - margin: 20px 0 0; - width: 100%; - @media #{$medium} { - margin-top: -75px; - } - @media #{$large} { - margin-top: -145px; - } -} -.entry-header { - max-width: 640px; - width: 100%; - margin-right: auto; - margin-left: auto; - @media #{$large} { - max-width: 100%; - margin-right: 0; - margin-left: 0; - } -} -.entry-tags { - display: block; - margin-top: 2em; - text-transform: uppercase; - @include font-rem(16); - font-weight: 600; - a { color: $text-color; } -} -span + .entry-title { - margin-top: 0; -} -.entry-title { - font-family: $alt-font; - font-style: italic; - @include font-rem(36); - font-weight: 400; - line-height: 1; - letter-spacing: -3px; - a { - color: $black; - text-decoration: underline; - } - @media #{$medium} { - max-width: 600px; - @include font-rem(52); - } - @media #{$large} { - max-width: 800px; - @include font-rem(68); - } -} -.entry-wrapper { - margin: 0 auto 3em; - max-width: 440px; - padding-right: 20px; - padding-left: 20px; - @include clearfix(); - @media #{$medium} { - max-width: 760px; - padding-right: 60px; - padding-left: 60px; - } - @media #{$large} { - max-width: 960px; - } -} -.entry-meta { - max-width: 640px; - width: 100%; - margin-right: auto; - margin-bottom: 30px; - margin-left: auto; - display: block; - text-transform: uppercase; - @include font-rem(14); - a { color: $text-color; } - @media #{$large} { - float: left; - width: 150px; - margin: 0 40px 40px 0; - padding: 0; - } - & > span { - padding: 0 20px 10px 0; - display: inline-block; - @media #{$large} { - display: block; - padding: 8px 0; - border-bottom: 1px solid lighten($black,80); - border-bottom: 1px solid rgba($black,.10); - } - } -} -.bio-photo { - display: none; - @media #{$large} { - display: block; - width: 150px; - height: 150px; - margin-bottom: 10px; - @include rounded(150px); - @include clearfix; - } -} -.entry-content { - max-width: 640px; - width: 100%; - margin-right: auto; - margin-left: auto; - p:first-child { - margin-top: 0; - } - @media #{$large} { - float: left; - } - p > a, - li > a { - border-bottom: 1px dotted lighten($link-color, 50); - &:hover { - border-bottom-style: solid; - } - } -} -.post-list { - li > a { - border-bottom-width: 0; - } -} -// Disqus Comments -#disqus_thread { - margin-top: 2em; -} -// Pagination -.pagination { - margin-top: 2em; - text-align: center; -} -// Page layout -#home, -#page { - .entry-title { - text-align: center; - max-width: 100%; - } - .entry-content { - @media #{$large} { - float: none; - } - } -} -// Post index layout -.post-list { - margin: 0; - padding: 0; - list-style-type: none; - li { - padding: 8px 0; - border-bottom: 1px solid lighten($black,80); - border-bottom: 1px solid rgba($black,.10); - @include clearfix; - } - a > span { - float: right; - } - .entry-date { - @include font-rem(14); - text-transform: uppercase; - display: none; - @media #{$medium} { - display: inline; - } - } -} -// Tag index -.tag-box { - list-style: none; - margin: 0; - padding: 4px 0; - overflow: hidden; - @include clearfix; - &.inline li { - float: left; - @include font-rem(14); - line-height: 2.5; - } - a { - padding: 4px 6px; - margin: 2px; - background-color: lighten($black, 90); - @include rounded(4px); - text-decoration: none; - span { - vertical-align: super; - @include font-rem(10); - } - } -} -// Search -// -------------------------------------------------- -.search-wrapper { - display: none; - position: absolute; - top: 50px; - width: 90%; - padding-right: 5%; - padding-left: 5%; - @include clearfix; - @media #{$medium} { - top: 100px; - } -} -// Footer -// -------------------------------------------------- -.footer-wrapper { - @include clearfix; - margin: 2em auto; - text-align: center; - font-family: $alt-font; - @include font-rem(14); - font-style: italic; - color: lighten($text-color,20); - a { - color: lighten($text-color,20); - } -} - -// Social Icons -// -------------------------------------------------- -.social-icons { - margin: 1em 0 2em; - a { - padding: 4px 8px; - &:hover { color:$black; } - } -} - -// Chrome Frame -// -------------------------------------------------- -.upgrade { - padding: 10px; - text-align: center; -} - -// Google Search -// -------------------------------------------------- -#goog-fixurl { - ul { - list-style: none; - margin-left: 0; - padding-left: 0; - li { - list-style-type: none; - } - } -} -#goog-wm-qt { - width: auto; - margin-right: 10px; -} -#goog-wm-sb { - display: inline-block; - padding: 8px 20px; - background-color: $black; - color: $white; - border: 2px solid $black !important; - @include rounded(20px); - &:visited { - color: $white; - } - &:hover { - background-color: $white; - color: $black; - } -} diff --git a/_sass/pygments.scss b/_sass/pygments.scss deleted file mode 100644 index 0cec2fc4635..00000000000 --- a/_sass/pygments.scss +++ /dev/null @@ -1,75 +0,0 @@ -.highlight { - background-color: #efefef; - font-family: $code-font; - @include font(12); - color: #333332; - margin-bottom: 1.5em; - @include rounded(4px); - pre { - position: relative; - margin: 0; - padding: 1em; - } - .lineno { padding-right: 24px; color: lighten(#333332,50);} - .hll { background-color: #ffffcc } - .c { color: #999988; font-style: italic } /* Comment */ - .err { color: #a61717; background-color: #e3d2d2 } /* Error */ - .k { color: #000000; font-weight: bold } /* Keyword */ - .o { color: #000000; font-weight: bold } /* Operator */ - .cm { color: #999988; font-style: italic } /* Comment.Multiline */ - .cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */ - .c1 { color: #999988; font-style: italic } /* Comment.Single */ - .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ - .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ - .ge { color: #000000; font-style: italic } /* Generic.Emph */ - .gr { color: #aa0000 } /* Generic.Error */ - .gh { color: #999999 } /* Generic.Heading */ - .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ - .go { color: #888888 } /* Generic.Output */ - .gp { color: #555555 } /* Generic.Prompt */ - .gs { font-weight: bold } /* Generic.Strong */ - .gu { color: #aaaaaa } /* Generic.Subheading */ - .gt { color: #aa0000 } /* Generic.Traceback */ - .kc { color: #000000; font-weight: bold } /* Keyword.Constant */ - .kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ - .kn { color: #000000; font-weight: bold } /* Keyword.Namespace */ - .kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ - .kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ - .kt { color: #445588; font-weight: bold } /* Keyword.Type */ - .m { color: #009999 } /* Literal.Number */ - .s { color: #d01040 } /* Literal.String */ - .na { color: #008080 } /* Name.Attribute */ - .nb { color: #0086B3 } /* Name.Builtin */ - .nc { color: #445588; font-weight: bold } /* Name.Class */ - .no { color: #008080 } /* Name.Constant */ - .nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */ - .ni { color: #800080 } /* Name.Entity */ - .ne { color: #990000; font-weight: bold } /* Name.Exception */ - .nf { color: #990000; font-weight: bold } /* Name.Function */ - .nl { color: #990000; font-weight: bold } /* Name.Label */ - .nn { color: #555555 } /* Name.Namespace */ - .nt { color: #000080 } /* Name.Tag */ - .nv { color: #008080 } /* Name.Variable */ - .ow { color: #000000; font-weight: bold } /* Operator.Word */ - .w { color: #bbbbbb } /* Text.Whitespace */ - .mf { color: #009999 } /* Literal.Number.Float */ - .mh { color: #009999 } /* Literal.Number.Hex */ - .mi { color: #009999 } /* Literal.Number.Integer */ - .mo { color: #009999 } /* Literal.Number.Oct */ - .sb { color: #d01040 } /* Literal.String.Backtick */ - .sc { color: #d01040 } /* Literal.String.Char */ - .sd { color: #d01040 } /* Literal.String.Doc */ - .s2 { color: #d01040 } /* Literal.String.Double */ - .se { color: #d01040 } /* Literal.String.Escape */ - .sh { color: #d01040 } /* Literal.String.Heredoc */ - .si { color: #d01040 } /* Literal.String.Interpol */ - .sx { color: #d01040 } /* Literal.String.Other */ - .sr { color: #009926 } /* Literal.String.Regex */ - .s1 { color: #d01040 } /* Literal.String.Single */ - .ss { color: #990073 } /* Literal.String.Symbol */ - .bp { color: #999999 } /* Name.Builtin.Pseudo */ - .vc { color: #008080 } /* Name.Variable.Class */ - .vg { color: #008080 } /* Name.Variable.Global */ - .vi { color: #008080 } /* Name.Variable.Instance */ - .il { color: #009999 } /* Literal.Number.Integer.Long */ -} \ No newline at end of file diff --git a/_sass/reset.scss b/_sass/reset.scss deleted file mode 100644 index 87a9c530cdb..00000000000 --- a/_sass/reset.scss +++ /dev/null @@ -1,223 +0,0 @@ -// -// Reset CSS -// Adapted from http://github.com/necolas/normalize.css -// -------------------------------------------------- - - -// Display in IE6-9 and FF3 -// ------------------------- - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} - -// Display block in IE6-9 and FF3 -// ------------------------- - -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} - -// Prevents modern browsers from displaying 'audio' without controls -// ------------------------- - -audio:not([controls]) { - display: none; -} - -// Base settings -// ------------------------- - -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -// Focus states -a:focus { - @include tab-focus; -} -// Hover & Active -a:hover, -a:active { - outline: 0; -} - -// Prevents sub and sup affecting line-height in all browsers -// ------------------------- - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} - -// Blockquote -// ------------------------- - -blockquote { - margin: 0; -} - -// Img border in a's and image quality -// ------------------------- - -img { - /* Responsive images (ensure images don't scale beyond their parents) */ - max-width: 100%; /* Part 1: Set a maxium relative to the parent */ - width: auto\9; /* IE7-8 need help adjusting responsive images */ - height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */ - - vertical-align: middle; - border: 0; - -ms-interpolation-mode: bicubic; -} - -// Prevent max-width from affecting Google Maps -#map_canvas img, -.google-maps img { - max-width: none; -} - -// Forms -// ------------------------- - -// Font size in all browsers, margin changes, misc consistency -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} -button, -input { - *overflow: visible; // Inner spacing ie IE6/7 - line-height: normal; // FF3/4 have !important on line-height in UA stylesheet -} -button::-moz-focus-inner, -input::-moz-focus-inner { // Inner padding and border oddities in FF3/4 - padding: 0; - border: 0; -} -button, -html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS. - cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. -} -label, -select, -button, -input[type="button"], -input[type="reset"], -input[type="submit"], -input[type="radio"], -input[type="checkbox"] { - cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. -} -input[type="search"] { // Appearance in Safari/Chrome - @include box-sizing(content-box); - -webkit-appearance: textfield; -} -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5 -} -textarea { - overflow: auto; // Remove vertical scrollbar in IE6-9 - vertical-align: top; // Readability and alignment cross-browser -} - - -// Printing -// ------------------------- -// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css - -@media print { - - * { - text-shadow: none !important; - color: #000 !important; // Black prints faster: h5bp.com/s - background: transparent !important; - box-shadow: none !important; - } - - a, - a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - // Don't show links for images, or javascript/internal links - .ir a:after, - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - - thead { - display: table-header-group; // h5bp.com/t - } - - tr, - img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - @page { - margin: 0.5cm; - } - - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - - h2, - h3 { - page-break-after: avoid; - } -} \ No newline at end of file diff --git a/_sass/site.scss b/_sass/site.scss deleted file mode 100644 index dd235ffb4b2..00000000000 --- a/_sass/site.scss +++ /dev/null @@ -1,46 +0,0 @@ -// Selection -// -------------------------------------------------- - -::-moz-selection { - background-color: lighten($base-color, 65%); - color: $base-color; - text-shadow: none; -} -::selection { - background-color: lighten($base-color, 65%); - color: $base-color; - text-shadow: none; -} - - -// Utility Classes -// -------------------------------------------------- - -.wrap { - margin: 0 auto; -} -.all-caps { - text-transform: uppercase; -} -.pull-left { - float: left; -} -.pull-right { - float:right; -} -.unstyled-list { - list-style: none; - margin-left: 0; - padding-left: 0; - li { - list-style-type: none; - } -} - - -// Global Transition -// --------------------------------------------------- - -b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a { - @include transition(all .2s ease); -} \ No newline at end of file diff --git a/_sass/typography.scss b/_sass/typography.scss deleted file mode 100644 index 0bb29d8c90b..00000000000 --- a/_sass/typography.scss +++ /dev/null @@ -1,125 +0,0 @@ -// Body -// -------------------------------------------------- -body { - font-family: $base-font; - color: $text-color; -} - -// Headings -// -------------------------------------------------- -h1, h2, h3, h4, h5, h6 { - font-family: $heading-font; -} - -// Links -// -------------------------------------------------- -a { - text-decoration: none; - color: $link-color; - &:visited { - color: lighten($link-color, 20); - } - &:hover { - color: darken($link-color, 20); - } - &:focus { - outline: thin dotted; - color: darken($link-color, 20); - } - &:hover, - &:active { - outline: 0; - } -} - -.link-arrow { - font-weight: 100; - text-decoration: underline; - font-style: normal; -} - -// Figures -// -------------------------------------------------- -figcaption { - padding-top: 10px; - @include font(14); - line-height: 1.3; - color: lighten($text-color, 10); -} - -// Feature Image Caption -// -------------------------------------------------- -.image-credit { - margin: 0 auto; - max-width: 440px; - padding-top: 5px; - padding-right: 20px; - padding-left: 20px; - text-align: right; - @include font(14); - line-height: 1.3; - color: lighten($text-color, 30); - @include clearfix(); - @media #{$medium} { - max-width: 760px; - padding-right: 60px; - padding-left: 60px; - } - @media #{$large} { - max-width: 960px; - } - a { - color: lighten($text-color, 30); - } -} - -// Note text -// -------------------------------------------------- -.notice { - margin-top: 1.5em; - padding: .5em 1em; - text-indent: 0; - @include font-rem(16); - background-color: lighten($black, 95); - border: 1px solid lighten($black, 90); - @include rounded(4px); -} - -// Blockquotes -// -------------------------------------------------- -blockquote { - font-family: $alt-font; - font-style: italic; - @include font-size(16); - padding-left: 20px; - border-left: 8px solid $black; -} - -// Footnotes -// -------------------------------------------------- -.footnotes { - @include font(14); - font-family: $base-font; -} - -// Code -// -------------------------------------------------- -tt, code, kbd, samp, pre { - font-family: $code-font; -} -p, -li { - code { - @include font(12); - white-space: nowrap; - margin: 0 2px; - padding: 0 5px; - border: 1px solid lighten($black, 90); - background-color: lighten($black, 95); - @include rounded(3px); - } -} -pre { - @include font(12); - overflow-x: auto; -} diff --git a/_sass/variables.scss b/_sass/variables.scss deleted file mode 100644 index 415b0c95328..00000000000 --- a/_sass/variables.scss +++ /dev/null @@ -1,36 +0,0 @@ -// TYPOGRAPHY ================================================ -$base-font: 'source-sans-pro', sans-serif; -$heading-font: $base-font; -$caption-font: $base-font; -$code-font: 'source-code-pro', monospace; -$alt-font: 'volkhov', serif; - -$doc-font-size: 16; -$doc-line-height: 24; - - -// set-up the body font-size / line-height -body { - margin-top: 0px + $doc-line-height; - font-size: 0px + $doc-font-size; -} - - -// COLORS ===================================================== -$body-color : #fff; -$text-color : #222; -$base-color : #343434; -$comp-color : spin($base-color, 180); -$border-color : $base-color; -$white : #fff; -$black : #000; -$accent-color : $black; -$link-color : #222; - - -// MEDIA QUERIES ============================================== -$micro : "only screen and (min-width: 30em)"; -$small : "only screen and (min-width: 37.5em)"; -$medium : "only screen and (min-width: 48em)"; -$large : "only screen and (min-width: 62em)"; -$x-large : "only screen and (min-width: 86.375em)"; diff --git a/_sass/vendor/bourbon/_bourbon-deprecated-upcoming.scss b/_sass/vendor/bourbon/_bourbon-deprecated-upcoming.scss new file mode 100644 index 00000000000..f946b3b456d --- /dev/null +++ b/_sass/vendor/bourbon/_bourbon-deprecated-upcoming.scss @@ -0,0 +1,8 @@ +//************************************************************************// +// These mixins/functions are deprecated +// They will be removed in the next MAJOR version release +//************************************************************************// +@mixin inline-block { + display: inline-block; + @warn "inline-block mixin is deprecated and will be removed in the next major version release"; +} diff --git a/_sass/vendor/bourbon/_bourbon.scss b/_sass/vendor/bourbon/_bourbon.scss new file mode 100644 index 00000000000..11d52d7c17d --- /dev/null +++ b/_sass/vendor/bourbon/_bourbon.scss @@ -0,0 +1,78 @@ +// Settings +@import "settings/prefixer"; +@import "settings/px-to-em"; + +// Custom Helpers +@import "helpers/convert-units"; +@import "helpers/gradient-positions-parser"; +@import "helpers/is-num"; +@import "helpers/linear-angle-parser"; +@import "helpers/linear-gradient-parser"; +@import "helpers/linear-positions-parser"; +@import "helpers/linear-side-corner-parser"; +@import "helpers/radial-arg-parser"; +@import "helpers/radial-positions-parser"; +@import "helpers/radial-gradient-parser"; +@import "helpers/render-gradients"; +@import "helpers/shape-size-stripper"; +@import "helpers/str-to-num"; + +// Custom Functions +@import "functions/assign"; +@import "functions/color-lightness"; +@import "functions/flex-grid"; +@import "functions/golden-ratio"; +@import "functions/grid-width"; +@import "functions/modular-scale"; +@import "functions/px-to-em"; +@import "functions/px-to-rem"; +@import "functions/strip-units"; +@import "functions/tint-shade"; +@import "functions/transition-property-name"; +@import "functions/unpack"; + +// CSS3 Mixins +@import "css3/animation"; +@import "css3/appearance"; +@import "css3/backface-visibility"; +@import "css3/background"; +@import "css3/background-image"; +@import "css3/border-image"; +@import "css3/border-radius"; +@import "css3/box-sizing"; +@import "css3/calc"; +@import "css3/columns"; +@import "css3/filter"; +@import "css3/flex-box"; +@import "css3/font-face"; +@import "css3/font-feature-settings"; +@import "css3/hyphens"; +@import "css3/hidpi-media-query"; +@import "css3/image-rendering"; +@import "css3/keyframes"; +@import "css3/linear-gradient"; +@import "css3/perspective"; +@import "css3/radial-gradient"; +@import "css3/transform"; +@import "css3/transition"; +@import "css3/user-select"; +@import "css3/placeholder"; + +// Addons & other mixins +@import "addons/button"; +@import "addons/clearfix"; +@import "addons/directional-values"; +@import "addons/ellipsis"; +@import "addons/font-family"; +@import "addons/hide-text"; +@import "addons/html5-input-types"; +@import "addons/position"; +@import "addons/prefixer"; +@import "addons/retina-image"; +@import "addons/size"; +@import "addons/timing-functions"; +@import "addons/triangle"; +@import "addons/word-wrap"; + +// Soon to be deprecated Mixins +@import "bourbon-deprecated-upcoming"; diff --git a/_sass/vendor/bourbon/addons/_button.scss b/_sass/vendor/bourbon/addons/_button.scss new file mode 100644 index 00000000000..14a89e480c1 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_button.scss @@ -0,0 +1,374 @@ +@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) { + + @if type-of($style) == string and type-of($base-color) == color { + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == string and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: #4294f0; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == color { + $base-color: $style; + $style: simple; + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: $style; + $style: simple; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == number { + $padding: $base-color; + $text-size: $style; + $base-color: #4294f0; + $style: simple; + + @if $padding == #4294f0 { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } +} + + +// Selector Style Button +//************************************************************************// +@mixin buttonstyle($type, $b-color, $t-size, $pad) { + // Grayscale button + @if $type == simple and $b-color == grayscale($b-color) { + @include simple($b-color, true, $t-size, $pad); + } + + @if $type == shiny and $b-color == grayscale($b-color) { + @include shiny($b-color, true, $t-size, $pad); + } + + @if $type == pill and $b-color == grayscale($b-color) { + @include pill($b-color, true, $t-size, $pad); + } + + @if $type == flat and $b-color == grayscale($b-color) { + @include flat($b-color, true, $t-size, $pad); + } + + // Colored button + @if $type == simple { + @include simple($b-color, false, $t-size, $pad); + } + + @else if $type == shiny { + @include shiny($b-color, false, $t-size, $pad); + } + + @else if $type == pill { + @include pill($b-color, false, $t-size, $pad); + } + + @else if $type == flat { + @include flat($b-color, false, $t-size, $pad); + } +} + + +// Simple Button +//************************************************************************// +@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%); + $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%); + $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border; + border-radius: 3px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-decoration: none; + text-shadow: 0 1px 0 $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%); + $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + } + + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%); + + @if $grayscale == true { + $border-active: grayscale($border-active); + $inset-shadow-active: grayscale($inset-shadow-active); + } + + border: 1px solid $border-active; + box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active; + } +} + + +// Shiny Button +//************************************************************************// +@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81); + $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122); + $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46); + $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12); + $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33); + $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114); + $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $border-bottom: grayscale($border-bottom); + $fourth-stop: grayscale($fourth-stop); + $inset-shadow: grayscale($inset-shadow); + $second-stop: grayscale($second-stop); + $text-shadow: grayscale($text-shadow); + $third-stop: grayscale($third-stop); + } + + border: 1px solid $border; + border-bottom: 1px solid $border-bottom; + border-radius: 5px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + + &:hover:not(:disabled) { + $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18); + $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51); + $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66); + $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63); + + @if $grayscale == true { + $first-stop-hover: grayscale($first-stop-hover); + $second-stop-hover: grayscale($second-stop-hover); + $third-stop-hover: grayscale($third-stop-hover); + $fourth-stop-hover: grayscale($fourth-stop-hover); + } + + cursor: pointer; + @include linear-gradient(top, $first-stop-hover 0%, + $second-stop-hover 50%, + $third-stop-hover 50%, + $fourth-stop-hover 100%); + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); + + @if $grayscale == true { + $inset-shadow-active: grayscale($inset-shadow-active); + } + + box-shadow: inset 0 0 20px 0 $inset-shadow-active; + } +} + + +// Pill Button +//************************************************************************// +@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%); + $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%); + $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%); + $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + border-radius: 16px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: normal; + line-height: 1; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $lightness: -4.5%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%); + $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%); + $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + $text-shadow-hover: grayscale($text-shadow-hover); + } + + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + text-shadow: 0 -1px 1px $text-shadow-hover; + background-clip: padding-box; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%); + $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%); + $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%); + $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%); + $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%); + + @if $grayscale == true { + $active-color: grayscale($active-color); + $border-active: grayscale($border-active); + $border-bottom-active: grayscale($border-bottom-active); + $inset-shadow-active: grayscale($inset-shadow-active); + $text-shadow-active: grayscale($text-shadow-active); + } + + background: $active-color; + border: 1px solid $border-active; + border-bottom: 1px solid $border-bottom-active; + box-shadow: inset 0 0 6px 3px $inset-shadow-active; + text-shadow: 0 -1px 1px $text-shadow-active; + } +} + + + +// Flat Button +//************************************************************************// +@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + } + + background-color: $base-color; + border-radius: 3px; + border: none; + color: $color; + display: inline-block; + font-size: inherit; + font-weight: bold; + padding: 7px 18px; + text-decoration: none; + background-clip: padding-box; + + &:hover:not(:disabled){ + $base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + } + + background-color: $base-color-hover; + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + + @if $grayscale == true { + $base-color-active: grayscale($base-color-active); + } + + background-color: $base-color-active; + cursor: pointer; + } +} diff --git a/_sass/vendor/bourbon/addons/_clearfix.scss b/_sass/vendor/bourbon/addons/_clearfix.scss new file mode 100644 index 00000000000..783cfbc7922 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_clearfix.scss @@ -0,0 +1,23 @@ +// Modern micro clearfix provides an easy way to contain floats without adding additional markup. +// +// Example usage: +// +// // Contain all floats within .wrapper +// .wrapper { +// @include clearfix; +// .content, +// .sidebar { +// float : left; +// } +// } + +@mixin clearfix { + &:after { + content:""; + display:table; + clear:both; + } +} + +// Acknowledgements +// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php) diff --git a/_sass/vendor/bourbon/addons/_directional-values.scss b/_sass/vendor/bourbon/addons/_directional-values.scss new file mode 100644 index 00000000000..742f1031a48 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_directional-values.scss @@ -0,0 +1,111 @@ +// directional-property mixins are shorthands +// for writing properties like the following +// +// @include margin(null 0 10px); +// ------ +// margin-right: 0; +// margin-bottom: 10px; +// margin-left: 0; +// +// - or - +// +// @include border-style(dotted null); +// ------ +// border-top-style: dotted; +// border-bottom-style: dotted; +// +// ------ +// +// Note: You can also use false instead of null + +@function collapse-directionals($vals) { + $output: null; + + $A: nth( $vals, 1 ); + $B: if( length($vals) < 2, $A, nth($vals, 2)); + $C: if( length($vals) < 3, $A, nth($vals, 3)); + $D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) )); + + @if $A == 0 { $A: 0 } + @if $B == 0 { $B: 0 } + @if $C == 0 { $C: 0 } + @if $D == 0 { $D: 0 } + + @if $A == $B and $A == $C and $A == $D { $output: $A } + @else if $A == $C and $B == $D { $output: $A $B } + @else if $B == $D { $output: $A $B $C } + @else { $output: $A $B $C $D } + + @return $output; +} + +@function contains-falsy($list) { + @each $item in $list { + @if not $item { + @return true; + } + } + + @return false; +} + +@mixin directional-property($pre, $suf, $vals) { + // Property Names + $top: $pre + "-top" + if($suf, "-#{$suf}", ""); + $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", ""); + $left: $pre + "-left" + if($suf, "-#{$suf}", ""); + $right: $pre + "-right" + if($suf, "-#{$suf}", ""); + $all: $pre + if($suf, "-#{$suf}", ""); + + $vals: collapse-directionals($vals); + + @if contains-falsy($vals) { + @if nth($vals, 1) { #{$top}: nth($vals, 1); } + + @if length($vals) == 1 { + @if nth($vals, 1) { #{$right}: nth($vals, 1); } + } @else { + @if nth($vals, 2) { #{$right}: nth($vals, 2); } + } + + // prop: top/bottom right/left + @if length($vals) == 2 { + @if nth($vals, 1) { #{$bottom}: nth($vals, 1); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + + // prop: top right/left bottom + } @else if length($vals) == 3 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + + // prop: top right bottom left + } @else if length($vals) == 4 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 4) { #{$left}: nth($vals, 4); } + } + + // prop: top/right/bottom/left + } @else { + #{$all}: $vals; + } +} + +@mixin margin($vals...) { + @include directional-property(margin, false, $vals...); +} + +@mixin padding($vals...) { + @include directional-property(padding, false, $vals...); +} + +@mixin border-style($vals...) { + @include directional-property(border, style, $vals...); +} + +@mixin border-color($vals...) { + @include directional-property(border, color, $vals...); +} + +@mixin border-width($vals...) { + @include directional-property(border, width, $vals...); +} diff --git a/_sass/vendor/bourbon/addons/_ellipsis.scss b/_sass/vendor/bourbon/addons/_ellipsis.scss new file mode 100644 index 00000000000..a8ea2a4a867 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_ellipsis.scss @@ -0,0 +1,7 @@ +@mixin ellipsis($width: 100%) { + display: inline-block; + max-width: $width; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} diff --git a/_sass/vendor/bourbon/addons/_font-family.scss b/_sass/vendor/bourbon/addons/_font-family.scss new file mode 100644 index 00000000000..31f5d9ca75c --- /dev/null +++ b/_sass/vendor/bourbon/addons/_font-family.scss @@ -0,0 +1,5 @@ +$georgia: Georgia, Cambria, "Times New Roman", Times, serif; +$helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; +$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif; +$monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace; +$verdana: Verdana, Geneva, sans-serif; diff --git a/_sass/vendor/bourbon/addons/_hide-text.scss b/_sass/vendor/bourbon/addons/_hide-text.scss new file mode 100644 index 00000000000..fc7943811d3 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_hide-text.scss @@ -0,0 +1,10 @@ +@mixin hide-text { + overflow: hidden; + + &:before { + content: ""; + display: block; + width: 0; + height: 100%; + } +} diff --git a/_sass/vendor/bourbon/addons/_html5-input-types.scss b/_sass/vendor/bourbon/addons/_html5-input-types.scss new file mode 100644 index 00000000000..9e9324ae0a7 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_html5-input-types.scss @@ -0,0 +1,86 @@ +//************************************************************************// +// Generate a variable ($all-text-inputs) with a list of all html5 +// input types that have a text-based input, excluding textarea. +// http://diveintohtml5.org/forms.html +//************************************************************************// +$inputs-list: 'input[type="email"]', + 'input[type="number"]', + 'input[type="password"]', + 'input[type="search"]', + 'input[type="tel"]', + 'input[type="text"]', + 'input[type="url"]', + + // Webkit & Gecko may change the display of these in the future + 'input[type="color"]', + 'input[type="date"]', + 'input[type="datetime"]', + 'input[type="datetime-local"]', + 'input[type="month"]', + 'input[type="time"]', + 'input[type="week"]'; + +// Bare inputs +//************************************************************************// +$all-text-inputs: assign-inputs($inputs-list); + +// Hover Pseudo-class +//************************************************************************// +$all-text-inputs-hover: assign-inputs($inputs-list, hover); + +// Focus Pseudo-class +//************************************************************************// +$all-text-inputs-focus: assign-inputs($inputs-list, focus); + + + +// You must use interpolation on the variable: +// #{$all-text-inputs} +// #{$all-text-inputs-hover} +// #{$all-text-inputs-focus} + +// Example +//************************************************************************// +// #{$all-text-inputs}, textarea { +// border: 1px solid red; +// } + + + +//************************************************************************// +// Generate a variable ($all-button-inputs) with a list of all html5 +// input types that have a button-based input, excluding button. +//************************************************************************// +$inputs-button-list: 'input[type="button"]', + 'input[type="reset"]', + 'input[type="submit"]'; + +// Bare inputs +//************************************************************************// +$all-button-inputs: assign-inputs($inputs-button-list); + +// Hover Pseudo-class +//************************************************************************// +$all-button-inputs-hover: assign-inputs($inputs-button-list, hover); + +// Focus Pseudo-class +//************************************************************************// +$all-button-inputs-focus: assign-inputs($inputs-button-list, focus); + +// Active Pseudo-class +//************************************************************************// +$all-button-inputs-active: assign-inputs($inputs-button-list, active); + + + +// You must use interpolation on the variable: +// #{$all-button-inputs} +// #{$all-button-inputs-hover} +// #{$all-button-inputs-focus} +// #{$all-button-inputs-active} + +// Example +//************************************************************************// +// #{$all-button-inputs}, button { +// border: 1px solid red; +// } diff --git a/_sass/vendor/bourbon/addons/_position.scss b/_sass/vendor/bourbon/addons/_position.scss new file mode 100644 index 00000000000..7de75182bc0 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_position.scss @@ -0,0 +1,32 @@ +@mixin position ($position: relative, $coordinates: null null null null) { + + @if type-of($position) == list { + $coordinates: $position; + $position: relative; + } + + $coordinates: unpack($coordinates); + + $top: nth($coordinates, 1); + $right: nth($coordinates, 2); + $bottom: nth($coordinates, 3); + $left: nth($coordinates, 4); + + position: $position; + + @if ($top and $top == auto) or (type-of($top) == number) { + top: $top; + } + + @if ($right and $right == auto) or (type-of($right) == number) { + right: $right; + } + + @if ($bottom and $bottom == auto) or (type-of($bottom) == number) { + bottom: $bottom; + } + + @if ($left and $left == auto) or (type-of($left) == number) { + left: $left; + } +} diff --git a/_sass/vendor/bourbon/addons/_prefixer.scss b/_sass/vendor/bourbon/addons/_prefixer.scss new file mode 100644 index 00000000000..c32f502758f --- /dev/null +++ b/_sass/vendor/bourbon/addons/_prefixer.scss @@ -0,0 +1,45 @@ +//************************************************************************// +// Example: @include prefixer(border-radius, $radii, webkit ms spec); +//************************************************************************// +// Variables located in /settings/_prefixer.scss + +@mixin prefixer ($property, $value, $prefixes) { + @each $prefix in $prefixes { + @if $prefix == webkit { + @if $prefix-for-webkit { + -webkit-#{$property}: $value; + } + } + @else if $prefix == moz { + @if $prefix-for-mozilla { + -moz-#{$property}: $value; + } + } + @else if $prefix == ms { + @if $prefix-for-microsoft { + -ms-#{$property}: $value; + } + } + @else if $prefix == o { + @if $prefix-for-opera { + -o-#{$property}: $value; + } + } + @else if $prefix == spec { + @if $prefix-for-spec { + #{$property}: $value; + } + } + @else { + @warn "Unrecognized prefix: #{$prefix}"; + } + } +} + +@mixin disable-prefix-for-all() { + $prefix-for-webkit: false !global; + $prefix-for-mozilla: false !global; + $prefix-for-microsoft: false !global; + $prefix-for-opera: false !global; + $prefix-for-spec: false !global; +} diff --git a/_sass/vendor/bourbon/addons/_retina-image.scss b/_sass/vendor/bourbon/addons/_retina-image.scss new file mode 100644 index 00000000000..7931bd13330 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_retina-image.scss @@ -0,0 +1,31 @@ +@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: false) { + @if $asset-pipeline { + background-image: image-url("#{$filename}.#{$extension}"); + } + @else { + background-image: url("#{$filename}.#{$extension}"); + } + + @include hidpi { + @if $asset-pipeline { + @if $retina-filename { + background-image: image-url("#{$retina-filename}.#{$extension}"); + } + @else { + background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } + + @else { + @if $retina-filename { + background-image: url("#{$retina-filename}.#{$extension}"); + } + @else { + background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } + + background-size: $background-size; + + } +} diff --git a/_sass/vendor/bourbon/addons/_size.scss b/_sass/vendor/bourbon/addons/_size.scss new file mode 100644 index 00000000000..ac705e26c6e --- /dev/null +++ b/_sass/vendor/bourbon/addons/_size.scss @@ -0,0 +1,16 @@ +@mixin size($size) { + $height: nth($size, 1); + $width: $height; + + @if length($size) > 1 { + $height: nth($size, 2); + } + + @if $height == auto or (type-of($height) == number and not unitless($height)) { + height: $height; + } + + @if $width == auto or (type-of($height) == number and not unitless($width)) { + width: $width; + } +} diff --git a/_sass/vendor/bourbon/addons/_timing-functions.scss b/_sass/vendor/bourbon/addons/_timing-functions.scss new file mode 100644 index 00000000000..51b24109149 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_timing-functions.scss @@ -0,0 +1,32 @@ +// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) +// Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html + +// EASE IN +$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); +$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); +$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); +$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); +$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); +$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); +$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); +$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); + +// EASE OUT +$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); +$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); +$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); +$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); +$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); +$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); +$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); +$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); + +// EASE IN OUT +$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); +$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); +$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); +$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); +$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); +$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); +$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); +$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); diff --git a/_sass/vendor/bourbon/addons/_triangle.scss b/_sass/vendor/bourbon/addons/_triangle.scss new file mode 100644 index 00000000000..573954e41e3 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_triangle.scss @@ -0,0 +1,83 @@ +@mixin triangle ($size, $color, $direction) { + height: 0; + width: 0; + + $width: nth($size, 1); + $height: nth($size, length($size)); + + $foreground-color: nth($color, 1); + $background-color: if(length($color) == 2, nth($color, 2), transparent); + + @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { + + $width: $width / 2; + $height: if(length($size) > 1, $height, $height/2); + + @if $direction == up { + border-left: $width solid $background-color; + border-right: $width solid $background-color; + border-bottom: $height solid $foreground-color; + + } @else if $direction == right { + border-top: $width solid $background-color; + border-bottom: $width solid $background-color; + border-left: $height solid $foreground-color; + + } @else if $direction == down { + border-left: $width solid $background-color; + border-right: $width solid $background-color; + border-top: $height solid $foreground-color; + + } @else if $direction == left { + border-top: $width solid $background-color; + border-bottom: $width solid $background-color; + border-right: $height solid $foreground-color; + } + } + + @else if ($direction == up-right) or ($direction == up-left) { + border-top: $height solid $foreground-color; + + @if $direction == up-right { + border-left: $width solid $background-color; + + } @else if $direction == up-left { + border-right: $width solid $background-color; + } + } + + @else if ($direction == down-right) or ($direction == down-left) { + border-bottom: $height solid $foreground-color; + + @if $direction == down-right { + border-left: $width solid $background-color; + + } @else if $direction == down-left { + border-right: $width solid $background-color; + } + } + + @else if ($direction == inset-up) { + border-width: $height $width; + border-style: solid; + border-color: $background-color $background-color $foreground-color; + } + + @else if ($direction == inset-down) { + border-width: $height $width; + border-style: solid; + border-color: $foreground-color $background-color $background-color; + } + + @else if ($direction == inset-right) { + border-width: $width $height; + border-style: solid; + border-color: $background-color $background-color $background-color $foreground-color; + } + + @else if ($direction == inset-left) { + border-width: $width $height; + border-style: solid; + border-color: $background-color $foreground-color $background-color $background-color; + } +} diff --git a/_sass/vendor/bourbon/addons/_word-wrap.scss b/_sass/vendor/bourbon/addons/_word-wrap.scss new file mode 100644 index 00000000000..9734a597cd0 --- /dev/null +++ b/_sass/vendor/bourbon/addons/_word-wrap.scss @@ -0,0 +1,8 @@ +@mixin word-wrap($wrap: break-word) { + word-wrap: $wrap; + + @if $wrap == break-word { + overflow-wrap: break-word; + word-break: break-all; + } +} diff --git a/_sass/vendor/bourbon/css3/_animation.scss b/_sass/vendor/bourbon/css3/_animation.scss new file mode 100644 index 00000000000..08c3dbf157c --- /dev/null +++ b/_sass/vendor/bourbon/css3/_animation.scss @@ -0,0 +1,52 @@ +// http://www.w3.org/TR/css3-animations/#the-animation-name-property- +// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. + +// Official animation shorthand property. +@mixin animation ($animations...) { + @include prefixer(animation, $animations, webkit moz spec); +} + +// Individual Animation Properties +@mixin animation-name ($names...) { + @include prefixer(animation-name, $names, webkit moz spec); +} + + +@mixin animation-duration ($times...) { + @include prefixer(animation-duration, $times, webkit moz spec); +} + + +@mixin animation-timing-function ($motions...) { +// ease | linear | ease-in | ease-out | ease-in-out + @include prefixer(animation-timing-function, $motions, webkit moz spec); +} + + +@mixin animation-iteration-count ($values...) { +// infinite | + @include prefixer(animation-iteration-count, $values, webkit moz spec); +} + + +@mixin animation-direction ($directions...) { +// normal | alternate + @include prefixer(animation-direction, $directions, webkit moz spec); +} + + +@mixin animation-play-state ($states...) { +// running | paused + @include prefixer(animation-play-state, $states, webkit moz spec); +} + + +@mixin animation-delay ($times...) { + @include prefixer(animation-delay, $times, webkit moz spec); +} + + +@mixin animation-fill-mode ($modes...) { +// none | forwards | backwards | both + @include prefixer(animation-fill-mode, $modes, webkit moz spec); +} diff --git a/_sass/vendor/bourbon/css3/_appearance.scss b/_sass/vendor/bourbon/css3/_appearance.scss new file mode 100644 index 00000000000..3eb16e45de7 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_appearance.scss @@ -0,0 +1,3 @@ +@mixin appearance ($value) { + @include prefixer(appearance, $value, webkit moz ms o spec); +} diff --git a/_sass/vendor/bourbon/css3/_backface-visibility.scss b/_sass/vendor/bourbon/css3/_backface-visibility.scss new file mode 100644 index 00000000000..1161fe60dd1 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_backface-visibility.scss @@ -0,0 +1,6 @@ +//************************************************************************// +// Backface-visibility mixin +//************************************************************************// +@mixin backface-visibility($visibility) { + @include prefixer(backface-visibility, $visibility, webkit spec); +} diff --git a/_sass/vendor/bourbon/css3/_background-image.scss b/_sass/vendor/bourbon/css3/_background-image.scss new file mode 100644 index 00000000000..6abe88be9a5 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_background-image.scss @@ -0,0 +1,42 @@ +//************************************************************************// +// Background-image property for adding multiple background images with +// gradients, or for stringing multiple gradients together. +//************************************************************************// + +@mixin background-image($images...) { + $webkit-images: (); + $spec-images: (); + + @each $image in $images { + $webkit-image: (); + $spec-image: (); + + @if (type-of($image) == string) { + $url-str: str-slice($image, 0, 3); + $gradient-type: str-slice($image, 0, 6); + + @if $url-str == "url" { + $webkit-image: $image; + $spec-image: $image; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + } + + $webkit-images: append($webkit-images, $webkit-image, comma); + $spec-images: append($spec-images, $spec-image, comma); + } + + background-image: $webkit-images; + background-image: $spec-images; +} diff --git a/_sass/vendor/bourbon/css3/_background.scss b/_sass/vendor/bourbon/css3/_background.scss new file mode 100644 index 00000000000..9bce9308bf9 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_background.scss @@ -0,0 +1,55 @@ +//************************************************************************// +// Background property for adding multiple backgrounds using shorthand +// notation. +//************************************************************************// + +@mixin background($backgrounds...) { + $webkit-backgrounds: (); + $spec-backgrounds: (); + + @each $background in $backgrounds { + $webkit-background: (); + $spec-background: (); + $background-type: type-of($background); + + @if $background-type == string or list { + $background-str: if($background-type == list, nth($background, 1), $background); + + $url-str: str-slice($background-str, 0, 3); + $gradient-type: str-slice($background-str, 0, 6); + + @if $url-str == "url" { + $webkit-background: $background; + $spec-background: $background; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + + $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma); + $spec-backgrounds: append($spec-backgrounds, $spec-background, comma); + } + + background: $webkit-backgrounds; + background: $spec-backgrounds; +} diff --git a/_sass/vendor/bourbon/css3/_border-image.scss b/_sass/vendor/bourbon/css3/_border-image.scss new file mode 100644 index 00000000000..e338c2dcd24 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_border-image.scss @@ -0,0 +1,59 @@ +@mixin border-image($borders...) { + $webkit-borders: (); + $spec-borders: (); + + @each $border in $borders { + $webkit-border: (); + $spec-border: (); + $border-type: type-of($border); + + @if $border-type == string or list { + $border-str: if($border-type == list, nth($border, 1), $border); + + $url-str: str-slice($border-str, 0, 3); + $gradient-type: str-slice($border-str, 0, 6); + + @if $url-str == "url" { + $webkit-border: $border; + $spec-border: $border; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + + $webkit-borders: append($webkit-borders, $webkit-border, comma); + $spec-borders: append($spec-borders, $spec-border, comma); + } + + -webkit-border-image: $webkit-borders; + border-image: $spec-borders; + border-style: solid; +} + +//Examples: +// @include border-image(url("image.png")); +// @include border-image(url("image.png") 20 stretch); +// @include border-image(linear-gradient(45deg, orange, yellow)); +// @include border-image(linear-gradient(45deg, orange, yellow) stretch); +// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); +// @include border-image(radial-gradient(top, cover, orange, yellow, orange)); diff --git a/_sass/vendor/bourbon/css3/_border-radius.scss b/_sass/vendor/bourbon/css3/_border-radius.scss new file mode 100644 index 00000000000..7c171901090 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_border-radius.scss @@ -0,0 +1,22 @@ +//************************************************************************// +// Shorthand Border-radius mixins +//************************************************************************// +@mixin border-top-radius($radii) { + @include prefixer(border-top-left-radius, $radii, spec); + @include prefixer(border-top-right-radius, $radii, spec); +} + +@mixin border-bottom-radius($radii) { + @include prefixer(border-bottom-left-radius, $radii, spec); + @include prefixer(border-bottom-right-radius, $radii, spec); +} + +@mixin border-left-radius($radii) { + @include prefixer(border-top-left-radius, $radii, spec); + @include prefixer(border-bottom-left-radius, $radii, spec); +} + +@mixin border-right-radius($radii) { + @include prefixer(border-top-right-radius, $radii, spec); + @include prefixer(border-bottom-right-radius, $radii, spec); +} diff --git a/_sass/vendor/bourbon/css3/_box-sizing.scss b/_sass/vendor/bourbon/css3/_box-sizing.scss new file mode 100644 index 00000000000..f07e1d412e3 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_box-sizing.scss @@ -0,0 +1,4 @@ +@mixin box-sizing ($box) { +// content-box | border-box | inherit + @include prefixer(box-sizing, $box, webkit moz spec); +} diff --git a/_sass/vendor/bourbon/css3/_calc.scss b/_sass/vendor/bourbon/css3/_calc.scss new file mode 100644 index 00000000000..94d7e4cef3c --- /dev/null +++ b/_sass/vendor/bourbon/css3/_calc.scss @@ -0,0 +1,4 @@ +@mixin calc($property, $value) { + #{$property}: -webkit-calc(#{$value}); + #{$property}: calc(#{$value}); +} diff --git a/_sass/vendor/bourbon/css3/_columns.scss b/_sass/vendor/bourbon/css3/_columns.scss new file mode 100644 index 00000000000..96f601c1a81 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_columns.scss @@ -0,0 +1,47 @@ +@mixin columns($arg: auto) { +// || + @include prefixer(columns, $arg, webkit moz spec); +} + +@mixin column-count($int: auto) { +// auto || integer + @include prefixer(column-count, $int, webkit moz spec); +} + +@mixin column-gap($length: normal) { +// normal || length + @include prefixer(column-gap, $length, webkit moz spec); +} + +@mixin column-fill($arg: auto) { +// auto || length + @include prefixer(column-fill, $arg, webkit moz spec); +} + +@mixin column-rule($arg) { +// || || + @include prefixer(column-rule, $arg, webkit moz spec); +} + +@mixin column-rule-color($color) { + @include prefixer(column-rule-color, $color, webkit moz spec); +} + +@mixin column-rule-style($style: none) { +// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid + @include prefixer(column-rule-style, $style, webkit moz spec); +} + +@mixin column-rule-width ($width: none) { + @include prefixer(column-rule-width, $width, webkit moz spec); +} + +@mixin column-span($arg: none) { +// none || all + @include prefixer(column-span, $arg, webkit moz spec); +} + +@mixin column-width($length: auto) { +// auto || length + @include prefixer(column-width, $length, webkit moz spec); +} diff --git a/_sass/vendor/bourbon/css3/_filter.scss b/_sass/vendor/bourbon/css3/_filter.scss new file mode 100644 index 00000000000..8560d77676d --- /dev/null +++ b/_sass/vendor/bourbon/css3/_filter.scss @@ -0,0 +1,5 @@ +@mixin filter($function: none) { + // [ + @include prefixer(perspective, $depth, webkit moz spec); +} + +@mixin perspective-origin($value: 50% 50%) { + @include prefixer(perspective-origin, $value, webkit moz spec); +} diff --git a/_sass/vendor/bourbon/css3/_placeholder.scss b/_sass/vendor/bourbon/css3/_placeholder.scss new file mode 100644 index 00000000000..5682fd097a5 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_placeholder.scss @@ -0,0 +1,8 @@ +@mixin placeholder { + $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; + @each $placeholder in $placeholders { + &:#{$placeholder}-placeholder { + @content; + } + } +} diff --git a/_sass/vendor/bourbon/css3/_radial-gradient.scss b/_sass/vendor/bourbon/css3/_radial-gradient.scss new file mode 100644 index 00000000000..7a8c3765f16 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_radial-gradient.scss @@ -0,0 +1,39 @@ +// Requires Sass 3.1+ +@mixin radial-gradient($G1, $G2, + $G3: null, $G4: null, + $G5: null, $G6: null, + $G7: null, $G8: null, + $G9: null, $G10: null, + $pos: null, + $shape-size: null, + $fallback: null) { + + $data: _radial-arg-parser($G1, $G2, $pos, $shape-size); + $G1: nth($data, 1); + $G2: nth($data, 2); + $pos: nth($data, 3); + $shape-size: nth($data, 4); + + $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10; + + // Strip deprecated cover/contain for spec + $shape-size-spec: _shape-size-stripper($shape-size); + + // Set $G1 as the default fallback color + $first-color: nth($full, 1); + $fallback-color: nth($first-color, 1); + + @if (type-of($fallback) == color) or ($fallback == "transparent") { + $fallback-color: $fallback; + } + + // Add Commas and spaces + $shape-size: if($shape-size, '#{$shape-size}, ', null); + $pos: if($pos, '#{$pos}, ', null); + $pos-spec: if($pos, 'at #{$pos}', null); + $shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} '); + + background-color: $fallback-color; + background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full})); + background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})"); +} diff --git a/_sass/vendor/bourbon/css3/_transform.scss b/_sass/vendor/bourbon/css3/_transform.scss new file mode 100644 index 00000000000..8cc35963d55 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_transform.scss @@ -0,0 +1,15 @@ +@mixin transform($property: none) { +// none | + @include prefixer(transform, $property, webkit moz ms o spec); +} + +@mixin transform-origin($axes: 50%) { +// x-axis - left | center | right | length | % +// y-axis - top | center | bottom | length | % +// z-axis - length + @include prefixer(transform-origin, $axes, webkit moz ms o spec); +} + +@mixin transform-style ($style: flat) { + @include prefixer(transform-style, $style, webkit moz ms o spec); +} diff --git a/_sass/vendor/bourbon/css3/_transition.scss b/_sass/vendor/bourbon/css3/_transition.scss new file mode 100644 index 00000000000..5ad4c0aed23 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_transition.scss @@ -0,0 +1,77 @@ +// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. +// Example: @include transition (all 2s ease-in-out); +// @include transition (opacity 1s ease-in 2s, width 2s ease-out); +// @include transition-property (transform, opacity); + +@mixin transition ($properties...) { + // Fix for vendor-prefix transform property + $needs-prefixes: false; + $webkit: (); + $moz: (); + $spec: (); + + // Create lists for vendor-prefixed transform + @each $list in $properties { + @if nth($list, 1) == "transform" { + $needs-prefixes: true; + $list1: -webkit-transform; + $list2: -moz-transform; + $list3: (); + + @each $var in $list { + $list3: join($list3, $var); + + @if $var != "transform" { + $list1: join($list1, $var); + $list2: join($list2, $var); + } + } + + $webkit: append($webkit, $list1); + $moz: append($moz, $list2); + $spec: append($spec, $list3); + } + + // Create lists for non-prefixed transition properties + @else { + $webkit: append($webkit, $list, comma); + $moz: append($moz, $list, comma); + $spec: append($spec, $list, comma); + } + } + + @if $needs-prefixes { + -webkit-transition: $webkit; + -moz-transition: $moz; + transition: $spec; + } + @else { + @if length($properties) >= 1 { + @include prefixer(transition, $properties, webkit moz spec); + } + + @else { + $properties: all 0.15s ease-out 0s; + @include prefixer(transition, $properties, webkit moz spec); + } + } +} + +@mixin transition-property ($properties...) { + -webkit-transition-property: transition-property-names($properties, 'webkit'); + -moz-transition-property: transition-property-names($properties, 'moz'); + transition-property: transition-property-names($properties, false); +} + +@mixin transition-duration ($times...) { + @include prefixer(transition-duration, $times, webkit moz spec); +} + +@mixin transition-timing-function ($motions...) { +// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() + @include prefixer(transition-timing-function, $motions, webkit moz spec); +} + +@mixin transition-delay ($times...) { + @include prefixer(transition-delay, $times, webkit moz spec); +} diff --git a/_sass/vendor/bourbon/css3/_user-select.scss b/_sass/vendor/bourbon/css3/_user-select.scss new file mode 100644 index 00000000000..1380aa8baa9 --- /dev/null +++ b/_sass/vendor/bourbon/css3/_user-select.scss @@ -0,0 +1,3 @@ +@mixin user-select($arg: none) { + @include prefixer(user-select, $arg, webkit moz ms spec); +} diff --git a/_sass/vendor/bourbon/functions/_assign.scss b/_sass/vendor/bourbon/functions/_assign.scss new file mode 100644 index 00000000000..9a1db93ef74 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_assign.scss @@ -0,0 +1,11 @@ +@function assign-inputs($inputs, $pseudo: null) { + $list : (); + + @each $input in $inputs { + $input: unquote($input); + $input: if($pseudo, $input + ":" + $pseudo, $input); + $list: append($list, $input, comma); + } + + @return $list; +} \ No newline at end of file diff --git a/_sass/vendor/bourbon/functions/_color-lightness.scss b/_sass/vendor/bourbon/functions/_color-lightness.scss new file mode 100644 index 00000000000..8c6df4e2564 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_color-lightness.scss @@ -0,0 +1,13 @@ +// Programatically determines whether a color is light or dark +// Returns a boolean +// More details here http://robots.thoughtbot.com/closer-look-color-lightness + +@function is-light($hex-color) { + $-local-red: red(rgba($hex-color, 1.0)); + $-local-green: green(rgba($hex-color, 1.0)); + $-local-blue: blue(rgba($hex-color, 1.0)); + + $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; + + @return $-local-lightness > .6; +} diff --git a/_sass/vendor/bourbon/functions/_flex-grid.scss b/_sass/vendor/bourbon/functions/_flex-grid.scss new file mode 100644 index 00000000000..3bbd8665732 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_flex-grid.scss @@ -0,0 +1,39 @@ +// Flexible grid +@function flex-grid($columns, $container-columns: $fg-max-columns) { + $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($width / $container-width); +} + +// Flexible gutter +@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($gutter / $container-width); +} + +// The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function. +// This function takes the fluid grid equation (target / context = result) and uses columns to help define each. +// +// The calculation presumes that your column structure will be missing the last gutter: +// +// -- column -- gutter -- column -- gutter -- column +// +// $fg-column: 60px; // Column Width +// $fg-gutter: 25px; // Gutter Width +// $fg-max-columns: 12; // Total Columns For Main Container +// +// div { +// width: flex-grid(4); // returns (315px / 995px) = 31.65829%; +// margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%; +// +// p { +// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; +// float: left; +// margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%; +// } +// +// blockquote { +// float: left; +// width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%; +// } +// } \ No newline at end of file diff --git a/_sass/vendor/bourbon/functions/_golden-ratio.scss b/_sass/vendor/bourbon/functions/_golden-ratio.scss new file mode 100644 index 00000000000..463d14a00c1 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_golden-ratio.scss @@ -0,0 +1,3 @@ +@function golden-ratio($value, $increment) { + @return modular-scale($value, $increment, $golden) +} diff --git a/_sass/vendor/bourbon/functions/_grid-width.scss b/_sass/vendor/bourbon/functions/_grid-width.scss new file mode 100644 index 00000000000..8e63d83d602 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_grid-width.scss @@ -0,0 +1,13 @@ +@function grid-width($n) { + @return $n * $gw-column + ($n - 1) * $gw-gutter; +} + +// The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function. +// +// $gw-column: 100px; // Column Width +// $gw-gutter: 40px; // Gutter Width +// +// div { +// width: grid-width(4); // returns 520px; +// margin-left: $gw-gutter; // returns 40px; +// } diff --git a/_sass/vendor/bourbon/functions/_modular-scale.scss b/_sass/vendor/bourbon/functions/_modular-scale.scss new file mode 100644 index 00000000000..afc59eb954d --- /dev/null +++ b/_sass/vendor/bourbon/functions/_modular-scale.scss @@ -0,0 +1,66 @@ +// Scaling Variables +$golden: 1.618; +$minor-second: 1.067; +$major-second: 1.125; +$minor-third: 1.2; +$major-third: 1.25; +$perfect-fourth: 1.333; +$augmented-fourth: 1.414; +$perfect-fifth: 1.5; +$minor-sixth: 1.6; +$major-sixth: 1.667; +$minor-seventh: 1.778; +$major-seventh: 1.875; +$octave: 2; +$major-tenth: 2.5; +$major-eleventh: 2.667; +$major-twelfth: 3; +$double-octave: 4; + +@function modular-scale($value, $increment, $ratio) { + $v1: nth($value, 1); + $v2: nth($value, length($value)); + $value: $v1; + + // scale $v2 to just above $v1 + @while $v2 > $v1 { + $v2: ($v2 / $ratio); // will be off-by-1 + } + @while $v2 < $v1 { + $v2: ($v2 * $ratio); // will fix off-by-1 + } + + // check AFTER scaling $v2 to prevent double-counting corner-case + $double-stranded: $v2 > $v1; + + @if $increment > 0 { + @for $i from 1 through $increment { + @if $double-stranded and ($v1 * $ratio) > $v2 { + $value: $v2; + $v2: ($v2 * $ratio); + } @else { + $v1: ($v1 * $ratio); + $value: $v1; + } + } + } + + @if $increment < 0 { + // adjust $v2 to just below $v1 + @if $double-stranded { + $v2: ($v2 / $ratio); + } + + @for $i from $increment through -1 { + @if $double-stranded and ($v1 / $ratio) < $v2 { + $value: $v2; + $v2: ($v2 / $ratio); + } @else { + $v1: ($v1 / $ratio); + $value: $v1; + } + } + } + + @return $value; +} diff --git a/_sass/vendor/bourbon/functions/_px-to-em.scss b/_sass/vendor/bourbon/functions/_px-to-em.scss new file mode 100644 index 00000000000..4832245e455 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_px-to-em.scss @@ -0,0 +1,13 @@ +// Convert pixels to ems +// eg. for a relational value of 12px write em(12) when the parent is 16px +// if the parent is another value say 24px write em(12, 24) + +@function em($pxval, $base: $em-base) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1em; +} diff --git a/_sass/vendor/bourbon/functions/_px-to-rem.scss b/_sass/vendor/bourbon/functions/_px-to-rem.scss new file mode 100644 index 00000000000..96b244e4cb1 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_px-to-rem.scss @@ -0,0 +1,15 @@ +// Convert pixels to rems +// eg. for a relational value of 12px write rem(12) +// Assumes $em-base is the font-size of + +@function rem($pxval) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + + $base: $em-base; + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1rem; +} diff --git a/_sass/vendor/bourbon/functions/_strip-units.scss b/_sass/vendor/bourbon/functions/_strip-units.scss new file mode 100644 index 00000000000..6afc6e601c0 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_strip-units.scss @@ -0,0 +1,5 @@ +// Srtips the units from a value. e.g. 12px -> 12 + +@function strip-units($val) { + @return ($val / ($val * 0 + 1)); +} diff --git a/_sass/vendor/bourbon/functions/_tint-shade.scss b/_sass/vendor/bourbon/functions/_tint-shade.scss new file mode 100644 index 00000000000..f7172004ac6 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_tint-shade.scss @@ -0,0 +1,9 @@ +// Add percentage of white to a color +@function tint($color, $percent){ + @return mix(white, $color, $percent); +} + +// Add percentage of black to a color +@function shade($color, $percent){ + @return mix(black, $color, $percent); +} diff --git a/_sass/vendor/bourbon/functions/_transition-property-name.scss b/_sass/vendor/bourbon/functions/_transition-property-name.scss new file mode 100644 index 00000000000..54cd4228112 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_transition-property-name.scss @@ -0,0 +1,22 @@ +// Return vendor-prefixed property names if appropriate +// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background +//************************************************************************// +@function transition-property-names($props, $vendor: false) { + $new-props: (); + + @each $prop in $props { + $new-props: append($new-props, transition-property-name($prop, $vendor), comma); + } + + @return $new-props; +} + +@function transition-property-name($prop, $vendor: false) { + // put other properties that need to be prefixed here aswell + @if $vendor and $prop == transform { + @return unquote('-'+$vendor+'-'+$prop); + } + @else { + @return $prop; + } +} \ No newline at end of file diff --git a/_sass/vendor/bourbon/functions/_unpack.scss b/_sass/vendor/bourbon/functions/_unpack.scss new file mode 100644 index 00000000000..377596365c8 --- /dev/null +++ b/_sass/vendor/bourbon/functions/_unpack.scss @@ -0,0 +1,17 @@ +// Convert shorthand to the 4-value syntax + +@function unpack($shorthand) { + @if length($shorthand) == 1 { + @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); + } + @else if length($shorthand) == 2 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); + } + @else if length($shorthand) == 3 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); + } + @else { + @return $shorthand; + } +} + diff --git a/_sass/vendor/bourbon/helpers/_convert-units.scss b/_sass/vendor/bourbon/helpers/_convert-units.scss new file mode 100644 index 00000000000..3443db397c2 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_convert-units.scss @@ -0,0 +1,15 @@ +//************************************************************************// +// Helper function for str-to-num fn. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _convert-units($number, $unit) { + $strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax', 'deg', 'rad', 'grad', 'turn'; + $units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax, 1deg, 1rad, 1grad, 1turn; + $index: index($strings, $unit); + + @if not $index { + @warn "Unknown unit `#{$unit}`."; + @return false; + } + @return $number * nth($units, $index); +} diff --git a/_sass/vendor/bourbon/helpers/_gradient-positions-parser.scss b/_sass/vendor/bourbon/helpers/_gradient-positions-parser.scss new file mode 100644 index 00000000000..07d30b6cf95 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_gradient-positions-parser.scss @@ -0,0 +1,13 @@ +@function _gradient-positions-parser($gradient-type, $gradient-positions) { + @if $gradient-positions + and ($gradient-type == linear) + and (type-of($gradient-positions) != color) { + $gradient-positions: _linear-positions-parser($gradient-positions); + } + @else if $gradient-positions + and ($gradient-type == radial) + and (type-of($gradient-positions) != color) { + $gradient-positions: _radial-positions-parser($gradient-positions); + } + @return $gradient-positions; +} diff --git a/_sass/vendor/bourbon/helpers/_is-num.scss b/_sass/vendor/bourbon/helpers/_is-num.scss new file mode 100644 index 00000000000..71459e1404a --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_is-num.scss @@ -0,0 +1,8 @@ +//************************************************************************// +// Helper for linear-gradient-parser +//************************************************************************// +@function _is-num($char) { + $values: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 0 1 2 3 4 5 6 7 8 9; + $index: index($values, $char); + @return if($index, true, false); +} diff --git a/_sass/vendor/bourbon/helpers/_linear-angle-parser.scss b/_sass/vendor/bourbon/helpers/_linear-angle-parser.scss new file mode 100644 index 00000000000..e0401ed8df1 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_linear-angle-parser.scss @@ -0,0 +1,25 @@ +// Private function for linear-gradient-parser +@function _linear-angle-parser($image, $first-val, $prefix, $suffix) { + $offset: null; + $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); + $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); + + @if ($unit-long == "grad") or + ($unit-long == "turn") { + $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); + } + + @else if ($unit-short == "deg") or + ($unit-short == "rad") { + $offset: if($unit-short == "deg", -90 * 3, 1.6rad); + } + + @if $offset { + $num: _str-to-num($first-val); + + @return ( + webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, + spec-image: $image + ); + } +} diff --git a/_sass/vendor/bourbon/helpers/_linear-gradient-parser.scss b/_sass/vendor/bourbon/helpers/_linear-gradient-parser.scss new file mode 100644 index 00000000000..12bcdcda8fd --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_linear-gradient-parser.scss @@ -0,0 +1,41 @@ +@function _linear-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 0, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $has-multiple-vals: str-index($first-val, " "); + $has-single-position: unquote(_position-flipper($first-val) + ""); + $has-angle: _is-num(str-slice($first-val, 0, 0)); + + @if $has-multiple-vals { + $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); + } + + @else if $has-single-position != "" { + $pos: unquote($has-single-position + ""); + + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } + + @else if $has-angle { + // Rotate degree for webkit + $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ); + } + + @return $gradients; +} diff --git a/_sass/vendor/bourbon/helpers/_linear-positions-parser.scss b/_sass/vendor/bourbon/helpers/_linear-positions-parser.scss new file mode 100644 index 00000000000..d26383edce1 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_linear-positions-parser.scss @@ -0,0 +1,61 @@ +@function _linear-positions-parser($pos) { + $type: type-of(nth($pos, 1)); + $spec: null; + $degree: null; + $side: null; + $corner: null; + $length: length($pos); + // Parse Side and corner positions + @if ($length > 1) { + @if nth($pos, 1) == "to" { // Newer syntax + $side: nth($pos, 2); + + @if $length == 2 { // eg. to top + // Swap for backwards compatability + $degree: _position-flipper(nth($pos, 2)); + } + @else if $length == 3 { // eg. to top left + $corner: nth($pos, 3); + } + } + @else if $length == 2 { // Older syntax ("top left") + $side: _position-flipper(nth($pos, 1)); + $corner: _position-flipper(nth($pos, 2)); + } + + @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + $spec: to $side $corner; + } + @else if $length == 1 { + // Swap for backwards compatability + @if $type == string { + $degree: $pos; + $spec: to _position-flipper($pos); + } + @else { + $degree: -270 - $pos; //rotate the gradient opposite from spec + $spec: $pos; + } + } + $degree: unquote($degree + ","); + $spec: unquote($spec + ","); + @return $degree $spec; +} + +@function _position-flipper($pos) { + @return if($pos == left, right, null) + if($pos == right, left, null) + if($pos == top, bottom, null) + if($pos == bottom, top, null); +} diff --git a/_sass/vendor/bourbon/helpers/_linear-side-corner-parser.scss b/_sass/vendor/bourbon/helpers/_linear-side-corner-parser.scss new file mode 100644 index 00000000000..86ad88fbb7d --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_linear-side-corner-parser.scss @@ -0,0 +1,31 @@ +// Private function for linear-gradient-parser +@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { + $val-1: str-slice($first-val, 0, $has-multiple-vals - 1 ); + $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); + $val-3: null; + $has-val-3: str-index($val-2, " "); + + @if $has-val-3 { + $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); + $val-2: str-slice($val-2, 0, $has-val-3 - 1); + } + + $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); + $pos: unquote($pos + ""); + + // Use old spec for webkit + @if $val-1 == "to" { + @return ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + // Bring the code up to spec + @else { + @return ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } +} diff --git a/_sass/vendor/bourbon/helpers/_radial-arg-parser.scss b/_sass/vendor/bourbon/helpers/_radial-arg-parser.scss new file mode 100644 index 00000000000..a3a3704af5e --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_radial-arg-parser.scss @@ -0,0 +1,69 @@ +@function _radial-arg-parser($G1, $G2, $pos, $shape-size) { + @each $value in $G1, $G2 { + $first-val: nth($value, 1); + $pos-type: type-of($first-val); + $spec-at-index: null; + + // Determine if spec was passed to mixin + @if type-of($value) == list { + $spec-at-index: if(index($value, at), index($value, at), false); + } + @if $spec-at-index { + @if $spec-at-index > 1 { + @for $i from 1 through ($spec-at-index - 1) { + $shape-size: $shape-size nth($value, $i); + } + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + @else if $spec-at-index == 1 { + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + $G1: null; + } + + // If not spec calculate correct values + @else { + @if ($pos-type != color) or ($first-val != "transparent") { + @if ($pos-type == number) + or ($first-val == "center") + or ($first-val == "top") + or ($first-val == "right") + or ($first-val == "bottom") + or ($first-val == "left") { + + $pos: $value; + + @if $pos == $G1 { + $G1: null; + } + } + + @else if + ($first-val == "ellipse") + or ($first-val == "circle") + or ($first-val == "closest-side") + or ($first-val == "closest-corner") + or ($first-val == "farthest-side") + or ($first-val == "farthest-corner") + or ($first-val == "contain") + or ($first-val == "cover") { + + $shape-size: $value; + + @if $value == $G1 { + $G1: null; + } + + @else if $value == $G2 { + $G2: null; + } + } + } + } + } + @return $G1, $G2, $pos, $shape-size; +} diff --git a/_sass/vendor/bourbon/helpers/_radial-gradient-parser.scss b/_sass/vendor/bourbon/helpers/_radial-gradient-parser.scss new file mode 100644 index 00000000000..6dde50f0640 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_radial-gradient-parser.scss @@ -0,0 +1,50 @@ +@function _radial-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 0, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $is-spec-syntax: str-index($first-val, "at"); + + @if $is-spec-syntax and $is-spec-syntax > 1 { + $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + $pos: append($pos, $keyword, comma); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ) + } + + @else if $is-spec-syntax == 1 { + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ) + } + + @else if str-index($image, "cover") or str-index($image, "contain") { + @warn "Radial-gradient needs to be updated to conform to latest spec."; + + $gradients: ( + webkit-image: null, + spec-image: $image + ) + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ) + } + + @return $gradients; +} diff --git a/_sass/vendor/bourbon/helpers/_radial-positions-parser.scss b/_sass/vendor/bourbon/helpers/_radial-positions-parser.scss new file mode 100644 index 00000000000..6a5b4777781 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_radial-positions-parser.scss @@ -0,0 +1,18 @@ +@function _radial-positions-parser($gradient-pos) { + $shape-size: nth($gradient-pos, 1); + $pos: nth($gradient-pos, 2); + $shape-size-spec: _shape-size-stripper($shape-size); + + $pre-spec: unquote(if($pos, "#{$pos}, ", null)) + unquote(if($shape-size, "#{$shape-size},", null)); + $pos-spec: if($pos, "at #{$pos}", null); + + $spec: "#{$shape-size-spec} #{$pos-spec}"; + + // Add comma + @if ($spec != ' ') { + $spec: "#{$spec}," + } + + @return $pre-spec $spec; +} diff --git a/_sass/vendor/bourbon/helpers/_render-gradients.scss b/_sass/vendor/bourbon/helpers/_render-gradients.scss new file mode 100644 index 00000000000..5765676838d --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_render-gradients.scss @@ -0,0 +1,26 @@ +// User for linear and radial gradients within background-image or border-image properties + +@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { + $pre-spec: null; + $spec: null; + $vendor-gradients: null; + @if $gradient-type == linear { + @if $gradient-positions { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + } + @else if $gradient-type == radial { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + + @if $vendor { + $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); + } + @else if $vendor == false { + $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; + $vendor-gradients: unquote($vendor-gradients); + } + @return $vendor-gradients; +} diff --git a/_sass/vendor/bourbon/helpers/_shape-size-stripper.scss b/_sass/vendor/bourbon/helpers/_shape-size-stripper.scss new file mode 100644 index 00000000000..ee5eda42205 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_shape-size-stripper.scss @@ -0,0 +1,10 @@ +@function _shape-size-stripper($shape-size) { + $shape-size-spec: null; + @each $value in $shape-size { + @if ($value == "cover") or ($value == "contain") { + $value: null; + } + $shape-size-spec: "#{$shape-size-spec} #{$value}"; + } + @return $shape-size-spec; +} diff --git a/_sass/vendor/bourbon/helpers/_str-to-num.scss b/_sass/vendor/bourbon/helpers/_str-to-num.scss new file mode 100644 index 00000000000..b3d616824d3 --- /dev/null +++ b/_sass/vendor/bourbon/helpers/_str-to-num.scss @@ -0,0 +1,50 @@ +//************************************************************************// +// Helper function for linear/radial-gradient-parsers. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _str-to-num($string) { + // Matrices + $strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9'; + $numbers: 0 1 2 3 4 5 6 7 8 9; + + // Result + $result: 0; + $divider: 0; + $minus: false; + + // Looping through all characters + @for $i from 1 through str-length($string) { + $character: str-slice($string, $i, $i); + $index: index($strings, $character); + + @if $character == '-' { + $minus: true; + } + + @else if $character == '.' { + $divider: 1; + } + + @else { + @if not $index { + $result: if($minus, $result * -1, $result); + @return _convert-units($result, str-slice($string, $i)); + } + + $number: nth($numbers, $index); + + @if $divider == 0 { + $result: $result * 10; + } + + @else { + // Move the decimal dot to the left + $divider: $divider * 10; + $number: $number / $divider; + } + + $result: $result + $number; + } + } + @return if($minus, $result * -1, $result); +} diff --git a/_sass/vendor/bourbon/settings/_prefixer.scss b/_sass/vendor/bourbon/settings/_prefixer.scss new file mode 100644 index 00000000000..ecab49fb542 --- /dev/null +++ b/_sass/vendor/bourbon/settings/_prefixer.scss @@ -0,0 +1,6 @@ +// Variable settings for /addons/prefixer.scss +$prefix-for-webkit: true !default; +$prefix-for-mozilla: true !default; +$prefix-for-microsoft: true !default; +$prefix-for-opera: true !default; +$prefix-for-spec: true !default; // required for keyframe mixin diff --git a/_sass/vendor/bourbon/settings/_px-to-em.scss b/_sass/vendor/bourbon/settings/_px-to-em.scss new file mode 100644 index 00000000000..f2f9a3e8dee --- /dev/null +++ b/_sass/vendor/bourbon/settings/_px-to-em.scss @@ -0,0 +1 @@ +$em-base: 16px !default; diff --git a/_sass/vendor/font-awesome/_animated.scss b/_sass/vendor/font-awesome/_animated.scss new file mode 100644 index 00000000000..8a020dbfff7 --- /dev/null +++ b/_sass/vendor/font-awesome/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/_sass/vendor/font-awesome/_bordered-pulled.scss b/_sass/vendor/font-awesome/_bordered-pulled.scss index 9d3fdf3a0b4..d4b85a02f24 100644 --- a/_sass/vendor/font-awesome/_bordered-pulled.scss +++ b/_sass/vendor/font-awesome/_bordered-pulled.scss @@ -7,6 +7,15 @@ border-radius: .1em; } +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } diff --git a/_sass/vendor/font-awesome/_core.scss b/_sass/vendor/font-awesome/_core.scss index 861ccd9dcb8..7425ef85fc8 100644 --- a/_sass/vendor/font-awesome/_core.scss +++ b/_sass/vendor/font-awesome/_core.scss @@ -3,10 +3,10 @@ .#{$fa-css-prefix} { display: inline-block; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - line-height: 1; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + } diff --git a/_sass/vendor/font-awesome/_icons.scss b/_sass/vendor/font-awesome/_icons.scss index efb44359773..6f9375989a3 100644 --- a/_sass/vendor/font-awesome/_icons.scss +++ b/_sass/vendor/font-awesome/_icons.scss @@ -14,6 +14,8 @@ .#{$fa-css-prefix}-th:before { content: $fa-var-th; } .#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } .#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, .#{$fa-css-prefix}-times:before { content: $fa-var-times; } .#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } .#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } @@ -129,7 +131,8 @@ .#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } .#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } .#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } -.#{$fa-css-prefix}-bar-chart-o:before { content: $fa-var-bar-chart-o; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } .#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } .#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } .#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } @@ -155,10 +158,12 @@ .#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } .#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } .#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, .#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } .#{$fa-css-prefix}-github:before { content: $fa-var-github; } .#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } .#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, .#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } .#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } .#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } @@ -394,7 +399,8 @@ .#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } .#{$fa-css-prefix}-female:before { content: $fa-var-female; } .#{$fa-css-prefix}-male:before { content: $fa-var-male; } -.#{$fa-css-prefix}-gittip:before { content: $fa-var-gittip; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } .#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } .#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } .#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } @@ -432,7 +438,6 @@ .#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } .#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } .#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper-square:before, .#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } .#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } .#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } @@ -477,6 +482,7 @@ .#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } .#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } .#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, .#{$fa-css-prefix}-life-saver:before, .#{$fa-css-prefix}-support:before, .#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } @@ -487,6 +493,8 @@ .#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } .#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } .#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, .#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } .#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } .#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } @@ -504,3 +512,186 @@ .#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } .#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } .#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$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-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; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } diff --git a/_sass/vendor/font-awesome/_mixins.scss b/_sass/vendor/font-awesome/_mixins.scss index 3354e6953ef..f96719b6a03 100644 --- a/_sass/vendor/font-awesome/_mixins.scss +++ b/_sass/vendor/font-awesome/_mixins.scss @@ -1,20 +1,26 @@ // Mixins // -------------------------- +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + @mixin fa-icon-rotate($degrees, $rotation) { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); -webkit-transform: rotate($degrees); - -moz-transform: rotate($degrees); -ms-transform: rotate($degrees); - -o-transform: rotate($degrees); transform: rotate($degrees); } @mixin fa-icon-flip($horiz, $vert, $rotation) { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); -webkit-transform: scale($horiz, $vert); - -moz-transform: scale($horiz, $vert); -ms-transform: scale($horiz, $vert); - -o-transform: scale($horiz, $vert); transform: scale($horiz, $vert); } diff --git a/_sass/vendor/font-awesome/_path.scss b/_sass/vendor/font-awesome/_path.scss index fd21c3515e3..bb457c23a8e 100644 --- a/_sass/vendor/font-awesome/_path.scss +++ b/_sass/vendor/font-awesome/_path.scss @@ -5,10 +5,11 @@ font-family: 'FontAwesome'; src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); - //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; } diff --git a/_sass/vendor/font-awesome/_rotated-flipped.scss b/_sass/vendor/font-awesome/_rotated-flipped.scss index 343fa5507b8..a3558fd09ca 100644 --- a/_sass/vendor/font-awesome/_rotated-flipped.scss +++ b/_sass/vendor/font-awesome/_rotated-flipped.scss @@ -7,3 +7,14 @@ .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/_sass/vendor/font-awesome/_spinning.scss b/_sass/vendor/font-awesome/_spinning.scss deleted file mode 100644 index c3787446300..00000000000 --- a/_sass/vendor/font-awesome/_spinning.scss +++ /dev/null @@ -1,32 +0,0 @@ -// Spinning Icons -// -------------------------- - -.#{$fa-css-prefix}-spin { - -webkit-animation: spin 2s infinite linear; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -@-moz-keyframes spin { - 0% { -moz-transform: rotate(0deg); } - 100% { -moz-transform: rotate(359deg); } -} -@-webkit-keyframes spin { - 0% { -webkit-transform: rotate(0deg); } - 100% { -webkit-transform: rotate(359deg); } -} -@-o-keyframes spin { - 0% { -o-transform: rotate(0deg); } - 100% { -o-transform: rotate(359deg); } -} -@keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/_sass/vendor/font-awesome/_variables.scss b/_sass/vendor/font-awesome/_variables.scss index ac2b5051b09..0a471102c4f 100644 --- a/_sass/vendor/font-awesome/_variables.scss +++ b/_sass/vendor/font-awesome/_variables.scss @@ -2,22 +2,27 @@ // -------------------------- $fa-font-path: "../fonts" !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.1.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.5.0/fonts" !default; // for referencing Bootstrap CDN font files directly $fa-css-prefix: fa !default; -$fa-version: "4.1.0" !default; +$fa-version: "4.5.0" !default; $fa-border-color: #eee !default; $fa-inverse: #fff !default; $fa-li-width: (30em / 14) !default; +$fa-var-500px: "\f26e"; $fa-var-adjust: "\f042"; $fa-var-adn: "\f170"; $fa-var-align-center: "\f037"; $fa-var-align-justify: "\f039"; $fa-var-align-left: "\f036"; $fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; $fa-var-ambulance: "\f0f9"; $fa-var-anchor: "\f13d"; $fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; $fa-var-angle-double-down: "\f103"; $fa-var-angle-double-left: "\f100"; $fa-var-angle-double-right: "\f101"; @@ -28,6 +33,7 @@ $fa-var-angle-right: "\f105"; $fa-var-angle-up: "\f106"; $fa-var-apple: "\f179"; $fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; $fa-var-arrow-circle-down: "\f0ab"; $fa-var-arrow-circle-left: "\f0a8"; $fa-var-arrow-circle-o-down: "\f01a"; @@ -45,21 +51,43 @@ $fa-var-arrows-alt: "\f0b2"; $fa-var-arrows-h: "\f07e"; $fa-var-arrows-v: "\f07d"; $fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; $fa-var-automobile: "\f1b9"; $fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; $fa-var-ban: "\f05e"; $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-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; $fa-var-beer: "\f0fc"; $fa-var-behance: "\f1b4"; $fa-var-behance-square: "\f1b5"; $fa-var-bell: "\f0f3"; $fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; $fa-var-bitbucket: "\f171"; $fa-var-bitbucket-square: "\f172"; $fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; $fa-var-bold: "\f032"; $fa-var-bolt: "\f0e7"; $fa-var-bomb: "\f1e2"; @@ -73,9 +101,16 @@ $fa-var-building: "\f1ad"; $fa-var-building-o: "\f0f7"; $fa-var-bullhorn: "\f0a1"; $fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; $fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; $fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; $fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; $fa-var-camera: "\f030"; $fa-var-camera-retro: "\f083"; $fa-var-car: "\f1b9"; @@ -87,6 +122,17 @@ $fa-var-caret-square-o-left: "\f191"; $fa-var-caret-square-o-right: "\f152"; $fa-var-caret-square-o-up: "\f151"; $fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; $fa-var-certificate: "\f0a3"; $fa-var-chain: "\f0c1"; $fa-var-chain-broken: "\f127"; @@ -104,12 +150,15 @@ $fa-var-chevron-left: "\f053"; $fa-var-chevron-right: "\f054"; $fa-var-chevron-up: "\f077"; $fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; $fa-var-circle: "\f111"; $fa-var-circle-o: "\f10c"; $fa-var-circle-o-notch: "\f1ce"; $fa-var-circle-thin: "\f1db"; $fa-var-clipboard: "\f0ea"; $fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; $fa-var-cloud: "\f0c2"; $fa-var-cloud-download: "\f0ed"; $fa-var-cloud-upload: "\f0ee"; @@ -117,18 +166,26 @@ $fa-var-cny: "\f157"; $fa-var-code: "\f121"; $fa-var-code-fork: "\f126"; $fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; $fa-var-coffee: "\f0f4"; $fa-var-cog: "\f013"; $fa-var-cogs: "\f085"; $fa-var-columns: "\f0db"; $fa-var-comment: "\f075"; $fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; $fa-var-comments: "\f086"; $fa-var-comments-o: "\f0e6"; $fa-var-compass: "\f14e"; $fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; $fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; $fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; $fa-var-crop: "\f125"; $fa-var-crosshairs: "\f05b"; $fa-var-css3: "\f13c"; @@ -137,11 +194,13 @@ $fa-var-cubes: "\f1b3"; $fa-var-cut: "\f0c4"; $fa-var-cutlery: "\f0f5"; $fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; $fa-var-database: "\f1c0"; $fa-var-dedent: "\f03b"; $fa-var-delicious: "\f1a5"; $fa-var-desktop: "\f108"; $fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; $fa-var-digg: "\f1a6"; $fa-var-dollar: "\f155"; $fa-var-dot-circle-o: "\f192"; @@ -149,6 +208,7 @@ $fa-var-download: "\f019"; $fa-var-dribbble: "\f17d"; $fa-var-dropbox: "\f16b"; $fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; $fa-var-edit: "\f044"; $fa-var-eject: "\f052"; $fa-var-ellipsis-h: "\f141"; @@ -165,15 +225,20 @@ $fa-var-exclamation: "\f12a"; $fa-var-exclamation-circle: "\f06a"; $fa-var-exclamation-triangle: "\f071"; $fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; $fa-var-external-link: "\f08e"; $fa-var-external-link-square: "\f14c"; $fa-var-eye: "\f06e"; $fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; $fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; $fa-var-facebook-square: "\f082"; $fa-var-fast-backward: "\f049"; $fa-var-fast-forward: "\f050"; $fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; $fa-var-female: "\f182"; $fa-var-fighter-jet: "\f0fb"; $fa-var-file: "\f15b"; @@ -199,6 +264,7 @@ $fa-var-film: "\f008"; $fa-var-filter: "\f0b0"; $fa-var-fire: "\f06d"; $fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; $fa-var-flag: "\f024"; $fa-var-flag-checkered: "\f11e"; $fa-var-flag-o: "\f11d"; @@ -211,15 +277,23 @@ $fa-var-folder-o: "\f114"; $fa-var-folder-open: "\f07c"; $fa-var-folder-open-o: "\f115"; $fa-var-font: "\f031"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; $fa-var-forward: "\f04e"; $fa-var-foursquare: "\f180"; $fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; $fa-var-gamepad: "\f11b"; $fa-var-gavel: "\f0e3"; $fa-var-gbp: "\f154"; $fa-var-ge: "\f1d1"; $fa-var-gear: "\f013"; $fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; $fa-var-gift: "\f06b"; $fa-var-git: "\f1d3"; $fa-var-git-square: "\f1d2"; @@ -232,31 +306,60 @@ $fa-var-globe: "\f0ac"; $fa-var-google: "\f1a0"; $fa-var-google-plus: "\f0d5"; $fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; $fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; $fa-var-group: "\f0c0"; $fa-var-h-square: "\f0fd"; $fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; $fa-var-hand-o-down: "\f0a7"; $fa-var-hand-o-left: "\f0a5"; $fa-var-hand-o-right: "\f0a4"; $fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$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-hashtag: "\f292"; $fa-var-hdd-o: "\f0a0"; $fa-var-header: "\f1dc"; $fa-var-headphones: "\f025"; $fa-var-heart: "\f004"; $fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; $fa-var-history: "\f1da"; $fa-var-home: "\f015"; $fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; $fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-ils: "\f20b"; $fa-var-image: "\f03e"; $fa-var-inbox: "\f01c"; $fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; $fa-var-info: "\f129"; $fa-var-info-circle: "\f05a"; $fa-var-inr: "\f156"; $fa-var-instagram: "\f16d"; $fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; $fa-var-italic: "\f033"; $fa-var-joomla: "\f1aa"; $fa-var-jpy: "\f157"; @@ -266,15 +369,20 @@ $fa-var-keyboard-o: "\f11c"; $fa-var-krw: "\f159"; $fa-var-language: "\f1ab"; $fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; $fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; $fa-var-legal: "\f0e3"; $fa-var-lemon-o: "\f094"; $fa-var-level-down: "\f149"; $fa-var-level-up: "\f148"; $fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; $fa-var-life-ring: "\f1cd"; $fa-var-life-saver: "\f1cd"; $fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; $fa-var-link: "\f0c1"; $fa-var-linkedin: "\f0e1"; $fa-var-linkedin-square: "\f08c"; @@ -295,55 +403,88 @@ $fa-var-mail-forward: "\f064"; $fa-var-mail-reply: "\f112"; $fa-var-mail-reply-all: "\f122"; $fa-var-male: "\f183"; +$fa-var-map: "\f279"; $fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; $fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; $fa-var-medkit: "\f0fa"; $fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; $fa-var-microphone: "\f130"; $fa-var-microphone-slash: "\f131"; $fa-var-minus: "\f068"; $fa-var-minus-circle: "\f056"; $fa-var-minus-square: "\f146"; $fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; $fa-var-mobile: "\f10b"; $fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; $fa-var-money: "\f0d6"; $fa-var-moon-o: "\f186"; $fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; $fa-var-music: "\f001"; $fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; $fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; $fa-var-outdent: "\f03b"; $fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; $fa-var-paper-plane: "\f1d8"; $fa-var-paper-plane-o: "\f1d9"; $fa-var-paperclip: "\f0c6"; $fa-var-paragraph: "\f1dd"; $fa-var-paste: "\f0ea"; $fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; $fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; $fa-var-pencil: "\f040"; $fa-var-pencil-square: "\f14b"; $fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; $fa-var-phone: "\f095"; $fa-var-phone-square: "\f098"; $fa-var-photo: "\f03e"; $fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; $fa-var-pied-piper: "\f1a7"; $fa-var-pied-piper-alt: "\f1a8"; -$fa-var-pied-piper-square: "\f1a7"; $fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; $fa-var-pinterest-square: "\f0d3"; $fa-var-plane: "\f072"; $fa-var-play: "\f04b"; $fa-var-play-circle: "\f144"; $fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; $fa-var-plus: "\f067"; $fa-var-plus-circle: "\f055"; $fa-var-plus-square: "\f0fe"; $fa-var-plus-square-o: "\f196"; $fa-var-power-off: "\f011"; $fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; $fa-var-puzzle-piece: "\f12e"; $fa-var-qq: "\f1d6"; $fa-var-qrcode: "\f029"; @@ -356,8 +497,11 @@ $fa-var-random: "\f074"; $fa-var-rebel: "\f1d0"; $fa-var-recycle: "\f1b8"; $fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; $fa-var-reddit-square: "\f1a2"; $fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; $fa-var-renren: "\f18b"; $fa-var-reorder: "\f0c9"; $fa-var-repeat: "\f01e"; @@ -375,28 +519,42 @@ $fa-var-rss-square: "\f143"; $fa-var-rub: "\f158"; $fa-var-ruble: "\f158"; $fa-var-rupee: "\f156"; +$fa-var-safari: "\f267"; $fa-var-save: "\f0c7"; $fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; $fa-var-search: "\f002"; $fa-var-search-minus: "\f010"; $fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; $fa-var-send: "\f1d8"; $fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; $fa-var-share: "\f064"; $fa-var-share-alt: "\f1e0"; $fa-var-share-alt-square: "\f1e1"; $fa-var-share-square: "\f14d"; $fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; $fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; $fa-var-shopping-cart: "\f07a"; $fa-var-sign-in: "\f090"; $fa-var-sign-out: "\f08b"; $fa-var-signal: "\f012"; +$fa-var-simplybuilt: "\f215"; $fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; $fa-var-skype: "\f17e"; $fa-var-slack: "\f198"; $fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; $fa-var-smile-o: "\f118"; +$fa-var-soccer-ball-o: "\f1e3"; $fa-var-sort: "\f0dc"; $fa-var-sort-alpha-asc: "\f15d"; $fa-var-sort-alpha-desc: "\f15e"; @@ -428,11 +586,17 @@ $fa-var-steam-square: "\f1b7"; $fa-var-step-backward: "\f048"; $fa-var-step-forward: "\f051"; $fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; $fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; $fa-var-strikethrough: "\f0cc"; $fa-var-stumbleupon: "\f1a4"; $fa-var-stumbleupon-circle: "\f1a3"; $fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; $fa-var-suitcase: "\f0f2"; $fa-var-sun-o: "\f185"; $fa-var-superscript: "\f12b"; @@ -444,6 +608,7 @@ $fa-var-tag: "\f02b"; $fa-var-tags: "\f02c"; $fa-var-tasks: "\f0ae"; $fa-var-taxi: "\f1ba"; +$fa-var-television: "\f26c"; $fa-var-tencent-weibo: "\f1d5"; $fa-var-terminal: "\f120"; $fa-var-text-height: "\f034"; @@ -463,17 +628,28 @@ $fa-var-times-circle-o: "\f05c"; $fa-var-tint: "\f043"; $fa-var-toggle-down: "\f150"; $fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; $fa-var-toggle-right: "\f152"; $fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; $fa-var-trash-o: "\f014"; $fa-var-tree: "\f1bb"; $fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; $fa-var-trophy: "\f091"; $fa-var-truck: "\f0d1"; $fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; $fa-var-tumblr: "\f173"; $fa-var-tumblr-square: "\f174"; $fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; $fa-var-twitter: "\f099"; $fa-var-twitter-square: "\f081"; $fa-var-umbrella: "\f0e9"; @@ -485,11 +661,20 @@ $fa-var-unlock: "\f09c"; $fa-var-unlock-alt: "\f13e"; $fa-var-unsorted: "\f0dc"; $fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; $fa-var-usd: "\f155"; $fa-var-user: "\f007"; $fa-var-user-md: "\f0f0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; $fa-var-users: "\f0c0"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; $fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; $fa-var-vimeo-square: "\f194"; $fa-var-vine: "\f1ca"; $fa-var-vk: "\f189"; @@ -500,14 +685,22 @@ $fa-var-warning: "\f071"; $fa-var-wechat: "\f1d7"; $fa-var-weibo: "\f18a"; $fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; $fa-var-wheelchair: "\f193"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; $fa-var-windows: "\f17a"; $fa-var-won: "\f159"; $fa-var-wordpress: "\f19a"; $fa-var-wrench: "\f0ad"; $fa-var-xing: "\f168"; $fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; $fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; $fa-var-yen: "\f157"; $fa-var-youtube: "\f167"; $fa-var-youtube-play: "\f16a"; diff --git a/_sass/vendor/font-awesome/font-awesome.scss b/_sass/vendor/font-awesome/font-awesome.scss index 2307dbda2b2..f4668a53c7f 100644 --- a/_sass/vendor/font-awesome/font-awesome.scss +++ b/_sass/vendor/font-awesome/font-awesome.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @@ -11,7 +11,7 @@ @import "fixed-width"; @import "list"; @import "bordered-pulled"; -@import "spinning"; +@import "animated"; @import "rotated-flipped"; @import "stacked"; @import "icons"; diff --git a/_sass/vendor/magnific-popup/_settings.scss b/_sass/vendor/magnific-popup/_settings.scss index 56bd6510a0f..3772c68ddaf 100644 --- a/_sass/vendor/magnific-popup/_settings.scss +++ b/_sass/vendor/magnific-popup/_settings.scss @@ -5,7 +5,7 @@ // overlay $mfp-overlay-color: $black; // Color of overlay screen $mfp-overlay-opacity: 0.8; // Opacity of overlay screen -$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6); // Shadow on image or iframe +$mfp-shadow: 0 0 0 rgba(0, 0, 0, 0); // Shadow on image or iframe // spacing $mfp-popup-padding-left: 8px; // Padding from left and from right side @@ -32,7 +32,7 @@ $mfp-iframe-ratio: 9/16; // Ratio of if // Image-type options $mfp-include-image-type: true; // Enable Image-type popups -$mfp-image-background: #444 !default; +$mfp-image-background: transparent; $mfp-image-padding-top: 40px; // Image padding top $mfp-image-padding-bottom: 40px; // Image padding bottom $mfp-include-mobile-layout-for-image: true; // Removes paddings from top and bottom diff --git a/_sass/vendor/neat/_neat-helpers.scss b/_sass/vendor/neat/_neat-helpers.scss new file mode 100644 index 00000000000..e915c698b94 --- /dev/null +++ b/_sass/vendor/neat/_neat-helpers.scss @@ -0,0 +1,7 @@ +// Functions +@import "functions/private"; +@import "functions/new-breakpoint"; + +// Settings +@import "settings/grid"; +@import "settings/visual-grid"; diff --git a/_sass/vendor/neat/_neat.scss b/_sass/vendor/neat/_neat.scss new file mode 100644 index 00000000000..e93d636e6b6 --- /dev/null +++ b/_sass/vendor/neat/_neat.scss @@ -0,0 +1,21 @@ +// Bourbon Neat 1.6.0.pre +// MIT Licensed +// Copyright (c) 2012-2013 thoughtbot, inc. + +// Helpers +@import "neat-helpers"; + +// Grid +@import "grid/private"; +@import "grid/reset"; +@import "grid/grid"; +@import "grid/omega"; +@import "grid/outer-container"; +@import "grid/span-columns"; +@import "grid/row"; +@import "grid/shift"; +@import "grid/pad"; +@import "grid/fill-parent"; +@import "grid/media"; +@import "grid/to-deprecate"; +@import "grid/visual-grid"; diff --git a/_sass/vendor/neat/functions/_new-breakpoint.scss b/_sass/vendor/neat/functions/_new-breakpoint.scss new file mode 100644 index 00000000000..a89c9ce6bba --- /dev/null +++ b/_sass/vendor/neat/functions/_new-breakpoint.scss @@ -0,0 +1,16 @@ +@function new-breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { + + @if length($query) == 1 { + $query: $default-feature nth($query, 1) $total-columns; + } + + @else if length($query) % 2 == 0 { + $query: append($query, $total-columns); + } + + @if not belongs-to($query, $visual-grid-breakpoints) { + $visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global; + } + + @return $query; +} diff --git a/_sass/vendor/neat/functions/_private.scss b/_sass/vendor/neat/functions/_private.scss new file mode 100644 index 00000000000..6f03cfcc7c7 --- /dev/null +++ b/_sass/vendor/neat/functions/_private.scss @@ -0,0 +1,125 @@ +// Checks if a number is even +@function is-even($int) { + @if $int%2 == 0 { + @return true; + } + + @return false; +} + +// Checks if an element belongs to a list +@function belongs-to($tested-item, $list) { + @each $item in $list { + @if $item == $tested-item { + @return true; + } + } + + @return false; +} + +// Contains display value +@function contains-display-value($query) { + @if belongs-to(table, $query) or belongs-to(block, $query) or belongs-to(inline-block, $query) or belongs-to(inline, $query) { + @return true; + } + + @return false; +} + +// Parses the first argument of span-columns() +@function container-span($span: $span) { + @if length($span) == 3 { + $container-columns: nth($span, 3); + @return $container-columns; + } + + @else if length($span) == 2 { + $container-columns: nth($span, 2); + @return $container-columns; + } + + @else { + @return $grid-columns; + } +} + +@function container-shift($shift: $shift) { + $parent-columns: $grid-columns !global !default; + + @if length($shift) == 3 { + $container-columns: nth($shift, 3); + @return $container-columns; + } + + @else if length($shift) == 2 { + $container-columns: nth($shift, 2); + @return $container-columns; + } + + @else { + @return $parent-columns; + } +} + +// Generates a striped background +@function gradient-stops($grid-columns, $color: $visual-grid-color) { + $transparent: rgba(0,0,0,0); + + $column-width: flex-grid(1, $grid-columns); + $gutter-width: flex-gutter($grid-columns); + $column-offset: $column-width; + + $values: ($transparent 0, $color 0); + + @for $i from 1 to $grid-columns*2 { + @if is-even($i) { + $values: append($values, $transparent $column-offset, comma); + $values: append($values, $color $column-offset, comma); + $column-offset: $column-offset + $column-width; + } + + @else { + $values: append($values, $color $column-offset, comma); + $values: append($values, $transparent $column-offset, comma); + $column-offset: $column-offset + $gutter-width; + } + } + + @return $values; +} + +// Layout direction +@function get-direction($layout, $default) { + $direction: nil; + + @if $layout == LTR or $layout == RTL { + $direction: direction-from-layout($layout); + } @else { + $direction: direction-from-layout($default); + } + + @return $direction; +} + +@function direction-from-layout($layout) { + $direction: nil; + + @if $layout == LTR { + $direction: right; + } @else { + $direction: left; + } + + @return $direction; +} + +@function get-opposite-direction($direction) { + $opposite-direction: left; + + @if $direction == left { + $opposite-direction: right; + } + + @return $opposite-direction; +} diff --git a/_sass/vendor/neat/grid/_fill-parent.scss b/_sass/vendor/neat/grid/_fill-parent.scss new file mode 100644 index 00000000000..859c97790bf --- /dev/null +++ b/_sass/vendor/neat/grid/_fill-parent.scss @@ -0,0 +1,7 @@ +@mixin fill-parent() { + width: 100%; + + @if $border-box-sizing == false { + @include box-sizing(border-box); + } +} diff --git a/_sass/vendor/neat/grid/_grid.scss b/_sass/vendor/neat/grid/_grid.scss new file mode 100644 index 00000000000..e074b6c536c --- /dev/null +++ b/_sass/vendor/neat/grid/_grid.scss @@ -0,0 +1,5 @@ +@if $border-box-sizing == true { + * { + @include box-sizing(border-box); + } +} diff --git a/_sass/vendor/neat/grid/_media.scss b/_sass/vendor/neat/grid/_media.scss new file mode 100644 index 00000000000..bf27f70ee5c --- /dev/null +++ b/_sass/vendor/neat/grid/_media.scss @@ -0,0 +1,38 @@ +@mixin media($query:$feature $value $columns, $total-columns: $grid-columns) { + @if length($query) == 1 { + @media screen and ($default-feature: nth($query, 1)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns !global; + @content; + $grid-columns: $default-grid-columns !global; + } + } + + @else { + $loopTo: length($query); + $mediaQuery: 'screen and '; + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns !global; + + @if length($query) % 2 != 0 { + $grid-columns: nth($query, $loopTo) !global; + $loopTo: $loopTo - 1; + } + + $i: 1; + @while $i <= $loopTo { + $mediaQuery: $mediaQuery + '(' + nth($query, $i) + ': ' + nth($query, $i + 1) + ') '; + + @if ($i + 1) != $loopTo { + $mediaQuery: $mediaQuery + 'and '; + } + + $i: $i + 2; + } + + @media #{$mediaQuery} { + @content; + $grid-columns: $default-grid-columns !global; + } + } +} diff --git a/_sass/vendor/neat/grid/_omega.scss b/_sass/vendor/neat/grid/_omega.scss new file mode 100644 index 00000000000..c99ed6cf8a9 --- /dev/null +++ b/_sass/vendor/neat/grid/_omega.scss @@ -0,0 +1,61 @@ +// Remove last element gutter +@mixin omega($query: block, $direction: default) { + $table: if(belongs-to(table, $query), true, false); + $auto: if(belongs-to(auto, $query), true, false); + + @if $direction != default { + @warn "The omega mixin will no longer take a $direction argument. To change the layout direction, use row($direction) or set $default-layout-direction instead." + } @else { + $direction: get-direction($layout-direction, $default-layout-direction); + } + + @if $table { + @warn "The omega mixin no longer removes padding in table layouts." + } + + @if length($query) == 1 { + @if $auto { + &:last-child { + margin-#{$direction}: 0; + } + } + + @else if contains-display-value($query) and $table == false { + margin-#{$direction}: 0; + } + + @else { + @include nth-child($query, $direction); + } + } + + @else if length($query) == 2 { + @if $auto { + &:last-child { + margin-#{$direction}: 0; + } + } + + @else { + @include nth-child(nth($query, 1), $direction); + } + } + + @else { + @warn "Too many arguments passed to the omega() mixin." + } +} + +@mixin nth-child($query, $direction) { + $opposite-direction: get-opposite-direction($direction); + + &:nth-child(#{$query}) { + margin-#{$direction}: 0; + } + + @if type-of($query) == number { + &:nth-child(#{$query}+1) { + clear: $opposite-direction; + } + } +} diff --git a/_sass/vendor/neat/grid/_outer-container.scss b/_sass/vendor/neat/grid/_outer-container.scss new file mode 100644 index 00000000000..22c541f4553 --- /dev/null +++ b/_sass/vendor/neat/grid/_outer-container.scss @@ -0,0 +1,8 @@ +@mixin outer-container { + @include clearfix; + max-width: $max-width; + margin: { + left: auto; + right: auto; + } +} diff --git a/_sass/vendor/neat/grid/_pad.scss b/_sass/vendor/neat/grid/_pad.scss new file mode 100644 index 00000000000..3ef5d80e45b --- /dev/null +++ b/_sass/vendor/neat/grid/_pad.scss @@ -0,0 +1,8 @@ +@mixin pad($padding: flex-gutter()) { + $padding-list: null; + @each $value in $padding { + $value: if($value == 'default', flex-gutter(), $value); + $padding-list: join($padding-list, $value); + } + padding: $padding-list; +} diff --git a/_sass/vendor/neat/grid/_private.scss b/_sass/vendor/neat/grid/_private.scss new file mode 100644 index 00000000000..b1953368d7c --- /dev/null +++ b/_sass/vendor/neat/grid/_private.scss @@ -0,0 +1,43 @@ +$parent-columns: $grid-columns !default; +$fg-column: $column; +$fg-gutter: $gutter; +$fg-max-columns: $grid-columns; +$container-display-table: false !default; +$layout-direction: nil !default; + +@function flex-grid($columns, $container-columns: $fg-max-columns) { + $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($width / $container-width); +} + +@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($gutter / $container-width); +} + +@function grid-width($n) { + @return $n * $gw-column + ($n - 1) * $gw-gutter; +} + +@function get-parent-columns($columns) { + @if $columns != $grid-columns { + $parent-columns: $columns !global; + } @else { + $parent-columns: $grid-columns !global; + } + + @return $parent-columns; +} + +@function is-display-table($container-is-display-table, $display) { + $display-table: false; + + @if $container-is-display-table == true { + $display-table: true; + } @else if $display == table { + $display-table: true; + } + + @return $display-table; +} diff --git a/_sass/vendor/neat/grid/_reset.scss b/_sass/vendor/neat/grid/_reset.scss new file mode 100644 index 00000000000..496c4a775ba --- /dev/null +++ b/_sass/vendor/neat/grid/_reset.scss @@ -0,0 +1,12 @@ +@mixin reset-display { + $container-display-table: false !global; +} + +@mixin reset-layout-direction { + $layout-direction: $default-layout-direction !global; +} + +@mixin reset-all { + @include reset-display; + @include reset-layout-direction; +} diff --git a/_sass/vendor/neat/grid/_row.scss b/_sass/vendor/neat/grid/_row.scss new file mode 100644 index 00000000000..81da6d36a6c --- /dev/null +++ b/_sass/vendor/neat/grid/_row.scss @@ -0,0 +1,17 @@ +@mixin row($display: block, $direction: $default-layout-direction) { + @include clearfix; + $layout-direction: $direction !global; + + @if $display == table { + display: table; + @include fill-parent; + table-layout: fixed; + $container-display-table: true !global; + } + + @else { + display: block; + $container-display-table: false !global; + } +} + diff --git a/_sass/vendor/neat/grid/_shift.scss b/_sass/vendor/neat/grid/_shift.scss new file mode 100644 index 00000000000..1d27b9b77f9 --- /dev/null +++ b/_sass/vendor/neat/grid/_shift.scss @@ -0,0 +1,16 @@ +@mixin shift($n-columns: 1) { + @include shift-in-context($n-columns); +} + +@mixin shift-in-context($shift: $columns of $container-columns) { + $n-columns: nth($shift, 1); + $parent-columns: container-shift($shift) !global; + + $direction: get-direction($layout-direction, $default-layout-direction); + $opposite-direction: get-opposite-direction($direction); + + margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns); + + // Reset nesting context + $parent-columns: $grid-columns !global; +} diff --git a/_sass/vendor/neat/grid/_span-columns.scss b/_sass/vendor/neat/grid/_span-columns.scss new file mode 100644 index 00000000000..c79193d93cf --- /dev/null +++ b/_sass/vendor/neat/grid/_span-columns.scss @@ -0,0 +1,43 @@ +@mixin span-columns($span: $columns of $container-columns, $display: block) { + $columns: nth($span, 1); + $container-columns: container-span($span); + + // Set nesting context (used by shift()) + $parent-columns: get-parent-columns($container-columns) !global; + + $direction: get-direction($layout-direction, $default-layout-direction); + $opposite-direction: get-opposite-direction($direction); + + $display-table: is-display-table($container-display-table, $display); + + @if $display-table { + display: table-cell; + width: percentage($columns / $container-columns); + } @else { + float: #{$opposite-direction}; + + @if $display != no-display { + display: block; + } + + @if $display == collapse { + @warn "The 'collapse' argument will be deprecated. Use 'block-collapse' instead." + } + + @if $display == collapse or $display == block-collapse { + width: flex-grid($columns, $container-columns) + flex-gutter($container-columns); + + &:last-child { + width: flex-grid($columns, $container-columns); + } + + } @else { + margin-#{$direction}: flex-gutter($container-columns); + width: flex-grid($columns, $container-columns); + + &:last-child { + margin-#{$direction}: 0; + } + } + } +} diff --git a/_sass/vendor/neat/grid/_to-deprecate.scss b/_sass/vendor/neat/grid/_to-deprecate.scss new file mode 100644 index 00000000000..d0a681fd12e --- /dev/null +++ b/_sass/vendor/neat/grid/_to-deprecate.scss @@ -0,0 +1,57 @@ +@mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) { + @warn "The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump."; + + @if length($query) == 1 { + @media screen and ($default-feature: nth($query, 1)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns; + @content; + $grid-columns: $default-grid-columns; + } + } + + @else if length($query) == 2 { + @media screen and (nth($query, 1): nth($query, 2)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns; + @content; + $grid-columns: $default-grid-columns; + } + } + + @else if length($query) == 3 { + @media screen and (nth($query, 1): nth($query, 2)) { + $default-grid-columns: $grid-columns; + $grid-columns: nth($query, 3); + @content; + $grid-columns: $default-grid-columns; + } + } + + @else if length($query) == 4 { + @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { + $default-grid-columns: $grid-columns; + $grid-columns: $total-columns; + @content; + $grid-columns: $default-grid-columns; + } + } + + @else if length($query) == 5 { + @media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) { + $default-grid-columns: $grid-columns; + $grid-columns: nth($query, 5); + @content; + $grid-columns: $default-grid-columns; + } + } + + @else { + @warn "Wrong number of arguments for breakpoint(). Read the documentation for more details."; + } +} + +@mixin nth-omega($nth, $display: block, $direction: default) { + @warn "The nth-omega() mixin is deprecated. Please use omega() instead."; + @include omega($nth $display, $direction); +} diff --git a/_sass/vendor/neat/grid/_visual-grid.scss b/_sass/vendor/neat/grid/_visual-grid.scss new file mode 100644 index 00000000000..1c822fd3220 --- /dev/null +++ b/_sass/vendor/neat/grid/_visual-grid.scss @@ -0,0 +1,41 @@ +@mixin grid-column-gradient($values...) { + background-image: deprecated-webkit-gradient(linear, left top, left bottom, $values); + background-image: -webkit-linear-gradient(left, $values); + background-image: -moz-linear-gradient(left, $values); + background-image: -ms-linear-gradient(left, $values); + background-image: -o-linear-gradient(left, $values); + background-image: unquote("linear-gradient(left, #{$values})"); +} + +@if $visual-grid == true or $visual-grid == yes { + body:before { + content: ''; + display: inline-block; + @include grid-column-gradient(gradient-stops($grid-columns)); + height: 100%; + left: 0; + margin: 0 auto; + max-width: $max-width; + opacity: $visual-grid-opacity; + position: fixed; + right: 0; + width: 100%; + pointer-events: none; + + @if $visual-grid-index == back { + z-index: -1; + } + + @else if $visual-grid-index == front { + z-index: 9999; + } + + @each $breakpoint in $visual-grid-breakpoints { + @if $breakpoint != nil { + @include media($breakpoint) { + @include grid-column-gradient(gradient-stops($grid-columns)); + } + } + } + } +} diff --git a/_sass/vendor/neat/settings/_grid.scss b/_sass/vendor/neat/settings/_grid.scss new file mode 100644 index 00000000000..f1dcda47804 --- /dev/null +++ b/_sass/vendor/neat/settings/_grid.scss @@ -0,0 +1,7 @@ +$column: golden-ratio(1em, 3) !default; // Column width +$gutter: golden-ratio(1em, 1) !default; // Gutter between each two columns +$grid-columns: 12 !default; // Total number of columns in the grid +$max-width: em(1088) !default; // Max-width of the outer container +$border-box-sizing: true !default; // Makes all elements have a border-box layout +$default-feature: min-width; // Default @media feature for the breakpoint() mixin +$default-layout-direction: LTR !default; diff --git a/_sass/vendor/neat/settings/_visual-grid.scss b/_sass/vendor/neat/settings/_visual-grid.scss new file mode 100644 index 00000000000..611c2b37274 --- /dev/null +++ b/_sass/vendor/neat/settings/_visual-grid.scss @@ -0,0 +1,5 @@ +$visual-grid: false !default; // Display the base grid +$visual-grid-color: #EEE !default; +$visual-grid-index: back !default; // Show grid behind content (back) or overlay it over the content (front) +$visual-grid-opacity: 0.4 !default; +$visual-grid-breakpoints: () !default; diff --git a/_templates/archive b/_templates/archive deleted file mode 100644 index 82bab0017e7..00000000000 --- a/_templates/archive +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: post-index -title: {{ title }} -permalink: -modified: -excerpt: -image: - feature: ---- \ No newline at end of file diff --git a/_templates/page b/_templates/page deleted file mode 100644 index 54646cbad28..00000000000 --- a/_templates/page +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: {{ layout }} -title: {{ title }} -date: {{ date }} -modified: -excerpt: -image: - feature: ---- diff --git a/_templates/post b/_templates/post deleted file mode 100644 index 009e333b572..00000000000 --- a/_templates/post +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: {{ layout }} -title: {{ title }} -modified: -categories: {{ dir }} -excerpt: -tags: [] -image: - feature: ---- diff --git a/about/index.md b/about/index.md index 752d131daf4..55f07ec4c18 100644 --- a/about/index.md +++ b/about/index.md @@ -3,7 +3,6 @@ layout: page title: Jesse Stuart excerpt: "Software engineer experienced in natural language processing, machine learning, and full-stack web development" modified: 2014-08-08T19:44:38.564948-04:00 - ---
    @@ -14,6 +13,6 @@ modified: 2014-08-08T19:44:38.564948-04:00

    I'm a software engineer experienced in natural language processing, machine learning, and full-stack web development.

    Want to chat? Hit me up.

    - - - \ No newline at end of file + + + diff --git a/articles/index.md b/articles/index.md index 6b3e48fa889..55239dc2326 100644 --- a/articles/index.md +++ b/articles/index.md @@ -2,10 +2,11 @@ layout: page title: Sample Articles excerpt: "An archive of articles sorted by date." +search_omit: true --- diff --git a/assets/css/main.scss b/assets/css/main.scss index 9f7c8116af3..17f2c399b0e 100644 --- a/assets/css/main.scss +++ b/assets/css/main.scss @@ -11,17 +11,45 @@ sitemap: false * */ -// Partials @import "variables"; -@import "grid"; + +/* + Vendor + ========================================================================== */ + +@import "vendor/bourbon/bourbon"; /* Bourbon mixins (bourbon.io) */ +@import "grid-settings"; /* Bourbon Neat settings */ +@import "vendor/neat/neat"; /* Bourbon Neat grid mixins (neat.bourbon.io) */ +@import "vendor/font-awesome/font-awesome"; /* Font Awesome icons */ +@import "vendor/magnific-popup/magnific-popup"; /* Magnific Popup lightbox */ + +/* + Global + ========================================================================== */ + @import "mixins"; @import "reset"; -@import "site"; -@import "typography"; -@import "pygments"; -@import "coderay"; -@import "elements"; +@import "base"; + +/* + Components + ========================================================================== */ + +@import "helpers"; +@import "buttons"; +@import "wells"; +@import "syntax"; @import "forms"; -@import "page"; -@import "vendor/font-awesome/font-awesome"; -@import "vendor/magnific-popup/magnific-popup"; \ No newline at end of file +@import "notices"; /* notices and alerts */ +@import "animations"; +@import "masthead"; +@import "navigation"; +@import "search"; +@import "footer"; + +/* + Page specific + ========================================================================== */ + +@import "page"; /* layout and styles that apply to posts and pages */ +@import "archives"; /* archive pages (post/tag lists, etc) */ diff --git a/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf index 3461e3fce6a..3ed7f8b48ad 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 6cfd5660956..9b6afaedc0f 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 a9f84695031..d05688e9e28 100644 --- a/assets/fonts/fontawesome-webfont.svg +++ b/assets/fonts/fontawesome-webfont.svg @@ -32,473 +32,624 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf index 5cd6cff6d6f..26dea7951a7 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 9eaecb37996..dc35ce3c2cf 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 new file mode 100644 index 00000000000..500e5172534 Binary files /dev/null and b/assets/fonts/fontawesome-webfont.woff2 differ diff --git a/assets/js/_main.js b/assets/js/_main.js index 5d8dcccca19..7394903367a 100644 --- a/assets/js/_main.js +++ b/assets/js/_main.js @@ -3,7 +3,7 @@ // Responsive Nav var navigation = responsiveNav("#site-nav", { // Selector: The ID of the wrapper animate: true, // Boolean: Use CSS3 transitions, true or false - transition: 400, // Integer: Speed of the transition, in milliseconds + transition: 200, // Integer: Speed of the transition, in milliseconds label: " Menu", // String: Label for the navigation toggle insert: "before", // String: Insert the toggle before or after the navigation customToggle: "", // Selector: Specify the ID of a custom toggle @@ -16,7 +16,9 @@ var navigation = responsiveNav("#site-nav", { // Selector: The ID of the wrapper $('html').click(function() { //Hide the menus if visible - navigation.toggle(); + if ($(navigation.wrapper).hasClass('opened')) { + navigation.toggle(); + } }); $('#site-nav').click(function(event){ @@ -49,4 +51,4 @@ $(document).ready(function() { // make it unique to apply your CSS animations just to this exact popup mainClass: 'mfp-fade' }); -}); \ No newline at end of file +}); diff --git a/assets/js/plugins/search.js b/assets/js/plugins/search.js new file mode 100644 index 00000000000..0c6e4f3a995 --- /dev/null +++ b/assets/js/plugins/search.js @@ -0,0 +1,200 @@ +/** + * A simple JSON search + * Requires jQuery (v 1.7+) + * + * @author Mat Hayward - Erskine Design + * @version 0.1 + */ + + + /* ========================================================================== + Initialisation + ========================================================================== */ + +var q, jsonFeedUrl = "/search.json", + $searchForm = "[data-search-form]", + $searchInput = $("[data-search-input]"), + $resultTemplate = $("#search-result"), + $resultsPlaceholder = $("[data-search-results]"), + $foundContainer = $("[data-search-found]"), + $foundTerm = $("[data-search-found-term]"), + $foundCount = $("[data-search-found-count]"), + allowEmpty = true, + showLoader = true, + loadingClass = "is--loading"; + + +$(document).ready( function() { + + // hide items found string + $foundContainer.hide(); + + // initiate search functionality + initSearch(); +}); + + + + + /* ========================================================================== + Search functions + ========================================================================== */ + + +/** + * Initiate search functionality. + * Shows results based on querystring if present. + * Binds search function to form submission. + */ +function initSearch() { + + // Get search results if q parameter is set in querystring + if (getParameterByName('q')) { + q = decodeURIComponent(getParameterByName('q')); + $searchInput.val(q); + execSearch(q); + } + + // Get search results on submission of form + $(document).on("submit", $searchForm, function(e) { + e.preventDefault(); + q = $searchInput.val(); + execSearch(q); + }); +} + + +/** + * Executes search + * @param {String} q + * @return null + */ +function execSearch(q) { + if (q != '' || allowEmpty) { + if (showLoader) { + toggleLoadingClass(); + } + + getSearchResults(processData()); + } +} + + +/** + * Toggles loading class on results and found string + * @return null + */ +function toggleLoadingClass() { + $resultsPlaceholder.toggleClass(loadingClass); + $foundContainer.toggleClass(loadingClass); +} + + +/** + * Get Search results from JSON + * @param {Function} callbackFunction + * @return null + */ +function getSearchResults(callbackFunction) { + $.get(BASE_URL + jsonFeedUrl, callbackFunction, 'json'); +} + + +/** + * Process search result data + * @return null + */ +function processData() { + $results = []; + + return function(data) { + + var resultsCount = 0, + results = ""; + + $.each(data, function(index, item) { + // check if search term is in content or title + if (item.excerpt.toLowerCase().indexOf(q.toLowerCase()) > -1 || item.title.toLowerCase().indexOf(q.toLowerCase()) > -1) { + var result = populateResultContent($resultTemplate.html(), item); + resultsCount++; + results += result; + } + }); + + if (showLoader) { + toggleLoadingClass(); + } + + populateResultsString(resultsCount); + showSearchResults(results); + } +} + + +/** + * Add search results to placeholder + * @param {String} results + * @return null + */ +function showSearchResults(results) { + // Add results HTML to placeholder + $resultsPlaceholder.html(results); +} + + +/** + * Add results content to item template + * @param {String} html + * @param {object} item + * @return {String} Populated HTML + */ +function populateResultContent(html, item) { + html = injectContent(html, item.title, '##Title##'); + html = injectContent(html, item.link, '##Url##'); + html = injectContent(html, item.excerpt, '##Excerpt##'); + html = injectContent(html, item.date, '##Date##'); + return html; +} + + +/** + * Populates results string + * @param {String} count + * @return null + */ +function populateResultsString(count) { + $foundTerm.text(q); + $foundCount.text(count); + $foundContainer.show(); +} + + + + + /* ========================================================================== + Helper functions + ========================================================================== */ + + +/** + * Gets query string parameter - taken from http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript + * @param {String} name + * @return {String} parameter value + */ +function getParameterByName(name) { + var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search); + return match && decodeURIComponent(match[1].replace(/\+/g, ' ')); +} + + +/** + * Injects content into template using placeholder + * @param {String} originalContent + * @param {String} injection + * @param {String} placeholder + * @return {String} injected content + */ +function injectContent(originalContent, injection, placeholder) { + var regex = new RegExp(placeholder, 'g'); + return originalContent.replace(regex, injection); +} diff --git a/assets/js/plugins/simpleJekyllSearch.js b/assets/js/plugins/simpleJekyllSearch.js deleted file mode 100644 index 8c394e7878c..00000000000 --- a/assets/js/plugins/simpleJekyllSearch.js +++ /dev/null @@ -1,96 +0,0 @@ -/*global jQuery */ -/*! -* Simple Jekyll Search -* Christian Fei - https://github.com/christian-fei/Simple-Jekyll-Search * -* -*/ - -(function($) { - $.fn.simpleJekyllSearch = function(options) { - var settings = $.extend({ - jsonFile : '/search.json', - jsonFormat : 'title,category,desc,url,date,shortdate', - template : '{title}', - searchResults : '.results', - searchResultsTitle : '

    Search results

    ', - limit : '10', - noResults : '

    Oh shucks
    Nothing found :(

    ' - }, options); - - var properties = settings.jsonFormat.split(','); - - var jsonData = [], - origThis = this, - searchResults = $(settings.searchResults); - - if(settings.jsonFile.length && searchResults.length){ - $.ajax({ - type: "GET", - url: settings.jsonFile, - dataType: 'json', - success: function(data, textStatus, jqXHR) { - jsonData = data; - registerEvent(); - }, - error: function(x,y,z) { - console.log("***ERROR in simpleJekyllSearch.js***"); - console.log(x); - console.log(y); - console.log(z); - // x.responseText should have what's wrong - } - }); - } - - - function registerEvent(){ - origThis.keyup(function(e){ - if($(this).val().length){ - writeMatches( performSearch($(this).val()) ); - }else{ - clearSearchResults(); - } - }); - } - - function performSearch(str){ - var matches = []; - - $.each(jsonData,function(i,entry){ - for(var i=0;i 1){ - matches.push(entry); - i=properties.length; - } - }); - return matches; - - } - - function writeMatches(m){ - clearSearchResults(); - searchResults.append( $(settings.searchResultsTitle) ); - - if(m.length){ - $.each(m,function(i,entry){ - if(i.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}";d.className="fit-vids-style",d.id="fit-vids-style",d.style.display="none",d.innerHTML=f,e.parentNode.insertBefore(d,e)}return b&&a.extend(c,b),this.each(function(){var b=["iframe[src*='player.vimeo.com']","iframe[src*='youtube.com']","iframe[src*='youtube-nocookie.com']","iframe[src*='kickstarter.com'][src*='video.html']","object","embed"];c.customSelector&&b.push(c.customSelector);var d=a(this).find(b.join(","));d=d.not("object object"),d.each(function(){var b=a(this);if(!("embed"===this.tagName.toLowerCase()&&b.parent("object").length||b.parent(".fluid-width-video-wrapper").length)){var c="object"===this.tagName.toLowerCase()||b.attr("height")&&!isNaN(parseInt(b.attr("height"),10))?parseInt(b.attr("height"),10):b.height(),d=isNaN(parseInt(b.attr("width"),10))?b.width():parseInt(b.attr("width"),10),e=c/d;if(!b.attr("id")){var f="fitvid"+Math.floor(999999*Math.random());b.attr("id",f)}b.wrap('
    ').parent(".fluid-width-video-wrapper").css("padding-top",100*e+"%"),b.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto),function(a){var b,c,d,e,f,g,h,i="Close",j="BeforeClose",k="AfterClose",l="BeforeAppend",m="MarkupParse",n="Open",o="Change",p="mfp",q="."+p,r="mfp-ready",s="mfp-removing",t="mfp-prevent-close",u=function(){},v=!!window.jQuery,w=a(window),x=function(a,c){b.ev.on(p+a+q,c)},y=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},z=function(c,d){b.ev.triggerHandler(p+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},A=function(c){return c===h&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),h=c),b.currTemplate.closeBtn},B=function(){a.magnificPopup.instance||(b=new u,b.init(),a.magnificPopup.instance=b)},C=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};u.prototype={constructor:u,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=C(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),e=a(document),b.popupsCache={}},open:function(c){d||(d=a(document.body));var f;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var h,i=c.items;for(f=0;f(a||w.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),z(m,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(q+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith(''):d.attr(e[1],c)}}else b.find(q+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.id="mfp-sbm",a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:u.prototype,modules:[],open:function(b,c){return B(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){B();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=v?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),v?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var D,E,F,G="inline",H=function(){F&&(E.after(F.addClass(D)).detach(),F=null)};a.magnificPopup.registerModule(G,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(G),x(i+"."+G,function(){H()})},getInline:function(c,d){if(H(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(E||(D=e.hiddenClass,E=y(D),D="mfp-"+D),F=f.after(E).detach().removeClass(D)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("
    ");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var I,J="ajax",K=function(){I&&d.removeClass(I)},L=function(){K(),b.req&&b.req.abort()};a.magnificPopup.registerModule(J,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){b.types.push(J),I=b.st.ajax.cursor,x(i+"."+J,L),x("BeforeChange."+J,L)},getAjax:function(c){I&&d.addClass(I),b.updateStatus("loading");var e=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};z("ParseAjax",g),b.appendContent(a(g.data),J),c.finished=!0,K(),b._setFocus(),setTimeout(function(){b.wrap.addClass(r)},16),b.updateStatus("ready"),z("AjaxContentAdded")},error:function(){K(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(e),""}}});var M,N=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'
    ',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var a=b.st.image,c=".image";b.types.push("image"),x(n+c,function(){"image"===b.currItem.type&&a.cursor&&d.addClass(a.cursor)}),x(i+c,function(){a.cursor&&d.removeClass(a.cursor),w.off("resize"+q)}),x("Resize"+c,b.resizeImage),b.isLowIE&&x("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,M&&clearInterval(M),a.isCheckingImgSize=!1,z("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){M&&clearInterval(M),M=setInterval(function(){return d.naturalWidth>0?(b._onImageHasSize(a),void 0):(c>200&&clearInterval(M),c++,3===c?e(10):40===c?e(50):100===c&&e(500),void 0)},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,z("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:N(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(M&&clearInterval(M),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var O,P=function(){return void 0===O&&(O=void 0!==document.createElement("p").style.MozTransform),O};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,h=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};x("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return k(),void 0;f=h(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,z("ZoomAnimationEnded")},16)},g)},16)}}),x(j+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=h(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),x(i+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(v?d.innerHeight():d[0].offsetHeight)-g-f};return P()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var Q="iframe",R="//about:blank",S=function(a){if(b.currTemplate[Q]){var c=b.currTemplate[Q].find("iframe");c.length&&(a||(c[0].src=R),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(Q,{options:{markup:'
    ',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(){b.types.push(Q),x("BeforeChange",function(a,b,c){b!==c&&(b===Q?S():c===Q&&S(!0))}),x(i+"."+Q,function(){S()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var T=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},U=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.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 c=b.st.gallery,d=".mfp-gallery",f=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(g+=" mfp-gallery",x(n+d,function(){c.navigateByImgClick&&b.wrap.on("click"+d,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),e.on("keydown"+d,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),x("UpdateStatus"+d,function(a,c){c.text&&(c.text=U(c.text,b.currItem.index,b.items.length))}),x(m+d,function(a,d,e,f){var g=b.items.length;e.counter=g>1?U(c.tCounter,f.index,g):""}),x("BuildControls"+d,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(t),g=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(t),h=f?"mfpFastClick":"click";e[h](function(){b.prev()}),g[h](function(){b.next()}),b.isIE7&&(y("b",e[0],!1,!0),y("a",e[0],!1,!0),y("b",g[0],!1,!0),y("a",g[0],!1,!0)),b.container.append(e.add(g))}}),x(o+d,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),x(i+d,function(){e.off(d),b.wrap.off("click"+d),b.arrowLeft&&f&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null}),void 0):!1},next:function(){b.direction=!0,b.index=T(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=T(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=T(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),z("LazyLoad",d),"image"===d.type&&(d.img=a('').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,z("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var V="retina";a.magnificPopup.registerModule(V,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(x("ImageHasSize."+V,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),x("ElementParse."+V,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){w.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,w.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&w.off("touchmove"+f+" touchend"+f)}}(),B()}(window.jQuery||window.Zepto),window.matchMedia=window.matchMedia||function(a){"use strict";var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(document),function(a){"use strict";function b(){v(!0)}var c={};if(a.respond=c,c.update=function(){},c.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var d,e,f,g=a.document,h=g.documentElement,i=[],j=[],k=[],l={},m=30,n=g.getElementsByTagName("head")[0]||h,o=g.getElementsByTagName("base")[0],p=n.getElementsByTagName("link"),q=[],r=function(){for(var b=0;bh;h++){var k,l,m,n;g?(k=c,j.push(f(a))):(k=d[h].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,j.push(RegExp.$2&&f(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],i.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:j.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},u=function(){var a,b=g.createElement("div"),c=g.body,d=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=d=g.createElement("body"),c.style.background="none"),c.appendChild(b),h.insertBefore(c,h.firstChild),a=b.offsetWidth,d?h.removeChild(c):c.removeChild(b),a=f=parseFloat(a)},v=function(b){var c="clientWidth",l=h[c],o="CSS1Compat"===g.compatMode&&l||g.body[c]||l,q={},r=p[p.length-1],s=(new Date).getTime();if(b&&d&&m>s-d)return a.clearTimeout(e),e=a.setTimeout(v,m),void 0;d=s;for(var t in i)if(i.hasOwnProperty(t)){var w=i[t],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?f||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?f||u():1)),w.hasquery&&(z&&A||!(z||o>=x)||!(A||y>=o))||(q[w.media]||(q[w.media]=[]),q[w.media].push(j[w.rules]))}for(var C in k)k.hasOwnProperty(C)&&k[C]&&k[C].parentNode===n&&n.removeChild(k[C]);for(var D in q)if(q.hasOwnProperty(D)){var E=g.createElement("style"),F=q[D].join("\n");E.type="text/css",E.media=D,n.insertBefore(E,r.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(g.createTextNode(F)),k.push(E)}},w=function(a,b){var c=x();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},x=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();r(),c.update=r,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);var responsiveNav=function(a,b){function c(a,b){return s||(s=new r(a,b)),s}var d=!!a.getComputedStyle;a.getComputedStyle||(a.getComputedStyle=function(a){return this.el=a,this.getPropertyValue=function(b){var c=/(\-([a-z]){1})/g;return"float"===b&&(b="styleFloat"),c.test(b)&&(b=b.replace(c,function(){return arguments[2].toUpperCase()})),a.currentStyle[b]?a.currentStyle[b]:null},this});var e,f,g,h=b.documentElement,i=b.getElementsByTagName("head")[0],j=b.createElement("style"),k=!1,l=function(a,b,c,d){if("addEventListener"in a)try{a.addEventListener(b,c,d)}catch(e){if("object"!=typeof c||!c.handleEvent)throw e;a.addEventListener(b,function(a){c.handleEvent.call(c,a)},d)}else"attachEvent"in a&&("object"==typeof c&&c.handleEvent?a.attachEvent("on"+b,function(){c.handleEvent.call(c)}):a.attachEvent("on"+b,c))},m=function(a,b,c,d){if("removeEventListener"in a)try{a.removeEventListener(b,c,d)}catch(e){if("object"!=typeof c||!c.handleEvent)throw e;a.removeEventListener(b,function(a){c.handleEvent.call(c,a)},d)}else"detachEvent"in a&&("object"==typeof c&&c.handleEvent?a.detachEvent("on"+b,function(){c.handleEvent.call(c)}):a.detachEvent("on"+b,c))},n=function(a){for(var b=a.firstChild;null!==b&&1!==b.nodeType;)b=b.nextSibling;return b},o=function(a,b){for(var c in b)a.setAttribute(c,b[c])},p=function(a,b){a.className+=" "+b,a.className=a.className.replace(/(^\s*)|(\s*$)/g,"")},q=function(a,b){var c=new RegExp("(\\s|^)"+b+"(\\s|$)");a.className=a.className.replace(c," ").replace(/(^\s*)|(\s*$)/g,"")},r=function(a,c){var d;this.options={animate:!0,transition:400,label:"Menu",insert:"after",customToggle:"",openPos:"relative",jsClass:"js",init:function(){},open:function(){},close:function(){}};for(d in c)this.options[d]=c[d];if(p(h,this.options.jsClass),this.wrapperEl=a.replace("#",""),!b.getElementById(this.wrapperEl))throw new Error("The nav element you are trying to select doesn't exist");this.wrapper=b.getElementById(this.wrapperEl),this.wrapper.inner=n(this.wrapper),f=this.options,e=this.wrapper,this._init(this)};r.prototype={destroy:function(){this._removeStyles(),q(e,"closed"),q(e,"opened"),e.removeAttribute("style"),e.removeAttribute("aria-hidden"),e=null,s=null,m(a,"load",this,!1),m(a,"resize",this,!1),m(g,"mousedown",this,!1),m(g,"touchstart",this,!1),m(g,"touchend",this,!1),m(g,"keyup",this,!1),m(g,"click",this,!1),f.customToggle?g.removeAttribute("aria-hidden"):g.parentNode.removeChild(g)},toggle:function(){k?(q(e,"opened"),p(e,"closed"),o(e,{"aria-hidden":"true"}),k=!1,f.close()):(q(e,"closed"),p(e,"opened"),e.style.position=f.openPos,o(e,{"aria-hidden":"false"}),k=!0,f.open())},handleEvent:function(b){var c=b||a.event;switch(c.type){case"mousedown":this._onmousedown(c);break;case"touchstart":this._ontouchstart(c);break;case"touchend":this._ontouchend(c);break;case"keyup":this._onkeyup(c);break;case"click":this._onclick(c);break;case"load":this._transitions(c),this._resize(c);break;case"resize":this._resize(c)}},_init:function(){p(e,"closed"),this._createToggle(),l(a,"load",this,!1),l(a,"resize",this,!1),l(g,"mousedown",this,!1),l(g,"touchstart",this,!1),l(g,"touchend",this,!1),l(g,"keyup",this,!1),l(g,"click",this,!1)},_createStyles:function(){j.parentNode||i.appendChild(j)},_removeStyles:function(){j.parentNode&&j.parentNode.removeChild(j)},_createToggle:function(){if(f.customToggle){var a=f.customToggle.replace("#","");if(!b.getElementById(a))throw new Error("The custom nav toggle you are trying to select doesn't exist");g=b.getElementById(a)}else{var c=b.createElement("a");c.innerHTML=f.label,o(c,{href:"#",id:"nav-toggle"}),"after"===f.insert?e.parentNode.insertBefore(c,e.nextSibling):e.parentNode.insertBefore(c,e),g=b.getElementById("nav-toggle")}},_preventDefault:function(a){a.preventDefault?(a.preventDefault(),a.stopPropagation()):a.returnValue=!1},_onmousedown:function(b){var c=b||a.event;3!==c.which&&2!==c.button&&(this._preventDefault(b),this.toggle(b))},_ontouchstart:function(a){g.onmousedown=null,this._preventDefault(a),this.toggle(a)},_ontouchend:function(){var a=this;e.addEventListener("click",a._preventDefault,!0),setTimeout(function(){e.removeEventListener("click",a._preventDefault,!0)},f.transition)},_onkeyup:function(b){var c=b||a.event;13===c.keyCode&&this.toggle(b)},_onclick:function(a){this._preventDefault(a)},_transitions:function(){if(f.animate){var a=e.style,b="max-height "+f.transition+"ms";a.WebkitTransition=b,a.MozTransition=b,a.OTransition=b,a.transition=b}},_calcHeight:function(){var a=e.inner.offsetHeight,b="#"+this.wrapperEl+".opened{max-height:"+a+"px}";d&&(j.innerHTML=b,b="")},_resize:function(){"none"!==a.getComputedStyle(g,null).getPropertyValue("display")?(o(g,{"aria-hidden":"false"}),e.className.match(/(^|\s)closed(\s|$)/)&&(o(e,{"aria-hidden":"true"}),e.style.position="absolute"),this._createStyles(),this._calcHeight()):(o(g,{"aria-hidden":"true"}),o(e,{"aria-hidden":"false"}),e.style.position=f.openPos,this._removeStyles()),f.init()}};var s;return c}(window,document);!function(a){a.fn.simpleJekyllSearch=function(b){function c(){j.keyup(function(){a(this).val().length?e(d(a(this).val())):f()})}function d(b){var c=[];return a.each(i,function(a,d){for(var a=0;a1&&(c.push(d),a=h.length)}),c}function e(b){f(),k.append(a(g.searchResultsTitle)),b.length?a.each(b,function(b,c){if(b{title}',searchResults:".results",searchResultsTitle:"

    Search results

    ",limit:"10",noResults:"

    Oh shucks
    Nothing found :(

    "},b),h=g.jsonFormat.split(","),i=[],j=this,k=a(g.searchResults);g.jsonFile.length&&k.length&&a.ajax({type:"GET",url:g.jsonFile,dataType:"json",success:function(a){i=a,c() -},error:function(a,b,c){console.log("***ERROR in simpleJekyllSearch.js***"),console.log(a),console.log(b),console.log(c)}})}}(jQuery);var navigation=responsiveNav("#site-nav",{animate:!0,transition:400,label:" Menu",insert:"before",customToggle:"",openPos:"relative",jsClass:"js",init:function(){},open:function(){},close:function(){}});$("html").click(function(){navigation.toggle()}),$("#site-nav").click(function(a){a.stopPropagation()}),$(function(){$("article").fitVids()}),$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"),$(document).ready(function(){$(".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:300,mainClass:"mfp-fade"})}); \ No newline at end of file +function initSearch(){getParameterByName("q")&&(q=decodeURIComponent(getParameterByName("q")),$searchInput.val(q),execSearch(q)),$(document).on("submit",$searchForm,function(a){a.preventDefault(),q=$searchInput.val(),execSearch(q)})}function execSearch(a){(""!=a||allowEmpty)&&(showLoader&&toggleLoadingClass(),getSearchResults(processData()))}function toggleLoadingClass(){$resultsPlaceholder.toggleClass(loadingClass),$foundContainer.toggleClass(loadingClass)}function getSearchResults(a){$.get(BASE_URL+jsonFeedUrl,a,"json")}function processData(){return $results=[],function(a){var b=0,c="";$.each(a,function(a,d){if(d.excerpt.toLowerCase().indexOf(q.toLowerCase())>-1||d.title.toLowerCase().indexOf(q.toLowerCase())>-1){var e=populateResultContent($resultTemplate.html(),d);b++,c+=e}}),showLoader&&toggleLoadingClass(),populateResultsString(b),showSearchResults(c)}}function showSearchResults(a){$resultsPlaceholder.html(a)}function populateResultContent(a,b){return a=injectContent(a,b.title,"##Title##"),a=injectContent(a,b.link,"##Url##"),a=injectContent(a,b.excerpt,"##Excerpt##"),a=injectContent(a,b.date,"##Date##")}function populateResultsString(a){$foundTerm.text(q),$foundCount.text(a),$foundContainer.show()}function getParameterByName(a){var b=RegExp("[?&]"+a+"=([^&]*)").exec(window.location.search);return b&&decodeURIComponent(b[1].replace(/\+/g," "))}function injectContent(a,b,c){var d=new RegExp(c,"g");return a.replace(d,b)}!function(a){"use strict";a.fn.fitVids=function(b){var c={customSelector:null};if(!document.getElementById("fit-vids-style")){var d=document.createElement("div"),e=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0],f="­";d.className="fit-vids-style",d.id="fit-vids-style",d.style.display="none",d.innerHTML=f,e.parentNode.insertBefore(d,e)}return b&&a.extend(c,b),this.each(function(){var b=["iframe[src*='player.vimeo.com']","iframe[src*='youtube.com']","iframe[src*='youtube-nocookie.com']","iframe[src*='kickstarter.com'][src*='video.html']","object","embed"];c.customSelector&&b.push(c.customSelector);var d=a(this).find(b.join(","));d=d.not("object object"),d.each(function(){var b=a(this);if(!("embed"===this.tagName.toLowerCase()&&b.parent("object").length||b.parent(".fluid-width-video-wrapper").length)){var c="object"===this.tagName.toLowerCase()||b.attr("height")&&!isNaN(parseInt(b.attr("height"),10))?parseInt(b.attr("height"),10):b.height(),d=isNaN(parseInt(b.attr("width"),10))?b.width():parseInt(b.attr("width"),10),e=c/d;if(!b.attr("id")){var f="fitvid"+Math.floor(999999*Math.random());b.attr("id",f)}b.wrap('
    ').parent(".fluid-width-video-wrapper").css("padding-top",100*e+"%"),b.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto),function(a){var b,c,d,e,f,g,h,i="Close",j="BeforeClose",k="AfterClose",l="BeforeAppend",m="MarkupParse",n="Open",o="Change",p="mfp",q="."+p,r="mfp-ready",s="mfp-removing",t="mfp-prevent-close",u=function(){},v=!!window.jQuery,w=a(window),x=function(a,c){b.ev.on(p+a+q,c)},y=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},z=function(c,d){b.ev.triggerHandler(p+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},A=function(c){return c===h&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),h=c),b.currTemplate.closeBtn},B=function(){a.magnificPopup.instance||(b=new u,b.init(),a.magnificPopup.instance=b)},C=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};u.prototype={constructor:u,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=C(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),e=a(document),b.popupsCache={}},open:function(c){d||(d=a(document.body));var f;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var h,i=c.items;for(f=0;f(a||w.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),z(m,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(q+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith(''):d.attr(e[1],c)}}else b.find(q+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.id="mfp-sbm",a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:u.prototype,modules:[],open:function(b,c){return B(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){B();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=v?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),v?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var D,E,F,G="inline",H=function(){F&&(E.after(F.addClass(D)).detach(),F=null)};a.magnificPopup.registerModule(G,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(G),x(i+"."+G,function(){H()})},getInline:function(c,d){if(H(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(E||(D=e.hiddenClass,E=y(D),D="mfp-"+D),F=f.after(E).detach().removeClass(D)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("
    ");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var I,J="ajax",K=function(){I&&d.removeClass(I)},L=function(){K(),b.req&&b.req.abort()};a.magnificPopup.registerModule(J,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){b.types.push(J),I=b.st.ajax.cursor,x(i+"."+J,L),x("BeforeChange."+J,L)},getAjax:function(c){I&&d.addClass(I),b.updateStatus("loading");var e=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};z("ParseAjax",g),b.appendContent(a(g.data),J),c.finished=!0,K(),b._setFocus(),setTimeout(function(){b.wrap.addClass(r)},16),b.updateStatus("ready"),z("AjaxContentAdded")},error:function(){K(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(e),""}}});var M,N=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'
    ',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var a=b.st.image,c=".image";b.types.push("image"),x(n+c,function(){"image"===b.currItem.type&&a.cursor&&d.addClass(a.cursor)}),x(i+c,function(){a.cursor&&d.removeClass(a.cursor),w.off("resize"+q)}),x("Resize"+c,b.resizeImage),b.isLowIE&&x("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,M&&clearInterval(M),a.isCheckingImgSize=!1,z("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){M&&clearInterval(M),M=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(M),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,z("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:N(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(M&&clearInterval(M),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var O,P=function(){return void 0===O&&(O=void 0!==document.createElement("p").style.MozTransform),O};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,h=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};x("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=h(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,z("ZoomAnimationEnded")},16)},g)},16)}}),x(j+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=h(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),x(i+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(v?d.innerHeight():d[0].offsetHeight)-g-f};return P()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var Q="iframe",R="//about:blank",S=function(a){if(b.currTemplate[Q]){var c=b.currTemplate[Q].find("iframe");c.length&&(a||(c[0].src=R),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(Q,{options:{markup:'
    ',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(){b.types.push(Q),x("BeforeChange",function(a,b,c){b!==c&&(b===Q?S():c===Q&&S(!0))}),x(i+"."+Q,function(){S()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var T=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},U=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.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 c=b.st.gallery,d=".mfp-gallery",f=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(g+=" mfp-gallery",x(n+d,function(){c.navigateByImgClick&&b.wrap.on("click"+d,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),e.on("keydown"+d,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),x("UpdateStatus"+d,function(a,c){c.text&&(c.text=U(c.text,b.currItem.index,b.items.length))}),x(m+d,function(a,d,e,f){var g=b.items.length;e.counter=g>1?U(c.tCounter,f.index,g):""}),x("BuildControls"+d,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(t),g=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(t),h=f?"mfpFastClick":"click";e[h](function(){b.prev()}),g[h](function(){b.next()}),b.isIE7&&(y("b",e[0],!1,!0),y("a",e[0],!1,!0),y("b",g[0],!1,!0),y("a",g[0],!1,!0)),b.container.append(e.add(g))}}),x(o+d,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void x(i+d,function(){e.off(d),b.wrap.off("click"+d),b.arrowLeft&&f&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=T(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=T(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=T(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),z("LazyLoad",d),"image"===d.type&&(d.img=a('').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,z("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var V="retina";a.magnificPopup.registerModule(V,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(x("ImageHasSize."+V,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),x("ElementParse."+V,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){w.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,w.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&w.off("touchmove"+f+" touchend"+f)}}(),B()}(window.jQuery||window.Zepto),window.matchMedia=window.matchMedia||function(a){"use strict";var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(document),function(a){"use strict";function b(){v(!0)}var c={};if(a.respond=c,c.update=function(){},c.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var d,e,f,g=a.document,h=g.documentElement,i=[],j=[],k=[],l={},m=30,n=g.getElementsByTagName("head")[0]||h,o=g.getElementsByTagName("base")[0],p=n.getElementsByTagName("link"),q=[],r=function(){for(var b=0;bh;h++){var k,l,m,n;g?(k=c,j.push(f(a))):(k=d[h].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,j.push(RegExp.$2&&f(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],i.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:j.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},u=function(){var a,b=g.createElement("div"),c=g.body,d=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=d=g.createElement("body"),c.style.background="none"),c.appendChild(b),h.insertBefore(c,h.firstChild),a=b.offsetWidth,d?h.removeChild(c):c.removeChild(b),a=f=parseFloat(a)},v=function(b){var c="clientWidth",l=h[c],o="CSS1Compat"===g.compatMode&&l||g.body[c]||l,q={},r=p[p.length-1],s=(new Date).getTime();if(b&&d&&m>s-d)return a.clearTimeout(e),void(e=a.setTimeout(v,m));d=s;for(var t in i)if(i.hasOwnProperty(t)){var w=i[t],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?f||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?f||u():1)),w.hasquery&&(z&&A||!(z||o>=x)||!(A||y>=o))||(q[w.media]||(q[w.media]=[]),q[w.media].push(j[w.rules]))}for(var C in k)k.hasOwnProperty(C)&&k[C]&&k[C].parentNode===n&&n.removeChild(k[C]);for(var D in q)if(q.hasOwnProperty(D)){var E=g.createElement("style"),F=q[D].join("\n");E.type="text/css",E.media=D,n.insertBefore(E,r.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(g.createTextNode(F)),k.push(E)}},w=function(a,b){var c=x();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},x=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();r(),c.update=r,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);var responsiveNav=function(a,b){function c(a,b){return s||(s=new r(a,b)),s}var d=!!a.getComputedStyle;a.getComputedStyle||(a.getComputedStyle=function(a){return this.el=a,this.getPropertyValue=function(b){var c=/(\-([a-z]){1})/g;return"float"===b&&(b="styleFloat"),c.test(b)&&(b=b.replace(c,function(){return arguments[2].toUpperCase()})),a.currentStyle[b]?a.currentStyle[b]:null},this});var e,f,g,h=b.documentElement,i=b.getElementsByTagName("head")[0],j=b.createElement("style"),k=!1,l=function(a,b,c,d){if("addEventListener"in a)try{a.addEventListener(b,c,d)}catch(e){if("object"!=typeof c||!c.handleEvent)throw e;a.addEventListener(b,function(a){c.handleEvent.call(c,a)},d)}else"attachEvent"in a&&("object"==typeof c&&c.handleEvent?a.attachEvent("on"+b,function(){c.handleEvent.call(c)}):a.attachEvent("on"+b,c))},m=function(a,b,c,d){if("removeEventListener"in a)try{a.removeEventListener(b,c,d)}catch(e){if("object"!=typeof c||!c.handleEvent)throw e;a.removeEventListener(b,function(a){c.handleEvent.call(c,a)},d)}else"detachEvent"in a&&("object"==typeof c&&c.handleEvent?a.detachEvent("on"+b,function(){c.handleEvent.call(c)}):a.detachEvent("on"+b,c))},n=function(a){for(var b=a.firstChild;null!==b&&1!==b.nodeType;)b=b.nextSibling;return b},o=function(a,b){for(var c in b)a.setAttribute(c,b[c])},p=function(a,b){a.className+=" "+b,a.className=a.className.replace(/(^\s*)|(\s*$)/g,"")},q=function(a,b){var c=new RegExp("(\\s|^)"+b+"(\\s|$)");a.className=a.className.replace(c," ").replace(/(^\s*)|(\s*$)/g,"")},r=function(a,c){var d;this.options={animate:!0,transition:400,label:"Menu",insert:"after",customToggle:"",openPos:"relative",jsClass:"js",init:function(){},open:function(){},close:function(){}};for(d in c)this.options[d]=c[d];if(p(h,this.options.jsClass),this.wrapperEl=a.replace("#",""),!b.getElementById(this.wrapperEl))throw new Error("The nav element you are trying to select doesn't exist");this.wrapper=b.getElementById(this.wrapperEl),this.wrapper.inner=n(this.wrapper),f=this.options,e=this.wrapper,this._init(this)};r.prototype={destroy:function(){this._removeStyles(),q(e,"closed"),q(e,"opened"),e.removeAttribute("style"),e.removeAttribute("aria-hidden"),e=null,s=null,m(a,"load",this,!1),m(a,"resize",this,!1),m(g,"mousedown",this,!1),m(g,"touchstart",this,!1),m(g,"touchend",this,!1),m(g,"keyup",this,!1),m(g,"click",this,!1),f.customToggle?g.removeAttribute("aria-hidden"):g.parentNode.removeChild(g)},toggle:function(){k?(q(e,"opened"),p(e,"closed"),o(e,{"aria-hidden":"true"}),k=!1,f.close()):(q(e,"closed"),p(e,"opened"),e.style.position=f.openPos,o(e,{"aria-hidden":"false"}),k=!0,f.open())},handleEvent:function(b){var c=b||a.event;switch(c.type){case"mousedown":this._onmousedown(c);break;case"touchstart":this._ontouchstart(c);break;case"touchend":this._ontouchend(c);break;case"keyup":this._onkeyup(c);break;case"click":this._onclick(c);break;case"load":this._transitions(c),this._resize(c);break;case"resize":this._resize(c)}},_init:function(){p(e,"closed"),this._createToggle(),l(a,"load",this,!1),l(a,"resize",this,!1),l(g,"mousedown",this,!1),l(g,"touchstart",this,!1),l(g,"touchend",this,!1),l(g,"keyup",this,!1),l(g,"click",this,!1)},_createStyles:function(){j.parentNode||i.appendChild(j)},_removeStyles:function(){j.parentNode&&j.parentNode.removeChild(j)},_createToggle:function(){if(f.customToggle){var a=f.customToggle.replace("#","");if(!b.getElementById(a))throw new Error("The custom nav toggle you are trying to select doesn't exist");g=b.getElementById(a)}else{var c=b.createElement("a");c.innerHTML=f.label,o(c,{href:"#",id:"nav-toggle"}),"after"===f.insert?e.parentNode.insertBefore(c,e.nextSibling):e.parentNode.insertBefore(c,e),g=b.getElementById("nav-toggle")}},_preventDefault:function(a){a.preventDefault?(a.preventDefault(),a.stopPropagation()):a.returnValue=!1},_onmousedown:function(b){var c=b||a.event;3!==c.which&&2!==c.button&&(this._preventDefault(b),this.toggle(b))},_ontouchstart:function(a){g.onmousedown=null,this._preventDefault(a),this.toggle(a)},_ontouchend:function(){var a=this;e.addEventListener("click",a._preventDefault,!0),setTimeout(function(){e.removeEventListener("click",a._preventDefault,!0)},f.transition)},_onkeyup:function(b){var c=b||a.event;13===c.keyCode&&this.toggle(b)},_onclick:function(a){this._preventDefault(a)},_transitions:function(){if(f.animate){var a=e.style,b="max-height "+f.transition+"ms";a.WebkitTransition=b,a.MozTransition=b,a.OTransition=b,a.transition=b}},_calcHeight:function(){var a=e.inner.offsetHeight,b="#"+this.wrapperEl+".opened{max-height:"+a+"px}"; +d&&(j.innerHTML=b,b="")},_resize:function(){"none"!==a.getComputedStyle(g,null).getPropertyValue("display")?(o(g,{"aria-hidden":"false"}),e.className.match(/(^|\s)closed(\s|$)/)&&(o(e,{"aria-hidden":"true"}),e.style.position="absolute"),this._createStyles(),this._calcHeight()):(o(g,{"aria-hidden":"true"}),o(e,{"aria-hidden":"false"}),e.style.position=f.openPos,this._removeStyles()),f.init()}};var s;return c}(window,document),q,jsonFeedUrl="/search.json",$searchForm="[data-search-form]",$searchInput=$("[data-search-input]"),$resultTemplate=$("#search-result"),$resultsPlaceholder=$("[data-search-results]"),$foundContainer=$("[data-search-found]"),$foundTerm=$("[data-search-found-term]"),$foundCount=$("[data-search-found-count]"),allowEmpty=!0,showLoader=!0,loadingClass="is--loading";$(document).ready(function(){$foundContainer.hide(),initSearch()});var navigation=responsiveNav("#site-nav",{animate:!0,transition:200,label:" Menu",insert:"before",customToggle:"",openPos:"relative",jsClass:"js",init:function(){},open:function(){},close:function(){}});$("html").click(function(){$(navigation.wrapper).hasClass("opened")&&navigation.toggle()}),$("#site-nav").click(function(a){a.stopPropagation()}),$(function(){$("article").fitVids()}),$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"),$(document).ready(function(){$(".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:300,mainClass:"mfp-fade"})}); \ No newline at end of file diff --git a/blog/index.md b/blog/index.md index 07107b0767c..80d2f6a90a6 100644 --- a/blog/index.md +++ b/blog/index.md @@ -2,10 +2,11 @@ layout: page title: Blog excerpt: "An archive of blog posts sorted by date." +search_omit: true --- diff --git a/images/michael-rose-photo.jpg b/images/michael-rose-photo.jpg new file mode 100644 index 00000000000..8108cbe91ed Binary files /dev/null and b/images/michael-rose-photo.jpg differ diff --git a/images/site-logo.psd b/images/site-logo.psd new file mode 100644 index 00000000000..18a2176ed18 Binary files /dev/null and b/images/site-logo.psd differ diff --git a/index.html b/index.html index 856d53d8fc3..11664f9de12 100644 --- a/index.html +++ b/index.html @@ -2,10 +2,11 @@ layout: page title: Latest Posts excerpt: "A simple and clean responsive Jekyll theme for words and photos." +search_omit: true --- \ No newline at end of file + diff --git a/search.json b/search.json index ca1542ca14e..d808ea80c0c 100644 --- a/search.json +++ b/search.json @@ -1,14 +1,25 @@ --- sitemap: false --- + [ - {% for post in site.posts %} - { - "title" : "{{ post.title | escape }}", - "category" : "{{ post.category }}", - "url" : "{{ site.url }}{{ post.url }}", - "date" : "{{ post.date }}", - "shortdate" : "{{ post.date | date: '%B %d, %Y' }}" - } {% if forloop.last %}{% else %},{% endif %} - {% endfor %} -] \ No newline at end of file +{% for post in site.posts %} + {% if post.title != null and post.title != empty and post.search_omit != true %} + {% if forloop.index > 1 %},{% endif %}{ + "title" : {{ post.title | jsonify }}, + "link" : "{{ site.url }}{{ post.url }}", + "excerpt" : "{{ post.excerpt | markdownify | strip_html | strip_newlines | escape_once | remove: '\[' | remove: '\]' | remove: '\(' | remove: '\)' }}" + } + {% endif %} +{% endfor %} + +{% for page in site.pages %} + {% if page.layout != 'none' and page.layout != 'none' and page.title != null and page.title != empty and page.search_omit != true %} + {% if forloop.index > 1 %},{% endif %}{ + "title" : {{ page.title | jsonify }}, + "link" : "{{ site.url }}{{ page.url | replace: 'index.html', '' }}", + "excerpt" : "{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}" + } + {%endif%} +{% endfor %} +] diff --git a/search/index.md b/search/index.md new file mode 100644 index 00000000000..541d7cb9a7b --- /dev/null +++ b/search/index.md @@ -0,0 +1,31 @@ +--- +layout: page +title: "Search" +date: +modified: +excerpt: +image: + feature: +search_omit: true +sitemap: false +--- + + + + + +
    + result(s) found for “”. +
    +
      + + + diff --git a/tags/index.md b/tags/index.md index 9a3c93f8b33..10ad08be701 100644 --- a/tags/index.md +++ b/tags/index.md @@ -2,6 +2,7 @@ layout: page title: Tag Index excerpt: "An archive of posts sorted by tag." +search_omit: true --- {% capture site_tags %}{% for tag in site.tags %}{{ tag | first }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %} diff --git a/theme-setup/index.md b/theme-setup/index.md deleted file mode 100644 index 182e618838a..00000000000 --- a/theme-setup/index.md +++ /dev/null @@ -1,323 +0,0 @@ ---- -layout: page -title: Theme Setup -excerpt: "Instructions on how to install and customize the Jekyll theme So Simple." -modified: 2014-08-08T20:04:41.231140-04:00 -image: - feature: so-simple-sample-image-6.jpg - credit: WeGraphics - creditlink: http://wegraphics.net/downloads/free-ultimate-blurred-background-pack/ ---- - -General notes and suggestions for customizing **So Simple Theme**. - -* Table of Contents -{:toc} - -## Installation - -So Simple now requires [Jekyll](http://jekyllrb.com/) 2.x. Make sure to run `gem update jekyll` if you aren't on the latest version or `gem install jekyll` if this is your first time installing it. - -If you are creating a new Jekyll site using So Simple follow these steps: - -1. Fork the [So Simple repo](http://github.com/mmistakes/so-simple-theme/fork). -2. Clone the repo you just forked and rename it. -3. [Install Bundler](http://bundler.io) `gem install bundler` and Run `bundle install` to install all dependencies (Jekyll, [Jekyll-Sitemap](https://github.com/jekyll/jekyll-sitemap), [Octopress](https://github.com/octopress/octopress), etc) -4. Update `config.yml`, add navigation, and replace demo posts and pages with your own. Full details below. - -If you want to use So Simple with an existing Jekyll site follow these steps: - -1. [Download So Simple](https://github.com/mmistakes/so-simple-theme/archive/master.zip) and unzip. -2. Rename `so-simple-theme-master` to something meaningful ie: `new-site` -3. Run `bundle install` to install all dependencies (Jekyll, [Jekyll-Sitemap](https://github.com/jekyll/jekyll-sitemap), [Octopress](https://github.com/octopress/octopress), etc) -4. Remove demo posts/pages and replace with your own posts, pages, and any other content you want to move over. -5. Update posts' and pages' YAML to match variables used by So Simple. Full details below. -6. Update `_config.yml` and add navigation links and additional author data if applicable. Full details below. - -**Pro-tip:** Delete the `gh-pages` branch after cloning and start fresh by branching off `master`. There is a bunch of garbage in `gh-pages` used for the theme's demo site that I'm guessing you won't want. -{: .notice} - ---- - -## Scaffolding - -How So Simple is organized and what the various files are. All posts, layouts, includes, stylesheets, assets, and whatever else is grouped nicely under the root folder. The compiled Jekyll site outputs to `_site/`. - -{% highlight text %} -so-simple-theme/ -├── _includes/ -| ├── browser-upgrade.html # prompt to install a modern browser for < IE9 -| ├── disqus_comments.html # Disqus comments script -| ├── footer.html # site footer -| ├── head.html # site head -| ├── navigation.html # site top navigation -| ├── open-graph.html # Twitter Cards and Open Graph meta data -| └── scripts.html # site scripts -| └── site-search.html # site search overlay -├── _layouts/ -| ├── page.html # single column page layout -| └── post.html # main content with sidebar for author/post details -├── _posts/ # MarkDown formatted posts -├── _sass/ # Sass stylesheets -├── _templates/ # used by Octopress to define YAML variables for new posts/pages -├── about/ # sample about page -├── articles/ # sample articles category page -├── assets/ -| ├── css/ # compiled stylesheets -| ├── fonts/ # webfonts -| ├── js/ -| | ├── _main.js # main JavaScript file, plugin settings, etc -| | ├── plugins/ # scripts and jQuery plugins to combine with _main.js -| | ├── scripts.min.js # concatenated and minified _main.js + plugin scripts -| | └── vendor/ # vendor scripts to leave alone and load as is -| └── less/ -├── blog/ # sample blog category page -├── images/ # images for posts and pages -├── 404.md # 404 page -├── feed.xml # Atom feed template -├── index.md # sample homepage. lists 5 latest posts -└── theme-setup/ # theme setup page. safe to remove -{% endhighlight %} - ---- - -## Site Setup - -A quick checklist of the files you'll want to edit to get up and running. - -### Site Wide Configuration - -`_config.yml` is your friend. Open it up and personalize it. Most variables are self explanatory but here's an explanation of each if needed: - -#### title - -The title of your site... shocker! - -Example `title: My Awesome Site` - -#### logo - -Your site's logo, appears in the header below the navigation bar and is used as a default image for Twitter Cards when a feature is not defined. Place in the `images` folder. - -#### url - -Used to generate absolute URLs for sitemaps, feeds and for generating canonical URLs in a page's ``. When developing locally either comment this out or use something like `http://localhost:4000` so all assets load properly. *Don't include a trailing `/`*. - -Examples: - -{% highlight yaml %} -url: http://mmistakes.github.io/so-simple-theme -url: http://localhost:4000 -url: http://mademistakes.com -url: -{% endhighlight %} - -#### Google Analytics and Webmaster Tools - -Google Analytics UA and Webmaster Tool verification tags can be entered under `owner` in `_config.yml`. For more information on obtaining these meta tags check [Google Webmaster Tools](http://support.google.com/webmasters/bin/answer.py?hl=en&answer=35179) and [Bing Webmaster Tools](https://ssl.bing.com/webmaster/configure/verify/ownership) support. - -### Navigation Links - -To set what links appear in the top navigation edit `_data/navigation.yml`. Use the following format to set the URL and title for as many links as you'd like. *External links will open in a new window.* - -{% highlight yaml %} -- title: Portfolio - url: /portfolio/ - -- title: Made Mistakes - url: http://mademistakes.com -{% endhighlight %} - ---- - -## Adding New Content - -Install the [Octopress](https://github.com/octopress/octopress) gem if it isn't already. - -{% highlight bash %} -$ gem install octopress --pre -{% endhighlight %} - -### New Post - -Default command - -{% highlight bash %} -$ octopress new post "Post Title" -{% endhighlight %} - -Default works great if you want all your posts in one directory, but if you're like me and want to group them into subfolders like `/posts`, `/portfolio`, etc. Then this is the command for you. By specifying the DIR it will create a new post in that folder and populate the `categories:` YAML with the same value. - -{% highlight bash %} -$ octopress new post "New Post Title" --dir posts -{% endhighlight %} - -### New Page - -To create a new page use the following command. - -{% highlight bash %} -$ octopress new page new-page/ -{% endhighlight %} - -This will create a page at `/new-page/index.md` - ---- - -## Layouts and Content - -Explanations of the various `_layouts` included with the theme and when to use them. - -### Post and Page - -These two layouts are very similar. Both have an author sidebar, allow for large feature images at the top, and optional Disqus comments. The only real difference is the post layout includes related posts at the end of the page. - -### Categories - -In the sample posts folder you may have noticed `categories: articles` in the YAML front matter. Categories can be used to group posts into sub-folders. If you decide to rename or add categories you will need to create new category index pages. - -For example. Say you want to group all your posts under blog/ instead of articles/. In your post add `category: blog` to the YAML front matter, rename or duplicate articles/index.md to blog/index.md and update the *for loop* to limit posts to just the blog category. - -{% highlight text %} -{% raw %} -{% for post in site.categories.blog %} -{% endraw %} -{% endhighlight %} - -If done correctly /blog/ should be a page index of only posts with a category of `blog`. - -### Feature Images - -A good rule of thumb is to keep feature images nice and wide so you don't push the body text too far down. An image cropped around around 1024 x 256 pixels will keep file size down with an acceptable resolution for most devices. If you want to serve these images responsively I'd suggest looking at the [Jekyll Picture Tag](https://github.com/robwierzbowski/jekyll-picture-tag) plugin[^plugins]. - -[^plugins]: If you're using GitHub Pages to host your site be aware that plugins are disabled. You'll need to build your site locally and then manually deploy if you want to use this sweet plugin. - -The post and page layouts make the assumption that the feature images live in the `images/` folder. To add a feature image to a post or page just include the filename in the front matter like so. - -{% highlight yaml %} -image: - feature: feature-image-filename.jpg - thumb: thumbnail-image.jpg #keep it square 200x200 px is good -{% endhighlight %} - -To add attribution to a feature image use the following YAML front matter on posts or pages. Image credits appear directly below the feature image with a link back to the original source if supplied. - -{% highlight yaml %} -image: - feature: feature-image-filename.jpg - credit: Michael Rose #name of the person or site you want to credit - creditlink: http://mademistakes.com #url to their site or licensing -{% endhighlight %} - -### Videos - -Video embeds are responsive and scale with the width of the main content block with the help of [FitVids](http://fitvidsjs.com/). - -Not sure if this only effects Kramdown or if it's an issue with Markdown in general. But adding YouTube video embeds causes errors when building your Jekyll site. To fix add a space between the ` -{% endhighlight %} - -### Link Post Type - -So Simple Theme supports **link posts**, made famous by John Gruber. To activate just add `link: http://url-you-want-linked` to the post's YAML front matter and you're done. Here's an [example of a link post]({{ site.url }}/articles/sample-link-post) if you need a visual. - -### Author Override - -By making use of data files you can assign different authors for each post. - -Start by modifying `authors.yml` file in the `_data` folder and add your authors using the following format. - -{% highlight yaml %} -# Authors - -billy_rick: - name: Billy Rick - web: http://thewhip.com - email: billy@rick.com - bio: "What do you want, jewels? I am a very extravagant man." - avatar: bio-photo-2.jpg - twitter: extravagantman - google: - plus: +BillyRick - -cornelius_fiddlebone: - name: Cornelius Fiddlebone - email: cornelius@thewhip.com - bio: "I ordered what?" - avatar: bio-photo.jpg - twitter: rhymeswithsackit - google: - plus: +CorneliusFiddlebone -{% endhighlight %} - -To assign Billy Rick as an author for our post. We'd add the following YAML front matter to a post: - -{% highlight yaml %} -author: billy_rick -{% endhighlight %} - ---- - -## Social Share Links - -To add Facebook, Twitter, and Google+ share links to a post add the following YAML front matter. - -{% highlight yaml %} -share: true -{% endhighlight %} - -Share links appear below author details in the sidebar. - ---- - -## Twitter Cards - -Feature and thumbnail images are used by [Open Graph](https://developers.facebook.com/docs/opengraph/) and [Twitter Cards](https://dev.twitter.com/docs/cards) as well. If you don't assign a thumbnail the site logo is used. - -Here's an example of a tweet with Twitter Cards enabled. - -![Twitter Card summary large image screenshot]({{ site.url }}/images/twitter-card-summary-large-image.jpg) - -**Pro-Tip**: You need to [apply for Twitter Cards](https://dev.twitter.com/docs/cards) before they will begin showing up when links to your site are shared. -{:.notice} - ---- - -## Simple Search - -Adding `search: true` to your `_config.yml` enables search using Christian Fei's [Simple Jekyll jQuery plugin](https://github.com/christian-fei/Simple-Jekyll-Search). Clicking the search link in the navigation bar will overlay a Search box that searches on post titles using an auto generated JSON file. - -
      - search screenshot -
      Search your site by post title
      -
      - ---- - -## Further Customization - -Jekyll 2.x added support for Sass files making it much easier to modify a theme's fonts and colors. By editing values found in `_sass/variables.scss` you can fine tune the site's colors and typography. - -For example if you wanted a red background instead of white you'd change `$body-color: #ebebeb;` to `$body-color: $cc0033;`. - -To modify the site's JavaScript files I setup a Grunt build script to lint/concatenate/minify all scripts into `scripts.min.js`. [Install Node.js](http://nodejs.org/), then [install Grunt](http://gruntjs.com/getting-started), and then finally install the dependencies for the theme contained in `package.json`: - -{% highlight bash %} -npm install -{% endhighlight %} - -From the theme's root, run `grunt` to concatenate JavaScript files, and optimize all .jpg, .png, and .svg files in the `images/` folder. You can also use `grunt dev` in combination with `jekyll build --watch` to watch for updates JS files that Grunt will then automatically re-build as you write your code which will in turn auto-generate your Jekyll site when developing locally. - ---- - -## Questions? - -Found a bug or aren't quite sure how something works? By all means Ping me on Twitter [@mmistakes](http://twitter.com/mmistakes) or [file a GitHub Issue](https://github.com/mmistakes/so-simple-theme/issues/new). And if you make something cool with this theme feel free to let me know. - ---- - -## License - -This theme is free and open source software, distributed under the MIT License. So feel free to use this Jekyll theme on your site without linking back to me or including a disclaimer. \ No newline at end of file