From 74a81f556194846d6105ff56b4c091c0a35b19e6 Mon Sep 17 00:00:00 2001 From: Tom Hodson Date: Sat, 6 Mar 2021 10:10:25 +0100 Subject: [PATCH] copy in academic pages template --- .gitignore | 1 + Gemfile | 27 + LICENSE | 21 + README.md | 1 + _config.dev.yml | 13 + _config.yml | 311 ++ _data/authors.yml | 18 + .../layout-comments/comment-1470944006665.yml | 6 + .../layout-comments/comment-1470944162041.yml | 6 + .../comment-1470969665387.yml | 6 + .../comment-1470942205700.yml | 6 + .../comment-1470942247755.yml | 6 + .../comment-1470942265819.yml | 6 + .../comment-1470942493518.yml | 6 + _data/navigation.yml | 22 + _data/ui-text.yml | 270 ++ _drafts/post-draft.md | 19 + _includes/analytics-providers/custom.html | 3 + .../analytics-providers/google-universal.html | 9 + _includes/analytics-providers/google.html | 11 + _includes/analytics.html | 12 + _includes/archive-single-cv.html | 42 + _includes/archive-single-talk-cv.html | 41 + _includes/archive-single-talk.html | 42 + _includes/archive-single.html | 64 + _includes/author-profile.html | 123 + _includes/base_path | 5 + _includes/breadcrumbs.html | 41 + _includes/browser-upgrade.html | 3 + _includes/category-list.html | 30 + _includes/comment.html | 22 + _includes/comments-providers/custom.html | 3 + _includes/comments-providers/discourse.html | 14 + _includes/comments-providers/disqus.html | 22 + _includes/comments-providers/facebook.html | 8 + _includes/comments-providers/google-plus.html | 2 + _includes/comments-providers/scripts.html | 18 + _includes/comments-providers/staticman.html | 42 + _includes/comments.html | 81 + _includes/feature_row | 52 + _includes/footer.html | 24 + _includes/footer/custom.html | 3 + _includes/gallery | 49 + _includes/group-by-array | 47 + _includes/head.html | 21 + _includes/head/custom.html | 38 + _includes/masthead.html | 23 + _includes/nav_list | 46 + _includes/page__hero.html | 55 + _includes/page__taxonomy.html | 9 + _includes/paginator.html | 70 + _includes/post_pagination.html | 16 + _includes/read-time.html | 17 + _includes/scripts.html | 4 + _includes/seo.html | 139 + _includes/sidebar.html | 25 + _includes/social-share.html | 13 + _includes/tag-list.html | 28 + _includes/toc | 7 + _layouts/archive-taxonomy.html | 16 + _layouts/archive.html | 24 + _layouts/compress.html | 10 + _layouts/default.html | 31 + _layouts/single.html | 90 + _layouts/splash.html | 22 + _layouts/talk.html | 78 + _pages/404.md | 16 + _pages/about.md | 50 + _pages/archive-layout-with-content.md | 177 ++ _pages/category-archive.html | 17 + _pages/collection-archive.html | 24 + _pages/cv.md | 59 + _pages/markdown.md | 202 ++ _pages/non-menu-page.md | 17 + _pages/page-archive.html | 11 + _pages/portfolio.html | 14 + _pages/publications.md | 16 + _pages/sitemap.md | 37 + _pages/tag-archive.html | 17 + _pages/talkmap.html | 9 + _pages/talks.html | 16 + _pages/teaching.html | 12 + _pages/terms.md | 39 + _pages/year-archive.html | 19 + _portfolio/portfolio-1.md | 7 + _portfolio/portfolio-2.html | 7 + _posts/2012-08-14-blog-post-1.md | 20 + _posts/2013-08-14-blog-post-2.md | 20 + _posts/2014-08-14-blog-post-3.md | 20 + _posts/2015-08-14-blog-post-4.md | 20 + _posts/2199-01-01-future-post.md | 11 + .../2009-10-01-paper-title-number-1.md | 15 + .../2010-10-01-paper-title-number-2.md | 15 + .../2015-10-01-paper-title-number-3.md | 15 + _sass/_animations.scss | 21 + _sass/_archive.scss | 245 ++ _sass/_base.scss | 315 ++ _sass/_buttons.scss | 153 + _sass/_footer.scss | 92 + _sass/_forms.scss | 391 +++ _sass/_masthead.scss | 53 + _sass/_mixins.scss | 53 + _sass/_navigation.scss | 432 +++ _sass/_notices.scss | 99 + _sass/_page.scss | 401 +++ _sass/_print.scss | 18 + _sass/_reset.scss | 179 ++ _sass/_sidebar.scss | 237 ++ _sass/_syntax.scss | 123 + _sass/_tables.scss | 38 + _sass/_utilities.scss | 470 +++ _sass/_variables.scss | 153 + _sass/vendor/breakpoint/_breakpoint.scss | 114 + _sass/vendor/breakpoint/_context.scss | 95 + _sass/vendor/breakpoint/_helpers.scss | 151 + _sass/vendor/breakpoint/_legacy-settings.scss | 50 + _sass/vendor/breakpoint/_no-query.scss | 15 + _sass/vendor/breakpoint/_parsers.scss | 215 ++ _sass/vendor/breakpoint/_respond-to.scss | 82 + _sass/vendor/breakpoint/_settings.scss | 71 + _sass/vendor/breakpoint/parsers/_double.scss | 33 + _sass/vendor/breakpoint/parsers/_query.scss | 82 + .../breakpoint/parsers/_resolution.scss | 31 + _sass/vendor/breakpoint/parsers/_single.scss | 26 + _sass/vendor/breakpoint/parsers/_triple.scss | 36 + .../parsers/double/_default-pair.scss | 21 + .../breakpoint/parsers/double/_default.scss | 22 + .../parsers/double/_double-string.scss | 22 + .../parsers/resolution/_resolution.scss | 60 + .../breakpoint/parsers/single/_default.scss | 13 + .../breakpoint/parsers/triple/_default.scss | 18 + _sass/vendor/font-awesome/_animated.scss | 20 + .../vendor/font-awesome/_bordered-pulled.scss | 20 + _sass/vendor/font-awesome/_core.scss | 20 + _sass/vendor/font-awesome/_fixed-width.scss | 6 + _sass/vendor/font-awesome/_icons.scss | 1262 ++++++++ _sass/vendor/font-awesome/_larger.scss | 23 + _sass/vendor/font-awesome/_list.scss | 18 + _sass/vendor/font-awesome/_mixins.scss | 57 + .../vendor/font-awesome/_rotated-flipped.scss | 23 + _sass/vendor/font-awesome/_screen-reader.scss | 5 + _sass/vendor/font-awesome/_shims.scss | 2062 +++++++++++++ _sass/vendor/font-awesome/_stacked.scss | 31 + _sass/vendor/font-awesome/_variables.scss | 1276 ++++++++ _sass/vendor/font-awesome/brands.scss | 21 + _sass/vendor/font-awesome/fontawesome.scss | 16 + _sass/vendor/font-awesome/regular.scss | 22 + _sass/vendor/font-awesome/solid.scss | 23 + _sass/vendor/font-awesome/v4-shims.scss | 6 + .../magnific-popup/_magnific-popup.scss | 649 ++++ _sass/vendor/magnific-popup/_settings.scss | 46 + _sass/vendor/susy/_su.scss | 4 + _sass/vendor/susy/_susy.scss | 4 + _sass/vendor/susy/_susyone.scss | 4 + _sass/vendor/susy/susy/_su.scss | 7 + _sass/vendor/susy/susy/language/_susy.scss | 24 + _sass/vendor/susy/susy/language/_susyone.scss | 13 + .../susy/susy/language/susy/_background.scss | 385 +++ .../susy/susy/language/susy/_bleed.scss | 200 ++ .../susy/susy/language/susy/_box-sizing.scss | 47 + .../language/susy/_breakpoint-plugin.scss | 185 ++ .../susy/susy/language/susy/_container.scss | 81 + .../susy/susy/language/susy/_context.scss | 36 + .../susy/susy/language/susy/_gallery.scss | 94 + .../susy/susy/language/susy/_grids.scss | 64 + .../susy/susy/language/susy/_gutters.scss | 154 + .../susy/susy/language/susy/_isolate.scss | 77 + .../susy/susy/language/susy/_margins.scss | 94 + .../susy/susy/language/susy/_padding.scss | 74 + .../vendor/susy/susy/language/susy/_rows.scss | 138 + .../susy/susy/language/susy/_settings.scss | 216 ++ .../vendor/susy/susy/language/susy/_span.scss | 163 + .../susy/susy/language/susy/_validation.scss | 16 + .../susy/language/susyone/_background.scss | 18 + .../susy/language/susyone/_functions.scss | 377 +++ .../susy/susy/language/susyone/_grid.scss | 312 ++ .../susy/language/susyone/_isolation.scss | 51 + .../susy/susy/language/susyone/_margin.scss | 93 + .../susy/susy/language/susyone/_media.scss | 105 + .../susy/susy/language/susyone/_padding.scss | 92 + .../susy/susy/language/susyone/_settings.scss | 60 + _sass/vendor/susy/susy/output/_float.scss | 9 + _sass/vendor/susy/susy/output/_shared.scss | 15 + _sass/vendor/susy/susy/output/_support.scss | 9 + .../susy/susy/output/float/_container.scss | 16 + _sass/vendor/susy/susy/output/float/_end.scss | 40 + .../susy/susy/output/float/_isolate.scss | 22 + .../vendor/susy/susy/output/float/_span.scss | 35 + .../susy/susy/output/shared/_background.scss | 26 + .../susy/susy/output/shared/_container.scss | 21 + .../susy/susy/output/shared/_direction.scss | 42 + .../susy/susy/output/shared/_inspect.scss | 25 + .../susy/susy/output/shared/_margins.scss | 23 + .../susy/susy/output/shared/_output.scss | 14 + .../susy/susy/output/shared/_padding.scss | 23 + .../susy/susy/output/support/_background.scss | 58 + .../susy/susy/output/support/_box-sizing.scss | 19 + .../susy/susy/output/support/_clearfix.scss | 18 + .../susy/susy/output/support/_prefix.scss | 19 + .../vendor/susy/susy/output/support/_rem.scss | 22 + .../susy/susy/output/support/_support.scss | 85 + _sass/vendor/susy/susy/su/_grid.scss | 103 + _sass/vendor/susy/susy/su/_settings.scss | 73 + _sass/vendor/susy/susy/su/_utilities.scss | 111 + _sass/vendor/susy/susy/su/_validation.scss | 57 + _talks/2012-03-01-talk-1.md | 11 + _talks/2013-03-01-tutorial-1.md | 13 + _talks/2014-02-01-talk-2.md | 13 + _talks/2014-03-01-talk-3.md | 11 + _teaching/2014-spring-teaching-1.md | 20 + _teaching/2015-spring-teaching-2.md | 20 + assets/css/academicons.css | 327 ++ assets/css/academicons.min.css | 1 + assets/css/collapse.css | 16 + assets/css/main.scss | 41 + assets/fonts/academicons.eot | Bin 0 -> 38012 bytes assets/fonts/academicons.svg | 92 + assets/fonts/academicons.ttf | Bin 0 -> 37832 bytes assets/fonts/academicons.woff | Bin 0 -> 37908 bytes assets/fonts/fa-brands-400.eot | Bin 0 -> 126428 bytes assets/fonts/fa-brands-400.svg | 1184 ++++++++ assets/fonts/fa-brands-400.ttf | Bin 0 -> 126192 bytes assets/fonts/fa-brands-400.woff | Bin 0 -> 81612 bytes assets/fonts/fa-brands-400.woff2 | Bin 0 -> 69608 bytes assets/fonts/fa-regular-400.eot | Bin 0 -> 40460 bytes assets/fonts/fa-regular-400.svg | 467 +++ assets/fonts/fa-regular-400.ttf | Bin 0 -> 40232 bytes assets/fonts/fa-regular-400.woff | Bin 0 -> 18112 bytes assets/fonts/fa-regular-400.woff2 | Bin 0 -> 14844 bytes assets/fonts/fa-solid-900.eot | Bin 0 -> 197172 bytes assets/fonts/fa-solid-900.svg | 2618 ++++++++++++++++ assets/fonts/fa-solid-900.ttf | Bin 0 -> 196952 bytes assets/fonts/fa-solid-900.woff | Bin 0 -> 95436 bytes assets/fonts/fa-solid-900.woff2 | Bin 0 -> 73852 bytes assets/js/_main.js | 98 + assets/js/collapse.js | 16 + assets/js/main.min.js | 5 + assets/js/plugins/jquery.fitvids.js | 82 + assets/js/plugins/jquery.greedy-navigation.js | 72 + assets/js/plugins/jquery.magnific-popup.js | 2049 +++++++++++++ assets/js/plugins/jquery.smooth-scroll.min.js | 8 + assets/js/plugins/stickyfill.min.js | 8 + assets/js/vendor/jquery/jquery-1.12.4.min.js | 5 + images/500x300.png | Bin 0 -> 1662 bytes images/browserconfig.xml | 12 + images/editing-talk.png | Bin 0 -> 57016 bytes images/foo-bar-identity-th.jpg | Bin 0 -> 75014 bytes images/foo-bar-identity.jpg | Bin 0 -> 61076 bytes images/image-alignment-1200x4002.jpg | Bin 0 -> 35514 bytes images/image-alignment-150x150.jpg | Bin 0 -> 2844 bytes images/image-alignment-300x200.jpg | Bin 0 -> 6446 bytes images/image-alignment-580x300.jpg | Bin 0 -> 9082 bytes images/manifest.json | 41 + images/mstile-144x144.png | Bin 0 -> 1164 bytes images/mstile-150x150.png | Bin 0 -> 1926 bytes images/mstile-310x150.png | Bin 0 -> 2063 bytes images/mstile-310x310.png | Bin 0 -> 4718 bytes images/mstile-70x70.png | Bin 0 -> 1115 bytes images/paragraph-indent.png | Bin 0 -> 32911 bytes images/paragraph-no-indent.png | Bin 0 -> 33539 bytes images/profile.png | Bin 0 -> 22149 bytes images/safari-pinned-tab.svg | 34 + images/site-logo.png | Bin 0 -> 4653 bytes markdown_generator/PubsFromBib.ipynb | 223 ++ markdown_generator/publications.ipynb | 371 +++ markdown_generator/publications.py | 108 + markdown_generator/publications.tsv | 4 + markdown_generator/pubsFromBib.py | 160 + markdown_generator/readme.md | 7 + markdown_generator/talks.ipynb | 380 +++ markdown_generator/talks.py | 111 + markdown_generator/talks.tsv | 5 + package.json | 33 + talkmap.ipynb | 158 + talkmap.py | 47 + .../leaflet_dist/MarkerCluster.Default.css | 62 + talkmap/leaflet_dist/MarkerCluster.css | 16 + .../leaflet_dist/leaflet.markercluster-src.js | 2627 +++++++++++++++++ talkmap/leaflet_dist/leaflet.markercluster.js | 8 + talkmap/leaflet_dist/screen.css | 30 + talkmap/map.html | 45 + talkmap/org-locations.js | 22 + 282 files changed, 29232 insertions(+) create mode 100644 Gemfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 _config.dev.yml create mode 100644 _config.yml create mode 100644 _data/authors.yml create mode 100644 _data/comments/layout-comments/comment-1470944006665.yml create mode 100644 _data/comments/layout-comments/comment-1470944162041.yml create mode 100644 _data/comments/markup-syntax-highlighting/comment-1470969665387.yml create mode 100644 _data/comments/welcome-to-jekyll/comment-1470942205700.yml create mode 100644 _data/comments/welcome-to-jekyll/comment-1470942247755.yml create mode 100644 _data/comments/welcome-to-jekyll/comment-1470942265819.yml create mode 100644 _data/comments/welcome-to-jekyll/comment-1470942493518.yml create mode 100644 _data/navigation.yml create mode 100644 _data/ui-text.yml create mode 100644 _drafts/post-draft.md create mode 100644 _includes/analytics-providers/custom.html create mode 100644 _includes/analytics-providers/google-universal.html create mode 100644 _includes/analytics-providers/google.html create mode 100644 _includes/analytics.html create mode 100644 _includes/archive-single-cv.html create mode 100644 _includes/archive-single-talk-cv.html create mode 100644 _includes/archive-single-talk.html create mode 100644 _includes/archive-single.html create mode 100644 _includes/author-profile.html create mode 100644 _includes/base_path create mode 100644 _includes/breadcrumbs.html create mode 100644 _includes/browser-upgrade.html create mode 100644 _includes/category-list.html create mode 100644 _includes/comment.html create mode 100644 _includes/comments-providers/custom.html create mode 100644 _includes/comments-providers/discourse.html create mode 100644 _includes/comments-providers/disqus.html create mode 100644 _includes/comments-providers/facebook.html create mode 100644 _includes/comments-providers/google-plus.html create mode 100644 _includes/comments-providers/scripts.html create mode 100644 _includes/comments-providers/staticman.html create mode 100644 _includes/comments.html create mode 100644 _includes/feature_row create mode 100644 _includes/footer.html create mode 100644 _includes/footer/custom.html create mode 100644 _includes/gallery create mode 100644 _includes/group-by-array create mode 100644 _includes/head.html create mode 100644 _includes/head/custom.html create mode 100644 _includes/masthead.html create mode 100644 _includes/nav_list create mode 100644 _includes/page__hero.html create mode 100644 _includes/page__taxonomy.html create mode 100644 _includes/paginator.html create mode 100644 _includes/post_pagination.html create mode 100644 _includes/read-time.html create mode 100644 _includes/scripts.html create mode 100644 _includes/seo.html create mode 100644 _includes/sidebar.html create mode 100644 _includes/social-share.html create mode 100644 _includes/tag-list.html create mode 100644 _includes/toc create mode 100644 _layouts/archive-taxonomy.html create mode 100644 _layouts/archive.html create mode 100644 _layouts/compress.html create mode 100644 _layouts/default.html create mode 100644 _layouts/single.html create mode 100644 _layouts/splash.html create mode 100644 _layouts/talk.html create mode 100644 _pages/404.md create mode 100644 _pages/about.md create mode 100644 _pages/archive-layout-with-content.md create mode 100644 _pages/category-archive.html create mode 100644 _pages/collection-archive.html create mode 100644 _pages/cv.md create mode 100644 _pages/markdown.md create mode 100644 _pages/non-menu-page.md create mode 100644 _pages/page-archive.html create mode 100644 _pages/portfolio.html create mode 100644 _pages/publications.md create mode 100644 _pages/sitemap.md create mode 100644 _pages/tag-archive.html create mode 100644 _pages/talkmap.html create mode 100644 _pages/talks.html create mode 100644 _pages/teaching.html create mode 100644 _pages/terms.md create mode 100644 _pages/year-archive.html create mode 100644 _portfolio/portfolio-1.md create mode 100644 _portfolio/portfolio-2.html create mode 100644 _posts/2012-08-14-blog-post-1.md create mode 100644 _posts/2013-08-14-blog-post-2.md create mode 100644 _posts/2014-08-14-blog-post-3.md create mode 100644 _posts/2015-08-14-blog-post-4.md create mode 100644 _posts/2199-01-01-future-post.md create mode 100644 _publications/2009-10-01-paper-title-number-1.md create mode 100644 _publications/2010-10-01-paper-title-number-2.md create mode 100644 _publications/2015-10-01-paper-title-number-3.md create mode 100644 _sass/_animations.scss create mode 100644 _sass/_archive.scss create mode 100644 _sass/_base.scss create mode 100644 _sass/_buttons.scss create mode 100644 _sass/_footer.scss create mode 100644 _sass/_forms.scss create mode 100644 _sass/_masthead.scss create mode 100644 _sass/_mixins.scss create mode 100644 _sass/_navigation.scss create mode 100644 _sass/_notices.scss create mode 100644 _sass/_page.scss create mode 100644 _sass/_print.scss create mode 100644 _sass/_reset.scss create mode 100644 _sass/_sidebar.scss create mode 100644 _sass/_syntax.scss create mode 100644 _sass/_tables.scss create mode 100644 _sass/_utilities.scss create mode 100644 _sass/_variables.scss create mode 100644 _sass/vendor/breakpoint/_breakpoint.scss create mode 100644 _sass/vendor/breakpoint/_context.scss create mode 100644 _sass/vendor/breakpoint/_helpers.scss create mode 100644 _sass/vendor/breakpoint/_legacy-settings.scss create mode 100644 _sass/vendor/breakpoint/_no-query.scss create mode 100644 _sass/vendor/breakpoint/_parsers.scss create mode 100644 _sass/vendor/breakpoint/_respond-to.scss create mode 100644 _sass/vendor/breakpoint/_settings.scss create mode 100644 _sass/vendor/breakpoint/parsers/_double.scss create mode 100644 _sass/vendor/breakpoint/parsers/_query.scss create mode 100644 _sass/vendor/breakpoint/parsers/_resolution.scss create mode 100644 _sass/vendor/breakpoint/parsers/_single.scss create mode 100644 _sass/vendor/breakpoint/parsers/_triple.scss create mode 100644 _sass/vendor/breakpoint/parsers/double/_default-pair.scss create mode 100644 _sass/vendor/breakpoint/parsers/double/_default.scss create mode 100644 _sass/vendor/breakpoint/parsers/double/_double-string.scss create mode 100644 _sass/vendor/breakpoint/parsers/resolution/_resolution.scss create mode 100644 _sass/vendor/breakpoint/parsers/single/_default.scss create mode 100644 _sass/vendor/breakpoint/parsers/triple/_default.scss create mode 100644 _sass/vendor/font-awesome/_animated.scss create mode 100644 _sass/vendor/font-awesome/_bordered-pulled.scss create mode 100644 _sass/vendor/font-awesome/_core.scss create mode 100644 _sass/vendor/font-awesome/_fixed-width.scss create mode 100644 _sass/vendor/font-awesome/_icons.scss create mode 100644 _sass/vendor/font-awesome/_larger.scss create mode 100644 _sass/vendor/font-awesome/_list.scss create mode 100644 _sass/vendor/font-awesome/_mixins.scss create mode 100644 _sass/vendor/font-awesome/_rotated-flipped.scss create mode 100644 _sass/vendor/font-awesome/_screen-reader.scss create mode 100644 _sass/vendor/font-awesome/_shims.scss create mode 100644 _sass/vendor/font-awesome/_stacked.scss create mode 100644 _sass/vendor/font-awesome/_variables.scss create mode 100644 _sass/vendor/font-awesome/brands.scss create mode 100644 _sass/vendor/font-awesome/fontawesome.scss create mode 100644 _sass/vendor/font-awesome/regular.scss create mode 100644 _sass/vendor/font-awesome/solid.scss create mode 100644 _sass/vendor/font-awesome/v4-shims.scss create mode 100644 _sass/vendor/magnific-popup/_magnific-popup.scss create mode 100644 _sass/vendor/magnific-popup/_settings.scss create mode 100644 _sass/vendor/susy/_su.scss create mode 100644 _sass/vendor/susy/_susy.scss create mode 100644 _sass/vendor/susy/_susyone.scss create mode 100644 _sass/vendor/susy/susy/_su.scss create mode 100644 _sass/vendor/susy/susy/language/_susy.scss create mode 100644 _sass/vendor/susy/susy/language/_susyone.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_background.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_bleed.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_box-sizing.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_container.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_context.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_gallery.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_grids.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_gutters.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_isolate.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_margins.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_padding.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_rows.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_settings.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_span.scss create mode 100644 _sass/vendor/susy/susy/language/susy/_validation.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_background.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_functions.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_grid.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_isolation.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_margin.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_media.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_padding.scss create mode 100644 _sass/vendor/susy/susy/language/susyone/_settings.scss create mode 100644 _sass/vendor/susy/susy/output/_float.scss create mode 100644 _sass/vendor/susy/susy/output/_shared.scss create mode 100644 _sass/vendor/susy/susy/output/_support.scss create mode 100644 _sass/vendor/susy/susy/output/float/_container.scss create mode 100644 _sass/vendor/susy/susy/output/float/_end.scss create mode 100644 _sass/vendor/susy/susy/output/float/_isolate.scss create mode 100644 _sass/vendor/susy/susy/output/float/_span.scss create mode 100644 _sass/vendor/susy/susy/output/shared/_background.scss create mode 100644 _sass/vendor/susy/susy/output/shared/_container.scss create mode 100644 _sass/vendor/susy/susy/output/shared/_direction.scss create mode 100644 _sass/vendor/susy/susy/output/shared/_inspect.scss create mode 100644 _sass/vendor/susy/susy/output/shared/_margins.scss create mode 100644 _sass/vendor/susy/susy/output/shared/_output.scss create mode 100644 _sass/vendor/susy/susy/output/shared/_padding.scss create mode 100644 _sass/vendor/susy/susy/output/support/_background.scss create mode 100644 _sass/vendor/susy/susy/output/support/_box-sizing.scss create mode 100644 _sass/vendor/susy/susy/output/support/_clearfix.scss create mode 100644 _sass/vendor/susy/susy/output/support/_prefix.scss create mode 100644 _sass/vendor/susy/susy/output/support/_rem.scss create mode 100644 _sass/vendor/susy/susy/output/support/_support.scss create mode 100644 _sass/vendor/susy/susy/su/_grid.scss create mode 100644 _sass/vendor/susy/susy/su/_settings.scss create mode 100644 _sass/vendor/susy/susy/su/_utilities.scss create mode 100644 _sass/vendor/susy/susy/su/_validation.scss create mode 100644 _talks/2012-03-01-talk-1.md create mode 100644 _talks/2013-03-01-tutorial-1.md create mode 100644 _talks/2014-02-01-talk-2.md create mode 100644 _talks/2014-03-01-talk-3.md create mode 100644 _teaching/2014-spring-teaching-1.md create mode 100644 _teaching/2015-spring-teaching-2.md create mode 100755 assets/css/academicons.css create mode 100755 assets/css/academicons.min.css create mode 100644 assets/css/collapse.css create mode 100644 assets/css/main.scss create mode 100755 assets/fonts/academicons.eot create mode 100755 assets/fonts/academicons.svg create mode 100755 assets/fonts/academicons.ttf create mode 100755 assets/fonts/academicons.woff create mode 100644 assets/fonts/fa-brands-400.eot create mode 100644 assets/fonts/fa-brands-400.svg create mode 100644 assets/fonts/fa-brands-400.ttf create mode 100644 assets/fonts/fa-brands-400.woff create mode 100644 assets/fonts/fa-brands-400.woff2 create mode 100644 assets/fonts/fa-regular-400.eot create mode 100644 assets/fonts/fa-regular-400.svg create mode 100644 assets/fonts/fa-regular-400.ttf create mode 100644 assets/fonts/fa-regular-400.woff create mode 100644 assets/fonts/fa-regular-400.woff2 create mode 100644 assets/fonts/fa-solid-900.eot create mode 100644 assets/fonts/fa-solid-900.svg create mode 100644 assets/fonts/fa-solid-900.ttf create mode 100644 assets/fonts/fa-solid-900.woff create mode 100644 assets/fonts/fa-solid-900.woff2 create mode 100644 assets/js/_main.js create mode 100644 assets/js/collapse.js create mode 100644 assets/js/main.min.js create mode 100644 assets/js/plugins/jquery.fitvids.js create mode 100644 assets/js/plugins/jquery.greedy-navigation.js create mode 100644 assets/js/plugins/jquery.magnific-popup.js create mode 100644 assets/js/plugins/jquery.smooth-scroll.min.js create mode 100644 assets/js/plugins/stickyfill.min.js create mode 100644 assets/js/vendor/jquery/jquery-1.12.4.min.js create mode 100644 images/500x300.png create mode 100644 images/browserconfig.xml create mode 100644 images/editing-talk.png create mode 100644 images/foo-bar-identity-th.jpg create mode 100644 images/foo-bar-identity.jpg create mode 100644 images/image-alignment-1200x4002.jpg create mode 100644 images/image-alignment-150x150.jpg create mode 100644 images/image-alignment-300x200.jpg create mode 100644 images/image-alignment-580x300.jpg create mode 100644 images/manifest.json create mode 100644 images/mstile-144x144.png create mode 100644 images/mstile-150x150.png create mode 100644 images/mstile-310x150.png create mode 100644 images/mstile-310x310.png create mode 100644 images/mstile-70x70.png create mode 100644 images/paragraph-indent.png create mode 100644 images/paragraph-no-indent.png create mode 100644 images/profile.png create mode 100644 images/safari-pinned-tab.svg create mode 100644 images/site-logo.png create mode 100644 markdown_generator/PubsFromBib.ipynb create mode 100644 markdown_generator/publications.ipynb create mode 100644 markdown_generator/publications.py create mode 100644 markdown_generator/publications.tsv create mode 100644 markdown_generator/pubsFromBib.py create mode 100644 markdown_generator/readme.md create mode 100644 markdown_generator/talks.ipynb create mode 100644 markdown_generator/talks.py create mode 100644 markdown_generator/talks.tsv create mode 100644 package.json create mode 100644 talkmap.ipynb create mode 100644 talkmap.py create mode 100644 talkmap/leaflet_dist/MarkerCluster.Default.css create mode 100644 talkmap/leaflet_dist/MarkerCluster.css create mode 100644 talkmap/leaflet_dist/leaflet.markercluster-src.js create mode 100644 talkmap/leaflet_dist/leaflet.markercluster.js create mode 100644 talkmap/leaflet_dist/screen.css create mode 100644 talkmap/map.html create mode 100644 talkmap/org-locations.js diff --git a/.gitignore b/.gitignore index d2db94f..620cc73 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store .ipynb_checkpoints +_site/ diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..1629566 --- /dev/null +++ b/Gemfile @@ -0,0 +1,27 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! + +gem "github-pages", group: :jekyll_plugins + +# If you want to use Jekyll native, uncomment the line below. +# To upgrade, run `bundle update`. + +# gem "jekyll" + +gem "wdm", "~> 0.1.0" if Gem.win_platform? + +# If you have any plugins, put them here! +group :jekyll_plugins do + # gem "jekyll-archives" + gem "jekyll-feed" + gem 'jekyll-sitemap' + gem 'hawkins' +end diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..23a6cd1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Michael Rose + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0a7430b --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Generates my personal website. I copied (rather than forked to preserve previous history of this repo) the template is from https://academicpages.github.io/ which is a Github Pages template for academic websites released under the MIT License. See LICENSE.md. diff --git a/_config.dev.yml b/_config.dev.yml new file mode 100644 index 0000000..45df3df --- /dev/null +++ b/_config.dev.yml @@ -0,0 +1,13 @@ +# Develop override settings + +url: http://localhost:4000 + +analytics: + provider: false + +comments: + disqus: + shortname : "mmistakes-dev" + +sass: + style: expanded \ No newline at end of file diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..1dc605c --- /dev/null +++ b/_config.yml @@ -0,0 +1,311 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your entire site, values +# which you are expected to set up once and rarely need to edit after that. +# For technical reasons, this file is *NOT* reloaded automatically when you use +# `jekyll serve`. If you change this file, please restart the server process. + +# Site Settings +locale : "en-US" +title : "Your Name / Site Title" +title_separator : "-" +name : &name "Your Name" +description : &description "personal description" +url : https://academicpages.github.io # the base hostname & protocol for your site e.g. "https://mmistakes.github.io" +baseurl : "" # the subpath of your site, e.g. "/blog" +repository : "academicpages/academicpages.github.io" +teaser : # filename of teaser fallback teaser image placed in /images/, .e.g. "500x300.png" +breadcrumbs : false # true, false (default) +words_per_minute : 160 +future : true +read_more : "disabled" # if enabled, adds "Read more" links to excerpts +talkmap_link : false #change to true to add link to talkmap on talks page +comments: + provider : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom" + disqus: + shortname : + discourse: + server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org + facebook: + appid : + num_posts : # 5 (default) + colorscheme : # "light" (default), "dark" +staticman: + allowedFields : ['name', 'email', 'url', 'message'] + branch : "gh-pages" # "master", "gh-pages" + commitMessage : "New comment." + filename : comment-{@timestamp} + format : "yml" + moderation : true + path : "_data/comments/{options.slug}" + requiredFields : ['name', 'email', 'message'] + transforms: + email : "md5" + generatedFields: + date: + type : "date" + options: + format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds" +atom_feed: + path : # blank (default) uses feed.xml + +# SEO Related +google_site_verification : +bing_site_verification : +alexa_site_verification : +yandex_site_verification : + +# Social Sharing +twitter: + username : &twitter +facebook: + username : + app_id : + publisher : +og_image : # Open Graph/Twitter default site image +# For specifying social profiles +# - https://developers.google.com/structured-data/customize/social-profiles +social: + type : # Person or Organization (defaults to Person) + name : # If the user or organization name differs from the site's name + links: # An array of links to social media profiles + + +# Analytics +analytics: + provider : "google-universal" # false (default), "google", "google-universal", "custom" + google: + tracking_id : + + +# Site Author +author: + name : "Your Sidebar Name" + avatar : "profile.png" + bio : "Your biography for the left-hand sidebar" + location : "Location" + employer : + pubmed : "https://www.ncbi.nlm.nih.gov/pubmed/?term=john+snow" + googlescholar : "http://yourfullgooglescholarurl.com" + email : + researchgate : # example: "https://www.researchgate.net/profile/yourprofile" + uri : + bitbucket : + codepen : + dribbble : + flickr : + facebook : + foursquare : + github : "academicpages" + google_plus : + keybase : + instagram : + impactstory : #"https://profiles.impactstory.org/u/xxxx-xxxx-xxxx-xxxx" + lastfm : + linkedin : + orcid : "http://orcid.org/yourorcidurl" + pinterest : + soundcloud : + stackoverflow : # http://stackoverflow.com/users/123456/username + steam : + tumblr : + twitter : "replacethistwitterhandle" + vine : + weibo : + xing : + youtube : + wikipedia : + + +# Reading Files +include: + - .htaccess + - _pages + - files +exclude: + - "*.sublime-project" + - "*.sublime-workspace" + - .asset-cache + - .bundle + - .jekyll-assets-cache + - .sass-cache + - CHANGELOG + - Capfile + - Gemfile + - Gruntfile.js + - LICENSE + - README + - Rakefile + - assets/js/_main.js + - assets/js/plugins + - assets/js/vendor + - config + - gulpfile.js + - log + - node_modules + - package.json + - tmp + - vendor +keep_files: + - .git + - .svn +encoding: "utf-8" +markdown_ext: "markdown,mkdown,mkdn,mkd,md" + + +# Conversion +markdown: kramdown +highlighter: rouge +lsi: false +excerpt_separator: "\n\n" +incremental: false + + +# Markdown Processing +kramdown: + input: GFM + hard_wrap: false + auto_ids: true + footnote_nr: 1 + entity_output: as_char + toc_levels: 1..6 + smart_quotes: lsquo,rsquo,ldquo,rdquo + enable_coderay: false + + +# Collections +collections: + teaching: + output: true + permalink: /:collection/:path/ + publications: + output: true + permalink: /:collection/:path/ + portfolio: + output: true + permalink: /:collection/:path/ + talks: + output: true + permalink: /:collection/:path/ + + +# Defaults +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: single + author_profile: true + read_time: true + comments: true + share: true + related: true + # _pages + - scope: + path: "" + type: pages + values: + layout: single + author_profile: true + # _teaching + - scope: + path: "" + type: teaching + values: + layout: single + author_profile: true + share: true + comments: true + # _publications + - scope: + path: "" + type: publications + values: + layout: single + author_profile: true + share: true + comments: true + # _portfolio + - scope: + path: "" + type: portfolio + values: + layout: single + author_profile: true + share: true + comment: true + # _talks + - scope: + path: "" + type: talks + values: + layout: talk + author_profile: true + share: true + +# Sass/SCSS +sass: + sass_dir: _sass + style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style + + +# Outputting +permalink: /:categories/:title/ +# paginate: 5 # amount of posts to show +# paginate_path: /page:num/ +timezone: America/Los_Angeles # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones + + +# Plugins +plugins: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jekyll-redirect-from +# mimic GitHub Pages with --safe +whitelist: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jemoji + + +# Archives +# Type +# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default) +# - Jekyll Archives plugin archive pages ~> type: jekyll-archives +# Path (examples) +# - Archive page should exist at path when using Liquid method or you can +# expect broken links (especially with breadcrumbs enabled) +# - /tags/my-awesome-tag/index.html ~> path: /tags/ +# - path: /categories/ +# - path: / +category_archive: + type: liquid + path: /categories/ +tag_archive: + type: liquid + path: /tags/ +# https://github.com/jekyll/jekyll-archives +# jekyll-archives: +# enabled: +# - categories +# - tags +# layouts: +# category: archive-taxonomy +# tag: archive-taxonomy +# permalinks: +# category: /categories/:name/ +# tag: /tags/:name/ + + +# HTML Compression +# - http://jch.penibelst.de/ +compress_html: + clippings: all + ignore: + envs: development diff --git a/_data/authors.yml b/_data/authors.yml new file mode 100644 index 0000000..8c5d15e --- /dev/null +++ b/_data/authors.yml @@ -0,0 +1,18 @@ +# Authors + +Name Name: + name : "Name Name" + uri : "http://name.com" + email : "name@name.com" + bio : "This is the first name." + avatar : "bio-photo-2.jpg" + twitter : "name" + google_plus : "Name" + +Name2 Name2: + name : "Name2 Name2" + email : "name2@name2.com" + bio : "I ordered what?" + avatar : "bio-photo.jpg" + twitter : "name2" + google_plus : "Name" \ No newline at end of file diff --git a/_data/comments/layout-comments/comment-1470944006665.yml b/_data/comments/layout-comments/comment-1470944006665.yml new file mode 100644 index 0000000..fd4e1a7 --- /dev/null +++ b/_data/comments/layout-comments/comment-1470944006665.yml @@ -0,0 +1,6 @@ +message: "![Bill Murray](http://www.fillmurray.com/400/300)\r\n\r\n“It's hard to be an artist. It's hard to be anything. It's hard to be.”" +name: Bill Murray +email: b0caa2a71f5066b3d90711c224578c21 +url: '' +hidden: '' +date: '2016-08-11T19:33:25.928Z' diff --git a/_data/comments/layout-comments/comment-1470944162041.yml b/_data/comments/layout-comments/comment-1470944162041.yml new file mode 100644 index 0000000..fb9b55e --- /dev/null +++ b/_data/comments/layout-comments/comment-1470944162041.yml @@ -0,0 +1,6 @@ +message: "> “I never had seen Seinfeld, and they said, ‘Oh, it’s the last episode.’ And I said, ‘Oh, I’ll watch Seinfeld.’ And it was terrible.”\r\n>\r\n> *— From a 2014 interview with Howard Stern*" +name: Anonymous +email: 8c7e898f1b570760f834ecc03edf6b35 +url: '' +hidden: '' +date: '2016-08-11T19:36:01.033Z' diff --git a/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml b/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml new file mode 100644 index 0000000..bc7a53f --- /dev/null +++ b/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml @@ -0,0 +1,6 @@ +message: "Here's a test comment with a Markdown code block:\r\n\r\n```scss\r\nh1, h2, h3, h4, h5, h6 {\r\n margin: 2em 0 0.5em;\r\n line-height: 1.2;\r\n font-family: $header-font-family;\r\n font-weight: bold;\r\n}\r\n```" +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-12T02:41:04.706Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942205700.yml b/_data/comments/welcome-to-jekyll/comment-1470942205700.yml new file mode 100644 index 0000000..cde7395 --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942205700.yml @@ -0,0 +1,6 @@ +message: "This is a test comment with some **Markdown** sprinkled about for *testing purposes*.\r\n\r\n### Subheading in a comment? Madness!\r\n\r\nNam et risus nec ipsum efficitur facilisis. Aenean tincidunt dapibus odio, eget rutrum urna lacinia non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas." +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-11T19:03:24.929Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942247755.yml b/_data/comments/welcome-to-jekyll/comment-1470942247755.yml new file mode 100644 index 0000000..8bc479e --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942247755.yml @@ -0,0 +1,6 @@ +message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"' +name: Jackalope +email: cba827e665ae179e1d1ae007a6c3c1ab +url: '' +hidden: '' +date: '2016-08-11T19:04:06.958Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942265819.yml b/_data/comments/welcome-to-jekyll/comment-1470942265819.yml new file mode 100644 index 0000000..58c506a --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942265819.yml @@ -0,0 +1,6 @@ +message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"' +name: Jackalope Duplicate +email: cba827e665ae179e1d1ae007a6c3c1ab +url: '' +hidden: '' +date: '2016-08-11T19:04:25.085Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942493518.yml b/_data/comments/welcome-to-jekyll/comment-1470942493518.yml new file mode 100644 index 0000000..68882dc --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942493518.yml @@ -0,0 +1,6 @@ +message: "Images can be added to a comment using Markdown like this\r\n\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)" +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-11T19:08:12.789Z' diff --git a/_data/navigation.yml b/_data/navigation.yml new file mode 100644 index 0000000..4997490 --- /dev/null +++ b/_data/navigation.yml @@ -0,0 +1,22 @@ +# main links links +main: + - title: "Publications" + url: /publications/ + + - title: "Talks" + url: /talks/ + + - title: "Teaching" + url: /teaching/ + + - title: "Portfolio" + url: /portfolio/ + + - title: "Blog Posts" + url: /year-archive/ + + - title: "CV" + url: /cv/ + + - title: "Guide" + url: /markdown/ diff --git a/_data/ui-text.yml b/_data/ui-text.yml new file mode 100644 index 0000000..f37f7fa --- /dev/null +++ b/_data/ui-text.yml @@ -0,0 +1,270 @@ +# User interface text and labels + +# English (default) +# ----------------- +en: &DEFAULT_EN + page : "Page" + pagination_previous : "Previous" + pagination_next : "Next" + breadcrumb_home_label : "Home" + breadcrumb_separator : "/" + toc_label : "On This Page" + ext_link_label : "Direct Link" + less_than : "less than" + minute_read : "minute read" + share_on_label : "Share on" + meta_label : + tags_label : "Tags:" + categories_label : "Categories:" + date_label : "Published:" + comments_label : "Leave a Comment" + comments_title : "Comments" + more_label : "Learn More" + related_label : "You May Also Enjoy" + follow_label : "Follow:" + feed_label : "Feed" + powered_by : "Powered by" + website_label : "Website" + email_label : "Email" + recent_posts : "Recent Posts" + undefined_wpm : "Undefined parameter words_per_minute at _config.yml" + comment_form_info : "Your email address will not be published. Required fields are marked" + comment_form_comment_label : "Comment" + comment_form_md_info : "Markdown is supported." + comment_form_name_label : "Name" + comment_form_email_label : "Email address" + comment_form_website_label : "Website (optional)" + comment_btn_submit : "Submit Comment" + comment_btn_submitted : "Submitted" + comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved." + comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." + loading_label : "Loading..." +en-US: + <<: *DEFAULT_EN +en-CA: + <<: *DEFAULT_EN +en-GB: + <<: *DEFAULT_EN +en-AU: + <<: *DEFAULT_EN + +# Spanish +# -------------- +es: &DEFAULT_ES + page : "Página" + pagination_previous : "Anterior" + pagination_next : "Siguiente" + breadcrumb_home_label : "Inicio" + breadcrumb_separator : "/" + toc_label : "Contenidos" + ext_link_label : "Enlace" + less_than : "menos de" + minute_read : "minuto de lectura" + share_on_label : "Compartir" + meta_label : + tags_label : "Etiquetas:" + categories_label : "Categorías:" + date_label : "Actualizado:" + comments_label : "Comentar" + comments_title : + more_label : "Ver más" + related_label : "Podrías ver también" + follow_label : "Seguir:" + feed_label : "Feed" + powered_by : "Powered by" + website_label : "Sitio web" + email_label : "Email" + recent_posts : "Entradas recientes" + undefined_wpm : "Parametro words_per_minute (Palabras por minuto) no definido en _config.yml" + comment_form_info : + comment_form_comment_label : + comment_form_md_info : + comment_form_name_label : + comment_form_email_label : + comment_form_website_label : + comment_btn_submit : + comment_btn_submitted : + comment_success_msg : + comment_error_msg : + loading_label : +es-ES: + <<: *DEFAULT_ES +es-CO: + <<: *DEFAULT_ES + +# French +# ----------------- +fr: &DEFAULT_FR + page : "Page" + pagination_previous : "Précédent" + pagination_next : "Suivant" + breadcrumb_home_label : "Accueil" + breadcrumb_separator : "/" + toc_label : "Sur cette page" + ext_link_label : "Lien direct" + less_than : "plus petit que" + minute_read : "minute de lecture" + share_on_label : "Partager sur" + meta_label : + tags_label : "Tags :" + categories_label : "Catégories :" + date_label : "Mis à jour :" + comments_label : "Laisser un commentaire" + comments_title : + more_label : "Lire plus" + related_label : "Vous pourriez aimer" + follow_label : "Suivez moi" + feed_label : "Flux" + powered_by : "Propulsé par" + website_label : "Site" + email_label : "Email" + recent_posts : "Posts récents" + undefined_wpm : "Le paramètre words_per_minute n'est pas défini dans _config.yml" + comment_form_info : + comment_form_comment_label : + comment_form_md_info : + comment_form_name_label : + comment_form_email_label : + comment_form_website_label : + comment_btn_submit : + comment_btn_submitted : + comment_success_msg : + comment_error_msg : + loading_label : +fr-FR: + <<: *DEFAULT_FR +fr-BE: + <<: *DEFAULT_FR +fr-CH: + <<: *DEFAULT_FR + +# Turkish +# ----------------- +tr: &DEFAULT_TR + page : "Sayfa" + pagination_previous : "Önceki" + pagination_next : "Sonraki" + breadcrumb_home_label : "Ana Sayfa" + breadcrumb_separator : "/" + toc_label : "İçindekiler" + ext_link_label : "Doğrudan Bağlantı" + less_than : "Şu süreden az: " + minute_read : "dakika tahmini okuma süresi" + share_on_label : "Paylaş" + meta_label : + tags_label : "Etiketler:" + categories_label : "Kategoriler:" + date_label : "Güncelleme tarihi:" + comments_label : "Yorum yapın" + comments_title : + more_label : "Daha fazlasını öğrenin" + related_label : "Bunlar ilginizi çekebilir:" + follow_label : "Takip et:" + feed_label : "RSS" + powered_by : "Emeği geçenler: " + website_label : "Web sayfası" + email_label : "E-posta" + recent_posts : "Son yazılar" + undefined_wpm : "_config.yml dosyasında tanımlanmamış words_per_minute parametresi" + comment_form_info : + comment_form_comment_label : + comment_form_md_info : + comment_form_name_label : + comment_form_email_label : + comment_form_website_label : + comment_btn_submit : + comment_btn_submitted : + comment_success_msg : + comment_error_msg : + loading_label : +tr-TR: + <<: *DEFAULT_TR + +# Brazilian Portguese +# ----------------- +pt: &DEFAULT_PT + page : "Página" + pagination_previous : "Anterior" + pagination_next : "Próxima" + breadcrumb_home_label : "Início" + breadcrumb_separator : "/" + toc_label : "Nesta página" + ext_link_label : "Link direto" + less_than : "menor que" + minute_read : "minutos de leitura" + share_on_label : "Compartilhe em" + meta_label : + tags_label : "Tags:" + categories_label : "Categorias:" + date_label : "Atualizado em:" + comments_label : "Deixe um comentário" + comments_title : + more_label : "Aprenda Mais" + related_label : "Talvez Você Goste Também" + follow_label : "Acompanhe em" + feed_label : "Feed" + powered_by : "Feito por" + website_label : "Site" + email_label : "E-mail" + recent_posts : "Postagens recentes" + undefined_wpm : "Parâmetro indefinido em word_per_minute no _config.yml" + comment_form_info : "Seu endereço de e-mail não será publicado. Campos obrigatórios são marcados" + comment_form_comment_label : "Comentário" + comment_form_md_info : "Markdown é suportado" + comment_form_name_label : "Nome" + comment_form_email_label : "Endereço de e-mail'" + comment_form_website_label : "Website (opcional)" + comment_btn_submit : "Enviar Comentário" + comment_btn_submitted : "Enviado" + comment_success_msg : "Obrigado por seu comentário! Ele será exibido no site depois de aprovado." + comment_error_msg : "Desculpe, houve um erro com o seu envio. Certifique-se de que todos os campos obrigatórios foram preenchidos e tente novamente." + loading_label : "Carregando..." +pt-BR: + <<: *DEFAULT_PT +pt-PT: + <<: *DEFAULT_PT + +# Italian +# ----------------- +it: &DEFAULT_IT + page : "Pagina" + pagination_previous : "Precedente" + pagination_next : "Prossima" + breadcrumb_home_label : "Home" + breadcrumb_separator : "/" + toc_label : "Indice della pagina" + ext_link_label : "Link" + less_than : "meno di" + minute_read : "minuto/i di lettura" + share_on_label : "Condividi" + meta_label : + tags_label : "Tags:" + categories_label : "Categorie:" + date_label : "Aggiornato:" + comments_label : "Scrivi un commento" + comments_title : + more_label : "Scopri di più" + related_label : "Potrebbe Piacerti Anche" + follow_label : "Segui:" + feed_label : "Feed" + powered_by : "Powered by" + website_label : "Website" + email_label : "Email" + recent_posts : "Articoli Recenti" + undefined_wpm : "Parametro words_per_minute non definito in _config.yml" + comment_form_info : + comment_form_comment_label : + comment_form_md_info : + comment_form_name_label : + comment_form_email_label : + comment_form_website_label : + comment_btn_submit : + comment_btn_submitted : + comment_success_msg : + comment_error_msg : + loading_label : +it-IT: + <<: *DEFAULT_IT + +# Another locale +# -------------- diff --git a/_drafts/post-draft.md b/_drafts/post-draft.md new file mode 100644 index 0000000..e0bb2bd --- /dev/null +++ b/_drafts/post-draft.md @@ -0,0 +1,19 @@ +--- +layout: single +title: "Draft Post" +header: + teaser: "unsplash-gallery-image-2-th.jpg" +categories: + - Jekyll +tags: + - edge case +--- +Monocle ipsum dolor sit amet handsome pariatur aliqua, hub remarkable irure commodo classic deserunt bespoke. Sunt commodo signature, Swiss minim flat white Tsutaya excepteur artisanal et Nordic laborum joy ANA. Beams mollit exquisite Ginza efficient dolore qui Comme des Garçons Winkreative Lufthansa bulletin global. Iconic sed liveable duis. Mollit dolore eu laboris Comme des Garçons hub pintxos sed eiusmod tote bag Shinkansen nisi consectetur pariatur. Nordic international quis finest Baggu dolore, bureaux hub hand-crafted ut joy sint Airbus A380. + +Conversation handsome hub cosy, enim emerging sed K-pop velit Gaggenau charming proident et boulevard ryokan. Remarkable airport deserunt international est, nulla minim magna emerging discerning in exclusive dolor. Commodo dolore deserunt cosy, global Nordic culpa uniforms signature charming. Smart ryokan commodo, eiusmod global occaecat incididunt aliqua Beams. Boulevard conversation excepteur finest Swiss non veniam Comme des Garçons essential artisanal. Destination Scandinavian international, anim Boeing 787 in duis Baggu irure essential. + +Fugiat exclusive laborum, Gaggenau ad Winkreative sharp elit labore. Remarkable officia ryokan Boeing 787, consectetur boutique Nordic Singapore espresso elit iconic perfect izakaya soft power excepteur. Ut veniam carefully curated K-pop dolore, uniforms in voluptate. Craftsmanship Ettinger Lufthansa sophisticated esse boutique veniam exquisite. Aute cillum bespoke, intricate consectetur in exquisite international lovely bulletin irure Washlet Gaggenau deserunt. Efficient eu quality of life wardrobe labore, dolor emerging airport concierge reprehenderit izakaya dolore liveable Baggu. + +Commodo elegant essential consectetur Gaggenau culpa consequat id sophisticated St Moritz sunt conversation duis non velit. Nulla business class non ut Marylebone ANA soft power fugiat carefully curated. Bureaux sed punctual handsome Washlet impeccable hand-crafted aute extraordinary tote bag enim boulevard soft power sleepy. Dolore conversation irure Zürich the best adipisicing, vibrant finest hub anim premium aliqua. Cupidatat smart international, bureaux Baggu id efficient punctual. Tempor nulla flat white enim, K-pop incididunt elit efficient Toto uniforms concierge discerning. Concierge sleepy extraordinary, deserunt Melbourne commodo Nordic Winkreative Washlet Ginza exercitation espresso. + +Tsutaya sed in business class sharp. Do Beams in adipisicing Lufthansa. Business class occaecat Melbourne, irure Singapore commodo espresso carefully curated quis quality of life adipisicing. Impeccable laborum efficient classic proident in. Beams Helsinki ullamco Marylebone dolore sophisticated concierge Muji anim duis joy ut. Comme des Garçons aute Muji in aliquip ryokan soft power Nordic essential ANA culpa elegant. \ No newline at end of file diff --git a/_includes/analytics-providers/custom.html b/_includes/analytics-providers/custom.html new file mode 100644 index 0000000..c34b97a --- /dev/null +++ b/_includes/analytics-providers/custom.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/_includes/analytics-providers/google-universal.html b/_includes/analytics-providers/google-universal.html new file mode 100644 index 0000000..3ada6e3 --- /dev/null +++ b/_includes/analytics-providers/google-universal.html @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/_includes/analytics-providers/google.html b/_includes/analytics-providers/google.html new file mode 100644 index 0000000..b591b99 --- /dev/null +++ b/_includes/analytics-providers/google.html @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/_includes/analytics.html b/_includes/analytics.html new file mode 100644 index 0000000..64a3359 --- /dev/null +++ b/_includes/analytics.html @@ -0,0 +1,12 @@ +{% if site.analytics.provider and page.analytics != false %} + +{% case site.analytics.provider %} +{% when "google" %} + {% include /analytics-providers/google.html %} +{% when "google-universal" %} + {% include /analytics-providers/google-universal.html %} +{% when "custom" %} + {% include /analytics-providers/custom.html %} +{% endcase %} + +{% endif %} \ No newline at end of file diff --git a/_includes/archive-single-cv.html b/_includes/archive-single-cv.html new file mode 100644 index 0000000..85f65da --- /dev/null +++ b/_includes/archive-single-cv.html @@ -0,0 +1,42 @@ +{% include base_path %} + +{% if post.header.teaser %} + {% capture teaser %}{{ post.header.teaser }}{% endcapture %} +{% else %} + {% assign teaser = site.teaser %} +{% endif %} + +{% if post.id %} + {% assign title = post.title | markdownify | remove: "

" | remove: "

" %} +{% else %} + {% assign title = post.title %} +{% endif %} + +
+
+
  • + {% if include.type == "grid" and teaser %} +
    + +
    + {% endif %} +

    + {% if post.link %} + {{ title }} Permalink + {% else %} + {{ title }} + {% endif %} +

    + {% if post.read_time %} +

    {% include read-time.html %}

    + {% endif %} + {% if post.venue%}

    {{ post.citation }}

    {% endif %} +
  • +
    +
    diff --git a/_includes/archive-single-talk-cv.html b/_includes/archive-single-talk-cv.html new file mode 100644 index 0000000..5de6a54 --- /dev/null +++ b/_includes/archive-single-talk-cv.html @@ -0,0 +1,41 @@ +{% include base_path %} + +{% if post.header.teaser %} + {% capture teaser %}{{ post.header.teaser }}{% endcapture %} +{% else %} + {% assign teaser = site.teaser %} +{% endif %} + +{% if post.id %} + {% assign title = post.title | markdownify | remove: "

    " | remove: "

    " %} +{% else %} + {% assign title = post.title %} +{% endif %} + +
    +
    +
  • + {% if include.type == "grid" and teaser %} +
    + +
    + {% endif %} +

    + {% if post.link %} + {{ title }} Permalink + {% else %} + {{ title }} + {% endif %} +

    + {% if post.date %}

    {{ post.date | date: '%B %d, %Y' }}

    {% endif %} + {% if post.venue%}

    {{post.type}} at {{ post.venue }}, {{post.location}}

    {% endif %} +
  • +
    +
    + diff --git a/_includes/archive-single-talk.html b/_includes/archive-single-talk.html new file mode 100644 index 0000000..6722ce4 --- /dev/null +++ b/_includes/archive-single-talk.html @@ -0,0 +1,42 @@ +{% include base_path %} + +{% if post.header.teaser %} + {% capture teaser %}{{ post.header.teaser }}{% endcapture %} +{% else %} + {% assign teaser = site.teaser %} +{% endif %} + +{% if post.id %} + {% assign title = post.title | markdownify | remove: "

    " | remove: "

    " %} +{% else %} + {% assign title = post.title %} +{% endif %} + +
    +
    + {% if include.type == "grid" and teaser %} +
    + +
    + {% endif %} +

    + {% if post.link %} + {{ title }} Permalink + {% else %} + {{ title }} + {% endif %} +

    + {% if post.read_time %} +

    {% include read-time.html %}

    + {% endif %} + {% if post.date %}

    {{ post.date | date: '%B %d, %Y' }}

    {% endif %} + {% if post.venue %}

    {{post.type}}, {{ post.venue }}, {{post.location}} {% endif %} + {% if post.excerpt %}

    {{ post.excerpt | markdownify }}

    {% endif %} +
    +
    diff --git a/_includes/archive-single.html b/_includes/archive-single.html new file mode 100644 index 0000000..2578471 --- /dev/null +++ b/_includes/archive-single.html @@ -0,0 +1,64 @@ +{% include base_path %} + +{% if post.header.teaser %} + {% capture teaser %}{{ post.header.teaser }}{% endcapture %} +{% else %} + {% assign teaser = site.teaser %} +{% endif %} + +{% if post.id %} + {% assign title = post.title | markdownify | remove: "

    " | remove: "

    " %} +{% else %} + {% assign title = post.title %} +{% endif %} + +
    +
    + {% if include.type == "grid" and teaser %} +
    + +
    + {% endif %} + +

    + {% if post.link %} + {{ title }} Permalink + {% else %} + {{ title }} + {% endif %} +

    + + {% if post.read_time %} +

    {% include read-time.html %}

    + {% endif %} + + {% if post.collection == 'teaching' %} +

    {{ post.type }}, {{ post.venue }}, {{ post.date | default: "1900-01-01" | date: "%Y" }}

    + {% elsif post.collection == 'publications' %} +

    Published in {{ post.venue }}, {{ post.date | default: "1900-01-01" | date: "%Y" }}

    + {% elsif post.date %} +

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

    + {% endif %} + + {% if post.excerpt and site.read_more != 'enabled' %} +

    {{ post.excerpt | markdownify }}

    + {% elsif post.excerpt and site.read_more == 'enabled' %} +

    {{ post.excerpt | markdownify | remove: '

    ' | remove: '

    ' }} Read more

    + {% endif %} + + {% if post.citation and post.paperurl %} +

    Recommended citation: {{ post.citation }} {{ post.paperurl }}

    + {% elsif post.citation %} +

    Recommended citation: {{ post.citation }}

    + {% elsif post.paperurl %} +

    Download here

    + {% endif %} + +
    +
    diff --git a/_includes/author-profile.html b/_includes/author-profile.html new file mode 100644 index 0000000..5544916 --- /dev/null +++ b/_includes/author-profile.html @@ -0,0 +1,123 @@ +{% include base_path %} + +{% if page.author and site.data.authors[page.author] %} + {% assign author = site.data.authors[page.author] %}{% else %}{% assign author = site.author %} +{% endif %} + +
    + +
    + {% if author.avatar contains "://" %} + {{ author.name }} + {% else %} + {{ author.name }} + {% endif %} +
    + +
    +

    {{ author.name }}

    + {% if author.bio %}

    {{ author.bio }}

    {% endif %} +
    + +
    + + +
    +
    diff --git a/_includes/base_path b/_includes/base_path new file mode 100644 index 0000000..36826c4 --- /dev/null +++ b/_includes/base_path @@ -0,0 +1,5 @@ +{% if site.url %} + {% assign base_path = site.url | append: site.baseurl %} +{% else %} + {% assign base_path = site.github.url %} +{% endif %} \ No newline at end of file diff --git a/_includes/breadcrumbs.html b/_includes/breadcrumbs.html new file mode 100644 index 0000000..2b9f7a9 --- /dev/null +++ b/_includes/breadcrumbs.html @@ -0,0 +1,41 @@ +{% include base_path %} + +{% case site.categories.type %} + {% when "liquid" %} + {% assign path_type = "#" %} + {% when "jekyll-archives" %} + {% assign path_type = nil %} +{% endcase %} + +{% if page.collection != 'posts' %} + {% assign path_type = nil %} + {% assign crumb_path = '/' %} +{% else %} + {% assign crumb_path = site.categories.path %} +{% endif %} + + \ No newline at end of file diff --git a/_includes/browser-upgrade.html b/_includes/browser-upgrade.html new file mode 100644 index 0000000..e8d8b26 --- /dev/null +++ b/_includes/browser-upgrade.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/_includes/category-list.html b/_includes/category-list.html new file mode 100644 index 0000000..a2a623e --- /dev/null +++ b/_includes/category-list.html @@ -0,0 +1,30 @@ +{% include base_path %} + +{% include base_path %} + +{% case site.category_archive.type %} + {% when "liquid" %} + {% assign path_type = "#" %} + {% when "jekyll-archives" %} + {% assign path_type = nil %} +{% endcase %} + +{% if site.category_archive.path %} + {% comment %} + + + {% endcomment %} + {% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %} + {% assign category_hashes = (page_categories | split: ',' | sort:0) %} + +

    + {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} + + {% for hash in category_hashes %} + {% assign keyValue = hash | split: '#' %} + {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %} + {% unless forloop.last %}, {% endunless %} + {% endfor %} + +

    +{% endif %} \ No newline at end of file diff --git a/_includes/comment.html b/_includes/comment.html new file mode 100644 index 0000000..ec954f5 --- /dev/null +++ b/_includes/comment.html @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/_includes/comments-providers/custom.html b/_includes/comments-providers/custom.html new file mode 100644 index 0000000..9099369 --- /dev/null +++ b/_includes/comments-providers/custom.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/_includes/comments-providers/discourse.html b/_includes/comments-providers/discourse.html new file mode 100644 index 0000000..1d23b6f --- /dev/null +++ b/_includes/comments-providers/discourse.html @@ -0,0 +1,14 @@ +{% if site.comments.discourse.server %} +{% include base_path %} +{% capture canonical %}{{ base_path }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %} + + +{% endif %} \ No newline at end of file diff --git a/_includes/comments-providers/disqus.html b/_includes/comments-providers/disqus.html new file mode 100644 index 0000000..c6fc691 --- /dev/null +++ b/_includes/comments-providers/disqus.html @@ -0,0 +1,22 @@ +{% if site.comments.disqus.shortname %} + + +{% endif %} \ No newline at end of file diff --git a/_includes/comments-providers/facebook.html b/_includes/comments-providers/facebook.html new file mode 100644 index 0000000..009dc1c --- /dev/null +++ b/_includes/comments-providers/facebook.html @@ -0,0 +1,8 @@ +
    + \ No newline at end of file diff --git a/_includes/comments-providers/google-plus.html b/_includes/comments-providers/google-plus.html new file mode 100644 index 0000000..0b4ff6b --- /dev/null +++ b/_includes/comments-providers/google-plus.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/_includes/comments-providers/scripts.html b/_includes/comments-providers/scripts.html new file mode 100644 index 0000000..ed192f7 --- /dev/null +++ b/_includes/comments-providers/scripts.html @@ -0,0 +1,18 @@ +{% if site.comments.provider and page.comments %} + +{% case site.comments.provider %} +{% when "disqus" %} + {% include /comments-providers/disqus.html %} +{% when "discourse" %} + {% include /comments-providers/discourse.html %} +{% when "facebook" %} + {% include /comments-providers/facebook.html %} +{% when "google-plus" %} + {% include /comments-providers/google-plus.html %} +{% when "staticman" %} + {% include /comments-providers/staticman.html %} +{% when "custom" %} + {% include /comments-providers/custom.html %} +{% endcase %} + +{% endif %} \ No newline at end of file diff --git a/_includes/comments-providers/staticman.html b/_includes/comments-providers/staticman.html new file mode 100644 index 0000000..471fa86 --- /dev/null +++ b/_includes/comments-providers/staticman.html @@ -0,0 +1,42 @@ +{% if site.repository and site.staticman.branch %} + +{% endif %} \ No newline at end of file diff --git a/_includes/comments.html b/_includes/comments.html new file mode 100644 index 0000000..53bc539 --- /dev/null +++ b/_includes/comments.html @@ -0,0 +1,81 @@ +{% include base_path %} + +
    + {% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %} + {% case site.comments.provider %} + {% when "disqus" %} +

    {{ comments_label }}

    +
    + {% when "facebook" %} +

    {{ comments_label }}

    +
    + {% when "google-plus" %} +

    {{ comments_label }}

    +
    Loading Google+ Comments ...
    + {% when "staticman" %} +
    + {% if site.repository and site.staticman.branch %} + +
    + {% if site.data.comments[page.slug] %} +

    {{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}

    + {% assign comments = site.data.comments[page.slug] | sort %} + + {% for comment in comments %} + {% assign email = comment[1].email %} + {% assign name = comment[1].name %} + {% assign url = comment[1].url %} + {% assign date = comment[1].date %} + {% assign message = comment[1].message %} + {% include comment.html index=forloop.index email=email name=name url=url date=date message=message %} + {% endfor %} + {% endif %} +
    + + + +

    {{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}

    +

    {{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *

    +
    +
    + + {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }} +
    + +
    + + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + + + +
    + +
    +
    + + {% endif %} +
    + {% when "custom" %} +
    + {% endcase %} +
    \ No newline at end of file diff --git a/_includes/feature_row b/_includes/feature_row new file mode 100644 index 0000000..b84f36b --- /dev/null +++ b/_includes/feature_row @@ -0,0 +1,52 @@ +{% include base_path %} + +{% if include.id %} + {% assign feature_row = page.[include.id] %} +{% else %} + {% assign feature_row = page.feature_row %} +{% endif %} + +
    + + {% for f in feature_row %} + + {% if f.url contains "://" %} + {% capture f_url %}{{ f.url }}{% endcapture %} + {% else %} + {% capture f_url %}{{ f.url | prepend: base_path }}{% endcapture %} + {% endif %} + +
    +
    + {% if f.image_path %} +
    + {% if f.alt %}{{ f.alt }}{% endif %} +
    + {% endif %} + +
    + {% if f.title %} +

    {{ f.title }}

    + {% endif %} + + {% if f.excerpt %} +
    + {{ f.excerpt | markdownify }} +
    + {% endif %} + + {% if f.url %} +

    {{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}

    + {% endif %} +
    +
    +
    + {% endfor %} + +
    \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..224d9b8 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,24 @@ +{% include base_path %} + + + + diff --git a/_includes/footer/custom.html b/_includes/footer/custom.html new file mode 100644 index 0000000..cce5904 --- /dev/null +++ b/_includes/footer/custom.html @@ -0,0 +1,3 @@ + +Sitemap + diff --git a/_includes/gallery b/_includes/gallery new file mode 100644 index 0000000..4d271ee --- /dev/null +++ b/_includes/gallery @@ -0,0 +1,49 @@ +{% include base_path %} + +{% if include.id %} + {% assign gallery = page.[include.id] %} +{% else %} + {% assign gallery = page.gallery %} +{% endif %} + +{% if gallery.size == 2 %} + {% assign gallery_layout = 'half' %} +{% elsif gallery.size >= 3 %} + {% assign gallery_layout = 'third' %} +{% else %} + {% assign gallery_layout = '' %} +{% endif %} + + \ No newline at end of file diff --git a/_includes/group-by-array b/_includes/group-by-array new file mode 100644 index 0000000..251302c --- /dev/null +++ b/_includes/group-by-array @@ -0,0 +1,47 @@ + + + +{% assign __empty_array = '' | split: ',' %} +{% assign group_names = __empty_array %} +{% assign group_items = __empty_array %} + + +{% assign __names = include.collection | map: include.field %} + + +{% assign __names = __names | join: ',' | join: ',' | split: ',' %} + + +{% assign __names = __names | sort %} +{% for name in __names | sort %} + + +{% unless name == previous %} + + +{% assign group_names = group_names | push: name %} +{% endunless %} + +{% assign previous = name %} +{% endfor %} + + + +{% for name in group_names %} + + +{% assign __item = __empty_array %} +{% for __element in include.collection %} +{% if __element[include.field] contains name %} +{% assign __item = __item | push: __element %} +{% endif %} +{% endfor %} + + +{% assign group_items = group_items | push: __item %} +{% endfor %} \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..ffcc741 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,21 @@ +{% include base_path %} + + + +{% include seo.html %} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_includes/head/custom.html b/_includes/head/custom.html new file mode 100644 index 0000000..2a0b1c2 --- /dev/null +++ b/_includes/head/custom.html @@ -0,0 +1,38 @@ +{% include base_path %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_includes/masthead.html b/_includes/masthead.html new file mode 100644 index 0000000..ffef559 --- /dev/null +++ b/_includes/masthead.html @@ -0,0 +1,23 @@ +{% include base_path %} + +
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/_includes/nav_list b/_includes/nav_list new file mode 100644 index 0000000..91228ba --- /dev/null +++ b/_includes/nav_list @@ -0,0 +1,46 @@ +{% include base_path %} +{% assign navigation = site.data.navigation[include.nav] %} + + \ No newline at end of file diff --git a/_includes/page__hero.html b/_includes/page__hero.html new file mode 100644 index 0000000..cd0fa9f --- /dev/null +++ b/_includes/page__hero.html @@ -0,0 +1,55 @@ +{% include base_path %} + +{% if page.header.image contains "://" %} + {% capture img_path %}{{ page.header.image }}{% endcapture %} +{% else %} + {% capture img_path %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endcapture %} +{% endif %} + +{% if page.header.cta_url contains "://" %} + {% capture cta_path %}{{ page.header.cta_url }}{% endcapture %} +{% else %} + {% capture cta_path %}{{ page.header.cta_url | prepend: base_path }}{% endcapture %} +{% endif %} + +{% if page.header.overlay_image contains "://" %} + {% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %} +{% elsif page.header.overlay_image %} + {% capture overlay_img_path %}{{ page.header.overlay_image | prepend: "/images/" | prepend: base_path }}{% endcapture %} +{% endif %} + +{% if page.header.overlay_filter contains "rgba" %} + {% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %} +{% elsif page.header.overlay_filter %} + {% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %} +{% endif %} + +
    + {% if page.header.overlay_color or page.header.overlay_image %} +
    +

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

    " | remove: "

    " }} + {% endif %} +

    + {% if page.excerpt %} +

    {{ page.excerpt | markdownify | remove: "

    " | remove: "

    " }}

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

    {% include read-time.html %}

    + {% endif %} + {% if page.header.cta_url %} +

    {{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}

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

    " | remove: "

    " }}
    + {% endif %} +
    \ No newline at end of file diff --git a/_includes/page__taxonomy.html b/_includes/page__taxonomy.html new file mode 100644 index 0000000..5a0c39f --- /dev/null +++ b/_includes/page__taxonomy.html @@ -0,0 +1,9 @@ +{% include base_path %} + +{% if site.tag_archive.type and page.tags[0] %} + {% include tag-list.html %} +{% endif %} + +{% if site.category_archive.type and page.categories[0] %} + {% include category-list.html %} +{% endif %} \ No newline at end of file diff --git a/_includes/paginator.html b/_includes/paginator.html new file mode 100644 index 0000000..2924f9a --- /dev/null +++ b/_includes/paginator.html @@ -0,0 +1,70 @@ +{% include base_path %} + +{% if paginator.total_pages > 1 %} + +{% endif %} \ No newline at end of file diff --git a/_includes/post_pagination.html b/_includes/post_pagination.html new file mode 100644 index 0000000..cb2005e --- /dev/null +++ b/_includes/post_pagination.html @@ -0,0 +1,16 @@ +{% include base_path %} + +{% if page.previous or page.next %} + +{% endif %} \ No newline at end of file diff --git a/_includes/read-time.html b/_includes/read-time.html new file mode 100644 index 0000000..a45043c --- /dev/null +++ b/_includes/read-time.html @@ -0,0 +1,17 @@ +{% if post.read_time %} + {% assign words = post.content | strip_html | number_of_words %} +{% elsif page.read_time %} + {% assign words = page.content | strip_html | number_of_words %} +{% endif %} + +{% if site.words_per_minute %} + {% if words < 180 %} + {{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% elsif words < 360 %} + 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% else %} + {{ words | divided_by:site.words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% endif %} +{% else %} + {{ site.data.ui-text[site.locale].undefined_wpm | "Undefined parameter words_per_minute at _config.yml" }} +{% endif %} \ No newline at end of file diff --git a/_includes/scripts.html b/_includes/scripts.html new file mode 100644 index 0000000..138d271 --- /dev/null +++ b/_includes/scripts.html @@ -0,0 +1,4 @@ + + +{% include analytics.html %} +{% include /comments-providers/scripts.html %} diff --git a/_includes/seo.html b/_includes/seo.html new file mode 100644 index 0000000..a43115b --- /dev/null +++ b/_includes/seo.html @@ -0,0 +1,139 @@ +{% include base_path %} + + +{% if site.url %} + {% assign seo_url = site.url | append: site.baseurl %} +{% endif %} +{% assign seo_url = seo_url | default: site.github.url %} + +{% if page.title %} + {% assign seo_title = page.title | append: " " | append: site.title_separator | append: " " | append: site.title %} +{% endif %} + +{% if seo_title %} + {% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %} +{% endif %} + +{% if site.url %} + {% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %} +{% endif %} + +{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ site.title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %} + +{% assign seo_description = page.description | default: page.excerpt | default: site.description %} +{% if seo_description %} + {% assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once %} +{% endif %} + +{% assign seo_author = page.author | default: page.author[0] | default: site.author[0] %} +{% if seo_author %} + {% if seo_author.twitter %} + {% assign seo_author_twitter = seo_author.twitter %} + {% else %} + {% if site.data.authors and site.data.authors[seo_author] %} + {% assign seo_author_twitter = site.data.authors[seo_author].twitter %} + {% else %} + {% assign seo_author_twitter = seo_author %} + {% endif %} + {% endif %} + {% assign seo_author_twitter = seo_author_twitter | replace: "@", "" %} +{% endif %} + + + + + +{% if seo_url %} + + +{% endif %} + +{% if page.excerpt %} + +{% endif %} + +{% if site.twitter.username %} + + + + + + {% if page.header.image %} + + + {% else %} + + {% if site.og_image %} + + {% endif %} + {% endif %} + + {% if seo_author_twitter %} + + {% endif %} +{% endif %} + +{% if site.facebook %} + {% if site.facebook.publisher %} + + {% endif %} + + {% if site.facebook.app_id %} + + {% endif %} +{% endif %} + +{% if page.header.image %} + +{% elsif page.header.overlay_image %} + +{% endif %} + +{% if page.date %} + + +{% endif %} + +{% if paginator.previous_page %} + +{% endif %} +{% if paginator.next_page %} + +{% endif %} + +{% if site.og_image %} + +{% endif %} + +{% if site.social %} + +{% endif %} + +{% if site.google_site_verification %} + +{% endif %} +{% if site.bing_site_verification %} + +{% endif %} +{% if site.alexa_site_verification %} + +{% endif %} +{% if site.yandex_site_verification %} + +{% endif %} + diff --git a/_includes/sidebar.html b/_includes/sidebar.html new file mode 100644 index 0000000..b8ee39a --- /dev/null +++ b/_includes/sidebar.html @@ -0,0 +1,25 @@ +{% include base_path %} + +{% if page.author_profile or layout.author_profile or page.sidebar %} + +{% endif %} \ No newline at end of file diff --git a/_includes/social-share.html b/_includes/social-share.html new file mode 100644 index 0000000..3eeafbd --- /dev/null +++ b/_includes/social-share.html @@ -0,0 +1,13 @@ +{% include base_path %} + + \ No newline at end of file diff --git a/_includes/tag-list.html b/_includes/tag-list.html new file mode 100644 index 0000000..80fcff3 --- /dev/null +++ b/_includes/tag-list.html @@ -0,0 +1,28 @@ +{% include base_path %} + +{% case site.tag_archive.type %} + {% when "liquid" %} + {% assign path_type = "#" %} + {% when "jekyll-archives" %} + {% assign path_type = nil %} +{% endcase %} + +{% if site.tag_archive.path %} + {% comment %} + + + {% endcomment %} + {% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %} + {% assign tag_hashes = (page_tags | split: ',' | sort:0) %} + +

    + {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} + + {% for hash in tag_hashes %} + {% assign keyValue = hash | split: '#' %} + {% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %} + {% unless forloop.last %}, {% endunless %} + {% endfor %} + +

    +{% endif %} \ No newline at end of file diff --git a/_includes/toc b/_includes/toc new file mode 100644 index 0000000..6ba831c --- /dev/null +++ b/_includes/toc @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/_layouts/archive-taxonomy.html b/_layouts/archive-taxonomy.html new file mode 100644 index 0000000..4d5827f --- /dev/null +++ b/_layouts/archive-taxonomy.html @@ -0,0 +1,16 @@ +--- +layout: default +author_profile: false +--- + +
    + {% include sidebar.html %} + +
    +

    {{ page.title }}

    + {% include base_path %} + {% for post in page.posts %} + {% include archive-single.html %} + {% endfor %} +
    +
    \ No newline at end of file diff --git a/_layouts/archive.html b/_layouts/archive.html new file mode 100644 index 0000000..1b1d174 --- /dev/null +++ b/_layouts/archive.html @@ -0,0 +1,24 @@ +--- +layout: default +--- + +{% if page.header.overlay_color or page.header.overlay_image or page.header.image %} + {% include page__hero.html %} +{% endif %} + +{% if page.url != "/" and site.breadcrumbs %} + {% unless paginator %} + {% include breadcrumbs.html %} + {% endunless %} +{% endif %} + +
    + {% include sidebar.html %} + +
    + {% unless page.header.overlay_color or page.header.overlay_image %} +

    {{ page.title }}

    + {% endunless %} + {{ content }} +
    +
    diff --git a/_layouts/compress.html b/_layouts/compress.html new file mode 100644 index 0000000..8248010 --- /dev/null +++ b/_layouts/compress.html @@ -0,0 +1,10 @@ +--- +# Jekyll layout that compresses HTML +# v3.0.2 +# http://jch.penibelst.de/ +# © 2014–2015 Anatol Broder +# MIT License +--- + +{% capture _LINE_FEED %} +{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %}
    Step Bytes
    raw {{ content | size }}{% if _profile_endings %}
    endings {{ _profile_endings }}{% endif %}{% if _profile_startings %}
    startings {{ _profile_startings }}{% endif %}{% if _profile_comments %}
    comments {{ _profile_comments }}{% endif %}{% if _profile_collapse %}
    collapse {{ _profile_collapse }}{% endif %}{% if _profile_clippings %}
    clippings {{ _profile_clippings }}{% endif %}
    {% endif %}{% endif %} diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..836ecbd --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,31 @@ +--- +layout: compress +--- + +{% include base_path %} + + + + + {% include head.html %} + {% include head/custom.html %} + + + + + {% include browser-upgrade.html %} + {% include masthead.html %} + + {{ content }} + + + + {% include scripts.html %} + + + diff --git a/_layouts/single.html b/_layouts/single.html new file mode 100644 index 0000000..6290cd2 --- /dev/null +++ b/_layouts/single.html @@ -0,0 +1,90 @@ +--- +layout: default +--- + +{% include base_path %} + +{% if page.header.overlay_color or page.header.overlay_image or page.header.image %} + {% include page__hero.html %} +{% endif %} + +{% if page.url != "/" and site.breadcrumbs %} + {% unless paginator %} + {% include breadcrumbs.html %} + {% endunless %} +{% endif %} + +
    + {% include sidebar.html %} + +
    + {% if page.title %}{% endif %} + {% if page.excerpt %}{% endif %} + {% if page.date %}{% endif %} + {% if page.modified %}{% endif %} + +
    + {% unless page.header.overlay_color or page.header.overlay_image %} +
    + {% if page.title %}

    {{ page.title | markdownify | remove: "

    " | remove: "

    " }}

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

    {% include read-time.html %}

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

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

    + {% endif %} + + {% if page.collection == 'teaching' %} +

    {{ page.type }}, {{ page.venue }}, {{ page.date | default: "1900-01-01" | date: "%Y" }}

    + {% elsif page.venue and page.date %} +

    Published in {{ page.venue }}, {{ page.date | default: "1900-01-01" | date: "%Y" }}

    + {% elsif page.date %} +

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

    + {% endif %} + + + {% if page.citation and page.paperurl %} +

    Recommended citation: {{ page.citation }} {{ page.paperurl }}

    + {% elsif page.citation %} +

    Recommended citation: {{ page.citation }}

    + {% endif %} + +
    + {% endunless %} + +
    + {{ content }} + {% if page.link %}{% endif %} +
    + +
    + {% if site.data.ui-text[site.locale].meta_label %} +

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

    + {% endif %} + {% include page__taxonomy.html %} +
    + + {% if page.share %}{% include social-share.html %}{% endif %} + + {% include post_pagination.html %} +
    + + {% if site.comments.provider and page.comments %} + {% include comments.html %} + {% endif %} +
    + + {% comment %}{% endcomment %} + {% if page.id and page.related and site.related_posts.size > 0 %} + + {% endif %} +
    diff --git a/_layouts/splash.html b/_layouts/splash.html new file mode 100644 index 0000000..72d0d87 --- /dev/null +++ b/_layouts/splash.html @@ -0,0 +1,22 @@ +--- +layout: default +--- + +{% include base_path %} + +{% if page.header.overlay_color or page.header.overlay_image or page.header.image %} + {% include page__hero.html %} +{% endif %} + +
    +
    + {% if page.title %}{% endif %} + {% if page.excerpt %}{% endif %} + {% if page.date %}{% endif %} + {% if page.modified %}{% endif %} + +
    + {{ content }} +
    +
    +
    diff --git a/_layouts/talk.html b/_layouts/talk.html new file mode 100644 index 0000000..757aa61 --- /dev/null +++ b/_layouts/talk.html @@ -0,0 +1,78 @@ +--- +layout: default +--- + +{% include base_path %} + +{% if page.header.overlay_color or page.header.overlay_image or page.header.image %} + {% include page__hero.html %} +{% endif %} + +{% if page.url != "/" and site.breadcrumbs %} + {% unless paginator %} + {% include breadcrumbs.html %} + {% endunless %} +{% endif %} + +
    + {% include sidebar.html %} + +
    + {% if page.title %}{% endif %} + {% if page.excerpt %}{% endif %} + {% if page.date %}{% endif %} + {% if page.modified %}{% endif %} + +
    + {% unless page.header.overlay_color or page.header.overlay_image %} +
    + {% if page.title %}

    {{ page.title | markdownify | remove: "

    " | remove: "

    " }}

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

    {% include read-time.html %}

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

    Date:

    + {% elsif page.date %} +

    Date:

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

    {{page.talk_type}} at {{ page.venue }}, {{page.location}} {% endif %} + +

    + {% endunless %} + +
    + {{ content }} + {% if page.link %}{% endif %} +
    + +
    + {% if site.data.ui-text[site.locale].meta_label %} +

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

    + {% endif %} + {% include page__taxonomy.html %} +
    + + {% if page.share %}{% include social-share.html %}{% endif %} + + {% include post_pagination.html %} +
    + + {% if site.comments.provider and page.comments %} + {% include comments.html %} + {% endif %} +
    + + {% comment %}{% endcomment %} + {% if page.id and page.related and site.related_posts.size > 0 %} + + {% endif %} +
    diff --git a/_pages/404.md b/_pages/404.md new file mode 100644 index 0000000..9d0f860 --- /dev/null +++ b/_pages/404.md @@ -0,0 +1,16 @@ +--- +title: "Page Not Found" +excerpt: "Page not found. Your pixels are in another canvas." +sitemap: false +permalink: /404.html +--- + +Sorry, but the page you were trying to view does not exist --- perhaps you can try searching for it below. + + + diff --git a/_pages/about.md b/_pages/about.md new file mode 100644 index 0000000..e7185db --- /dev/null +++ b/_pages/about.md @@ -0,0 +1,50 @@ +--- +permalink: / +title: "academicpages is a ready-to-fork GitHub Pages template for academic personal websites" +excerpt: "About me" +author_profile: true +redirect_from: + - /about/ + - /about.html +--- + +This is the front page of a website that is powered by the [academicpages template](https://github.com/academicpages/academicpages.github.io) and hosted on GitHub pages. [GitHub pages](https://pages.github.com) is a free service in which websites are built and hosted from code and data stored in a GitHub repository, automatically updating when a new commit is made to the respository. This template was forked from the [Minimal Mistakes Jekyll Theme](https://mmistakes.github.io/minimal-mistakes/) created by Michael Rose, and then extended to support the kinds of content that academics have: publications, talks, teaching, a portfolio, blog posts, and a dynamically-generated CV. You can fork [this repository](https://github.com/academicpages/academicpages.github.io) right now, modify the configuration and markdown files, add your own PDFs and other content, and have your own site for free, with no ads! An older version of this template powers my own personal website at [stuartgeiger.com](http://stuartgeiger.com), which uses [this Github repository](https://github.com/staeiou/staeiou.github.io). + +A data-driven personal website +====== +Like many other Jekyll-based GitHub Pages templates, academicpages makes you separate the website's content from its form. The content & metadata of your website are in structured markdown files, while various other files constitute the theme, specifying how to transform that content & metadata into HTML pages. You keep these various markdown (.md), YAML (.yml), HTML, and CSS files in a public GitHub repository. Each time you commit and push an update to the repository, the [GitHub pages](https://pages.github.com/) service creates static HTML pages based on these files, which are hosted on GitHub's servers free of charge. + +Many of the features of dynamic content management systems (like Wordpress) can be achieved in this fashion, using a fraction of the computational resources and with far less vulnerability to hacking and DDoSing. You can also modify the theme to your heart's content without touching the content of your site. If you get to a point where you've broken something in Jekyll/HTML/CSS beyond repair, your markdown files describing your talks, publications, etc. are safe. You can rollback the changes or even delete the repository and start over -- just be sure to save the markdown files! Finally, you can also write scripts that process the structured data on the site, such as [this one](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.ipynb) that analyzes metadata in pages about talks to display [a map of every location you've given a talk](https://academicpages.github.io/talkmap.html). + +Getting started +====== +1. Register a GitHub account if you don't have one and confirm your e-mail (required!) +1. Fork [this repository](https://github.com/academicpages/academicpages.github.io) by clicking the "fork" button in the top right. +1. Go to the repository's settings (rightmost item in the tabs that start with "Code", should be below "Unwatch"). Rename the repository "[your GitHub username].github.io", which will also be your website's URL. +1. Set site-wide configuration and create content & metadata (see below -- also see [this set of diffs](http://archive.is/3TPas) showing what files were changed to set up [an example site](https://getorg-testacct.github.io) for a user with the username "getorg-testacct") +1. Upload any files (like PDFs, .zip files, etc.) to the files/ directory. They will appear at https://[your GitHub username].github.io/files/example.pdf. +1. Check status by going to the repository settings, in the "GitHub pages" section + +Site-wide configuration +------ +The main configuration file for the site is in the base directory in [_config.yml](https://github.com/academicpages/academicpages.github.io/blob/master/_config.yml), which defines the content in the sidebars and other site-wide features. You will need to replace the default variables with ones about yourself and your site's github repository. The configuration file for the top menu is in [_data/navigation.yml](https://github.com/academicpages/academicpages.github.io/blob/master/_data/navigation.yml). For example, if you don't have a portfolio or blog posts, you can remove those items from that navigation.yml file to remove them from the header. + +Create content & metadata +------ +For site content, there is one markdown file for each type of content, which are stored in directories like _publications, _talks, _posts, _teaching, or _pages. For example, each talk is a markdown file in the [_talks directory](https://github.com/academicpages/academicpages.github.io/tree/master/_talks). At the top of each markdown file is structured data in YAML about the talk, which the theme will parse to do lots of cool stuff. The same structured data about a talk is used to generate the list of talks on the [Talks page](https://academicpages.github.io/talks), each [individual page](https://academicpages.github.io/talks/2012-03-01-talk-1) for specific talks, the talks section for the [CV page](https://academicpages.github.io/cv), and the [map of places you've given a talk](https://academicpages.github.io/talkmap.html) (if you run this [python file](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.py) or [Jupyter notebook](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.ipynb), which creates the HTML for the map based on the contents of the _talks directory). + +**Markdown generator** + +I have also created [a set of Jupyter notebooks](https://github.com/academicpages/academicpages.github.io/tree/master/markdown_generator +) that converts a CSV containing structured data about talks or presentations into individual markdown files that will be properly formatted for the academicpages template. The sample CSVs in that directory are the ones I used to create my own personal website at stuartgeiger.com. My usual workflow is that I keep a spreadsheet of my publications and talks, then run the code in these notebooks to generate the markdown files, then commit and push them to the GitHub repository. + +How to edit your site's GitHub repository +------ +Many people use a git client to create files on their local computer and then push them to GitHub's servers. If you are not familiar with git, you can directly edit these configuration and markdown files directly in the github.com interface. Navigate to a file (like [this one](https://github.com/academicpages/academicpages.github.io/blob/master/_talks/2012-03-01-talk-1.md) and click the pencil icon in the top right of the content preview (to the right of the "Raw | Blame | History" buttons). You can delete a file by clicking the trashcan icon to the right of the pencil icon. You can also create new files or upload files by navigating to a directory and clicking the "Create new file" or "Upload files" buttons. + +Example: editing a markdown file for a talk +![Editing a markdown file for a talk](/images/editing-talk.png) + +For more info +------ +More info about configuring academicpages can be found in [the guide](https://academicpages.github.io/markdown/). The [guides for the Minimal Mistakes theme](https://mmistakes.github.io/minimal-mistakes/docs/configuration/) (which this theme was forked from) might also be helpful. diff --git a/_pages/archive-layout-with-content.md b/_pages/archive-layout-with-content.md new file mode 100644 index 0000000..666d7a5 --- /dev/null +++ b/_pages/archive-layout-with-content.md @@ -0,0 +1,177 @@ +--- +title: "Archive Layout with Content" +layout: archive +permalink: /archive-layout-with-content/ +--- + +A variety of common markup showing how the theme styles them. + +# Header one + +## Header two + +### Header three + +#### Header four + +##### Header five + +###### Header six + +## Blockquotes + +Single line blockquote: + +> Quotes are cool. + +## Tables + +| Entry | Item | | +| -------- | ------ | ------------------------------------------------------------ | +| [John Doe](#) | 2016 | Description of the item in the list | +| [Jane Doe](#) | 2019 | Description of the item in the list | +| [Doe Doe](#) | 2022 | Description of the item in the list | + +| Header1 | Header2 | Header3 | +|:--------|:-------:|--------:| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|-----------------------------| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|=============================| +| Foot1 | Foot2 | Foot3 | + +## Definition Lists + +Definition List Title +: Definition list division. + +Startup +: A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model. + +#dowork +: Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends. + +Do It Live +: I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one. + +## Unordered Lists (Nested) + + * List item one + * List item one + * List item one + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + +## Ordered List (Nested) + + 1. List item one + 1. List item one + 1. List item one + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + +## Buttons + +Make any link standout more when applying the `.btn` class. + +## Notices + +**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph. +{: .notice} + +## HTML Tags + +### Address Tag + +
    + 1 Infinite Loop
    Cupertino, CA 95014
    United States +
    + +### Anchor Tag (aka. Link) + +This is an example of a [link](http://github.com "Github"). + +### Abbreviation Tag + +The abbreviation CSS stands for "Cascading Style Sheets". + +*[CSS]: Cascading Style Sheets + +### Cite Tag + +"Code is poetry." ---Automattic + +### Code Tag + +You will learn later on in these tests that `word-wrap: break-word;` will be your best friend. + +### Strike Tag + +This tag will let you strikeout text. + +### Emphasize Tag + +The emphasize tag should _italicize_ text. + +### Insert Tag + +This tag should denote inserted text. + +### Keyboard Tag + +This scarcely known tag emulates keyboard text, which is usually styled like the `` tag. + +### Preformatted Tag + +This tag styles large blocks of code. + +
    +.post-title {
    +  margin: 0 0 5px;
    +  font-weight: bold;
    +  font-size: 38px;
    +  line-height: 1.2;
    +  and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
    +}
    +
    + +### Quote Tag + +Developers, developers, developers… –Steve Ballmer + +### Strong Tag + +This tag shows **bold text**. + +### Subscript Tag + +Getting our science styling on with H2O, which should push the "2" down. + +### Superscript Tag + +Still sticking with science and Isaac Newton's E = MC2, which should lift the 2 up. + +### Variable Tag + +This allows you to denote variables. + +{% include base_path %} +{% for post in site.pages %} +{% include archive-single.html %} +{% endfor %} \ No newline at end of file diff --git a/_pages/category-archive.html b/_pages/category-archive.html new file mode 100644 index 0000000..3ed3378 --- /dev/null +++ b/_pages/category-archive.html @@ -0,0 +1,17 @@ +--- +layout: archive +permalink: /categories/ +title: "Posts by Category" +author_profile: true +--- + +{% include base_path %} +{% include group-by-array collection=site.posts field="categories" %} + +{% for category in group_names %} + {% assign posts = group_items[forloop.index0] %} +

    {{ category }}

    + {% for post in posts %} + {% include archive-single.html %} + {% endfor %} +{% endfor %} \ No newline at end of file diff --git a/_pages/collection-archive.html b/_pages/collection-archive.html new file mode 100644 index 0000000..344c51e --- /dev/null +++ b/_pages/collection-archive.html @@ -0,0 +1,24 @@ +--- +layout: archive +title: "Posts by Collection" +permalink: /collection-archive/ +author_profile: true +--- + +{% include base_path %} +{% capture written_label %}'None'{% endcapture %} + +{% for collection in site.collections %} + {% unless collection.output == false or collection.label == "posts" %} + {% capture label %}{{ collection.label }}{% endcapture %} + {% if label != written_label %} +

    {{ label }}

    + {% capture written_label %}{{ label }}{% endcapture %} + {% endif %} + {% endunless %} + {% for post in collection.docs %} + {% unless collection.output == false or collection.label == "posts" %} + {% include archive-single.html %} + {% endunless %} + {% endfor %} +{% endfor %} \ No newline at end of file diff --git a/_pages/cv.md b/_pages/cv.md new file mode 100644 index 0000000..e0e8354 --- /dev/null +++ b/_pages/cv.md @@ -0,0 +1,59 @@ +--- +layout: archive +title: "CV" +permalink: /cv/ +author_profile: true +redirect_from: + - /resume +--- + +{% include base_path %} + +Education +====== +* B.S. in GitHub, GitHub University, 2012 +* M.S. in Jekyll, GitHub University, 2014 +* Ph.D in Version Control Theory, GitHub University, 2018 (expected) + +Work experience +====== +* Summer 2015: Research Assistant + * Github University + * Duties included: Tagging issues + * Supervisor: Professor Git + +* Fall 2015: Research Assistant + * Github University + * Duties included: Merging pull requests + * Supervisor: Professor Hub + +Skills +====== +* Skill 1 +* Skill 2 + * Sub-skill 2.1 + * Sub-skill 2.2 + * Sub-skill 2.3 +* Skill 3 + +Publications +====== +
      {% for post in site.publications %} + {% include archive-single-cv.html %} + {% endfor %}
    + +Talks +====== +
      {% for post in site.talks %} + {% include archive-single-talk-cv.html %} + {% endfor %}
    + +Teaching +====== +
      {% for post in site.teaching %} + {% include archive-single-cv.html %} + {% endfor %}
    + +Service and leadership +====== +* Currently signed in to 43 different slack teams diff --git a/_pages/markdown.md b/_pages/markdown.md new file mode 100644 index 0000000..86f082e --- /dev/null +++ b/_pages/markdown.md @@ -0,0 +1,202 @@ +--- +permalink: /markdown/ +title: "Markdown" +author_profile: true +redirect_from: + - /md/ + - /markdown.html +--- + +## Locations of key files/directories + +* Basic config options: _config.yml +* Top navigation bar config: _data/navigation.yml +* Single pages: _pages/ +* Collections of pages are .md or .html files in: + * _publications/ + * _portfolio/ + * _posts/ + * _teaching/ + * _talks/ +* Footer: _includes/footer.html +* Static files (like PDFs): /files/ +* Profile image (can set in _config.yml): images/profile.png + +## Tips and hints + +* Name a file ".md" to have it render in markdown, name it ".html" to render in HTML. +* Go to the [commit list](https://github.com/academicpages/academicpages.github.io/commits/master) (on your repo) to find the last version Github built with Jekyll. + * Green check: successful build + * Orange circle: building + * Red X: error + * No icon: not built + +## Resources + * [Liquid syntax guide](https://shopify.github.io/liquid/tags/control-flow/) + +## Markdown guide + +### Header three + +#### Header four + +##### Header five + +###### Header six + +## Blockquotes + +Single line blockquote: + +> Quotes are cool. + +## Tables + +### Table 1 + +| Entry | Item | | +| -------- | ------ | ------------------------------------------------------------ | +| [John Doe](#) | 2016 | Description of the item in the list | +| [Jane Doe](#) | 2019 | Description of the item in the list | +| [Doe Doe](#) | 2022 | Description of the item in the list | + +### Table 2 + +| Header1 | Header2 | Header3 | +|:--------|:-------:|--------:| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|-----------------------------| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|=============================| +| Foot1 | Foot2 | Foot3 | + +## Definition Lists + +Definition List Title +: Definition list division. + +Startup +: A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model. + +#dowork +: Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends. + +Do It Live +: I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one. + +## Unordered Lists (Nested) + + * List item one + * List item one + * List item one + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + +## Ordered List (Nested) + + 1. List item one + 1. List item one + 1. List item one + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + +## Buttons + +Make any link standout more when applying the `.btn` class. + +## Notices + +**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph. +{: .notice} + +## HTML Tags + +### Address Tag + +
    + 1 Infinite Loop
    Cupertino, CA 95014
    United States +
    + +### Anchor Tag (aka. Link) + +This is an example of a [link](http://github.com "Github"). + +### Abbreviation Tag + +The abbreviation CSS stands for "Cascading Style Sheets". + +*[CSS]: Cascading Style Sheets + +### Cite Tag + +"Code is poetry." ---Automattic + +### Code Tag + +You will learn later on in these tests that `word-wrap: break-word;` will be your best friend. + +### Strike Tag + +This tag will let you strikeout text. + +### Emphasize Tag + +The emphasize tag should _italicize_ text. + +### Insert Tag + +This tag should denote inserted text. + +### Keyboard Tag + +This scarcely known tag emulates keyboard text, which is usually styled like the `` tag. + +### Preformatted Tag + +This tag styles large blocks of code. + +
    +.post-title {
    +  margin: 0 0 5px;
    +  font-weight: bold;
    +  font-size: 38px;
    +  line-height: 1.2;
    +  and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
    +}
    +
    + +### Quote Tag + +Developers, developers, developers… –Steve Ballmer + +### Strong Tag + +This tag shows **bold text**. + +### Subscript Tag + +Getting our science styling on with H2O, which should push the "2" down. + +### Superscript Tag + +Still sticking with science and Isaac Newton's E = MC2, which should lift the 2 up. + +### Variable Tag + +This allows you to denote variables. diff --git a/_pages/non-menu-page.md b/_pages/non-menu-page.md new file mode 100644 index 0000000..d257644 --- /dev/null +++ b/_pages/non-menu-page.md @@ -0,0 +1,17 @@ +--- +permalink: /non-menu-page/ +title: "Page not in menu" +excerpt: "This is a page not in th emain menu" +author_profile: true +redirect_from: + - "/nmp/" + - "/nmp.html" +--- + +This is a page not in the menu. You can use markdown in this page. + +Heading 1 +====== + +Heading 2 +====== diff --git a/_pages/page-archive.html b/_pages/page-archive.html new file mode 100644 index 0000000..c1c5d7c --- /dev/null +++ b/_pages/page-archive.html @@ -0,0 +1,11 @@ +--- +layout: archive +title: "Page Archive" +permalink: /page-archive/ +author_profile: false +--- + +{% include base_path %} +{% for post in site.pages %} + {% include archive-single.html %} +{% endfor %} \ No newline at end of file diff --git a/_pages/portfolio.html b/_pages/portfolio.html new file mode 100644 index 0000000..d5c93d2 --- /dev/null +++ b/_pages/portfolio.html @@ -0,0 +1,14 @@ +--- +layout: archive +title: "Portfolio" +permalink: /portfolio/ +author_profile: true +--- + +{% include base_path %} + + +{% for post in site.portfolio %} + {% include archive-single.html %} +{% endfor %} + diff --git a/_pages/publications.md b/_pages/publications.md new file mode 100644 index 0000000..de7be72 --- /dev/null +++ b/_pages/publications.md @@ -0,0 +1,16 @@ +--- +layout: archive +title: "Publications" +permalink: /publications/ +author_profile: true +--- + +{% if author.googlescholar %} + You can also find my articles on my Google Scholar profile. +{% endif %} + +{% include base_path %} + +{% for post in site.publications reversed %} + {% include archive-single.html %} +{% endfor %} diff --git a/_pages/sitemap.md b/_pages/sitemap.md new file mode 100644 index 0000000..0525daf --- /dev/null +++ b/_pages/sitemap.md @@ -0,0 +1,37 @@ +--- +layout: archive +title: "Sitemap" +permalink: /sitemap/ +author_profile: true +--- + +{% include base_path %} + +A list of all the posts and pages found on the site. For you robots out there is an [XML version]({{ base_path }}/sitemap.xml) available for digesting as well. + +

    Pages

    +{% for post in site.pages %} + {% include archive-single.html %} +{% endfor %} + +

    Posts

    +{% for post in site.posts %} + {% include archive-single.html %} +{% endfor %} + +{% capture written_label %}'None'{% endcapture %} + +{% for collection in site.collections %} +{% unless collection.output == false or collection.label == "posts" %} + {% capture label %}{{ collection.label }}{% endcapture %} + {% if label != written_label %} +

    {{ label }}

    + {% capture written_label %}{{ label }}{% endcapture %} + {% endif %} +{% endunless %} +{% for post in collection.docs %} + {% unless collection.output == false or collection.label == "posts" %} + {% include archive-single.html %} + {% endunless %} +{% endfor %} +{% endfor %} diff --git a/_pages/tag-archive.html b/_pages/tag-archive.html new file mode 100644 index 0000000..4006381 --- /dev/null +++ b/_pages/tag-archive.html @@ -0,0 +1,17 @@ +--- +layout: archive +permalink: /tags/ +title: "Posts by Tags" +author_profile: true +--- + +{% include base_path %} +{% include group-by-array collection=site.posts field="tags" %} + +{% for tag in group_names %} + {% assign posts = group_items[forloop.index0] %} +

    {{ tag }}

    + {% for post in posts %} + {% include archive-single.html %} + {% endfor %} +{% endfor %} \ No newline at end of file diff --git a/_pages/talkmap.html b/_pages/talkmap.html new file mode 100644 index 0000000..c4ca03e --- /dev/null +++ b/_pages/talkmap.html @@ -0,0 +1,9 @@ +--- +layout: archive +title: "Talk map" +permalink: /talkmap.html +author_profile: true +--- + +

    This map is generated from a Jupyter Notebook file in /_talks/talkmap.ipynb, which mines the location fields in the .md files in _talks/.

    + diff --git a/_pages/talks.html b/_pages/talks.html new file mode 100644 index 0000000..48ef03d --- /dev/null +++ b/_pages/talks.html @@ -0,0 +1,16 @@ +--- +layout: archive +title: "Talks and presentations" +permalink: /talks/ +author_profile: true +--- + +{% if site.talkmap_link == true %} + +

    See a map of all the places I've given a talk!

    + +{% endif %} + +{% for post in site.talks reversed %} + {% include archive-single-talk.html %} +{% endfor %} diff --git a/_pages/teaching.html b/_pages/teaching.html new file mode 100644 index 0000000..ea3910f --- /dev/null +++ b/_pages/teaching.html @@ -0,0 +1,12 @@ +--- +layout: archive +title: "Teaching" +permalink: /teaching/ +author_profile: true +--- + +{% include base_path %} + +{% for post in site.teaching reversed %} + {% include archive-single.html %} +{% endfor %} diff --git a/_pages/terms.md b/_pages/terms.md new file mode 100644 index 0000000..3c7479b --- /dev/null +++ b/_pages/terms.md @@ -0,0 +1,39 @@ +--- +permalink: /terms/ +title: "Terms and Privacy Policy" +modified: 2016-06-06 +--- + +{% include base_path %} +{% include toc %} + +## Privacy Policy + +The privacy of my visitors is extremely important. This Privacy Policy outlines the types of personal information that is received and collected and how it is used. + +First and foremost, I will never share your email address or any other personal information to anyone without your direct consent. + +### Log Files + +Like many other websites, this site uses log files to help learn about when, from where, and how often traffic flows to this site. The information in these log files include: + +* Internet Protocol addresses (IP) +* Types of browser +* Internet Service Provider (ISP) +* Date and time stamp +* Referring and exit pages +* Number of clicks + +All of this information is not linked to anything that is personally identifiable. + +### Cookies and Web Beacons + +When you visit this site "convenience" cookies are stored on your computer when you submit a comment to help you log in faster to [Disqus](http://disqus.com) the next time you leave a comment. + +Third-party advertisers may also place and read cookies on your browser and/or use web beacons to collect information. This site has no access or control over these cookies. You should review the respective privacy policies on any and all third-party ad servers for more information regarding their practices and how to opt-out. + +If you wish to disable cookies, you may do so through your web browser options. Instructions for doing so can be found on the specific web browsers' websites. + +#### Google Analytics + +Google Analytics is a web analytics tool I use to help understand how visitors engage with this website. It reports website trends using cookies and web beacons without identifying individual visitors. You can read [Google Analytics Privacy Policy](http://www.google.com/analytics/learn/privacy.html). \ No newline at end of file diff --git a/_pages/year-archive.html b/_pages/year-archive.html new file mode 100644 index 0000000..b3b2883 --- /dev/null +++ b/_pages/year-archive.html @@ -0,0 +1,19 @@ +--- +layout: archive +permalink: /year-archive/ +title: "Blog posts" +author_profile: true +redirect_from: + - /wordpress/blog-posts/ +--- + +{% include base_path %} +{% capture written_year %}'None'{% endcapture %} +{% for post in site.posts %} + {% capture year %}{{ post.date | date: '%Y' }}{% endcapture %} + {% if year != written_year %} +

    {{ year }}

    + {% capture written_year %}{{ year }}{% endcapture %} + {% endif %} + {% include archive-single.html %} +{% endfor %} diff --git a/_portfolio/portfolio-1.md b/_portfolio/portfolio-1.md new file mode 100644 index 0000000..847af9e --- /dev/null +++ b/_portfolio/portfolio-1.md @@ -0,0 +1,7 @@ +--- +title: "Portfolio item number 1" +excerpt: "Short description of portfolio item number 1
    " +collection: portfolio +--- + +This is an item in your portfolio. It can be have images or nice text. If you name the file .md, it will be parsed as markdown. If you name the file .html, it will be parsed as HTML. diff --git a/_portfolio/portfolio-2.html b/_portfolio/portfolio-2.html new file mode 100644 index 0000000..8a0c6eb --- /dev/null +++ b/_portfolio/portfolio-2.html @@ -0,0 +1,7 @@ +--- +title: "Portfolio item number 2" +excerpt: "Short description of portfolio item number 2
    " +collection: portfolio +--- + +This is an item in your portfolio. It can be have images or nice text. If you name the file .md, it will be parsed as markdown. If you name the file .html, it will be parsed as HTML. diff --git a/_posts/2012-08-14-blog-post-1.md b/_posts/2012-08-14-blog-post-1.md new file mode 100644 index 0000000..8d4819a --- /dev/null +++ b/_posts/2012-08-14-blog-post-1.md @@ -0,0 +1,20 @@ +--- +title: 'Blog Post number 1' +date: 2012-08-14 +permalink: /posts/2012/08/blog-post-1/ +tags: + - cool posts + - category1 + - category2 +--- + +This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. + +Headings are cool +====== + +You can have many headings +====== + +Aren't headings cool? +------ \ No newline at end of file diff --git a/_posts/2013-08-14-blog-post-2.md b/_posts/2013-08-14-blog-post-2.md new file mode 100644 index 0000000..f5c960d --- /dev/null +++ b/_posts/2013-08-14-blog-post-2.md @@ -0,0 +1,20 @@ +--- +title: 'Blog Post number 2' +date: 2013-08-14 +permalink: /posts/2013/08/blog-post-2/ +tags: + - cool posts + - category1 + - category2 +--- + +This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. + +Headings are cool +====== + +You can have many headings +====== + +Aren't headings cool? +------ \ No newline at end of file diff --git a/_posts/2014-08-14-blog-post-3.md b/_posts/2014-08-14-blog-post-3.md new file mode 100644 index 0000000..83175c7 --- /dev/null +++ b/_posts/2014-08-14-blog-post-3.md @@ -0,0 +1,20 @@ +--- +title: 'Blog Post number 3' +date: 2014-08-14 +permalink: /posts/2014/08/blog-post-3/ +tags: + - cool posts + - category1 + - category2 +--- + +This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. + +Headings are cool +====== + +You can have many headings +====== + +Aren't headings cool? +------ \ No newline at end of file diff --git a/_posts/2015-08-14-blog-post-4.md b/_posts/2015-08-14-blog-post-4.md new file mode 100644 index 0000000..9e882e6 --- /dev/null +++ b/_posts/2015-08-14-blog-post-4.md @@ -0,0 +1,20 @@ +--- +title: 'Blog Post number 4' +date: 2015-08-14 +permalink: /posts/2012/08/blog-post-4/ +tags: + - cool posts + - category1 + - category2 +--- + +This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. + +Headings are cool +====== + +You can have many headings +====== + +Aren't headings cool? +------ \ No newline at end of file diff --git a/_posts/2199-01-01-future-post.md b/_posts/2199-01-01-future-post.md new file mode 100644 index 0000000..e96eb5e --- /dev/null +++ b/_posts/2199-01-01-future-post.md @@ -0,0 +1,11 @@ +--- +title: 'Future Blog Post' +date: 2199-01-01 +permalink: /posts/2012/08/blog-post-4/ +tags: + - cool posts + - category1 + - category2 +--- + +This post will show up by default. To disable scheduling of future posts, edit `config.yml` and set `future: false`. diff --git a/_publications/2009-10-01-paper-title-number-1.md b/_publications/2009-10-01-paper-title-number-1.md new file mode 100644 index 0000000..ca6a157 --- /dev/null +++ b/_publications/2009-10-01-paper-title-number-1.md @@ -0,0 +1,15 @@ +--- +title: "Paper Title Number 1" +collection: publications +permalink: /publication/2009-10-01-paper-title-number-1 +excerpt: 'This paper is about the number 1. The number 2 is left for future work.' +date: 2009-10-01 +venue: 'Journal 1' +paperurl: 'http://academicpages.github.io/files/paper1.pdf' +citation: 'Your Name, You. (2009). "Paper Title Number 1." Journal 1. 1(1).' +--- +This paper is about the number 1. The number 2 is left for future work. + +[Download paper here](http://academicpages.github.io/files/paper1.pdf) + +Recommended citation: Your Name, You. (2009). "Paper Title Number 1." Journal 1. 1(1). \ No newline at end of file diff --git a/_publications/2010-10-01-paper-title-number-2.md b/_publications/2010-10-01-paper-title-number-2.md new file mode 100644 index 0000000..f1be921 --- /dev/null +++ b/_publications/2010-10-01-paper-title-number-2.md @@ -0,0 +1,15 @@ +--- +title: "Paper Title Number 2" +collection: publications +permalink: /publication/2010-10-01-paper-title-number-2 +excerpt: 'This paper is about the number 2. The number 3 is left for future work.' +date: 2010-10-01 +venue: 'Journal 1' +paperurl: 'http://academicpages.github.io/files/paper2.pdf' +citation: 'Your Name, You. (2010). "Paper Title Number 2." Journal 1. 1(2).' +--- +This paper is about the number 2. The number 3 is left for future work. + +[Download paper here](http://academicpages.github.io/files/paper2.pdf) + +Recommended citation: Your Name, You. (2010). "Paper Title Number 2." Journal 1. 1(2). \ No newline at end of file diff --git a/_publications/2015-10-01-paper-title-number-3.md b/_publications/2015-10-01-paper-title-number-3.md new file mode 100644 index 0000000..57e7b8d --- /dev/null +++ b/_publications/2015-10-01-paper-title-number-3.md @@ -0,0 +1,15 @@ +--- +title: "Paper Title Number 3" +collection: publications +permalink: /publication/2015-10-01-paper-title-number-3 +excerpt: 'This paper is about the number 3. The number 4 is left for future work.' +date: 2015-10-01 +venue: 'Journal 1' +paperurl: 'http://academicpages.github.io/files/paper3.pdf' +citation: 'Your Name, You. (2015). "Paper Title Number 3." Journal 1. 1(3).' +--- +This paper is about the number 3. The number 4 is left for future work. + +[Download paper here](http://academicpages.github.io/files/paper3.pdf) + +Recommended citation: Your Name, You. (2015). "Paper Title Number 3." Journal 1. 1(3). \ No newline at end of file diff --git a/_sass/_animations.scss b/_sass/_animations.scss new file mode 100644 index 0000000..25ef77f --- /dev/null +++ b/_sass/_animations.scss @@ -0,0 +1,21 @@ +/* ========================================================================== + ANIMATIONS + ========================================================================== */ + +@-webkit-keyframes intro { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes intro { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} \ No newline at end of file diff --git a/_sass/_archive.scss b/_sass/_archive.scss new file mode 100644 index 0000000..e978e72 --- /dev/null +++ b/_sass/_archive.scss @@ -0,0 +1,245 @@ +/* ========================================================================== + ARCHIVE + ========================================================================== */ + +.archive { + margin-bottom: 2em; + + @include breakpoint($medium) { + @include span(12 of 12); + } + + @include breakpoint($large) { + @include span(10 of 12 last); + @include prefix(0.5 of 12); + } + + a { + text-decoration: underline; + + &:hover { + text-decoration: underline; + + img { + box-shadow: 0 0 10px rgba(#000, 0.25); + } + } + } +} + +.archive__subtitle { + margin: 1.414em 0 0; + padding-bottom: 0.5em; + font-size: $type-size-5; + color: mix(#fff, $gray, 25%); + border-bottom: 1px solid $border-color; + + + .list__item .archive__item-title { + margin-top: 0.5em; + } +} + +.archive__item-title { + margin-bottom: 0.25em; + font-family: $sans-serif-narrow; + + a + a { + opacity: 0.5; + } +} + +/* remove border*/ +.page__content { + + .archive__item-title { + margin-top: 1em; + border-bottom: none; + } +} + +.archive__item-excerpt { + margin-top: 0; + font-size: $type-size-6; + + & + p { + text-indent: 0; + } +} + +.archive__item-teaser { + border-radius: $border-radius; + overflow: hidden; + img { + width: 100%; + } +} + +.archive__item:hover { + .archive__item-teaser { + box-shadow: 0 0 10px rgba(#000, 0.25); + } + + .archive__item-title { + text-decoration: underline; + } +} + + +/* + List view + ========================================================================== */ + +.list__item { + @include breakpoint($medium) { + padding-right: $right-sidebar-width-narrow; + } + + @include breakpoint($large) { + padding-right: $right-sidebar-width; + } + + @include breakpoint($x-large) { + padding-right: $right-sidebar-width-wide; + } + + .page__meta { + margin: 0 0 4px; + } +} + + +/* + Grid view + ========================================================================== */ + +.grid__item { + margin-bottom: 2em; + + .page__meta { + margin: 0 0 4px; + } + + .archive__item-title { + margin-top: 0.5em; + font-size: $type-size-5; + } + + .archive__item-excerpt { + display: none; + } + + @include breakpoint($small) { + @include gallery(5 of 10); + .archive__item-teaser { + max-height: 200px; + } + } + + @include breakpoint($medium) { + margin-left: 0; /* reset before mixin does its thing*/ + margin-right: 0; /* reset before mixin does its thing*/ + @include gallery(2.5 of 10); + + .archive__item-teaser { + max-height: 120px; + } + + .archive__item-excerpt { + display: block; + font-size: $type-size-6; + } + } +} + + +/* + Features + ========================================================================== */ + +.feature__wrapper { + @include clearfix(); + margin-bottom: 2em; + border-bottom: 1px solid $border-color; +} + +.feature__item { + margin-bottom: 2em; + font-size: 1.25rem; + + @include breakpoint($small) { + margin-bottom: 0; + @include gallery(4 of 12); + + .feature__item-teaser { + max-height: 200px; + overflow: hidden; + } + } + + &--left { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + .archive__item-teaser { + @include span(5 of 12); + } + + .archive__item-body { + @include span(7 of 12 last); + @include prefix(0.5 of 12); + @include suffix(1 of 12); + } + } + } + + &--right { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + text-align: right; + + .archive__item-teaser { + @include span(5 of 12 rtl); + } + + .archive__item-body { + @include span(7 of 12 last rtl); + @include prefix(0.5 of 12); + @include suffix(1 of 12); + } + } + } + + &--center { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + text-align: center; + + .archive__item-teaser { + margin: 0 auto; + width: span(5 of 12); + } + + .archive__item-body { + margin: 0 auto; + width: span(7 of 12); + } + } + } +} diff --git a/_sass/_base.scss b/_sass/_base.scss new file mode 100644 index 0000000..ef4015e --- /dev/null +++ b/_sass/_base.scss @@ -0,0 +1,315 @@ +/* ========================================================================== + BASE ELEMENTS + ========================================================================== */ +html { + /* sticky footer fix */ + position: relative; + min-height: 100%; +} + +body { + margin: 0; + padding: 0; + padding-bottom: 9em; + color: $text-color; + font-family: $global-font-family; + line-height: 1.5; + + &.overflow--hidden { + /* when primary navigation is visible, the content in the background won't scroll */ + overflow: hidden; + } +} + +h1, h2, h3, h4, h5, h6 { + margin: 2em 0 0.5em; + line-height: 1.2; + font-family: $header-font-family; + font-weight: bold; +} + +h1 { + margin-top: 0; + font-size: $type-size-3; +} + +h2 { + font-size: $type-size-4; +} + +h3 { + font-size: $type-size-5; +} + +h4 { + font-size: $type-size-6; +} + +h5 { + font-size: $type-size-6; +} + +h6 { + font-size: $type-size-6; +} + +small, .small { + font-size: $type-size-6; +} + +p { + margin-bottom: 1.3em; +} + +u, +ins { + text-decoration: none; + border-bottom: 1px solid $text-color; + a { + color: inherit; + } +} + +del a { + color: inherit; +} + +/* reduce orphans and widows when printing */ + +p, pre, blockquote, ul, ol, dl, figure, table, fieldset { + orphans: 3; + widows: 3; +} + +/* abbreviations */ + +abbr[title], +abbr[data-original-title] { + text-decoration: none; + cursor: help; + border-bottom: 1px dotted $text-color; +} + +/* blockquotes */ + +blockquote { + margin: 2em 1em 2em 0; + padding-left: 1em; + padding-right: 1em; + font-style: italic; + border-left: 0.25em solid $primary-color; + + cite { + font-style: italic; + + &:before { + content: "\2014"; + padding-right: 5px; + } + } +} + +/* links */ + +a { + &:focus { + @extend %tab-focus; + } + + &:hover, + &:active { + outline: 0; + } +} + +/* code */ + +tt, code, kbd, samp, pre { + font-family: $monospace; +} + +pre { + overflow-x: auto; /* add scrollbars to wide code blocks*/ +} + +p > code, +a > code, +li > code, +figcaption > code, +td > code { + padding-top: 0.1rem; + padding-bottom: 0.1rem; + font-size: $type-size-6; + background: $code-background-color; + border: 1px solid $lighter-gray; + border-radius: $border-radius; + box-shadow: $box-shadow; + + &:before, &:after { + letter-spacing: -0.2em; + content: "\00a0"; /* non-breaking space*/ + } +} + +/* horizontal rule */ + +hr { + display: block; + margin: 1em 0; + border: 0; + border-top: 1px solid $border-color; +} + +/* lists */ + +ul li, +ol li { + margin-bottom: 0.5em; +} + +li ul, +li ol { + margin-top: 0.5em; +} + +/* + Media and embeds + ========================================================================== */ + +/* Figures and images */ + +figure { + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; + -webkit-box-align: start; + align-items: flex-start; + flex-wrap: wrap; + margin: 2em 0; + + img, + iframe, + .fluid-width-video-wrapper { + margin-bottom: 1em; + } + + img { + width: 100%; + border-radius: $border-radius; + -webkit-transition: $global-transition; + transition: $global-transition; + } + + > a { + display: block; + } + + &.half { + > a, + > img { + @include breakpoint($small) { + width: calc(50% - 0.5em); + } + } + + figcaption { + width: 100%; + } + } + + &.third { + > a, + > img { + @include breakpoint($small) { + width: calc(33.3333% - 0.5em); + } + } + + figcaption { + width: 100%; + } + } +} + +/* Figure captions */ + +figcaption { + margin-bottom: 0.5em; + color: mix(#fff, $text-color, 25%); + font-family: $caption-font-family; + font-size: $type-size-6; + + a { + color: inherit; + text-decoration: none; + border-bottom: 1px solid $light-gray; + -webkit-transition: $global-transition; + transition: $global-transition; + + &:hover { + color: #000; + border-bottom-color: #000; + } + } +} + + +/* Fix IE9 SVG bug */ + +svg:not(:root) { + overflow: hidden; +} + + +/* + Navigation lists + ========================================================================== */ + +/** + * Removes margins, padding, and bullet points from navigation lists + * + * Example usage: + * + */ + +nav { + ul { + margin: 0; + padding: 0; + } + + li { + list-style: none; + } + + a { + text-decoration: none; + } + + /* override white-space for nested lists */ + ul li, + ol li { + margin-bottom: 0; + } + + li ul, + li ol { + margin-top: 0; + } +} + +/* + Global animation transition + ========================================================================== */ + +b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, tr, td, form button, input[type="submit"], .btn, .highlight, .archive__item-teaser { + -webkit-transition: $global-transition; + transition: $global-transition; +} diff --git a/_sass/_buttons.scss b/_sass/_buttons.scss new file mode 100644 index 0000000..d6cf90e --- /dev/null +++ b/_sass/_buttons.scss @@ -0,0 +1,153 @@ +/* ========================================================================== + BUTTONS + ========================================================================== */ + +/* + Default button + ========================================================================== */ + +.btn { + /* default button */ + display: inline-block; + margin-bottom: 0.25em; + padding: 0.5em 1em; + color: #fff !important; + font-family: $sans-serif; + font-size: $type-size-6; + font-weight: bold; + text-align: center; + text-decoration: none; + background-color: $primary-color; + border: 0 !important; + border-radius: $border-radius; + cursor: pointer; + + &:hover { + background-color: mix(white, #000, 20%); + } + + .icon { + margin-right: 0.5em; + } + + .icon + .hidden { + margin-left: -0.5em; /* override for hidden text*/ + } + + /* fills width of parent container */ + + &--block { + display: block; + width: 100%; + + + .btn--block { + margin-top: 0.25em; + } + } + + /* for dark backgrounds */ + + &--inverse { + color: $gray !important; + border: 1px solid $light-gray !important; /* override*/ + background-color: #fff; + + &:hover { + color: #fff !important; + border-color: $gray; + } + } + + /* light outline */ + + &--light-outline { + border: 1px solid #fff !important; /* override*/ + background-color: transparent; + } + + /* information */ + + &--info { + background-color: $info-color; + + &:hover { + background-color: mix(#000, $info-color, 20%); + } + } + + /* warning */ + + &--warning { + background-color: $warning-color; + + &:hover { + background-color: mix(#000, $warning-color, 20%); + } + } + + /* success */ + + &--success { + background-color: $success-color; + + &:hover { + background-color: mix(#000, $success-color, 20%); + } + } + + /* danger */ + + &--danger { + background-color: $danger-color; + + &:hover { + background-color: mix(#000, $danger-color, 20%); + } + } + + /* disabled */ + + &--disabled { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + box-shadow: none; + opacity: 0.65; + } + + /* social buttons */ + + $social: + (facebook, $facebook-color), + (twitter, $twitter-color), + (google-plus, $google-plus-color), + (linkedin, $linkedin-color); + + @each $socialnetwork, $color in $social { + &--#{$socialnetwork} { + background-color: $color; + + &:hover { + background-color: mix(#000, $color, 20%); + } + } + } + + /* extra large button */ + + &--x-large { + font-size: $type-size-4; + } + + /* large button */ + + &--large { + font-size: $type-size-5; + } + + /* small button */ + + &--small { + font-size: $type-size-7; + } +} \ No newline at end of file diff --git a/_sass/_footer.scss b/_sass/_footer.scss new file mode 100644 index 0000000..e7b1843 --- /dev/null +++ b/_sass/_footer.scss @@ -0,0 +1,92 @@ +/* ========================================================================== + FOOTER + ========================================================================== */ + +.page__footer { + @include clearfix; + float: left; + margin-left: 0; + margin-right: 0; + width: 100%; + clear: both; + /* sticky footer fix start */ + position: absolute; + bottom: 0em; + height: auto; + /* sticky footer fix end */ + margin-top: 3em; + color: mix(#fff, $gray, 25%); + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.45s; + animation-delay: 0.45s; + background-color: $lighter-gray; + border-top: 1px solid $light-gray; + + footer { + @include clearfix; + margin-left: auto; + margin-right: auto; + margin-top: 2em; + max-width: 100%; + padding: 0 1em 2em; + + @include breakpoint($x-large) { + max-width: $x-large; + } + } + + a { + color: inherit; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } + + .fas, + .fab, + .far, + .fal { + color: mix(#fff, $gray, 25%); + } +} + +.page__footer-copyright { + font-family: $global-font-family; + font-size: $type-size-7; +} + +.page__footer-follow { + ul { + margin: 0; + padding: 0; + list-style-type: none; + } + + li { + display: inline-block; + padding-top: 5px; + padding-bottom: 5px; + font-family: $sans-serif-narrow; + font-size: $type-size-6; + text-transform: uppercase; + } + + li + li:before { + content: ""; + padding-right: 5px; + } + + a { + padding-right: 10px; + font-weight: bold; + } + + .social-icons { + a { + white-space: nowrap; + } + } +} diff --git a/_sass/_forms.scss b/_sass/_forms.scss new file mode 100644 index 0000000..a1f0f14 --- /dev/null +++ b/_sass/_forms.scss @@ -0,0 +1,391 @@ +/* ========================================================================== + 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 mix(#fff, #000, 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 { + box-sizing: border-box; + font-family: $sans-serif; +} + +label { + display: block; + margin-bottom: 0.25em; + color: $text-color; + cursor: pointer; + + small { + font-size: $type-size-6; + } + + input, + textarea, + select { + display: block; + } +} + +input, +textarea, +select { + display: inline-block; + width: 100%; + padding: 0.25em; + margin-bottom: 0.5em; + color: $text-color; + background-color: #fff; + border: 1px solid mix(#fff, #000, 80%); + border-radius: $border-radius; + box-shadow: $box-shadow; + + &:hover { + border-color: mix(#fff, $primary-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; + border-radius: 0; + border: 0 \9; +} + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; + *width: 13px; + *height: 13px; +} + +input[type="image"] { + border: 0; + box-shadow: none; +} + +input[type="file"] { + width: auto; + padding: initial; + line-height: initial; + border: initial; + background-color: transparent; + background-color: initial; + 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: #fff; +} + +select[multiple], +select[size] { + height: auto; +} + +textarea { + resize: vertical; + height: auto; + overflow: auto; + vertical-align: top; +} + +input[type="hidden"] { + display: none; +} + +.form { + position: relative; +} + +.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 state + ========================================================================== */ + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + opacity: 0.5; + cursor: not-allowed; +} + + +/* + Focus & active state + ========================================================================== */ + +input:focus, +textarea:focus { + border-color: $primary-color; + outline: 0; + outline: thin dotted \9; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus, +select:focus { + box-shadow: none; +} + + +/* + Help text + ========================================================================== */ + +.help-block, +.help-inline { + color: $info-color; +} + +.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; } + + +/* + .form-search + ========================================================================== */ + +.form-search input, +.form-search textarea, +.form-search select { + display: inline-block; + margin-bottom: 0; +} + +.form-search .search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + border-radius: 14px; +} + +.form-search label { + display: inline-block; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; +} + + +/* + .form--loading + ========================================================================== */ + +.form--loading:before { + content: ''; +} + +.form--loading .form__spinner { + display: block; +} + +.form:before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(255, 255, 255, 0.7); + z-index: 10; +} + +.form__spinner { + display: none; + position: absolute; + top: 50%; + left: 50%; + z-index: 11; +} + + + +/* + 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; + margin-bottom: 20px; + padding: 8px 20px; + display: inline-block; + font-size: $type-size-6; + background-color: #fff; + color: #000; + border-width: 2px !important; + border-style: solid !important; + border-color: lighten(#000,50); + border-radius: $border-radius; +} + +#goog-wm-sb { + @extend .btn; +} \ No newline at end of file diff --git a/_sass/_masthead.scss b/_sass/_masthead.scss new file mode 100644 index 0000000..dec55cd --- /dev/null +++ b/_sass/_masthead.scss @@ -0,0 +1,53 @@ +/* ========================================================================== + MASTHEAD + ========================================================================== */ + +.masthead { + position: relative; + border-bottom: 1px solid $border-color; + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.15s; + animation-delay: 0.15s; + z-index: 20; + + &__inner-wrap { + @include container; + @include clearfix; + padding: 1em 1em 1em; + font-family: $sans-serif-narrow; + + @include breakpoint($x-large) { + max-width: $x-large; + } + + nav { + z-index: 10; + } + + a { + text-decoration: none; + } + } +} + +.masthead__menu { + + ul { + margin: 0; + padding: 0; + clear: both; + list-style-type: none; + } +} + +.masthead__menu-item { + display: block; + list-style-type: none; + white-space: nowrap; + + &--lg { + padding-right: 2em; + font-weight: 700; + } +} \ No newline at end of file diff --git a/_sass/_mixins.scss b/_sass/_mixins.scss new file mode 100644 index 0000000..14782b1 --- /dev/null +++ b/_sass/_mixins.scss @@ -0,0 +1,53 @@ +/* ========================================================================== + MIXINS + ========================================================================== */ + +%tab-focus { + /* Default*/ + outline: thin dotted $warning-color; + /* Webkit*/ + outline: 5px auto $warning-color; + outline-offset: -2px; +} + +/* + em function + ========================================================================== */ + +@function em($target, $context: $doc-font-size) { + @return ($target / $context) * 1em; +} + + +/* + Bourbon clearfix + ========================================================================== */ + +/* + * Provides an easy way to include a clearfix for containing floats. + * link http://cssmojo.com/latest_new_clearfix_so_far/ + * + * example scss - Usage + * + * .element { + * @include clearfix; + * } + * + * example css - CSS Output + * + * .element::after { + * clear: both; + * content: ""; + * display: table; + * } +*/ + +@mixin clearfix { + clear: both; + + &::after { + clear: both; + content: ""; + display: table; + } +} \ No newline at end of file diff --git a/_sass/_navigation.scss b/_sass/_navigation.scss new file mode 100644 index 0000000..d96735b --- /dev/null +++ b/_sass/_navigation.scss @@ -0,0 +1,432 @@ +/* ========================================================================== + NAVIGATION + ========================================================================== */ + +/* + Breadcrumb navigation links + ========================================================================== */ + +.breadcrumbs { + @include container; + @include clearfix; + margin-top: 0; + margin-bottom: 0; + padding-left: 2em; + padding-right: 2em; + font-family: $sans-serif; + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.30s; + animation-delay: 0.30s; + + @include breakpoint($large) { + padding-left: 1em; + padding-right: 1em; + } + + @include breakpoint($x-large) { + max-width: $x-large; + } + + ol { + padding: 0; + list-style: none; + font-size: $type-size-6; + + @include breakpoint($large) { + @include span(10 of 12 last); + } + + @include breakpoint($x-large) { + @include prefix(0.5 of 12); + } + } + + li { + display: inline; + } + + .current { + font-weight: bold; + } +} + + +/* + Post pagination navigation links + ========================================================================== */ + +.pagination { + @include full(); + @include clearfix(); + margin-top: 1em; + padding-top: 1em; + + ul { + margin: 0; + padding: 0; + list-style-type: none; + font-family: $sans-serif; + } + + li { + display: block; + float: left; + margin-left: -1px; + + a { + margin-bottom: 0.25em; + padding: 0.5em 1em; + font-family: $sans-serif; + font-size: 14px; + font-weight: bold; + line-height: 1.5; + text-align: center; + text-decoration: none; + color: mix(#fff, $gray, 25%); + border: 1px solid $light-gray; + border-radius: 0; + + &:hover { + color: $link-color-hover; + } + + &.current { + color: #fff; + background: $primary-color; + } + + &.disabled { + color: mix(#fff, $gray, 75%); + pointer-events: none; + cursor: not-allowed; + } + } + + &:first-child { + margin-left: 0; + + a { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + } + } + + &:last-child { + a { + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + } + } + + /* next/previous buttons */ + &--pager { + display: block; + padding: 1em 2em; + float: left; + width: 50%; + font-family: $sans-serif; + font-size: $type-size-5; + font-weight: bold; + text-align: center; + text-decoration: none; + color: mix(#fff, $gray, 50%); + border: 1px solid $light-gray; + border-radius: $border-radius; + + &:hover { + color: $link-color-hover; + } + + &:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + &:last-child { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + &.disabled { + color: mix(#fff, $gray, 75%); + pointer-events: none; + cursor: not-allowed; + } + } +} + +.page__content + .pagination, +.page__meta + .pagination, +.page__share + .pagination, +.page__comments + .pagination { + margin-top: 2em; + padding-top: 2em; + border-top: 1px solid $border-color; +} + + +/* + Priority plus navigation + ========================================================================== */ + +.greedy-nav { + position: relative; + min-width: 250px; + background: $background-color; + + a { + display: block; + margin: 0 1rem; + padding: 0.5rem 0; + color: $masthead-link-color; + text-decoration: none; + + &:hover { + color: $masthead-link-color-hover; + } + } + + button { + position: absolute; + height: 100%; + right: 0; + padding: 0 0.5rem; + border: 0; + outline: none; + background-color: $primary-color; + color: #fff; + cursor: pointer; + } + + .visible-links { + display: table; + + li { + display: table-cell; + vertical-align: middle; + + &:first-child { + font-weight: bold; + + a { + margin-left: 0; + } + } + + &:last-child { + a { + margin-right: 0; + } + } + } + + a { + position: relative; + + &:before { + content: ""; + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background: mix(#fff, $primary-color, 50%); + width: 100%; + -webkit-transition: $global-transition; + transition: $global-transition; + -webkit-transform: scaleX(0); + -ms-transform: scaleX(0); + transform: scaleX(0); /* hide*/ + } + + &:hover:before { + -webkit-transform: scaleX(1); + -ms-transform: scaleX(1); + transform: scaleX(1); /* reveal*/ + } + } + } + + .hidden-links { + position: absolute; + top: 100%; + right: 0; + margin-top: 15px; + padding: 5px; + border: 1px solid $border-color; + border-radius: $border-radius; + background: #fff; + box-shadow: 0 0 10px rgba(#000, 0.25); + + a { + margin: 0; + padding: 10px 20px; + font-size: $type-size-5; + + &:hover { + color: $masthead-link-color-hover; + background: mix(#fff, $primary-color, 75%); + } + } + + &:before { + content: ""; + position: absolute; + top: -11px; + right: 10px; + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: $border-color transparent; + display: block; + z-index: 0; + } + + &:after { + content: ""; + position: absolute; + top: -10px; + right: 10px; + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: #fff transparent; + display: block; + z-index: 1; + } + + li { + display: block; + border-bottom: 1px solid $border-color; + + &:last-child { + border-bottom: none; + } + } + } +} + + +/* + Navigation list + ========================================================================== */ + +.nav__list { + font-size: 1.25rem; + + ul { + margin-bottom: 1em; + } + + a { + display: block; + padding: 0.125em 0; + color: inherit; + + &:hover { + text-decoration: underline; + } + } + + .active { + margin-left: -0.5em; + padding-left: 0.5em; + padding-right: 0.5em; + color: #fff; + font-weight: bold; + background: $primary-color; + border-radius: $border-radius; + + &:hover { + color: #fff; + } + } +} + +.nav__title { + margin: 0; + padding: 0.5rem 1rem; + font-family: $sans-serif-narrow; + font-size: $type-size-5; + font-weight: bold; +} + +.nav__sub-title { + display: block; + margin: 0.5rem 0; + padding: 0.5rem 0; + font-family: $sans-serif-narrow; + font-size: $type-size-6; + font-weight: bold; + text-transform: uppercase; + border-bottom: 1px solid $border-color; +} + + +/* + Table of contents navigation + ========================================================================== */ + +.toc { + font-family: $sans-serif-narrow; + color: $gray; + text-transform: uppercase; + letter-spacing: 1px; + background-color: #fff; + border: 1px solid $border-color; + border-radius: $border-radius; + box-shadow: $box-shadow; + + .nav__title { + color: #fff; + font-size: $type-size-6; + background: $primary-color; + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + } +} + +.toc__menu { + margin: 0; + padding: 0; + width: 100%; + list-style: none; + font-size: 0.8rem; + + a { + display: block; + padding: 0.5rem 1rem; + color: $gray; + font-size: $type-size-7; + font-weight: bold; + line-height: 1.5; + border-bottom: 1px solid $border-color; + + &:hover { + color: #000; + background: $lighter-gray; + } + } + + > li:last-child { + a { + border-bottom: none; + } + } + + li ul > li a { + padding-left: 2rem; + font-weight: normal; + } + + /* hide sub sub links on small screens*/ + li > ul li { + display: none; + + @include breakpoint($medium) { + display: block; + } + } +} \ No newline at end of file diff --git a/_sass/_notices.scss b/_sass/_notices.scss new file mode 100644 index 0000000..26afa31 --- /dev/null +++ b/_sass/_notices.scss @@ -0,0 +1,99 @@ +/* ========================================================================== + NOTICE TEXT BLOCKS + ========================================================================== */ + +/** + * Default Kramdown usage (no indents!): + *
    + * #### Headline for the Notice + * Text for the notice + *
    + */ + +@mixin notice($notice-color) { + margin: 2em 0 !important; /* override*/ + padding: 1em; + font-family: $global-font-family; + font-size: $type-size-6 !important; + text-indent: initial; /* override*/ + background-color: mix(#fff, $notice-color, 90%); + border-radius: $border-radius; + box-shadow: 0 1px 1px rgba($notice-color, 0.25); + + h4 { + margin-top: 0 !important; /* override*/ + margin-bottom: 0.75em; + } + + @at-root .page__content #{&} h4 { + /* using at-root to override .page-content h4 font size*/ + margin-bottom: 0; + font-size: 1em; + } + + p { + &:last-child { + margin-bottom: 0 !important; /* override*/ + } + } + + h4 + p { + /* remove space above paragraphs that appear directly after notice headline*/ + margin-top: 0; + padding-top: 0; + } + + a { + color: $notice-color; + + &:hover { + color: mix(#000, $notice-color, 40%); + } + } + + code { + background-color: mix(#fff, $notice-color, 95%) + } + + ul { + &:last-child { + margin-bottom: 0; /* override*/ + } + } +} + +/* Default notice */ + +.notice { + @include notice($light-gray); +} + +/* Primary notice */ + +.notice--primary { + @include notice($primary-color); +} + +/* Info notice */ + +.notice--info { + @include notice($info-color); +} + +/* Warning notice */ + +.notice--warning { + @include notice($warning-color); +} + +/* Success notice */ + +.notice--success { + @include notice($success-color); +} + +/* Danger notice */ + +.notice--danger { + @include notice($danger-color); +} \ No newline at end of file diff --git a/_sass/_page.scss b/_sass/_page.scss new file mode 100644 index 0000000..b962a9d --- /dev/null +++ b/_sass/_page.scss @@ -0,0 +1,401 @@ +/* ========================================================================== + SINGLE PAGE/POST + ========================================================================== */ + +#main { + @include container; + @include clearfix; + margin-top: 2em; + padding-left: 1em; + padding-right: 1em; + animation: intro 0.3s both; + animation-delay: 0.35s; + + @include breakpoint($x-large) { + max-width: $x-large; + } +} + +.page { + @include breakpoint($large) { + @include span(10 of 12 last); + @include prefix(0.5 of 12); + @include suffix(2 of 12); + } + + .page__inner-wrap { + @include full(); + + .page__content, + .page__meta, + .page__share { + @include full(); + } + } +} + +.page__title { + margin-top: 0; + line-height: 1; + + & + .page__meta { + margin-top: -0.5em; + } +} + +.page__lead { + font-family: $global-font-family; + font-size: $type-size-4; +} + +.page__content { + + h2 { + padding-bottom: 0.5em; + border-bottom: 1px solid $border-color; + } + + p, li, dl { + font-size: 1em; + } + + /* paragraph indents */ + p { + margin: 0 0 $indent-var; + + /* sibling indentation*/ + @if $paragraph-indent == true { + & + p { + text-indent: $indent-var; + margin-top: -($indent-var); + } + } + } + + a { + text-decoration: underline; + + &:hover { + text-decoration: underline; + + img { + box-shadow: 0 0 10px rgba(#000, 0.25); + } + } + } + + dt { + margin-top: 1em; + font-family: $sans-serif; + font-weight: bold; + } + + dd { + margin-left: 1em; + font-family: $sans-serif; + font-size: $type-size-6; + } + + .small { + font-size: $type-size-6; + } + + /* blockquote citations */ + blockquote + .small { + margin-top: -1.5em; + padding-left: 1.25rem; + } +} + +.page__hero { + position: relative; + margin-bottom: 2em; + @include clearfix; + animation: intro 0.3s both; + animation-delay: 0.25s; + + &--overlay { + position: relative; + margin-bottom: 2em; + padding: 3em 0; + @include clearfix; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + animation: intro 0.3s both; + animation-delay: 0.25s; + + a { + color: #fff; + } + + .wrapper { + padding-left: 1em; + padding-right: 1em; + + @include breakpoint($x-large) { + max-width: $x-large; + } + } + + .page__title, + .page__meta, + .page__lead, + .btn { + color: #fff; + text-shadow: 1px 1px 4px rgba(#000, 0.5); + } + + .page__lead { + max-width: $medium; + } + + .page__title { + font-size: $type-size-2; + + @include breakpoint($small) { + font-size: $type-size-1; + } + } + } +} + +.page__hero-image { + width: 100%; + height: auto; + -ms-interpolation-mode: bicubic; +} + +.page__hero-caption { + position: absolute; + bottom: 0; + right: 0; + margin: 0 auto; + padding: 2px 5px; + color: #fff; + font-family: $caption-font-family; + font-size: $type-size-7; + background: #000; + text-align: right; + z-index: 5; + opacity: 0.5; + border-radius: $border-radius 0 $border-radius 0; + + @include breakpoint($large) { + padding: 5px 10px; + } + + a { + color: #fff; + text-decoration: none; + } +} + +/* + Social sharing + ========================================================================== */ + +.page__share { + margin-top: 2em; + padding-top: 1em; + border-top: 1px solid $border-color; + + @include breakpoint(max-width $small) { + .btn span { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + } + } +} + +.page__share-title { + margin-bottom: 10px; + font-size: $type-size-6; + text-transform: uppercase; +} + + +/* + Page meta + ========================================================================== */ + +.page__meta { + margin-top: 2em; + color: mix(#fff, $gray, 25%); + font-family: $sans-serif; + font-size: $type-size-6; + + p { + margin: 0; + } + + a { + color: inherit; + } +} + +.page__meta-title { + margin-bottom: 10px; + font-size: $type-size-6; + text-transform: uppercase; +} + + +/* + Page taxonomy + ========================================================================== */ + +.page__taxonomy { + .sep { + display: none; + } + + strong { + margin-right: 10px; + } +} + +.page__taxonomy-item { + display: inline-block; + margin-right: 5px; + margin-bottom: 8px; + padding: 5px 10px; + text-decoration: none; + border: 1px solid $light-gray; + border-radius: $border-radius; + + &:hover { + text-decoration: none; + color: $link-color-hover; + } +} + + +/* + Comments + ========================================================================== */ + +.page__comments { + @include full(); +} + +.page__comments-title { + margin-top: 2rem; + margin-bottom: 10px; + padding-top: 2rem; + font-size: $type-size-6; + border-top: 1px solid $border-color; + text-transform: uppercase; +} + +.page__comments-form { + padding: 1em; + background: $lighter-gray; + transition: $global-transition; + + &.disabled { + input, + button, + textarea, + label { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + box-shadow: none; + opacity: 0.65; + } + } +} + +.comment { + @include clearfix(); + margin: 1em 0; + + &:not(:last-child) { + border-bottom: 1px solid $border-color; + } +} + +.comment__avatar-wrapper { + float: left; + width: 60px; + height: 60px; + + @include breakpoint($large) { + width: 100px; + height: 100px; + } +} + +.comment__avatar { + width: 40px; + height: 40px; + border-radius: 50%; + + @include breakpoint($large) { + width: 80px; + height: 80px; + padding: 5px; + border: 1px solid $border-color; + } +} + +.comment__content-wrapper { + float: right; + width: calc(100% - 60px); + + @include breakpoint($large) { + width: calc(100% - 100px); + } +} + +.comment__author { + margin: 0; + + a { + text-decoration: none; + } +} + +.comment__date { + @extend .page__meta; + margin: 0; + + a { + text-decoration: none; + } +} + + +/* + Related + ========================================================================== */ + +.page__related { + margin-top: 2em; + padding-top: 1em; + border-top: 1px solid $border-color; + @include clearfix(); + float: left; + + @include breakpoint($large) { + @include pre(2.5 of 12); + } + + a { + color: inherit; + text-decoration: none; + } +} + +.page__related-title { + margin-bottom: 10px; + font-size: $type-size-6; + text-transform: uppercase; +} diff --git a/_sass/_print.scss b/_sass/_print.scss new file mode 100644 index 0000000..09bdb1d --- /dev/null +++ b/_sass/_print.scss @@ -0,0 +1,18 @@ +/* ========================================================================== + PRINT STYLES + ========================================================================== */ + +/* + Hide the following elements on print + ========================================================================== */ + +@media print { + .masthead, + .toc, + .page__share, + .page__related, + .ads, + .page__footer { + display: none; + } +} diff --git a/_sass/_reset.scss b/_sass/_reset.scss new file mode 100644 index 0000000..7d33b49 --- /dev/null +++ b/_sass/_reset.scss @@ -0,0 +1,179 @@ +/* ========================================================================== + STYLE RESETS + ========================================================================== */ + +@include border-box-sizing; + +html { + /* apply a natural box layout model to all elements */ + box-sizing: border-box; + background-color: $background-color; + font-size: 16px; + + @include breakpoint($medium) { + font-size: 18px; + } + + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* Remove margin */ + +body { margin: 0; } + +/* Selected elements */ + +::-moz-selection { + color: #fff; + background: #000; +} + +::selection { + color: #fff; + background: #000; +} + +/* Display HTML5 elements in IE6-9 and FF3 */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +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; +} + +a { + color: $link-color; +} + +/* Apply focus state */ + +a:focus { + @extend %tab-focus; +} + +/* Remove outline from links */ + +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; +} + +/* img border in anchor'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*/ + 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*/ +} \ No newline at end of file diff --git a/_sass/_sidebar.scss b/_sass/_sidebar.scss new file mode 100644 index 0000000..8926135 --- /dev/null +++ b/_sass/_sidebar.scss @@ -0,0 +1,237 @@ +/* ========================================================================== + SIDEBAR + ========================================================================== */ + +/* + Default + ========================================================================== */ + +.sidebar { + -webkit-transform: translate3d(0, 0 , 0); + transform: translate3d(0, 0 , 0); + + @include clearfix(); + margin-bottom: 1em; + + @include breakpoint($large) { + @include span(2 of 12); + opacity: 1; + -webkit-transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s ease-in-out; + + &:hover { + opacity: 1; + } + } + + + @include breakpoint($x-large) { + padding-right: 0; + } + + h2, h3, h4, h5, h6 { + margin-bottom: 0; + font-family: $sans-serif-narrow; + } + + h3, h4 { + font-size: $type-size-5; + } + + p, li { + font-family: $sans-serif; + font-size: $type-size-6; + line-height: 1.5; + } + + img { + width: 100%; + } +} + +.sidebar__right { + margin-bottom: 1em; + + @include breakpoint($large) { + position: relative; + float: right; + width: $right-sidebar-width-narrow; + margin-left: span(0.5 of 12); + z-index: 10; + } + + @include breakpoint($x-large) { + width: $right-sidebar-width; + } +} + +/* + Author profile and links + ========================================================================== */ + +.author__avatar { + display: table-cell; + vertical-align: top; + width: 36px; + // set width only, for non-square avatars + // height: 36px; + + @include breakpoint($large) { + display: block; + width: auto; + height: auto; + } + + img { + max-width: 175px; + border-radius: 50%; + + @include breakpoint($large) { + padding: 5px; + border: 1px solid $border-color; + } + } +} + +.author__content { + display: table-cell; + vertical-align: top; + padding-left: 15px; + padding-right: 25px; + line-height: 1; + + @include breakpoint($large) { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + } +} + +.author__name { + margin: 0; + + @include breakpoint($large) { + margin-top: 10px; + margin-bottom: 10px; + } +} +.sidebar .author__name { + font-family: $sans-serif; + font-size: $type-size-5; +} + +.author__bio { + margin: 0; + + @include breakpoint($large) { + margin-top: 10px; + margin-bottom: 20px; + } +} + +.author__urls-wrapper { + position: relative; + display: table-cell; + vertical-align: middle; + font-family: $sans-serif; + z-index: 10; + position: relative; + cursor: pointer; + + li:last-child { + a { + margin-bottom: 0; + } + } + + @include breakpoint($large) { + display: block; + } + + button { + margin-bottom: 0; + + @include breakpoint($large) { + display: none; + } + } +} + +.author__urls { + display: none; + position: absolute; + right: 0; + margin-top: 15px; + padding: 10px; + list-style-type: none; + border: 1px solid $border-color; + border-radius: $border-radius; + background: #fff; + z-index: -1; + box-shadow: 0 0 10px rgba(#000, 0.25); + cursor: default; + + @include breakpoint($large) { + display: block; + position: relative; + margin: 0; + padding: 0; + border: 0; + background: transparent; + box-shadow: none; + } + + &:before { + display: block; + content: ""; + position: absolute; + top: -11px; + left: calc(50% - 10px); + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: $border-color transparent; + z-index: 0; + + @include breakpoint($large) { + display: none; + } + } + + &:after { + display: block; + content: ""; + position: absolute; + top: -10px; + left: calc(50% - 10px); + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: #fff transparent; + z-index: 1; + + @include breakpoint($large) { + display: none; + } + } + + li { + white-space: nowrap; + } + + a { + display: block; + margin-bottom: 5px; + padding-right: 5px; + padding-top: 2px; + padding-bottom: 2px; + color: inherit; + font-size: $type-size-5; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } +} diff --git a/_sass/_syntax.scss b/_sass/_syntax.scss new file mode 100644 index 0000000..f40ed05 --- /dev/null +++ b/_sass/_syntax.scss @@ -0,0 +1,123 @@ +/* ========================================================================== + Syntax highlighting + ========================================================================== */ + +div.highlighter-rouge, figure.highlight { + position: relative; + margin-bottom: 1em; + padding: 1em; + border: 1px solid $border-color; + border-radius: $border-radius; + background-color: $code-background-color; + box-shadow: $box-shadow; + + &:before { + position: absolute; + top: 0; + right: 0; + padding: 0.5em; + background-color: $lighter-gray; + content: "\f121"; + font-family: "fontawesome" !important; + font-size: $type-size-6; + line-height: 1; + text-transform: none; + speak: none; + } + + .highlight { + margin: 0; + font-family: $monospace; + font-size: $type-size-7; + line-height: 1.8; + } +} + +.highlight table td { padding: 5px; } +.highlight table pre { margin: 0; } + + +/* + Solarized Light + http://ethanschoonover.com/solarized + + SOLARIZED HEX ROLE + --------- -------- ------------------------------------------ + base01 #586e75 body text / default code / primary content + base1 #93a1a1 comments / secondary content + base3 #fdf6e3 background + orange #cb4b16 constants + red #dc322f regex, special keywords + blue #22b3eb reserved keywords + cyan #2aa198 strings, numbers + green #859900 operators, other keywords + ========================================================================== */ + +.highlight .c { color: #93a1a1 } /* Comment */ +.highlight .err { color: #586e75 } /* Error */ +.highlight .g { color: #586e75 } /* Generic */ +.highlight .k { color: #859900 } /* Keyword */ +.highlight .l { color: #586e75 } /* Literal */ +.highlight .n { color: #586e75 } /* Name */ +.highlight .o { color: #859900 } /* Operator */ +.highlight .x { color: #cb4b16 } /* Other */ +.highlight .p { color: #586e75 } /* Punctuation */ +.highlight .cm { color: #93a1a1 } /* Comment.Multiline */ +.highlight .cp { color: #859900 } /* Comment.Preproc */ +.highlight .c1 { color: #93a1a1 } /* Comment.Single */ +.highlight .cs { color: #859900 } /* Comment.Special */ +.highlight .gd { color: #2aa198 } /* Generic.Deleted */ +.highlight .ge { color: #586e75; font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #dc322f } /* Generic.Error */ +.highlight .gh { color: #cb4b16 } /* Generic.Heading */ +.highlight .gi { color: #859900 } /* Generic.Inserted */ +.highlight .go { color: #586e75 } /* Generic.Output */ +.highlight .gp { color: #586e75 } /* Generic.Prompt */ +.highlight .gs { color: #586e75; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #cb4b16 } /* Generic.Subheading */ +.highlight .gt { color: #586e75 } /* Generic.Traceback */ +.highlight .kc { color: #cb4b16 } /* Keyword.Constant */ +.highlight .kd { color: #22b3eb } /* Keyword.Declaration */ +.highlight .kn { color: #859900 } /* Keyword.Namespace */ +.highlight .kp { color: #859900 } /* Keyword.Pseudo */ +.highlight .kr { color: #22b3eb } /* Keyword.Reserved */ +.highlight .kt { color: #dc322f } /* Keyword.Type */ +.highlight .ld { color: #586e75 } /* Literal.Date */ +.highlight .m { color: #2aa198 } /* Literal.Number */ +.highlight .s { color: #2aa198 } /* Literal.String */ +.highlight .na { color: #586e75 } /* Name.Attribute */ +.highlight .nb { color: #B58900 } /* Name.Builtin */ +.highlight .nc { color: #22b3eb } /* Name.Class */ +.highlight .no { color: #cb4b16 } /* Name.Constant */ +.highlight .nd { color: #22b3eb } /* Name.Decorator */ +.highlight .ni { color: #cb4b16 } /* Name.Entity */ +.highlight .ne { color: #cb4b16 } /* Name.Exception */ +.highlight .nf { color: #22b3eb } /* Name.Function */ +.highlight .nl { color: #586e75 } /* Name.Label */ +.highlight .nn { color: #586e75 } /* Name.Namespace */ +.highlight .nx { color: #586e75 } /* Name.Other */ +.highlight .py { color: #586e75 } /* Name.Property */ +.highlight .nt { color: #22b3eb } /* Name.Tag */ +.highlight .nv { color: #22b3eb } /* Name.Variable */ +.highlight .ow { color: #859900 } /* Operator.Word */ +.highlight .w { color: #586e75 } /* Text.Whitespace */ +.highlight .mf { color: #2aa198 } /* Literal.Number.Float */ +.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */ +.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */ +.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */ +.highlight .sb { color: #93a1a1 } /* Literal.String.Backtick */ +.highlight .sc { color: #2aa198 } /* Literal.String.Char */ +.highlight .sd { color: #586e75 } /* Literal.String.Doc */ +.highlight .s2 { color: #2aa198 } /* Literal.String.Double */ +.highlight .se { color: #cb4b16 } /* Literal.String.Escape */ +.highlight .sh { color: #586e75 } /* Literal.String.Heredoc */ +.highlight .si { color: #2aa198 } /* Literal.String.Interpol */ +.highlight .sx { color: #2aa198 } /* Literal.String.Other */ +.highlight .sr { color: #dc322f } /* Literal.String.Regex */ +.highlight .s1 { color: #2aa198 } /* Literal.String.Single */ +.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */ +.highlight .bp { color: #22b3eb } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #22b3eb } /* Name.Variable.Class */ +.highlight .vg { color: #22b3eb } /* Name.Variable.Global */ +.highlight .vi { color: #22b3eb } /* Name.Variable.Instance */ +.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_sass/_tables.scss b/_sass/_tables.scss new file mode 100644 index 0000000..d31dc24 --- /dev/null +++ b/_sass/_tables.scss @@ -0,0 +1,38 @@ +/* ========================================================================== + TABLES + ========================================================================== */ + +table { + margin-bottom: 1em; + width: 100%; + font-family: $global-font-family; + font-size: $type-size-6; + border-collapse: collapse; + border: 1px solid $light-gray; + + & + table { + margin-top: 1em; + } +} + +thead { + background-color: $lighter-gray; + border-bottom: 1px solid $light-gray; +} + +th { + padding: 0.5em; + font-weight: bold; + text-align: left; + border-right: 1px solid $light-gray; +} + +td { + padding: 0.5em; + border-bottom: 1px solid $light-gray; + border-right: 1px solid $light-gray; +} + +tr, td, th { + vertical-align: middle; +} \ No newline at end of file diff --git a/_sass/_utilities.scss b/_sass/_utilities.scss new file mode 100644 index 0000000..87536a4 --- /dev/null +++ b/_sass/_utilities.scss @@ -0,0 +1,470 @@ +/* ========================================================================== + UTILITY CLASSES + ========================================================================== */ + +/* + Visibility + ========================================================================== */ + +/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */ + +.hidden { + display: none; + visibility: hidden; +} + +/* for preloading images */ + +.load { + display: none; +} + +.transparent { + opacity: 0; +} + +/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */ + +.visually-hidden, +.screen-reader-text, +.screen-reader-text span, +.screen-reader-shortcut { + position: absolute !important; + clip: rect(1px, 1px, 1px, 1px); + height: 1px !important; + width: 1px !important; + border: 0 !important; + overflow: hidden; +} + +body:hover .visually-hidden a, +body:hover .visually-hidden input, +body:hover .visually-hidden button { + display: none !important; +} + +/* screen readers */ + +.screen-reader-text:focus, +.screen-reader-shortcut:focus { + clip: auto !important; + height: auto !important; + width: auto !important; + display: block; + font-size: 1em; + font-weight: bold; + padding: 15px 23px 14px; + background: #fff; + z-index: 100000; + text-decoration: none; + box-shadow: 0 0 2px 2px rgba(0,0,0,.6); +} + + +/* + Skip links + ========================================================================== */ + +.skip-link { + position: fixed; + z-index: 20; + margin: 0; + font-family: $sans-serif; + white-space: nowrap; +} + +.skip-link li { + height: 0; + width: 0; + list-style: none; +} + + +/* + Type + ========================================================================== */ + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + + +/* + Alignment + ========================================================================== */ + +/* clearfix */ + +.cf { clear: both; } + +.wrapper { + @include container(); +} + + +/* + Images + ========================================================================== */ + +/* image align left */ + +.align-left { + display: block; + margin-left: auto; + margin-right: auto; + + @include breakpoint($small) { + float: left; + margin-right: 1em; + } +} + +/* image align right */ + +.align-right { + display: block; + margin-left: auto; + margin-right: auto; + + @include breakpoint($small) { + float: right; + margin-left: 1em; + } +} + +/* image align center */ + +.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +/* file page content container */ + +.full { + @include breakpoint($large){ + margin-right: -1 * span(2.5 of 12) !important; + } +} + +/* + Icons + ========================================================================== */ + +.icon { + display: inline-block; + fill: currentColor; + width: 1em; + height: 1.1em; + line-height: 1; + position: relative; + top: -0.1em; + vertical-align: middle; +} + +/* social icons*/ + +.social-icons { + .fa { + color: #000; + } + + .fa-behance, + .fa-behance-square { + color: $behance-color; + } + + .fa-dribbble { + color: $dribbble-color; + } + + .fa-facebook, + .fa-facebook-square { + color: $facebook-color; + } + + .fa-flickr { + color: $flickr-color; + } + + .fa-foursquare { + color: $foursquare-color; + } + + .fa-github, + .fa-github-alt, + .fa-github-square { + color: $github-color; + } + + .fa-google-plus, + .fa-google-plus-square { + color: $google-plus-color; + } + + .fa-instagram { + color: $instagram-color; + } + + .fa-lastfm, + .fa-lastfm-square { + color: $lastfm-color; + } + + .fa-linkedin, + .fa-linkedin-square { + color: $linkedin-color; + } + + .fa-pinterest, + .fa-pinterest-p, + .fa-pinterest-square { + color: $pinterest-color; + } + + .fa-rss, + .fa-rss-square { + color: $rss-color; + } + + .fa-soundcloud { + color: $soundcloud-color; + } + + .fa-stack-exchange, + .fa-stack-overflow { + color: $stackoverflow-color; + } + + .fa-tumblr, + .fa-tumblr-square { + color: $tumblr-color; + } + + .fa-twitter, + .fa-twitter-square { + color: $twitter-color; + } + + .fa-vimeo, + .fa-vimeo-square { + color: $vimeo-color; + } + + .fa-vine { + color: $vine-color; + } + + .fa-youtube, + .fa-youtube-square, + .fa-youtube-play { + color: $youtube-color; + } + + .fa-xing, + .fa-xing-square { + color: $xing-color; + } +} + + +/* + Navicons + ========================================================================== */ + +.navicon { + position: relative; + width: $navicon-width; + height: $navicon-height; + background: #fff; + margin: auto; + -webkit-transition: 0.3s; + transition: 0.3s; + + &:before, + &:after { + content: ""; + position: absolute; + left: 0; + width: $navicon-width; + height: $navicon-height; + background: #fff; + -webkit-transition: 0.3s; + transition: 0.3s; + } + + &:before { + top: (-2 * $navicon-height); + } + + &:after { + bottom: (-2 * $navicon-height); + } +} + +.close .navicon { + /* hide the middle line*/ + background: transparent; + + /* overlay the lines by setting both their top values to 0*/ + &:before, &:after{ + -webkit-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; + top: 0; + width: $navicon-width; + } + + /* rotate the lines to form the x shape*/ + &:before{ + -webkit-transform: rotate3d(0,0,1,45deg); + transform: rotate3d(0,0,1,45deg); + } + &:after{ + -webkit-transform: rotate3d(0,0,1,-45deg); + transform: rotate3d(0,0,1,-45deg); + } +} + + +/* + Sticky, fixed to top content + ========================================================================== */ + +.sticky { + @include breakpoint($large) { + @include clearfix(); + position: -webkit-sticky; + position: sticky; + top: 2em; + + > * { + display: block; + } + } +} + + +/* + Wells + ========================================================================== */ + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: $border-radius; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + + +/* + Modals + ========================================================================== */ + +.show-modal { + overflow: hidden; + position: relative; + + &:before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 999; + background-color: rgba(255, 255, 255, 0.85); + } + + .modal { + display: block; + } +} + +.modal { + display: none; + position: fixed; + width: 300px; + top: 50%; + left: 50%; + margin-left: -150px; + margin-top: -150px; + min-height: 0; + z-index: 9999; + background: #fff; + border: 1px solid $border-color; + border-radius: $border-radius; + box-shadow: $box-shadow; + + &__title { + margin: 0; + padding: 0.5em 1em; + } + + &__supporting-text { + padding: 0 1em 0.5em 1em; + } + + &__actions { + padding: 0.5em 1em; + border-top: 1px solid $border-color; + } +} + + +/* + Footnotes + ========================================================================== */ + +.footnote { + color: mix(#fff, $gray, 25%); + text-decoration: none; +} + +.footnotes { + color: mix(#fff, $gray, 25%); + + ol, li, p { + margin-bottom: 0; + font-size: $type-size-6; + } +} + +a.reversefootnote { + color: $gray; + text-decoration: none; + + &:hover { + text-decoration: underline; + } +} + + +/* + Required + ========================================================================== */ + +.required { + color: $danger-color; + font-weight: bold; +} diff --git a/_sass/_variables.scss b/_sass/_variables.scss new file mode 100644 index 0000000..c584e78 --- /dev/null +++ b/_sass/_variables.scss @@ -0,0 +1,153 @@ +/* ========================================================================== + Variables + ========================================================================== */ + +/* + Typography + ========================================================================== */ + +$doc-font-size : 16; + +/* paragraph indention */ +$paragraph-indent : false; // true, false (default) +$indent-var : 1.3em; + +/* system typefaces */ +$serif : Georgia, Times, serif; +$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; +$monospace : Monaco, Consolas, "Lucida Console", monospace; + +/* sans serif typefaces */ +$sans-serif-narrow : $sans-serif; +$helvetica : Helvetica, "Helvetica Neue", Arial, sans-serif; + +/* serif typefaces */ +$georgia : Georgia, serif; +$times : Times, serif; +$bodoni : "Bodoni MT", serif; +$calisto : "Calisto MT", serif; +$garamond : Garamond, serif; + +$global-font-family : $sans-serif; +$header-font-family : $sans-serif; +$caption-font-family : $serif; + +/* type scale */ +$type-size-1 : 2.441em; // ~39.056px +$type-size-2 : 1.953em; // ~31.248px +$type-size-3 : 1.563em; // ~25.008px +$type-size-4 : 1.25em; // ~20px +$type-size-5 : 1em; // ~16px +$type-size-6 : 0.75em; // ~12px +$type-size-7 : 0.6875em; // ~11px +$type-size-8 : 0.625em; // ~10px + + +/* + Colors + ========================================================================== */ + +$gray : #7a8288; +$dark-gray : mix(#000, $gray, 40%); +$darker-gray : mix(#000, $gray, 60%); +$light-gray : mix(#fff, $gray, 50%); +$lighter-gray : mix(#fff, $gray, 90%); + +$body-color : #fff; +$background-color : #fff; +$code-background-color : #fafafa; +$code-background-color-dark : $light-gray; +$text-color : $dark-gray; +$border-color : $lighter-gray; + +$primary-color : #7a8288; +$success-color : #62c462; +$warning-color : #f89406; +$danger-color : #ee5f5b; +$info-color : #52adc8; + +/* brands */ +$behance-color : #1769FF; +$dribbble-color : #ea4c89; +$facebook-color : #3b5998; +$flickr-color : #ff0084; +$foursquare-color : #0072b1; +$github-color : #171516; +$google-plus-color : #dd4b39; +$instagram-color : #517fa4; +$lastfm-color : #d51007; +$linkedin-color : #007bb6; +$pinterest-color : #cb2027; +$rss-color : #fa9b39; +$soundcloud-color : #ff3300; +$stackoverflow-color : #fe7a15; +$tumblr-color : #32506d; +$twitter-color : #55acee; +$vimeo-color : #1ab7ea; +$vine-color : #00bf8f; +$youtube-color : #bb0000; +$xing-color : #006567; + + +/* links */ +$link-color : $info-color; +$link-color-hover : mix(#000, $link-color, 25%); +$link-color-visited : mix(#fff, $link-color, 25%); +$masthead-link-color : $primary-color; +$masthead-link-color-hover : mix(#000, $primary-color, 25%); + + +/* + Breakpoints + ========================================================================== */ + +@include breakpoint-set("to ems", true); +/* +$small : 400px; +$medium : 500px; +$medium-wide : 550px; +$large : 1200px; +$x-large : 1800px; +*/ + +$small : 600px !default; +$medium : 768px !default; +$medium-wide : 900px !default; +$large : 925px !default; +$x-large : 1280px !default; + +/* + Grid + ========================================================================== */ + +$right-sidebar-width-narrow : 0px; +$right-sidebar-width : 0px; +$right-sidebar-width-wide : 0px; + +$susy: ( + columns: 12, + column-width: 120px, + gutters: 1/4, + math: fluid, + output: float, + gutter-position: after, + container: $large, + global-box-sizing: border-box, + // debug: ( + // image: show, + // color: blue, + // output: overlay, + // toggle: top right, + // ), +); + + +/* + Other + ========================================================================== */ + +$border-radius : 4px; +$box-shadow : 0 1px 1px rgba(0, 0, 0, 0.125); +$navicon-width : 28px; +$navicon-height : 4px; +$global-transition : all 0.2s ease-in-out; diff --git a/_sass/vendor/breakpoint/_breakpoint.scss b/_sass/vendor/breakpoint/_breakpoint.scss new file mode 100644 index 0000000..a0528eb --- /dev/null +++ b/_sass/vendor/breakpoint/_breakpoint.scss @@ -0,0 +1,114 @@ +////////////////////////////// +// Default Variables +////////////////////////////// +$Breakpoint-Settings: ( + 'default media': all, + 'default feature': min-width, + 'default pair': width, + + 'force all media type': false, + 'to ems': false, + 'transform resolutions': true, + + 'no queries': false, + 'no query fallbacks': false, + + 'base font size': 16px, + + 'legacy syntax': false +); + +$breakpoint: () !default; + +////////////////////////////// +// Imports +////////////////////////////// +@import "settings"; +@import "context"; +@import "helpers"; +@import "parsers"; +@import "no-query"; + +@import "respond-to"; + +@import "legacy-settings"; + +////////////////////////////// +// Breakpoint Mixin +////////////////////////////// + +@mixin breakpoint($query, $no-query: false) { + @include legacy-settings-warning; + + // Reset contexts + @include private-breakpoint-reset-contexts(); + + $breakpoint: breakpoint($query, false); + + $query-string: map-get($breakpoint, 'query'); + $query-fallback: map-get($breakpoint, 'fallback'); + + $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global; + $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global; + + // Allow for an as-needed override or usage of no query fallback. + @if $no-query != false { + $query-fallback: $no-query; + } + + @if $query-fallback != false { + $context-setter: private-breakpoint-set-context('no-query', $query-fallback); + } + + // Print Out Query String + @if not breakpoint-get('no queries') { + @media #{$query-string} { + @content; + } + } + + @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true { + + $type: type-of(breakpoint-get('no query fallbacks')); + $print: false; + + @if ($type == 'bool') { + $print: true; + } + @else if ($type == 'string') { + @if $query-fallback == breakpoint-get('no query fallbacks') { + $print: true; + } + } + @else if ($type == 'list') { + @each $wrapper in breakpoint-get('no query fallbacks') { + @if $query-fallback == $wrapper { + $print: true; + } + } + } + + // Write Fallback + @if ($query-fallback != false) and ($print == true) { + $type-fallback: type-of($query-fallback); + + @if ($type-fallback != 'bool') { + #{$query-fallback} & { + @content; + } + } + @else { + @content; + } + } + } + + @include private-breakpoint-reset-contexts(); +} + + +@mixin mq($query, $no-query: false) { + @include breakpoint($query, $no-query) { + @content; + } +} diff --git a/_sass/vendor/breakpoint/_context.scss b/_sass/vendor/breakpoint/_context.scss new file mode 100644 index 0000000..57947f5 --- /dev/null +++ b/_sass/vendor/breakpoint/_context.scss @@ -0,0 +1,95 @@ +////////////////////////////// +// Private Breakpoint Variables +////////////////////////////// +$private-breakpoint-context-holder: (); +$private-breakpoint-query-count: 0 !default; + +////////////////////////////// +// Breakpoint Has Context +// Returns whether or not you are inside a Breakpoint query +////////////////////////////// +@function breakpoint-has-context() { + @if length($private-breakpoint-query-count) { + @return true; + } + @else { + @return false; + } +} + +////////////////////////////// +// Breakpoint Get Context +// $feature: Input feature to get it's current MQ context. Returns false if no context +////////////////////////////// +@function breakpoint-get-context($feature) { + @if map-has-key($private-breakpoint-context-holder, $feature) { + $get: map-get($private-breakpoint-context-holder, $feature); + // Special handling of no-query from get side so /false/ prepends aren't returned + @if $feature == 'no-query' { + @if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false { + $get: nth($get, length($get)); + } + } + @return $get; + } + @else { + @if breakpoint-has-context() and $feature == 'media' { + @return breakpoint-get('default media'); + } + @else { + @return false; + } + } +} + +////////////////////////////// +// Private function to set context +////////////////////////////// +@function private-breakpoint-set-context($feature, $value) { + @if $value == 'monochrome' { + $feature: 'monochrome'; + } + + $current: map-get($private-breakpoint-context-holder, $feature); + @if $current and length($current) == $private-breakpoint-query-count { + @warn "You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`"; + } + + @if not map-has-key($private-breakpoint-context-holder, $feature) { + $v-holder: (); + @for $i from 1 to $private-breakpoint-query-count { + @if $feature == 'media' { + $v-holder: append($v-holder, breakpoint-get('default media')); + } + @else { + $v-holder: append($v-holder, false); + } + } + $v-holder: append($v-holder, $value); + $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global; + } + @else { + $v-holder: map-get($private-breakpoint-context-holder, $feature); + $length: length($v-holder); + @for $i from $length to $private-breakpoint-query-count - 1 { + @if $feature == 'media' { + $v-holder: append($v-holder, breakpoint-get('default media')); + } + @else { + $v-holder: append($v-holder, false); + } + } + $v-holder: append($v-holder, $value); + $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global; + } + + @return true; +} + +////////////////////////////// +// Private function to reset context +////////////////////////////// +@mixin private-breakpoint-reset-contexts { + $private-breakpoint-context-holder: () !global; + $private-breakpoint-query-count: 0 !global; +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/_helpers.scss b/_sass/vendor/breakpoint/_helpers.scss new file mode 100644 index 0000000..97e522d --- /dev/null +++ b/_sass/vendor/breakpoint/_helpers.scss @@ -0,0 +1,151 @@ +////////////////////////////// +// Converts the input value to Base EMs +////////////////////////////// +@function breakpoint-to-base-em($value) { + $value-unit: unit($value); + + // Will convert relative EMs into root EMs. + @if breakpoint-get('base font size') and type-of(breakpoint-get('base font size')) == 'number' and $value-unit == 'em' { + $base-unit: unit(breakpoint-get('base font size')); + + @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' { + @return base-conversion($value) / base-conversion(breakpoint-get('base font size')) * 1em; + } + @else { + @warn '#{breakpoint-get(\'base font size\')} is not set in valid units for font size!'; + @return false; + } + } + @else { + @return base-conversion($value); + } +} + +@function base-conversion($value) { + $unit: unit($value); + + @if $unit == 'px' { + @return $value / 16px * 1em; + } + @else if $unit == '%' { + @return $value / 100% * 1em; + } + @else if $unit == 'em' { + @return $value; + } + @else if $unit == 'pt' { + @return $value / 12pt * 1em; + } + @else { + @return $value; +// @warn 'Everything is terrible! What have you done?!'; + } +} + +////////////////////////////// +// Returns whether the feature can have a min/max pair +////////////////////////////// +$breakpoint-min-max-features: 'color', + 'color-index', + 'aspect-ratio', + 'device-aspect-ratio', + 'device-height', + 'device-width', + 'height', + 'monochrome', + 'resolution', + 'width'; + +@function breakpoint-min-max($feature) { + @each $item in $breakpoint-min-max-features { + @if $feature == $item { + @return true; + } + } + @return false; +} + +////////////////////////////// +// Returns whether the feature can have a string value +////////////////////////////// +$breakpoint-string-features: 'orientation', + 'scan', + 'color', + 'aspect-ratio', + 'device-aspect-ratio', + 'pointer', + 'luminosity'; + +@function breakpoint-string-value($feature) { + @each $item in $breakpoint-string-features { + @if breakpoint-min-max($item) { + @if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' { + @return true; + } + } + @else if $feature == $item { + @return true; + } + } + @return false; +} + +////////////////////////////// +// Returns whether the feature is a media type +////////////////////////////// +$breakpoint-media-types: 'all', + 'braille', + 'embossed', + 'handheld', + 'print', + 'projection', + 'screen', + 'speech', + 'tty', + 'tv'; + +@function breakpoint-is-media($feature) { + @each $media in $breakpoint-media-types { + @if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') { + @return true; + } + } + + @return false; +} + +////////////////////////////// +// Returns whether the feature can stand alone +////////////////////////////// +$breakpoint-single-string-features: 'color', + 'color-index', + 'grid', + 'monochrome'; + +@function breakpoint-single-string($feature) { + @each $item in $breakpoint-single-string-features { + @if $feature == $item { + @return true; + } + } + @return false; +} + +////////////////////////////// +// Returns whether the feature +////////////////////////////// +@function breakpoint-is-resolution($feature) { + $resolutions: 'device-pixel-ratio', 'dpr'; + + @if breakpoint-get('transform resolutions') { + $resolutions: append($resolutions, 'resolution'); + } + + @each $reso in $resolutions { + @if index($feature, $reso) or index($feature, 'min-#{$reso}') or index($feature, 'max-#{$reso}') { + @return true; + } + } + + @return false; +} diff --git a/_sass/vendor/breakpoint/_legacy-settings.scss b/_sass/vendor/breakpoint/_legacy-settings.scss new file mode 100644 index 0000000..e060ebe --- /dev/null +++ b/_sass/vendor/breakpoint/_legacy-settings.scss @@ -0,0 +1,50 @@ +@mixin legacy-settings-warning { + $legacyVars: ( + 'default-media': 'default media', + 'default-feature': 'default feature', + 'force-media-all': 'force all media type', + 'to-ems': 'to ems', + 'resolutions': 'transform resolutions', + 'no-queries': 'no queries', + 'no-query-fallbacks': 'no query fallbacks', + 'base-font-size': 'base font size', + 'legacy-syntax': 'legacy syntax' + ); + + @each $legacy, $new in $legacyVars { + @if global-variable-exists('breakpoint-' + $legacy) { + @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release." + } + }; + + ////////////////////////////// + // Hand correct each setting + ////////////////////////////// + @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') { + @include breakpoint-set('default media', $breakpoint-default-media); + } + @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') { + @include breakpoint-set('default feature', $breakpoint-default-feature); + } + @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') { + @include breakpoint-set('force all media type', $breakpoint-force-media-all); + } + @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') { + @include breakpoint-set('to ems', $breakpoint-to-ems); + } + @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') { + @include breakpoint-set('transform resolutions', $breakpoint-resolutions); + } + @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') { + @include breakpoint-set('no queries', $breakpoint-no-queries); + } + @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') { + @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks); + } + @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') { + @include breakpoint-set('base font size', $breakpoint-base-font-size); + } + @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') { + @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax); + } +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/_no-query.scss b/_sass/vendor/breakpoint/_no-query.scss new file mode 100644 index 0000000..0b5a81f --- /dev/null +++ b/_sass/vendor/breakpoint/_no-query.scss @@ -0,0 +1,15 @@ +@function breakpoint-no-query($query) { + @if type-of($query) == 'list' { + $keyword: nth($query, 1); + + @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') { + @return nth($query, 2); + } + @else { + @return false; + } + } + @else { + @return false; + } +} diff --git a/_sass/vendor/breakpoint/_parsers.scss b/_sass/vendor/breakpoint/_parsers.scss new file mode 100644 index 0000000..f0b053f --- /dev/null +++ b/_sass/vendor/breakpoint/_parsers.scss @@ -0,0 +1,215 @@ +////////////////////////////// +// Import Parser Pieces +////////////////////////////// +@import "parsers/query"; +@import "parsers/single"; +@import "parsers/double"; +@import "parsers/triple"; +@import "parsers/resolution"; + +$Memo-Exists: function-exists(memo-get) and function-exists(memo-set); + +////////////////////////////// +// Breakpoint Function +////////////////////////////// +@function breakpoint($query, $contexts...) { + $run: true; + $return: (); + + // Grab the Memo Output if Memoization can be a thing + @if $Memo-Exists { + $return: memo-get(breakpoint, breakpoint $query $contexts); + + @if $return != null { + $run: false; + } + } + + @if not $Memo-Exists or $run { + // Internal Variables + $query-string: ''; + $query-fallback: false; + $return: (); + + // Reserve Global Private Breakpoint Context + $holder-context: $private-breakpoint-context-holder; + $holder-query-count: $private-breakpoint-query-count; + + // Reset Global Private Breakpoint Context + $private-breakpoint-context-holder: () !global; + $private-breakpoint-query-count: 0 !global; + + + // Test to see if it's a comma-separated list + $or-list: if(list-separator($query) == 'comma', true, false); + + + @if ($or-list == false and breakpoint-get('legacy syntax') == false) { + $query-string: breakpoint-parse($query); + } + @else { + $length: length($query); + + $last: nth($query, $length); + $query-fallback: breakpoint-no-query($last); + + @if ($query-fallback != false) { + $length: $length - 1; + } + + @if (breakpoint-get('legacy syntax') == true) { + $mq: (); + + @for $i from 1 through $length { + $mq: append($mq, nth($query, $i), comma); + } + + $query-string: breakpoint-parse($mq); + } + @else { + $query-string: ''; + @for $i from 1 through $length { + $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i)); + } + } + } + + $return: ('query': $query-string, + 'fallback': $query-fallback, + 'context holder': $private-breakpoint-context-holder, + 'query count': $private-breakpoint-query-count + ); + @if length($contexts) > 0 and nth($contexts, 1) != false { + @if $query-fallback != false { + $context-setter: private-breakpoint-set-context('no-query', $query-fallback); + } + $context-map: (); + @each $context in $contexts { + $context-map: map-merge($context-map, ($context: breakpoint-get-context($context))); + } + $return: map-merge($return, (context: $context-map)); + } + + // Reset Global Private Breakpoint Context + $private-breakpoint-context-holder: () !global; + $private-breakpoint-query-count: 0 !global; + + @if $Memo-Exists { + $holder: memo-set(breakpoint, breakpoint $query $contexts, $return); + } + } + + @return $return; +} + +////////////////////////////// +// General Breakpoint Parser +////////////////////////////// +@function breakpoint-parse($query) { + // Increase number of 'and' queries + $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global; + + // Set up Media Type + $query-print: ''; + + $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all')); + $empty-media: true; + @if ($force-all == true) or (breakpoint-get('default media') != 'all') { + // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all) + $query-print: breakpoint-get('default media'); + $empty-media: false; + } + + + $query-resolution: false; + + $query-holder: breakpoint-parse-query($query); + + + + // Loop over each parsed out query and write it to $query-print + $first: true; + + @each $feature in $query-holder { + $length: length($feature); + + // Parse a single feature + @if ($length == 1) { + // Feature is currently a list, grab the actual value + $feature: nth($feature, 1); + + // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type + @if (breakpoint-is-media($feature)) { + @if ($force-all == true) or ($feature != 'all') { + // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all) + $query-print: $feature; + $empty-media: false; + + // Set Context + $context-setter: private-breakpoint-set-context(media, $query-print); + } + } + @else { + $parsed: breakpoint-parse-single($feature, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + } + } + // Parse a double feature + @else if ($length == 2) { + @if (breakpoint-is-resolution($feature) != false) { + $query-resolution: $feature; + } + @else { + $parsed: null; + // If it's a string/number pair, + // we check to see if one is a single-string value, + // then we parse it as a normal double + $alpha: nth($feature, 1); + $beta: nth($feature, 2); + @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) { + $parsed: breakpoint-parse-single($alpha, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + $parsed: breakpoint-parse-single($beta, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + } + @else { + $parsed: breakpoint-parse-double($feature, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + } + } + } + // Parse a triple feature + @else if ($length == 3) { + $parsed: breakpoint-parse-triple($feature, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + } + + } + + @if ($query-resolution != false) { + $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first); + } + + // Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters + @each $f, $v in $private-breakpoint-context-holder { + $v-holder: $v; + $length: length($v-holder); + @if length($v-holder) < $private-breakpoint-query-count { + @for $i from $length to $private-breakpoint-query-count { + @if $f == 'media' { + $v-holder: append($v-holder, breakpoint-get('default media')); + } + @else { + $v-holder: append($v-holder, false); + } + } + } + $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global; + } + + @return $query-print; +} diff --git a/_sass/vendor/breakpoint/_respond-to.scss b/_sass/vendor/breakpoint/_respond-to.scss new file mode 100644 index 0000000..e2462c5 --- /dev/null +++ b/_sass/vendor/breakpoint/_respond-to.scss @@ -0,0 +1,82 @@ +//////////////////////// +// Default the Breakpoints variable +//////////////////////// +$breakpoints: () !default; +$BREAKPOINTS: () !default; + +//////////////////////// +// Respond-to API Mixin +//////////////////////// +@mixin respond-to($context, $no-query: false) { + @if length($breakpoints) > 0 and length($BREAKPOINTS) == 0 { + @warn "In order to avoid variable namespace collisions, we have updated the way to add breakpoints for respond-to. Please change all instances of `$breakpoints: add-breakpoint()` to `@include add-breakpoint()`. The `add-breakpoint()` function will be deprecated in a future release."; + $BREAKPOINTS: $breakpoints !global; + $breakpoints: () !global; + } + + @if type-of($BREAKPOINTS) != 'map' { + // Just in case someone writes gibberish to the $breakpoints variable. + @warn "Your breakpoints aren't a map! `respond-to` expects a map. Please check the value of $BREAKPOINTS variable."; + @content; + } + @else if map-has-key($BREAKPOINTS, $context) { + @include breakpoint(map-get($BREAKPOINTS, $context), $no-query) { + @content; + } + } + @else if not map-has-key($BREAKPOINTS, $context) { + @warn "`#{$context}` isn't a defined breakpoint! Please add it using `$breakpoints: add-breakpoint(`#{$context}`, $value);`"; + @content; + } + @else { + @warn "You haven't created any breakpoints yet! Make some already! `@include add-breakpoint($name, $bkpt)`"; + @content; + } +} + +////////////////////////////// +// Add Breakpoint to Breakpoints +// TODO: Remove function in next release +////////////////////////////// +@function add-breakpoint($name, $bkpt, $overwrite: false) { + $output: ($name: $bkpt); + + @if length($breakpoints) == 0 { + @return $output; + } + @else { + @if map-has-key($breakpoints, $name) and $overwrite != true { + @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint."; + @return $breakpoints; + } + @else if not map-has-key($breakpoints, $name) or $overwrite == true { + @return map-merge($breakpoints, $output); + } + } +} + +@mixin add-breakpoint($name, $bkpt, $overwrite: false) { + $output: ($name: $bkpt); + + @if length($BREAKPOINTS) == 0 { + $BREAKPOINTS: $output !global; + } + @else { + @if map-has-key($BREAKPOINTS, $name) and $overwrite != true { + @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint."; + $BREAKPOINTS: $BREAKPOINTS !global; + } + @else if not map-has-key($BREAKPOINTS, $name) or $overwrite == true { + $BREAKPOINTS: map-merge($BREAKPOINTS, $output) !global; + } + } +} + +@function get-breakpoint($name: false) { + @if $name == false { + @return $BREAKPOINTS; + } + @else { + @return map-get($BREAKPOINTS, $name); + } +} diff --git a/_sass/vendor/breakpoint/_settings.scss b/_sass/vendor/breakpoint/_settings.scss new file mode 100644 index 0000000..05ee689 --- /dev/null +++ b/_sass/vendor/breakpoint/_settings.scss @@ -0,0 +1,71 @@ +////////////////////////////// +// Has Setting +////////////////////////////// +@function breakpoint-has($setting) { + @if map-has-key($breakpoint, $setting) { + @return true; + } + @else { + @return false; + } +} + +////////////////////////////// +// Get Settings +////////////////////////////// +@function breakpoint-get($setting) { + @if breakpoint-has($setting) { + @return map-get($breakpoint, $setting); + } + @else { + @return map-get($Breakpoint-Settings, $setting); + } +} + +////////////////////////////// +// Set Settings +////////////////////////////// +@function breakpoint-set($setting, $value) { + @if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null { + @warn "Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed."; + } + $breakpoint: map-merge($breakpoint, ($setting: $value)) !global; + @return true; +} + +@mixin breakpoint-change($setting, $value) { + $breakpoint-change: breakpoint-set($setting, $value); +} + +@mixin breakpoint-set($setting, $value) { + @include breakpoint-change($setting, $value); +} + +@mixin bkpt-change($setting, $value) { + @include breakpoint-change($setting, $value); +} +@mixin bkpt-set($setting, $value) { + @include breakpoint-change($setting, $value); +} + +////////////////////////////// +// Remove Setting +////////////////////////////// +@function breakpoint-reset($settings...) { + @if length($settings) == 1 { + $settings: nth($settings, 1); + } + + @each $setting in $settings { + $breakpoint: map-remove($breakpoint, $setting) !global; + } + @return true; +} + +@mixin breakpoint-reset($settings...) { + $breakpoint-reset: breakpoint-reset($settings); +} + +@mixin bkpt-reset($settings...) { + $breakpoint-reset: breakpoint-reset($settings); +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/parsers/_double.scss b/_sass/vendor/breakpoint/parsers/_double.scss new file mode 100644 index 0000000..24580c1 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_double.scss @@ -0,0 +1,33 @@ +////////////////////////////// +// Import Pieces +////////////////////////////// +@import "double/default-pair"; +@import "double/double-string"; +@import "double/default"; + +@function breakpoint-parse-double($feature, $empty-media, $first) { + $parsed: ''; + $leader: ''; + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + $first: nth($feature, 1); + $second: nth($feature, 2); + + // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number + @if type-of($first) == 'number' and type-of($second) == 'number' { + $parsed: breakpoint-parse-default-pair($first, $second); + } + // If they are both strings, we send it through the string parser + @else if type-of($first) == 'string' and type-of($second) == 'string' { + $parsed: breakpoint-parse-double-string($first, $second); + } + // If it's a string/number pair, we parse it as a normal double + @else { + $parsed: breakpoint-parse-double-default($first, $second); + } + + @return $leader + $parsed; +} diff --git a/_sass/vendor/breakpoint/parsers/_query.scss b/_sass/vendor/breakpoint/parsers/_query.scss new file mode 100644 index 0000000..b138b39 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_query.scss @@ -0,0 +1,82 @@ +@function breakpoint-parse-query($query) { + // Parse features out of an individual query + $feature-holder: (); + $query-holder: (); + $length: length($query); + + @if $length == 2 { + // If we've got a string/number, number/string, check to see if it's a valid string/number pair or two singles + @if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'number') or (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'string') { + + $number: ''; + $value: ''; + + @if type-of(nth($query, 1)) == 'string' { + $number: nth($query, 2); + $value: nth($query, 1); + } + @else { + $number: nth($query, 1); + $value: nth($query, 2); + } + + // If the string value can be a single value, check to see if the number passed in is a valid input for said single value. Fortunately, all current single-value options only accept unitless numbers, so this check is easy. + @if breakpoint-single-string($value) { + @if unitless($number) { + $feature-holder: append($value, $number, space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + } + // If the string is a media type, split the query + @if breakpoint-is-media($value) { + $query-holder: append($query-holder, nth($query, 1)); + $query-holder: append($query-holder, nth($query, 2)); + @return $query-holder; + } + // If it's not a single feature, we're just going to assume it's a proper string/value pair, and roll with it. + @else { + $feature-holder: append($value, $number, space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + + } + // If they're both numbers, we assume it's a double and roll with that + @else if (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'number') { + $feature-holder: append(nth($query, 1), nth($query, 2), space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + // If they're both strings and neither are singles, we roll with that. + @else if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'string') { + @if not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) { + $feature-holder: append(nth($query, 1), nth($query, 2), space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + } + } + @else if $length == 3 { + // If we've got three items and none is a list, we check to see + @if type-of(nth($query, 1)) != 'list' and type-of(nth($query, 2)) != 'list' and type-of(nth($query, 3)) != 'list' { + // If none of the items are single string values and none of the values are media values, we're good. + @if (not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) and not breakpoint-single-string(nth($query, 3))) and ((not breakpoint-is-media(nth($query, 1)) and not breakpoint-is-media(nth($query, 2)) and not breakpoint-is-media(nth($query, 3)))) { + $feature-holder: append(nth($query, 1), nth($query, 2), space); + $feature-holder: append($feature-holder, nth($query, 3), space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + // let's check to see if the first item is a media type + @else if breakpoint-is-media(nth($query, 1)) { + $query-holder: append($query-holder, nth($query, 1)); + $feature-holder: append(nth($query, 2), nth($query, 3), space); + $query-holder: append($query-holder, $feature-holder); + @return $query-holder; + } + } + } + + // If it's a single item, or if it's not a special case double or triple, we can simply return the query. + @return $query; +} diff --git a/_sass/vendor/breakpoint/parsers/_resolution.scss b/_sass/vendor/breakpoint/parsers/_resolution.scss new file mode 100644 index 0000000..19769ad --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_resolution.scss @@ -0,0 +1,31 @@ +@import "resolution/resolution"; + +@function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) { + $leader: ''; + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + @if breakpoint-get('transform resolutions') and $query-resolution { + $resolutions: breakpoint-make-resolutions($query-resolution); + $length: length($resolutions); + $query-holder: ''; + + @for $i from 1 through $length { + $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}'; + @if $i == 1 { + $query-holder: $query; + } + @else { + $query-holder: '#{$query-holder}, #{$query}'; + } + } + + @return $query-holder; + } + @else { + // Return with attached resolution + @return $query-print; + } +} diff --git a/_sass/vendor/breakpoint/parsers/_single.scss b/_sass/vendor/breakpoint/parsers/_single.scss new file mode 100644 index 0000000..d9fd764 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_single.scss @@ -0,0 +1,26 @@ +////////////////////////////// +// Import Pieces +////////////////////////////// +@import "single/default"; + +@function breakpoint-parse-single($feature, $empty-media, $first) { + $parsed: ''; + $leader: ''; + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + // If it's a single feature that can stand alone, we let it + @if (breakpoint-single-string($feature)) { + $parsed: $feature; + // Set Context + $context-setter: private-breakpoint-set-context($feature, $feature); + } + // If it's not a stand alone feature, we pass it off to the default handler. + @else { + $parsed: breakpoint-parse-default($feature); + } + + @return $leader + '(' + $parsed + ')'; +} diff --git a/_sass/vendor/breakpoint/parsers/_triple.scss b/_sass/vendor/breakpoint/parsers/_triple.scss new file mode 100644 index 0000000..e273206 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_triple.scss @@ -0,0 +1,36 @@ +////////////////////////////// +// Import Pieces +////////////////////////////// +@import "triple/default"; + +@function breakpoint-parse-triple($feature, $empty-media, $first) { + $parsed: ''; + $leader: ''; + + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + // separate the string features from the value numbers + $string: null; + $numbers: null; + @each $val in $feature { + @if type-of($val) == string { + $string: $val; + } + @else { + @if type-of($numbers) == 'null' { + $numbers: $val; + } + @else { + $numbers: append($numbers, $val); + } + } + } + + $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2)); + + @return $leader + $parsed; + +} diff --git a/_sass/vendor/breakpoint/parsers/double/_default-pair.scss b/_sass/vendor/breakpoint/parsers/double/_default-pair.scss new file mode 100644 index 0000000..f88432c --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/double/_default-pair.scss @@ -0,0 +1,21 @@ +@function breakpoint-parse-default-pair($first, $second) { + $default: breakpoint-get('default pair'); + $min: ''; + $max: ''; + + // Sort into min and max + $min: min($first, $second); + $max: max($first, $second); + + // Set Context + $context-setter: private-breakpoint-set-context(min-#{$default}, $min); + $context-setter: private-breakpoint-set-context(max-#{$default}, $max); + + // Make them EMs if need be + @if (breakpoint-get('to ems') == true) { + $min: breakpoint-to-base-em($min); + $max: breakpoint-to-base-em($max); + } + + @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})'; +} diff --git a/_sass/vendor/breakpoint/parsers/double/_default.scss b/_sass/vendor/breakpoint/parsers/double/_default.scss new file mode 100644 index 0000000..73190ed --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/double/_default.scss @@ -0,0 +1,22 @@ +@function breakpoint-parse-double-default($first, $second) { + $feature: ''; + $value: ''; + + @if type-of($first) == 'string' { + $feature: $first; + $value: $second; + } + @else { + $feature: $second; + $value: $first; + } + + // Set Context + $context-setter: private-breakpoint-set-context($feature, $value); + + @if (breakpoint-get('to ems') == true) { + $value: breakpoint-to-base-em($value); + } + + @return '(#{$feature}: #{$value})' +} diff --git a/_sass/vendor/breakpoint/parsers/double/_double-string.scss b/_sass/vendor/breakpoint/parsers/double/_double-string.scss new file mode 100644 index 0000000..c6fd0cb --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/double/_double-string.scss @@ -0,0 +1,22 @@ +@function breakpoint-parse-double-string($first, $second) { + $feature: ''; + $value: ''; + + // Test to see which is the feature and which is the value + @if (breakpoint-string-value($first) == true) { + $feature: $first; + $value: $second; + } + @else if (breakpoint-string-value($second) == true) { + $feature: $second; + $value: $first; + } + @else { + @warn "Neither #{$first} nor #{$second} is a valid media query name."; + } + + // Set Context + $context-setter: private-breakpoint-set-context($feature, $value); + + @return '(#{$feature}: #{$value})'; +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss b/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss new file mode 100644 index 0000000..3680421 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss @@ -0,0 +1,60 @@ +@function breakpoint-make-resolutions($resolution) { + $length: length($resolution); + + $output: (); + + @if $length == 2 { + $feature: ''; + $value: ''; + + // Find which is number + @if type-of(nth($resolution, 1)) == 'number' { + $value: nth($resolution, 1); + } + @else { + $value: nth($resolution, 2); + } + + // Determine min/max/standard + @if index($resolution, 'min-resolution') { + $feature: 'min-'; + } + @else if index($resolution, 'max-resolution') { + $feature: 'max-'; + } + + $standard: '(#{$feature}resolution: #{$value})'; + + // If we're not dealing with dppx, + @if unit($value) != 'dppx' { + $base: 96dpi; + @if unit($value) == 'dpcm' { + $base: 243.84dpcm; + } + // Write out feature tests + $webkit: ''; + $moz: ''; + $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})'; + $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})'; + // Append to output + $output: append($output, $standard, space); + $output: append($output, $webkit, space); + $output: append($output, $moz, space); + } + @else { + $webkit: ''; + $moz: ''; + $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})'; + $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})'; + $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})'; + // Append to output + $output: append($output, $standard, space); + $output: append($output, $webkit, space); + $output: append($output, $moz, space); + $output: append($output, $fallback, space); + } + + } + + @return $output; +} diff --git a/_sass/vendor/breakpoint/parsers/single/_default.scss b/_sass/vendor/breakpoint/parsers/single/_default.scss new file mode 100644 index 0000000..503ef42 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/single/_default.scss @@ -0,0 +1,13 @@ +@function breakpoint-parse-default($feature) { + $default: breakpoint-get('default feature'); + + // Set Context + $context-setter: private-breakpoint-set-context($default, $feature); + + @if (breakpoint-get('to ems') == true) and (type-of($feature) == 'number') { + @return '#{$default}: #{breakpoint-to-base-em($feature)}'; + } + @else { + @return '#{$default}: #{$feature}'; + } +} diff --git a/_sass/vendor/breakpoint/parsers/triple/_default.scss b/_sass/vendor/breakpoint/parsers/triple/_default.scss new file mode 100644 index 0000000..7fa418d --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/triple/_default.scss @@ -0,0 +1,18 @@ +@function breakpoint-parse-triple-default($feature, $first, $second) { + + // Sort into min and max + $min: min($first, $second); + $max: max($first, $second); + + // Set Context + $context-setter: private-breakpoint-set-context(min-#{$feature}, $min); + $context-setter: private-breakpoint-set-context(max-#{$feature}, $max); + + // Make them EMs if need be + @if (breakpoint-get('to ems') == true) { + $min: breakpoint-to-base-em($min); + $max: breakpoint-to-base-em($max); + } + + @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})'; +} diff --git a/_sass/vendor/font-awesome/_animated.scss b/_sass/vendor/font-awesome/_animated.scss new file mode 100644 index 0000000..7c7c0e1 --- /dev/null +++ b/_sass/vendor/font-awesome/_animated.scss @@ -0,0 +1,20 @@ +// Animated Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + animation: fa-spin 1s infinite steps(8); +} + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} diff --git a/_sass/vendor/font-awesome/_bordered-pulled.scss b/_sass/vendor/font-awesome/_bordered-pulled.scss new file mode 100644 index 0000000..c8c4274 --- /dev/null +++ b/_sass/vendor/font-awesome/_bordered-pulled.scss @@ -0,0 +1,20 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + border: solid .08em $fa-border-color; + border-radius: .1em; + padding: .2em .25em .15em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix}, +.fas, +.far, +.fal, +.fab { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} diff --git a/_sass/vendor/font-awesome/_core.scss b/_sass/vendor/font-awesome/_core.scss new file mode 100644 index 0000000..a4ee7e8 --- /dev/null +++ b/_sass/vendor/font-awesome/_core.scss @@ -0,0 +1,20 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix}, +.fas, +.far, +.fal, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; +} + +%fa-icon { + @include fa-icon; +} diff --git a/_sass/vendor/font-awesome/_fixed-width.scss b/_sass/vendor/font-awesome/_fixed-width.scss new file mode 100644 index 0000000..970641f --- /dev/null +++ b/_sass/vendor/font-awesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + text-align: center; + width: $fa-fw-width; +} diff --git a/_sass/vendor/font-awesome/_icons.scss b/_sass/vendor/font-awesome/_icons.scss new file mode 100644 index 0000000..f263728 --- /dev/null +++ b/_sass/vendor/font-awesome/_icons.scss @@ -0,0 +1,1262 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); } +.#{$fa-css-prefix}-accessible-icon:before { content: fa-content($fa-var-accessible-icon); } +.#{$fa-css-prefix}-accusoft:before { content: fa-content($fa-var-accusoft); } +.#{$fa-css-prefix}-acquisitions-incorporated:before { content: fa-content($fa-var-acquisitions-incorporated); } +.#{$fa-css-prefix}-ad:before { content: fa-content($fa-var-ad); } +.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); } +.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); } +.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); } +.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); } +.#{$fa-css-prefix}-adversal:before { content: fa-content($fa-var-adversal); } +.#{$fa-css-prefix}-affiliatetheme:before { content: fa-content($fa-var-affiliatetheme); } +.#{$fa-css-prefix}-air-freshener:before { content: fa-content($fa-var-air-freshener); } +.#{$fa-css-prefix}-algolia:before { content: fa-content($fa-var-algolia); } +.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); } +.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); } +.#{$fa-css-prefix}-align-left:before { content: fa-content($fa-var-align-left); } +.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); } +.#{$fa-css-prefix}-alipay:before { content: fa-content($fa-var-alipay); } +.#{$fa-css-prefix}-allergies:before { content: fa-content($fa-var-allergies); } +.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); } +.#{$fa-css-prefix}-amazon-pay:before { content: fa-content($fa-var-amazon-pay); } +.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); } +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); } +.#{$fa-css-prefix}-amilia:before { content: fa-content($fa-var-amilia); } +.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); } +.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); } +.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); } +.#{$fa-css-prefix}-angle-double-down:before { content: fa-content($fa-var-angle-double-down); } +.#{$fa-css-prefix}-angle-double-left:before { content: fa-content($fa-var-angle-double-left); } +.#{$fa-css-prefix}-angle-double-right:before { content: fa-content($fa-var-angle-double-right); } +.#{$fa-css-prefix}-angle-double-up:before { content: fa-content($fa-var-angle-double-up); } +.#{$fa-css-prefix}-angle-down:before { content: fa-content($fa-var-angle-down); } +.#{$fa-css-prefix}-angle-left:before { content: fa-content($fa-var-angle-left); } +.#{$fa-css-prefix}-angle-right:before { content: fa-content($fa-var-angle-right); } +.#{$fa-css-prefix}-angle-up:before { content: fa-content($fa-var-angle-up); } +.#{$fa-css-prefix}-angry:before { content: fa-content($fa-var-angry); } +.#{$fa-css-prefix}-angrycreative:before { content: fa-content($fa-var-angrycreative); } +.#{$fa-css-prefix}-angular:before { content: fa-content($fa-var-angular); } +.#{$fa-css-prefix}-ankh:before { content: fa-content($fa-var-ankh); } +.#{$fa-css-prefix}-app-store:before { content: fa-content($fa-var-app-store); } +.#{$fa-css-prefix}-app-store-ios:before { content: fa-content($fa-var-app-store-ios); } +.#{$fa-css-prefix}-apper:before { content: fa-content($fa-var-apper); } +.#{$fa-css-prefix}-apple:before { content: fa-content($fa-var-apple); } +.#{$fa-css-prefix}-apple-alt:before { content: fa-content($fa-var-apple-alt); } +.#{$fa-css-prefix}-apple-pay:before { content: fa-content($fa-var-apple-pay); } +.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); } +.#{$fa-css-prefix}-archway:before { content: fa-content($fa-var-archway); } +.#{$fa-css-prefix}-arrow-alt-circle-down:before { content: fa-content($fa-var-arrow-alt-circle-down); } +.#{$fa-css-prefix}-arrow-alt-circle-left:before { content: fa-content($fa-var-arrow-alt-circle-left); } +.#{$fa-css-prefix}-arrow-alt-circle-right:before { content: fa-content($fa-var-arrow-alt-circle-right); } +.#{$fa-css-prefix}-arrow-alt-circle-up:before { content: fa-content($fa-var-arrow-alt-circle-up); } +.#{$fa-css-prefix}-arrow-circle-down:before { content: fa-content($fa-var-arrow-circle-down); } +.#{$fa-css-prefix}-arrow-circle-left:before { content: fa-content($fa-var-arrow-circle-left); } +.#{$fa-css-prefix}-arrow-circle-right:before { content: fa-content($fa-var-arrow-circle-right); } +.#{$fa-css-prefix}-arrow-circle-up:before { content: fa-content($fa-var-arrow-circle-up); } +.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); } +.#{$fa-css-prefix}-arrow-left:before { content: fa-content($fa-var-arrow-left); } +.#{$fa-css-prefix}-arrow-right:before { content: fa-content($fa-var-arrow-right); } +.#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); } +.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); } +.#{$fa-css-prefix}-arrows-alt-h:before { content: fa-content($fa-var-arrows-alt-h); } +.#{$fa-css-prefix}-arrows-alt-v:before { content: fa-content($fa-var-arrows-alt-v); } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); } +.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); } +.#{$fa-css-prefix}-asymmetrik:before { content: fa-content($fa-var-asymmetrik); } +.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); } +.#{$fa-css-prefix}-atlas:before { content: fa-content($fa-var-atlas); } +.#{$fa-css-prefix}-atom:before { content: fa-content($fa-var-atom); } +.#{$fa-css-prefix}-audible:before { content: fa-content($fa-var-audible); } +.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); } +.#{$fa-css-prefix}-autoprefixer:before { content: fa-content($fa-var-autoprefixer); } +.#{$fa-css-prefix}-avianex:before { content: fa-content($fa-var-avianex); } +.#{$fa-css-prefix}-aviato:before { content: fa-content($fa-var-aviato); } +.#{$fa-css-prefix}-award:before { content: fa-content($fa-var-award); } +.#{$fa-css-prefix}-aws:before { content: fa-content($fa-var-aws); } +.#{$fa-css-prefix}-backspace:before { content: fa-content($fa-var-backspace); } +.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); } +.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); } +.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); } +.#{$fa-css-prefix}-band-aid:before { content: fa-content($fa-var-band-aid); } +.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); } +.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); } +.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); } +.#{$fa-css-prefix}-baseball-ball:before { content: fa-content($fa-var-baseball-ball); } +.#{$fa-css-prefix}-basketball-ball:before { content: fa-content($fa-var-basketball-ball); } +.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); } +.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); } +.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); } +.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); } +.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); } +.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); } +.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); } +.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); } +.#{$fa-css-prefix}-behance:before { content: fa-content($fa-var-behance); } +.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); } +.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); } +.#{$fa-css-prefix}-bell-slash:before { content: fa-content($fa-var-bell-slash); } +.#{$fa-css-prefix}-bezier-curve:before { content: fa-content($fa-var-bezier-curve); } +.#{$fa-css-prefix}-bible:before { content: fa-content($fa-var-bible); } +.#{$fa-css-prefix}-bicycle:before { content: fa-content($fa-var-bicycle); } +.#{$fa-css-prefix}-bimobject:before { content: fa-content($fa-var-bimobject); } +.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); } +.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); } +.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); } +.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-bitcoin); } +.#{$fa-css-prefix}-bity:before { content: fa-content($fa-var-bity); } +.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); } +.#{$fa-css-prefix}-blackberry:before { content: fa-content($fa-var-blackberry); } +.#{$fa-css-prefix}-blender:before { content: fa-content($fa-var-blender); } +.#{$fa-css-prefix}-blender-phone:before { content: fa-content($fa-var-blender-phone); } +.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); } +.#{$fa-css-prefix}-blogger:before { content: fa-content($fa-var-blogger); } +.#{$fa-css-prefix}-blogger-b:before { content: fa-content($fa-var-blogger-b); } +.#{$fa-css-prefix}-bluetooth:before { content: fa-content($fa-var-bluetooth); } +.#{$fa-css-prefix}-bluetooth-b:before { content: fa-content($fa-var-bluetooth-b); } +.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); } +.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); } +.#{$fa-css-prefix}-bomb:before { content: fa-content($fa-var-bomb); } +.#{$fa-css-prefix}-bone:before { content: fa-content($fa-var-bone); } +.#{$fa-css-prefix}-bong:before { content: fa-content($fa-var-bong); } +.#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); } +.#{$fa-css-prefix}-book-dead:before { content: fa-content($fa-var-book-dead); } +.#{$fa-css-prefix}-book-open:before { content: fa-content($fa-var-book-open); } +.#{$fa-css-prefix}-book-reader:before { content: fa-content($fa-var-book-reader); } +.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); } +.#{$fa-css-prefix}-bowling-ball:before { content: fa-content($fa-var-bowling-ball); } +.#{$fa-css-prefix}-box:before { content: fa-content($fa-var-box); } +.#{$fa-css-prefix}-box-open:before { content: fa-content($fa-var-box-open); } +.#{$fa-css-prefix}-boxes:before { content: fa-content($fa-var-boxes); } +.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); } +.#{$fa-css-prefix}-brain:before { content: fa-content($fa-var-brain); } +.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); } +.#{$fa-css-prefix}-briefcase-medical:before { content: fa-content($fa-var-briefcase-medical); } +.#{$fa-css-prefix}-broadcast-tower:before { content: fa-content($fa-var-broadcast-tower); } +.#{$fa-css-prefix}-broom:before { content: fa-content($fa-var-broom); } +.#{$fa-css-prefix}-brush:before { content: fa-content($fa-var-brush); } +.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); } +.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); } +.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); } +.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); } +.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); } +.#{$fa-css-prefix}-burn:before { content: fa-content($fa-var-burn); } +.#{$fa-css-prefix}-buromobelexperte:before { content: fa-content($fa-var-buromobelexperte); } +.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); } +.#{$fa-css-prefix}-bus-alt:before { content: fa-content($fa-var-bus-alt); } +.#{$fa-css-prefix}-business-time:before { content: fa-content($fa-var-business-time); } +.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); } +.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); } +.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); } +.#{$fa-css-prefix}-calendar-alt:before { content: fa-content($fa-var-calendar-alt); } +.#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); } +.#{$fa-css-prefix}-calendar-minus:before { content: fa-content($fa-var-calendar-minus); } +.#{$fa-css-prefix}-calendar-plus:before { content: fa-content($fa-var-calendar-plus); } +.#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); } +.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); } +.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); } +.#{$fa-css-prefix}-campground:before { content: fa-content($fa-var-campground); } +.#{$fa-css-prefix}-cannabis:before { content: fa-content($fa-var-cannabis); } +.#{$fa-css-prefix}-capsules:before { content: fa-content($fa-var-capsules); } +.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); } +.#{$fa-css-prefix}-car-alt:before { content: fa-content($fa-var-car-alt); } +.#{$fa-css-prefix}-car-battery:before { content: fa-content($fa-var-car-battery); } +.#{$fa-css-prefix}-car-crash:before { content: fa-content($fa-var-car-crash); } +.#{$fa-css-prefix}-car-side:before { content: fa-content($fa-var-car-side); } +.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); } +.#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); } +.#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); } +.#{$fa-css-prefix}-caret-square-down:before { content: fa-content($fa-var-caret-square-down); } +.#{$fa-css-prefix}-caret-square-left:before { content: fa-content($fa-var-caret-square-left); } +.#{$fa-css-prefix}-caret-square-right:before { content: fa-content($fa-var-caret-square-right); } +.#{$fa-css-prefix}-caret-square-up:before { content: fa-content($fa-var-caret-square-up); } +.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); } +.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); } +.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); } +.#{$fa-css-prefix}-cat:before { content: fa-content($fa-var-cat); } +.#{$fa-css-prefix}-cc-amazon-pay:before { content: fa-content($fa-var-cc-amazon-pay); } +.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); } +.#{$fa-css-prefix}-cc-apple-pay:before { content: fa-content($fa-var-cc-apple-pay); } +.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); } +.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); } +.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); } +.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); } +.#{$fa-css-prefix}-cc-paypal:before { content: fa-content($fa-var-cc-paypal); } +.#{$fa-css-prefix}-cc-stripe:before { content: fa-content($fa-var-cc-stripe); } +.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); } +.#{$fa-css-prefix}-centercode:before { content: fa-content($fa-var-centercode); } +.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); } +.#{$fa-css-prefix}-chair:before { content: fa-content($fa-var-chair); } +.#{$fa-css-prefix}-chalkboard:before { content: fa-content($fa-var-chalkboard); } +.#{$fa-css-prefix}-chalkboard-teacher:before { content: fa-content($fa-var-chalkboard-teacher); } +.#{$fa-css-prefix}-charging-station:before { content: fa-content($fa-var-charging-station); } +.#{$fa-css-prefix}-chart-area:before { content: fa-content($fa-var-chart-area); } +.#{$fa-css-prefix}-chart-bar:before { content: fa-content($fa-var-chart-bar); } +.#{$fa-css-prefix}-chart-line:before { content: fa-content($fa-var-chart-line); } +.#{$fa-css-prefix}-chart-pie:before { content: fa-content($fa-var-chart-pie); } +.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); } +.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); } +.#{$fa-css-prefix}-check-double:before { content: fa-content($fa-var-check-double); } +.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); } +.#{$fa-css-prefix}-chess:before { content: fa-content($fa-var-chess); } +.#{$fa-css-prefix}-chess-bishop:before { content: fa-content($fa-var-chess-bishop); } +.#{$fa-css-prefix}-chess-board:before { content: fa-content($fa-var-chess-board); } +.#{$fa-css-prefix}-chess-king:before { content: fa-content($fa-var-chess-king); } +.#{$fa-css-prefix}-chess-knight:before { content: fa-content($fa-var-chess-knight); } +.#{$fa-css-prefix}-chess-pawn:before { content: fa-content($fa-var-chess-pawn); } +.#{$fa-css-prefix}-chess-queen:before { content: fa-content($fa-var-chess-queen); } +.#{$fa-css-prefix}-chess-rook:before { content: fa-content($fa-var-chess-rook); } +.#{$fa-css-prefix}-chevron-circle-down:before { content: fa-content($fa-var-chevron-circle-down); } +.#{$fa-css-prefix}-chevron-circle-left:before { content: fa-content($fa-var-chevron-circle-left); } +.#{$fa-css-prefix}-chevron-circle-right:before { content: fa-content($fa-var-chevron-circle-right); } +.#{$fa-css-prefix}-chevron-circle-up:before { content: fa-content($fa-var-chevron-circle-up); } +.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); } +.#{$fa-css-prefix}-chevron-left:before { content: fa-content($fa-var-chevron-left); } +.#{$fa-css-prefix}-chevron-right:before { content: fa-content($fa-var-chevron-right); } +.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); } +.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); } +.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); } +.#{$fa-css-prefix}-church:before { content: fa-content($fa-var-church); } +.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); } +.#{$fa-css-prefix}-circle-notch:before { content: fa-content($fa-var-circle-notch); } +.#{$fa-css-prefix}-city:before { content: fa-content($fa-var-city); } +.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); } +.#{$fa-css-prefix}-clipboard-check:before { content: fa-content($fa-var-clipboard-check); } +.#{$fa-css-prefix}-clipboard-list:before { content: fa-content($fa-var-clipboard-list); } +.#{$fa-css-prefix}-clock:before { content: fa-content($fa-var-clock); } +.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); } +.#{$fa-css-prefix}-closed-captioning:before { content: fa-content($fa-var-closed-captioning); } +.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); } +.#{$fa-css-prefix}-cloud-download-alt:before { content: fa-content($fa-var-cloud-download-alt); } +.#{$fa-css-prefix}-cloud-meatball:before { content: fa-content($fa-var-cloud-meatball); } +.#{$fa-css-prefix}-cloud-moon:before { content: fa-content($fa-var-cloud-moon); } +.#{$fa-css-prefix}-cloud-moon-rain:before { content: fa-content($fa-var-cloud-moon-rain); } +.#{$fa-css-prefix}-cloud-rain:before { content: fa-content($fa-var-cloud-rain); } +.#{$fa-css-prefix}-cloud-showers-heavy:before { content: fa-content($fa-var-cloud-showers-heavy); } +.#{$fa-css-prefix}-cloud-sun:before { content: fa-content($fa-var-cloud-sun); } +.#{$fa-css-prefix}-cloud-sun-rain:before { content: fa-content($fa-var-cloud-sun-rain); } +.#{$fa-css-prefix}-cloud-upload-alt:before { content: fa-content($fa-var-cloud-upload-alt); } +.#{$fa-css-prefix}-cloudscale:before { content: fa-content($fa-var-cloudscale); } +.#{$fa-css-prefix}-cloudsmith:before { content: fa-content($fa-var-cloudsmith); } +.#{$fa-css-prefix}-cloudversify:before { content: fa-content($fa-var-cloudversify); } +.#{$fa-css-prefix}-cocktail:before { content: fa-content($fa-var-cocktail); } +.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); } +.#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); } +.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); } +.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); } +.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); } +.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); } +.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); } +.#{$fa-css-prefix}-coins:before { content: fa-content($fa-var-coins); } +.#{$fa-css-prefix}-columns:before { content: fa-content($fa-var-columns); } +.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); } +.#{$fa-css-prefix}-comment-alt:before { content: fa-content($fa-var-comment-alt); } +.#{$fa-css-prefix}-comment-dollar:before { content: fa-content($fa-var-comment-dollar); } +.#{$fa-css-prefix}-comment-dots:before { content: fa-content($fa-var-comment-dots); } +.#{$fa-css-prefix}-comment-slash:before { content: fa-content($fa-var-comment-slash); } +.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); } +.#{$fa-css-prefix}-comments-dollar:before { content: fa-content($fa-var-comments-dollar); } +.#{$fa-css-prefix}-compact-disc:before { content: fa-content($fa-var-compact-disc); } +.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); } +.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); } +.#{$fa-css-prefix}-concierge-bell:before { content: fa-content($fa-var-concierge-bell); } +.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); } +.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); } +.#{$fa-css-prefix}-cookie:before { content: fa-content($fa-var-cookie); } +.#{$fa-css-prefix}-cookie-bite:before { content: fa-content($fa-var-cookie-bite); } +.#{$fa-css-prefix}-copy:before { content: fa-content($fa-var-copy); } +.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); } +.#{$fa-css-prefix}-couch:before { content: fa-content($fa-var-couch); } +.#{$fa-css-prefix}-cpanel:before { content: fa-content($fa-var-cpanel); } +.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); } +.#{$fa-css-prefix}-creative-commons-by:before { content: fa-content($fa-var-creative-commons-by); } +.#{$fa-css-prefix}-creative-commons-nc:before { content: fa-content($fa-var-creative-commons-nc); } +.#{$fa-css-prefix}-creative-commons-nc-eu:before { content: fa-content($fa-var-creative-commons-nc-eu); } +.#{$fa-css-prefix}-creative-commons-nc-jp:before { content: fa-content($fa-var-creative-commons-nc-jp); } +.#{$fa-css-prefix}-creative-commons-nd:before { content: fa-content($fa-var-creative-commons-nd); } +.#{$fa-css-prefix}-creative-commons-pd:before { content: fa-content($fa-var-creative-commons-pd); } +.#{$fa-css-prefix}-creative-commons-pd-alt:before { content: fa-content($fa-var-creative-commons-pd-alt); } +.#{$fa-css-prefix}-creative-commons-remix:before { content: fa-content($fa-var-creative-commons-remix); } +.#{$fa-css-prefix}-creative-commons-sa:before { content: fa-content($fa-var-creative-commons-sa); } +.#{$fa-css-prefix}-creative-commons-sampling:before { content: fa-content($fa-var-creative-commons-sampling); } +.#{$fa-css-prefix}-creative-commons-sampling-plus:before { content: fa-content($fa-var-creative-commons-sampling-plus); } +.#{$fa-css-prefix}-creative-commons-share:before { content: fa-content($fa-var-creative-commons-share); } +.#{$fa-css-prefix}-creative-commons-zero:before { content: fa-content($fa-var-creative-commons-zero); } +.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); } +.#{$fa-css-prefix}-critical-role:before { content: fa-content($fa-var-critical-role); } +.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); } +.#{$fa-css-prefix}-crop-alt:before { content: fa-content($fa-var-crop-alt); } +.#{$fa-css-prefix}-cross:before { content: fa-content($fa-var-cross); } +.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); } +.#{$fa-css-prefix}-crow:before { content: fa-content($fa-var-crow); } +.#{$fa-css-prefix}-crown:before { content: fa-content($fa-var-crown); } +.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); } +.#{$fa-css-prefix}-css3-alt:before { content: fa-content($fa-var-css3-alt); } +.#{$fa-css-prefix}-cube:before { content: fa-content($fa-var-cube); } +.#{$fa-css-prefix}-cubes:before { content: fa-content($fa-var-cubes); } +.#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); } +.#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); } +.#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); } +.#{$fa-css-prefix}-d-and-d-beyond:before { content: fa-content($fa-var-d-and-d-beyond); } +.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); } +.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); } +.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); } +.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); } +.#{$fa-css-prefix}-democrat:before { content: fa-content($fa-var-democrat); } +.#{$fa-css-prefix}-deploydog:before { content: fa-content($fa-var-deploydog); } +.#{$fa-css-prefix}-deskpro:before { content: fa-content($fa-var-deskpro); } +.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); } +.#{$fa-css-prefix}-dev:before { content: fa-content($fa-var-dev); } +.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); } +.#{$fa-css-prefix}-dharmachakra:before { content: fa-content($fa-var-dharmachakra); } +.#{$fa-css-prefix}-diagnoses:before { content: fa-content($fa-var-diagnoses); } +.#{$fa-css-prefix}-dice:before { content: fa-content($fa-var-dice); } +.#{$fa-css-prefix}-dice-d20:before { content: fa-content($fa-var-dice-d20); } +.#{$fa-css-prefix}-dice-d6:before { content: fa-content($fa-var-dice-d6); } +.#{$fa-css-prefix}-dice-five:before { content: fa-content($fa-var-dice-five); } +.#{$fa-css-prefix}-dice-four:before { content: fa-content($fa-var-dice-four); } +.#{$fa-css-prefix}-dice-one:before { content: fa-content($fa-var-dice-one); } +.#{$fa-css-prefix}-dice-six:before { content: fa-content($fa-var-dice-six); } +.#{$fa-css-prefix}-dice-three:before { content: fa-content($fa-var-dice-three); } +.#{$fa-css-prefix}-dice-two:before { content: fa-content($fa-var-dice-two); } +.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); } +.#{$fa-css-prefix}-digital-ocean:before { content: fa-content($fa-var-digital-ocean); } +.#{$fa-css-prefix}-digital-tachograph:before { content: fa-content($fa-var-digital-tachograph); } +.#{$fa-css-prefix}-directions:before { content: fa-content($fa-var-directions); } +.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); } +.#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); } +.#{$fa-css-prefix}-divide:before { content: fa-content($fa-var-divide); } +.#{$fa-css-prefix}-dizzy:before { content: fa-content($fa-var-dizzy); } +.#{$fa-css-prefix}-dna:before { content: fa-content($fa-var-dna); } +.#{$fa-css-prefix}-dochub:before { content: fa-content($fa-var-dochub); } +.#{$fa-css-prefix}-docker:before { content: fa-content($fa-var-docker); } +.#{$fa-css-prefix}-dog:before { content: fa-content($fa-var-dog); } +.#{$fa-css-prefix}-dollar-sign:before { content: fa-content($fa-var-dollar-sign); } +.#{$fa-css-prefix}-dolly:before { content: fa-content($fa-var-dolly); } +.#{$fa-css-prefix}-dolly-flatbed:before { content: fa-content($fa-var-dolly-flatbed); } +.#{$fa-css-prefix}-donate:before { content: fa-content($fa-var-donate); } +.#{$fa-css-prefix}-door-closed:before { content: fa-content($fa-var-door-closed); } +.#{$fa-css-prefix}-door-open:before { content: fa-content($fa-var-door-open); } +.#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); } +.#{$fa-css-prefix}-dove:before { content: fa-content($fa-var-dove); } +.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); } +.#{$fa-css-prefix}-draft2digital:before { content: fa-content($fa-var-draft2digital); } +.#{$fa-css-prefix}-drafting-compass:before { content: fa-content($fa-var-drafting-compass); } +.#{$fa-css-prefix}-dragon:before { content: fa-content($fa-var-dragon); } +.#{$fa-css-prefix}-draw-polygon:before { content: fa-content($fa-var-draw-polygon); } +.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); } +.#{$fa-css-prefix}-dribbble-square:before { content: fa-content($fa-var-dribbble-square); } +.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); } +.#{$fa-css-prefix}-drum:before { content: fa-content($fa-var-drum); } +.#{$fa-css-prefix}-drum-steelpan:before { content: fa-content($fa-var-drum-steelpan); } +.#{$fa-css-prefix}-drumstick-bite:before { content: fa-content($fa-var-drumstick-bite); } +.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); } +.#{$fa-css-prefix}-dumbbell:before { content: fa-content($fa-var-dumbbell); } +.#{$fa-css-prefix}-dungeon:before { content: fa-content($fa-var-dungeon); } +.#{$fa-css-prefix}-dyalog:before { content: fa-content($fa-var-dyalog); } +.#{$fa-css-prefix}-earlybirds:before { content: fa-content($fa-var-earlybirds); } +.#{$fa-css-prefix}-ebay:before { content: fa-content($fa-var-ebay); } +.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); } +.#{$fa-css-prefix}-edit:before { content: fa-content($fa-var-edit); } +.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); } +.#{$fa-css-prefix}-elementor:before { content: fa-content($fa-var-elementor); } +.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); } +.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); } +.#{$fa-css-prefix}-ello:before { content: fa-content($fa-var-ello); } +.#{$fa-css-prefix}-ember:before { content: fa-content($fa-var-ember); } +.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); } +.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); } +.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); } +.#{$fa-css-prefix}-envelope-open-text:before { content: fa-content($fa-var-envelope-open-text); } +.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); } +.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); } +.#{$fa-css-prefix}-equals:before { content: fa-content($fa-var-equals); } +.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); } +.#{$fa-css-prefix}-erlang:before { content: fa-content($fa-var-erlang); } +.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); } +.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); } +.#{$fa-css-prefix}-euro-sign:before { content: fa-content($fa-var-euro-sign); } +.#{$fa-css-prefix}-exchange-alt:before { content: fa-content($fa-var-exchange-alt); } +.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); } +.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); } +.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); } +.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); } +.#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); } +.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); } +.#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); } +.#{$fa-css-prefix}-external-link-square-alt:before { content: fa-content($fa-var-external-link-square-alt); } +.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); } +.#{$fa-css-prefix}-eye-dropper:before { content: fa-content($fa-var-eye-dropper); } +.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); } +.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); } +.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); } +.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); } +.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); } +.#{$fa-css-prefix}-fantasy-flight-games:before { content: fa-content($fa-var-fantasy-flight-games); } +.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); } +.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); } +.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); } +.#{$fa-css-prefix}-feather:before { content: fa-content($fa-var-feather); } +.#{$fa-css-prefix}-feather-alt:before { content: fa-content($fa-var-feather-alt); } +.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); } +.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); } +.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); } +.#{$fa-css-prefix}-file-alt:before { content: fa-content($fa-var-file-alt); } +.#{$fa-css-prefix}-file-archive:before { content: fa-content($fa-var-file-archive); } +.#{$fa-css-prefix}-file-audio:before { content: fa-content($fa-var-file-audio); } +.#{$fa-css-prefix}-file-code:before { content: fa-content($fa-var-file-code); } +.#{$fa-css-prefix}-file-contract:before { content: fa-content($fa-var-file-contract); } +.#{$fa-css-prefix}-file-csv:before { content: fa-content($fa-var-file-csv); } +.#{$fa-css-prefix}-file-download:before { content: fa-content($fa-var-file-download); } +.#{$fa-css-prefix}-file-excel:before { content: fa-content($fa-var-file-excel); } +.#{$fa-css-prefix}-file-export:before { content: fa-content($fa-var-file-export); } +.#{$fa-css-prefix}-file-image:before { content: fa-content($fa-var-file-image); } +.#{$fa-css-prefix}-file-import:before { content: fa-content($fa-var-file-import); } +.#{$fa-css-prefix}-file-invoice:before { content: fa-content($fa-var-file-invoice); } +.#{$fa-css-prefix}-file-invoice-dollar:before { content: fa-content($fa-var-file-invoice-dollar); } +.#{$fa-css-prefix}-file-medical:before { content: fa-content($fa-var-file-medical); } +.#{$fa-css-prefix}-file-medical-alt:before { content: fa-content($fa-var-file-medical-alt); } +.#{$fa-css-prefix}-file-pdf:before { content: fa-content($fa-var-file-pdf); } +.#{$fa-css-prefix}-file-powerpoint:before { content: fa-content($fa-var-file-powerpoint); } +.#{$fa-css-prefix}-file-prescription:before { content: fa-content($fa-var-file-prescription); } +.#{$fa-css-prefix}-file-signature:before { content: fa-content($fa-var-file-signature); } +.#{$fa-css-prefix}-file-upload:before { content: fa-content($fa-var-file-upload); } +.#{$fa-css-prefix}-file-video:before { content: fa-content($fa-var-file-video); } +.#{$fa-css-prefix}-file-word:before { content: fa-content($fa-var-file-word); } +.#{$fa-css-prefix}-fill:before { content: fa-content($fa-var-fill); } +.#{$fa-css-prefix}-fill-drip:before { content: fa-content($fa-var-fill-drip); } +.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); } +.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); } +.#{$fa-css-prefix}-fingerprint:before { content: fa-content($fa-var-fingerprint); } +.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); } +.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); } +.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); } +.#{$fa-css-prefix}-first-aid:before { content: fa-content($fa-var-first-aid); } +.#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); } +.#{$fa-css-prefix}-first-order-alt:before { content: fa-content($fa-var-first-order-alt); } +.#{$fa-css-prefix}-firstdraft:before { content: fa-content($fa-var-firstdraft); } +.#{$fa-css-prefix}-fish:before { content: fa-content($fa-var-fish); } +.#{$fa-css-prefix}-fist-raised:before { content: fa-content($fa-var-fist-raised); } +.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); } +.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); } +.#{$fa-css-prefix}-flag-usa:before { content: fa-content($fa-var-flag-usa); } +.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); } +.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); } +.#{$fa-css-prefix}-flipboard:before { content: fa-content($fa-var-flipboard); } +.#{$fa-css-prefix}-flushed:before { content: fa-content($fa-var-flushed); } +.#{$fa-css-prefix}-fly:before { content: fa-content($fa-var-fly); } +.#{$fa-css-prefix}-folder:before { content: fa-content($fa-var-folder); } +.#{$fa-css-prefix}-folder-minus:before { content: fa-content($fa-var-folder-minus); } +.#{$fa-css-prefix}-folder-open:before { content: fa-content($fa-var-folder-open); } +.#{$fa-css-prefix}-folder-plus:before { content: fa-content($fa-var-folder-plus); } +.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); } +.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); } +.#{$fa-css-prefix}-font-awesome-alt:before { content: fa-content($fa-var-font-awesome-alt); } +.#{$fa-css-prefix}-font-awesome-flag:before { content: fa-content($fa-var-font-awesome-flag); } +.#{$fa-css-prefix}-font-awesome-logo-full:before { content: fa-content($fa-var-font-awesome-logo-full); } +.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); } +.#{$fa-css-prefix}-fonticons-fi:before { content: fa-content($fa-var-fonticons-fi); } +.#{$fa-css-prefix}-football-ball:before { content: fa-content($fa-var-football-ball); } +.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); } +.#{$fa-css-prefix}-fort-awesome-alt:before { content: fa-content($fa-var-fort-awesome-alt); } +.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); } +.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); } +.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); } +.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); } +.#{$fa-css-prefix}-freebsd:before { content: fa-content($fa-var-freebsd); } +.#{$fa-css-prefix}-frog:before { content: fa-content($fa-var-frog); } +.#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); } +.#{$fa-css-prefix}-frown-open:before { content: fa-content($fa-var-frown-open); } +.#{$fa-css-prefix}-fulcrum:before { content: fa-content($fa-var-fulcrum); } +.#{$fa-css-prefix}-funnel-dollar:before { content: fa-content($fa-var-funnel-dollar); } +.#{$fa-css-prefix}-futbol:before { content: fa-content($fa-var-futbol); } +.#{$fa-css-prefix}-galactic-republic:before { content: fa-content($fa-var-galactic-republic); } +.#{$fa-css-prefix}-galactic-senate:before { content: fa-content($fa-var-galactic-senate); } +.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); } +.#{$fa-css-prefix}-gas-pump:before { content: fa-content($fa-var-gas-pump); } +.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); } +.#{$fa-css-prefix}-gem:before { content: fa-content($fa-var-gem); } +.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); } +.#{$fa-css-prefix}-get-pocket:before { content: fa-content($fa-var-get-pocket); } +.#{$fa-css-prefix}-gg:before { content: fa-content($fa-var-gg); } +.#{$fa-css-prefix}-gg-circle:before { content: fa-content($fa-var-gg-circle); } +.#{$fa-css-prefix}-ghost:before { content: fa-content($fa-var-ghost); } +.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); } +.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); } +.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); } +.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); } +.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); } +.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); } +.#{$fa-css-prefix}-gitkraken:before { content: fa-content($fa-var-gitkraken); } +.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); } +.#{$fa-css-prefix}-gitter:before { content: fa-content($fa-var-gitter); } +.#{$fa-css-prefix}-glass-martini:before { content: fa-content($fa-var-glass-martini); } +.#{$fa-css-prefix}-glass-martini-alt:before { content: fa-content($fa-var-glass-martini-alt); } +.#{$fa-css-prefix}-glasses:before { content: fa-content($fa-var-glasses); } +.#{$fa-css-prefix}-glide:before { content: fa-content($fa-var-glide); } +.#{$fa-css-prefix}-glide-g:before { content: fa-content($fa-var-glide-g); } +.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); } +.#{$fa-css-prefix}-globe-africa:before { content: fa-content($fa-var-globe-africa); } +.#{$fa-css-prefix}-globe-americas:before { content: fa-content($fa-var-globe-americas); } +.#{$fa-css-prefix}-globe-asia:before { content: fa-content($fa-var-globe-asia); } +.#{$fa-css-prefix}-gofore:before { content: fa-content($fa-var-gofore); } +.#{$fa-css-prefix}-golf-ball:before { content: fa-content($fa-var-golf-ball); } +.#{$fa-css-prefix}-goodreads:before { content: fa-content($fa-var-goodreads); } +.#{$fa-css-prefix}-goodreads-g:before { content: fa-content($fa-var-goodreads-g); } +.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); } +.#{$fa-css-prefix}-google-drive:before { content: fa-content($fa-var-google-drive); } +.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); } +.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); } +.#{$fa-css-prefix}-google-plus-g:before { content: fa-content($fa-var-google-plus-g); } +.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); } +.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); } +.#{$fa-css-prefix}-gopuram:before { content: fa-content($fa-var-gopuram); } +.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); } +.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); } +.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); } +.#{$fa-css-prefix}-greater-than:before { content: fa-content($fa-var-greater-than); } +.#{$fa-css-prefix}-greater-than-equal:before { content: fa-content($fa-var-greater-than-equal); } +.#{$fa-css-prefix}-grimace:before { content: fa-content($fa-var-grimace); } +.#{$fa-css-prefix}-grin:before { content: fa-content($fa-var-grin); } +.#{$fa-css-prefix}-grin-alt:before { content: fa-content($fa-var-grin-alt); } +.#{$fa-css-prefix}-grin-beam:before { content: fa-content($fa-var-grin-beam); } +.#{$fa-css-prefix}-grin-beam-sweat:before { content: fa-content($fa-var-grin-beam-sweat); } +.#{$fa-css-prefix}-grin-hearts:before { content: fa-content($fa-var-grin-hearts); } +.#{$fa-css-prefix}-grin-squint:before { content: fa-content($fa-var-grin-squint); } +.#{$fa-css-prefix}-grin-squint-tears:before { content: fa-content($fa-var-grin-squint-tears); } +.#{$fa-css-prefix}-grin-stars:before { content: fa-content($fa-var-grin-stars); } +.#{$fa-css-prefix}-grin-tears:before { content: fa-content($fa-var-grin-tears); } +.#{$fa-css-prefix}-grin-tongue:before { content: fa-content($fa-var-grin-tongue); } +.#{$fa-css-prefix}-grin-tongue-squint:before { content: fa-content($fa-var-grin-tongue-squint); } +.#{$fa-css-prefix}-grin-tongue-wink:before { content: fa-content($fa-var-grin-tongue-wink); } +.#{$fa-css-prefix}-grin-wink:before { content: fa-content($fa-var-grin-wink); } +.#{$fa-css-prefix}-grip-horizontal:before { content: fa-content($fa-var-grip-horizontal); } +.#{$fa-css-prefix}-grip-vertical:before { content: fa-content($fa-var-grip-vertical); } +.#{$fa-css-prefix}-gripfire:before { content: fa-content($fa-var-gripfire); } +.#{$fa-css-prefix}-grunt:before { content: fa-content($fa-var-grunt); } +.#{$fa-css-prefix}-gulp:before { content: fa-content($fa-var-gulp); } +.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); } +.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); } +.#{$fa-css-prefix}-hacker-news-square:before { content: fa-content($fa-var-hacker-news-square); } +.#{$fa-css-prefix}-hackerrank:before { content: fa-content($fa-var-hackerrank); } +.#{$fa-css-prefix}-hammer:before { content: fa-content($fa-var-hammer); } +.#{$fa-css-prefix}-hamsa:before { content: fa-content($fa-var-hamsa); } +.#{$fa-css-prefix}-hand-holding:before { content: fa-content($fa-var-hand-holding); } +.#{$fa-css-prefix}-hand-holding-heart:before { content: fa-content($fa-var-hand-holding-heart); } +.#{$fa-css-prefix}-hand-holding-usd:before { content: fa-content($fa-var-hand-holding-usd); } +.#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); } +.#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); } +.#{$fa-css-prefix}-hand-peace:before { content: fa-content($fa-var-hand-peace); } +.#{$fa-css-prefix}-hand-point-down:before { content: fa-content($fa-var-hand-point-down); } +.#{$fa-css-prefix}-hand-point-left:before { content: fa-content($fa-var-hand-point-left); } +.#{$fa-css-prefix}-hand-point-right:before { content: fa-content($fa-var-hand-point-right); } +.#{$fa-css-prefix}-hand-point-up:before { content: fa-content($fa-var-hand-point-up); } +.#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); } +.#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); } +.#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); } +.#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); } +.#{$fa-css-prefix}-hands:before { content: fa-content($fa-var-hands); } +.#{$fa-css-prefix}-hands-helping:before { content: fa-content($fa-var-hands-helping); } +.#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); } +.#{$fa-css-prefix}-hanukiah:before { content: fa-content($fa-var-hanukiah); } +.#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); } +.#{$fa-css-prefix}-hat-wizard:before { content: fa-content($fa-var-hat-wizard); } +.#{$fa-css-prefix}-haykal:before { content: fa-content($fa-var-haykal); } +.#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); } +.#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); } +.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); } +.#{$fa-css-prefix}-headphones-alt:before { content: fa-content($fa-var-headphones-alt); } +.#{$fa-css-prefix}-headset:before { content: fa-content($fa-var-headset); } +.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); } +.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); } +.#{$fa-css-prefix}-helicopter:before { content: fa-content($fa-var-helicopter); } +.#{$fa-css-prefix}-highlighter:before { content: fa-content($fa-var-highlighter); } +.#{$fa-css-prefix}-hiking:before { content: fa-content($fa-var-hiking); } +.#{$fa-css-prefix}-hippo:before { content: fa-content($fa-var-hippo); } +.#{$fa-css-prefix}-hips:before { content: fa-content($fa-var-hips); } +.#{$fa-css-prefix}-hire-a-helper:before { content: fa-content($fa-var-hire-a-helper); } +.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); } +.#{$fa-css-prefix}-hockey-puck:before { content: fa-content($fa-var-hockey-puck); } +.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); } +.#{$fa-css-prefix}-hooli:before { content: fa-content($fa-var-hooli); } +.#{$fa-css-prefix}-hornbill:before { content: fa-content($fa-var-hornbill); } +.#{$fa-css-prefix}-horse:before { content: fa-content($fa-var-horse); } +.#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); } +.#{$fa-css-prefix}-hospital-alt:before { content: fa-content($fa-var-hospital-alt); } +.#{$fa-css-prefix}-hospital-symbol:before { content: fa-content($fa-var-hospital-symbol); } +.#{$fa-css-prefix}-hot-tub:before { content: fa-content($fa-var-hot-tub); } +.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-hotel); } +.#{$fa-css-prefix}-hotjar:before { content: fa-content($fa-var-hotjar); } +.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); } +.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); } +.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); } +.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); } +.#{$fa-css-prefix}-house-damage:before { content: fa-content($fa-var-house-damage); } +.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); } +.#{$fa-css-prefix}-hryvnia:before { content: fa-content($fa-var-hryvnia); } +.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); } +.#{$fa-css-prefix}-hubspot:before { content: fa-content($fa-var-hubspot); } +.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); } +.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); } +.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); } +.#{$fa-css-prefix}-id-card-alt:before { content: fa-content($fa-var-id-card-alt); } +.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); } +.#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); } +.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); } +.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); } +.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); } +.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); } +.#{$fa-css-prefix}-infinity:before { content: fa-content($fa-var-infinity); } +.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); } +.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); } +.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); } +.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); } +.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); } +.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); } +.#{$fa-css-prefix}-itunes:before { content: fa-content($fa-var-itunes); } +.#{$fa-css-prefix}-itunes-note:before { content: fa-content($fa-var-itunes-note); } +.#{$fa-css-prefix}-java:before { content: fa-content($fa-var-java); } +.#{$fa-css-prefix}-jedi:before { content: fa-content($fa-var-jedi); } +.#{$fa-css-prefix}-jedi-order:before { content: fa-content($fa-var-jedi-order); } +.#{$fa-css-prefix}-jenkins:before { content: fa-content($fa-var-jenkins); } +.#{$fa-css-prefix}-joget:before { content: fa-content($fa-var-joget); } +.#{$fa-css-prefix}-joint:before { content: fa-content($fa-var-joint); } +.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); } +.#{$fa-css-prefix}-journal-whills:before { content: fa-content($fa-var-journal-whills); } +.#{$fa-css-prefix}-js:before { content: fa-content($fa-var-js); } +.#{$fa-css-prefix}-js-square:before { content: fa-content($fa-var-js-square); } +.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); } +.#{$fa-css-prefix}-kaaba:before { content: fa-content($fa-var-kaaba); } +.#{$fa-css-prefix}-kaggle:before { content: fa-content($fa-var-kaggle); } +.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); } +.#{$fa-css-prefix}-keybase:before { content: fa-content($fa-var-keybase); } +.#{$fa-css-prefix}-keyboard:before { content: fa-content($fa-var-keyboard); } +.#{$fa-css-prefix}-keycdn:before { content: fa-content($fa-var-keycdn); } +.#{$fa-css-prefix}-khanda:before { content: fa-content($fa-var-khanda); } +.#{$fa-css-prefix}-kickstarter:before { content: fa-content($fa-var-kickstarter); } +.#{$fa-css-prefix}-kickstarter-k:before { content: fa-content($fa-var-kickstarter-k); } +.#{$fa-css-prefix}-kiss:before { content: fa-content($fa-var-kiss); } +.#{$fa-css-prefix}-kiss-beam:before { content: fa-content($fa-var-kiss-beam); } +.#{$fa-css-prefix}-kiss-wink-heart:before { content: fa-content($fa-var-kiss-wink-heart); } +.#{$fa-css-prefix}-kiwi-bird:before { content: fa-content($fa-var-kiwi-bird); } +.#{$fa-css-prefix}-korvue:before { content: fa-content($fa-var-korvue); } +.#{$fa-css-prefix}-landmark:before { content: fa-content($fa-var-landmark); } +.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); } +.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); } +.#{$fa-css-prefix}-laptop-code:before { content: fa-content($fa-var-laptop-code); } +.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); } +.#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); } +.#{$fa-css-prefix}-lastfm-square:before { content: fa-content($fa-var-lastfm-square); } +.#{$fa-css-prefix}-laugh:before { content: fa-content($fa-var-laugh); } +.#{$fa-css-prefix}-laugh-beam:before { content: fa-content($fa-var-laugh-beam); } +.#{$fa-css-prefix}-laugh-squint:before { content: fa-content($fa-var-laugh-squint); } +.#{$fa-css-prefix}-laugh-wink:before { content: fa-content($fa-var-laugh-wink); } +.#{$fa-css-prefix}-layer-group:before { content: fa-content($fa-var-layer-group); } +.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); } +.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); } +.#{$fa-css-prefix}-lemon:before { content: fa-content($fa-var-lemon); } +.#{$fa-css-prefix}-less:before { content: fa-content($fa-var-less); } +.#{$fa-css-prefix}-less-than:before { content: fa-content($fa-var-less-than); } +.#{$fa-css-prefix}-less-than-equal:before { content: fa-content($fa-var-less-than-equal); } +.#{$fa-css-prefix}-level-down-alt:before { content: fa-content($fa-var-level-down-alt); } +.#{$fa-css-prefix}-level-up-alt:before { content: fa-content($fa-var-level-up-alt); } +.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); } +.#{$fa-css-prefix}-lightbulb:before { content: fa-content($fa-var-lightbulb); } +.#{$fa-css-prefix}-line:before { content: fa-content($fa-var-line); } +.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); } +.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); } +.#{$fa-css-prefix}-linkedin-in:before { content: fa-content($fa-var-linkedin-in); } +.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); } +.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); } +.#{$fa-css-prefix}-lira-sign:before { content: fa-content($fa-var-lira-sign); } +.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); } +.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); } +.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); } +.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); } +.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); } +.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); } +.#{$fa-css-prefix}-lock-open:before { content: fa-content($fa-var-lock-open); } +.#{$fa-css-prefix}-long-arrow-alt-down:before { content: fa-content($fa-var-long-arrow-alt-down); } +.#{$fa-css-prefix}-long-arrow-alt-left:before { content: fa-content($fa-var-long-arrow-alt-left); } +.#{$fa-css-prefix}-long-arrow-alt-right:before { content: fa-content($fa-var-long-arrow-alt-right); } +.#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); } +.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); } +.#{$fa-css-prefix}-luggage-cart:before { content: fa-content($fa-var-luggage-cart); } +.#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); } +.#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); } +.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); } +.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); } +.#{$fa-css-prefix}-mail-bulk:before { content: fa-content($fa-var-mail-bulk); } +.#{$fa-css-prefix}-mailchimp:before { content: fa-content($fa-var-mailchimp); } +.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); } +.#{$fa-css-prefix}-mandalorian:before { content: fa-content($fa-var-mandalorian); } +.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); } +.#{$fa-css-prefix}-map-marked:before { content: fa-content($fa-var-map-marked); } +.#{$fa-css-prefix}-map-marked-alt:before { content: fa-content($fa-var-map-marked-alt); } +.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); } +.#{$fa-css-prefix}-map-marker-alt:before { content: fa-content($fa-var-map-marker-alt); } +.#{$fa-css-prefix}-map-pin:before { content: fa-content($fa-var-map-pin); } +.#{$fa-css-prefix}-map-signs:before { content: fa-content($fa-var-map-signs); } +.#{$fa-css-prefix}-markdown:before { content: fa-content($fa-var-markdown); } +.#{$fa-css-prefix}-marker:before { content: fa-content($fa-var-marker); } +.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); } +.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); } +.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); } +.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); } +.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); } +.#{$fa-css-prefix}-mask:before { content: fa-content($fa-var-mask); } +.#{$fa-css-prefix}-mastodon:before { content: fa-content($fa-var-mastodon); } +.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); } +.#{$fa-css-prefix}-medal:before { content: fa-content($fa-var-medal); } +.#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); } +.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); } +.#{$fa-css-prefix}-medium-m:before { content: fa-content($fa-var-medium-m); } +.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); } +.#{$fa-css-prefix}-medrt:before { content: fa-content($fa-var-medrt); } +.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); } +.#{$fa-css-prefix}-megaport:before { content: fa-content($fa-var-megaport); } +.#{$fa-css-prefix}-meh:before { content: fa-content($fa-var-meh); } +.#{$fa-css-prefix}-meh-blank:before { content: fa-content($fa-var-meh-blank); } +.#{$fa-css-prefix}-meh-rolling-eyes:before { content: fa-content($fa-var-meh-rolling-eyes); } +.#{$fa-css-prefix}-memory:before { content: fa-content($fa-var-memory); } +.#{$fa-css-prefix}-menorah:before { content: fa-content($fa-var-menorah); } +.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); } +.#{$fa-css-prefix}-meteor:before { content: fa-content($fa-var-meteor); } +.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); } +.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); } +.#{$fa-css-prefix}-microphone-alt:before { content: fa-content($fa-var-microphone-alt); } +.#{$fa-css-prefix}-microphone-alt-slash:before { content: fa-content($fa-var-microphone-alt-slash); } +.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); } +.#{$fa-css-prefix}-microscope:before { content: fa-content($fa-var-microscope); } +.#{$fa-css-prefix}-microsoft:before { content: fa-content($fa-var-microsoft); } +.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); } +.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); } +.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); } +.#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); } +.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); } +.#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); } +.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); } +.#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); } +.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); } +.#{$fa-css-prefix}-monero:before { content: fa-content($fa-var-monero); } +.#{$fa-css-prefix}-money-bill:before { content: fa-content($fa-var-money-bill); } +.#{$fa-css-prefix}-money-bill-alt:before { content: fa-content($fa-var-money-bill-alt); } +.#{$fa-css-prefix}-money-bill-wave:before { content: fa-content($fa-var-money-bill-wave); } +.#{$fa-css-prefix}-money-bill-wave-alt:before { content: fa-content($fa-var-money-bill-wave-alt); } +.#{$fa-css-prefix}-money-check:before { content: fa-content($fa-var-money-check); } +.#{$fa-css-prefix}-money-check-alt:before { content: fa-content($fa-var-money-check-alt); } +.#{$fa-css-prefix}-monument:before { content: fa-content($fa-var-monument); } +.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); } +.#{$fa-css-prefix}-mortar-pestle:before { content: fa-content($fa-var-mortar-pestle); } +.#{$fa-css-prefix}-mosque:before { content: fa-content($fa-var-mosque); } +.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); } +.#{$fa-css-prefix}-mountain:before { content: fa-content($fa-var-mountain); } +.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); } +.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); } +.#{$fa-css-prefix}-napster:before { content: fa-content($fa-var-napster); } +.#{$fa-css-prefix}-neos:before { content: fa-content($fa-var-neos); } +.#{$fa-css-prefix}-network-wired:before { content: fa-content($fa-var-network-wired); } +.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); } +.#{$fa-css-prefix}-newspaper:before { content: fa-content($fa-var-newspaper); } +.#{$fa-css-prefix}-nimblr:before { content: fa-content($fa-var-nimblr); } +.#{$fa-css-prefix}-nintendo-switch:before { content: fa-content($fa-var-nintendo-switch); } +.#{$fa-css-prefix}-node:before { content: fa-content($fa-var-node); } +.#{$fa-css-prefix}-node-js:before { content: fa-content($fa-var-node-js); } +.#{$fa-css-prefix}-not-equal:before { content: fa-content($fa-var-not-equal); } +.#{$fa-css-prefix}-notes-medical:before { content: fa-content($fa-var-notes-medical); } +.#{$fa-css-prefix}-npm:before { content: fa-content($fa-var-npm); } +.#{$fa-css-prefix}-ns8:before { content: fa-content($fa-var-ns8); } +.#{$fa-css-prefix}-nutritionix:before { content: fa-content($fa-var-nutritionix); } +.#{$fa-css-prefix}-object-group:before { content: fa-content($fa-var-object-group); } +.#{$fa-css-prefix}-object-ungroup:before { content: fa-content($fa-var-object-ungroup); } +.#{$fa-css-prefix}-odnoklassniki:before { content: fa-content($fa-var-odnoklassniki); } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: fa-content($fa-var-odnoklassniki-square); } +.#{$fa-css-prefix}-oil-can:before { content: fa-content($fa-var-oil-can); } +.#{$fa-css-prefix}-old-republic:before { content: fa-content($fa-var-old-republic); } +.#{$fa-css-prefix}-om:before { content: fa-content($fa-var-om); } +.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); } +.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); } +.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); } +.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); } +.#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); } +.#{$fa-css-prefix}-otter:before { content: fa-content($fa-var-otter); } +.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); } +.#{$fa-css-prefix}-page4:before { content: fa-content($fa-var-page4); } +.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); } +.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); } +.#{$fa-css-prefix}-paint-roller:before { content: fa-content($fa-var-paint-roller); } +.#{$fa-css-prefix}-palette:before { content: fa-content($fa-var-palette); } +.#{$fa-css-prefix}-palfed:before { content: fa-content($fa-var-palfed); } +.#{$fa-css-prefix}-pallet:before { content: fa-content($fa-var-pallet); } +.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); } +.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); } +.#{$fa-css-prefix}-parachute-box:before { content: fa-content($fa-var-parachute-box); } +.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); } +.#{$fa-css-prefix}-parking:before { content: fa-content($fa-var-parking); } +.#{$fa-css-prefix}-passport:before { content: fa-content($fa-var-passport); } +.#{$fa-css-prefix}-pastafarianism:before { content: fa-content($fa-var-pastafarianism); } +.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-paste); } +.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); } +.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); } +.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); } +.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); } +.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); } +.#{$fa-css-prefix}-peace:before { content: fa-content($fa-var-peace); } +.#{$fa-css-prefix}-pen:before { content: fa-content($fa-var-pen); } +.#{$fa-css-prefix}-pen-alt:before { content: fa-content($fa-var-pen-alt); } +.#{$fa-css-prefix}-pen-fancy:before { content: fa-content($fa-var-pen-fancy); } +.#{$fa-css-prefix}-pen-nib:before { content: fa-content($fa-var-pen-nib); } +.#{$fa-css-prefix}-pen-square:before { content: fa-content($fa-var-pen-square); } +.#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); } +.#{$fa-css-prefix}-pencil-ruler:before { content: fa-content($fa-var-pencil-ruler); } +.#{$fa-css-prefix}-penny-arcade:before { content: fa-content($fa-var-penny-arcade); } +.#{$fa-css-prefix}-people-carry:before { content: fa-content($fa-var-people-carry); } +.#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); } +.#{$fa-css-prefix}-percentage:before { content: fa-content($fa-var-percentage); } +.#{$fa-css-prefix}-periscope:before { content: fa-content($fa-var-periscope); } +.#{$fa-css-prefix}-person-booth:before { content: fa-content($fa-var-person-booth); } +.#{$fa-css-prefix}-phabricator:before { content: fa-content($fa-var-phabricator); } +.#{$fa-css-prefix}-phoenix-framework:before { content: fa-content($fa-var-phoenix-framework); } +.#{$fa-css-prefix}-phoenix-squadron:before { content: fa-content($fa-var-phoenix-squadron); } +.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); } +.#{$fa-css-prefix}-phone-slash:before { content: fa-content($fa-var-phone-slash); } +.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); } +.#{$fa-css-prefix}-phone-volume:before { content: fa-content($fa-var-phone-volume); } +.#{$fa-css-prefix}-php:before { content: fa-content($fa-var-php); } +.#{$fa-css-prefix}-pied-piper:before { content: fa-content($fa-var-pied-piper); } +.#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); } +.#{$fa-css-prefix}-pied-piper-hat:before { content: fa-content($fa-var-pied-piper-hat); } +.#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); } +.#{$fa-css-prefix}-piggy-bank:before { content: fa-content($fa-var-piggy-bank); } +.#{$fa-css-prefix}-pills:before { content: fa-content($fa-var-pills); } +.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); } +.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); } +.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); } +.#{$fa-css-prefix}-place-of-worship:before { content: fa-content($fa-var-place-of-worship); } +.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); } +.#{$fa-css-prefix}-plane-arrival:before { content: fa-content($fa-var-plane-arrival); } +.#{$fa-css-prefix}-plane-departure:before { content: fa-content($fa-var-plane-departure); } +.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); } +.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); } +.#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); } +.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); } +.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); } +.#{$fa-css-prefix}-plus-circle:before { content: fa-content($fa-var-plus-circle); } +.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); } +.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); } +.#{$fa-css-prefix}-poll:before { content: fa-content($fa-var-poll); } +.#{$fa-css-prefix}-poll-h:before { content: fa-content($fa-var-poll-h); } +.#{$fa-css-prefix}-poo:before { content: fa-content($fa-var-poo); } +.#{$fa-css-prefix}-poo-storm:before { content: fa-content($fa-var-poo-storm); } +.#{$fa-css-prefix}-poop:before { content: fa-content($fa-var-poop); } +.#{$fa-css-prefix}-portrait:before { content: fa-content($fa-var-portrait); } +.#{$fa-css-prefix}-pound-sign:before { content: fa-content($fa-var-pound-sign); } +.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); } +.#{$fa-css-prefix}-pray:before { content: fa-content($fa-var-pray); } +.#{$fa-css-prefix}-praying-hands:before { content: fa-content($fa-var-praying-hands); } +.#{$fa-css-prefix}-prescription:before { content: fa-content($fa-var-prescription); } +.#{$fa-css-prefix}-prescription-bottle:before { content: fa-content($fa-var-prescription-bottle); } +.#{$fa-css-prefix}-prescription-bottle-alt:before { content: fa-content($fa-var-prescription-bottle-alt); } +.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); } +.#{$fa-css-prefix}-procedures:before { content: fa-content($fa-var-procedures); } +.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); } +.#{$fa-css-prefix}-project-diagram:before { content: fa-content($fa-var-project-diagram); } +.#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); } +.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); } +.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); } +.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); } +.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); } +.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); } +.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); } +.#{$fa-css-prefix}-quidditch:before { content: fa-content($fa-var-quidditch); } +.#{$fa-css-prefix}-quinscape:before { content: fa-content($fa-var-quinscape); } +.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); } +.#{$fa-css-prefix}-quote-left:before { content: fa-content($fa-var-quote-left); } +.#{$fa-css-prefix}-quote-right:before { content: fa-content($fa-var-quote-right); } +.#{$fa-css-prefix}-quran:before { content: fa-content($fa-var-quran); } +.#{$fa-css-prefix}-r-project:before { content: fa-content($fa-var-r-project); } +.#{$fa-css-prefix}-rainbow:before { content: fa-content($fa-var-rainbow); } +.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); } +.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); } +.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); } +.#{$fa-css-prefix}-reacteurope:before { content: fa-content($fa-var-reacteurope); } +.#{$fa-css-prefix}-readme:before { content: fa-content($fa-var-readme); } +.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); } +.#{$fa-css-prefix}-receipt:before { content: fa-content($fa-var-receipt); } +.#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); } +.#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); } +.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); } +.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); } +.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); } +.#{$fa-css-prefix}-redo:before { content: fa-content($fa-var-redo); } +.#{$fa-css-prefix}-redo-alt:before { content: fa-content($fa-var-redo-alt); } +.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); } +.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); } +.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); } +.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); } +.#{$fa-css-prefix}-replyd:before { content: fa-content($fa-var-replyd); } +.#{$fa-css-prefix}-republican:before { content: fa-content($fa-var-republican); } +.#{$fa-css-prefix}-researchgate:before { content: fa-content($fa-var-researchgate); } +.#{$fa-css-prefix}-resolving:before { content: fa-content($fa-var-resolving); } +.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); } +.#{$fa-css-prefix}-rev:before { content: fa-content($fa-var-rev); } +.#{$fa-css-prefix}-ribbon:before { content: fa-content($fa-var-ribbon); } +.#{$fa-css-prefix}-ring:before { content: fa-content($fa-var-ring); } +.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); } +.#{$fa-css-prefix}-robot:before { content: fa-content($fa-var-robot); } +.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); } +.#{$fa-css-prefix}-rocketchat:before { content: fa-content($fa-var-rocketchat); } +.#{$fa-css-prefix}-rockrms:before { content: fa-content($fa-var-rockrms); } +.#{$fa-css-prefix}-route:before { content: fa-content($fa-var-route); } +.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); } +.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); } +.#{$fa-css-prefix}-ruble-sign:before { content: fa-content($fa-var-ruble-sign); } +.#{$fa-css-prefix}-ruler:before { content: fa-content($fa-var-ruler); } +.#{$fa-css-prefix}-ruler-combined:before { content: fa-content($fa-var-ruler-combined); } +.#{$fa-css-prefix}-ruler-horizontal:before { content: fa-content($fa-var-ruler-horizontal); } +.#{$fa-css-prefix}-ruler-vertical:before { content: fa-content($fa-var-ruler-vertical); } +.#{$fa-css-prefix}-running:before { content: fa-content($fa-var-running); } +.#{$fa-css-prefix}-rupee-sign:before { content: fa-content($fa-var-rupee-sign); } +.#{$fa-css-prefix}-sad-cry:before { content: fa-content($fa-var-sad-cry); } +.#{$fa-css-prefix}-sad-tear:before { content: fa-content($fa-var-sad-tear); } +.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); } +.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); } +.#{$fa-css-prefix}-save:before { content: fa-content($fa-var-save); } +.#{$fa-css-prefix}-schlix:before { content: fa-content($fa-var-schlix); } +.#{$fa-css-prefix}-school:before { content: fa-content($fa-var-school); } +.#{$fa-css-prefix}-screwdriver:before { content: fa-content($fa-var-screwdriver); } +.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); } +.#{$fa-css-prefix}-scroll:before { content: fa-content($fa-var-scroll); } +.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); } +.#{$fa-css-prefix}-search-dollar:before { content: fa-content($fa-var-search-dollar); } +.#{$fa-css-prefix}-search-location:before { content: fa-content($fa-var-search-location); } +.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); } +.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); } +.#{$fa-css-prefix}-searchengin:before { content: fa-content($fa-var-searchengin); } +.#{$fa-css-prefix}-seedling:before { content: fa-content($fa-var-seedling); } +.#{$fa-css-prefix}-sellcast:before { content: fa-content($fa-var-sellcast); } +.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); } +.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); } +.#{$fa-css-prefix}-servicestack:before { content: fa-content($fa-var-servicestack); } +.#{$fa-css-prefix}-shapes:before { content: fa-content($fa-var-shapes); } +.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); } +.#{$fa-css-prefix}-share-alt:before { content: fa-content($fa-var-share-alt); } +.#{$fa-css-prefix}-share-alt-square:before { content: fa-content($fa-var-share-alt-square); } +.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); } +.#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); } +.#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); } +.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); } +.#{$fa-css-prefix}-shipping-fast:before { content: fa-content($fa-var-shipping-fast); } +.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); } +.#{$fa-css-prefix}-shoe-prints:before { content: fa-content($fa-var-shoe-prints); } +.#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); } +.#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); } +.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); } +.#{$fa-css-prefix}-shopware:before { content: fa-content($fa-var-shopware); } +.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); } +.#{$fa-css-prefix}-shuttle-van:before { content: fa-content($fa-var-shuttle-van); } +.#{$fa-css-prefix}-sign:before { content: fa-content($fa-var-sign); } +.#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); } +.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); } +.#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); } +.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); } +.#{$fa-css-prefix}-signature:before { content: fa-content($fa-var-signature); } +.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); } +.#{$fa-css-prefix}-sistrix:before { content: fa-content($fa-var-sistrix); } +.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); } +.#{$fa-css-prefix}-sith:before { content: fa-content($fa-var-sith); } +.#{$fa-css-prefix}-skull:before { content: fa-content($fa-var-skull); } +.#{$fa-css-prefix}-skull-crossbones:before { content: fa-content($fa-var-skull-crossbones); } +.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); } +.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); } +.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); } +.#{$fa-css-prefix}-slack-hash:before { content: fa-content($fa-var-slack-hash); } +.#{$fa-css-prefix}-slash:before { content: fa-content($fa-var-slash); } +.#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); } +.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); } +.#{$fa-css-prefix}-smile:before { content: fa-content($fa-var-smile); } +.#{$fa-css-prefix}-smile-beam:before { content: fa-content($fa-var-smile-beam); } +.#{$fa-css-prefix}-smile-wink:before { content: fa-content($fa-var-smile-wink); } +.#{$fa-css-prefix}-smog:before { content: fa-content($fa-var-smog); } +.#{$fa-css-prefix}-smoking:before { content: fa-content($fa-var-smoking); } +.#{$fa-css-prefix}-smoking-ban:before { content: fa-content($fa-var-smoking-ban); } +.#{$fa-css-prefix}-snapchat:before { content: fa-content($fa-var-snapchat); } +.#{$fa-css-prefix}-snapchat-ghost:before { content: fa-content($fa-var-snapchat-ghost); } +.#{$fa-css-prefix}-snapchat-square:before { content: fa-content($fa-var-snapchat-square); } +.#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); } +.#{$fa-css-prefix}-socks:before { content: fa-content($fa-var-socks); } +.#{$fa-css-prefix}-solar-panel:before { content: fa-content($fa-var-solar-panel); } +.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); } +.#{$fa-css-prefix}-sort-alpha-down:before { content: fa-content($fa-var-sort-alpha-down); } +.#{$fa-css-prefix}-sort-alpha-up:before { content: fa-content($fa-var-sort-alpha-up); } +.#{$fa-css-prefix}-sort-amount-down:before { content: fa-content($fa-var-sort-amount-down); } +.#{$fa-css-prefix}-sort-amount-up:before { content: fa-content($fa-var-sort-amount-up); } +.#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); } +.#{$fa-css-prefix}-sort-numeric-down:before { content: fa-content($fa-var-sort-numeric-down); } +.#{$fa-css-prefix}-sort-numeric-up:before { content: fa-content($fa-var-sort-numeric-up); } +.#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); } +.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); } +.#{$fa-css-prefix}-spa:before { content: fa-content($fa-var-spa); } +.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); } +.#{$fa-css-prefix}-speakap:before { content: fa-content($fa-var-speakap); } +.#{$fa-css-prefix}-spider:before { content: fa-content($fa-var-spider); } +.#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); } +.#{$fa-css-prefix}-splotch:before { content: fa-content($fa-var-splotch); } +.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); } +.#{$fa-css-prefix}-spray-can:before { content: fa-content($fa-var-spray-can); } +.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); } +.#{$fa-css-prefix}-square-full:before { content: fa-content($fa-var-square-full); } +.#{$fa-css-prefix}-square-root-alt:before { content: fa-content($fa-var-square-root-alt); } +.#{$fa-css-prefix}-squarespace:before { content: fa-content($fa-var-squarespace); } +.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); } +.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); } +.#{$fa-css-prefix}-stamp:before { content: fa-content($fa-var-stamp); } +.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); } +.#{$fa-css-prefix}-star-and-crescent:before { content: fa-content($fa-var-star-and-crescent); } +.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); } +.#{$fa-css-prefix}-star-half-alt:before { content: fa-content($fa-var-star-half-alt); } +.#{$fa-css-prefix}-star-of-david:before { content: fa-content($fa-var-star-of-david); } +.#{$fa-css-prefix}-star-of-life:before { content: fa-content($fa-var-star-of-life); } +.#{$fa-css-prefix}-staylinked:before { content: fa-content($fa-var-staylinked); } +.#{$fa-css-prefix}-steam:before { content: fa-content($fa-var-steam); } +.#{$fa-css-prefix}-steam-square:before { content: fa-content($fa-var-steam-square); } +.#{$fa-css-prefix}-steam-symbol:before { content: fa-content($fa-var-steam-symbol); } +.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); } +.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); } +.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); } +.#{$fa-css-prefix}-sticker-mule:before { content: fa-content($fa-var-sticker-mule); } +.#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); } +.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); } +.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); } +.#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); } +.#{$fa-css-prefix}-store:before { content: fa-content($fa-var-store); } +.#{$fa-css-prefix}-store-alt:before { content: fa-content($fa-var-store-alt); } +.#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); } +.#{$fa-css-prefix}-stream:before { content: fa-content($fa-var-stream); } +.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); } +.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); } +.#{$fa-css-prefix}-stripe:before { content: fa-content($fa-var-stripe); } +.#{$fa-css-prefix}-stripe-s:before { content: fa-content($fa-var-stripe-s); } +.#{$fa-css-prefix}-stroopwafel:before { content: fa-content($fa-var-stroopwafel); } +.#{$fa-css-prefix}-studiovinari:before { content: fa-content($fa-var-studiovinari); } +.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); } +.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); } +.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); } +.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); } +.#{$fa-css-prefix}-suitcase-rolling:before { content: fa-content($fa-var-suitcase-rolling); } +.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); } +.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); } +.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); } +.#{$fa-css-prefix}-supple:before { content: fa-content($fa-var-supple); } +.#{$fa-css-prefix}-surprise:before { content: fa-content($fa-var-surprise); } +.#{$fa-css-prefix}-swatchbook:before { content: fa-content($fa-var-swatchbook); } +.#{$fa-css-prefix}-swimmer:before { content: fa-content($fa-var-swimmer); } +.#{$fa-css-prefix}-swimming-pool:before { content: fa-content($fa-var-swimming-pool); } +.#{$fa-css-prefix}-synagogue:before { content: fa-content($fa-var-synagogue); } +.#{$fa-css-prefix}-sync:before { content: fa-content($fa-var-sync); } +.#{$fa-css-prefix}-sync-alt:before { content: fa-content($fa-var-sync-alt); } +.#{$fa-css-prefix}-syringe:before { content: fa-content($fa-var-syringe); } +.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); } +.#{$fa-css-prefix}-table-tennis:before { content: fa-content($fa-var-table-tennis); } +.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); } +.#{$fa-css-prefix}-tablet-alt:before { content: fa-content($fa-var-tablet-alt); } +.#{$fa-css-prefix}-tablets:before { content: fa-content($fa-var-tablets); } +.#{$fa-css-prefix}-tachometer-alt:before { content: fa-content($fa-var-tachometer-alt); } +.#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); } +.#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); } +.#{$fa-css-prefix}-tape:before { content: fa-content($fa-var-tape); } +.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); } +.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); } +.#{$fa-css-prefix}-teamspeak:before { content: fa-content($fa-var-teamspeak); } +.#{$fa-css-prefix}-teeth:before { content: fa-content($fa-var-teeth); } +.#{$fa-css-prefix}-teeth-open:before { content: fa-content($fa-var-teeth-open); } +.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); } +.#{$fa-css-prefix}-telegram-plane:before { content: fa-content($fa-var-telegram-plane); } +.#{$fa-css-prefix}-temperature-high:before { content: fa-content($fa-var-temperature-high); } +.#{$fa-css-prefix}-temperature-low:before { content: fa-content($fa-var-temperature-low); } +.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); } +.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); } +.#{$fa-css-prefix}-text-height:before { content: fa-content($fa-var-text-height); } +.#{$fa-css-prefix}-text-width:before { content: fa-content($fa-var-text-width); } +.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); } +.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); } +.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); } +.#{$fa-css-prefix}-the-red-yeti:before { content: fa-content($fa-var-the-red-yeti); } +.#{$fa-css-prefix}-theater-masks:before { content: fa-content($fa-var-theater-masks); } +.#{$fa-css-prefix}-themeco:before { content: fa-content($fa-var-themeco); } +.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); } +.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer); } +.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); } +.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); } +.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); } +.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); } +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); } +.#{$fa-css-prefix}-think-peaks:before { content: fa-content($fa-var-think-peaks); } +.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); } +.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); } +.#{$fa-css-prefix}-thumbtack:before { content: fa-content($fa-var-thumbtack); } +.#{$fa-css-prefix}-ticket-alt:before { content: fa-content($fa-var-ticket-alt); } +.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); } +.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); } +.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); } +.#{$fa-css-prefix}-tint-slash:before { content: fa-content($fa-var-tint-slash); } +.#{$fa-css-prefix}-tired:before { content: fa-content($fa-var-tired); } +.#{$fa-css-prefix}-toggle-off:before { content: fa-content($fa-var-toggle-off); } +.#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); } +.#{$fa-css-prefix}-toilet-paper:before { content: fa-content($fa-var-toilet-paper); } +.#{$fa-css-prefix}-toolbox:before { content: fa-content($fa-var-toolbox); } +.#{$fa-css-prefix}-tooth:before { content: fa-content($fa-var-tooth); } +.#{$fa-css-prefix}-torah:before { content: fa-content($fa-var-torah); } +.#{$fa-css-prefix}-torii-gate:before { content: fa-content($fa-var-torii-gate); } +.#{$fa-css-prefix}-tractor:before { content: fa-content($fa-var-tractor); } +.#{$fa-css-prefix}-trade-federation:before { content: fa-content($fa-var-trade-federation); } +.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); } +.#{$fa-css-prefix}-traffic-light:before { content: fa-content($fa-var-traffic-light); } +.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); } +.#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); } +.#{$fa-css-prefix}-transgender-alt:before { content: fa-content($fa-var-transgender-alt); } +.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); } +.#{$fa-css-prefix}-trash-alt:before { content: fa-content($fa-var-trash-alt); } +.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); } +.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); } +.#{$fa-css-prefix}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); } +.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); } +.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); } +.#{$fa-css-prefix}-truck-loading:before { content: fa-content($fa-var-truck-loading); } +.#{$fa-css-prefix}-truck-monster:before { content: fa-content($fa-var-truck-monster); } +.#{$fa-css-prefix}-truck-moving:before { content: fa-content($fa-var-truck-moving); } +.#{$fa-css-prefix}-truck-pickup:before { content: fa-content($fa-var-truck-pickup); } +.#{$fa-css-prefix}-tshirt:before { content: fa-content($fa-var-tshirt); } +.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); } +.#{$fa-css-prefix}-tumblr:before { content: fa-content($fa-var-tumblr); } +.#{$fa-css-prefix}-tumblr-square:before { content: fa-content($fa-var-tumblr-square); } +.#{$fa-css-prefix}-tv:before { content: fa-content($fa-var-tv); } +.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); } +.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); } +.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); } +.#{$fa-css-prefix}-typo3:before { content: fa-content($fa-var-typo3); } +.#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); } +.#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); } +.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); } +.#{$fa-css-prefix}-umbrella-beach:before { content: fa-content($fa-var-umbrella-beach); } +.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); } +.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); } +.#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); } +.#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); } +.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); } +.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); } +.#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); } +.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); } +.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); } +.#{$fa-css-prefix}-untappd:before { content: fa-content($fa-var-untappd); } +.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); } +.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); } +.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); } +.#{$fa-css-prefix}-user-alt:before { content: fa-content($fa-var-user-alt); } +.#{$fa-css-prefix}-user-alt-slash:before { content: fa-content($fa-var-user-alt-slash); } +.#{$fa-css-prefix}-user-astronaut:before { content: fa-content($fa-var-user-astronaut); } +.#{$fa-css-prefix}-user-check:before { content: fa-content($fa-var-user-check); } +.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); } +.#{$fa-css-prefix}-user-clock:before { content: fa-content($fa-var-user-clock); } +.#{$fa-css-prefix}-user-cog:before { content: fa-content($fa-var-user-cog); } +.#{$fa-css-prefix}-user-edit:before { content: fa-content($fa-var-user-edit); } +.#{$fa-css-prefix}-user-friends:before { content: fa-content($fa-var-user-friends); } +.#{$fa-css-prefix}-user-graduate:before { content: fa-content($fa-var-user-graduate); } +.#{$fa-css-prefix}-user-injured:before { content: fa-content($fa-var-user-injured); } +.#{$fa-css-prefix}-user-lock:before { content: fa-content($fa-var-user-lock); } +.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); } +.#{$fa-css-prefix}-user-minus:before { content: fa-content($fa-var-user-minus); } +.#{$fa-css-prefix}-user-ninja:before { content: fa-content($fa-var-user-ninja); } +.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); } +.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); } +.#{$fa-css-prefix}-user-shield:before { content: fa-content($fa-var-user-shield); } +.#{$fa-css-prefix}-user-slash:before { content: fa-content($fa-var-user-slash); } +.#{$fa-css-prefix}-user-tag:before { content: fa-content($fa-var-user-tag); } +.#{$fa-css-prefix}-user-tie:before { content: fa-content($fa-var-user-tie); } +.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); } +.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); } +.#{$fa-css-prefix}-users-cog:before { content: fa-content($fa-var-users-cog); } +.#{$fa-css-prefix}-ussunnah:before { content: fa-content($fa-var-ussunnah); } +.#{$fa-css-prefix}-utensil-spoon:before { content: fa-content($fa-var-utensil-spoon); } +.#{$fa-css-prefix}-utensils:before { content: fa-content($fa-var-utensils); } +.#{$fa-css-prefix}-vaadin:before { content: fa-content($fa-var-vaadin); } +.#{$fa-css-prefix}-vector-square:before { content: fa-content($fa-var-vector-square); } +.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); } +.#{$fa-css-prefix}-venus-double:before { content: fa-content($fa-var-venus-double); } +.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); } +.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); } +.#{$fa-css-prefix}-viadeo:before { content: fa-content($fa-var-viadeo); } +.#{$fa-css-prefix}-viadeo-square:before { content: fa-content($fa-var-viadeo-square); } +.#{$fa-css-prefix}-vial:before { content: fa-content($fa-var-vial); } +.#{$fa-css-prefix}-vials:before { content: fa-content($fa-var-vials); } +.#{$fa-css-prefix}-viber:before { content: fa-content($fa-var-viber); } +.#{$fa-css-prefix}-video:before { content: fa-content($fa-var-video); } +.#{$fa-css-prefix}-video-slash:before { content: fa-content($fa-var-video-slash); } +.#{$fa-css-prefix}-vihara:before { content: fa-content($fa-var-vihara); } +.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); } +.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); } +.#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); } +.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); } +.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); } +.#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); } +.#{$fa-css-prefix}-volleyball-ball:before { content: fa-content($fa-var-volleyball-ball); } +.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); } +.#{$fa-css-prefix}-volume-mute:before { content: fa-content($fa-var-volume-mute); } +.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); } +.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); } +.#{$fa-css-prefix}-vote-yea:before { content: fa-content($fa-var-vote-yea); } +.#{$fa-css-prefix}-vr-cardboard:before { content: fa-content($fa-var-vr-cardboard); } +.#{$fa-css-prefix}-vuejs:before { content: fa-content($fa-var-vuejs); } +.#{$fa-css-prefix}-walking:before { content: fa-content($fa-var-walking); } +.#{$fa-css-prefix}-wallet:before { content: fa-content($fa-var-wallet); } +.#{$fa-css-prefix}-warehouse:before { content: fa-content($fa-var-warehouse); } +.#{$fa-css-prefix}-water:before { content: fa-content($fa-var-water); } +.#{$fa-css-prefix}-weebly:before { content: fa-content($fa-var-weebly); } +.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); } +.#{$fa-css-prefix}-weight:before { content: fa-content($fa-var-weight); } +.#{$fa-css-prefix}-weight-hanging:before { content: fa-content($fa-var-weight-hanging); } +.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); } +.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); } +.#{$fa-css-prefix}-whatsapp-square:before { content: fa-content($fa-var-whatsapp-square); } +.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); } +.#{$fa-css-prefix}-whmcs:before { content: fa-content($fa-var-whmcs); } +.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); } +.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); } +.#{$fa-css-prefix}-wind:before { content: fa-content($fa-var-wind); } +.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); } +.#{$fa-css-prefix}-window-maximize:before { content: fa-content($fa-var-window-maximize); } +.#{$fa-css-prefix}-window-minimize:before { content: fa-content($fa-var-window-minimize); } +.#{$fa-css-prefix}-window-restore:before { content: fa-content($fa-var-window-restore); } +.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); } +.#{$fa-css-prefix}-wine-bottle:before { content: fa-content($fa-var-wine-bottle); } +.#{$fa-css-prefix}-wine-glass:before { content: fa-content($fa-var-wine-glass); } +.#{$fa-css-prefix}-wine-glass-alt:before { content: fa-content($fa-var-wine-glass-alt); } +.#{$fa-css-prefix}-wix:before { content: fa-content($fa-var-wix); } +.#{$fa-css-prefix}-wizards-of-the-coast:before { content: fa-content($fa-var-wizards-of-the-coast); } +.#{$fa-css-prefix}-wolf-pack-battalion:before { content: fa-content($fa-var-wolf-pack-battalion); } +.#{$fa-css-prefix}-won-sign:before { content: fa-content($fa-var-won-sign); } +.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); } +.#{$fa-css-prefix}-wordpress-simple:before { content: fa-content($fa-var-wordpress-simple); } +.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); } +.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); } +.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); } +.#{$fa-css-prefix}-wpressr:before { content: fa-content($fa-var-wpressr); } +.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); } +.#{$fa-css-prefix}-x-ray:before { content: fa-content($fa-var-x-ray); } +.#{$fa-css-prefix}-xbox:before { content: fa-content($fa-var-xbox); } +.#{$fa-css-prefix}-xing:before { content: fa-content($fa-var-xing); } +.#{$fa-css-prefix}-xing-square:before { content: fa-content($fa-var-xing-square); } +.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); } +.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); } +.#{$fa-css-prefix}-yandex:before { content: fa-content($fa-var-yandex); } +.#{$fa-css-prefix}-yandex-international:before { content: fa-content($fa-var-yandex-international); } +.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); } +.#{$fa-css-prefix}-yen-sign:before { content: fa-content($fa-var-yen-sign); } +.#{$fa-css-prefix}-yin-yang:before { content: fa-content($fa-var-yin-yang); } +.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); } +.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); } +.#{$fa-css-prefix}-youtube-square:before { content: fa-content($fa-var-youtube-square); } +.#{$fa-css-prefix}-zhihu:before { content: fa-content($fa-var-zhihu); } diff --git a/_sass/vendor/font-awesome/_larger.scss b/_sass/vendor/font-awesome/_larger.scss new file mode 100644 index 0000000..27c2ad5 --- /dev/null +++ b/_sass/vendor/font-awesome/_larger.scss @@ -0,0 +1,23 @@ +// Icon Sizes +// ------------------------- + +// makes the font 33% larger relative to the icon container +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -.0667em; +} + +.#{$fa-css-prefix}-xs { + font-size: .75em; +} + +.#{$fa-css-prefix}-sm { + font-size: .875em; +} + +@for $i from 1 through 10 { + .#{$fa-css-prefix}-#{$i}x { + font-size: $i * 1em; + } +} diff --git a/_sass/vendor/font-awesome/_list.scss b/_sass/vendor/font-awesome/_list.scss new file mode 100644 index 0000000..8ebf333 --- /dev/null +++ b/_sass/vendor/font-awesome/_list.scss @@ -0,0 +1,18 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + list-style-type: none; + margin-left: $fa-li-width * 5/4; + padding-left: 0; + + > li { position: relative; } +} + +.#{$fa-css-prefix}-li { + left: -$fa-li-width; + position: absolute; + text-align: center; + width: $fa-li-width; + line-height: inherit; +} diff --git a/_sass/vendor/font-awesome/_mixins.scss b/_sass/vendor/font-awesome/_mixins.scss new file mode 100644 index 0000000..50a2e9f --- /dev/null +++ b/_sass/vendor/font-awesome/_mixins.scss @@ -0,0 +1,57 @@ +// Mixins +// -------------------------- + +@mixin fa-icon { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; + } +} diff --git a/_sass/vendor/font-awesome/_rotated-flipped.scss b/_sass/vendor/font-awesome/_rotated-flipped.scss new file mode 100644 index 0000000..995bc4c --- /dev/null +++ b/_sass/vendor/font-awesome/_rotated-flipped.scss @@ -0,0 +1,23 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } +.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root { + .#{$fa-css-prefix}-rotate-90, + .#{$fa-css-prefix}-rotate-180, + .#{$fa-css-prefix}-rotate-270, + .#{$fa-css-prefix}-flip-horizontal, + .#{$fa-css-prefix}-flip-vertical { + filter: none; + } +} diff --git a/_sass/vendor/font-awesome/_screen-reader.scss b/_sass/vendor/font-awesome/_screen-reader.scss new file mode 100644 index 0000000..5d0ab26 --- /dev/null +++ b/_sass/vendor/font-awesome/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only; } +.sr-only-focusable { @include sr-only-focusable; } diff --git a/_sass/vendor/font-awesome/_shims.scss b/_sass/vendor/font-awesome/_shims.scss new file mode 100644 index 0000000..00fc279 --- /dev/null +++ b/_sass/vendor/font-awesome/_shims.scss @@ -0,0 +1,2062 @@ +.#{$fa-css-prefix}.#{$fa-css-prefix}-glass:before { content: fa-content($fa-var-glass-martini); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-meetup { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o:before { content: fa-content($fa-var-star); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-remove:before { content: fa-content($fa-var-times); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-close:before { content: fa-content($fa-var-times); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gear:before { content: fa-content($fa-var-cog); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o:before { content: fa-content($fa-var-trash-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o:before { content: fa-content($fa-var-file); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o:before { content: fa-content($fa-var-clock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down:before { content: fa-content($fa-var-arrow-alt-circle-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up:before { content: fa-content($fa-var-arrow-alt-circle-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o:before { content: fa-content($fa-var-play-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-repeat:before { content: fa-content($fa-var-redo); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-right:before { content: fa-content($fa-var-redo); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-refresh:before { content: fa-content($fa-var-sync); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-list-alt { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dedent:before { content: fa-content($fa-var-outdent); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-video-camera:before { content: fa-content($fa-var-video); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o:before { content: fa-content($fa-var-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-photo { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-photo:before { content: fa-content($fa-var-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-image { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil:before { content: fa-content($fa-var-pencil-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o:before { content: fa-content($fa-var-edit); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o:before { content: fa-content($fa-var-share-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o:before { content: fa-content($fa-var-check-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows:before { content: fa-content($fa-var-arrows-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o:before { content: fa-content($fa-var-times-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o:before { content: fa-content($fa-var-check-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-forward:before { content: fa-content($fa-var-share); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eye { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eye-slash { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-warning:before { content: fa-content($fa-var-exclamation-triangle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-v:before { content: fa-content($fa-var-arrows-alt-v); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-h:before { content: fa-content($fa-var-arrows-alt-h); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart:before { content: fa-content($fa-var-chart-bar); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o:before { content: fa-content($fa-var-chart-bar); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gears:before { content: fa-content($fa-var-cogs); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up:before { content: fa-content($fa-var-thumbs-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down:before { content: fa-content($fa-var-thumbs-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o:before { content: fa-content($fa-var-heart); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-out:before { content: fa-content($fa-var-sign-out-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square:before { content: fa-content($fa-var-linkedin); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumb-tack:before { content: fa-content($fa-var-thumbtack); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link:before { content: fa-content($fa-var-external-link-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-in:before { content: fa-content($fa-var-sign-in-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-github-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o:before { content: fa-content($fa-var-lemon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o:before { content: fa-content($fa-var-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o:before { content: fa-content($fa-var-bookmark); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook-f); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-github { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-feed:before { content: fa-content($fa-var-rss); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o:before { content: fa-content($fa-var-hdd); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right:before { content: fa-content($fa-var-hand-point-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left:before { content: fa-content($fa-var-hand-point-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up:before { content: fa-content($fa-var-hand-point-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down:before { content: fa-content($fa-var-hand-point-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-group:before { content: fa-content($fa-var-users); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-chain:before { content: fa-content($fa-var-link); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-scissors:before { content: fa-content($fa-var-cut); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o:before { content: fa-content($fa-var-copy); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o:before { content: fa-content($fa-var-save); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-navicon:before { content: fa-content($fa-var-bars); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reorder:before { content: fa-content($fa-var-bars); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus-g); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-money { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-money:before { content: fa-content($fa-var-money-bill-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-unsorted:before { content: fa-content($fa-var-sort); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-desc:before { content: fa-content($fa-var-sort-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-asc:before { content: fa-content($fa-var-sort-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin-in); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-left:before { content: fa-content($fa-var-undo); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-legal:before { content: fa-content($fa-var-gavel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tachometer:before { content: fa-content($fa-var-tachometer-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dashboard:before { content: fa-content($fa-var-tachometer-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o:before { content: fa-content($fa-var-comment); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o:before { content: fa-content($fa-var-comments); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-flash:before { content: fa-content($fa-var-bolt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-clipboard { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-paste { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-clipboard); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o:before { content: fa-content($fa-var-lightbulb); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-exchange:before { content: fa-content($fa-var-exchange-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-download:before { content: fa-content($fa-var-cloud-download-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-upload:before { content: fa-content($fa-var-cloud-upload-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o:before { content: fa-content($fa-var-bell); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cutlery:before { content: fa-content($fa-var-utensils); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o:before { content: fa-content($fa-var-file-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o:before { content: fa-content($fa-var-building); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o:before { content: fa-content($fa-var-hospital); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile-phone:before { content: fa-content($fa-var-mobile-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o:before { content: fa-content($fa-var-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply:before { content: fa-content($fa-var-reply); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-github-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o:before { content: fa-content($fa-var-folder); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o:before { content: fa-content($fa-var-folder-open); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o:before { content: fa-content($fa-var-smile); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o:before { content: fa-content($fa-var-frown); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o:before { content: fa-content($fa-var-meh); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o:before { content: fa-content($fa-var-keyboard); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o:before { content: fa-content($fa-var-flag); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply-all:before { content: fa-content($fa-var-reply-all); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o:before { content: fa-content($fa-var-star-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty:before { content: fa-content($fa-var-star-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full:before { content: fa-content($fa-var-star-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-code-fork:before { content: fa-content($fa-var-code-branch); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-chain-broken:before { content: fa-content($fa-var-unlink); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-shield:before { content: fa-content($fa-var-shield-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o:before { content: fa-content($fa-var-calendar); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-maxcdn { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-html5 { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-css3 { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ticket:before { content: fa-content($fa-var-ticket-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o:before { content: fa-content($fa-var-minus-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-level-up:before { content: fa-content($fa-var-level-up-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-level-down:before { content: fa-content($fa-var-level-down-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square:before { content: fa-content($fa-var-pen-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link-square:before { content: fa-content($fa-var-external-link-square-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-compass { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down:before { content: fa-content($fa-var-caret-square-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down:before { content: fa-content($fa-var-caret-square-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up:before { content: fa-content($fa-var-caret-square-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up:before { content: fa-content($fa-var-caret-square-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right:before { content: fa-content($fa-var-caret-square-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right:before { content: fa-content($fa-var-caret-square-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eur:before { content: fa-content($fa-var-euro-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-euro:before { content: fa-content($fa-var-euro-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gbp:before { content: fa-content($fa-var-pound-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-usd:before { content: fa-content($fa-var-dollar-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dollar:before { content: fa-content($fa-var-dollar-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-inr:before { content: fa-content($fa-var-rupee-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rupee:before { content: fa-content($fa-var-rupee-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-jpy:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cny:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rmb:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yen:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rub:before { content: fa-content($fa-var-ruble-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ruble:before { content: fa-content($fa-var-ruble-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rouble:before { content: fa-content($fa-var-ruble-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-krw:before { content: fa-content($fa-var-won-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-won:before { content: fa-content($fa-var-won-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-btc { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-btc); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text:before { content: fa-content($fa-var-file-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-asc:before { content: fa-content($fa-var-sort-alpha-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-desc:before { content: fa-content($fa-var-sort-alpha-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-asc:before { content: fa-content($fa-var-sort-amount-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-desc:before { content: fa-content($fa-var-sort-amount-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-asc:before { content: fa-content($fa-var-sort-numeric-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-desc:before { content: fa-content($fa-var-sort-numeric-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-xing { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-xing-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play:before { content: fa-content($fa-var-youtube); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dropbox { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-overflow { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-instagram { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-flickr { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-adn { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square:before { content: fa-content($fa-var-bitbucket); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-down:before { content: fa-content($fa-var-long-arrow-alt-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-up:before { content: fa-content($fa-var-long-arrow-alt-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-left:before { content: fa-content($fa-var-long-arrow-alt-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-right:before { content: fa-content($fa-var-long-arrow-alt-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-apple { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-windows { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-android { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linux { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dribbble { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-skype { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-foursquare { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-trello { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gratipay { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip:before { content: fa-content($fa-var-gratipay); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o:before { content: fa-content($fa-var-sun); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o:before { content: fa-content($fa-var-moon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vk { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-weibo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-renren { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pagelines { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-exchange { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right:before { content: fa-content($fa-var-arrow-alt-circle-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left:before { content: fa-content($fa-var-arrow-alt-circle-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left:before { content: fa-content($fa-var-caret-square-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left:before { content: fa-content($fa-var-caret-square-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o:before { content: fa-content($fa-var-dot-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-try:before { content: fa-content($fa-var-lira-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-turkish-lira:before { content: fa-content($fa-var-lira-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o:before { content: fa-content($fa-var-plus-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-slack { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wordpress { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-openid { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-institution:before { content: fa-content($fa-var-university); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bank:before { content: fa-content($fa-var-university); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mortar-board:before { content: fa-content($fa-var-graduation-cap); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yahoo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-delicious { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-digg { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-pp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-drupal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-joomla { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-spoon:before { content: fa-content($fa-var-utensil-spoon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-behance { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-behance-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-steam { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-steam-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-automobile:before { content: fa-content($fa-var-car); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cab:before { content: fa-content($fa-var-taxi); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o:before { content: fa-content($fa-var-envelope); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-deviantart { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-soundcloud { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o:before { content: fa-content($fa-var-file-pdf); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o:before { content: fa-content($fa-var-file-word); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o:before { content: fa-content($fa-var-file-excel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o:before { content: fa-content($fa-var-file-powerpoint); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o:before { content: fa-content($fa-var-file-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o:before { content: fa-content($fa-var-file-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o:before { content: fa-content($fa-var-file-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o:before { content: fa-content($fa-var-file-archive); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o:before { content: fa-content($fa-var-file-archive); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o:before { content: fa-content($fa-var-file-audio); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o:before { content: fa-content($fa-var-file-audio); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o:before { content: fa-content($fa-var-file-video); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o:before { content: fa-content($fa-var-file-video); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o:before { content: fa-content($fa-var-file-code); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vine { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-codepen { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-jsfiddle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-ring { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-support { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-support:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o-notch:before { content: fa-content($fa-var-circle-notch); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rebel { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ra { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-ra:before { content: fa-content($fa-var-rebel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance:before { content: fa-content($fa-var-rebel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-empire { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ge { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-ge:before { content: fa-content($fa-var-empire); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-git-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-git { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hacker-news { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square:before { content: fa-content($fa-var-hacker-news); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square:before { content: fa-content($fa-var-hacker-news); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tencent-weibo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-qq { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-weixin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat:before { content: fa-content($fa-var-weixin); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-send:before { content: fa-content($fa-var-paper-plane); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o:before { content: fa-content($fa-var-paper-plane); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o:before { content: fa-content($fa-var-paper-plane); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin:before { content: fa-content($fa-var-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-header:before { content: fa-content($fa-var-heading); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sliders:before { content: fa-content($fa-var-sliders-h); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o:before { content: fa-content($fa-var-futbol); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o:before { content: fa-content($fa-var-futbol); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-slideshare { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitch { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yelp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o:before { content: fa-content($fa-var-newspaper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-paypal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-wallet { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-visa { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-mastercard { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-discover { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-amex { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-paypal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-stripe { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o:before { content: fa-content($fa-var-bell-slash); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-copyright { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eyedropper:before { content: fa-content($fa-var-eye-dropper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-area-chart:before { content: fa-content($fa-var-chart-area); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pie-chart:before { content: fa-content($fa-var-chart-pie); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-line-chart:before { content: fa-content($fa-var-chart-line); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ioxhost { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-angellist { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc:before { content: fa-content($fa-var-closed-captioning); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ils:before { content: fa-content($fa-var-shekel-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-shekel:before { content: fa-content($fa-var-shekel-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sheqel:before { content: fa-content($fa-var-shekel-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath:before { content: fa-content($fa-var-font-awesome); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-buysellads { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-connectdevelop { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dashcube { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-forumbee { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-leanpub { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sellsy { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-shirtsinbulk { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-simplybuilt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-skyatlas { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond:before { content: fa-content($fa-var-gem); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-intersex:before { content: fa-content($fa-var-transgender); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official:before { content: fa-content($fa-var-facebook); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-p { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-whatsapp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-bed); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-viacoin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-medium { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc:before { content: fa-content($fa-var-y-combinator); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-optin-monster { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-opencart { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-expeditedssl { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-4:before { content: fa-content($fa-var-battery-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery:before { content: fa-content($fa-var-battery-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-3:before { content: fa-content($fa-var-battery-three-quarters); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-2:before { content: fa-content($fa-var-battery-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-1:before { content: fa-content($fa-var-battery-quarter); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-0:before { content: fa-content($fa-var-battery-empty); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-object-group { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-object-ungroup { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o:before { content: fa-content($fa-var-sticky-note); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-jcb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-diners-club { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-clone { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o:before { content: fa-content($fa-var-hourglass); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-1:before { content: fa-content($fa-var-hourglass-start); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-2:before { content: fa-content($fa-var-hourglass-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-3:before { content: fa-content($fa-var-hourglass-end); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o:before { content: fa-content($fa-var-hand-rock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o:before { content: fa-content($fa-var-hand-rock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o:before { content: fa-content($fa-var-hand-paper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o:before { content: fa-content($fa-var-hand-paper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o:before { content: fa-content($fa-var-hand-scissors); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o:before { content: fa-content($fa-var-hand-lizard); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o:before { content: fa-content($fa-var-hand-spock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o:before { content: fa-content($fa-var-hand-pointer); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o:before { content: fa-content($fa-var-hand-peace); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-registered { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-creative-commons { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gg { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gg-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tripadvisor { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-get-pocket { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wikipedia-w { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-safari { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-chrome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-firefox { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-opera { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-internet-explorer { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-television:before { content: fa-content($fa-var-tv); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-contao { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-500px { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-amazon { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o:before { content: fa-content($fa-var-calendar-plus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o:before { content: fa-content($fa-var-calendar-minus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o:before { content: fa-content($fa-var-calendar-times); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o:before { content: fa-content($fa-var-calendar-check); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o:before { content: fa-content($fa-var-map); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting:before { content: fa-content($fa-var-comment-dots); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o:before { content: fa-content($fa-var-comment-dots); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-houzz { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo-v); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-black-tie { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-fonticons { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-alien { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-edge { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card-alt:before { content: fa-content($fa-var-credit-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-codiepie { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-modx { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-fort-awesome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-usb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-product-hunt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mixcloud { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-scribd { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o:before { content: fa-content($fa-var-pause-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o:before { content: fa-content($fa-var-stop-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth-b { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gitlab { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpbeginner { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpforms { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-envira { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt:before { content: fa-content($fa-var-accessible-icon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o:before { content: fa-content($fa-var-question-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-volume-control-phone:before { content: fa-content($fa-var-phone-volume); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-asl-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-deafness:before { content: fa-content($fa-var-deaf); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hard-of-hearing:before { content: fa-content($fa-var-deaf); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-glide { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-glide-g { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-signing:before { content: fa-content($fa-var-sign-language); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-ghost { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-first-order { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yoast { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-themeisle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official:before { content: fa-content($fa-var-google-plus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle:before { content: fa-content($fa-var-google-plus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-font-awesome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-fa { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-fa:before { content: fa-content($fa-var-font-awesome); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o:before { content: fa-content($fa-var-handshake); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o:before { content: fa-content($fa-var-envelope-open); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linode { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o:before { content: fa-content($fa-var-address-book); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard:before { content: fa-content($fa-var-address-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o:before { content: fa-content($fa-var-address-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o:before { content: fa-content($fa-var-address-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o:before { content: fa-content($fa-var-user-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o:before { content: fa-content($fa-var-user); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-badge { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license:before { content: fa-content($fa-var-id-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o:before { content: fa-content($fa-var-id-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o:before { content: fa-content($fa-var-id-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-quora { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-free-code-camp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-telegram { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-4:before { content: fa-content($fa-var-thermometer-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-3:before { content: fa-content($fa-var-thermometer-three-quarters); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-2:before { content: fa-content($fa-var-thermometer-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-1:before { content: fa-content($fa-var-thermometer-quarter); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-0:before { content: fa-content($fa-var-thermometer-empty); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bathtub:before { content: fa-content($fa-var-bath); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-s15:before { content: fa-content($fa-var-bath); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-maximize { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-restore { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle:before { content: fa-content($fa-var-window-close); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o:before { content: fa-content($fa-var-window-close); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o:before { content: fa-content($fa-var-window-close); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bandcamp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-grav { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-etsy { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-imdb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ravelry { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast:before { content: fa-content($fa-var-sellcast); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o:before { content: fa-content($fa-var-snowflake); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-superpowers { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpexplorer { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + diff --git a/_sass/vendor/font-awesome/_stacked.scss b/_sass/vendor/font-awesome/_stacked.scss new file mode 100644 index 0000000..ae7ef4e --- /dev/null +++ b/_sass/vendor/font-awesome/_stacked.scss @@ -0,0 +1,31 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: ($fa-fw-width*2); +} + +.#{$fa-css-prefix}-stack-1x, +.#{$fa-css-prefix}-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; +} + +.#{$fa-css-prefix}-stack-1x { + line-height: inherit; +} + +.#{$fa-css-prefix}-stack-2x { + font-size: 2em; +} + +.#{$fa-css-prefix}-inverse { + color: $fa-inverse; +} diff --git a/_sass/vendor/font-awesome/_variables.scss b/_sass/vendor/font-awesome/_variables.scss new file mode 100644 index 0000000..4bd43fc --- /dev/null +++ b/_sass/vendor/font-awesome/_variables.scss @@ -0,0 +1,1276 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 16px !default; +$fa-css-prefix: fa !default; +$fa-version: "5.5.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: 2em !default; +$fa-fw-width: (20em / 16); + +// Convenience function used to set content property +@function fa-content($fa-var) { + @return unquote("\"#{ $fa-var }\""); +} + +$fa-var-500px: \f26e; +$fa-var-accessible-icon: \f368; +$fa-var-accusoft: \f369; +$fa-var-acquisitions-incorporated: \f6af; +$fa-var-ad: \f641; +$fa-var-address-book: \f2b9; +$fa-var-address-card: \f2bb; +$fa-var-adjust: \f042; +$fa-var-adn: \f170; +$fa-var-adversal: \f36a; +$fa-var-affiliatetheme: \f36b; +$fa-var-air-freshener: \f5d0; +$fa-var-algolia: \f36c; +$fa-var-align-center: \f037; +$fa-var-align-justify: \f039; +$fa-var-align-left: \f036; +$fa-var-align-right: \f038; +$fa-var-alipay: \f642; +$fa-var-allergies: \f461; +$fa-var-amazon: \f270; +$fa-var-amazon-pay: \f42c; +$fa-var-ambulance: \f0f9; +$fa-var-american-sign-language-interpreting: \f2a3; +$fa-var-amilia: \f36d; +$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; +$fa-var-angle-double-up: \f102; +$fa-var-angle-down: \f107; +$fa-var-angle-left: \f104; +$fa-var-angle-right: \f105; +$fa-var-angle-up: \f106; +$fa-var-angry: \f556; +$fa-var-angrycreative: \f36e; +$fa-var-angular: \f420; +$fa-var-ankh: \f644; +$fa-var-app-store: \f36f; +$fa-var-app-store-ios: \f370; +$fa-var-apper: \f371; +$fa-var-apple: \f179; +$fa-var-apple-alt: \f5d1; +$fa-var-apple-pay: \f415; +$fa-var-archive: \f187; +$fa-var-archway: \f557; +$fa-var-arrow-alt-circle-down: \f358; +$fa-var-arrow-alt-circle-left: \f359; +$fa-var-arrow-alt-circle-right: \f35a; +$fa-var-arrow-alt-circle-up: \f35b; +$fa-var-arrow-circle-down: \f0ab; +$fa-var-arrow-circle-left: \f0a8; +$fa-var-arrow-circle-right: \f0a9; +$fa-var-arrow-circle-up: \f0aa; +$fa-var-arrow-down: \f063; +$fa-var-arrow-left: \f060; +$fa-var-arrow-right: \f061; +$fa-var-arrow-up: \f062; +$fa-var-arrows-alt: \f0b2; +$fa-var-arrows-alt-h: \f337; +$fa-var-arrows-alt-v: \f338; +$fa-var-assistive-listening-systems: \f2a2; +$fa-var-asterisk: \f069; +$fa-var-asymmetrik: \f372; +$fa-var-at: \f1fa; +$fa-var-atlas: \f558; +$fa-var-atom: \f5d2; +$fa-var-audible: \f373; +$fa-var-audio-description: \f29e; +$fa-var-autoprefixer: \f41c; +$fa-var-avianex: \f374; +$fa-var-aviato: \f421; +$fa-var-award: \f559; +$fa-var-aws: \f375; +$fa-var-backspace: \f55a; +$fa-var-backward: \f04a; +$fa-var-balance-scale: \f24e; +$fa-var-ban: \f05e; +$fa-var-band-aid: \f462; +$fa-var-bandcamp: \f2d5; +$fa-var-barcode: \f02a; +$fa-var-bars: \f0c9; +$fa-var-baseball-ball: \f433; +$fa-var-basketball-ball: \f434; +$fa-var-bath: \f2cd; +$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-slash: \f1f6; +$fa-var-bezier-curve: \f55b; +$fa-var-bible: \f647; +$fa-var-bicycle: \f206; +$fa-var-bimobject: \f378; +$fa-var-binoculars: \f1e5; +$fa-var-birthday-cake: \f1fd; +$fa-var-bitbucket: \f171; +$fa-var-bitcoin: \f379; +$fa-var-bity: \f37a; +$fa-var-black-tie: \f27e; +$fa-var-blackberry: \f37b; +$fa-var-blender: \f517; +$fa-var-blender-phone: \f6b6; +$fa-var-blind: \f29d; +$fa-var-blogger: \f37c; +$fa-var-blogger-b: \f37d; +$fa-var-bluetooth: \f293; +$fa-var-bluetooth-b: \f294; +$fa-var-bold: \f032; +$fa-var-bolt: \f0e7; +$fa-var-bomb: \f1e2; +$fa-var-bone: \f5d7; +$fa-var-bong: \f55c; +$fa-var-book: \f02d; +$fa-var-book-dead: \f6b7; +$fa-var-book-open: \f518; +$fa-var-book-reader: \f5da; +$fa-var-bookmark: \f02e; +$fa-var-bowling-ball: \f436; +$fa-var-box: \f466; +$fa-var-box-open: \f49e; +$fa-var-boxes: \f468; +$fa-var-braille: \f2a1; +$fa-var-brain: \f5dc; +$fa-var-briefcase: \f0b1; +$fa-var-briefcase-medical: \f469; +$fa-var-broadcast-tower: \f519; +$fa-var-broom: \f51a; +$fa-var-brush: \f55d; +$fa-var-btc: \f15a; +$fa-var-bug: \f188; +$fa-var-building: \f1ad; +$fa-var-bullhorn: \f0a1; +$fa-var-bullseye: \f140; +$fa-var-burn: \f46a; +$fa-var-buromobelexperte: \f37f; +$fa-var-bus: \f207; +$fa-var-bus-alt: \f55e; +$fa-var-business-time: \f64a; +$fa-var-buysellads: \f20d; +$fa-var-calculator: \f1ec; +$fa-var-calendar: \f133; +$fa-var-calendar-alt: \f073; +$fa-var-calendar-check: \f274; +$fa-var-calendar-minus: \f272; +$fa-var-calendar-plus: \f271; +$fa-var-calendar-times: \f273; +$fa-var-camera: \f030; +$fa-var-camera-retro: \f083; +$fa-var-campground: \f6bb; +$fa-var-cannabis: \f55f; +$fa-var-capsules: \f46b; +$fa-var-car: \f1b9; +$fa-var-car-alt: \f5de; +$fa-var-car-battery: \f5df; +$fa-var-car-crash: \f5e1; +$fa-var-car-side: \f5e4; +$fa-var-caret-down: \f0d7; +$fa-var-caret-left: \f0d9; +$fa-var-caret-right: \f0da; +$fa-var-caret-square-down: \f150; +$fa-var-caret-square-left: \f191; +$fa-var-caret-square-right: \f152; +$fa-var-caret-square-up: \f151; +$fa-var-caret-up: \f0d8; +$fa-var-cart-arrow-down: \f218; +$fa-var-cart-plus: \f217; +$fa-var-cat: \f6be; +$fa-var-cc-amazon-pay: \f42d; +$fa-var-cc-amex: \f1f3; +$fa-var-cc-apple-pay: \f416; +$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-centercode: \f380; +$fa-var-certificate: \f0a3; +$fa-var-chair: \f6c0; +$fa-var-chalkboard: \f51b; +$fa-var-chalkboard-teacher: \f51c; +$fa-var-charging-station: \f5e7; +$fa-var-chart-area: \f1fe; +$fa-var-chart-bar: \f080; +$fa-var-chart-line: \f201; +$fa-var-chart-pie: \f200; +$fa-var-check: \f00c; +$fa-var-check-circle: \f058; +$fa-var-check-double: \f560; +$fa-var-check-square: \f14a; +$fa-var-chess: \f439; +$fa-var-chess-bishop: \f43a; +$fa-var-chess-board: \f43c; +$fa-var-chess-king: \f43f; +$fa-var-chess-knight: \f441; +$fa-var-chess-pawn: \f443; +$fa-var-chess-queen: \f445; +$fa-var-chess-rook: \f447; +$fa-var-chevron-circle-down: \f13a; +$fa-var-chevron-circle-left: \f137; +$fa-var-chevron-circle-right: \f138; +$fa-var-chevron-circle-up: \f139; +$fa-var-chevron-down: \f078; +$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-church: \f51d; +$fa-var-circle: \f111; +$fa-var-circle-notch: \f1ce; +$fa-var-city: \f64f; +$fa-var-clipboard: \f328; +$fa-var-clipboard-check: \f46c; +$fa-var-clipboard-list: \f46d; +$fa-var-clock: \f017; +$fa-var-clone: \f24d; +$fa-var-closed-captioning: \f20a; +$fa-var-cloud: \f0c2; +$fa-var-cloud-download-alt: \f381; +$fa-var-cloud-meatball: \f73b; +$fa-var-cloud-moon: \f6c3; +$fa-var-cloud-moon-rain: \f73c; +$fa-var-cloud-rain: \f73d; +$fa-var-cloud-showers-heavy: \f740; +$fa-var-cloud-sun: \f6c4; +$fa-var-cloud-sun-rain: \f743; +$fa-var-cloud-upload-alt: \f382; +$fa-var-cloudscale: \f383; +$fa-var-cloudsmith: \f384; +$fa-var-cloudversify: \f385; +$fa-var-cocktail: \f561; +$fa-var-code: \f121; +$fa-var-code-branch: \f126; +$fa-var-codepen: \f1cb; +$fa-var-codiepie: \f284; +$fa-var-coffee: \f0f4; +$fa-var-cog: \f013; +$fa-var-cogs: \f085; +$fa-var-coins: \f51e; +$fa-var-columns: \f0db; +$fa-var-comment: \f075; +$fa-var-comment-alt: \f27a; +$fa-var-comment-dollar: \f651; +$fa-var-comment-dots: \f4ad; +$fa-var-comment-slash: \f4b3; +$fa-var-comments: \f086; +$fa-var-comments-dollar: \f653; +$fa-var-compact-disc: \f51f; +$fa-var-compass: \f14e; +$fa-var-compress: \f066; +$fa-var-concierge-bell: \f562; +$fa-var-connectdevelop: \f20e; +$fa-var-contao: \f26d; +$fa-var-cookie: \f563; +$fa-var-cookie-bite: \f564; +$fa-var-copy: \f0c5; +$fa-var-copyright: \f1f9; +$fa-var-couch: \f4b8; +$fa-var-cpanel: \f388; +$fa-var-creative-commons: \f25e; +$fa-var-creative-commons-by: \f4e7; +$fa-var-creative-commons-nc: \f4e8; +$fa-var-creative-commons-nc-eu: \f4e9; +$fa-var-creative-commons-nc-jp: \f4ea; +$fa-var-creative-commons-nd: \f4eb; +$fa-var-creative-commons-pd: \f4ec; +$fa-var-creative-commons-pd-alt: \f4ed; +$fa-var-creative-commons-remix: \f4ee; +$fa-var-creative-commons-sa: \f4ef; +$fa-var-creative-commons-sampling: \f4f0; +$fa-var-creative-commons-sampling-plus: \f4f1; +$fa-var-creative-commons-share: \f4f2; +$fa-var-creative-commons-zero: \f4f3; +$fa-var-credit-card: \f09d; +$fa-var-critical-role: \f6c9; +$fa-var-crop: \f125; +$fa-var-crop-alt: \f565; +$fa-var-cross: \f654; +$fa-var-crosshairs: \f05b; +$fa-var-crow: \f520; +$fa-var-crown: \f521; +$fa-var-css3: \f13c; +$fa-var-css3-alt: \f38b; +$fa-var-cube: \f1b2; +$fa-var-cubes: \f1b3; +$fa-var-cut: \f0c4; +$fa-var-cuttlefish: \f38c; +$fa-var-d-and-d: \f38d; +$fa-var-d-and-d-beyond: \f6ca; +$fa-var-dashcube: \f210; +$fa-var-database: \f1c0; +$fa-var-deaf: \f2a4; +$fa-var-delicious: \f1a5; +$fa-var-democrat: \f747; +$fa-var-deploydog: \f38e; +$fa-var-deskpro: \f38f; +$fa-var-desktop: \f108; +$fa-var-dev: \f6cc; +$fa-var-deviantart: \f1bd; +$fa-var-dharmachakra: \f655; +$fa-var-diagnoses: \f470; +$fa-var-dice: \f522; +$fa-var-dice-d20: \f6cf; +$fa-var-dice-d6: \f6d1; +$fa-var-dice-five: \f523; +$fa-var-dice-four: \f524; +$fa-var-dice-one: \f525; +$fa-var-dice-six: \f526; +$fa-var-dice-three: \f527; +$fa-var-dice-two: \f528; +$fa-var-digg: \f1a6; +$fa-var-digital-ocean: \f391; +$fa-var-digital-tachograph: \f566; +$fa-var-directions: \f5eb; +$fa-var-discord: \f392; +$fa-var-discourse: \f393; +$fa-var-divide: \f529; +$fa-var-dizzy: \f567; +$fa-var-dna: \f471; +$fa-var-dochub: \f394; +$fa-var-docker: \f395; +$fa-var-dog: \f6d3; +$fa-var-dollar-sign: \f155; +$fa-var-dolly: \f472; +$fa-var-dolly-flatbed: \f474; +$fa-var-donate: \f4b9; +$fa-var-door-closed: \f52a; +$fa-var-door-open: \f52b; +$fa-var-dot-circle: \f192; +$fa-var-dove: \f4ba; +$fa-var-download: \f019; +$fa-var-draft2digital: \f396; +$fa-var-drafting-compass: \f568; +$fa-var-dragon: \f6d5; +$fa-var-draw-polygon: \f5ee; +$fa-var-dribbble: \f17d; +$fa-var-dribbble-square: \f397; +$fa-var-dropbox: \f16b; +$fa-var-drum: \f569; +$fa-var-drum-steelpan: \f56a; +$fa-var-drumstick-bite: \f6d7; +$fa-var-drupal: \f1a9; +$fa-var-dumbbell: \f44b; +$fa-var-dungeon: \f6d9; +$fa-var-dyalog: \f399; +$fa-var-earlybirds: \f39a; +$fa-var-ebay: \f4f4; +$fa-var-edge: \f282; +$fa-var-edit: \f044; +$fa-var-eject: \f052; +$fa-var-elementor: \f430; +$fa-var-ellipsis-h: \f141; +$fa-var-ellipsis-v: \f142; +$fa-var-ello: \f5f1; +$fa-var-ember: \f423; +$fa-var-empire: \f1d1; +$fa-var-envelope: \f0e0; +$fa-var-envelope-open: \f2b6; +$fa-var-envelope-open-text: \f658; +$fa-var-envelope-square: \f199; +$fa-var-envira: \f299; +$fa-var-equals: \f52c; +$fa-var-eraser: \f12d; +$fa-var-erlang: \f39d; +$fa-var-ethereum: \f42e; +$fa-var-etsy: \f2d7; +$fa-var-euro-sign: \f153; +$fa-var-exchange-alt: \f362; +$fa-var-exclamation: \f12a; +$fa-var-exclamation-circle: \f06a; +$fa-var-exclamation-triangle: \f071; +$fa-var-expand: \f065; +$fa-var-expand-arrows-alt: \f31e; +$fa-var-expeditedssl: \f23e; +$fa-var-external-link-alt: \f35d; +$fa-var-external-link-square-alt: \f360; +$fa-var-eye: \f06e; +$fa-var-eye-dropper: \f1fb; +$fa-var-eye-slash: \f070; +$fa-var-facebook: \f09a; +$fa-var-facebook-f: \f39e; +$fa-var-facebook-messenger: \f39f; +$fa-var-facebook-square: \f082; +$fa-var-fantasy-flight-games: \f6dc; +$fa-var-fast-backward: \f049; +$fa-var-fast-forward: \f050; +$fa-var-fax: \f1ac; +$fa-var-feather: \f52d; +$fa-var-feather-alt: \f56b; +$fa-var-female: \f182; +$fa-var-fighter-jet: \f0fb; +$fa-var-file: \f15b; +$fa-var-file-alt: \f15c; +$fa-var-file-archive: \f1c6; +$fa-var-file-audio: \f1c7; +$fa-var-file-code: \f1c9; +$fa-var-file-contract: \f56c; +$fa-var-file-csv: \f6dd; +$fa-var-file-download: \f56d; +$fa-var-file-excel: \f1c3; +$fa-var-file-export: \f56e; +$fa-var-file-image: \f1c5; +$fa-var-file-import: \f56f; +$fa-var-file-invoice: \f570; +$fa-var-file-invoice-dollar: \f571; +$fa-var-file-medical: \f477; +$fa-var-file-medical-alt: \f478; +$fa-var-file-pdf: \f1c1; +$fa-var-file-powerpoint: \f1c4; +$fa-var-file-prescription: \f572; +$fa-var-file-signature: \f573; +$fa-var-file-upload: \f574; +$fa-var-file-video: \f1c8; +$fa-var-file-word: \f1c2; +$fa-var-fill: \f575; +$fa-var-fill-drip: \f576; +$fa-var-film: \f008; +$fa-var-filter: \f0b0; +$fa-var-fingerprint: \f577; +$fa-var-fire: \f06d; +$fa-var-fire-extinguisher: \f134; +$fa-var-firefox: \f269; +$fa-var-first-aid: \f479; +$fa-var-first-order: \f2b0; +$fa-var-first-order-alt: \f50a; +$fa-var-firstdraft: \f3a1; +$fa-var-fish: \f578; +$fa-var-fist-raised: \f6de; +$fa-var-flag: \f024; +$fa-var-flag-checkered: \f11e; +$fa-var-flag-usa: \f74d; +$fa-var-flask: \f0c3; +$fa-var-flickr: \f16e; +$fa-var-flipboard: \f44d; +$fa-var-flushed: \f579; +$fa-var-fly: \f417; +$fa-var-folder: \f07b; +$fa-var-folder-minus: \f65d; +$fa-var-folder-open: \f07c; +$fa-var-folder-plus: \f65e; +$fa-var-font: \f031; +$fa-var-font-awesome: \f2b4; +$fa-var-font-awesome-alt: \f35c; +$fa-var-font-awesome-flag: \f425; +$fa-var-font-awesome-logo-full: \f4e6; +$fa-var-fonticons: \f280; +$fa-var-fonticons-fi: \f3a2; +$fa-var-football-ball: \f44e; +$fa-var-fort-awesome: \f286; +$fa-var-fort-awesome-alt: \f3a3; +$fa-var-forumbee: \f211; +$fa-var-forward: \f04e; +$fa-var-foursquare: \f180; +$fa-var-free-code-camp: \f2c5; +$fa-var-freebsd: \f3a4; +$fa-var-frog: \f52e; +$fa-var-frown: \f119; +$fa-var-frown-open: \f57a; +$fa-var-fulcrum: \f50b; +$fa-var-funnel-dollar: \f662; +$fa-var-futbol: \f1e3; +$fa-var-galactic-republic: \f50c; +$fa-var-galactic-senate: \f50d; +$fa-var-gamepad: \f11b; +$fa-var-gas-pump: \f52f; +$fa-var-gavel: \f0e3; +$fa-var-gem: \f3a5; +$fa-var-genderless: \f22d; +$fa-var-get-pocket: \f265; +$fa-var-gg: \f260; +$fa-var-gg-circle: \f261; +$fa-var-ghost: \f6e2; +$fa-var-gift: \f06b; +$fa-var-git: \f1d3; +$fa-var-git-square: \f1d2; +$fa-var-github: \f09b; +$fa-var-github-alt: \f113; +$fa-var-github-square: \f092; +$fa-var-gitkraken: \f3a6; +$fa-var-gitlab: \f296; +$fa-var-gitter: \f426; +$fa-var-glass-martini: \f000; +$fa-var-glass-martini-alt: \f57b; +$fa-var-glasses: \f530; +$fa-var-glide: \f2a5; +$fa-var-glide-g: \f2a6; +$fa-var-globe: \f0ac; +$fa-var-globe-africa: \f57c; +$fa-var-globe-americas: \f57d; +$fa-var-globe-asia: \f57e; +$fa-var-gofore: \f3a7; +$fa-var-golf-ball: \f450; +$fa-var-goodreads: \f3a8; +$fa-var-goodreads-g: \f3a9; +$fa-var-google: \f1a0; +$fa-var-google-drive: \f3aa; +$fa-var-google-play: \f3ab; +$fa-var-google-plus: \f2b3; +$fa-var-google-plus-g: \f0d5; +$fa-var-google-plus-square: \f0d4; +$fa-var-google-wallet: \f1ee; +$fa-var-gopuram: \f664; +$fa-var-graduation-cap: \f19d; +$fa-var-gratipay: \f184; +$fa-var-grav: \f2d6; +$fa-var-greater-than: \f531; +$fa-var-greater-than-equal: \f532; +$fa-var-grimace: \f57f; +$fa-var-grin: \f580; +$fa-var-grin-alt: \f581; +$fa-var-grin-beam: \f582; +$fa-var-grin-beam-sweat: \f583; +$fa-var-grin-hearts: \f584; +$fa-var-grin-squint: \f585; +$fa-var-grin-squint-tears: \f586; +$fa-var-grin-stars: \f587; +$fa-var-grin-tears: \f588; +$fa-var-grin-tongue: \f589; +$fa-var-grin-tongue-squint: \f58a; +$fa-var-grin-tongue-wink: \f58b; +$fa-var-grin-wink: \f58c; +$fa-var-grip-horizontal: \f58d; +$fa-var-grip-vertical: \f58e; +$fa-var-gripfire: \f3ac; +$fa-var-grunt: \f3ad; +$fa-var-gulp: \f3ae; +$fa-var-h-square: \f0fd; +$fa-var-hacker-news: \f1d4; +$fa-var-hacker-news-square: \f3af; +$fa-var-hackerrank: \f5f7; +$fa-var-hammer: \f6e3; +$fa-var-hamsa: \f665; +$fa-var-hand-holding: \f4bd; +$fa-var-hand-holding-heart: \f4be; +$fa-var-hand-holding-usd: \f4c0; +$fa-var-hand-lizard: \f258; +$fa-var-hand-paper: \f256; +$fa-var-hand-peace: \f25b; +$fa-var-hand-point-down: \f0a7; +$fa-var-hand-point-left: \f0a5; +$fa-var-hand-point-right: \f0a4; +$fa-var-hand-point-up: \f0a6; +$fa-var-hand-pointer: \f25a; +$fa-var-hand-rock: \f255; +$fa-var-hand-scissors: \f257; +$fa-var-hand-spock: \f259; +$fa-var-hands: \f4c2; +$fa-var-hands-helping: \f4c4; +$fa-var-handshake: \f2b5; +$fa-var-hanukiah: \f6e6; +$fa-var-hashtag: \f292; +$fa-var-hat-wizard: \f6e8; +$fa-var-haykal: \f666; +$fa-var-hdd: \f0a0; +$fa-var-heading: \f1dc; +$fa-var-headphones: \f025; +$fa-var-headphones-alt: \f58f; +$fa-var-headset: \f590; +$fa-var-heart: \f004; +$fa-var-heartbeat: \f21e; +$fa-var-helicopter: \f533; +$fa-var-highlighter: \f591; +$fa-var-hiking: \f6ec; +$fa-var-hippo: \f6ed; +$fa-var-hips: \f452; +$fa-var-hire-a-helper: \f3b0; +$fa-var-history: \f1da; +$fa-var-hockey-puck: \f453; +$fa-var-home: \f015; +$fa-var-hooli: \f427; +$fa-var-hornbill: \f592; +$fa-var-horse: \f6f0; +$fa-var-hospital: \f0f8; +$fa-var-hospital-alt: \f47d; +$fa-var-hospital-symbol: \f47e; +$fa-var-hot-tub: \f593; +$fa-var-hotel: \f594; +$fa-var-hotjar: \f3b1; +$fa-var-hourglass: \f254; +$fa-var-hourglass-end: \f253; +$fa-var-hourglass-half: \f252; +$fa-var-hourglass-start: \f251; +$fa-var-house-damage: \f6f1; +$fa-var-houzz: \f27c; +$fa-var-hryvnia: \f6f2; +$fa-var-html5: \f13b; +$fa-var-hubspot: \f3b2; +$fa-var-i-cursor: \f246; +$fa-var-id-badge: \f2c1; +$fa-var-id-card: \f2c2; +$fa-var-id-card-alt: \f47f; +$fa-var-image: \f03e; +$fa-var-images: \f302; +$fa-var-imdb: \f2d8; +$fa-var-inbox: \f01c; +$fa-var-indent: \f03c; +$fa-var-industry: \f275; +$fa-var-infinity: \f534; +$fa-var-info: \f129; +$fa-var-info-circle: \f05a; +$fa-var-instagram: \f16d; +$fa-var-internet-explorer: \f26b; +$fa-var-ioxhost: \f208; +$fa-var-italic: \f033; +$fa-var-itunes: \f3b4; +$fa-var-itunes-note: \f3b5; +$fa-var-java: \f4e4; +$fa-var-jedi: \f669; +$fa-var-jedi-order: \f50e; +$fa-var-jenkins: \f3b6; +$fa-var-joget: \f3b7; +$fa-var-joint: \f595; +$fa-var-joomla: \f1aa; +$fa-var-journal-whills: \f66a; +$fa-var-js: \f3b8; +$fa-var-js-square: \f3b9; +$fa-var-jsfiddle: \f1cc; +$fa-var-kaaba: \f66b; +$fa-var-kaggle: \f5fa; +$fa-var-key: \f084; +$fa-var-keybase: \f4f5; +$fa-var-keyboard: \f11c; +$fa-var-keycdn: \f3ba; +$fa-var-khanda: \f66d; +$fa-var-kickstarter: \f3bb; +$fa-var-kickstarter-k: \f3bc; +$fa-var-kiss: \f596; +$fa-var-kiss-beam: \f597; +$fa-var-kiss-wink-heart: \f598; +$fa-var-kiwi-bird: \f535; +$fa-var-korvue: \f42f; +$fa-var-landmark: \f66f; +$fa-var-language: \f1ab; +$fa-var-laptop: \f109; +$fa-var-laptop-code: \f5fc; +$fa-var-laravel: \f3bd; +$fa-var-lastfm: \f202; +$fa-var-lastfm-square: \f203; +$fa-var-laugh: \f599; +$fa-var-laugh-beam: \f59a; +$fa-var-laugh-squint: \f59b; +$fa-var-laugh-wink: \f59c; +$fa-var-layer-group: \f5fd; +$fa-var-leaf: \f06c; +$fa-var-leanpub: \f212; +$fa-var-lemon: \f094; +$fa-var-less: \f41d; +$fa-var-less-than: \f536; +$fa-var-less-than-equal: \f537; +$fa-var-level-down-alt: \f3be; +$fa-var-level-up-alt: \f3bf; +$fa-var-life-ring: \f1cd; +$fa-var-lightbulb: \f0eb; +$fa-var-line: \f3c0; +$fa-var-link: \f0c1; +$fa-var-linkedin: \f08c; +$fa-var-linkedin-in: \f0e1; +$fa-var-linode: \f2b8; +$fa-var-linux: \f17c; +$fa-var-lira-sign: \f195; +$fa-var-list: \f03a; +$fa-var-list-alt: \f022; +$fa-var-list-ol: \f0cb; +$fa-var-list-ul: \f0ca; +$fa-var-location-arrow: \f124; +$fa-var-lock: \f023; +$fa-var-lock-open: \f3c1; +$fa-var-long-arrow-alt-down: \f309; +$fa-var-long-arrow-alt-left: \f30a; +$fa-var-long-arrow-alt-right: \f30b; +$fa-var-long-arrow-alt-up: \f30c; +$fa-var-low-vision: \f2a8; +$fa-var-luggage-cart: \f59d; +$fa-var-lyft: \f3c3; +$fa-var-magento: \f3c4; +$fa-var-magic: \f0d0; +$fa-var-magnet: \f076; +$fa-var-mail-bulk: \f674; +$fa-var-mailchimp: \f59e; +$fa-var-male: \f183; +$fa-var-mandalorian: \f50f; +$fa-var-map: \f279; +$fa-var-map-marked: \f59f; +$fa-var-map-marked-alt: \f5a0; +$fa-var-map-marker: \f041; +$fa-var-map-marker-alt: \f3c5; +$fa-var-map-pin: \f276; +$fa-var-map-signs: \f277; +$fa-var-markdown: \f60f; +$fa-var-marker: \f5a1; +$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-mask: \f6fa; +$fa-var-mastodon: \f4f6; +$fa-var-maxcdn: \f136; +$fa-var-medal: \f5a2; +$fa-var-medapps: \f3c6; +$fa-var-medium: \f23a; +$fa-var-medium-m: \f3c7; +$fa-var-medkit: \f0fa; +$fa-var-medrt: \f3c8; +$fa-var-meetup: \f2e0; +$fa-var-megaport: \f5a3; +$fa-var-meh: \f11a; +$fa-var-meh-blank: \f5a4; +$fa-var-meh-rolling-eyes: \f5a5; +$fa-var-memory: \f538; +$fa-var-menorah: \f676; +$fa-var-mercury: \f223; +$fa-var-meteor: \f753; +$fa-var-microchip: \f2db; +$fa-var-microphone: \f130; +$fa-var-microphone-alt: \f3c9; +$fa-var-microphone-alt-slash: \f539; +$fa-var-microphone-slash: \f131; +$fa-var-microscope: \f610; +$fa-var-microsoft: \f3ca; +$fa-var-minus: \f068; +$fa-var-minus-circle: \f056; +$fa-var-minus-square: \f146; +$fa-var-mix: \f3cb; +$fa-var-mixcloud: \f289; +$fa-var-mizuni: \f3cc; +$fa-var-mobile: \f10b; +$fa-var-mobile-alt: \f3cd; +$fa-var-modx: \f285; +$fa-var-monero: \f3d0; +$fa-var-money-bill: \f0d6; +$fa-var-money-bill-alt: \f3d1; +$fa-var-money-bill-wave: \f53a; +$fa-var-money-bill-wave-alt: \f53b; +$fa-var-money-check: \f53c; +$fa-var-money-check-alt: \f53d; +$fa-var-monument: \f5a6; +$fa-var-moon: \f186; +$fa-var-mortar-pestle: \f5a7; +$fa-var-mosque: \f678; +$fa-var-motorcycle: \f21c; +$fa-var-mountain: \f6fc; +$fa-var-mouse-pointer: \f245; +$fa-var-music: \f001; +$fa-var-napster: \f3d2; +$fa-var-neos: \f612; +$fa-var-network-wired: \f6ff; +$fa-var-neuter: \f22c; +$fa-var-newspaper: \f1ea; +$fa-var-nimblr: \f5a8; +$fa-var-nintendo-switch: \f418; +$fa-var-node: \f419; +$fa-var-node-js: \f3d3; +$fa-var-not-equal: \f53e; +$fa-var-notes-medical: \f481; +$fa-var-npm: \f3d4; +$fa-var-ns8: \f3d5; +$fa-var-nutritionix: \f3d6; +$fa-var-object-group: \f247; +$fa-var-object-ungroup: \f248; +$fa-var-odnoklassniki: \f263; +$fa-var-odnoklassniki-square: \f264; +$fa-var-oil-can: \f613; +$fa-var-old-republic: \f510; +$fa-var-om: \f679; +$fa-var-opencart: \f23d; +$fa-var-openid: \f19b; +$fa-var-opera: \f26a; +$fa-var-optin-monster: \f23c; +$fa-var-osi: \f41a; +$fa-var-otter: \f700; +$fa-var-outdent: \f03b; +$fa-var-page4: \f3d7; +$fa-var-pagelines: \f18c; +$fa-var-paint-brush: \f1fc; +$fa-var-paint-roller: \f5aa; +$fa-var-palette: \f53f; +$fa-var-palfed: \f3d8; +$fa-var-pallet: \f482; +$fa-var-paper-plane: \f1d8; +$fa-var-paperclip: \f0c6; +$fa-var-parachute-box: \f4cd; +$fa-var-paragraph: \f1dd; +$fa-var-parking: \f540; +$fa-var-passport: \f5ab; +$fa-var-pastafarianism: \f67b; +$fa-var-paste: \f0ea; +$fa-var-patreon: \f3d9; +$fa-var-pause: \f04c; +$fa-var-pause-circle: \f28b; +$fa-var-paw: \f1b0; +$fa-var-paypal: \f1ed; +$fa-var-peace: \f67c; +$fa-var-pen: \f304; +$fa-var-pen-alt: \f305; +$fa-var-pen-fancy: \f5ac; +$fa-var-pen-nib: \f5ad; +$fa-var-pen-square: \f14b; +$fa-var-pencil-alt: \f303; +$fa-var-pencil-ruler: \f5ae; +$fa-var-penny-arcade: \f704; +$fa-var-people-carry: \f4ce; +$fa-var-percent: \f295; +$fa-var-percentage: \f541; +$fa-var-periscope: \f3da; +$fa-var-person-booth: \f756; +$fa-var-phabricator: \f3db; +$fa-var-phoenix-framework: \f3dc; +$fa-var-phoenix-squadron: \f511; +$fa-var-phone: \f095; +$fa-var-phone-slash: \f3dd; +$fa-var-phone-square: \f098; +$fa-var-phone-volume: \f2a0; +$fa-var-php: \f457; +$fa-var-pied-piper: \f2ae; +$fa-var-pied-piper-alt: \f1a8; +$fa-var-pied-piper-hat: \f4e5; +$fa-var-pied-piper-pp: \f1a7; +$fa-var-piggy-bank: \f4d3; +$fa-var-pills: \f484; +$fa-var-pinterest: \f0d2; +$fa-var-pinterest-p: \f231; +$fa-var-pinterest-square: \f0d3; +$fa-var-place-of-worship: \f67f; +$fa-var-plane: \f072; +$fa-var-plane-arrival: \f5af; +$fa-var-plane-departure: \f5b0; +$fa-var-play: \f04b; +$fa-var-play-circle: \f144; +$fa-var-playstation: \f3df; +$fa-var-plug: \f1e6; +$fa-var-plus: \f067; +$fa-var-plus-circle: \f055; +$fa-var-plus-square: \f0fe; +$fa-var-podcast: \f2ce; +$fa-var-poll: \f681; +$fa-var-poll-h: \f682; +$fa-var-poo: \f2fe; +$fa-var-poo-storm: \f75a; +$fa-var-poop: \f619; +$fa-var-portrait: \f3e0; +$fa-var-pound-sign: \f154; +$fa-var-power-off: \f011; +$fa-var-pray: \f683; +$fa-var-praying-hands: \f684; +$fa-var-prescription: \f5b1; +$fa-var-prescription-bottle: \f485; +$fa-var-prescription-bottle-alt: \f486; +$fa-var-print: \f02f; +$fa-var-procedures: \f487; +$fa-var-product-hunt: \f288; +$fa-var-project-diagram: \f542; +$fa-var-pushed: \f3e1; +$fa-var-puzzle-piece: \f12e; +$fa-var-python: \f3e2; +$fa-var-qq: \f1d6; +$fa-var-qrcode: \f029; +$fa-var-question: \f128; +$fa-var-question-circle: \f059; +$fa-var-quidditch: \f458; +$fa-var-quinscape: \f459; +$fa-var-quora: \f2c4; +$fa-var-quote-left: \f10d; +$fa-var-quote-right: \f10e; +$fa-var-quran: \f687; +$fa-var-r-project: \f4f7; +$fa-var-rainbow: \f75b; +$fa-var-random: \f074; +$fa-var-ravelry: \f2d9; +$fa-var-react: \f41b; +$fa-var-reacteurope: \f75d; +$fa-var-readme: \f4d5; +$fa-var-rebel: \f1d0; +$fa-var-receipt: \f543; +$fa-var-recycle: \f1b8; +$fa-var-red-river: \f3e3; +$fa-var-reddit: \f1a1; +$fa-var-reddit-alien: \f281; +$fa-var-reddit-square: \f1a2; +$fa-var-redo: \f01e; +$fa-var-redo-alt: \f2f9; +$fa-var-registered: \f25d; +$fa-var-renren: \f18b; +$fa-var-reply: \f3e5; +$fa-var-reply-all: \f122; +$fa-var-replyd: \f3e6; +$fa-var-republican: \f75e; +$fa-var-researchgate: \f4f8; +$fa-var-resolving: \f3e7; +$fa-var-retweet: \f079; +$fa-var-rev: \f5b2; +$fa-var-ribbon: \f4d6; +$fa-var-ring: \f70b; +$fa-var-road: \f018; +$fa-var-robot: \f544; +$fa-var-rocket: \f135; +$fa-var-rocketchat: \f3e8; +$fa-var-rockrms: \f3e9; +$fa-var-route: \f4d7; +$fa-var-rss: \f09e; +$fa-var-rss-square: \f143; +$fa-var-ruble-sign: \f158; +$fa-var-ruler: \f545; +$fa-var-ruler-combined: \f546; +$fa-var-ruler-horizontal: \f547; +$fa-var-ruler-vertical: \f548; +$fa-var-running: \f70c; +$fa-var-rupee-sign: \f156; +$fa-var-sad-cry: \f5b3; +$fa-var-sad-tear: \f5b4; +$fa-var-safari: \f267; +$fa-var-sass: \f41e; +$fa-var-save: \f0c7; +$fa-var-schlix: \f3ea; +$fa-var-school: \f549; +$fa-var-screwdriver: \f54a; +$fa-var-scribd: \f28a; +$fa-var-scroll: \f70e; +$fa-var-search: \f002; +$fa-var-search-dollar: \f688; +$fa-var-search-location: \f689; +$fa-var-search-minus: \f010; +$fa-var-search-plus: \f00e; +$fa-var-searchengin: \f3eb; +$fa-var-seedling: \f4d8; +$fa-var-sellcast: \f2da; +$fa-var-sellsy: \f213; +$fa-var-server: \f233; +$fa-var-servicestack: \f3ec; +$fa-var-shapes: \f61f; +$fa-var-share: \f064; +$fa-var-share-alt: \f1e0; +$fa-var-share-alt-square: \f1e1; +$fa-var-share-square: \f14d; +$fa-var-shekel-sign: \f20b; +$fa-var-shield-alt: \f3ed; +$fa-var-ship: \f21a; +$fa-var-shipping-fast: \f48b; +$fa-var-shirtsinbulk: \f214; +$fa-var-shoe-prints: \f54b; +$fa-var-shopping-bag: \f290; +$fa-var-shopping-basket: \f291; +$fa-var-shopping-cart: \f07a; +$fa-var-shopware: \f5b5; +$fa-var-shower: \f2cc; +$fa-var-shuttle-van: \f5b6; +$fa-var-sign: \f4d9; +$fa-var-sign-in-alt: \f2f6; +$fa-var-sign-language: \f2a7; +$fa-var-sign-out-alt: \f2f5; +$fa-var-signal: \f012; +$fa-var-signature: \f5b7; +$fa-var-simplybuilt: \f215; +$fa-var-sistrix: \f3ee; +$fa-var-sitemap: \f0e8; +$fa-var-sith: \f512; +$fa-var-skull: \f54c; +$fa-var-skull-crossbones: \f714; +$fa-var-skyatlas: \f216; +$fa-var-skype: \f17e; +$fa-var-slack: \f198; +$fa-var-slack-hash: \f3ef; +$fa-var-slash: \f715; +$fa-var-sliders-h: \f1de; +$fa-var-slideshare: \f1e7; +$fa-var-smile: \f118; +$fa-var-smile-beam: \f5b8; +$fa-var-smile-wink: \f4da; +$fa-var-smog: \f75f; +$fa-var-smoking: \f48d; +$fa-var-smoking-ban: \f54d; +$fa-var-snapchat: \f2ab; +$fa-var-snapchat-ghost: \f2ac; +$fa-var-snapchat-square: \f2ad; +$fa-var-snowflake: \f2dc; +$fa-var-socks: \f696; +$fa-var-solar-panel: \f5ba; +$fa-var-sort: \f0dc; +$fa-var-sort-alpha-down: \f15d; +$fa-var-sort-alpha-up: \f15e; +$fa-var-sort-amount-down: \f160; +$fa-var-sort-amount-up: \f161; +$fa-var-sort-down: \f0dd; +$fa-var-sort-numeric-down: \f162; +$fa-var-sort-numeric-up: \f163; +$fa-var-sort-up: \f0de; +$fa-var-soundcloud: \f1be; +$fa-var-spa: \f5bb; +$fa-var-space-shuttle: \f197; +$fa-var-speakap: \f3f3; +$fa-var-spider: \f717; +$fa-var-spinner: \f110; +$fa-var-splotch: \f5bc; +$fa-var-spotify: \f1bc; +$fa-var-spray-can: \f5bd; +$fa-var-square: \f0c8; +$fa-var-square-full: \f45c; +$fa-var-square-root-alt: \f698; +$fa-var-squarespace: \f5be; +$fa-var-stack-exchange: \f18d; +$fa-var-stack-overflow: \f16c; +$fa-var-stamp: \f5bf; +$fa-var-star: \f005; +$fa-var-star-and-crescent: \f699; +$fa-var-star-half: \f089; +$fa-var-star-half-alt: \f5c0; +$fa-var-star-of-david: \f69a; +$fa-var-star-of-life: \f621; +$fa-var-staylinked: \f3f5; +$fa-var-steam: \f1b6; +$fa-var-steam-square: \f1b7; +$fa-var-steam-symbol: \f3f6; +$fa-var-step-backward: \f048; +$fa-var-step-forward: \f051; +$fa-var-stethoscope: \f0f1; +$fa-var-sticker-mule: \f3f7; +$fa-var-sticky-note: \f249; +$fa-var-stop: \f04d; +$fa-var-stop-circle: \f28d; +$fa-var-stopwatch: \f2f2; +$fa-var-store: \f54e; +$fa-var-store-alt: \f54f; +$fa-var-strava: \f428; +$fa-var-stream: \f550; +$fa-var-street-view: \f21d; +$fa-var-strikethrough: \f0cc; +$fa-var-stripe: \f429; +$fa-var-stripe-s: \f42a; +$fa-var-stroopwafel: \f551; +$fa-var-studiovinari: \f3f8; +$fa-var-stumbleupon: \f1a4; +$fa-var-stumbleupon-circle: \f1a3; +$fa-var-subscript: \f12c; +$fa-var-subway: \f239; +$fa-var-suitcase: \f0f2; +$fa-var-suitcase-rolling: \f5c1; +$fa-var-sun: \f185; +$fa-var-superpowers: \f2dd; +$fa-var-superscript: \f12b; +$fa-var-supple: \f3f9; +$fa-var-surprise: \f5c2; +$fa-var-swatchbook: \f5c3; +$fa-var-swimmer: \f5c4; +$fa-var-swimming-pool: \f5c5; +$fa-var-synagogue: \f69b; +$fa-var-sync: \f021; +$fa-var-sync-alt: \f2f1; +$fa-var-syringe: \f48e; +$fa-var-table: \f0ce; +$fa-var-table-tennis: \f45d; +$fa-var-tablet: \f10a; +$fa-var-tablet-alt: \f3fa; +$fa-var-tablets: \f490; +$fa-var-tachometer-alt: \f3fd; +$fa-var-tag: \f02b; +$fa-var-tags: \f02c; +$fa-var-tape: \f4db; +$fa-var-tasks: \f0ae; +$fa-var-taxi: \f1ba; +$fa-var-teamspeak: \f4f9; +$fa-var-teeth: \f62e; +$fa-var-teeth-open: \f62f; +$fa-var-telegram: \f2c6; +$fa-var-telegram-plane: \f3fe; +$fa-var-temperature-high: \f769; +$fa-var-temperature-low: \f76b; +$fa-var-tencent-weibo: \f1d5; +$fa-var-terminal: \f120; +$fa-var-text-height: \f034; +$fa-var-text-width: \f035; +$fa-var-th: \f00a; +$fa-var-th-large: \f009; +$fa-var-th-list: \f00b; +$fa-var-the-red-yeti: \f69d; +$fa-var-theater-masks: \f630; +$fa-var-themeco: \f5c6; +$fa-var-themeisle: \f2b2; +$fa-var-thermometer: \f491; +$fa-var-thermometer-empty: \f2cb; +$fa-var-thermometer-full: \f2c7; +$fa-var-thermometer-half: \f2c9; +$fa-var-thermometer-quarter: \f2ca; +$fa-var-thermometer-three-quarters: \f2c8; +$fa-var-think-peaks: \f731; +$fa-var-thumbs-down: \f165; +$fa-var-thumbs-up: \f164; +$fa-var-thumbtack: \f08d; +$fa-var-ticket-alt: \f3ff; +$fa-var-times: \f00d; +$fa-var-times-circle: \f057; +$fa-var-tint: \f043; +$fa-var-tint-slash: \f5c7; +$fa-var-tired: \f5c8; +$fa-var-toggle-off: \f204; +$fa-var-toggle-on: \f205; +$fa-var-toilet-paper: \f71e; +$fa-var-toolbox: \f552; +$fa-var-tooth: \f5c9; +$fa-var-torah: \f6a0; +$fa-var-torii-gate: \f6a1; +$fa-var-tractor: \f722; +$fa-var-trade-federation: \f513; +$fa-var-trademark: \f25c; +$fa-var-traffic-light: \f637; +$fa-var-train: \f238; +$fa-var-transgender: \f224; +$fa-var-transgender-alt: \f225; +$fa-var-trash: \f1f8; +$fa-var-trash-alt: \f2ed; +$fa-var-tree: \f1bb; +$fa-var-trello: \f181; +$fa-var-tripadvisor: \f262; +$fa-var-trophy: \f091; +$fa-var-truck: \f0d1; +$fa-var-truck-loading: \f4de; +$fa-var-truck-monster: \f63b; +$fa-var-truck-moving: \f4df; +$fa-var-truck-pickup: \f63c; +$fa-var-tshirt: \f553; +$fa-var-tty: \f1e4; +$fa-var-tumblr: \f173; +$fa-var-tumblr-square: \f174; +$fa-var-tv: \f26c; +$fa-var-twitch: \f1e8; +$fa-var-twitter: \f099; +$fa-var-twitter-square: \f081; +$fa-var-typo3: \f42b; +$fa-var-uber: \f402; +$fa-var-uikit: \f403; +$fa-var-umbrella: \f0e9; +$fa-var-umbrella-beach: \f5ca; +$fa-var-underline: \f0cd; +$fa-var-undo: \f0e2; +$fa-var-undo-alt: \f2ea; +$fa-var-uniregistry: \f404; +$fa-var-universal-access: \f29a; +$fa-var-university: \f19c; +$fa-var-unlink: \f127; +$fa-var-unlock: \f09c; +$fa-var-unlock-alt: \f13e; +$fa-var-untappd: \f405; +$fa-var-upload: \f093; +$fa-var-usb: \f287; +$fa-var-user: \f007; +$fa-var-user-alt: \f406; +$fa-var-user-alt-slash: \f4fa; +$fa-var-user-astronaut: \f4fb; +$fa-var-user-check: \f4fc; +$fa-var-user-circle: \f2bd; +$fa-var-user-clock: \f4fd; +$fa-var-user-cog: \f4fe; +$fa-var-user-edit: \f4ff; +$fa-var-user-friends: \f500; +$fa-var-user-graduate: \f501; +$fa-var-user-injured: \f728; +$fa-var-user-lock: \f502; +$fa-var-user-md: \f0f0; +$fa-var-user-minus: \f503; +$fa-var-user-ninja: \f504; +$fa-var-user-plus: \f234; +$fa-var-user-secret: \f21b; +$fa-var-user-shield: \f505; +$fa-var-user-slash: \f506; +$fa-var-user-tag: \f507; +$fa-var-user-tie: \f508; +$fa-var-user-times: \f235; +$fa-var-users: \f0c0; +$fa-var-users-cog: \f509; +$fa-var-ussunnah: \f407; +$fa-var-utensil-spoon: \f2e5; +$fa-var-utensils: \f2e7; +$fa-var-vaadin: \f408; +$fa-var-vector-square: \f5cb; +$fa-var-venus: \f221; +$fa-var-venus-double: \f226; +$fa-var-venus-mars: \f228; +$fa-var-viacoin: \f237; +$fa-var-viadeo: \f2a9; +$fa-var-viadeo-square: \f2aa; +$fa-var-vial: \f492; +$fa-var-vials: \f493; +$fa-var-viber: \f409; +$fa-var-video: \f03d; +$fa-var-video-slash: \f4e2; +$fa-var-vihara: \f6a7; +$fa-var-vimeo: \f40a; +$fa-var-vimeo-square: \f194; +$fa-var-vimeo-v: \f27d; +$fa-var-vine: \f1ca; +$fa-var-vk: \f189; +$fa-var-vnv: \f40b; +$fa-var-volleyball-ball: \f45f; +$fa-var-volume-down: \f027; +$fa-var-volume-mute: \f6a9; +$fa-var-volume-off: \f026; +$fa-var-volume-up: \f028; +$fa-var-vote-yea: \f772; +$fa-var-vr-cardboard: \f729; +$fa-var-vuejs: \f41f; +$fa-var-walking: \f554; +$fa-var-wallet: \f555; +$fa-var-warehouse: \f494; +$fa-var-water: \f773; +$fa-var-weebly: \f5cc; +$fa-var-weibo: \f18a; +$fa-var-weight: \f496; +$fa-var-weight-hanging: \f5cd; +$fa-var-weixin: \f1d7; +$fa-var-whatsapp: \f232; +$fa-var-whatsapp-square: \f40c; +$fa-var-wheelchair: \f193; +$fa-var-whmcs: \f40d; +$fa-var-wifi: \f1eb; +$fa-var-wikipedia-w: \f266; +$fa-var-wind: \f72e; +$fa-var-window-close: \f410; +$fa-var-window-maximize: \f2d0; +$fa-var-window-minimize: \f2d1; +$fa-var-window-restore: \f2d2; +$fa-var-windows: \f17a; +$fa-var-wine-bottle: \f72f; +$fa-var-wine-glass: \f4e3; +$fa-var-wine-glass-alt: \f5ce; +$fa-var-wix: \f5cf; +$fa-var-wizards-of-the-coast: \f730; +$fa-var-wolf-pack-battalion: \f514; +$fa-var-won-sign: \f159; +$fa-var-wordpress: \f19a; +$fa-var-wordpress-simple: \f411; +$fa-var-wpbeginner: \f297; +$fa-var-wpexplorer: \f2de; +$fa-var-wpforms: \f298; +$fa-var-wpressr: \f3e4; +$fa-var-wrench: \f0ad; +$fa-var-x-ray: \f497; +$fa-var-xbox: \f412; +$fa-var-xing: \f168; +$fa-var-xing-square: \f169; +$fa-var-y-combinator: \f23b; +$fa-var-yahoo: \f19e; +$fa-var-yandex: \f413; +$fa-var-yandex-international: \f414; +$fa-var-yelp: \f1e9; +$fa-var-yen-sign: \f157; +$fa-var-yin-yang: \f6ad; +$fa-var-yoast: \f2b1; +$fa-var-youtube: \f167; +$fa-var-youtube-square: \f431; +$fa-var-zhihu: \f63f; diff --git a/_sass/vendor/font-awesome/brands.scss b/_sass/vendor/font-awesome/brands.scss new file mode 100644 index 0000000..6935d1f --- /dev/null +++ b/_sass/vendor/font-awesome/brands.scss @@ -0,0 +1,21 @@ +/*! + * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: normal; + src: url('#{$fa-font-path}/fa-brands-400.eot'); + src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'), + url('#{$fa-font-path}/fa-brands-400.woff') format('woff'), + url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'), + url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg'); +} + +.fab { + font-family: 'Font Awesome 5 Brands'; +} diff --git a/_sass/vendor/font-awesome/fontawesome.scss b/_sass/vendor/font-awesome/fontawesome.scss new file mode 100644 index 0000000..2c0ea50 --- /dev/null +++ b/_sass/vendor/font-awesome/fontawesome.scss @@ -0,0 +1,16 @@ +/*! + * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; +@import 'mixins'; +@import 'core'; +@import 'larger'; +@import 'fixed-width'; +@import 'list'; +@import 'bordered-pulled'; +@import 'animated'; +@import 'rotated-flipped'; +@import 'stacked'; +@import 'icons'; +@import 'screen-reader'; diff --git a/_sass/vendor/font-awesome/regular.scss b/_sass/vendor/font-awesome/regular.scss new file mode 100644 index 0000000..4971616 --- /dev/null +++ b/_sass/vendor/font-awesome/regular.scss @@ -0,0 +1,22 @@ +/*! + * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + src: url('#{$fa-font-path}/fa-regular-400.eot'); + src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'), + url('#{$fa-font-path}/fa-regular-400.woff') format('woff'), + url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'), + url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg'); +} + +.far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} diff --git a/_sass/vendor/font-awesome/solid.scss b/_sass/vendor/font-awesome/solid.scss new file mode 100644 index 0000000..8fba642 --- /dev/null +++ b/_sass/vendor/font-awesome/solid.scss @@ -0,0 +1,23 @@ +/*! + * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + src: url('#{$fa-font-path}/fa-solid-900.eot'); + src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'), + url('#{$fa-font-path}/fa-solid-900.woff') format('woff'), + url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'), + url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg'); +} + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; +} diff --git a/_sass/vendor/font-awesome/v4-shims.scss b/_sass/vendor/font-awesome/v4-shims.scss new file mode 100644 index 0000000..64587fb --- /dev/null +++ b/_sass/vendor/font-awesome/v4-shims.scss @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 5.5.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; +@import 'shims'; diff --git a/_sass/vendor/magnific-popup/_magnific-popup.scss b/_sass/vendor/magnific-popup/_magnific-popup.scss new file mode 100644 index 0000000..27b27bc --- /dev/null +++ b/_sass/vendor/magnific-popup/_magnific-popup.scss @@ -0,0 +1,649 @@ +/* Magnific Popup CSS */ + +@import "settings"; + +//////////////////////// +// +// Contents: +// +// 1. Default Settings +// 2. General styles +// - Transluscent overlay +// - Containers, wrappers +// - Cursors +// - Helper classes +// 3. Appearance +// - Preloader & text that displays error messages +// - CSS reset for buttons +// - Close icon +// - "1 of X" counter +// - Navigation (left/right) arrows +// - Iframe content type styles +// - Image content type styles +// - Media query where size of arrows is reduced +// - IE7 support +// +//////////////////////// + + + +//////////////////////// +// 1. Default Settings +//////////////////////// + +$mfp-overlay-color: #0b0b0b !default; +$mfp-overlay-opacity: 0.8 !default; +$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // shadow on image or iframe +$mfp-popup-padding-left: 8px !default; // Padding from left and from right side +$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px + +$mfp-z-index-base: 1040 !default; // Base z-index of popup +$mfp-include-arrows: true !default; // include styles for nav arrows +$mfp-controls-opacity: 0.65 !default; +$mfp-controls-color: #FFF !default; +$mfp-controls-border-color: #3F3F3F !default; +$mfp-inner-close-icon-color: #333 !default; +$mfp-controls-text-color: #CCC !default; // Color of preloader and "1 of X" indicator +$mfp-controls-text-color-hover: #FFF !default; +$mfp-IE7support: true !default; // Very basic IE7 support + +// Iframe-type options +$mfp-include-iframe-type: true !default; +$mfp-iframe-padding-top: 40px !default; +$mfp-iframe-background: #000 !default; +$mfp-iframe-max-width: 900px !default; +$mfp-iframe-ratio: 9/16 !default; + +// Image-type options +$mfp-include-image-type: true !default; +$mfp-image-background: #444 !default; +$mfp-image-padding-top: 40px !default; +$mfp-image-padding-bottom: 40px !default; +$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom + +// Image caption options +$mfp-caption-title-color: #F3F3F3 !default; +$mfp-caption-subtitle-color: #BDBDBD !default; + +// A11y +$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers + + + +//////////////////////// +// 2. General styles +//////////////////////// + +// Transluscent overlay +.mfp-bg { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: $mfp-z-index-base + 2; + overflow: hidden; + position: fixed; + + background: $mfp-overlay-color; + opacity: $mfp-overlay-opacity; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{$mfp-overlay-opacity*100})"); + } +} + +// Wrapper for popup +.mfp-wrap { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: $mfp-z-index-base + 3; + position: fixed; + outline: none !important; + -webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar +} + +// Root container +.mfp-container { + text-align: center; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + padding: 0 $mfp-popup-padding-left; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +// Vertical centerer helper +.mfp-container { + &:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; + } +} + +// Remove vertical centering when popup has class `mfp-align-top` +.mfp-align-top { + .mfp-container { + &:before { + display: none; + } + } +} + +// Popup content holder +.mfp-content { + position: relative; + display: inline-block; + vertical-align: middle; + margin: 0 auto; + text-align: left; + z-index: $mfp-z-index-base + 5; +} +.mfp-inline-holder, +.mfp-ajax-holder { + .mfp-content { + width: 100%; + cursor: auto; + } +} + +// Cursors +.mfp-ajax-cur { + cursor: progress; +} +.mfp-zoom-out-cur { + &, .mfp-image-holder .mfp-close { + cursor: -moz-zoom-out; + cursor: -webkit-zoom-out; + cursor: zoom-out; + } +} +.mfp-zoom { + cursor: pointer; + cursor: -webkit-zoom-in; + cursor: -moz-zoom-in; + cursor: zoom-in; +} +.mfp-auto-cursor { + .mfp-content { + cursor: auto; + } +} + +.mfp-close, +.mfp-arrow, +.mfp-preloader, +.mfp-counter { + -webkit-user-select:none; + -moz-user-select: none; + user-select: none; +} + +// Hide the image during the loading +.mfp-loading { + &.mfp-figure { + display: none; + } +} + +// Helper class that hides stuff +@if $mfp-use-visuallyhidden { + // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden + .mfp-hide { + border: 0 !important; + clip: rect(0 0 0 0) !important; + height: 1px !important; + margin: -1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + width: 1px !important; + } +} @else { + .mfp-hide { + display: none !important; + } +} + + +//////////////////////// +// 3. Appearance +//////////////////////// + +// Preloader and text that displays error messages +.mfp-preloader { + color: $mfp-controls-text-color; + position: absolute; + top: 50%; + width: auto; + text-align: center; + margin-top: -0.8em; + left: 8px; + right: 8px; + z-index: $mfp-z-index-base + 4; + a { + color: $mfp-controls-text-color; + &:hover { + color: $mfp-controls-text-color-hover; + } + } +} + +// Hide preloader when content successfully loaded +.mfp-s-ready { + .mfp-preloader { + display: none; + } +} + +// Hide content when it was not loaded +.mfp-s-error { + .mfp-content { + display: none; + } +} + +// CSS-reset for buttons +button { + &.mfp-close, + &.mfp-arrow { + overflow: visible; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + display: block; + outline: none; + padding: 0; + z-index: $mfp-z-index-base + 6; + -webkit-box-shadow: none; + box-shadow: none; + } + &::-moz-focus-inner { + padding: 0; + border: 0 + } +} + + +// Close icon +.mfp-close { + width: 44px; + height: 44px; + line-height: 44px; + + position: absolute; + right: 0; + top: 0; + text-decoration: none; + text-align: center; + opacity: $mfp-controls-opacity; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})"); + } + padding: 0 0 18px 10px; + color: $mfp-controls-color; + + font-style: normal; + font-size: 28px; + font-family: $serif; + + &:hover, + &:focus { + opacity: 1; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{1*100})"); + } + } + + &:active { + top: 1px; + } +} +.mfp-close-btn-in { + .mfp-close { + color: $mfp-inner-close-icon-color; + } +} +.mfp-image-holder, +.mfp-iframe-holder { + .mfp-close { + color: $mfp-controls-color; + right: -6px; + text-align: right; + padding-right: 6px; + width: 100%; + } +} + +// "1 of X" counter +.mfp-counter { + position: absolute; + top: 0; + right: 0; + color: $mfp-controls-text-color; + font-size: 12px; + line-height: 18px; +} + +// Navigation arrows +@if $mfp-include-arrows { + .mfp-arrow { + position: absolute; + opacity: $mfp-controls-opacity; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})"); + } + margin: 0; + top: 50%; + margin-top: -55px; + padding: 0; + width: 90px; + height: 110px; + -webkit-tap-highlight-color: rgba(0,0,0,0); + &:active { + margin-top: -54px; + } + &:hover, + &:focus { + opacity: 1; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{1*100})"); + } + } + &:before, + &:after, + .mfp-b, + .mfp-a { + content: ''; + display: block; + width: 0; + height: 0; + position: absolute; + left: 0; + top: 0; + margin-top: 35px; + margin-left: 35px; + border: medium inset transparent; + } + + &:after, + .mfp-a { + + border-top-width: 13px; + border-bottom-width: 13px; + top:8px; + } + + &:before, + .mfp-b { + border-top-width: 21px; + border-bottom-width: 21px; + opacity: 0.7; + } + + } + + .mfp-arrow-left { + left: 0; + + &:after, + .mfp-a { + border-right: 17px solid $mfp-controls-color; + margin-left: 31px; + } + &:before, + .mfp-b { + margin-left: 25px; + border-right: 27px solid $mfp-controls-border-color; + } + } + + .mfp-arrow-right { + right: 0; + &:after, + .mfp-a { + border-left: 17px solid $mfp-controls-color; + margin-left: 39px + } + &:before, + .mfp-b { + border-left: 27px solid $mfp-controls-border-color; + } + } +} + + + +// Iframe content type +@if $mfp-include-iframe-type { + .mfp-iframe-holder { + padding-top: $mfp-iframe-padding-top; + padding-bottom: $mfp-iframe-padding-top; + .mfp-content { + line-height: 0; + width: 100%; + max-width: $mfp-iframe-max-width; + } + .mfp-close { + top: -40px; + } + } + .mfp-iframe-scaler { + width: 100%; + height: 0; + overflow: hidden; + padding-top: $mfp-iframe-ratio * 100%; + iframe { + position: absolute; + display: block; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: $mfp-shadow; + background: $mfp-iframe-background; + } + } +} + + + +// Image content type +@if $mfp-include-image-type { + + /* Main image in popup */ + img { + &.mfp-img { + width: auto; + max-width: 100%; + height: auto; + display: block; + line-height: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom; + margin: 0 auto; + } + } + + /* The shadow behind the image */ + .mfp-figure { + line-height: 0; + &:after { + content: ''; + position: absolute; + left: 0; + top: $mfp-image-padding-top; + bottom: $mfp-image-padding-bottom; + display: block; + right: 0; + width: auto; + height: auto; + z-index: -1; + box-shadow: $mfp-shadow; + background: $mfp-image-background; + } + small { + color: $mfp-caption-subtitle-color; + display: block; + font-size: 12px; + line-height: 14px; + } + figure { + margin: 0; + } + figcaption { + margin-top: 0; + margin-bottom: 0; // reset for bottom spacing + } + } + .mfp-bottom-bar { + margin-top: -$mfp-image-padding-bottom + 4; + position: absolute; + top: 100%; + left: 0; + width: 100%; + cursor: auto; + } + .mfp-title { + text-align: left; + line-height: 18px; + color: $mfp-caption-title-color; + word-wrap: break-word; + padding-right: 36px; // leave some space for counter at right side + } + + .mfp-image-holder { + .mfp-content { + max-width: 100%; + } + } + + .mfp-gallery { + .mfp-image-holder { + .mfp-figure { + cursor: pointer; + } + } + } + + + @if $mfp-include-mobile-layout-for-image { + @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) { + /** + * Remove all paddings around the image on small screen + */ + .mfp-img-mobile { + .mfp-image-holder { + padding-left: 0; + padding-right: 0; + } + img { + &.mfp-img { + padding: 0; + } + } + .mfp-figure { + // The shadow behind the image + &:after { + top: 0; + bottom: 0; + } + small { + display: inline; + margin-left: 5px; + } + } + .mfp-bottom-bar { + background: rgba(0,0,0,0.6); + bottom: 0; + margin: 0; + top: auto; + padding: 3px 5px; + position: fixed; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + &:empty { + padding: 0; + } + } + .mfp-counter { + right: 5px; + top: 3px; + } + .mfp-close { + top: 0; + right: 0; + width: 35px; + height: 35px; + line-height: 35px; + background: rgba(0, 0, 0, 0.6); + position: fixed; + text-align: center; + padding: 0; + } + } + } + } +} + + + +// Scale navigation arrows and reduce padding from sides +@media all and (max-width: 900px) { + .mfp-arrow { + -webkit-transform: scale(0.75); + transform: scale(0.75); + } + .mfp-arrow-left { + -webkit-transform-origin: 0; + transform-origin: 0; + } + .mfp-arrow-right { + -webkit-transform-origin: 100%; + transform-origin: 100%; + } + .mfp-container { + padding-left: $mfp-popup-padding-left-mobile; + padding-right: $mfp-popup-padding-left-mobile; + } +} + + + +// IE7 support +// Styles that make popup look nicier in old IE +@if $mfp-IE7support { + .mfp-ie7 { + .mfp-img { + padding: 0; + } + .mfp-bottom-bar { + width: 600px; + left: 50%; + margin-left: -300px; + margin-top: 5px; + padding-bottom: 5px; + } + .mfp-container { + padding: 0; + } + .mfp-content { + padding-top: 44px; + } + .mfp-close { + top: 0; + right: 0; + padding-top: 0; + } + } +} diff --git a/_sass/vendor/magnific-popup/_settings.scss b/_sass/vendor/magnific-popup/_settings.scss new file mode 100644 index 0000000..caaca02 --- /dev/null +++ b/_sass/vendor/magnific-popup/_settings.scss @@ -0,0 +1,46 @@ +//////////////////////// +// Settings // +//////////////////////// + +// overlay +$mfp-overlay-color: #000; // 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 + +// spacing +$mfp-popup-padding-left: 8px; // Padding from left and from right side +$mfp-popup-padding-left-mobile: 6px; // Same as above, but is applied when width of window is less than 800px + +$mfp-z-index-base: 1040; // Base z-index of popup + +// controls +$mfp-include-arrows: true; // Include styles for nav arrows +$mfp-controls-opacity: 1; // Opacity of controls +$mfp-controls-color: #fff; // Color of controls +$mfp-controls-border-color: #fff; // Border color of controls +$mfp-inner-close-icon-color: #fff; // Color of close button when inside +$mfp-controls-text-color: #ccc; // Color of preloader and "1 of X" indicator +$mfp-controls-text-color-hover: #fff; // Hover color of preloader and "1 of X" indicator +$mfp-IE7support: true; // Very basic IE7 support + +// Iframe-type options +$mfp-include-iframe-type: true; // Enable Iframe-type popups +$mfp-iframe-padding-top: 40px; // Iframe padding top +$mfp-iframe-background: #000; // Background color of iframes +$mfp-iframe-max-width: 900px; // Maximum width of iframes +$mfp-iframe-ratio: 9/16; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.) + +// Image-type options +$mfp-include-image-type: true; // Enable Image-type popups +$mfp-image-background: #444 !default; +$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 + +// Image caption options +$mfp-caption-title-color: #f3f3f3; // Caption title color +$mfp-caption-subtitle-color: #bdbdbd; // Caption subtitle color +.mfp-counter { font-family: $serif; } // Caption font family + +// A11y +$mfp-use-visuallyhidden: false; diff --git a/_sass/vendor/susy/_su.scss b/_sass/vendor/susy/_su.scss new file mode 100644 index 0000000..83386ad --- /dev/null +++ b/_sass/vendor/susy/_su.scss @@ -0,0 +1,4 @@ +// Su +// == + +@import 'susy/su'; diff --git a/_sass/vendor/susy/_susy.scss b/_sass/vendor/susy/_susy.scss new file mode 100644 index 0000000..224e98a --- /dev/null +++ b/_sass/vendor/susy/_susy.scss @@ -0,0 +1,4 @@ +// Susy +// ==== + +@import 'susy/language/susy'; diff --git a/_sass/vendor/susy/_susyone.scss b/_sass/vendor/susy/_susyone.scss new file mode 100644 index 0000000..5b934c6 --- /dev/null +++ b/_sass/vendor/susy/_susyone.scss @@ -0,0 +1,4 @@ +// Susy +// ==== + +@import 'susy/language/susyone'; diff --git a/_sass/vendor/susy/susy/_su.scss b/_sass/vendor/susy/susy/_su.scss new file mode 100644 index 0000000..a145415 --- /dev/null +++ b/_sass/vendor/susy/susy/_su.scss @@ -0,0 +1,7 @@ +// Su +// == + +@import "su/utilities"; +@import "su/settings"; +@import "su/validation"; +@import "su/grid"; diff --git a/_sass/vendor/susy/susy/language/_susy.scss b/_sass/vendor/susy/susy/language/_susy.scss new file mode 100644 index 0000000..0ee9cae --- /dev/null +++ b/_sass/vendor/susy/susy/language/_susy.scss @@ -0,0 +1,24 @@ +// Susy Next Syntax +// ================ + +$susy-version: 2.1; + +@import "../su"; +@import "../output/float"; + +@import "susy/settings"; +@import "susy/validation"; +@import "susy/grids"; +@import "susy/box-sizing"; +@import "susy/context"; +@import "susy/background"; +@import "susy/container"; +@import "susy/span"; +@import "susy/gutters"; +@import "susy/isolate"; +@import "susy/gallery"; +@import "susy/rows"; +@import "susy/margins"; +@import "susy/padding"; +@import "susy/bleed"; +@import "susy/breakpoint-plugin"; diff --git a/_sass/vendor/susy/susy/language/_susyone.scss b/_sass/vendor/susy/susy/language/_susyone.scss new file mode 100644 index 0000000..a783d3a --- /dev/null +++ b/_sass/vendor/susy/susy/language/_susyone.scss @@ -0,0 +1,13 @@ +// --------------------------------------------------------------------------- +// Partials + +$susy-version: 1.5; + +@import "susyone/settings"; +@import "susyone/functions"; +@import "susyone/grid"; +@import "susyone/isolation"; +@import "susyone/padding"; +@import "susyone/margin"; +@import "susyone/media"; +@import "susyone/background"; diff --git a/_sass/vendor/susy/susy/language/susy/_background.scss b/_sass/vendor/susy/susy/language/susy/_background.scss new file mode 100644 index 0000000..d39dc72 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_background.scss @@ -0,0 +1,385 @@ +// Background Grid Syntax +// ====================== + +$susy-overlay-grid-head-exists: false; + + +// Show Grid/s +// ----------- +// Show grid on any element using either background or overlay. +// - [$grid] : +@mixin show-grid( + $grid: $susy +) { + $inspect: $grid; + $_output: debug-get(output, $grid); + + @include susy-inspect(show-grid, $inspect); + @if $_output == overlay and susy-get(debug image, $grid) != hide { + @include overlay-grid($grid); + } @else { + @include background-grid($grid); + } +} + +@mixin show-grids( + $grid: $susy +) { + @include show-grid($grid); +} + +// Background Grid +// --------------- +// Show a grid background on any element. +// - [$grid] : +@mixin background-grid( + $grid: $susy +) { + $inspect : $grid; + $_output : get-background($grid); + + @if length($_output) > 0 { + $_flow: susy-get(flow, $grid); + + $_image: (); + @each $name, $layer in map-get($_output, image) { + $_direction: if($name == baseline, to bottom, to to($_flow)); + $_image: append($_image, linear-gradient($_direction, $layer), comma); + } + $_output: map-merge($_output, (image: $_image)); + + @include background-grid-output($_output...); + @include susy-inspect(background-grid, $inspect); + } +} + + +// Overlay Grid +// ------------ +// Generate an icon to trigger grid-overlays on any given elements. +// $grids... : [] [, ]* +@mixin overlay-grid ( + $grid: $susy +) { + @if not($susy-overlay-grid-head-exists) { + @at-root head { @include overlay-head($grid); } + @at-root head:before { @include overlay-trigger; } + @at-root head:hover { @include overlay-trigger-hover; } + $susy-overlay-grid-head-exists: true !global; + } + + head:hover ~ &, + head:hover ~ body & { + position: relative; + &:before { + @include grid-overlay-base; + @include background-grid($grid); + } + } +} + + +// [Private] Overlay Trigger +// ------------------------- +@mixin overlay-trigger { + content: "|||"; + display: block; + padding: 5px 10px; + font: { + family: sans-serif; + size: 16px; + weight: bold; + } +} + + +// [Private] Overlay Trigger Hover +// ------------------------------- +@mixin overlay-trigger-hover { + background: rgba(white, .5); + color: red; +} + + +// [Private] Overlay Head +// ---------------------- +// styles to create grid overlay toggle +@mixin overlay-head ( + $grid: $susy +) { + $_toggle: debug-get(toggle, $grid); + $_horz: null; + $_vert: null; + + @each $side in $_toggle { + $_horz: if($side == left or $side == right, $side, $_horz); + $_vert: if($side == top or $side == bottom, $side, $_vert); + } + + display: block; + position: fixed; + #{$_horz}: 10px; + #{$_vert}: 10px; + z-index: 999; + color: #333; + background: rgba(white, .25); +} + + +// [Private] Grid Overlay Base +// --------------------------- +// Base styles for generating a grid overlay +@mixin grid-overlay-base() { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + content: " "; + z-index: 998; +} + + +// Get Symmetrical Background +// -------------------------- +// - $grid: +@function get-background-sym( + $grid +) { + $grid : parse-grid($grid); + $_gutters : susy-get(gutters, $grid); + $_column-width : susy-get(column-width, $grid); + $_math : susy-get(math, $grid); + + $_color : debug-get(color); + $_trans : transparent; + $_light : lighten($_color, 15%); + + $_end : 1 + $_gutters; + $_after : percentage(1/$_end); + $_stops : (); + $_size : span(1 $grid wide); + + @if is-inside($grid) { + $_stops: $_color, $_light; + } @else if is-split($grid) { + $_split: $_gutters/2; + $_before: percentage($_split/$_end); + $_after: percentage((1 + $_split)/$_end); + $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after; + } @else { + $_stops: $_color, $_light $_after, $_trans $_after; + } + + @if $_math == static { + $_size: valid-column-math($_math, $_column-width) * $_end; + } + + $_output: ( + image: (columns: $_stops), + size: $_size, + ); + + @return $_output; +} + + +// Get Asymmetrical Inside +// ----------------------- +// - $grid: +@function get-asym-inside( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + @if $location == 1 { + $this-stop: append($this-stop, $_color, comma); + } @else { + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, $_color $start, comma); + } + + @if $location == susy-count($_columns) { + $this-stop: append($this-stop, $_light, comma); + } @else { + $_end: parse-span(1 at ($location + 1) $grid); + $_end: get-isolation($_end); + $this-stop: append($this-stop, $_light $_end, comma); + } + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Split +// ---------------------- +// - $grid: +@function get-asym-split( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, transparent $start, comma); + $this-stop: append($this-stop, $_color $start, comma); + + $_end: $start + span(1 at $location $grid); + $this-stop: append($this-stop, $_light $_end, comma); + $this-stop: append($this-stop, transparent $_end, comma); + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Outside +// ------------------------ +// - $grid: +@function get-asym-outside( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_trans : transparent; + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + @if $location == 1 { + $this-stop: append($this-stop, $_color, comma); + } @else { + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, $_color $start, comma); + } + + @if $location == susy-count($_columns) { + $this-stop: append($this-stop, $_light, comma); + } @else { + $gutter: get-span-width(first $location $grid); + + $_end: parse-span(1 at ($location + 1) $grid); + $_end: get-isolation($_end); + + $gutter: $_light $gutter, $_trans $gutter, $_trans $_end; + $this-stop: join($this-stop, $gutter, comma); + } + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Background +// --------------------------- +// - $grid: +@function get-background-asym( + $grid +) { + $_stops: (); + + @if is-inside($grid) { + $_stops: get-asym-inside($grid); + } @else if is-split($grid) { + $_stops: get-asym-split($grid); + } @else { + $_stops: get-asym-outside($grid); + } + + @return (image: (columns: $_stops)); +} + + +// Get Background +// -------------- +// - $grid: +@function get-background( + $grid +) { + $grid : parse-grid($grid); + $_show : susy-get(debug image, $grid); + $_return : (); + + @if $_show and $_show != 'hide' { + $_columns: susy-get(columns, $grid); + + @if $_show != 'show-baseline' { + $_sym: is-symmetrical($_columns); + $_return: if($_sym, get-background-sym($grid), get-background-asym($grid)); + $_return: map-merge($_return, (clip: content-box)); + } + + @if $_show != 'show-columns' + and global-variable-exists(base-line-height) + and type-of($base-line-height) == 'number' + and not unitless($base-line-height) { + $_color: variable-exists('grid-background-baseline-color'); + $_color: if($_color, $grid-background-baseline-color, #000); + + $_image: map-get($_return, image); + $_size: map-get($_return, size); + $_baseline: (baseline: ($_color 1px, transparent 1px)); + $_baseline-size: 100% $base-line-height; + + $_return: map-merge($_return, ( + image: if($_image, map-merge($_image, $_baseline), $_baseline), + size: if($_size, ($_size, $_baseline-size), $_baseline-size), + )); + + @if $_show == 'show' { + $_clip: map-get($_return, clip); + $_return: map-merge($_return, (clip: join($_clip, border-box, comma))); + } + } @else if $_show == 'show-baseline' { + @warn 'Please provide a $base-line-height with the desired height and units'; + } + } + + @if map-get($_return, image) { + $_return: map-merge($_return, (flow: susy-get(flow, $grid))); + } + + @return $_return; +} + + +// Get Debug +// --------- +// Return the value of a debug setting +// - $key: +@function debug-get( + $key, + $grid: $susy +) { + $key: join(debug, $key, space); + @return susy-get($key, $grid); +} diff --git a/_sass/vendor/susy/susy/language/susy/_bleed.scss b/_sass/vendor/susy/susy/language/susy/_bleed.scss new file mode 100644 index 0000000..8ef5974 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_bleed.scss @@ -0,0 +1,200 @@ +// Bleed Syntax +// ============ + +// Bleed +// ----- +// Add negative margins, and equal positive padding to create bleed. +// - $bleed : +@mixin bleed( + $bleed: 0 gutter() +) { + $inspect : $bleed; + $output : get-bleed($bleed); + + @if susy-get(global-box-sizing) != content-box { + $output: map-merge((box-sizing: content-box), $output); + } + + @include susy-inspect(bleed, $inspect); + @include output($output); +} + + +// Bleed-x +// ------- +// Shortcut for horizontal bleed. +// - $bleed : +@mixin bleed-x( + $bleed: gutter() +) { + $bleed : parse-span($bleed); + $trbl : susy-get(span, $bleed); + + @if length($trbl) == 1 { + $bleed: map-merge($bleed, (span: 0 nth($trbl, 1))); + } @else if length($trbl) == 2 { + $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1))); + } @else { + @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.'; + } + + @include bleed($bleed); +} + + +// Bleed-y +// ------- +// Shortcut for vertical bleed. +// - $bleed : +@mixin bleed-y( + $bleed: if(function-exists(rhythm), rhythm(1), 1em) +) { + $bleed : parse-span($bleed); + $trbl : susy-get(span, $bleed); + + @if length($trbl) == 1 { + $bleed: map-merge($bleed, (span: nth($trbl, 1) 0)); + } @else if length($trbl) == 2 { + $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0)); + } @else { + @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.'; + } + + @include bleed($bleed); +} + + +// Get Bleed +// --------- +// Return bleed output values +// - $bleed: +@function get-bleed( + $bleed +) { + $bleed : map-merge((spread: wide), parse-span($bleed)); + $trbl : susy-get(span, $bleed); + $short : null; + $output : (); + + @for $i from 1 through length($trbl) { + $this: nth($trbl, $i); + $new: (); + $margin: null; + $padding: null; + $padding-x: null; + + @if $this > 0 { + $this: map-merge($bleed, (span: $this)); + $margin: span($this); + $padding: $margin; + $padding-x: $padding; + } + + @if $margin and $margin > 0 { + $margin: - $margin; + + @if is-inside($this) { + $gutter: gutter($this); + $join: if($gutter and comparable($padding, $gutter), true, false); + $padding-x: if($join and $padding > 0, $padding + $gutter, $padding); + } + } + + @if $i == 1 { + $new: ( + margin-top: $margin, + padding-top: $padding, + margin-right: $margin, + padding-right: $padding-x, + margin-bottom: $margin, + padding-bottom: $padding, + margin-left: $margin, + padding-left: $padding-x, + ); + } @else if $i == 2 { + $new: ( + margin-right: $margin, + padding-right: $padding-x, + margin-left: $margin, + padding-left: $padding-x, + ); + } @else if $i == 3 { + $new: ( + margin-bottom: $margin, + padding-bottom: $padding, + ); + } @else if $i == 4 { + $new: ( + margin-left: $margin, + padding-left: $padding-x, + ); + } + + $output: map-merge($output, $new); + } + + @each $prop, $value in $output { + $output: if($value == 0, map-merge($output, ($prop: null)), $output); + } + + @return bleed-shorthand($output); +} + +// Bleed Shorthand +// --------------- +// Convert bleed output into shorthand when possible. +// - $bleed: +@function bleed-shorthand( + $bleed +) { + $margin: (); + $padding: (); + $return: (); + + @each $key, $value in $bleed { + @if str-index($key, margin) { + $margin: map-merge($margin, ($key: $value)); + } @else if str-index($key, padding) > 0 { + $padding: map-merge($padding, ($key: $value)); + } + } + + $props: ( + margin: $margin, + padding: $padding, + ); + + @each $name, $map in $props { + $four: if(length(map-keys($map)) == 4, true, false); + $null: if(index(map-values($map), null), true, false); + + @if $four and not($null) { + $top: map-get($map, '#{$name}-top'); + $right: map-get($map, '#{$name}-right'); + $bottom: map-get($map, '#{$name}-bottom'); + $left: map-get($map, '#{$name}-left'); + + $tb: if($top == $bottom, $top, null); + $rl: if($right == $left, $right, null); + $all: if($tb == $rl, $tb, null); + + $new: if($all, $all, null); + + @if not($new) { + @if $tb and $rl { + $new: $tb $rl; + } @else if $rl { + $new: $top $rl $bottom; + } @else { + $new: $top $right $bottom $left; + } + } + + $return: map-merge($return, ($name: $new)); + } @else { + $return: map-merge($return, $map); + } + } + + @return $return; +} diff --git a/_sass/vendor/susy/susy/language/susy/_box-sizing.scss b/_sass/vendor/susy/susy/language/susy/_box-sizing.scss new file mode 100644 index 0000000..f551241 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_box-sizing.scss @@ -0,0 +1,47 @@ +// Susy Box Sizing +// ================= + +// Global Box Sizing +// ----------------- +// Set a box model globally on all elements. +// - [$box]: border-box | content-box +// - [$inherit]: true | false +@mixin global-box-sizing( + $box: susy-get(global-box-sizing), + $inherit: false +) { + $inspect: $box; + + @if $inherit { + @at-root { + html { @include output((box-sizing: $box)); } + *, *:before, *:after { box-sizing: inherit; } + } + } @else { + *, *:before, *:after { @include output((box-sizing: $box)); } + } + + @include susy-inspect(global-box-sizing, $inspect); + @include update-box-model($box); +} + +// Border Box Sizing +// ----------------- +// A legacy shortcut... +// - [$inherit]: true | false +@mixin border-box-sizing( + $inherit: false +) { + @include global-box-sizing(border-box, $inherit); +} + +// Update Box Model +// ---------------- +// PRIVATE: Updates global box model setting +@mixin update-box-model( + $box +) { + @if $box != susy-get(global-box-sizing) { + @include susy-set(global-box-sizing, $box); + } +} diff --git a/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss b/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss new file mode 100644 index 0000000..30de288 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss @@ -0,0 +1,185 @@ +// Breakpoint Integration +// ====================== + +$susy-media: () !default; +$susy-media-fallback: false !default; + +$_susy-media-context: (); + + +// Susy Breakpoint +// --------------- +// Change grids at different media query breakpoints. +// - $query : [] | | +// - $layout : +// - $no-query : | +@mixin susy-breakpoint( + $query, + $layout: false, + $no-query: $susy-media-fallback +) { + @include susy-media-router($query, $no-query) { + @if $layout { + @include with-layout($layout) { + @content; + } + } @else { + @content; + } + } +} + + +// Susy Media +// ---------- +// - $query: [] | +// - $no-query: | +@mixin susy-media( + $query, + $no-query: $susy-media-fallback +) { + $old-context: $_susy-media-context; + $name: if(map-has-key($susy-media, $query), $query, null); + $query: susy-get-media($query); + $query: susy-parse-media($query); + + @include susy-media-context($query, $name); + + @if $no-query and type-of($no-query) != string { + @content; + } @else { + @media #{susy-render-media($query)} { + @content; + } + + @if type-of($no-query) == string { + #{$no-query} & { + @content; + } + } + } + + @include susy-media-context($old-context, $clean: true); +} + + +// Media Router +// ------------ +// Rout media arguments to the correct mixin. +@mixin susy-media-router( + $query, + $no-query: $susy-media-fallback +) { + @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) { + @include breakpoint($query, $no-query) { + @content; + } + } @else { + @include susy-media($query, $no-query) { + @content; + } + } +} + + +// Update Context +// ------------- +// Set the new media context +@mixin susy-media-context( + $query, + $name: null, + $clean: false +) { + $query: map-merge((name: $name), $query); + + @if $clean { + $_susy-media-context: $query !global; + } @else { + $_susy-media-context: map-merge($_susy-media-context, $query) !global; + } +} + + +// Media Context +// ------------- +// Return the full media context, or a single media property (e.g. min-width) +@function susy-media-context( + $property: false +) { + @if $property { + @return map-get($_susy-media-context, $property); + } @else { + @return $_susy-media-context; + } +} + + +// Get Media +// --------- +// Return a named media-query from $susy-media. +// - $name: +@function susy-get-media( + $name +) { + @if map-has-key($susy-media, $name) { + $map-value: map-get($susy-media, $name); + @if ($name == $map-value) { + $name: $map-value; + } @else { + $name: susy-get-media($map-value); + } + } + + @return $name; +} + + +// Render Media +// ------------ +// Build a media-query string from various media settings +@function susy-render-media( + $query +) { + $output: null; + @each $property, $value in $query { + $string: null; + + @if $property == media { + $string: $value; + } @else { + $string: '(#{$property}: #{$value})'; + } + + $output: if($output, '#{$output} and #{$string}', $string); + } + + @return $output; +} + + +// Parse Media +// ----------- +// Return parsed media-query settings based on shorthand +@function susy-parse-media( + $query +) { + $mq: null; + @if type-of($query) == map { + $mq: $query; + } @else if type-of($query) == number { + $mq: (min-width: $query); + } @else if type-of($query) == list and length($query) == 2 { + @if type-of(nth($query, 1)) == number { + $mq: ( + min-width: min($query...), + max-width: max($query...), + ); + } @else { + $mq: (nth($query, 1): nth($query, 2)); + } + } @else { + $mq: (media: '#{$query}'); + } + + @return $mq; +} diff --git a/_sass/vendor/susy/susy/language/susy/_container.scss b/_sass/vendor/susy/susy/language/susy/_container.scss new file mode 100644 index 0000000..e5f4a85 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_container.scss @@ -0,0 +1,81 @@ +// Container Syntax +// ================ + +// Container [mixin] +// ----------------- +// Set a container element +// - [$layout] : +@mixin container( + $layout: $susy +) { + $inspect : $layout; + $layout : parse-grid($layout); + + $_width : get-container-width($layout); + $_justify : parse-container-position(susy-get(container-position, $layout)); + $_property : if(susy-get(math, $layout) == static, width, max-width); + + $_box : susy-get(box-sizing, $layout); + + @if $_box { + @include output((box-sizing: $_box)); + } + + @include susy-inspect(container, $inspect); + @include float-container($_width, $_justify, $_property); + @include show-grid($layout); +} + +// Container [function] +// -------------------- +// Return container width +// - [$layout] : +@function container( + $layout: $susy +) { + $layout: parse-grid($layout); + @return get-container-width($layout); +} + +// Get Container Width +// ------------------- +// Calculate the container width +// - [$layout]: +@function get-container-width( + $layout: $susy +) { + $layout : parse-grid($layout); + $_width : susy-get(container, $layout); + $_column-width : susy-get(column-width, $layout); + $_math : susy-get(math, $layout); + + @if not($_width) or $_width == auto { + @if valid-column-math($_math, $_column-width) { + $_columns : susy-get(columns, $layout); + $_gutters : susy-get(gutters, $layout); + $_spread : if(is-split($layout), wide, narrow); + $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width; + } @else { + $_width: 100%; + } + } + + @return $_width; +} + +// Parse Container Position +// ------------------------ +// Parse the $container-position into margin values. +// - [$justify] : left | center | right | [] +@function parse-container-position( + $justify: map-get($susy-defaults, container-position) +) { + $_return: if($justify == left, 0, auto) if($justify == right, 0, auto); + + @if not(index(left right center, $justify)) { + $_return: nth($justify, 1); + $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return); + } + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/language/susy/_context.scss b/_sass/vendor/susy/susy/language/susy/_context.scss new file mode 100644 index 0000000..52e12a6 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_context.scss @@ -0,0 +1,36 @@ +// Context Syntax +// ============== + +// Nested [function] +// ----------------- +// Return a subset grid for nested context. +// - $context : +@function nested( + $context +) { + $context : parse-span($context); + $span : susy-get(span, $context); + $location : get-location($context); + $columns : susy-get(columns, $context); + + @return susy-slice($span, $location, $columns); +} + +// Nested [mixin] +// -------------- +// Use a subset grid for a nested context +// - $context : +// - @content : +@mixin nested( + $context +) { + $inspect : $context; + $context : parse-span($context); + $old : susy-get(columns); + $susy : map-merge($susy, (columns: nested($context))) !global; + + @include susy-inspect(nested, $inspect); + @content; + + $susy : map-merge($susy, (columns: $old)) !global; +} diff --git a/_sass/vendor/susy/susy/language/susy/_gallery.scss b/_sass/vendor/susy/susy/language/susy/_gallery.scss new file mode 100644 index 0000000..e59b9a0 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_gallery.scss @@ -0,0 +1,94 @@ +// Gallery Syntax +// ============== + +// Gallery +// ------- +// Create an isolated gallery +// - $span : +// - [$selector] : child | of-type +@mixin gallery( + $span, + $selector: child +) { + $inspect : $span; + $span : parse-span($span); + $span : map-merge($span, (location: 1)); + + $n : susy-get(span, $span); + $columns : susy-get(columns, $span); + $context : susy-count($columns); + $flow : susy-get(flow, $span); + + $inside : is-inside($span); + $from : from($flow); + $line : floor($context / $n); + $symmetrical : is-symmetrical($columns); + + $output: ( + width : null, + float : from, + margin-before : null, + margin-after : null, + padding-before : null, + padding-after : null, + flow : $flow, + ); + + @if $inside { + $gutters: get-gutters($span); + $output: map-merge($output, ( + padding-before: map-get($gutters, before), + padding-after: map-get($gutters, after), + )); + } + + @if $symmetrical { + $output: map-merge($output, (width: get-span-width($span))); + } + + $box : susy-get(box-sizing, $span); + $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false); + + @include susy-inspect(gallery, $inspect); + + // Collective Output + @if $box == border-box or ($inside and not($box) and not($global-box)) { + @include output((box-sizing: border-box)); + } @else if $box == content-box { + @include output((box-sizing: content-box)); + } + + @include float-span-output($output...); + + // Individual Loop + @for $item from 1 through $line { + $nth: '#{$line}n + #{$item}'; + &:nth-#{$selector}(#{$nth}) { + // Individual Prep + $output: ( + width : if($symmetrical, null, get-span-width($span)), + float : null, + margin-before : get-isolation($span), + margin-after : -100%, + padding-before : null, + padding-after : null, + flow : $flow, + ); + + // Individual Output + @include float-span-output($output...); + + @if get-edge($span) == first { + @include break; + @include first($span); + } @else { + @include nobreak; + } + + // Individual Location Increment + $location: get-location($span) + $n; + $location: if($location > $context, 1, $location); + $span: map-merge($span, (location: $location)); + } + } +} diff --git a/_sass/vendor/susy/susy/language/susy/_grids.scss b/_sass/vendor/susy/susy/language/susy/_grids.scss new file mode 100644 index 0000000..4fa72ed --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_grids.scss @@ -0,0 +1,64 @@ +// Grid Syntax +// =========== + + +// Layout +// ------ +// Set a new layout using a shorthand +// - $layout: +// - $clean: boolean +@mixin layout( + $layout, + $clean: false +) { + $inspect : $layout; + $susy : _get-layout($layout, $clean) !global; + + @include susy-inspect(layout, $inspect); +} + + +// Use Grid +// -------- +// Use an arbitrary layout for a section of code +// - $layout: +// - $clean: boolean +@mixin with-layout( + $layout, + $clean: false +) { + $inspect : $layout; + $old : $susy; + $susy : _get-layout($layout, $clean) !global; + + @include susy-inspect(with-layout, $inspect); + + @content; + + $susy: $old !global; +} + + +// Layout +// ------ +// Return a parsed layout map based on shorthand syntax +// - $layout: +@function layout( + $layout: $susy +) { + @return parse-grid($layout); +} + + +// Get Layout +// ---------- +// Return a new layout based on current and given settings +// - $layout: +// - $clean: boolean +@function _get-layout( + $layout, + $clean: false +) { + $layout: layout($layout); + @return if($clean, $layout, _susy-deep-merge($susy, $layout)); +} diff --git a/_sass/vendor/susy/susy/language/susy/_gutters.scss b/_sass/vendor/susy/susy/language/susy/_gutters.scss new file mode 100644 index 0000000..efe7ac2 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_gutters.scss @@ -0,0 +1,154 @@ +// Gutter Syntax +// ============= + + +// Gutters +// ------- +// Set gutters on an element. +// - [$span] : +@mixin gutters( + $span: $susy +) { + $inspect : $span; + $span : parse-gutters($span); + $_gutters : get-gutters($span); + + $_output: ( + before: map-get($_gutters, before), + after: map-get($_gutters, after), + flow: susy-get(flow, $span), + ); + + @include susy-inspect(gutters, $inspect); + + @if is-inside($span) { + @include padding-output($_output...); + } @else { + @include margin-output($_output...); + } +} + +@mixin gutter( + $span: $susy +) { + @include gutters($span); +} + + +// Gutter +// ------ +// Return the width of a gutter. +// - [$span] : +@function gutter( + $span: $susy +) { + $span: parse-gutters($span); + + $_gutters: get-gutters($span); + $_gutters: map-get($_gutters, before) or map-get($_gutters, after); + + @return $_gutters; +} + +@function gutters( + $span: $susy +) { + @return gutter($span); +} + + +// Get Gutter Width +// ---------------- +// Return gutter width. +// - [$context]: +@function get-gutter-width( + $context: $susy +) { + $context : parse-gutters($context); + + $_gutters : susy-get(gutters, $context); + $_gutter : susy-get(gutter-override, $context); + + @if $_gutters and ($_gutters > 0) and not($_gutter) { + $_column-width: susy-get(column-width, $context); + $_math: gutter-math($context); + @if $_math == static { + $_gutter: $_gutters * valid-column-math($_math, $_column-width); + } @else { + $_columns : susy-get(columns, $context); + $_spread : if(is-split($context), wide, susy-get(spread, $context)); + $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread)); + } + } + + $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter); + + @return $_gutter; +} + + +// Get Gutters +// ----------- +// Return before and after gutter values. +// - [$context]: +@function get-gutters( + $context: $susy +) { + $context : parse-gutters($context); + + $_gutter-position : susy-get(gutter-position, $context); + $_gutter : get-gutter-width($context); + + $_return : (before: null, after: null); + + @if is-split($context) and $_gutter { + $_gutter: $_gutter / 2; + $_return: map-merge($_return, (before: $_gutter, after: $_gutter)); + } @else { + $_return: map-merge($_return, ($_gutter-position: $_gutter)); + } + + @return $_return; +} + + +// Is Inside +// --------- +// Returns true if gutters are inside. +// $context: +@function is-inside( + $context +) { + $_inside: inside inside-static; + $_gutter-position: susy-get(gutter-position, $context); + + @return if(index($_inside, $_gutter-position), true, false); +} + + +// Is Split +// -------- +// Returns true if gutters are split. +// $context: +@function is-split( + $context +) { + $_split: split inside inside-static; + $_gutter-position: susy-get(gutter-position, $context); + + @return if(index($_split, $_gutter-position), true, false); +} + + +// Gutter Math +// ----------- +// Return the math to use for gutter calculations +// $context: +@function gutter-math( + $context: $susy +) { + $_return : susy-get(math, $context); + $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return); + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/language/susy/_isolate.scss b/_sass/vendor/susy/susy/language/susy/_isolate.scss new file mode 100644 index 0000000..7ddfd7f --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_isolate.scss @@ -0,0 +1,77 @@ +// Isolation Syntax +// ================ + + +// Isolate [Mixin] +// --------------- +// Set isolation as an override. +// - $location: +@mixin isolate( + $isolate: 1 +) { + $inspect: $isolate; + + $output: ( + push: isolate($isolate), + flow: susy-get(flow, $isolate), + ); + + @include susy-inspect(isolate, $inspect); + @include isolate-output($output...); +} + + +// Isolate [function] +// ------------------ +// Return an isolation offset width. +// - $location: +@function isolate( + $isolate: 1 +) { + $isolate: parse-span($isolate); + $isolation: susy-get(span, $isolate); + + @if $isolation and not(get-location($isolate)) { + $new: ( + span: null, + location: $isolation, + ); + $isolate: map-merge($isolate, $new); + } + + @return get-isolation($isolate); +} + + +// Get Isolation +// ------------- +// Return the isolation offset width +// - $input: +@function get-isolation( + $input +) { + $location : get-location($input); + $columns : susy-get(columns, $input); + $width : null; + + @if type-of($location) == number and not(unitless($location)) { + $width: $location; + } @else if $location { + $push: $location - 1; + @if $push > 0 { + $push: map-merge($input, ( + span: $push, + location: 1, + spread: wide, + )); + $width: get-span-width($push); + } + } + + @if susy-get(gutter-position, $input) == split + and susy-get(gutters, $input) > 0 { + $width: if($width == null, gutters($input), $width + gutters($input)); + } + + @return $width or 0; +} diff --git a/_sass/vendor/susy/susy/language/susy/_margins.scss b/_sass/vendor/susy/susy/language/susy/_margins.scss new file mode 100644 index 0000000..cb36839 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_margins.scss @@ -0,0 +1,94 @@ +// Margin Syntax +// ============= + +// Pre +// --- +// Add spanning-margins before an element. +// - $span : +@mixin pre( + $span +) { + $inspect: $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $gutter : gutter($span); + $span : span($span); + $width : if($split and $gutter, $span + $gutter, $span); + + @include susy-inspect(pre, $inspect); + @include margin-output($width, null, $flow); +} + +// Post +// ---- +// Add spanning-margins after an element. +// - $span : +@mixin post( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $width : if($split, span($span) + gutter($span), span($span)); + + @include susy-inspect(post, $inspect); + @include margin-output(null, $width, $flow); +} + +// Push +// ---- +// Simple synonymn for pre. +// - $span : +@mixin push( + $span +) { + @include pre($span); +} + +// Pull +// ---- +// Add negative spanning-margins before an element. +// - $span : +@mixin pull( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); + + @include susy-inspect(pull, $inspect); + @include margin-output($width, null, $flow); +} + +// Squish +// ------ +// Add spanning-margins before and after an element. +// - $pre : +// - [$post] : +@mixin squish( + $pre, + $post: false +) { + $inspect : ($pre, $post); + $pre : map-merge((spread: wide), parse-span($pre)); + + @if $post { + $post: map-merge((spread: wide), parse-span($post)); + } @else { + $span: susy-get(span, $pre); + @if length($span) > 1 { + $pre: map-merge($pre, (span: nth($span, 1))); + $post: map-merge($pre, (span: nth($span, 2))); + } @else { + $post: $pre; + } + } + + @include susy-inspect(squish, $inspect); + @include pre($pre); + @include post($post); +} diff --git a/_sass/vendor/susy/susy/language/susy/_padding.scss b/_sass/vendor/susy/susy/language/susy/_padding.scss new file mode 100644 index 0000000..cdf75c8 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_padding.scss @@ -0,0 +1,74 @@ +// Padding Syntax +// ============== + +// Prefix +// ------ +// Add spanning-padding before an element. +// - $span : +@mixin prefix( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $width : span($span); + + @if is-inside($span) { + $gutter: gutter($span); + $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); + } + + @include susy-inspect(prefix, $inspect); + @include padding-output($width, null, $flow); +} + +// Suffix +// ------ +// Add spanning-padding after an element. +// - $span : +@mixin suffix( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $width : span($span); + + @if is-inside($span) { + $gutter: gutter($span); + $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); + } + + @include susy-inspect(suffix, $inspect); + @include padding-output(null, $width, $flow); +} + +// Pad +// --- +// Add spanning-padding before and after an element. +// - $pre : +// - [$post] : +@mixin pad( + $pre, + $post: false +) { + $inspect : ($pre, $post); + $pre : map-merge((spread: wide), parse-span($pre)); + + @if $post { + $post: map-merge((spread: wide), parse-span($post)); + } @else { + $span: susy-get(span, $pre); + @if length($span) > 1 { + $pre: map-merge($pre, (span: nth($span, 1))); + $post: map-merge($pre, (span: nth($span, 2))); + } @else { + $post: $pre; + } + } + + @include susy-inspect(pad, $inspect); + @include prefix($pre); + @include suffix($post); + +} diff --git a/_sass/vendor/susy/susy/language/susy/_rows.scss b/_sass/vendor/susy/susy/language/susy/_rows.scss new file mode 100644 index 0000000..d726431 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_rows.scss @@ -0,0 +1,138 @@ +// Row Start & End +// =============== + +// Break +// ----- +// Apply to any element that should force a line break. +@mixin break { + @include output((clear: both)); +} + + +// NoBreak +// ------- +// Cancel the break() effect, e.g. when using media queries. +@mixin nobreak { + @include output((clear: none)); +} + + +// Full +// ---- +// - [$context]: +@mixin full( + $context: $susy +) { + $inspect : $context; + @include susy-inspect(full, $inspect); + @include span(full of parse-grid($context) break); +} + + +// First +// ----- +// - [$context]: +@mixin first( + $context: $susy +) { + $inspect : $context; + $context : parse-grid($context); + $flow : susy-get(flow, $context); + + @include susy-inspect(first, $inspect); + @if not(is-split($context)) { + @include float-first($flow); + } +} + +@mixin alpha( + $context: $susy +) { + @include first($context); +} + + +// Last +// ---- +// - [$context]: +@mixin last( + $context: $susy +) { + $inspect : $context; + $context : parse-grid($context); + + @include susy-inspect(last, $inspect); + + $output: ( + flow: susy-get(flow, $context), + last-flow: susy-get(last-flow, $context), + margin: if(is-split($context), null, 0), + ); + + @include float-last($output...); +} + +@mixin omega( + $context: $susy +) { + @include last($context); +} + + +// Get Edge +// -------- +// Calculate edge value based on location, if possible +@function get-edge( + $span +) { + $span : parse-span($span); + $edge : susy-get(edge, $span); + + @if not($edge) { + $count: susy-count(susy-get(columns, $span)); + $location: susy-get(location, $span); + $n: susy-get(span, $span); + + $number: if(type-of($location) == number, true, false); + $index: if($number and unitless($location), true, false); + + @if $n == $count { + $edge: full; + } @else if $location and $n and $index { + @if $location == 1 { + $edge: if($n == $count, full, first); + } @else if $location + $n - 1 == $count { + $edge: last; + } + } + } + + @if $edge == alpha or $edge == omega { + $edge: if($edge == alpha, first, last); + } + + @return $edge; +} + + +// Get Location +// ------------ +// Calculate location value based on edge, if possible +@function get-location( + $span +) { + $span : parse-span($span); + $location : susy-get(location, $span); + $edge : get-edge($span); + $n : susy-get(span, $span); + + @if $edge and not($location) and type-of($n) == number and unitless($n) { + @if $edge == first { + $location: 1; + } @else if $edge == last { + $location: susy-count(susy-get(columns, $span)) - $n + 1; + } + } + + @return $location +} diff --git a/_sass/vendor/susy/susy/language/susy/_settings.scss b/_sass/vendor/susy/susy/language/susy/_settings.scss new file mode 100644 index 0000000..9b5d897 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_settings.scss @@ -0,0 +1,216 @@ +// Susy Settings +// ============= + +// Susy Language Defaults +// ---------------------- +// - PRIVATE +@include susy-defaults(( + container: auto, + math: fluid, + output: float, + container-position: center, + gutter-position: after, + global-box-sizing: content-box, + debug: ( + image: hide, + color: rgba(#66f, .25), + output: background, + toggle: top right, + ), +)); + + +// Valid Keyword Values +// -------------------- +// - PRIVATE: DONT'T TOUCH +$susy-keywords: ( + container: auto, + math: static fluid, + output: isolate float, + container-position: left center right, + flow: ltr rtl, + gutter-position: before after split inside inside-static, + box-sizing: border-box content-box, + span: full, + edge: first alpha last omega full, + spread: narrow wide wider, + gutter-override: no-gutters no-gutter, + role: nest, + clear: break nobreak, + debug image: show hide show-columns show-baseline, + debug output: background overlay, +); + + +// Parse Susy Keywords and Maps +// ---------------------------- +@function parse-settings( + $short: $susy +) { + $_return: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + @each $item in $short { + // strings + @if type-of($item) == string { + @each $key, $value in $susy-keywords { + @if index($value, $item) { + $_key-value: append($key, $item); + $_return: _susy-deep-set($_return, $_key-value...); + } + } + // maps + } @else if type-of($item) == map { + $_return: map-merge($_return, $item); + } + } + } + + @return $_return; +} + + +// Parse Columns & Gutters +// ----------------------- +@function parse-layout( + $short +) { + $_return: (); + $_columns: (); + $_gutters: null; + + @if not(unitless(nth(nth($short, 1), 1))) { + $_gutters: nth($short, 1); + } @else { + $_columns: (columns: nth($short, 1)); + $_gutters: if(length($short) > 1, nth($short, 2), $_gutters); + } + + @if type-of($_gutters) == list and length($_gutters) > 0 { + $_gutters: ( + gutters: nth($_gutters, 2) / nth($_gutters, 1), + column-width: nth($_gutters, 1), + ); + } @else { + $_gutters: if($_gutters, (gutters: $_gutters), ()); + } + + $_return: map-merge($_return, $_columns); + $_return: map-merge($_return, $_gutters); + + @return $_return; +} + + +// Parse Grid/Context +// ------------------ +@function parse-grid( + $short: $susy +) { + $_return: parse-settings($short); + $_layout: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + @each $item in $short { + // number or list + @if type-of($item) == number or type-of($item) == list { + @if type-of($item) == list or unitless($item) { + $_layout: append($_layout, $item); + } @else { + $_return: map-merge($_return, (container: $item)); + } + } + } + + $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout); + } + + @return map-merge($_return, $_layout); +} + + +// Parse Span +// ---------- +@function parse-span( + $short, + $key: span +) { + $_return: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + $_at: index($short, at); + + @if $_at { + $_loci: $_at + 1; + $_location: nth($short, $_loci); + $_return: map-merge($_return, (location: $_location)); + $short: set-nth($short, $_at, null); + $short: set-nth($short, $_loci, null); + } + + $_i: 1; + $_span: (); + + @while $_i <= length($short) { + $_this: nth($short, $_i); + + @if type-of($_this) == number { + $_span: append($_span, $_this); + $short: set-nth($short, $_i, null); + } @else if $_this == of { + $short: set-nth($short, $_i, null); + $_i: length($short) + 1; + } + + $_i: $_i + 1; + } + + @if length($_span) > 0 { + $_span: if(length($_span) == 1, nth($_span, 1), $_span); + $_return: map-merge($_return, ($key: $_span)); + } + + $_return: map-merge($_return, parse-grid($short)); + } + + @return $_return; +} + + +// Parse Gutters +// ------------- +@function parse-gutters( + $short: $susy +) { + $_gutters: parse-span($short, gutter-override); + $_span: susy-get(gutter-override, $_gutters); + + @if $_span and not(map-get($_gutters, columns)) { + $_context: (); + $_new: (); + + @each $item in $_span { + @if type-of($item) == number and unitless($item) { + $_context: append($_context, $item); + } @else { + $_new: append($_new, $item); + } + } + + $_context: parse-grid($_context); + $_new: if(length($_new) == 0, null, $_new); + $_new: if(length($_new) == 1, nth($_new, 1), $_new); + $_new: (gutter-override: if($_new != $_span, $_new, $_span)); + + $_gutters: map-merge($_gutters, $_new); + $_gutters: map-merge($_gutters, $_context); + } + + @return $_gutters; +} diff --git a/_sass/vendor/susy/susy/language/susy/_span.scss b/_sass/vendor/susy/susy/language/susy/_span.scss new file mode 100644 index 0000000..86ccda9 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_span.scss @@ -0,0 +1,163 @@ +// Span Syntax +// =========== + +// Span [mixin] +// ------------ +// Set a spanning element using shorthand syntax. +// - $span : +@mixin span( + $span +) { + $inspect: $span; + $span: parse-span($span); + $output: span-math($span); + $nesting: susy-get(span, $span); + $clear: susy-get(clear, $span); + + $box: susy-get(box-sizing, $span); + $content-box: if(susy-get(global-box-sizing) != 'border-box', true, false); + $box: $box or if(is-inside($span) and $content-box, border-box, null); + + @if $clear == break { + @include break; + } @else if $clear == nobreak { + @include nobreak; + } + + @include susy-inspect(span, $inspect); + @include output((box-sizing: $box)); + @include float-span-output($output...); + + @if valid-columns($nesting, silent) { + @include nested($span) { @content; } + } @else { + @content; + } +} + +// Span [function] +// --------------- +// Return the width of a span. +// - $span : +@function span( + $span +) { + @return get-span-width($span); +} + +// Span Math +// --------- +// Get all the span results. +// - $span: +@function span-math( + $span +) { + $nest : if(susy-get(role, $span) == nest, true, false); + $split-nest : if(is-split($span) and $nest, true, false); + $edge : get-edge($span); + $location : get-location($span); + + $float : from; + $padding-before : null; + $padding-after : null; + $margin-before : null; + $margin-after : null; + + // calculate widths + $spread: index(map-values($span), spread); + $span: if($split-nest and not($spread), map-merge($span, (spread: wide)), $span); + $width: get-span-width($span); + $gutters: get-gutters($span); + + // apply gutters + @if is-inside($span) { + @if not(susy-get(role, $span)) { + $padding-before: map-get($gutters, before); + $padding-after: map-get($gutters, after); + } + } @else { + @if not($split-nest) { + $margin-before: map-get($gutters, before); + $margin-after: map-get($gutters, after); + } + } + + // special margin handling + @if susy-get(output, $span) == isolate and $location { + $margin-before: get-isolation($span); + $margin-after: -100%; + } @else if $edge { + $is-split: is-split($span); + $pos: susy-get(gutter-position, $span); + + @if $edge == last { + $float: susy-get(last-flow, $span); + } + + @if not($is-split) { + @if $edge == full or ($edge == first and $pos == before) { + $margin-before: 0; + } + @if $edge == full or ($edge == last and $pos == after) { + $margin-after: 0; + } + } + + } + + @return ( + width : $width, + float : $float, + margin-before : $margin-before, + margin-after : $margin-after, + padding-before : $padding-before, + padding-after : $padding-after, + flow : susy-get(flow, $span), + ); +} + +// Get Span Width +// -------------- +// Return span width. +// - $span: +@function get-span-width( + $span +) { + $span : parse-span($span); + + $n : susy-get(span, $span); + $location : get-location($span); + $columns : susy-get(columns, $span); + $gutters : susy-get(gutters, $span); + $spread : susy-get(spread, $span); + + $context : null; + $span-sum : null; + $width : null; + + @if $n == 'full' { + $pos: susy-get(gutter-position, $span); + $role: susy-get(role, $span); + $n: if($pos == split and $role != nest, susy-count($columns), 100%); + } + + @if type-of($n) != number { + @warn "(#{type-of($n)}) #{$n} is not a valid span."; + } @else if unitless($n) { + $context: susy-sum($columns, $gutters, if(is-split($span), wide, narrow)); + $spread: if(is-inside($span), $spread or wide, $spread); + $span-sum: susy($n, $location, $columns, $gutters, $spread); + + $_math: susy-get(math, $span); + $_column-width: susy-get(column-width, $span); + @if $_math == static { + $width: $span-sum * valid-column-math($_math, $_column-width); + } @else { + $width: percentage($span-sum / $context); + } + } @else { + $width: $n; + } + + @return $width; +} diff --git a/_sass/vendor/susy/susy/language/susy/_validation.scss b/_sass/vendor/susy/susy/language/susy/_validation.scss new file mode 100644 index 0000000..a235b17 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_validation.scss @@ -0,0 +1,16 @@ +// Validation +// ========== + + +// Validate Column Math +// -------------------- +@function valid-column-math( + $math, + $column-width +) { + @if $math == static and not($column-width) { + @error 'Static math requires a valid column-width setting.'; + } + + @return $column-width; +} diff --git a/_sass/vendor/susy/susy/language/susyone/_background.scss b/_sass/vendor/susy/susy/language/susyone/_background.scss new file mode 100644 index 0000000..38c6726 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_background.scss @@ -0,0 +1,18 @@ +// --------------------------------------------------------------------------- +// Imports + +@import "compass/layout/grid-background"; +@import "compass/css3/background-origin"; +@import "compass/css3/background-clip"; + +// --------------------------------------------------------------------------- +// Susy Grid Background +// +// A wrapper for the compass "column-grid-background" mixin +// Uses all your settings to create a grid background for a container element. +// Note: Sub-pixel rounding can lead to several pixels of variation between browsers. +@mixin susy-grid-background(){ + @include column-grid-background($total-columns, column(), gutter(), 0); + @include background-origin(content-box); + @include background-clip(content-box); +} diff --git a/_sass/vendor/susy/susy/language/susyone/_functions.scss b/_sass/vendor/susy/susy/language/susyone/_functions.scss new file mode 100644 index 0000000..6818458 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_functions.scss @@ -0,0 +1,377 @@ +// --------------------------------------------------------------------------- +// Imports + +// We need access to some basic font settings for handling media-queries. +@import "compass/typography/vertical_rhythm"; + +// For now, we also need this... +$browser-default-font-size-px : 16px; +$browser-default-font-size-percent : 100%; +$browser-default-font-size-pt : 12pt; + +$rem-with-px-fallback : true !default; + +// --------------------------------------------------------------------------- +// Sass list Functions + +// Return a list with specific items removed +// +// filter($list, $target) +// - $list : The list to filter. +// - $target : An item to be removed from the list. +@function filter($list, $target) { + $clean: compact(); + @if index($list, $target) { + @each $item in $list { + $clean: if($item == $target, $clean, append($clean, $item)); + } + } @else { $clean: $list; } + @return $clean; +} + +// --------------------------------------------------------------------------- +// Don't use static output when it will break things + +// Switch element-level output to fluid, when container-width is wrong for static +// +// fix-static-misalignment([$style, $width]) +// - $style: $container-style. +// - $width: $container-width. +@function fix-static-misalignment( + $style: $container-style, + $width: $container-width +) { + @if $container-width and $container-width != container-outer-width($width: false) { + $style: fluid; + } + @return $style; +} + +// --------------------------------------------------------------------------- +// Grid Functions + +// Returns the full width of a grid based on your grid settings. +// +// $columns : The number of columns to get width for. +@function columns-width( + $columns : $total-columns +) { + @if round($columns) != $columns { + @warn "Susy works best with integer column-spans." + + "For partial-columns, you may need to finesse the math by hand using functions directly."; + } + @return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width); +} + +// Return the grid width after adding or subtracting grid padding +// +// $width : the width of the grid without padding; +// $operation : ( add | subtract ) if padding should be added or subtracted; +@function handle-grid-padding( + $width, + $operation : subtract +) { + $pad: $grid-padding*2; + + @if comparable($width, $grid-padding) { + $width: if($operation == subtract, $width - $pad, $width + $pad); + } @else { + @warn "$grid-padding must be set in units comparable to the container width."; + } + + @return $width; +} + +// Return the full outer width of a Container element. +// +// $columns : The number of columns in the Grid Layout. +@function container-outer-width( + $columns : $total-columns, + $width : $container-width +) { + $outerwidth: if($width, $width, columns-width($columns)); + + @if $width { + @if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); } + } @else { + @if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); } + } + + @return $outerwidth; +} + +// Return the percentage width of a single column in a given 'context'. +// +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function column( + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, $column-width, relative-width($column-width, $context)); +} + +// Return the percentage width of multiple 'columns' in a given 'context'. +// +// $columns : The number of columns to get relative width for. +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function columns( + $columns, + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context)); +} + +// Return the percentage width of a single gutter in a given 'context'. +// +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function gutter( + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, $gutter-width, relative-width($gutter-width, $context)); +} + +// Return the percentage width of a given value in a given 'context'. +// +// $width : Any given width value. +// $context : The grid context in columns, if nested. +@function relative-width( + $width, + $context : $total-columns +) { + @return percentage($width / columns-width($context)); +} + +// Return the total space occupied by multiple columns and associated gutters. +// Useful for adding padding or margins (prefix, suffix, push, pull, etc.) +// +// $columns : The number of columns to get relative space for. +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function space( + $columns, + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0); +} + +// Accept a list including column-count and (optional) position. +// Return either the column count or the position alone. +// +// $columns : the list to split and interprate. +// $request : The value to return, either 'columns' or 'position'. +@function split-columns-value( + $columns, + $request : columns +) { + $pos : false; + $cols : false; + + @each $var in $columns { + @if (type-of($var) == 'string') { + $pos: $var; + } @else { + @if (type-of($var) == 'number') and (unitless($var)) { + $cols: $var; + } @else { + @warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.'; + } + } + } + + @if $request == 'columns' { + @return $cols; + } @else { + @if $request == 'position' { + @return $pos; + } @else { + @warn '"#{$request}" is not a valid value for $request'; + } + } +} + +// Accept nth-selector variables, and format them as a valid CSS3 selector. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +@function format-nth( + $n : last, + $selector : child +) { + @if ($n == 'last') or ($n =='first') or ($n =='only') { + $selector: '#{$n}-#{$selector}'; + } @else { + $selector: 'nth-#{$selector}(#{$n})'; + } + @return $selector; +} + +// --------------------------------------------------------------------------- +// Media Functions + +// Return an em value adjusted to match the browser default font size. +// Note: This only works if actual sizes are set relative to browser defaults. +// +// $ems : The initial value to be converted. +// $font-size : The current font-size in. +@function base-ems( + $ems, + $font-size: $base-font-size +){ + $font-size : if(unit($ems) == 'rem', $base-font-size, $font-size); + $unit : unit($font-size); + $mult : $ems / ($ems * 0 + 1); + + @if $unit == 'px' { + @return $font-size / $browser-default-font-size-px * $mult * 1em; + } + @else if $unit == '%' { + @return $font-size / $browser-default-font-size-percent * $mult * 1em; + } + @else if $unit == 'em' { + @return $font-size / 1em * $mult * 1em; + } + @else if $unit == 'pt' { + @return $font-size / $browser-default-font-size-pt * $mult * 1em; + } + @else { + @warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.'; + } +} + +// This name will be deprecated... +@function absolute-ems( + $ems, + $font-size: $base-font-size +){ + @return base-ems( $ems, $font-size); + } + +// Return a length, after any em-values have been sent through absolute-ems(). +// +// $length : The length value to be checked and adjusted if necessary. +// $font-size : The current font-size in px. +@function fix-ems( + $length, + $font-size: $base-font-size +){ + @if $length { + @if (unit($length) == 'em') or (unit($length) == 'rem') { + $length: absolute-ems($length,$font-size); + } + } + @return $length; +} + +// Sort a list of arguments into "$min $layout $max $ie" order, and return the list. +// +// $media-layout : a list of values [$min $layout $max $ie] including... +// : - one unitless number (columns in a layout) +// : - two optional lengths (min and max-width media-query breakpoints). +// : - one optional boolean or string to trigger fallback support for IE. +// $font-size : [optional] The base font-size of your layout, if you are using ems. +// : - defaults to $base-font-size +@function medialayout( + $media-layout, + $font-size: $base-font-size +) { + $media : false; + $min : false; + $layout : false; + $max : false; + $ie : false; + $has-layout : false; + + @each $val in $media-layout { + @if (type-of($val) == "number") { + @if unitless($val) { + $layout : $val; + $has-layout : true; + } @else { + @if ($has-layout) and not($media) { + $max: $val; + } @else { + @if $media { + $media: join($media,$val); + } @else { + $media: $val; + } + } + } + } @else { + $ie: $val; + } + } + @if (length($media) > 0) { + @if (length($media) == 1) { + $min: nth($media,1); + } @else { + $min: nth($media,1); + $max: nth($media,2); + @if comparable($min, $max) { + @if ($min > $max) { + $max: nth($media,1); + $min: nth($media,2); + } + } @else { + @warn "Can't compare incompatible units." + + "Using #{$min} for min-width, and #{$max} for max-width"; + } + @if (length($media) > 2) { + @warn "You can only send two lengths: a min-width and an (optional) max-width." + + "You sent #{length($media)}: #{$media}"; + } + } + } + + // media-queries must be set in ems relative to the browser default + // rather than the font-size set in CSS. + $min: fix-ems($min,$font-size); + $max: fix-ems($max,$font-size); + + @return $min $layout $max $ie; +} + +// Return the nearest layout (column-count) above a given breakpoint. +// +// $min : The min-width media-query breakpoint above which to establish a new layout. +@function get-layout( + $min +) { + $min : fix-ems($min); + $return : false; + + @if comparable($min, $column-width) { + $return : ceil(($min + $gutter-width) / ($column-width + $gutter-width)); + } @else { + @warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable."; + } + + @return $return; +} + +// Check to see if a given $media-layout list is simply the default. +// +// $media-layout : a list of values including - +// : One unitless number (columns in a layout) +// : Two optional lengths (min and max-width media-query breakpoints). +// : One optional boolean or string to trigger fallback support for IE. +@function is-default-layout( + $media-layout +) { + $media-layout : medialayout($media-layout); + $min : nth($media-layout,1); + $layout-cols : nth($media-layout,2); + $max : nth($media-layout,3); + + @if $min or $max { + @return false; + } @else { + @return if($layout-cols == $total-columns,true,false); + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_grid.scss b/_sass/vendor/susy/susy/language/susyone/_grid.scss new file mode 100644 index 0000000..491c622 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_grid.scss @@ -0,0 +1,312 @@ +// --------------------------------------------------------------------------- +// Imports + +@import "compass/utilities/general/clearfix"; +@import "compass/css3/box-sizing"; + +// --------------------------------------------------------------------------- +// Border-Box Sizing + +// Apply the border-box sizing model to all elements +// and adjust the grid math appropriately. +@mixin border-box-sizing { + $border-box-sizing: true !global; + * { @include box-sizing(border-box); } +} + +// --------------------------------------------------------------------------- +// Container + +// Set the width of a container +// +// $columns : The number of columns in the Grid Layout. +@mixin set-container-width( + $columns : $total-columns, + $style : $container-style, + $px-vals : $pixel-values-only +){ + $width: container-outer-width($columns); + + @if $style == 'static' { + @if $px-vals == true { + width: round(convert-length($width, px)); + } @else { + @include rem(width, $width); + } + } @else { + @if $style == 'fluid' { + @if unit($width) == '%' { + @if $px-vals == true { + width: round(convert-length($width, px)); + } @else { + @include rem(width, $width); + } + } + } @else { + @if $px-vals == true { + max-width: round(convert-length($width, px)); + } @else { + @include rem(max-width, $width); + } + + @include for-legacy-browser(ie,"6") { + @if unit($width) == 'rem' { + _width: round(convert-length($width, px)); + } @else { + _width: $width; + } + } + } + } +} + +// Set the outer grid-containing element(s). +// +// $columns : The number of columns in the container. +@mixin apply-container( + $columns : $total-columns, + $px-vals : $pixel-values-only +){ + @include pie-clearfix; + @include set-container-width($columns); + @if $px-vals == true { + padding-left: round(convert-length($grid-padding, px)); + padding-right: round(convert-length($grid-padding, px)); + } @else { + @include rem(padding-left, $grid-padding); + @include rem(padding-right, $grid-padding); + } + margin: { left: auto; right: auto; } +} + +// Set one or more layouts on a grid-containing element at any number of media-query breakpoints. +// +// $media-layout-1 : [default:$total-columns] A list of values including - +// : One unitless number (representing columns in a layout) +// : Two optional lengths (representing min and max-width media-query breakpoints). +// $media-layout-2 ...-10 : [optional] Same as $media-layout-1 +@mixin container( + $media-layouts... +){ + $media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns); + + @each $ml in $media-layouts { + @if is-default-layout($ml) { + @include apply-container; + } @else { + @include at-breakpoint($ml) { + @include apply-container; + } + } + } +} + +// --------------------------------------------------------------------------- +// Columns + +// Create a grid element spanning any number of 'columns' in a grid 'context'. +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $padding : [optional] Padding applied to the inside of individual grid columns. +// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px) +// : Padding values are applied only on the horizontal axis in from-to order +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin span-columns( + $columns, + $context : $total-columns, + $padding : false, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + $pos : split-columns-value($columns,position); + $cols : split-columns-value($columns,columns); + $pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); + $pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); + + @if $padding != false { + $pad-from : nth($padding, 1); + + @if length($padding) > 1 { + $pad-to: nth($padding, 2); + } @else { + $pad-to: $pad-from; + } + + $pad-from : if($style == static, $pad-from, relative-width($pad-from, $context)); + $pad-to : if($style == static, $pad-to, relative-width($pad-to, $context)); + + padding-#{$from}: $pad-from; + padding-#{$to}: $pad-to; + } + + width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from); + + @if ($pos == 'omega') { + @include omega($from); + } @else { + float: $from; + margin-#{$to}: gutter($context, $style); + @include for-legacy-browser(ie, "6") { + display: inline; + } + } +} + +// Apply to elements spanning the last column, to account for the page edge. +// Only needed as an override. Normally 'omega' can just be called by `columns`. +// +// $from : The start-direction for your document. +@mixin omega( + $from : $from-direction +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: $omega-float; + margin-#{$to}: 0; + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: - $gutter-width; + @include for-legacy-browser(ie, "6") { + display: inline; + } + } +} + +// Shortcut to apply omega to a specific subset of elements. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +// $from : The start-direction for your document. +@mixin nth-omega( + $n : last, + $selector : child, + $from : $from-direction +) { + $from : unquote($from); + + &:#{format-nth($n,$selector)} { + @if $n == "first" { + @include omega($from); + } @else { + @include with-browser-ranges(css-sel3) { + @include omega($from); + } + } + } +} + + + +// --------------------------------------------------------------------------- +// Resets + +// Reset a '+columns' grid element to default block behavior +// +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin reset-columns( + $from: $from-direction +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: none; + width: auto; + margin-#{$to}: auto; + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: auto; + @include for-legacy-browser(ie, "6") { + display: block; + } + } +} + +// Apply to elements previously set as omega. +// This will return floats and margins back to non-omega settigns. +// +// $context : [optional] The context (columns spanned by parent). +// $from : The start-direction for your document. +// $style : The container style to use. +@mixin remove-omega( + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: $from; + margin-#{$to}: gutter($context, $style); + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: auto; + } +} + +// Shortcut to apply remove-omega to a specific subset of elements. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +// $context : [optional] The context (columns spanned by parent). +// $from : The start-direction for your document. +// $style : The container style to use. +@mixin remove-nth-omega( + $n : last, + $selector : child, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + + &:#{format-nth($n,$selector)} { + @if $n == "first" { + @include remove-omega($context, $from, $style); + } @else { + @include with-browser-ranges(css-sel3) { + @include remove-omega($context, $from, $style); + } + } + } +} + + +// --------------------------------------------------------------------------- +// Change Settings + +@mixin with-grid-settings( + $columns: $total-columns, + $width: $column-width, + $gutter: $gutter-width, + $padding: $grid-padding +) { + // keep the defaults around + $default-columns: $total-columns; + $default-width: $column-width; + $default-gutter: $gutter-width; + $default-padding: $grid-padding; + + // use the new settings + $total-columns: $columns !global; + $column-width: $width !global; + $gutter-width: $gutter !global; + $grid-padding: $padding !global; + + // apply to contents + @content; + + // re-instate the defaults + $total-columns: $default-columns !global; + $column-width: $default-width !global; + $gutter-width: $default-gutter !global; + $grid-padding: $default-padding !global; +} diff --git a/_sass/vendor/susy/susy/language/susyone/_isolation.scss b/_sass/vendor/susy/susy/language/susyone/_isolation.scss new file mode 100644 index 0000000..2b70038 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_isolation.scss @@ -0,0 +1,51 @@ +// --------------------------------------------------------------------------- +// Isolation + +// Isolate the position of a grid element (use in addition to span-columns) +// +// $location : The grid column to isolate in, relative to the container; +// $context : [optional] The context (columns spanned by parent). +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin isolate( + $location, + $context: $total-columns, + $from: $from-direction, + $style: fix-static-misalignment() +) { + $to: opposite-position($from); + margin-#{$to}: -100%; + margin-#{$from}: space($location - 1, $context, $style); +} + +// Isolate a group of elements in a grid, using nth-child selectors +// +// $columns : The column-width of each item on the grid; +// $context : [optional] The context (columns spanned by parent). +// $selector : [child | of-type | last-of-type ] (default is 'child') +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin isolate-grid( + $columns, + $context: $total-columns, + $selector: 'child', + $from: $from-direction, + $style: fix-static-misalignment() +) { + $to: opposite-position($from); + $location: 1; + $line: floor($context / $columns); + + @include span-columns($columns, $context, $from: $from, $style: $style); + margin-#{$to}: -100%; + + @for $item from 1 through $line { + $nth: '#{$line}n + #{$item}'; + &:#{format-nth($nth,$selector)} { + margin-#{$from}: space($location - 1, $context, $style); + @if $location == 1 { clear: $from; } + @else { clear: none; } + + $location: $location + $columns; + @if $location > $context { $location: 1; } + } + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_margin.scss b/_sass/vendor/susy/susy/language/susyone/_margin.scss new file mode 100644 index 0000000..accbbe6 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_margin.scss @@ -0,0 +1,93 @@ +// --------------------------------------------------------------------------- +// Margin Mixins + +// Apply 'columns' margin before an element to push it along the grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pre( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + margin-#{$from}: space($columns, $context, $style); +} + +// 'push' is a synonymn for 'pre' +@mixin push( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @include pre($columns, $context, $from, $style); +} + +// Apply negative 'columns' margin before an element to pull it along the grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pull( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + margin-#{$from}: 0 - space($columns, $context, $style); +} + +// Apply 'columns' margin after an element to contain it in a grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin post( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + margin-#{$to}: space($columns, $context, $style); +} + +// Apply 'columns' before and/or after an element to contain it on a grid. +// +// $pre : The number of columns to add as margin before. +// $post : The number of columns to add as margin after. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin squish( + $pre : false, + $post : false, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @if $pre { + @include pre($pre, $context, $from, $style) + } + @if $post { + @include post($post, $context, $from, $style) + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_media.scss b/_sass/vendor/susy/susy/language/susyone/_media.scss new file mode 100644 index 0000000..ca860fc --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_media.scss @@ -0,0 +1,105 @@ +// --------------------------------------------------------------------------- +// Media Mixins + +// Create a new layout context for (@content) descendants. +// +// $layout-cols : a (unitless) number of columns to use for this layout. +@mixin layout( + $layout-cols +) { + // store default $total-columns setting for later, then change it. + $default-layout : $total-columns; + $total-columns : $layout-cols !global; + + // apply children in this new layout context. + @content; + + // return to default $total-columns setting. + $total-columns : $default-layout !global; +} + +// Nest a block of code inside a new media-query and layout context. +// +// $media-layout : a list of values [$min $layout $max $ie] including... +// : - one unitless number (columns in a layout) +// : - two optional lengths (min and max-width media-query breakpoints). +// : - one optional boolean or string to trigger fallback support for IE. +// $font-size : [optional] The base font-size of your layout, if you are using ems. +// : - defaults to $base-font-size +@mixin at-breakpoint( + $media-layout, + $font-size: $base-font-size +) { + $media-layout : medialayout($media-layout,$font-size); + $min : nth($media-layout,1); + $layout : nth($media-layout,2); + $max : nth($media-layout,3); + $ie : nth($media-layout,4); + + @if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) { + @warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work."; + } + + // We need to have either a min-width breakpoint or a layout in order to proceed. + @if $min or $layout or $max { + + // If we don't have a layout, we create one based on the min-width. + @if not($layout) { + $layout: get-layout($min); + } + + // If we still don't have a layout, we have a problem. + @if $layout { + // Set our new layout context. + @include layout($layout) { + @if $breakpoint-media-output { + @include with-browser-ranges(css-mediaqueries) { + @if $min and $max { + // Both $min and $max + @media (min-width: $min) and (max-width: $max) { + @content; + } + } @else { + @if not($min) and not($max) { + // Neither $min nor $max: + // We can create a breakpoint based on the number of columns in the layout. + $min: fix-ems(container-outer-width($width: false)); + } + @if $min { + // Min only: + @media (min-width: $min) { + @content; + } + } @else { + // Max only: + @media (max-width: $max) { + @content; + } + } + } + } + } + // Set an IE fallback + @if $ie and $breakpoint-ie-output { + @if (type-of($ie) == 'bool') { + $ie: 'lt-ie9'; + } + .#{$ie} & { + @content; + } + } + + @if $breakpoint-raw-output { + @content; + } + } + } @else { + @warn "We were unable to determine a layout for your breakpoint."; + } + + } @else { + @warn "You need to provide either a valid layout (number of columns)" + + "or a valid media-query min-width breakpoint (length)."; + } + +} diff --git a/_sass/vendor/susy/susy/language/susyone/_padding.scss b/_sass/vendor/susy/susy/language/susyone/_padding.scss new file mode 100644 index 0000000..8e6394a --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_padding.scss @@ -0,0 +1,92 @@ +// --------------------------------------------------------------------------- +// Padding Mixins + +// add empty colums as padding before an element. +// $columns : The number of columns to prefix. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin prefix( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + padding-#{$from}: space($columns, $context, $style); +} + +// add empty colums as padding after an element. +// $columns : The number of columns to suffix. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin suffix( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + padding-#{$to}: space($columns, $context, $style); +} + +// add empty colums as padding before and after an element. +// $columns : The number of columns to pad. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pad( + $prefix : false, + $suffix : false, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @if $prefix { + @include prefix($prefix, $context, $from, $style); + } + @if $suffix { + @include suffix($suffix, $context, $from, $style); + } +} + +// Bleed into colums with margin/padding on any side of an element. +// $width : The side of the bleed. +// : Any unit-length will be used directly. +// : Any unitless number will be used as a column-count. +// : Use "2 of 6" format to represent 2 cals in a 6-col nested context. +// $sides : One or more sides to bleed [ top | right | bottom | left | all ]. +// $style : The container style to use. +@mixin bleed( + $width: $grid-padding, + $sides: left right, + $style: fix-static-misalignment() +) { + @if $border-box-sizing { @include box-sizing(content-box) } + + @if type-of($width) == 'list' { + $width: filter($width, of); + $width: space(nth($width,1), nth($width,2), $style); + } @else if unitless($width) { + $width: space($width, $style: $style); + } + + @if $sides == 'all' { + margin: - $width; + padding: $width; + } @else { + @each $side in $sides { + margin-#{$side}: - $width; + padding-#{$side}: $width; + } + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_settings.scss b/_sass/vendor/susy/susy/language/susyone/_settings.scss new file mode 100644 index 0000000..e8ff9c8 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_settings.scss @@ -0,0 +1,60 @@ +// --------------------------------------------------------------------------- +// Susy Settings + +// The total number of columns in the grid +$total-columns : 12 !default; + +// The width of columns and gutters. +// These must all be set with the comparable units. +$column-width : 4em !default; +$gutter-width : 1em !default; + +// Padding on the left and right of a Grid Container. +$grid-padding : $gutter-width !default; + +// --------------------------------------------------------------------------- +// Advanced Settings + +// From Direction: +// Controls for right-to-left or bi-directional sites. +$from-direction : left !default; + +// Omega Float Direction: +// The direction that +omega elements are floated by deafult. +$omega-float : opposite-position($from-direction) !default; + +// Container Width: +// Override the total width of your grid, using any length (50em, 75%, etc.) +$container-width : false !default; + +// Container Style: +// 'magic' - Static (fixed or elastic) when there's enough space, +// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM). +// 'static' - Forces the grid container to remain static at all times. +// 'fluid' - Forces the grid to remain fluid at all times. +// (this will overrule any static $container-width settings) +$container-style : magic !default; + +// Border-Box Sizing +// Adjust the grid math appropriately for box-sizing: border-box; +// Warning: This does not actually apply the new box model! +// In most cases you can ignore this setting, +// and simply apply the border-box-sizing mixin. +$border-box-sizing : false !default; + +// Pixel Values only: +// Make sure only pixel values are set for the container width. +$pixel-values-only : false !default; + +// --------------------------------------------------------------------------- +// IE Settings + +// When you are using a seperate IE stylesheet, +// you can use these settings to control the output of at-breakpoint. +// By default, at-breakpoint will output media-queries as well as +// any defined ie-fallback classes. +$breakpoint-media-output : true !default; +$breakpoint-ie-output : true !default; + +// Danger Zone! Only set as 'true' in IE-specific style sheets. +$breakpoint-raw-output : false !default; diff --git a/_sass/vendor/susy/susy/output/_float.scss b/_sass/vendor/susy/susy/output/_float.scss new file mode 100644 index 0000000..9c24051 --- /dev/null +++ b/_sass/vendor/susy/susy/output/_float.scss @@ -0,0 +1,9 @@ +// Float API +// ========= + +@import "shared"; + +@import "float/container"; +@import "float/span"; +@import "float/end"; +@import "float/isolate"; diff --git a/_sass/vendor/susy/susy/output/_shared.scss b/_sass/vendor/susy/susy/output/_shared.scss new file mode 100644 index 0000000..dd9df4e --- /dev/null +++ b/_sass/vendor/susy/susy/output/_shared.scss @@ -0,0 +1,15 @@ +// Shared API +// ========== + +@import "support"; + +@import "shared/inspect"; +@import "shared/output"; +@import "shared/direction"; +@import "shared/background"; +@import "shared/container"; +@import "shared/margins"; +@import "shared/padding"; + + + diff --git a/_sass/vendor/susy/susy/output/_support.scss b/_sass/vendor/susy/susy/output/_support.scss new file mode 100644 index 0000000..53dbc9c --- /dev/null +++ b/_sass/vendor/susy/susy/output/_support.scss @@ -0,0 +1,9 @@ +// Susy Browser Support +// ==================== + +@import "support/support"; +@import "support/prefix"; +@import "support/background"; +@import "support/box-sizing"; +@import "support/rem"; +@import "support/clearfix"; diff --git a/_sass/vendor/susy/susy/output/float/_container.scss b/_sass/vendor/susy/susy/output/float/_container.scss new file mode 100644 index 0000000..121eb11 --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_container.scss @@ -0,0 +1,16 @@ +// Float Container API +// =================== + +// Float Container +// --------------- +// - [$width] : +// - [$justify] : left | center | right +// - [$math] : fluid | static +@mixin float-container( + $width, + $justify: auto auto, + $property: max-width +) { + @include susy-clearfix; + @include container-output($width, $justify, $property); +} diff --git a/_sass/vendor/susy/susy/output/float/_end.scss b/_sass/vendor/susy/susy/output/float/_end.scss new file mode 100644 index 0000000..3369997 --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_end.scss @@ -0,0 +1,40 @@ +// Float Ends API +// ============== + +// Susy End Defaults +// ----------------- +// - PRIVATE +@include susy-defaults(( + last-flow: to, +)); + +// Float Last +// ---------- +// - [$flow] : ltr | rtl +@mixin float-last( + $flow: map-get($susy-defaults, flow), + $last-flow: map-get($susy-defaults, last-flow), + $margin: 0 +) { + $to: to($flow); + + $output: ( + float: if($last-flow == to, $to, null), + margin-#{$to}: $margin, + ); + + @include output($output); +} + +// Float First +// ----------- +// - [$flow] : ltr | rtl +@mixin float-first( + $flow: map-get($susy-defaults, flow) +) { + $output: ( + margin-#{from($flow)}: 0, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/float/_isolate.scss b/_sass/vendor/susy/susy/output/float/_isolate.scss new file mode 100644 index 0000000..4dd3c23 --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_isolate.scss @@ -0,0 +1,22 @@ +// Float Isolation API +// =================== + +// Isolate Output +// -------------- +// - $push : +// - [$flow] : ltr | rtl +@mixin isolate-output( + $push, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + float: $from, + margin-#{$from}: $push, + margin-#{$to}: -100%, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/float/_span.scss b/_sass/vendor/susy/susy/output/float/_span.scss new file mode 100644 index 0000000..5b732cc --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_span.scss @@ -0,0 +1,35 @@ +// Float Span API +// ============== + +// Float Span Output +// ----------------- +// - $width : +// - [$float] : from | to +// - [$margin-before] : +// - [$margin-after] : +// - [$padding-before] : +// - [$padding-after] : +// - [$flow] : ltr | rtl +@mixin float-span-output( + $width, + $float : from, + $margin-before : null, + $margin-after : null, + $padding-before : null, + $padding-after : null, + $flow : map-get($susy-defaults, flow) +) { + $to : to($flow); + $from : from($flow); + + $output: ( + width: $width, + float: if($float == to, $to, null) or if($float == from, $from, null), + margin-#{$from}: $margin-before, + margin-#{$to}: $margin-after, + padding-#{$from}: $padding-before, + padding-#{$to}: $padding-after, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_background.scss b/_sass/vendor/susy/susy/output/shared/_background.scss new file mode 100644 index 0000000..c230f61 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_background.scss @@ -0,0 +1,26 @@ +// Grid Background API +// =================== +// - Sub-pixel rounding can lead to several pixels variation between browsers. + +// Grid Background Output +// ---------------------- +// - $image: background-image +// - $size: background-size +// - $clip: background-clip +// - [$flow]: ltr | rtl +@mixin background-grid-output ( + $image, + $size: null, + $clip: null, + $flow: map-get($susy-defaults, flow) +) { + $output: ( + background-image: $image, + background-size: $size, + background-origin: $clip, + background-clip: $clip, + background-position: from($flow) top, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_container.scss b/_sass/vendor/susy/susy/output/shared/_container.scss new file mode 100644 index 0000000..7c7d4f1 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_container.scss @@ -0,0 +1,21 @@ +// Shared Container API +// ==================== + +// Container Output +// ---------------- +// - [$width] : +// - [$justify] : left | center | right +// - [$math] : fluid | static +@mixin container-output( + $width, + $justify: auto auto, + $property: max-width +) { + $output: ( + #{$property}: $width or 100%, + margin-left: nth($justify, 1), + margin-right: nth($justify, 2), + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_direction.scss b/_sass/vendor/susy/susy/output/shared/_direction.scss new file mode 100644 index 0000000..abb9c36 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_direction.scss @@ -0,0 +1,42 @@ +// Direction Helpers +// ================= + +// Susy Flow Defaults +// ------------------ +// - PRIVATE +@include susy-defaults(( + flow: ltr, +)); + +// Get Direction +// ------------- +// Return the 'from' or 'to' direction of a ltr or rtl flow. +// - [$flow] : ltr | rtl +// - [$key] : from | to +@function get-direction( + $flow: map-get($susy-defaults, flow), + $key: from +) { + $return: if($flow == rtl, (from: right, to: left), (from: left, to: right)); + @return map-get($return, $key); +} + +// To +// -- +// Return the 'to' direction of a flow +// - [$flow] : ltr | rtl +@function to( + $flow: map-get($susy-defaults, flow) +) { + @return get-direction($flow, to); +} + +// From +// ---- +// Return the 'from' direction of a flow +// - [$flow] : ltr | rtl +@function from( + $flow: map-get($susy-defaults, flow) +) { + @return get-direction($flow, from); +} diff --git a/_sass/vendor/susy/susy/output/shared/_inspect.scss b/_sass/vendor/susy/susy/output/shared/_inspect.scss new file mode 100644 index 0000000..b0af9b6 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_inspect.scss @@ -0,0 +1,25 @@ +// Debugging +// ========= + +// Susy Inspect +// ------------ +// Output arguments passed to a inspect. +// - $mixin : +// - $inspec : + +@mixin susy-inspect( + $mixin, + $inspect +) { + $show: false; + + @each $item in $inspect { + @if index($item, inspect) { + $show: true; + } + } + + @if $show or susy-get(debug inspect) { + -susy-#{$mixin}: inspect($inspect); + } +} diff --git a/_sass/vendor/susy/susy/output/shared/_margins.scss b/_sass/vendor/susy/susy/output/shared/_margins.scss new file mode 100644 index 0000000..cd73e8c --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_margins.scss @@ -0,0 +1,23 @@ +// Margins API +// =========== + +// Margin Output +// ------------- +// - $before : +// - $after : +// - [$flow] : ltr | rtl +@mixin margin-output( + $before, + $after, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + margin-#{$from}: $before, + margin-#{$to}: $after, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_output.scss b/_sass/vendor/susy/susy/output/shared/_output.scss new file mode 100644 index 0000000..20fc2d6 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_output.scss @@ -0,0 +1,14 @@ +// Output +// ====== + +// Output +// ------ +// Output CSS with proper browser support. +// - $styles : +@mixin output( + $styles +) { + @each $prop, $val in $styles { + @include susy-support($prop, $val); + } +} diff --git a/_sass/vendor/susy/susy/output/shared/_padding.scss b/_sass/vendor/susy/susy/output/shared/_padding.scss new file mode 100644 index 0000000..5069d0c --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_padding.scss @@ -0,0 +1,23 @@ +// Padding API +// =========== + +// Padding Output +// -------------- +// - $before : +// - $after : +// - [$flow] : ltr | rtl +@mixin padding-output( + $before, + $after, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + padding-#{$from}: $before, + padding-#{$to}: $after, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/support/_background.scss b/_sass/vendor/susy/susy/output/support/_background.scss new file mode 100644 index 0000000..b141502 --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_background.scss @@ -0,0 +1,58 @@ +// Background Properties +// ===================== + +// Susy Background Image +// --------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-image( + $image +) { + @if susy-support(background-image, (mixin: background-image), $warn: false) { + @include background-image($image...); + } @else { + background-image: $image; + } +} + +// Susy Background Size +// --------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-size( + $size +) { + @if susy-support(background-options, (mixin: background-size)) { + @include background-size($size); + } @else { + background-size: $size; + } +} + +// Susy Background Origin +// ---------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-origin( + $origin +) { + @if susy-support(background-options, (mixin: background-origin)) { + @include background-origin($origin); + } @else { + background-origin: $origin; + } +} + +// Susy Background Clip +// -------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-clip( + $clip +) { + @if susy-support(background-options, (mixin: background-clip)) { + @include background-clip($clip); + } @else { + background-clip: $clip; + } +} diff --git a/_sass/vendor/susy/susy/output/support/_box-sizing.scss b/_sass/vendor/susy/susy/output/support/_box-sizing.scss new file mode 100644 index 0000000..bf50bbc --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_box-sizing.scss @@ -0,0 +1,19 @@ +// Box Sizing +// ========== + +// Box Sizing +// ---------- +// Check for an existing support mixin, or provide a simple fallback. +// - $model: +@mixin susy-box-sizing( + $model: content-box +) { + @if $model { + @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) { + @include box-sizing($model); + } @else { + $prefix: (moz, webkit, official); + @include susy-prefix(box-sizing, $model, $prefix); + } + } +} diff --git a/_sass/vendor/susy/susy/output/support/_clearfix.scss b/_sass/vendor/susy/susy/output/support/_clearfix.scss new file mode 100644 index 0000000..48c6e7b --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_clearfix.scss @@ -0,0 +1,18 @@ +// Susy Fallback Clearfix +// ====================== + + +// Clearfix +// -------- +// Check for an existing support mixin, or provide a simple fallback. +@mixin susy-clearfix { + @if susy-support(clearfix, (mixin: clearfix)) { + @include clearfix; + } @else { + &:after { + content: " "; + display: block; + clear: both; + } + } +} diff --git a/_sass/vendor/susy/susy/output/support/_prefix.scss b/_sass/vendor/susy/susy/output/support/_prefix.scss new file mode 100644 index 0000000..f4e26ec --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_prefix.scss @@ -0,0 +1,19 @@ +// Susy Prefix +// =========== + +// Prefix +// ------ +// Output simple prefixed properties. +// - $prop : +// - $val : +// - [$prefix] : +@mixin susy-prefix( + $prop, + $val, + $prefix: official +) { + @each $fix in $prefix { + $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}'); + @include susy-rem($fix, $val); + } +} diff --git a/_sass/vendor/susy/susy/output/support/_rem.scss b/_sass/vendor/susy/susy/output/support/_rem.scss new file mode 100644 index 0000000..0a807f7 --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_rem.scss @@ -0,0 +1,22 @@ +// rem Support +// =========== + +// rem +// --- +// Check for an existing support mixin, or output directly. +// - $prop : +// - $val : +@mixin susy-rem( + $prop, + $val +) { + $_reqs: ( + variable: rhythm-unit rem-with-px-fallback, + mixin: rem, + ); + @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem { + @include rem($prop, $val); + } @else { + #{$prop}: $val; + } +} diff --git a/_sass/vendor/susy/susy/output/support/_support.scss b/_sass/vendor/susy/susy/output/support/_support.scss new file mode 100644 index 0000000..30b41ad --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_support.scss @@ -0,0 +1,85 @@ +// Browser Support +// =============== + +// Susy Support Defaults +// --------------------- +@include susy-defaults(( + use-custom: ( + clearfix: false, + background-image: true, + background-options: false, + breakpoint: true, + box-sizing: true, + rem: true, + ), +)); + + +// Susy Support [mixin] +// -------------------- +// Send property-value pairs to the proper support modules. +// - $prop : +// - $val : +@mixin susy-support( + $prop, + $val +) { + // Background Support + @if $prop == background-image { + @include susy-background-image($val); + } @else if $prop == background-size { + @include susy-background-size($val); + } @else if $prop == background-origin { + @include susy-background-origin($val); + } @else if $prop == background-clip { + @include susy-background-clip($val); + } + + // Box-Sizing Support + @else if $prop == box-sizing { + @include susy-box-sizing($val); + } + + // Rem Support + @else { + @include susy-rem($prop, $val); + } +} + + +// Susy Support [function] +// ----------------------- +// Check for support of a feature. +// - $feature : +// - e.g "rem" or "box-sizing" +// - $requirements : +// - e.g (variable: rem-with-px-fallback, mixin: rem) +// - $warn : +@function susy-support( + $feature, + $requirements: (), + $warn: true +) { + $_support: susy-get(use-custom $feature); + + @if $_support { + $_fail: false; + + @each $_type, $_req in $requirements { + @each $_i in $_req { + $_pass: call(get-function(unquote("#{$_type}-exists")), $_i); + + @if not($_pass) { + $_fail: true; + @if $warn { + @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available."; + } + } + } + } + + $_support: if($_fail, false, $_support); + } + + @return $_support; +} diff --git a/_sass/vendor/susy/susy/su/_grid.scss b/_sass/vendor/susy/susy/su/_grid.scss new file mode 100644 index 0000000..7fe2a02 --- /dev/null +++ b/_sass/vendor/susy/susy/su/_grid.scss @@ -0,0 +1,103 @@ +// Column math +// =========== + + +// Is Symmetrical +// -------------- +// Returns true if a grid is symmetrical. +// - [$columns] : | +@function is-symmetrical( + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + @return if(type-of($columns) == number, $columns, null); +} + + +// Susy Count +// ---------- +// Find the number of columns in a given layout +// - [$columns] : | +@function susy-count( + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + @return is-symmetrical($columns) or length($columns); +} + + +// Susy Sum +// -------- +// Find the total sum of column-units in a layout +// - [$columns] : | +// - [$gutters] : +// - [$spread] : false/narrow | wide | wider +@function susy-sum( + $columns : susy-get(columns), + $gutters : susy-get(gutters), + $spread : false +) { + $columns: valid-columns($columns); + $gutters: valid-gutters($gutters); + + $spread: if($spread == wide, 0, if($spread == wider, 1, -1)); + $gutter-sum: (susy-count($columns) + $spread) * $gutters; + $column-sum: is-symmetrical($columns); + + @if not($column-sum) { + @each $column in $columns { + $column-sum: ($column-sum or 0) + $column; + } + } + + @return $column-sum + $gutter-sum; +} + + +// Susy Slice +// ---------- +// Return a subset of columns at a given location. +// - $span : +// - $location : +// - [$columns] : | +@function susy-slice( + $span, + $location, + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + $sub-columns: $span; + + @if not(is-symmetrical($columns)) { + $location: $location or 1; + $sub-columns: (); + @for $i from $location to ($location + $span) { + $sub-columns: append($sub-columns, nth($columns, $i)); + } + } + + @return $sub-columns; +} + + +// Susy +// ---- +// Find the sum of a column-span. +// - $span : +// - $location : +// - [$columns] : | +// - [$gutters] : +// - [$spread] : false/narrow | wide | wider +@function susy( + $span, + $location : false, + $columns : susy-get(columns), + $gutters : susy-get(gutters), + $spread : false +) { + $columns: valid-columns($columns); + $gutters: valid-gutters($gutters); + $span: susy-slice($span, $location, $columns); + + @return susy-sum($span, $gutters, $spread); +} diff --git a/_sass/vendor/susy/susy/su/_settings.scss b/_sass/vendor/susy/susy/su/_settings.scss new file mode 100644 index 0000000..8b439aa --- /dev/null +++ b/_sass/vendor/susy/susy/su/_settings.scss @@ -0,0 +1,73 @@ +// Settings +// ======== + +// Version +// ------- +$su-version: 1.1; + + +// Default Settings +// ---------------- +// PRIVATE: The basic settings +$susy-defaults: ( + columns: 4, + gutters: .25, +); + + +// User Settings +// ------------- +// - Define the $susy variable with a map of your own settings. +// - Set EITHER $column-width OR $container +// - Use $column-width for static layouts +$susy: () !default; + + +// Susy Defaults +// ------------- +// PRIVATE: Add defaults to Susy +@mixin susy-defaults( + $defaults +) { + $susy-defaults: map-merge($susy-defaults, $defaults) !global; +} + + +// Susy Set +// -------- +// Change one setting +// - $key : setting name +// - $value : setting value +@mixin susy-set( + $key-value... +) { + $susy: _susy-deep-set($susy, $key-value...) !global; +} + + +// Susy Get +// -------- +// Return one setting from a grid +// - $key : +// - $layout : +@function susy-get( + $key, + $layout: map-merge($susy-defaults, $susy) +) { + $layout: parse-grid($layout); + $_options: $layout $susy $susy-defaults; + $_break: false; + $_return: null; + + @each $opt in $_options { + @if type-of($opt) == map and not($_break) { + $_keyset: _susy-deep-has-key($opt, $key...); + @if $_keyset { + $_return: _susy-deep-get($opt, $key...); + $_break: true; + } + } + } + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/su/_utilities.scss b/_sass/vendor/susy/susy/su/_utilities.scss new file mode 100644 index 0000000..b737f21 --- /dev/null +++ b/_sass/vendor/susy/susy/su/_utilities.scss @@ -0,0 +1,111 @@ +// Map Functions +// ============= + + +// Truncate List +// ------------- +// - Return a list, truncated to a given length +@function _susy-truncate-list( + $list, + $length +) { + $_return: (); + + @for $i from 1 through length($list) { + $_return: if($i <= $length, append($_return, nth($list, $i)), $_return); + } + + @return $_return; +} + + +// Deep Get +// -------- +// - Return a value deep in nested maps +@function _susy-deep-get( + $map, + $keys... +) { + $_return: $map; + + @each $key in $keys { + @if type-of($_return) == map { + $_return: map-get($_return, $key); + } + } + + @return $_return; +} + + +// Deep Set +// -------- +// - Set a value deep in nested maps +@function _susy-deep-set( + $map, + $keys-value... +) { + $_value: nth($keys-value, -1); + $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1); + $_length: length($_keys); + $_return: (); + + @for $i from 1 through $_length { + $_n: 0 - $i; + $_level: _susy-truncate-list($_keys, $_length + $_n); + $_level: _susy-deep-get($map, $_level...); + $_merge: nth($_keys, $_n); + $_merge: ($_merge: $_value); + $_return: if($_level, map-merge($_level, $_merge), $_merge); + $_value: $_return; + } + + @return $_return; +} + + +// Deep Merge +// ---------- +// Return 2 objects of any depth, merged +@function _susy-deep-merge( + $map1, + $map2 +) { + + @if type-of($map1) != map or type-of($map2) != map { + $map1: $map2; + } @else { + @each $key, $value in $map2 { + $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value)); + $map1: map-merge($map1, $_new); + } + } + + @return $map1; +} + + +// Deep Has-Key +// ------------ +// - Return true if a deep key exists +@function _susy-deep-has-key( + $map, + $keys... +) { + $_return: null; + $_stop: false; + + @each $key in $keys { + @if not($_stop) { + $_return: map-has-key($map, $key); + } + + @if $_return { + $map: map-get($map, $key); + } @else { + $_stop: true; + } + } + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/su/_validation.scss b/_sass/vendor/susy/susy/su/_validation.scss new file mode 100644 index 0000000..4c6ab8d --- /dev/null +++ b/_sass/vendor/susy/susy/su/_validation.scss @@ -0,0 +1,57 @@ +// Math Validation +// =============== + + +// Valid Columns +// ------------- +// Check that a column setting is valid. +@function valid-columns( + $columns, + $silent: false +) { + $type: type-of($columns); + $return: null; + + @if $type == number and unitless($columns) { + $return: $columns; + } @else if $type == list { + $fail: null; + @each $col in $columns { + @if type-of($col) == number { + $fail: $fail or if(unitless($col), null, true); + } @else { + $fail: true; + } + } + $return: if($fail, $return, $columns); + } + + @if $return != $columns and not($silent) { + $return: null; + $warn: '$columns must be a unitless number or list of unitless numbers.'; + @warn $warn + ' Current value [#{$type}]: #{$columns}'; + } + + @return $return; +} + + +// Valid Gutters +// ------------- +// Check that a gutter setting is valid. +@function valid-gutters( + $gutters, + $silent: false +) { + $type: type-of($gutters); + $return: null; + + @if $type == number and unitless($gutters) { + $return: $gutters; + } @else if not($silent) { + $warn: '$gutters must be a unitless number.'; + @warn $warn + ' Current value [#{$type}]: #{$gutters}'; + } + + @return $return; +} diff --git a/_talks/2012-03-01-talk-1.md b/_talks/2012-03-01-talk-1.md new file mode 100644 index 0000000..4b552bd --- /dev/null +++ b/_talks/2012-03-01-talk-1.md @@ -0,0 +1,11 @@ +--- +title: "Talk 1 on Relevant Topic in Your Field" +collection: talks +type: "Talk" +permalink: /talks/2012-03-01-talk-1 +venue: "UC San Francisco, Department of Testing" +date: 2012-03-01 +location: "San Francisco, California" +--- + +This is a description of your talk, which is a markdown files that can be all markdown-ified like any other post. Yay markdown! diff --git a/_talks/2013-03-01-tutorial-1.md b/_talks/2013-03-01-tutorial-1.md new file mode 100644 index 0000000..22073df --- /dev/null +++ b/_talks/2013-03-01-tutorial-1.md @@ -0,0 +1,13 @@ +--- +title: "Tutorial 1 on Relevant Topic in Your Field" +collection: talks +type: "Tutorial" +permalink: /talks/2013-03-01-tutorial-1 +venue: "UC-Berkeley Institute for Testing Science" +date: 2013-03-01 +location: "Berkeley CA, USA" +--- + +[More information here](http://exampleurl.com) + +This is a description of your tutorial, note the different field in type. This is a markdown files that can be all markdown-ified like any other post. Yay markdown! diff --git a/_talks/2014-02-01-talk-2.md b/_talks/2014-02-01-talk-2.md new file mode 100644 index 0000000..0fc6b14 --- /dev/null +++ b/_talks/2014-02-01-talk-2.md @@ -0,0 +1,13 @@ +--- +title: "Talk 2 on Relevant Topic in Your Field" +collection: talks +type: "Talk" +permalink: /talks/2014-02-01-talk-2 +venue: "London School of Testing" +date: 2014-02-01 +location: "London, UK" +--- + +[More information here](http://example2.com) + +This is a description of your talk, which is a markdown files that can be all markdown-ified like any other post. Yay markdown! diff --git a/_talks/2014-03-01-talk-3.md b/_talks/2014-03-01-talk-3.md new file mode 100644 index 0000000..ec44637 --- /dev/null +++ b/_talks/2014-03-01-talk-3.md @@ -0,0 +1,11 @@ +--- +title: "Conference Proceeding talk 3 on Relevant Topic in Your Field" +collection: talks +type: "Conference proceedings talk" +permalink: /talks/2014-03-01-talk-3 +venue: "Testing Institute of America 2014 Annual Conference" +date: 2014-03-01 +location: "Los Angeles, CA" +--- + +This is a description of your conference proceedings talk, note the different field in type. You can put anything in this field. diff --git a/_teaching/2014-spring-teaching-1.md b/_teaching/2014-spring-teaching-1.md new file mode 100644 index 0000000..e354740 --- /dev/null +++ b/_teaching/2014-spring-teaching-1.md @@ -0,0 +1,20 @@ +--- +title: "Teaching experience 1" +collection: teaching +type: "Undergraduate course" +permalink: /teaching/2014-spring-teaching-1 +venue: "University 1, Department" +date: 2014-01-01 +location: "City, Country" +--- + +This is a description of a teaching experience. You can use markdown like any other post. + +Heading 1 +====== + +Heading 2 +====== + +Heading 3 +====== \ No newline at end of file diff --git a/_teaching/2015-spring-teaching-2.md b/_teaching/2015-spring-teaching-2.md new file mode 100644 index 0000000..58e1ddb --- /dev/null +++ b/_teaching/2015-spring-teaching-2.md @@ -0,0 +1,20 @@ +--- +title: "Teaching experience 2" +collection: teaching +type: "Workshop" +permalink: /teaching/2015-spring-teaching-1 +venue: "University 1, Department" +date: 2015-01-01 +location: "City, Country" +--- + +This is a description of a teaching experience. You can use markdown like any other post. + +Heading 1 +====== + +Heading 2 +====== + +Heading 3 +====== diff --git a/assets/css/academicons.css b/assets/css/academicons.css new file mode 100755 index 0000000..beb9b07 --- /dev/null +++ b/assets/css/academicons.css @@ -0,0 +1,327 @@ +/* + * Academicons 1.8.0 by James Walsh - https://github.com/jpswalsh + * Fonts generated using the IcoMoon app - http://icomoon.io/app + * Square icons designed to be used alongside Font Awesome square icons - https://fortawesome.github.io/Font-Awesome/ + * Licenses - Font: SIL OFL 1.1, CSS: MIT License + */ +@font-face { + font-family: 'Academicons'; + src:url('../fonts/academicons.eot?v=1.8.0'); + src:url('../fonts/academicons.eot?v=1.8.0') format('embedded-opentype'), + url('../fonts/academicons.ttf?v=1.8.0') format('truetype'), + url('../fonts/academicons.woff?v=1.8.0') format('woff'), + url('../fonts/academicons.svg?v=1.8.0#academicons') format('svg'); + font-weight: normal; + font-style: normal; +} +.ai { + display:inline-block; + font:normal normal normal 14px/1 Academicons; + font-size:inherit; + text-rendering:auto; + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale; +} +.ai-academia:before { + content: "\e800"; +} +.ai-academia-square:before { + content: "\e801"; +} +.ai-acclaim:before { + content: "\e802"; +} +.ai-acclaim-square:before { + content: "\e803"; +} +.ai-acm:before { + content: "\e804"; +} +.ai-acm-square:before { + content: "\e805"; +} +.ai-ads:before { + content: "\e806"; +} +.ai-ads-square:before { + content: "\e807"; +} +.ai-arxiv:before { + content: "\e808"; +} +.ai-arxiv-square:before { + content: "\e809"; +} +.ai-biorxiv:before { + content: "\e810"; +} +.ai-biorxiv-square:before { + content: "\e811"; +} +.ai-ceur:before { + content: "\e812"; +} +.ai-ceur-box:before { + content: "\e813"; +} +.ai-courser:before { + content: "\e814"; +} +.ai-courser-square:before { + content: "\e815"; +} +.ai-dataverse:before { + content: "\e816"; +} +.ai-dataverse-box:before { + content: "\e817"; +} +.ai-dblp:before { + content: "\e818"; +} +.ai-dblp-square:before { + content: "\e819"; +} +.ai-depsy:before { + content: "\e820"; +} +.ai-depsy-square:before { + content: "\e821"; +} +.ai-doi:before { + content: "\e822"; +} +.ai-doi-square:before { + content: "\e823"; +} +.ai-dryad:before { + content: "\e824"; +} +.ai-dryad-square:before { + content: "\e825"; +} +.ai-figshare:before { + content: "\e826"; +} +.ai-figshare-square:before { + content: "\e827"; +} +.ai-google-scholar:before { + content: "\e828"; +} +.ai-google-scholar-square:before { + content: "\e829"; +} +.ai-ieee:before { + content: "\e830"; +} +.ai-ieee-square:before { + content: "\e831"; +} +.ai-impactstory:before { + content: "\e832"; +} +.ai-impactstory-square:before { + content: "\e833"; +} +.ai-inspire:before { + content: "\e834"; +} +.ai-inspire-square:before { + content: "\e835"; +} +.ai-mendeley:before { + content: "\e836"; +} +.ai-mendeley-square:before { + content: "\e837"; +} +.ai-open-access:before { + content: "\e838"; +} +.ai-open-access-square:before { + content: "\e839"; +} +.ai-orcid:before { + content: "\e840"; +} +.ai-orcid-square:before { + content: "\e841"; +} +.ai-osf:before { + content: "\e842"; +} +.ai-osf-square:before { + content: "\e843"; +} +.ai-overleaf:before { + content: "\e844"; +} +.ai-overleaf-square:before { + content: "\e845"; +} +.ai-philpapers:before { + content: "\e846"; +} +.ai-philpapers-square:before { + content: "\e847"; +} +.ai-piazza:before { + content: "\e848"; +} +.ai-piazza-square:before { + content: "\e849"; +} +.ai-publons:before { + content: "\e850"; +} +.ai-publons-square:before { + content: "\e851"; +} +.ai-pubmed:before { + content: "\e852"; +} +.ai-pubmed-square:before { + content: "\e853"; +} +.ai-researchgate:before { + content: "\e854"; +} +.ai-researchgate-square:before { + content: "\e855"; +} +.ai-scirate:before { + content: "\e856"; +} +.ai-scirate-square:before { + content: "\e857"; +} +.ai-springer:before { + content: "\e858"; +} +.ai-springer-square:before { + content: "\e859"; +} +.ai-zotero:before { + content: "\e860"; +} +.ai-zotero-square:before { + content: "\e861"; +} +/* Duplication of the FontAwesome style classes using 'ai' in place of 'fa'. */ +.ai-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.ai-2x { + font-size: 2em; +} +.ai-3x { + font-size: 3em; +} +.ai-4x { + font-size: 4em; +} +.ai-5x { + font-size: 5em; +} +.ai-fw { + width: 1.28571429em; + text-align: center; +} +.ai-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.ai-ul > li { + position: relative; +} +.ai-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.ai-li.fa-lg { + left: -1.85714286em; +} +.ai-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.ai-pull-left { + float: left; +} +.ai-pull-right { + float: right; +} +.ai.fa-pull-left { + margin-right: .3em; +} +.ai.fa-pull-right { + margin-left: .3em; +} +/* + * Repeat of the FontAwesome style classes to prevent override if academicons.css + * is called after font-awesome.css. + */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} \ No newline at end of file diff --git a/assets/css/academicons.min.css b/assets/css/academicons.min.css new file mode 100755 index 0000000..9275e82 --- /dev/null +++ b/assets/css/academicons.min.css @@ -0,0 +1 @@ +.ai-ul,.fa-ul{list-style-type:none}.ai-li,.fa-li{top:.14285714em;text-align:center}.ai-fw,.ai-li,.fa-fw,.fa-li{text-align:center}.ai.fa-pull-left,.fa.fa-pull-left{margin-right:.3em}@font-face{font-family:Academicons;src:url(../fonts/academicons.eot?v=1.8.0);src:url(../fonts/academicons.eot?v=1.8.0) format('embedded-opentype'),url(../fonts/academicons.ttf?v=1.8.0) format('truetype'),url(../fonts/academicons.woff?v=1.8.0) format('woff'),url(../fonts/academicons.svg?v=1.8.0#academicons) format('svg');font-weight:400;font-style:normal}.ai{display:inline-block;font:normal normal normal 14px/1 Academicons;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-lg,.fa-lg{line-height:.75em;vertical-align:-15%}.ai-academia:before{content:"\e800"}.ai-academia-square:before{content:"\e801"}.ai-acclaim:before{content:"\e802"}.ai-acclaim-square:before{content:"\e803"}.ai-acm:before{content:"\e804"}.ai-acm-square:before{content:"\e805"}.ai-ads:before{content:"\e806"}.ai-ads-square:before{content:"\e807"}.ai-arxiv:before{content:"\e808"}.ai-arxiv-square:before{content:"\e809"}.ai-biorxiv:before{content:"\e810"}.ai-biorxiv-square:before{content:"\e811"}.ai-ceur:before{content:"\e812"}.ai-ceur-box:before{content:"\e813"}.ai-courser:before{content:"\e814"}.ai-courser-square:before{content:"\e815"}.ai-dataverse:before{content:"\e816"}.ai-dataverse-box:before{content:"\e817"}.ai-dblp:before{content:"\e818"}.ai-dblp-square:before{content:"\e819"}.ai-depsy:before{content:"\e820"}.ai-depsy-square:before{content:"\e821"}.ai-doi:before{content:"\e822"}.ai-doi-square:before{content:"\e823"}.ai-dryad:before{content:"\e824"}.ai-dryad-square:before{content:"\e825"}.ai-figshare:before{content:"\e826"}.ai-figshare-square:before{content:"\e827"}.ai-google-scholar:before{content:"\e828"}.ai-google-scholar-square:before{content:"\e829"}.ai-ieee:before{content:"\e830"}.ai-ieee-square:before{content:"\e831"}.ai-impactstory:before{content:"\e832"}.ai-impactstory-square:before{content:"\e833"}.ai-inspire:before{content:"\e834"}.ai-inspire-square:before{content:"\e835"}.ai-mendeley:before{content:"\e836"}.ai-mendeley-square:before{content:"\e837"}.ai-open-access:before{content:"\e838"}.ai-open-access-square:before{content:"\e839"}.ai-orcid:before{content:"\e840"}.ai-orcid-square:before{content:"\e841"}.ai-osf:before{content:"\e842"}.ai-osf-square:before{content:"\e843"}.ai-overleaf:before{content:"\e844"}.ai-overleaf-square:before{content:"\e845"}.ai-philpapers:before{content:"\e846"}.ai-philpapers-square:before{content:"\e847"}.ai-piazza:before{content:"\e848"}.ai-piazza-square:before{content:"\e849"}.ai-publons:before{content:"\e850"}.ai-publons-square:before{content:"\e851"}.ai-pubmed:before{content:"\e852"}.ai-pubmed-square:before{content:"\e853"}.ai-researchgate:before{content:"\e854"}.ai-researchgate-square:before{content:"\e855"}.ai-scirate:before{content:"\e856"}.ai-scirate-square:before{content:"\e857"}.ai-springer:before{content:"\e858"}.ai-springer-square:before{content:"\e859"}.ai-zotero:before{content:"\e860"}.ai-zotero-square:before{content:"\e861"}.ai-lg{font-size:1.33333333em}.ai-2x{font-size:2em}.ai-3x{font-size:3em}.ai-4x{font-size:4em}.ai-5x{font-size:5em}.ai-fw{width:1.28571429em}.ai-ul{padding-left:0;margin-left:2.14285714em}.ai-ul>li{position:relative}.ai-li{position:absolute;left:-2.14285714em;width:2.14285714em}.ai-li.fa-lg{left:-1.85714286em}.ai-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.ai-pull-left{float:left}.ai-pull-right{float:right}.ai.fa-pull-right{margin-left:.3em}.fa-lg{font-size:1.33333333em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em}.fa-ul{padding-left:0;margin-left:2.14285714em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-right{margin-left:.3em} \ No newline at end of file diff --git a/assets/css/collapse.css b/assets/css/collapse.css new file mode 100644 index 0000000..f6540bc --- /dev/null +++ b/assets/css/collapse.css @@ -0,0 +1,16 @@ +.container { + width:100%; + border:1px solid #d3d3d3; +} +.container div { + width:100%; +} +.container .header { + background-color:#d3d3d3; + padding: 2px; + cursor: pointer; + font-weight: bold; +} +.container .content { + display: none; + padding : 5px; diff --git a/assets/css/main.scss b/assets/css/main.scss new file mode 100644 index 0000000..a9399e5 --- /dev/null +++ b/assets/css/main.scss @@ -0,0 +1,41 @@ +--- +--- + +/* + * Minimal Mistakes Jekyll Theme + * + * - Michael Rose + * - mademistakes.com + * - https://twitter.com/mmistakes + * +*/ + +@import "vendor/breakpoint/breakpoint"; // media query mixins +@import "variables"; +@import "mixins"; +@import "vendor/susy/susy"; + +@import "reset"; +@import "base"; + +@import "utilities"; +@import "animations"; +@import "tables"; +@import "buttons"; +@import "notices"; +@import "masthead"; +@import "navigation"; +@import "footer"; +@import "syntax"; + +@import "forms"; + +@import "page"; +@import "archive"; +@import "sidebar"; + +@import "vendor/font-awesome/fontawesome"; +@import "vendor/font-awesome/solid"; +@import "vendor/font-awesome/brands"; +@import "vendor/magnific-popup/magnific-popup"; +@import "print"; \ No newline at end of file diff --git a/assets/fonts/academicons.eot b/assets/fonts/academicons.eot new file mode 100755 index 0000000000000000000000000000000000000000..92ef4af3988134234050e7dfca281acd9a9ce51d GIT binary patch literal 38012 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/academicons.svg b/assets/fonts/academicons.svg new file mode 100755 index 0000000..86b51a3 --- /dev/null +++ b/assets/fonts/academicons.svg @@ -0,0 +1,92 @@ + + + + + + +{ + "fontFamily": "academicons", + "majorVersion": 1, + "minorVersion": 8, + "copyright": "James Walsh", + "license": "SIL OFL 1.1", + "licenseURL": "http://scripts.sil.org/OFL", + "designerURL": "http://jpswalsh.com", + "description": "Font icons for academic websites.\nFont generated by IcoMoon.", + "version": "Version 1.8", + "fontId": "academicons", + "psName": "academicons", + "subFamily": "Regular", + "fullName": "academicons" +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/fonts/academicons.ttf b/assets/fonts/academicons.ttf new file mode 100755 index 0000000000000000000000000000000000000000..330b150de1e00497eec28ca0ed97fd6b6750ec2c GIT binary patch literal 37832 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/academicons.woff b/assets/fonts/academicons.woff new file mode 100755 index 0000000000000000000000000000000000000000..ba4de099c4fda3e94cd714bb55b12ce7332df779 GIT binary patch literal 37908 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/fa-brands-400.eot b/assets/fonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..1a675a4f726aa3669cc37464db2579ea076f050a GIT binary patch literal 126428 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�(3D)s7bPtkP$nLovb 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