diff --git a/.bowerrc b/.bowerrc deleted file mode 100644 index cc4897843..000000000 --- a/.bowerrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "directory": "assets/vendor" -} diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index f5688f943..17bb40993 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -13,7 +13,7 @@ ### How to Contribute - [ ] Comment on this issue if you'd like to work/collaborate on it! - [ ] Fork the [repository](https://github.com/github/training-kit). -- [ ] Use the [GitHub Flow](https://guides.github.com/introduction/flow/) to make changes to your fork. [This](https://services.github.com/on-demand/intro-to-github/) is a refresher course if you're unsure about how to make a change on GitHub. +- [ ] Use the [GitHub Flow](https://guides.github.com/introduction/flow/) to make changes to your fork. [This](https://services.github.com{{site.baseurl}}/intro-to-github/) is a refresher course if you're unsure about how to make a change on GitHub. - [ ] Push your changes to your repository. - [ ] Submit a Pull Request - Base Dropdown: github/training-kit @@ -26,7 +26,7 @@ If you'd like to make and test changes locally (and see how they would look if m - [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) - [ ] Run `script/setup` - [ ] Run `script/server`. - - When successful, the script will initiate a local server at `http://127.0.0.1:4000/on-demand`. + - When successful, the script will initiate a local server at `http://127.0.0.1:4000{{site.baseurl}}`. ### Questions? - Leave a comment on this issue! Make sure to use @ mentions if you want a specific person's attention! diff --git a/.gitignore b/.gitignore index 214dd9925..a1bca9e76 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ _site/ .sass-cache/ *.*~ _release +*.map +.jekyll-metadata diff --git a/.travis.yml b/.travis.yml index d0d589d89..048a849e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: ruby rvm: - - 2.0 + - 2.3.1 script: - script/cibuild diff --git a/Gemfile.lock b/Gemfile.lock index cd79501ce..5252aae87 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,144 +1,226 @@ GEM remote: https://rubygems.org/ specs: - RedCloth (4.2.9) - activesupport (4.2.6) + activesupport (4.2.8) i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.4.0) + addressable (2.5.1) + public_suffix (~> 2.0, >= 2.0.2) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.10.0) - colorator (0.1) + coffee-script-source (1.12.2) + colorator (1.1.0) colored (1.2) - ethon (0.9.0) + ethon (0.10.1) ffi (>= 1.3.0) - execjs (2.6.0) - faraday (0.9.2) + execjs (2.7.0) + faraday (0.13.0) multipart-post (>= 1.2, < 3) - ffi (1.9.10) - gemoji (2.1.0) - github-pages (77) - RedCloth (= 4.2.9) - github-pages-health-check (= 1.1.0) - jekyll (= 3.0.5) + ffi (1.9.18) + forwardable-extended (2.6.0) + gemoji (3.0.0) + github-pages (151) + activesupport (= 4.2.8) + github-pages-health-check (= 1.3.5) + jekyll (= 3.5.1) + jekyll-avatar (= 0.4.2) jekyll-coffeescript (= 1.0.1) - jekyll-feed (= 0.5.1) - jekyll-gist (= 1.4.0) - jekyll-github-metadata (= 1.11.1) - jekyll-mentions (= 1.1.2) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.9.2) + jekyll-gist (= 1.4.1) + jekyll-github-metadata (= 2.6.0) + jekyll-mentions (= 1.2.0) + jekyll-optional-front-matter (= 0.2.0) jekyll-paginate (= 1.1.0) - jekyll-redirect-from (= 0.10.0) - jekyll-sass-converter (= 1.3.0) - jekyll-seo-tag (= 1.4.0) - jekyll-sitemap (= 0.10.0) - jekyll-textile-converter (= 0.1.0) - jemoji (= 0.6.2) - kramdown (= 1.10.0) - liquid (= 3.0.6) + jekyll-readme-index (= 0.1.0) + jekyll-redirect-from (= 0.12.1) + jekyll-relative-links (= 0.4.1) + jekyll-sass-converter (= 1.5.0) + jekyll-seo-tag (= 2.2.3) + jekyll-sitemap (= 1.0.0) + jekyll-swiss (= 0.4.0) + jekyll-theme-architect (= 0.1.0) + jekyll-theme-cayman (= 0.1.0) + jekyll-theme-dinky (= 0.1.0) + jekyll-theme-hacker (= 0.1.0) + jekyll-theme-leap-day (= 0.1.0) + jekyll-theme-merlot (= 0.1.0) + jekyll-theme-midnight (= 0.1.0) + jekyll-theme-minimal (= 0.1.0) + jekyll-theme-modernist (= 0.1.0) + jekyll-theme-primer (= 0.4.0) + jekyll-theme-slate (= 0.1.0) + jekyll-theme-tactile (= 0.1.0) + jekyll-theme-time-machine (= 0.1.0) + jekyll-titles-from-headings (= 0.4.0) + jemoji (= 0.8.0) + kramdown (= 1.13.2) + liquid (= 4.0.0) listen (= 3.0.6) mercenary (~> 0.3) - rdiscount (= 2.1.8) - redcarpet (= 3.3.3) - rouge (= 1.10.1) + minima (= 2.1.1) + rouge (= 1.11.1) terminal-table (~> 1.4) - github-pages-health-check (1.1.0) + github-pages-health-check (1.3.5) addressable (~> 2.3) net-dns (~> 0.8) octokit (~> 4.0) - public_suffix (~> 1.4) + public_suffix (~> 2.0) typhoeus (~> 0.7) - html-pipeline (2.4.0) - activesupport (>= 2, < 5) + html-pipeline (2.6.0) + activesupport (>= 2) nokogiri (>= 1.4) - html-proofer (3.0.5) - activesupport (~> 4.2) + html-proofer (3.7.2) + activesupport (>= 4.2, < 6.0) addressable (~> 2.3) colored (~> 1.2) mercenary (~> 0.3.2) - nokogiri (~> 1.5) + nokogiri (~> 1.7) parallel (~> 1.3) typhoeus (~> 0.7) yell (~> 2.0) - i18n (0.7.0) - jekyll (3.0.5) - colorator (~> 0.1) + i18n (0.8.6) + jekyll (3.5.1) + addressable (~> 2.4) + colorator (~> 1.0) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 1.1) kramdown (~> 1.3) - liquid (~> 3.0) + liquid (~> 4.0) mercenary (~> 0.3.3) + pathutil (~> 0.9) rouge (~> 1.7) safe_yaml (~> 1.0) + jekyll-avatar (0.4.2) + jekyll (~> 3.0) jekyll-coffeescript (1.0.1) coffee-script (~> 2.2) - jekyll-feed (0.5.1) - jekyll-gist (1.4.0) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.9.2) + jekyll (~> 3.3) + jekyll-gist (1.4.1) octokit (~> 4.2) - jekyll-github-metadata (1.11.1) - octokit (~> 4.0) - jekyll-mentions (1.1.2) + jekyll-github-metadata (2.6.0) + jekyll (~> 3.1) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.2.0) + activesupport (~> 4.0) html-pipeline (~> 2.3) jekyll (~> 3.0) + jekyll-optional-front-matter (0.2.0) + jekyll (~> 3.0) jekyll-paginate (1.1.0) - jekyll-redirect-from (0.10.0) - jekyll (>= 2.0) - jekyll-sass-converter (1.3.0) - sass (~> 3.2) - jekyll-seo-tag (1.4.0) + jekyll-readme-index (0.1.0) jekyll (~> 3.0) - jekyll-sitemap (0.10.0) - jekyll-textile-converter (0.1.0) - RedCloth (~> 4.0) - jekyll-watch (1.4.0) + jekyll-redirect-from (0.12.1) + jekyll (~> 3.3) + jekyll-relative-links (0.4.1) + jekyll (~> 3.3) + jekyll-sass-converter (1.5.0) + sass (~> 3.4) + jekyll-seo-tag (2.2.3) + jekyll (~> 3.3) + jekyll-sitemap (1.0.0) + jekyll (~> 3.3) + jekyll-swiss (0.4.0) + jekyll-theme-architect (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.4.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.2) + jekyll-theme-slate (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.4.0) + jekyll (~> 3.3) + jekyll-watch (1.5.0) listen (~> 3.0, < 3.1) - jemoji (0.6.2) - gemoji (~> 2.0) + jemoji (0.8.0) + activesupport (~> 4.0) + gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0) - json (1.8.3) - kramdown (1.10.0) - liquid (3.0.6) + kramdown (1.13.2) + liquid (4.0.0) listen (3.0.6) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9.7) mercenary (0.3.6) - mini_portile2 (2.0.0) - minitest (5.8.4) + mini_portile2 (2.2.0) + minima (2.1.1) + jekyll (~> 3.3) + minitest (5.10.3) multipart-post (2.0.0) net-dns (0.8.0) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) - octokit (4.3.0) - sawyer (~> 0.7.0, >= 0.5.3) - parallel (1.8.0) - public_suffix (1.5.3) - rack (1.5.2) + nokogiri (1.8.0) + mini_portile2 (~> 2.2.0) + octokit (4.7.0) + sawyer (~> 0.8.0, >= 0.5.3) + parallel (1.12.0) + pathutil (0.14.0) + forwardable-extended (~> 2.6) + public_suffix (2.0.5) + rack (2.0.3) rack-contrib (1.1.0) rack (>= 0.9.1) - rake (10.3.2) - rb-fsevent (0.9.7) - rb-inotify (0.9.7) - ffi (>= 0.5.0) - rdiscount (2.1.8) - redcarpet (3.3.3) - rouge (1.10.1) + rake (12.0.0) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rouge (1.11.1) safe_yaml (1.0.4) - sass (3.4.22) - sawyer (0.7.0) - addressable (>= 2.3.5, < 2.5) - faraday (~> 0.8, < 0.10) - terminal-table (1.5.2) - thread_safe (0.3.5) + sass (3.5.1) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) typhoeus (0.8.0) ethon (>= 0.8.0) - tzinfo (1.2.2) + tzinfo (1.2.3) thread_safe (~> 0.1) - yell (2.0.6) + unicode-display_width (1.3.0) + yell (2.0.7) PLATFORMS ruby @@ -150,4 +232,4 @@ DEPENDENCIES rake BUNDLED WITH - 1.12.0 + 1.15.3 diff --git a/README.md b/README.md index f3b870e85..1467abd3c 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,13 @@ # GitHub Training Kit ### Home of GitHub's On-Demand training -This repository contains the completely open source on-demand training hosted at https://services.github.com/on-demand/. These materials are provided under a [_Creative Commons License_ license](https://github.com/github/training-kit/blob/master/LICENSE). +This repository contains the completely open source on-demand training hosted at https://services.github.com{{site.baseurl}}/. These materials are provided under a [_Creative Commons License_ license](https://github.com/github/training-kit/blob/master/LICENSE). ## We :heart: Contributors Like You! **We’re eager to work with you**, our user community to improve these materials and develop new ones. Here's how you can help: -- **You spotted a mistake:** please feel free to fork the repository and submit a change via Pull Request (not sure how to do that, [we have a course for you](https://services.github.com/on-demand)). +- **You spotted a mistake:** please feel free to fork the repository and submit a change via Pull Request (not sure how to do that, [we have a course for you](https://services.github.com{{site.baseurl}})). - **You have an idea to make it better:** we :heart: new ideas! We invite you to open a new [Issue](https://github.com/github/training-kit/issues) if you want to talk about it, or you can [fork this repository](https://help.github.com/articles/working-with-forks/) and submit your idea via a Pull Request. - **You just want to help:** check out the [open issues](https://github.com/github/training-kit/issues) for projects you can tackle, review an [open pull request](https://github.com/github/training-kit/pulls), or check out [the project ROADMAP](https://github.com/github/training-kit/projects/1). @@ -21,9 +21,9 @@ For more information on contributing to this repository, check out our [CONTRIBU This repository contains three primary resources: -- Our current [on-demand courses](https://services.github.com/on-demand/) can be found in the [paths directory](/paths) -- The translations of our popular [Git Cheat Sheets](https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf) can be found in the [downloads directory](/downloads). We're always looking for more. _P.S._ Right now the PDF generation is a manual process so please mention @github/services-training for assistance in getting your translation moved to the PDF. -- The recommended [Training Path](https://services.github.com/on-demand/path/) can be found [here](/self-study.md). +- Our current [on-demand courses](https://services.github.com{{site.baseurl}}/) can be found in the [paths directory](/paths) +- The translations of our popular [Git Cheat Sheets](https://services.github.com{{site.baseurl}}/downloads/github-git-cheat-sheet.pdf) can be found in the [downloads directory](/downloads). We're always looking for more. _P.S._ Right now the PDF generation is a manual process so please mention @github/services-training for assistance in getting your translation moved to the PDF. +- The recommended Training Path can be found [here](https://services.github.com/resources/learning-path/). ## Our Content Philosophy @@ -31,9 +31,11 @@ We are eager to create materials that are easy to use and follow! To that end, h - We focus on providing clear, step-by-step instructions for completing an activity, giving the learner the opportunity to study the concept in greater detail with the Tell Me Why feature. - We focus on minimalism. + +## Projects Used in Training-Kit - We use [Jekyll](https://jekyllrb.com/) and [Markdown](https://guides.github.com/features/mastering-markdown/). - The theme for the on-demand training is [Minimal Mistakes](https://mmistakes.github.io/minimal-mistakes/) and has some [amazing documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/). - +- The corner badge of an Octocat is from [tholman.com](http://tholman.com/github-corners/) ## Building and Packaging @@ -45,8 +47,12 @@ To perform a build of the materials perform the following: 1. Run `script/setup` 1. Run `script/server`. - - When successful, the script will initiate a local server at `http://127.0.0.1:4000/on-demand`. + - When successful, the script will initiate a local server at `http://127.0.0.1:4000{{site.baseurl}}`. 1. Simply paste that into your favorite web-browser and you will be ready to test. +1. You'll also need to run the following script to compile the SCSS (you can remove the `watch` flag if desired): +``` +sass --watch assets/_scss/main.scss:assets/css/main.css +``` #### Packaging for Viewing Behind Your Firewall @@ -63,7 +69,7 @@ If you'd like to have a copy of the files to be served from a web server inside Site content is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/). CC-BY-4.0 gives you permission to use content for almost any purpose but does not grant you any trademark permissions, so long as you note the license and give credit, such as follows: > Content based on -> github.com/github/on-demand +> services.github.com{{site.baseurl}} > used under the > CC-BY-4.0 > license. diff --git a/Rakefile b/Rakefile index f51886d5a..a2e66a52a 100644 --- a/Rakefile +++ b/Rakefile @@ -8,4 +8,4 @@ task :test do end -task default: :test +task default: :test \ No newline at end of file diff --git a/_config.yml b/_config.yml index a17b073bc..66ce34c3d 100644 --- a/_config.yml +++ b/_config.yml @@ -49,7 +49,7 @@ incremental: false parentsite: https://services.github.com permalink: /articles/:title/ -gems: +plugins: - jekyll-paginate - jekyll-sitemap - jekyll-gist @@ -78,7 +78,7 @@ include: - _stylesheets - _javascript sass: - sass_dir: assets/vendor/ + sass_dir: assets/_scss style: :compressed # Custom site configuration diff --git a/_data/navigation.yml b/_data/navigation.yml index d738db241..dc35543d7 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -3,123 +3,236 @@ main: # Keep original nav, do not replace - title: "Introduction to GitHub" url: /intro-to-github/ - - title: "Using GitHub Desktop" - beta: true + - title: "GitHub Pages from GitHub Desktop" url: /github-desktop/ - - title: "Using the Command Line" - beta: true + - title: "GitHub Pages from the Command Line" url: /github-cli/ - - title: "Community" + - title: "Git Out of Trouble" + url: /git-trouble/ + - title: "GitHub for Windows Users" + url: /windows/ + - title: "Introduction to GraphQL" + url: /graphql/ + - title: "Electron Suite" + url: /electron/ + - title: "Git & GitHub Training Path" + url: /path/ + - title: "GitHub Training Community" url: /community/ # When creating new sidebar navs, remember the url in this document needs to match the url assigned in the permalink field. intro-nav: - - title: "Welcome" + - title: "Introduction to GitHub" url: /intro-to-github/ - title: "Create a GitHub Account" - url: /intro-to-github/01/ + url: /intro-to-github/create-github-account - title: "Join the Class Repository" - url: /intro-to-github/02/ - - title: "Manage Notifications" - url: /intro-to-github/03/ - - title: "Exploring the Repository" - url: /intro-to-github/04/ - - title: "Using GitHub Flow" - url: /intro-to-github/05/ - - title: "Creating a Branch" - url: /intro-to-github/06/ + url: /intro-to-github/join-class-repository + - title: "Explore the GitHub Repository" + url: /intro-to-github/explore-github-repository + - title: "Use GitHub Flow" + url: /intro-to-github/use-github-flow + - title: "Create a Branch" + url: /intro-to-github/create-a-branch - title: "Find Your Coordinates" - url: /intro-to-github/07/ - - title: "Working on GitHub" - url: /intro-to-github/08/ - - title: "Creating a Pull Request" - url: /intro-to-github/09/ - - title: "Collaborating on GitHub" - url: /intro-to-github/10/ - - title: "Editing Files" - url: /intro-to-github/11/ - - title: "Merging Pull Requests" - url: /intro-to-github/12/ - - title: "Celebrate" - url: /intro-to-github/13/ - -gh-pages: - - title: "Introduction to GitHub Pages" - url: /patchwork/gh-pages/ - - title: "Editing Your GitHub Page" - url: /patchwork/gh-pages/02/ - - title: "Creating Pages and Posts in Jekyll" - url: /patchwork/gh-pages/03/ - - title: "Templates and Design" - url: /patchwork/gh-pages/04/ - - title: "Installing Jekyll Locally" - url: /patchwork/gh-pages/05/ + url: /intro-to-github/find-your-coordinates + - title: "Work on GitHub" + url: /intro-to-github/work-on-github + - title: "Create a Pull Request" + url: /intro-to-github/create-pull-request + - title: "Collaborate on GitHub" + url: /intro-to-github/collaborate-on-github + - title: "Edit Files on GitHub" + url: /intro-to-github/edit-files-on-github + - title: "Merge Your Pull Request" + url: /intro-to-github/merge-pull-request + - title: "You Completed the GitHub Flow" + url: /intro-to-github/you-completed-github-flow github-desktop-nav: - - title: "Welcome" - url: /github-desktop/ - - title: "Install GitHub Desktop" - url: /github-desktop/02/ - - title: "Create the Remote Repository" - url: /github-desktop/03/ - - title: "Clone the Repository" - url: /github-desktop/04/ - - title: "Create Local Branches" - url: /github-desktop/05/ - - title: "Make Local Changes" - url: /github-desktop/06/ - - title: "Add Local Commits" - url: /github-desktop/07/ - - title: "Open a Pull Request" - url: /github-desktop/08/ - - title: "Merge Your Pull Request" - url: /github-desktop/09/ - - title: "View Your site" - url: /github-desktop/10/ - - title: "Keep Things in Sync" - url: /github-desktop/11/ - - title: "Add Your Site to the Showcase" - url: /github-desktop/12/ - - title: "Review the Local Workflow" - url: /github-desktop/13/ - - title: "Review Pushing and Opening Pull Requests" - url: /github-desktop/14/ - - title: "Let's Collaborate!" - url: /github-desktop/15/ - - title: "Merge Your PR" - url: /github-desktop/16/ + - title: "GitHub Pages & GitHub Desktop" + url: /github-desktop/ + - title: "Install GitHub Desktop" + url: /github-desktop/install-github-desktop + - title: "Create the Remote Repository on GitHub" + url: /github-desktop/create-remote-repository + - title: "Choose a GitHub Pages Theme" + url: /github-desktop/choose-github-pages-theme + - title: "Clone the Repository with GitHub Desktop" + url: /github-desktop/clone-repository-github-desktop + - title: "Create Local Branches With GitHub Desktop" + url: /github-desktop/create-branches-github-desktop + - title: "Make Local Changes With GitHub Desktop" + url: /github-desktop/make-changes-github-desktop + - title: "Add Local Commits With GitHub Desktop" + url: /github-desktop/add-commits-github-desktop + - title: "Open a Pull Request With GitHub Desktop" + url: /github-desktop/pull-request-github-desktop + - title: "Merge Your Pull Request on GitHub" + url: /github-desktop/merge-pull-request-github + - title: "View Your GitHub Pages Site" + url: /github-desktop/view-github-pages-site + - title: "Push to GitHub with GitHub Desktop" + url: /github-desktop/push-with-github-desktop + - title: "Add Your GitHub Pages Site to the Showcase" + url: /github-desktop/add-github-pages-site-showcase + - title: "Review the Local GitHub Flow" + url: /github-desktop/review-github-flow + - title: "Push to GitHub & Create a Pull Request" + url: /github-desktop/push-pull-request-github-desktop + - title: "Collaborate With GitHub Pull Requests" + url: /github-desktop/collaborate-github-pull-requests + - title: "Merge Your Pull Request on GitHub" + url: /github-desktop/merge-pull-request-showcase github-cli: - - title: "Welcome" + - title: "GitHub Pages & Git in the Command Line" url: /github-cli/ - title: "Git Configuration" - url: /github-cli/02 - - title: "Create the Remote Repository" - url: /github-cli/03 - - title: "Clone the Repository" - url: /github-cli/04 - - title: "Create Local Branches" - url: /github-cli/05 - - title: "Make Local Changes" - url: /github-cli/06 - - title: "Add Local Commits" - url: /github-cli/07 - - title: "Open a Pull Request" - url: /github-cli/08 - - title: "Merge Your Pull Request" - url: /github-cli/09 - - title: "View Your site" - url: /github-cli/10 - - title: "Keep Things in Sync" - url: /github-cli/11 - - title: "Add Your Site to the Showcase" - url: /github-cli/12 - - title: "Review the Local Workflow" - url: /github-cli/13 + url: /github-cli/git-configuration + - title: "Create the Remote Repository on GitHub" + url: /github-cli/create-remote-repository + - title: "Choose a GitHub Pages Theme" + url: /github-cli/choose-github-pages-theme + - title: "Clone the Repository Using the Command Line" + url: /github-cli/clone-repo-cli + - title: "Create Local Branches With Git" + url: /github-cli/create-branches-git + - title: "Make Local Changes With Git" + url: /github-cli/make-local-changes-git + - title: "Add Local Commits With Git" + url: /github-cli/add-commits-git + - title: "Open a Pull Request on GitHub" + url: /github-cli/open-pull-request-github + - title: "Merge Your Pull Request on GitHub" + url: /github-cli/merge-pull-request-github + - title: "View Your GitHub Pages Site" + url: /github-cli/view-github-pages-site + - title: "Git Push & Git Pull" + url: /github-cli/git-push-git-pull + - title: "Add Your GitHub Pages Site to the Showcase" + url: /github-cli/add-github-pages-site-showcase + - title: "Review the Local GitHub Flow in the Command Line" + url: /github-cli/github-flow-cli - title: "Review Pushing and Opening Pull Requests" - url: /github-cli/14 - - title: "Let's Collaborate!" - url: /github-cli/15 - - title: "Merge Your PR" - url: /github-cli/16 + url: /github-cli/git-push-open-pull-request + - title: "Collaborate With GitHub Pull Requests" + url: /github-cli/collaborate-github-pull-requests + - title: "Merge Your Pull Request on GitHub" + url: /github-cli/merge-pull-request-github-showcase + +advanced: + - title: "Welcome to Git Out Of Trouble" + url: /git-trouble/ + - title: "Set Up Your Git Scenario Environment" + url: /git-trouble/git-set-up + - title: "Git Trouble Scenarios" + url: /git-trouble/git-scenarios + children: + - title: "Too Many (small) Git Commits" + url: /git-trouble/too-many-commits + - title: "Git Commit Message Sucks" + url: /git-trouble/git-commit-message + - title: "Git Committed to Wrong Branch" + url: /git-trouble/git-commit-wrong-branch + - title: "Accidental Git Commit" + url: /git-trouble/accidental-git-commit + - title: "Just Make it Go Away - Breaking Things With Git" + url: /git-trouble/breaking-things-with-git + +windows: + - title: "Welcome to GitHub for Windows Users" + url: /windows/ + - title: "Get Started" + url: /windows/getting-started + children: + - title: "Install Git" + url: /windows/installing-git + - title: "Configure Git" + url: /windows/configure-git + - title: "Configure Line Endings" + url: /windows/git-crlf + - title: "Store Your Password" + url: /windows/git-credentials + - title: "Editors" + url: /windows/editors + children: + - title: "vi Basics" + url: /windows/vi-basics + - title: "Configure Other Editors" + url: /windows/configure-editors + - title: "Visual Studio Integration" + url: /windows/visual-studio + children: + - title: "Install the GitHub Extension" + url: /windows/install-visual-studio + - title: "Start a Project" + url: /windows/vs-start-project + - title: "Make a Commit" + url: /windows/vs-make-commit + - title: "What is Sync?" + url: /windows/vs-sync + - title: "Congratulations" + url: /windows/congrats + + +github-graphql: + - title: "Introduction to GraphQL" + url: /graphql/ + - title: "Use GraphQL for the First Time" + url: /graphql/first-use + - title: "Build a Query" + url: /graphql/first-query + - title: "Grab a Query's Response" + url: /graphql/query-info + - title: "Use a Query to Find Specific Information" + url: /graphql/another-query + - title: "Create a Mutation" + url: /graphql/mutation + + +create-an-app-in-electron: + - title: "Get Started with Electron" + url: /electron/create-an-app/ + - title: "Create your app" + url: /electron/create-an-app/create-your-app/ + - title: "Push your project to GitHub" + url: /electron/create-an-app/push-your-project-to-github/ + - title: "Create your App's Files" + url: /electron/create-an-app/create-your-apps-files/ + - title: "Run Your First Electron App" + url: /electron/create-an-app/run-your-first-electron-app/ + - title: "Add your index.html" + url: /electron/create-an-app/add-your-index-html/ + - title: "Add CSS" + url: /electron/create-an-app/add-css/ + - title: "Add JavaScript" + url: /electron/create-an-app/add-javascript/ + - title: "Celebrate" + url: /electron/create-an-app/celebrate/ + + +electron-package-your-app: + - title: "Package Your App for Downloads" + url: /electron/package-your-app/ + - title: "Use electron-packager" + url: /electron/package-your-app/use-electron-packager/ + - title: "Add an icon" + url: /electron/package-your-app/add-an-icon/ + - title: "Test Your App" + url: /electron/package-your-app/test-your-app/ + - title: "Celebrate" + url: /electron/package-your-app/celebrate/ + + + +electron-share-your-app: + - title: "Share Your App" + url: /electron/share-your-app/ + - title: "List on App Stores" + url: /electron/share-your-app/list-on-app-stores/ + - title: "Share on Websites" + url: /electron/share-your-app/share-on-websites/ + - title: "Celebrate" + url: /electron/share-your-app/celebrate/ diff --git a/_includes/activity/gh-pages/02-create-profile.md b/_includes/activity/gh-pages/02-create-profile.md index 9e4057c0c..774727159 100644 --- a/_includes/activity/gh-pages/02-create-profile.md +++ b/_includes/activity/gh-pages/02-create-profile.md @@ -30,5 +30,5 @@ Don't worry if you don't want to put your actual information up online. It's OK {{ activity-text | markdownify }} -Need help? Click **open chat** below for answers from GitHub trainers! +Need help? **Open an issue** [in our class repository](https://github.com/githubschool{{site.baseurl}}-github-pages/issues/new) for answers from GitHub trainers! {: .notice--success} diff --git a/_includes/activity/gh-pages/03-create-new-page.md b/_includes/activity/gh-pages/03-create-new-page.md index cdd33d5fe..1af1ec8b6 100644 --- a/_includes/activity/gh-pages/03-create-new-page.md +++ b/_includes/activity/gh-pages/03-create-new-page.md @@ -15,5 +15,5 @@ Time to add our work history as a page to our Jekyll site. {{ activity-text | markdownify }} -Need help? Click **open chat** below for answers from GitHub trainers! +Need help? **Open an issue** [in our class repository](https://github.com/githubschool{{site.baseurl}}-github-pages/issues/new) for answers from GitHub trainers! {: .notice--success} diff --git a/_includes/activity/gh-pages/04-more-content.md b/_includes/activity/gh-pages/04-more-content.md index ca13994d6..a7dadf990 100644 --- a/_includes/activity/gh-pages/04-more-content.md +++ b/_includes/activity/gh-pages/04-more-content.md @@ -24,5 +24,5 @@ You might also look into the "collections" functionality in Jekyll. This would l {{ activity-text | markdownify }} -Need help? Click **open chat** below for answers from GitHub trainers! +Need help? **Open an issue** [in our class repository](https://github.com/githubschool{{site.baseurl}}-github-pages/issues/new) for answers from GitHub trainers! {: .notice--success} diff --git a/_includes/activity/github-CLI/05-make-commits.md b/_includes/activity/github-CLI/05-make-commits.md index f30469fb0..851679e0b 100644 --- a/_includes/activity/github-CLI/05-make-commits.md +++ b/_includes/activity/github-CLI/05-make-commits.md @@ -6,6 +6,6 @@ Your file is listed under the heading _Untracked files_. 1. Type `git status` again to see what has changed. Your file is now listed under the heading _Changes to be committed_. This tells us that the file is in the staging area. It also indicates this is a new file. 1. Type `git commit`. This tells git to collect all of the files in the staging area and commit them to version control as a single unit of work. Git will open your default text editor where you can enter the commit message. 1. Type the commit message, save and quit your editor. - - The default text editor associated with git is `vi` in most cases, which requires that you type `:wq` to save and quit after entering your commit message. + - The default text editor associated with git is `vi` in most cases, which requires that you press the `Esc` key then type `:wq` to save and quit after entering your commit message. - Alternatively, you can bypass `vi` altogether and enter your commit message inline with `git commit -m "your message"` 1. To see the history of commits, type `git log`. diff --git a/_includes/activity/github-CLI/clisurvey.md b/_includes/activity/github-CLI/clisurvey.md new file mode 100644 index 000000000..152a301d7 --- /dev/null +++ b/_includes/activity/github-CLI/clisurvey.md @@ -0,0 +1,2 @@ +## We Love Feedback :heart: + Please take _literally less than a minute_ to let us know what you think of this course. You may also choose to opt-in for updates on future classes. [Start Survey](http://www.surveygizmo.com/s3/3288550/cli)! diff --git a/_includes/activity/github-desktop/01-create-repository.md b/_includes/activity/github-desktop/01-create-repository.md index 74a44fb67..2ac1957f0 100644 --- a/_includes/activity/github-desktop/01-create-repository.md +++ b/_includes/activity/github-desktop/01-create-repository.md @@ -1,7 +1,7 @@ Now that you have what you need for Git and GitHub installed locally, let's create the repository that will hold your new website. 1. On GitHub.com, [create a new repository](https://github.com/new). -1. Name your repository `YOUR-USERNAME.github.io`. Why the funny name? Click the **Tell me why** section below to learn more. +1. Name your repository. The name of your repository will be part of the link to your website. 1. Enter a description for your repository. 1. We recommend you create a public repository. Public repositories are free. Even if you select a private repository, your published website will be public. 1. Check the box to initialize the repository with a README. diff --git a/_includes/activity/github-desktop/02-clone-locally.md b/_includes/activity/github-desktop/02-clone-locally.md index cb151da14..9b0342c13 100644 --- a/_includes/activity/github-desktop/02-clone-locally.md +++ b/_includes/activity/github-desktop/02-clone-locally.md @@ -4,5 +4,5 @@ After you've created a repository on the remote, the next step is to clone it to 1. On GitHub.com, navigate to the Code tab of the repository. 1. On the right side of the screen, click `Clone or download`. 1. Click `Open in Desktop`. This will open GitHub Desktop. -1. Verify the location on your hard drive where you would like to copy the repository. +1. Select where you'd like to save it locally under `Local Path` 1. Click `Clone`. diff --git a/_includes/activity/github-desktop/03-create-branch.md b/_includes/activity/github-desktop/03-create-branch.md index 21e11b8e4..a42a29d3f 100644 --- a/_includes/activity/github-desktop/03-create-branch.md +++ b/_includes/activity/github-desktop/03-create-branch.md @@ -1,7 +1,7 @@ Now that you have a local copy of the repository, let's use the steps of [GitHub Flow](https://guides.github.com/introduction/flow/) to make a change in your project. First we will create a branch: -1. At the top of GitHub Desktop, click the button. +1. Within GitHub Desktop, click "File", then click "New Branch". 1. In the `Name` field, type a meaningful name for your branch. Something like `add-index-page` will work nicely. -1. Click `Create branch`. +1. If you have been following the directions exactly, GitHub Desktop knows to create the new branch based on `master` because it is the branch you were checked out to when you clicked the "New Branch" option. 1. GitHub Desktop will automatically create your new branch and switch you to it. diff --git a/_includes/activity/github-desktop/04-make-changes-locally.md b/_includes/activity/github-desktop/04-make-changes-locally.md index 91ba7011f..43379d3bc 100644 --- a/_includes/activity/github-desktop/04-make-changes-locally.md +++ b/_includes/activity/github-desktop/04-make-changes-locally.md @@ -1,8 +1,20 @@ It's time to create the home page for your website. -1. Make sure you are checked out to the new branch you just created. +1. Make sure you are checked out to the new branch you just created. You change branches by clicking the **Current Branch** button at the top of the application, then selecting a branch. 1. Open your preferred text editor. + +The next steps are determined by if you used a GitHub Pages theme or decided to just enable GitHub Pages on your repository. + +### I am using a GitHub Pages theme + +1. Open the file named `README.md`. +1. Remove the template text that was added to the `README.md` when you selected your theme. +1. In the `README.md` file include at least the following two lines: `# Hello World!` and `My name is GITHUB_USERNAME`. Bonus points for including more information. +1. When you are finished, save your changes and close the text editor. + +### I am not using a GitHub Pages theme + 1. Create a new file named `index.html`. 1. In your `index.html` file, include at least the following two lines: `

Hello World!

` and `

My name is GITHUB_USERNAME

`. Bonus points for including more information, or using [Jekyll Themes](http://jekyllthemes.org/) to create a more robust site. 1. When you are finished, save your file inside your repository folder, and close the text editor. diff --git a/_includes/activity/github-desktop/05-committing-locally.md b/_includes/activity/github-desktop/05-committing-locally.md index 9a9544dbc..0e9b54e33 100644 --- a/_includes/activity/github-desktop/05-committing-locally.md +++ b/_includes/activity/github-desktop/05-committing-locally.md @@ -1,8 +1,10 @@ After you have finished making your changes, it is time to commit them. -1. Click the changes tab to see a list of the files that have been changed or added since the last commit. +1. Click the **changes** tab in the left sidebar to see a list of the files that have been changed or added since the last commit. 1. Use the checkboxes to indicate which files should be part of the commit. In this activity, you'll select the `index.html` file. -*Note: It is a good idea to group files together based on the type of changes or the file content. For example, if you fixed the same formatting issue in several documents, you should group them into one commit.* + + *Note: It is a good idea to group files together based on the type of changes or the file content. For example, if you fixed the same formatting issue in several documents, you should group them into one commit.* + 1. Type your commit message in the Summary field. 1. You will notice that GitHub Desktop has already populated the commit button with the current branch. Simply click the button to commit your changes. diff --git a/_includes/activity/github-desktop/06-pull-request.md b/_includes/activity/github-desktop/06-pull-request.md index 4f136b8c6..b4e3d6ba4 100644 --- a/_includes/activity/github-desktop/06-pull-request.md +++ b/_includes/activity/github-desktop/06-pull-request.md @@ -1,6 +1,7 @@ -Now that you have made some local commits, it is time to send your changes to the remote copy of your repository on GitHub.com: +Now that you have made some local commits, it is time to send your changes to the remote copy of your repository on GitHub.com and open a pull request: -1. On GitHub Desktop, click the Pull Request button. -1. Complete the fields of the Pull Request just like you would on GitHub.com. Ensure the `base` branch (the one on the left) is `master` and that the `compare` branch (the one on the right) is the one you created on GitHub Desktop. -1. Click `Send Pull Request`. GitHub Desktop will send your changes and create a pull request. -1. You will receive a confirmation message including the link to your Pull Request. Click the link to view your newly created Pull Request on GitHub.com! +1. On GitHub Desktop, click the button to sync changes. This button changes states based on the changes that have been made in your local repository and on the remote. If no other changes have been made, it will read **Publish Branch**. +1. In your browser, go to the ['Pull Requests' tab of the class repository](https://github.com/githubschool{{site.baseurl}}-github-pages/pulls). +1. Click ['New pull request'](https://github.com/githubschool{{site.baseurl}}-github-pages/compare). +1. Ensure the `base` branch (the one on the left) is `master` and that the `compare` branch (the one on the right) is the one you created on GitHub Desktop. +1. Complete the fields of the pull request. diff --git a/_includes/activity/github-desktop/08-sync-desktop.md b/_includes/activity/github-desktop/08-sync-desktop.md index a6f6bb6d2..10272d4f1 100644 --- a/_includes/activity/github-desktop/08-sync-desktop.md +++ b/_includes/activity/github-desktop/08-sync-desktop.md @@ -2,4 +2,5 @@ After you merge your Pull Request, you will need to update your local copy of th 1. Navigate back to GitHub Desktop. 1. Select the `master` branch at the top of the app. -1. Click the **Sync** button on the top right side of the app to update your local copy of the repository with the changes from the remote repository. +1. Click the button that displays **Fetch Origin** to get an updated status for the remote repository. +1. Then click **Pull Origin** to retrieve the changes to your local repository. diff --git a/_includes/activity/github-desktop/12-add-class-repo.md b/_includes/activity/github-desktop/12-add-class-repo.md index af1de91d2..4dd093fa0 100644 --- a/_includes/activity/github-desktop/12-add-class-repo.md +++ b/_includes/activity/github-desktop/12-add-class-repo.md @@ -1,5 +1,5 @@ It's time to share your page with the world! To do that, you will follow the same steps of the GitHub workflow, but this time you will do it on the class repository: -1. Visit the [class repository](https://github.com/githubschool/on-demand-github-pages/). +1. Visit the [class repository](https://github.com/githubschool{{site.baseurl}}-github-pages/). 1. Click the **Issues** tab. -1. Request push access by leaving a comment on [Issue #1](https://github.com/githubschool/on-demand-github-pages/issues/1). +1. Request push access by creating an [Issue](https://github.com/githubschool{{site.baseurl}}-github-pages/issues/). diff --git a/_includes/activity/github-desktop/13-review-workflow.md b/_includes/activity/github-desktop/13-review-workflow.md index 8327c5341..1e5d091d9 100644 --- a/_includes/activity/github-desktop/13-review-workflow.md +++ b/_includes/activity/github-desktop/13-review-workflow.md @@ -1,14 +1,21 @@ Now that you are a collaborator, let's use the local workflow we just learned to make changes to this repository: -1. Start from the Code tab of the [class repository on GitHub.com](https://github.com/githubschool/on-demand-github-pages/). -1. Click on `Clone or Download` and select `Open in Desktop`. -1. Confirm where you'd like to save your project on GitHub Desktop. -1. Create a branch and label it with your username, something like `yourUsername-add-page`. +1. Start from the Code tab of the [class repository on GitHub.com](https://github.com/githubschool{{site.baseurl}}-github-pages/). +1. Click on `Clone or Download`. +1. Click `Open in Desktop`. This will open GitHub Desktop. +1. Confirm the `Local Path` as the place you'd like to store the repository locally. +1. Create a branch by clicking "File > New Branch" and label it with your username, something like `yourUsername-add-page`. 1. In your favorite text editor, add a file to the `_pages` directory. Include your GitHub handle in the filename: `username.yaml`. 1. Enter the following content into your file: - ![]({{site.baseurl}}/images/github-pages-code.png){: .align-center} + + --- + githubHandle: YOUR-USERNAME + pageUrl: YOUR-HANDLE.github.io + timestamp: TODAYS-DATE-YYYY-MM-DD + --- + 1. Ensure you've replaced `YOUR-USERNAME` with your GitHub Username, `YOUR-SITES-URL` with the URL to your site (which should be `YOUR-USERNAME.github.io`), and `TODAYS-DATE-YYYY-MM-DD` with today's date, using a 4-digit year, 2-digit month, and 2-digit day. For example, if today is October 17, 2016, you would enter: `2016-10-17`. -1. On GitHub Desktop, within the `Uncommitted Changes` tab, ensure your file is checked. +1. On GitHub Desktop, within the `Changes` side bar, ensure your file is checked. 1. On GitHub Desktop, enter a commit message describing the change you're introducing to the project. 1. On GitHub Desktop, click the `Commit to YOUR-BRANCH` button -- ensure `YOUR-BRANCH` includes your username. diff --git a/_includes/activity/github-desktop/15-collaborate-prs.md b/_includes/activity/github-desktop/15-collaborate-prs.md index ccf74f2cd..586427ef9 100644 --- a/_includes/activity/github-desktop/15-collaborate-prs.md +++ b/_includes/activity/github-desktop/15-collaborate-prs.md @@ -1,6 +1,6 @@ -It's now time to collaborate with other learners taking this class around the :earth_americas:. +It's now time to collaborate with other learners taking this class around the world :earth_americas:. -1. In the [class repository on GitHub.com](https://github.com/githubschool/on-demand-github-pages/), navigate to the [Pull Requests tab](https://github.com/githubschool/on-demand-github-pages/pulls). +1. In the [class repository on GitHub.com](https://github.com/githubschool{{site.baseurl}}-github-pages/), navigate to the [Pull Requests tab](https://github.com/githubschool{{site.baseurl}}-github-pages/pulls). 1. Look through other pull requests. Do they look like good changes, with CI passing? Feel free to post an encouraging message! 1. In your own pull request, wait to see if the branch passes the Travis CI tests and is ready to merge. diff --git a/_includes/activity/github-desktop/choose-a-theme.md b/_includes/activity/github-desktop/choose-a-theme.md new file mode 100644 index 000000000..7a5512da5 --- /dev/null +++ b/_includes/activity/github-desktop/choose-a-theme.md @@ -0,0 +1,11 @@ +This course is going to use GitHub Pages to create your website. To initialize GitHub Pages we need to perform a few more steps: + +1. With your repository created, click the **Settings** tab. +1. On the Options section (default information displayed), scroll down to the **GitHub Pages** section. +1. Click **Choose a theme**. +1. Decide which theme you would like to use, and click **Select theme**. + + *Note: If you don't like the themes available, later in the course we identify how you can build a website without using a GitHub Pages theme.* + +1. Accept the filler text by scrolling to the bottom of the page and click on **Commit Changes**. +1. Your site is published at: `USERNAME.github.io/REPONAME`. diff --git a/_includes/activity/github-desktop/desktopsurvey.md b/_includes/activity/github-desktop/desktopsurvey.md new file mode 100644 index 000000000..9202bf02d --- /dev/null +++ b/_includes/activity/github-desktop/desktopsurvey.md @@ -0,0 +1,2 @@ +## We Love Feedback :heart: + Please take _literally less than a minute_ to let us know what you think of this course. You may also choose to opt-in for updates on future classes. [Start Survey](http://www.surveygizmo.com/s3/3288550/desktop)! diff --git a/_includes/activity/intro-to-github/00-create-github-account.md b/_includes/activity/intro-to-github/00-create-github-account.md index 458910874..3dd82c7af 100644 --- a/_includes/activity/intro-to-github/00-create-github-account.md +++ b/_includes/activity/intro-to-github/00-create-github-account.md @@ -7,4 +7,4 @@ If you already have a Github.com account you are ready to get started. Otherwise 3. You will receive a verification email at the address provided. 4. Click the emailed link to complete the verification process. -If you are wondering where to go from here, click **Tell my why** for a quick tour of your dashboard. +If you are wondering where to go from here, click **Tell me why** for a quick tour of your dashboard. diff --git a/_includes/activity/intro-to-github/01-join-intro-repo.md b/_includes/activity/intro-to-github/01-join-intro-repo.md index db11aa0de..a6a363817 100644 --- a/_includes/activity/intro-to-github/01-join-intro-repo.md +++ b/_includes/activity/intro-to-github/01-join-intro-repo.md @@ -1,4 +1,4 @@ It's time to get your hands dirty! Use these steps to access our shared project: 1. Sign in with your GitHub account. -2. Navigate to our shared project and become a collaborator. Click on [this link](https://github.com/githubschool/open-enrollment-classes-introduction-to-github/issues/927) and leave a comment. The GitHubTeacher user will auto-magically add you to our project as a collaborator. +2. Navigate to our shared project and become a collaborator. Click on [this link](https://github.com/githubschool/open-enrollment-classes-introduction-to-github/issues/) and create an issue. The GitHubTeacher user will auto-magically add you to our project as a collaborator. diff --git a/_includes/activity/intro-to-github/04-create-a-file-on-github.md b/_includes/activity/intro-to-github/04-create-a-file-on-github.md index b23e8d0a5..892da4cc6 100644 --- a/_includes/activity/intro-to-github/04-create-a-file-on-github.md +++ b/_includes/activity/intro-to-github/04-create-a-file-on-github.md @@ -3,11 +3,11 @@ It's time to add your file to the repository: 1. In your new branch, add a new file named: `_pins/YOUR-USERNAME.json`. 1. Enter the following content into your file: - --- - githubHandle: YOUR-USERNAME - latitude: YOUR_LATITUDE - longitude: YOUR_LONGITUDE - --- + --- + githubHandle: YOUR-USERNAME + latitude: YOUR_LATITUDE + longitude: YOUR_LONGITUDE + --- 1. Scroll down and enter a commit message that describes your addition. diff --git a/_includes/archive-single.html b/_includes/archive-single.html index ee46c724f..397258ab5 100644 --- a/_includes/archive-single.html +++ b/_includes/archive-single.html @@ -10,7 +10,7 @@ {% if post.link %} {% else %} - + {% endif %}
{% if include.type == "grid" and teaser != blank %} diff --git a/_includes/breadcrumbs.html b/_includes/breadcrumbs.html index ded8bd6e0..e8aad1556 100644 --- a/_includes/breadcrumbs.html +++ b/_includes/breadcrumbs.html @@ -21,7 +21,7 @@ {% for crumb in crumbs offset: 1 %} {% if forloop.first %}
  • - {{ site.data.ui-text[site.locale].breadcrumb_home_label }} + {{ site.data.ui-text[site.locale].breadcrumb_home_label }}
  • {{ site.data.ui-text[site.locale].breadcrumb_separator }} @@ -31,7 +31,7 @@ {% else %} {% assign i = i | plus: 1 %}
  • - {{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }} + {{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}
  • {{ site.data.ui-text[site.locale].breadcrumb_separator }} diff --git a/_includes/category-list.html b/_includes/category-list.html index 5b79aef72..173d6b873 100644 --- a/_includes/category-list.html +++ b/_includes/category-list.html @@ -23,7 +23,7 @@ {% for hash in category_hashes %} {% assign keyValue = hash | split: '#' %} {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %} - {% unless forloop.last %}, {% endunless %} + {% unless forloop.last %}, {% endunless %} {% endfor %}

    diff --git a/_includes/comments-providers/discourse.html b/_includes/comments-providers/discourse.html index 1d23b6f21..bd9c3332a 100644 --- a/_includes/comments-providers/discourse.html +++ b/_includes/comments-providers/discourse.html @@ -1,6 +1,6 @@ {% 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 %} +{% capture canonical %}{{ site.baseurl }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %} - + - \ No newline at end of file + diff --git a/_includes/help-build-fail.md b/_includes/help-build-fail.md index 1f8290645..8cf088734 100644 --- a/_includes/help-build-fail.md +++ b/_includes/help-build-fail.md @@ -6,4 +6,29 @@ The files we are using are very picky. If you made any mistakes, you will see a When you commit your changes, Travis CI will re-check your file. -Keep doing this until you see a message that the build has passed. If you need help, don't forget you can find us in chat or @ mention githubteacher in your pull request. +Keep doing this until you see a message that the build has passed. If you need help, don't forget you can @ mention `@githubteacher` in your pull request. + +### Help With Specific Issues + +The build can fail because of many reasons. By looking at the details of the **Travis CI** log it might help you to troubleshoot your code. + +1. Open the _Pull request_ +2. Go to the bottom to the "merge" icon to the section where it says 'checks have failed'. + Here you'll see a lot of red 'x's :x:. Not good. +3. Open the `Details` + +The build log of Travis CI may appear a little cryptic. But with some careful reading you might be able to pull out the reason why your build is failing. (By the way, if you think the `job log` is cryptic, try and click on the `Raw log`.) + +The build script is a series of commands. It might be helpful to know that **every new command starts with a `$` sign**. Such commands can be something simple or a new (sub)script. The individual properties of your _branch_ are tested in individual scripts. For example, **Travis CI** very early on tests whether your file is formatted as an appropriate "`.yaml` file". + +#### 404 error +Somewhere down the cascade of tests **Travis CI** will check if the URL following `pageUrl` actually exists. The test and the complete build will fail if a website does not exist (a "404 error"). + +It is possible you might have mistyped your URL or something went wrong when you tried to publish your website. It is also possible that users who previously merged their branch with the master have sadly deleted their repository and their website disappeared. + +Try and discover in the log which URL is causing a 404 error. You can double check whether the website exist by copying it into your browser. + +Because you are working in your own branch it is safe to change the code however you like. If you see something that can be fixed easily you could just edit the offending file. For instance you can replace the broken URL with something that does exist (e.g. `github.com`). +A more rigorous solution would be to delete the file altogether. + +Once your fix is correct and the build is no longer failing, you are ready to merge your branch with the `master`. You might get some merge conflicts you will need to address first. Ask `@githubteacher` if you get stuck. diff --git a/_includes/icon-sm-git.svg b/_includes/icon-sm-git.svg new file mode 100644 index 000000000..93c52a032 --- /dev/null +++ b/_includes/icon-sm-git.svg @@ -0,0 +1 @@ +icon-sm-git diff --git a/_includes/icon-sm-migration.svg b/_includes/icon-sm-migration.svg new file mode 100644 index 000000000..c2eba07a4 --- /dev/null +++ b/_includes/icon-sm-migration.svg @@ -0,0 +1 @@ +icon-sm-migration diff --git a/_includes/intro-video.html b/_includes/intro-video.html index c56f3fdbe..6fe9f0a13 100644 --- a/_includes/intro-video.html +++ b/_includes/intro-video.html @@ -1 +1 @@ - + diff --git a/_includes/logo-github-services.svg b/_includes/logo-github-services.svg new file mode 100644 index 000000000..e6186d742 --- /dev/null +++ b/_includes/logo-github-services.svg @@ -0,0 +1 @@ + diff --git a/_includes/masthead.html b/_includes/masthead.html index 3ba4b90c9..f4181ab8b 100644 --- a/_includes/masthead.html +++ b/_includes/masthead.html @@ -3,18 +3,14 @@
    -
    --> +
  • - + The 'red polo' octocat, a cartoon of an octocat wearing a red polo +
    +
    + +
    +

    Learn how to configure your local git environment to work with GitHub and how to complete GitHub flow using the GitHub Extension for Visual Studio.

    +
    +
    + +
  • +
  • +
    + The 'inspectocat', a cartoon of an octocat wearing a trenchcoat and holding a magnifying glass +
    +
    + +
    +

    Quick guides to git out of sticky situations.

    +
    +
    +
  • +
  • +
    + The pink symbol for GraphQL, a triangle inside of an hexagon +
    +
    + +
    +

    Learn how to create seamless integrations by directly accessing and updating GitHub data using GraphQL.

    +
    +
    +
  • +
  • +
    +
    -

    Advanced Git Commands

    +

    Electron

    -

    Coming soon!

    +

    An entire suite of courses that will get you up and running with Electron.

  • - + The 'welcometocat', a cartoon of a celebrating octocat wearing a party hat and throwing confetti
  • diff --git a/_includes/top.html b/_includes/top.html index 394806f0d..953604c86 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -1,19 +1,14 @@ +
    + +
    +
    -
    -
    - - -
    - -
    - {% if page.title %}

    {{ page.title }}

    {% if page.byline %}

    {{ page.byline }}

    {% endif %} diff --git a/_includes/video/announcing-graphql-video.html b/_includes/video/announcing-graphql-video.html new file mode 100644 index 000000000..f18abded2 --- /dev/null +++ b/_includes/video/announcing-graphql-video.html @@ -0,0 +1 @@ + diff --git a/assets/vendor/bootstrap-sass/dist/js/bootstrap.js b/_javascript/bootstrap.js similarity index 100% rename from assets/vendor/bootstrap-sass/dist/js/bootstrap.js rename to _javascript/bootstrap.js diff --git a/assets/vendor/bootstrap-sass/dist/js/bootstrap.min.js b/_javascript/bootstrap.min.js similarity index 100% rename from assets/vendor/bootstrap-sass/dist/js/bootstrap.min.js rename to _javascript/bootstrap.min.js diff --git a/_layouts/intro-to-github.html b/_layouts/intro-to-github.html index 743817a83..903f7d3df 100644 --- a/_layouts/intro-to-github.html +++ b/_layouts/intro-to-github.html @@ -20,12 +20,6 @@ {% endif %}
    - - {% include sidebar.html %} diff --git a/_layouts/simple-class.html b/_layouts/simple-class.html index 8dceaf2bb..9451ee33b 100644 --- a/_layouts/simple-class.html +++ b/_layouts/simple-class.html @@ -12,12 +12,6 @@ {% endif %}
    - - {% include sidebar.html %} @@ -44,7 +38,41 @@ {{ my_include | markdownify }} {% endfor %} {% else %} - {{ page.main-content | markdownify }} + {{ page.main-content | replace: '<% BASEURL %>', site.baseurl | replace: '<% SITEURL %>', site.url | markdownify }} + {% endif %} + + {% if page.didnt-push %} +
    +
    + I didn't push +
    + {% if page.didnt-push.includes %} + {% for child in page.didnt-push.includes %} + {% capture my_include %}{% include {{child}} %}{% endcapture %} + {{ my_include | markdownify }} + {% endfor %} + {% else %} + {{ page.didnt-push | markdownify }} + {% endif %} +
    +
    + {% endif %} + + {% if page.pushed %} +
    +
    + I pushed +
    + {% if page.pushed.includes %} + {% for child in page.pushed.includes %} + {% capture my_include %}{% include {{child}} %}{% endcapture %} + {{ my_include | markdownify }} + {% endfor %} + {% else %} + {{ page.pushed | markdownify }} + {% endif %} +
    +
    {% endif %} {% if page.refresh %} @@ -77,7 +105,7 @@ {% endfor %} {% else %}
    - + gif of the activities from this page {% endif %}
    @@ -119,7 +147,7 @@ {% endif %}
    - Need help? Click open chat below for answers from GitHub trainers! + Stuck? Open an issue in the repository for this class and mention @githubteacher for help from one of the GitHub trainers!
    {% if page.next-page %} @@ -127,6 +155,7 @@ {% endif %} {{ content }} {% if page.link %}{% endif %} +
    @@ -141,6 +170,7 @@

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

    + {% if page.share %}{% include social-share.html %}{% endif %} {% include post_pagination.html %} @@ -164,4 +194,5 @@
    {% endif %} +
    diff --git a/_layouts/site.html b/_layouts/site.html index bbf357494..b27cd74fa 100644 --- a/_layouts/site.html +++ b/_layouts/site.html @@ -6,7 +6,7 @@ {% if page.html_title %}{{ page.html_title }} • {% endif %}GitHub Training - + @@ -14,7 +14,7 @@ - + @@ -26,9 +26,8 @@ - - - + + {% include analytics.html %} diff --git a/_layouts/splash.html b/_layouts/splash.html index 035fa2f23..92bb50053 100644 --- a/_layouts/splash.html +++ b/_layouts/splash.html @@ -19,4 +19,4 @@ {{ content }}
    - \ No newline at end of file + diff --git a/_stylesheets/_animations.scss b/_stylesheets/_animations.scss deleted file mode 100644 index a975d0210..000000000 --- a/_stylesheets/_animations.scss +++ /dev/null @@ -1,12 +0,0 @@ -/* ========================================================================== - ANIMATIONS - ========================================================================== */ - -@keyframes intro { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} \ No newline at end of file diff --git a/_stylesheets/_archive.scss b/_stylesheets/_archive.scss deleted file mode 100644 index 2d4f1437f..000000000 --- a/_stylesheets/_archive.scss +++ /dev/null @@ -1,234 +0,0 @@ -/* ========================================================================== - 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 { - color: inherit; - text-decoration: none; - } -} - -.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; -} - -// 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%; - } -} - -a: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/_stylesheets/_base.scss b/_stylesheets/_base.scss deleted file mode 100644 index 90e6982a5..000000000 --- a/_stylesheets/_base.scss +++ /dev/null @@ -1,303 +0,0 @@ -/* ========================================================================== - BASE ELEMENTS - ========================================================================== */ - -body { - margin: 0; - padding: 0; - 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: flex; - justify-content: space-between; - 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; - 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; - 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 { - transition: $global-transition; -} \ No newline at end of file diff --git a/_stylesheets/_buttons.scss b/_stylesheets/_buttons.scss deleted file mode 100644 index 73ce5bce1..000000000 --- a/_stylesheets/_buttons.scss +++ /dev/null @@ -1,154 +0,0 @@ -/* ========================================================================== - BUTTONS - ========================================================================== */ - -/* - Default button - ========================================================================== */ - -.btn { - /* default button */ - display: inline-block; - margin-bottom: 0.25em; - padding: 0.5em 1em; - color: #fff !important; - font-family: $sans-serif; - font-size: $type-size-6; - font-weight: bold; - text-align: center; - text-decoration: none; - background-color: $primary-color; - border: 0 !important; - border-radius: $border-radius; - cursor: pointer; - - &:hover { - background-color: mix(white, #000, 20%); - } - - .icon { - margin-right: 0.5em; - } - - .icon + .hidden { - margin-left: -0.5em; // override for hidden text - } - - /* fills width of parent container */ - - &--block { - display: block; - width: 100%; - - + .btn--block { - margin-top: 0.25em; - } - } - - /* for dark backgrounds */ - - &--inverse { - color: $gray !important; - border: 1px solid $light-gray !important; // override - background-color: #fff; - - &:hover { - color: #fff !important; - border-color: $gray; - } - } - - /* light outline */ - - &--light-outline { - border: 1px solid #fff !important; // override - background-color: transparent; - } - - /* information */ - - &--info { - background-color: $info-color; - - &:hover { - background-color: mix(#000, $info-color, 20%); - } - } - - /* warning */ - - &--warning { - background-color: $warning-color; - - &:hover { - background-color: mix(#000, $warning-color, 20%); - } - } - - /* success */ - - &--success { - background-color: $success-color; - - &:hover { - background-color: mix(#000, $success-color, 20%); - } - } - - /* danger */ - - &--danger { - background-color: $danger-color; - - &:hover { - background-color: mix(#000, $danger-color, 20%); - } - } - - /* disabled */ - - &--disabled { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - 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/_stylesheets/_footer.scss b/_stylesheets/_footer.scss deleted file mode 100644 index 86cc32be9..000000000 --- a/_stylesheets/_footer.scss +++ /dev/null @@ -1,71 +0,0 @@ -/* ========================================================================== - FOOTER - ========================================================================== */ - -.page__footer { - @include full(); - @include clearfix; - margin-top: 3em; - color: mix(#fff, $gray, 25%); - animation: intro 0.3s both; - animation-delay: 0.45s; - background-color: $lighter-gray; - border-top: 1px solid $light-gray; - - footer { - @include container; - @include clearfix; - margin-top: 2em; - padding: 0 1em 2em; - - @include breakpoint($x-large) { - max-width: $x-large; - } - } - - a { - color: inherit; - text-decoration: none; - - &:hover { - text-decoration: underline; - } - } - - .fa { - 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; - } -} diff --git a/_stylesheets/_forms.scss b/_stylesheets/_forms.scss deleted file mode 100644 index d84d10309..000000000 --- a/_stylesheets/_forms.scss +++ /dev/null @@ -1,350 +0,0 @@ -/* ========================================================================== - Forms - ========================================================================== */ - -btnform { - 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 { - font-family: $sans-serif; - box-sizing: border-box; -} - -label { - display: block; - margin-bottom: 10px / 8; - font-weight: bold; - color: $text-color; - cursor: pointer; - - input, - textarea, - select { - display: block; - } -} - -input, -textarea, -select { - display: inline-block; - width: 100%; - padding: 4px; - margin-bottom: 5px / 4; - background-color: #fff; - border: 1px solid mix(#fff, #000, 80%); - color: $text-color; - - &: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; -} - -.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; -} - - -/* - 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/_stylesheets/_masthead.scss b/_stylesheets/_masthead.scss deleted file mode 100644 index 3b654225e..000000000 --- a/_stylesheets/_masthead.scss +++ /dev/null @@ -1,51 +0,0 @@ -/* ========================================================================== - MASTHEAD - ========================================================================== */ - -.masthead { - position: relative; - border-bottom: 1px solid $border-color; - animation: intro 0.3s both; - 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; - } -} diff --git a/_stylesheets/_mixins.scss b/_stylesheets/_mixins.scss deleted file mode 100644 index 9302401f2..000000000 --- a/_stylesheets/_mixins.scss +++ /dev/null @@ -1,50 +0,0 @@ -/* ========================================================================== - 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/_stylesheets/_navigation.scss b/_stylesheets/_navigation.scss deleted file mode 100644 index ee2d88a9a..000000000 --- a/_stylesheets/_navigation.scss +++ /dev/null @@ -1,425 +0,0 @@ -/* ========================================================================== - NAVIGATION - ========================================================================== */ - -/* - Breadcrumb navigation links - ========================================================================== */ - -.breadcrumbs { - @include container; - @include clearfix; - margin-top: 0; - margin-bottom: 0; - padding-left: 2em; - padding-right: 2em; - font-family: $sans-serif; - animation: intro 0.3s both; - 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: $light-gray; - 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, 25%); - 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: $light-gray; - 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%; - transition: $global-transition; - transform: scaleX(0); // hide - } - - &:hover:before { - 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; - } - } -} diff --git a/_stylesheets/_notices.scss b/_stylesheets/_notices.scss deleted file mode 100644 index ec7dd2561..000000000 --- a/_stylesheets/_notices.scss +++ /dev/null @@ -1,99 +0,0 @@ -/* ========================================================================== - 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/_stylesheets/_page.scss b/_stylesheets/_page.scss deleted file mode 100644 index d49c32008..000000000 --- a/_stylesheets/_page.scss +++ /dev/null @@ -1,323 +0,0 @@ -/* ========================================================================== - 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(0 of 12); //modified from original -- keep this change - } - - .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: none; - - &: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; //modified from original -- keep this change - padding-right: 1em; //modified from original -- keep this change - - @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; -} - - -/* - 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/_stylesheets/_print.scss b/_stylesheets/_print.scss deleted file mode 100644 index 09bdb1d8e..000000000 --- a/_stylesheets/_print.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* ========================================================================== - PRINT STYLES - ========================================================================== */ - -/* - Hide the following elements on print - ========================================================================== */ - -@media print { - .masthead, - .toc, - .page__share, - .page__related, - .ads, - .page__footer { - display: none; - } -} diff --git a/_stylesheets/_reset.scss b/_stylesheets/_reset.scss deleted file mode 100644 index 6fe5780cc..000000000 --- a/_stylesheets/_reset.scss +++ /dev/null @@ -1,174 +0,0 @@ -/* ========================================================================== - 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 */ - -::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/_stylesheets/_sidebar.scss b/_stylesheets/_sidebar.scss deleted file mode 100644 index 36498af70..000000000 --- a/_stylesheets/_sidebar.scss +++ /dev/null @@ -1,230 +0,0 @@ -/* ========================================================================== - SIDEBAR - ========================================================================== */ - -/* - Default - ========================================================================== */ - -.sidebar { - @include clearfix(); - margin-bottom: 1em; - - @include breakpoint($large) { - @include span(2 of 12); - opacity: 0.75; - 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; - height: 36px; - - @include breakpoint($large) { - display: block; - width: auto; - height: auto; - } - - img { - max-width: 110px; - 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); - - @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; - } - } -} \ No newline at end of file diff --git a/_stylesheets/_syntax.scss b/_stylesheets/_syntax.scss deleted file mode 100644 index f40ed050b..000000000 --- a/_stylesheets/_syntax.scss +++ /dev/null @@ -1,123 +0,0 @@ -/* ========================================================================== - 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/_stylesheets/_tables.scss b/_stylesheets/_tables.scss deleted file mode 100644 index d31dc24ae..000000000 --- a/_stylesheets/_tables.scss +++ /dev/null @@ -1,38 +0,0 @@ -/* ========================================================================== - 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/_stylesheets/_utilities.scss b/_stylesheets/_utilities.scss deleted file mode 100644 index cfa3da5b9..000000000 --- a/_stylesheets/_utilities.scss +++ /dev/null @@ -1,399 +0,0 @@ -/* ========================================================================== - 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; - transition: 0.3s; - - &:before, - &:after { - content: ""; - position: absolute; - left: 0; - width: $navicon-width; - height: $navicon-height; - background: #fff; - 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{ - transform-origin: 50% 50%; - top: 0; - width: $navicon-width; - } - - // rotate the lines to form the x shape - &:before{ - transform: rotate3d(0,0,1,45deg); - } - &:after{ - 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); -} - - -/* - 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; - } -} diff --git a/_stylesheets/_variables.scss b/_stylesheets/_variables.scss deleted file mode 100644 index a9b091216..000000000 --- a/_stylesheets/_variables.scss +++ /dev/null @@ -1,147 +0,0 @@ -/* ========================================================================== - 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 : 600px; -$medium : 768px; -$medium-wide : 900px; -$large : 1024px; -$x-large : 1280px; - - -/* - Grid - ========================================================================== */ - -$right-sidebar-width-narrow : 200px; -$right-sidebar-width : 300px; -$right-sidebar-width-wide : 400px; - -$susy: ( - columns: 12, - // column-width: 90px, - 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/_stylesheets/breakpoint/_breakpoint.scss b/_stylesheets/breakpoint/_breakpoint.scss deleted file mode 100644 index a0528eb8b..000000000 --- a/_stylesheets/breakpoint/_breakpoint.scss +++ /dev/null @@ -1,114 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/_context.scss b/_stylesheets/breakpoint/_context.scss deleted file mode 100644 index 57947f5c8..000000000 --- a/_stylesheets/breakpoint/_context.scss +++ /dev/null @@ -1,95 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/_helpers.scss b/_stylesheets/breakpoint/_helpers.scss deleted file mode 100644 index 97e522d11..000000000 --- a/_stylesheets/breakpoint/_helpers.scss +++ /dev/null @@ -1,151 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/_legacy-settings.scss b/_stylesheets/breakpoint/_legacy-settings.scss deleted file mode 100644 index e060ebe3d..000000000 --- a/_stylesheets/breakpoint/_legacy-settings.scss +++ /dev/null @@ -1,50 +0,0 @@ -@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/_stylesheets/breakpoint/_no-query.scss b/_stylesheets/breakpoint/_no-query.scss deleted file mode 100644 index 0b5a81f69..000000000 --- a/_stylesheets/breakpoint/_no-query.scss +++ /dev/null @@ -1,15 +0,0 @@ -@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/_stylesheets/breakpoint/_parsers.scss b/_stylesheets/breakpoint/_parsers.scss deleted file mode 100644 index f0b053fee..000000000 --- a/_stylesheets/breakpoint/_parsers.scss +++ /dev/null @@ -1,215 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/_respond-to.scss b/_stylesheets/breakpoint/_respond-to.scss deleted file mode 100644 index e2462c5fc..000000000 --- a/_stylesheets/breakpoint/_respond-to.scss +++ /dev/null @@ -1,82 +0,0 @@ -//////////////////////// -// 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/_stylesheets/breakpoint/_settings.scss b/_stylesheets/breakpoint/_settings.scss deleted file mode 100644 index 05ee68940..000000000 --- a/_stylesheets/breakpoint/_settings.scss +++ /dev/null @@ -1,71 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/parsers/_double.scss b/_stylesheets/breakpoint/parsers/_double.scss deleted file mode 100644 index 24580c151..000000000 --- a/_stylesheets/breakpoint/parsers/_double.scss +++ /dev/null @@ -1,33 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/parsers/_query.scss b/_stylesheets/breakpoint/parsers/_query.scss deleted file mode 100644 index b138b3933..000000000 --- a/_stylesheets/breakpoint/parsers/_query.scss +++ /dev/null @@ -1,82 +0,0 @@ -@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/_stylesheets/breakpoint/parsers/_resolution.scss b/_stylesheets/breakpoint/parsers/_resolution.scss deleted file mode 100644 index 19769adf4..000000000 --- a/_stylesheets/breakpoint/parsers/_resolution.scss +++ /dev/null @@ -1,31 +0,0 @@ -@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/_stylesheets/breakpoint/parsers/_single.scss b/_stylesheets/breakpoint/parsers/_single.scss deleted file mode 100644 index d9fd764a7..000000000 --- a/_stylesheets/breakpoint/parsers/_single.scss +++ /dev/null @@ -1,26 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/parsers/_triple.scss b/_stylesheets/breakpoint/parsers/_triple.scss deleted file mode 100644 index e2732067f..000000000 --- a/_stylesheets/breakpoint/parsers/_triple.scss +++ /dev/null @@ -1,36 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/breakpoint/parsers/double/_default-pair.scss b/_stylesheets/breakpoint/parsers/double/_default-pair.scss deleted file mode 100644 index f88432ccd..000000000 --- a/_stylesheets/breakpoint/parsers/double/_default-pair.scss +++ /dev/null @@ -1,21 +0,0 @@ -@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/_stylesheets/breakpoint/parsers/double/_default.scss b/_stylesheets/breakpoint/parsers/double/_default.scss deleted file mode 100644 index 73190ed59..000000000 --- a/_stylesheets/breakpoint/parsers/double/_default.scss +++ /dev/null @@ -1,22 +0,0 @@ -@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/_stylesheets/breakpoint/parsers/double/_double-string.scss b/_stylesheets/breakpoint/parsers/double/_double-string.scss deleted file mode 100644 index c6fd0cb03..000000000 --- a/_stylesheets/breakpoint/parsers/double/_double-string.scss +++ /dev/null @@ -1,22 +0,0 @@ -@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/_stylesheets/breakpoint/parsers/resolution/_resolution.scss b/_stylesheets/breakpoint/parsers/resolution/_resolution.scss deleted file mode 100644 index 368042126..000000000 --- a/_stylesheets/breakpoint/parsers/resolution/_resolution.scss +++ /dev/null @@ -1,60 +0,0 @@ -@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/_stylesheets/breakpoint/parsers/single/_default.scss b/_stylesheets/breakpoint/parsers/single/_default.scss deleted file mode 100644 index 503ef427b..000000000 --- a/_stylesheets/breakpoint/parsers/single/_default.scss +++ /dev/null @@ -1,13 +0,0 @@ -@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/_stylesheets/breakpoint/parsers/triple/_default.scss b/_stylesheets/breakpoint/parsers/triple/_default.scss deleted file mode 100644 index 7fa418dda..000000000 --- a/_stylesheets/breakpoint/parsers/triple/_default.scss +++ /dev/null @@ -1,18 +0,0 @@ -@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/_stylesheets/font-awesome/_animated.scss b/_stylesheets/font-awesome/_animated.scss deleted file mode 100644 index 8a020dbff..000000000 --- a/_stylesheets/font-awesome/_animated.scss +++ /dev/null @@ -1,34 +0,0 @@ -// Spinning Icons -// -------------------------- - -.#{$fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.#{$fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/_stylesheets/font-awesome/_bordered-pulled.scss b/_stylesheets/font-awesome/_bordered-pulled.scss deleted file mode 100644 index d4b85a02f..000000000 --- a/_stylesheets/font-awesome/_bordered-pulled.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.#{$fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em $fa-border-color; - border-radius: .1em; -} - -.#{$fa-css-prefix}-pull-left { float: left; } -.#{$fa-css-prefix}-pull-right { float: right; } - -.#{$fa-css-prefix} { - &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } - &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.#{$fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/_stylesheets/font-awesome/_core.scss b/_stylesheets/font-awesome/_core.scss deleted file mode 100644 index 7425ef85f..000000000 --- a/_stylesheets/font-awesome/_core.scss +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.#{$fa-css-prefix} { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/_stylesheets/font-awesome/_fixed-width.scss b/_stylesheets/font-awesome/_fixed-width.scss deleted file mode 100644 index b221c9813..000000000 --- a/_stylesheets/font-awesome/_fixed-width.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.#{$fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/_stylesheets/font-awesome/_font-awesome.scss b/_stylesheets/font-awesome/_font-awesome.scss deleted file mode 100644 index a19d664c3..000000000 --- a/_stylesheets/font-awesome/_font-awesome.scss +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables"; -@import "mixins"; -@import "path"; -@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/_stylesheets/font-awesome/_icons.scss b/_stylesheets/font-awesome/_icons.scss deleted file mode 100644 index b64017aef..000000000 --- a/_stylesheets/font-awesome/_icons.scss +++ /dev/null @@ -1,724 +0,0 @@ -/* 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}-glass:before { content: $fa-var-glass; } -.#{$fa-css-prefix}-music:before { content: $fa-var-music; } -.#{$fa-css-prefix}-search:before { content: $fa-var-search; } -.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } -.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } -.#{$fa-css-prefix}-star:before { content: $fa-var-star; } -.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } -.#{$fa-css-prefix}-user:before { content: $fa-var-user; } -.#{$fa-css-prefix}-film:before { content: $fa-var-film; } -.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } -.#{$fa-css-prefix}-th:before { content: $fa-var-th; } -.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } -.#{$fa-css-prefix}-check:before { content: $fa-var-check; } -.#{$fa-css-prefix}-remove:before, -.#{$fa-css-prefix}-close:before, -.#{$fa-css-prefix}-times:before { content: $fa-var-times; } -.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } -.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } -.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } -.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } -.#{$fa-css-prefix}-gear:before, -.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } -.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } -.#{$fa-css-prefix}-home:before { content: $fa-var-home; } -.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } -.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } -.#{$fa-css-prefix}-road:before { content: $fa-var-road; } -.#{$fa-css-prefix}-download:before { content: $fa-var-download; } -.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } -.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } -.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } -.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } -.#{$fa-css-prefix}-rotate-right:before, -.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } -.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } -.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } -.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } -.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } -.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } -.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } -.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } -.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } -.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } -.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } -.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } -.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } -.#{$fa-css-prefix}-book:before { content: $fa-var-book; } -.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } -.#{$fa-css-prefix}-print:before { content: $fa-var-print; } -.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } -.#{$fa-css-prefix}-font:before { content: $fa-var-font; } -.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } -.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } -.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } -.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } -.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } -.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } -.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } -.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } -.#{$fa-css-prefix}-list:before { content: $fa-var-list; } -.#{$fa-css-prefix}-dedent:before, -.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } -.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } -.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } -.#{$fa-css-prefix}-photo:before, -.#{$fa-css-prefix}-image:before, -.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } -.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } -.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } -.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } -.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } -.#{$fa-css-prefix}-edit:before, -.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } -.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } -.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } -.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } -.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } -.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } -.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } -.#{$fa-css-prefix}-play:before { content: $fa-var-play; } -.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } -.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } -.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } -.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } -.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } -.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } -.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } -.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } -.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } -.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } -.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } -.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } -.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } -.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } -.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } -.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } -.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } -.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } -.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } -.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } -.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } -.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } -.#{$fa-css-prefix}-mail-forward:before, -.#{$fa-css-prefix}-share:before { content: $fa-var-share; } -.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } -.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } -.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } -.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } -.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } -.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } -.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } -.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } -.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } -.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } -.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } -.#{$fa-css-prefix}-warning:before, -.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } -.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } -.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } -.#{$fa-css-prefix}-random:before { content: $fa-var-random; } -.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } -.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } -.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } -.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } -.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } -.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } -.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } -.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } -.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } -.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } -.#{$fa-css-prefix}-bar-chart-o:before, -.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } -.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } -.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } -.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } -.#{$fa-css-prefix}-key:before { content: $fa-var-key; } -.#{$fa-css-prefix}-gears:before, -.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } -.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } -.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } -.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } -.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } -.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } -.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } -.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } -.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } -.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } -.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } -.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } -.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } -.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } -.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } -.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } -.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } -.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } -.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } -.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } -.#{$fa-css-prefix}-facebook-f:before, -.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } -.#{$fa-css-prefix}-github:before { content: $fa-var-github; } -.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } -.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } -.#{$fa-css-prefix}-feed:before, -.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } -.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } -.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } -.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } -.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } -.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } -.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } -.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } -.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } -.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } -.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } -.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } -.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } -.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } -.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } -.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } -.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } -.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } -.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } -.#{$fa-css-prefix}-group:before, -.#{$fa-css-prefix}-users:before { content: $fa-var-users; } -.#{$fa-css-prefix}-chain:before, -.#{$fa-css-prefix}-link:before { content: $fa-var-link; } -.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } -.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } -.#{$fa-css-prefix}-cut:before, -.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } -.#{$fa-css-prefix}-copy:before, -.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } -.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } -.#{$fa-css-prefix}-save:before, -.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } -.#{$fa-css-prefix}-square:before { content: $fa-var-square; } -.#{$fa-css-prefix}-navicon:before, -.#{$fa-css-prefix}-reorder:before, -.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } -.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } -.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } -.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } -.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } -.#{$fa-css-prefix}-table:before { content: $fa-var-table; } -.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } -.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } -.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } -.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } -.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } -.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } -.#{$fa-css-prefix}-money:before { content: $fa-var-money; } -.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } -.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } -.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } -.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } -.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } -.#{$fa-css-prefix}-unsorted:before, -.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } -.#{$fa-css-prefix}-sort-down:before, -.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } -.#{$fa-css-prefix}-sort-up:before, -.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } -.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } -.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } -.#{$fa-css-prefix}-rotate-left:before, -.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } -.#{$fa-css-prefix}-legal:before, -.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } -.#{$fa-css-prefix}-dashboard:before, -.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } -.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } -.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } -.#{$fa-css-prefix}-flash:before, -.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } -.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } -.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } -.#{$fa-css-prefix}-paste:before, -.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } -.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } -.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } -.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } -.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } -.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } -.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } -.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } -.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } -.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } -.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } -.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } -.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } -.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } -.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } -.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } -.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } -.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } -.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } -.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } -.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } -.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } -.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } -.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } -.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } -.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } -.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } -.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } -.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } -.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } -.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } -.#{$fa-css-prefix}-mobile-phone:before, -.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } -.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } -.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } -.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } -.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } -.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } -.#{$fa-css-prefix}-mail-reply:before, -.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } -.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } -.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } -.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } -.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } -.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } -.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } -.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } -.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } -.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } -.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } -.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } -.#{$fa-css-prefix}-code:before { content: $fa-var-code; } -.#{$fa-css-prefix}-mail-reply-all:before, -.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } -.#{$fa-css-prefix}-star-half-empty:before, -.#{$fa-css-prefix}-star-half-full:before, -.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } -.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } -.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } -.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } -.#{$fa-css-prefix}-unlink:before, -.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } -.#{$fa-css-prefix}-question:before { content: $fa-var-question; } -.#{$fa-css-prefix}-info:before { content: $fa-var-info; } -.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } -.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } -.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } -.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } -.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } -.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } -.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } -.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } -.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } -.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } -.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } -.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } -.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } -.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } -.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } -.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } -.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } -.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } -.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } -.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } -.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } -.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } -.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } -.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } -.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } -.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } -.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } -.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } -.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } -.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } -.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } -.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } -.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } -.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } -.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } -.#{$fa-css-prefix}-toggle-down:before, -.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } -.#{$fa-css-prefix}-toggle-up:before, -.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } -.#{$fa-css-prefix}-toggle-right:before, -.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } -.#{$fa-css-prefix}-euro:before, -.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } -.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } -.#{$fa-css-prefix}-dollar:before, -.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } -.#{$fa-css-prefix}-rupee:before, -.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } -.#{$fa-css-prefix}-cny:before, -.#{$fa-css-prefix}-rmb:before, -.#{$fa-css-prefix}-yen:before, -.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } -.#{$fa-css-prefix}-ruble:before, -.#{$fa-css-prefix}-rouble:before, -.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } -.#{$fa-css-prefix}-won:before, -.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } -.#{$fa-css-prefix}-bitcoin:before, -.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } -.#{$fa-css-prefix}-file:before { content: $fa-var-file; } -.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } -.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } -.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } -.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } -.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } -.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } -.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } -.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } -.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } -.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } -.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } -.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } -.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } -.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } -.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } -.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } -.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } -.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } -.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } -.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } -.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } -.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } -.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } -.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } -.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } -.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } -.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } -.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } -.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } -.#{$fa-css-prefix}-android:before { content: $fa-var-android; } -.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } -.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } -.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } -.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } -.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } -.#{$fa-css-prefix}-female:before { content: $fa-var-female; } -.#{$fa-css-prefix}-male:before { content: $fa-var-male; } -.#{$fa-css-prefix}-gittip:before, -.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } -.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } -.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } -.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } -.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } -.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } -.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } -.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } -.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } -.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } -.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } -.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } -.#{$fa-css-prefix}-toggle-left:before, -.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } -.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } -.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } -.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } -.#{$fa-css-prefix}-turkish-lira:before, -.#{$fa-css-prefix}-try:before { content: $fa-var-try; } -.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } -.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } -.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } -.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } -.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } -.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } -.#{$fa-css-prefix}-institution:before, -.#{$fa-css-prefix}-bank:before, -.#{$fa-css-prefix}-university:before { content: $fa-var-university; } -.#{$fa-css-prefix}-mortar-board:before, -.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } -.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } -.#{$fa-css-prefix}-google:before { content: $fa-var-google; } -.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } -.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } -.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } -.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } -.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } -.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } -.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } -.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } -.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } -.#{$fa-css-prefix}-language:before { content: $fa-var-language; } -.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } -.#{$fa-css-prefix}-building:before { content: $fa-var-building; } -.#{$fa-css-prefix}-child:before { content: $fa-var-child; } -.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } -.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } -.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } -.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } -.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } -.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } -.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } -.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } -.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } -.#{$fa-css-prefix}-automobile:before, -.#{$fa-css-prefix}-car:before { content: $fa-var-car; } -.#{$fa-css-prefix}-cab:before, -.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } -.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } -.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } -.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } -.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } -.#{$fa-css-prefix}-database:before { content: $fa-var-database; } -.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } -.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } -.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } -.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } -.#{$fa-css-prefix}-file-photo-o:before, -.#{$fa-css-prefix}-file-picture-o:before, -.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } -.#{$fa-css-prefix}-file-zip-o:before, -.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } -.#{$fa-css-prefix}-file-sound-o:before, -.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } -.#{$fa-css-prefix}-file-movie-o:before, -.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } -.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } -.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } -.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } -.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } -.#{$fa-css-prefix}-life-bouy:before, -.#{$fa-css-prefix}-life-buoy:before, -.#{$fa-css-prefix}-life-saver:before, -.#{$fa-css-prefix}-support:before, -.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } -.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } -.#{$fa-css-prefix}-ra:before, -.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } -.#{$fa-css-prefix}-ge:before, -.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } -.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } -.#{$fa-css-prefix}-git:before { content: $fa-var-git; } -.#{$fa-css-prefix}-y-combinator-square:before, -.#{$fa-css-prefix}-yc-square:before, -.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } -.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } -.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } -.#{$fa-css-prefix}-wechat:before, -.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } -.#{$fa-css-prefix}-send:before, -.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } -.#{$fa-css-prefix}-send-o:before, -.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } -.#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } -.#{$fa-css-prefix}-header:before { content: $fa-var-header; } -.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } -.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } -.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } -.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } -.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } -.#{$fa-css-prefix}-soccer-ball-o:before, -.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } -.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } -.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } -.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } -.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } -.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } -.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } -.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } -.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } -.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } -.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } -.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } -.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } -.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } -.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } -.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } -.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } -.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } -.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } -.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } -.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } -.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } -.#{$fa-css-prefix}-at:before { content: $fa-var-at; } -.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } -.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } -.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } -.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } -.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } -.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } -.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } -.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } -.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } -.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } -.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } -.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } -.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } -.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } -.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } -.#{$fa-css-prefix}-shekel:before, -.#{$fa-css-prefix}-sheqel:before, -.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } -.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } -.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } -.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } -.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } -.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } -.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } -.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } -.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } -.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } -.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } -.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } -.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } -.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } -.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } -.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } -.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } -.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } -.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } -.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } -.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } -.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } -.#{$fa-css-prefix}-intersex:before, -.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } -.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } -.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } -.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } -.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } -.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } -.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } -.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } -.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } -.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } -.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } -.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } -.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } -.#{$fa-css-prefix}-server:before { content: $fa-var-server; } -.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } -.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } -.#{$fa-css-prefix}-hotel:before, -.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } -.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } -.#{$fa-css-prefix}-train:before { content: $fa-var-train; } -.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } -.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } -.#{$fa-css-prefix}-yc:before, -.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } -.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } -.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } -.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } -.#{$fa-css-prefix}-battery-4:before, -.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } -.#{$fa-css-prefix}-battery-3:before, -.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } -.#{$fa-css-prefix}-battery-2:before, -.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } -.#{$fa-css-prefix}-battery-1:before, -.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } -.#{$fa-css-prefix}-battery-0:before, -.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } -.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } -.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } -.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } -.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } -.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } -.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } -.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } -.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } -.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } -.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } -.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } -.#{$fa-css-prefix}-hourglass-1:before, -.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } -.#{$fa-css-prefix}-hourglass-2:before, -.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } -.#{$fa-css-prefix}-hourglass-3:before, -.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } -.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } -.#{$fa-css-prefix}-hand-grab-o:before, -.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } -.#{$fa-css-prefix}-hand-stop-o:before, -.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } -.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } -.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } -.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } -.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } -.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } -.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } -.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } -.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } -.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } -.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } -.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } -.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } -.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } -.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } -.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } -.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } -.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } -.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } -.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } -.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } -.#{$fa-css-prefix}-tv:before, -.#{$fa-css-prefix}-television:before { content: $fa-var-television; } -.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } -.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } -.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } -.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } -.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } -.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } -.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } -.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } -.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } -.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } -.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } -.#{$fa-css-prefix}-map:before { content: $fa-var-map; } -.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } -.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } -.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } -.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } -.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } -.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } -.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } -.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } -.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } -.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } -.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } -.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } -.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } -.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } -.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } -.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } -.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } -.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } -.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } -.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } -.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } -.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } -.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } -.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } -.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } -.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } -.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } -.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } -.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } -.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } -.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } -.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } -.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } -.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } -.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } -.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } -.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } -.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } -.#{$fa-css-prefix}-asl-interpreting:before, -.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } -.#{$fa-css-prefix}-deafness:before, -.#{$fa-css-prefix}-hard-of-hearing:before, -.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } -.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } -.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } -.#{$fa-css-prefix}-signing:before, -.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } -.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } -.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } -.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } -.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } -.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } -.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } diff --git a/_stylesheets/font-awesome/_larger.scss b/_stylesheets/font-awesome/_larger.scss deleted file mode 100644 index 41e9a8184..000000000 --- a/_stylesheets/font-awesome/_larger.scss +++ /dev/null @@ -1,13 +0,0 @@ -// 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: -15%; -} -.#{$fa-css-prefix}-2x { font-size: 2em; } -.#{$fa-css-prefix}-3x { font-size: 3em; } -.#{$fa-css-prefix}-4x { font-size: 4em; } -.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/_stylesheets/font-awesome/_list.scss b/_stylesheets/font-awesome/_list.scss deleted file mode 100644 index 7d1e4d54d..000000000 --- a/_stylesheets/font-awesome/_list.scss +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.#{$fa-css-prefix}-ul { - padding-left: 0; - margin-left: $fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.#{$fa-css-prefix}-li { - position: absolute; - left: -$fa-li-width; - width: $fa-li-width; - top: (2em / 14); - text-align: center; - &.#{$fa-css-prefix}-lg { - left: -$fa-li-width + (4em / 14); - } -} diff --git a/_stylesheets/font-awesome/_mixins.scss b/_stylesheets/font-awesome/_mixins.scss deleted file mode 100644 index c3bbd5745..000000000 --- a/_stylesheets/font-awesome/_mixins.scss +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -@mixin fa-icon-rotate($degrees, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - 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 { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// 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 { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/_stylesheets/font-awesome/_path.scss b/_stylesheets/font-awesome/_path.scss deleted file mode 100644 index bb457c23a..000000000 --- a/_stylesheets/font-awesome/_path.scss +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); - src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), - url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), - url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), - url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), - url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); -// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/_stylesheets/font-awesome/_rotated-flipped.scss b/_stylesheets/font-awesome/_rotated-flipped.scss deleted file mode 100644 index a3558fd09..000000000 --- a/_stylesheets/font-awesome/_rotated-flipped.scss +++ /dev/null @@ -1,20 +0,0 @@ -// 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); } - -// Hook for IE8-9 -// ------------------------- - -:root .#{$fa-css-prefix}-rotate-90, -:root .#{$fa-css-prefix}-rotate-180, -:root .#{$fa-css-prefix}-rotate-270, -:root .#{$fa-css-prefix}-flip-horizontal, -:root .#{$fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/_stylesheets/font-awesome/_screen-reader.scss b/_stylesheets/font-awesome/_screen-reader.scss deleted file mode 100644 index 637426f0d..000000000 --- a/_stylesheets/font-awesome/_screen-reader.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { @include sr-only(); } -.sr-only-focusable { @include sr-only-focusable(); } diff --git a/_stylesheets/font-awesome/_stacked.scss b/_stylesheets/font-awesome/_stacked.scss deleted file mode 100644 index aef740366..000000000 --- a/_stylesheets/font-awesome/_stacked.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.#{$fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.#{$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/_stylesheets/font-awesome/_variables.scss b/_stylesheets/font-awesome/_variables.scss deleted file mode 100644 index 1f374d6c9..000000000 --- a/_stylesheets/font-awesome/_variables.scss +++ /dev/null @@ -1,735 +0,0 @@ -// Variables -// -------------------------- - -$fa-font-path: "../fonts" !default; -$fa-font-size-base: 14px !default; -$fa-line-height-base: 1 !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.1/fonts" !default; // for referencing Bootstrap CDN font files directly -$fa-css-prefix: fa !default; -$fa-version: "4.6.1" !default; -$fa-border-color: #eee !default; -$fa-inverse: #fff !default; -$fa-li-width: (30em / 14) !default; - -$fa-var-500px: "\f26e"; -$fa-var-adjust: "\f042"; -$fa-var-adn: "\f170"; -$fa-var-align-center: "\f037"; -$fa-var-align-justify: "\f039"; -$fa-var-align-left: "\f036"; -$fa-var-align-right: "\f038"; -$fa-var-amazon: "\f270"; -$fa-var-ambulance: "\f0f9"; -$fa-var-american-sign-language-interpreting: "\f2a3"; -$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-apple: "\f179"; -$fa-var-archive: "\f187"; -$fa-var-area-chart: "\f1fe"; -$fa-var-arrow-circle-down: "\f0ab"; -$fa-var-arrow-circle-left: "\f0a8"; -$fa-var-arrow-circle-o-down: "\f01a"; -$fa-var-arrow-circle-o-left: "\f190"; -$fa-var-arrow-circle-o-right: "\f18e"; -$fa-var-arrow-circle-o-up: "\f01b"; -$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: "\f047"; -$fa-var-arrows-alt: "\f0b2"; -$fa-var-arrows-h: "\f07e"; -$fa-var-arrows-v: "\f07d"; -$fa-var-asl-interpreting: "\f2a3"; -$fa-var-assistive-listening-systems: "\f2a2"; -$fa-var-asterisk: "\f069"; -$fa-var-at: "\f1fa"; -$fa-var-audio-description: "\f29e"; -$fa-var-automobile: "\f1b9"; -$fa-var-backward: "\f04a"; -$fa-var-balance-scale: "\f24e"; -$fa-var-ban: "\f05e"; -$fa-var-bank: "\f19c"; -$fa-var-bar-chart: "\f080"; -$fa-var-bar-chart-o: "\f080"; -$fa-var-barcode: "\f02a"; -$fa-var-bars: "\f0c9"; -$fa-var-battery-0: "\f244"; -$fa-var-battery-1: "\f243"; -$fa-var-battery-2: "\f242"; -$fa-var-battery-3: "\f241"; -$fa-var-battery-4: "\f240"; -$fa-var-battery-empty: "\f244"; -$fa-var-battery-full: "\f240"; -$fa-var-battery-half: "\f242"; -$fa-var-battery-quarter: "\f243"; -$fa-var-battery-three-quarters: "\f241"; -$fa-var-bed: "\f236"; -$fa-var-beer: "\f0fc"; -$fa-var-behance: "\f1b4"; -$fa-var-behance-square: "\f1b5"; -$fa-var-bell: "\f0f3"; -$fa-var-bell-o: "\f0a2"; -$fa-var-bell-slash: "\f1f6"; -$fa-var-bell-slash-o: "\f1f7"; -$fa-var-bicycle: "\f206"; -$fa-var-binoculars: "\f1e5"; -$fa-var-birthday-cake: "\f1fd"; -$fa-var-bitbucket: "\f171"; -$fa-var-bitbucket-square: "\f172"; -$fa-var-bitcoin: "\f15a"; -$fa-var-black-tie: "\f27e"; -$fa-var-blind: "\f29d"; -$fa-var-bluetooth: "\f293"; -$fa-var-bluetooth-b: "\f294"; -$fa-var-bold: "\f032"; -$fa-var-bolt: "\f0e7"; -$fa-var-bomb: "\f1e2"; -$fa-var-book: "\f02d"; -$fa-var-bookmark: "\f02e"; -$fa-var-bookmark-o: "\f097"; -$fa-var-braille: "\f2a1"; -$fa-var-briefcase: "\f0b1"; -$fa-var-btc: "\f15a"; -$fa-var-bug: "\f188"; -$fa-var-building: "\f1ad"; -$fa-var-building-o: "\f0f7"; -$fa-var-bullhorn: "\f0a1"; -$fa-var-bullseye: "\f140"; -$fa-var-bus: "\f207"; -$fa-var-buysellads: "\f20d"; -$fa-var-cab: "\f1ba"; -$fa-var-calculator: "\f1ec"; -$fa-var-calendar: "\f073"; -$fa-var-calendar-check-o: "\f274"; -$fa-var-calendar-minus-o: "\f272"; -$fa-var-calendar-o: "\f133"; -$fa-var-calendar-plus-o: "\f271"; -$fa-var-calendar-times-o: "\f273"; -$fa-var-camera: "\f030"; -$fa-var-camera-retro: "\f083"; -$fa-var-car: "\f1b9"; -$fa-var-caret-down: "\f0d7"; -$fa-var-caret-left: "\f0d9"; -$fa-var-caret-right: "\f0da"; -$fa-var-caret-square-o-down: "\f150"; -$fa-var-caret-square-o-left: "\f191"; -$fa-var-caret-square-o-right: "\f152"; -$fa-var-caret-square-o-up: "\f151"; -$fa-var-caret-up: "\f0d8"; -$fa-var-cart-arrow-down: "\f218"; -$fa-var-cart-plus: "\f217"; -$fa-var-cc: "\f20a"; -$fa-var-cc-amex: "\f1f3"; -$fa-var-cc-diners-club: "\f24c"; -$fa-var-cc-discover: "\f1f2"; -$fa-var-cc-jcb: "\f24b"; -$fa-var-cc-mastercard: "\f1f1"; -$fa-var-cc-paypal: "\f1f4"; -$fa-var-cc-stripe: "\f1f5"; -$fa-var-cc-visa: "\f1f0"; -$fa-var-certificate: "\f0a3"; -$fa-var-chain: "\f0c1"; -$fa-var-chain-broken: "\f127"; -$fa-var-check: "\f00c"; -$fa-var-check-circle: "\f058"; -$fa-var-check-circle-o: "\f05d"; -$fa-var-check-square: "\f14a"; -$fa-var-check-square-o: "\f046"; -$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-circle: "\f111"; -$fa-var-circle-o: "\f10c"; -$fa-var-circle-o-notch: "\f1ce"; -$fa-var-circle-thin: "\f1db"; -$fa-var-clipboard: "\f0ea"; -$fa-var-clock-o: "\f017"; -$fa-var-clone: "\f24d"; -$fa-var-close: "\f00d"; -$fa-var-cloud: "\f0c2"; -$fa-var-cloud-download: "\f0ed"; -$fa-var-cloud-upload: "\f0ee"; -$fa-var-cny: "\f157"; -$fa-var-code: "\f121"; -$fa-var-code-fork: "\f126"; -$fa-var-codepen: "\f1cb"; -$fa-var-codiepie: "\f284"; -$fa-var-coffee: "\f0f4"; -$fa-var-cog: "\f013"; -$fa-var-cogs: "\f085"; -$fa-var-columns: "\f0db"; -$fa-var-comment: "\f075"; -$fa-var-comment-o: "\f0e5"; -$fa-var-commenting: "\f27a"; -$fa-var-commenting-o: "\f27b"; -$fa-var-comments: "\f086"; -$fa-var-comments-o: "\f0e6"; -$fa-var-compass: "\f14e"; -$fa-var-compress: "\f066"; -$fa-var-connectdevelop: "\f20e"; -$fa-var-contao: "\f26d"; -$fa-var-copy: "\f0c5"; -$fa-var-copyright: "\f1f9"; -$fa-var-creative-commons: "\f25e"; -$fa-var-credit-card: "\f09d"; -$fa-var-credit-card-alt: "\f283"; -$fa-var-crop: "\f125"; -$fa-var-crosshairs: "\f05b"; -$fa-var-css3: "\f13c"; -$fa-var-cube: "\f1b2"; -$fa-var-cubes: "\f1b3"; -$fa-var-cut: "\f0c4"; -$fa-var-cutlery: "\f0f5"; -$fa-var-dashboard: "\f0e4"; -$fa-var-dashcube: "\f210"; -$fa-var-database: "\f1c0"; -$fa-var-deaf: "\f2a4"; -$fa-var-deafness: "\f2a4"; -$fa-var-dedent: "\f03b"; -$fa-var-delicious: "\f1a5"; -$fa-var-desktop: "\f108"; -$fa-var-deviantart: "\f1bd"; -$fa-var-diamond: "\f219"; -$fa-var-digg: "\f1a6"; -$fa-var-dollar: "\f155"; -$fa-var-dot-circle-o: "\f192"; -$fa-var-download: "\f019"; -$fa-var-dribbble: "\f17d"; -$fa-var-dropbox: "\f16b"; -$fa-var-drupal: "\f1a9"; -$fa-var-edge: "\f282"; -$fa-var-edit: "\f044"; -$fa-var-eject: "\f052"; -$fa-var-ellipsis-h: "\f141"; -$fa-var-ellipsis-v: "\f142"; -$fa-var-empire: "\f1d1"; -$fa-var-envelope: "\f0e0"; -$fa-var-envelope-o: "\f003"; -$fa-var-envelope-square: "\f199"; -$fa-var-envira: "\f299"; -$fa-var-eraser: "\f12d"; -$fa-var-eur: "\f153"; -$fa-var-euro: "\f153"; -$fa-var-exchange: "\f0ec"; -$fa-var-exclamation: "\f12a"; -$fa-var-exclamation-circle: "\f06a"; -$fa-var-exclamation-triangle: "\f071"; -$fa-var-expand: "\f065"; -$fa-var-expeditedssl: "\f23e"; -$fa-var-external-link: "\f08e"; -$fa-var-external-link-square: "\f14c"; -$fa-var-eye: "\f06e"; -$fa-var-eye-slash: "\f070"; -$fa-var-eyedropper: "\f1fb"; -$fa-var-facebook: "\f09a"; -$fa-var-facebook-f: "\f09a"; -$fa-var-facebook-official: "\f230"; -$fa-var-facebook-square: "\f082"; -$fa-var-fast-backward: "\f049"; -$fa-var-fast-forward: "\f050"; -$fa-var-fax: "\f1ac"; -$fa-var-feed: "\f09e"; -$fa-var-female: "\f182"; -$fa-var-fighter-jet: "\f0fb"; -$fa-var-file: "\f15b"; -$fa-var-file-archive-o: "\f1c6"; -$fa-var-file-audio-o: "\f1c7"; -$fa-var-file-code-o: "\f1c9"; -$fa-var-file-excel-o: "\f1c3"; -$fa-var-file-image-o: "\f1c5"; -$fa-var-file-movie-o: "\f1c8"; -$fa-var-file-o: "\f016"; -$fa-var-file-pdf-o: "\f1c1"; -$fa-var-file-photo-o: "\f1c5"; -$fa-var-file-picture-o: "\f1c5"; -$fa-var-file-powerpoint-o: "\f1c4"; -$fa-var-file-sound-o: "\f1c7"; -$fa-var-file-text: "\f15c"; -$fa-var-file-text-o: "\f0f6"; -$fa-var-file-video-o: "\f1c8"; -$fa-var-file-word-o: "\f1c2"; -$fa-var-file-zip-o: "\f1c6"; -$fa-var-files-o: "\f0c5"; -$fa-var-film: "\f008"; -$fa-var-filter: "\f0b0"; -$fa-var-fire: "\f06d"; -$fa-var-fire-extinguisher: "\f134"; -$fa-var-firefox: "\f269"; -$fa-var-flag: "\f024"; -$fa-var-flag-checkered: "\f11e"; -$fa-var-flag-o: "\f11d"; -$fa-var-flash: "\f0e7"; -$fa-var-flask: "\f0c3"; -$fa-var-flickr: "\f16e"; -$fa-var-floppy-o: "\f0c7"; -$fa-var-folder: "\f07b"; -$fa-var-folder-o: "\f114"; -$fa-var-folder-open: "\f07c"; -$fa-var-folder-open-o: "\f115"; -$fa-var-font: "\f031"; -$fa-var-fonticons: "\f280"; -$fa-var-fort-awesome: "\f286"; -$fa-var-forumbee: "\f211"; -$fa-var-forward: "\f04e"; -$fa-var-foursquare: "\f180"; -$fa-var-frown-o: "\f119"; -$fa-var-futbol-o: "\f1e3"; -$fa-var-gamepad: "\f11b"; -$fa-var-gavel: "\f0e3"; -$fa-var-gbp: "\f154"; -$fa-var-ge: "\f1d1"; -$fa-var-gear: "\f013"; -$fa-var-gears: "\f085"; -$fa-var-genderless: "\f22d"; -$fa-var-get-pocket: "\f265"; -$fa-var-gg: "\f260"; -$fa-var-gg-circle: "\f261"; -$fa-var-gift: "\f06b"; -$fa-var-git: "\f1d3"; -$fa-var-git-square: "\f1d2"; -$fa-var-github: "\f09b"; -$fa-var-github-alt: "\f113"; -$fa-var-github-square: "\f092"; -$fa-var-gitlab: "\f296"; -$fa-var-gittip: "\f184"; -$fa-var-glass: "\f000"; -$fa-var-glide: "\f2a5"; -$fa-var-glide-g: "\f2a6"; -$fa-var-globe: "\f0ac"; -$fa-var-google: "\f1a0"; -$fa-var-google-plus: "\f0d5"; -$fa-var-google-plus-square: "\f0d4"; -$fa-var-google-wallet: "\f1ee"; -$fa-var-graduation-cap: "\f19d"; -$fa-var-gratipay: "\f184"; -$fa-var-group: "\f0c0"; -$fa-var-h-square: "\f0fd"; -$fa-var-hacker-news: "\f1d4"; -$fa-var-hand-grab-o: "\f255"; -$fa-var-hand-lizard-o: "\f258"; -$fa-var-hand-o-down: "\f0a7"; -$fa-var-hand-o-left: "\f0a5"; -$fa-var-hand-o-right: "\f0a4"; -$fa-var-hand-o-up: "\f0a6"; -$fa-var-hand-paper-o: "\f256"; -$fa-var-hand-peace-o: "\f25b"; -$fa-var-hand-pointer-o: "\f25a"; -$fa-var-hand-rock-o: "\f255"; -$fa-var-hand-scissors-o: "\f257"; -$fa-var-hand-spock-o: "\f259"; -$fa-var-hand-stop-o: "\f256"; -$fa-var-hard-of-hearing: "\f2a4"; -$fa-var-hashtag: "\f292"; -$fa-var-hdd-o: "\f0a0"; -$fa-var-header: "\f1dc"; -$fa-var-headphones: "\f025"; -$fa-var-heart: "\f004"; -$fa-var-heart-o: "\f08a"; -$fa-var-heartbeat: "\f21e"; -$fa-var-history: "\f1da"; -$fa-var-home: "\f015"; -$fa-var-hospital-o: "\f0f8"; -$fa-var-hotel: "\f236"; -$fa-var-hourglass: "\f254"; -$fa-var-hourglass-1: "\f251"; -$fa-var-hourglass-2: "\f252"; -$fa-var-hourglass-3: "\f253"; -$fa-var-hourglass-end: "\f253"; -$fa-var-hourglass-half: "\f252"; -$fa-var-hourglass-o: "\f250"; -$fa-var-hourglass-start: "\f251"; -$fa-var-houzz: "\f27c"; -$fa-var-html5: "\f13b"; -$fa-var-i-cursor: "\f246"; -$fa-var-ils: "\f20b"; -$fa-var-image: "\f03e"; -$fa-var-inbox: "\f01c"; -$fa-var-indent: "\f03c"; -$fa-var-industry: "\f275"; -$fa-var-info: "\f129"; -$fa-var-info-circle: "\f05a"; -$fa-var-inr: "\f156"; -$fa-var-instagram: "\f16d"; -$fa-var-institution: "\f19c"; -$fa-var-internet-explorer: "\f26b"; -$fa-var-intersex: "\f224"; -$fa-var-ioxhost: "\f208"; -$fa-var-italic: "\f033"; -$fa-var-joomla: "\f1aa"; -$fa-var-jpy: "\f157"; -$fa-var-jsfiddle: "\f1cc"; -$fa-var-key: "\f084"; -$fa-var-keyboard-o: "\f11c"; -$fa-var-krw: "\f159"; -$fa-var-language: "\f1ab"; -$fa-var-laptop: "\f109"; -$fa-var-lastfm: "\f202"; -$fa-var-lastfm-square: "\f203"; -$fa-var-leaf: "\f06c"; -$fa-var-leanpub: "\f212"; -$fa-var-legal: "\f0e3"; -$fa-var-lemon-o: "\f094"; -$fa-var-level-down: "\f149"; -$fa-var-level-up: "\f148"; -$fa-var-life-bouy: "\f1cd"; -$fa-var-life-buoy: "\f1cd"; -$fa-var-life-ring: "\f1cd"; -$fa-var-life-saver: "\f1cd"; -$fa-var-lightbulb-o: "\f0eb"; -$fa-var-line-chart: "\f201"; -$fa-var-link: "\f0c1"; -$fa-var-linkedin: "\f0e1"; -$fa-var-linkedin-square: "\f08c"; -$fa-var-linux: "\f17c"; -$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-long-arrow-down: "\f175"; -$fa-var-long-arrow-left: "\f177"; -$fa-var-long-arrow-right: "\f178"; -$fa-var-long-arrow-up: "\f176"; -$fa-var-low-vision: "\f2a8"; -$fa-var-magic: "\f0d0"; -$fa-var-magnet: "\f076"; -$fa-var-mail-forward: "\f064"; -$fa-var-mail-reply: "\f112"; -$fa-var-mail-reply-all: "\f122"; -$fa-var-male: "\f183"; -$fa-var-map: "\f279"; -$fa-var-map-marker: "\f041"; -$fa-var-map-o: "\f278"; -$fa-var-map-pin: "\f276"; -$fa-var-map-signs: "\f277"; -$fa-var-mars: "\f222"; -$fa-var-mars-double: "\f227"; -$fa-var-mars-stroke: "\f229"; -$fa-var-mars-stroke-h: "\f22b"; -$fa-var-mars-stroke-v: "\f22a"; -$fa-var-maxcdn: "\f136"; -$fa-var-meanpath: "\f20c"; -$fa-var-medium: "\f23a"; -$fa-var-medkit: "\f0fa"; -$fa-var-meh-o: "\f11a"; -$fa-var-mercury: "\f223"; -$fa-var-microphone: "\f130"; -$fa-var-microphone-slash: "\f131"; -$fa-var-minus: "\f068"; -$fa-var-minus-circle: "\f056"; -$fa-var-minus-square: "\f146"; -$fa-var-minus-square-o: "\f147"; -$fa-var-mixcloud: "\f289"; -$fa-var-mobile: "\f10b"; -$fa-var-mobile-phone: "\f10b"; -$fa-var-modx: "\f285"; -$fa-var-money: "\f0d6"; -$fa-var-moon-o: "\f186"; -$fa-var-mortar-board: "\f19d"; -$fa-var-motorcycle: "\f21c"; -$fa-var-mouse-pointer: "\f245"; -$fa-var-music: "\f001"; -$fa-var-navicon: "\f0c9"; -$fa-var-neuter: "\f22c"; -$fa-var-newspaper-o: "\f1ea"; -$fa-var-object-group: "\f247"; -$fa-var-object-ungroup: "\f248"; -$fa-var-odnoklassniki: "\f263"; -$fa-var-odnoklassniki-square: "\f264"; -$fa-var-opencart: "\f23d"; -$fa-var-openid: "\f19b"; -$fa-var-opera: "\f26a"; -$fa-var-optin-monster: "\f23c"; -$fa-var-outdent: "\f03b"; -$fa-var-pagelines: "\f18c"; -$fa-var-paint-brush: "\f1fc"; -$fa-var-paper-plane: "\f1d8"; -$fa-var-paper-plane-o: "\f1d9"; -$fa-var-paperclip: "\f0c6"; -$fa-var-paragraph: "\f1dd"; -$fa-var-paste: "\f0ea"; -$fa-var-pause: "\f04c"; -$fa-var-pause-circle: "\f28b"; -$fa-var-pause-circle-o: "\f28c"; -$fa-var-paw: "\f1b0"; -$fa-var-paypal: "\f1ed"; -$fa-var-pencil: "\f040"; -$fa-var-pencil-square: "\f14b"; -$fa-var-pencil-square-o: "\f044"; -$fa-var-percent: "\f295"; -$fa-var-phone: "\f095"; -$fa-var-phone-square: "\f098"; -$fa-var-photo: "\f03e"; -$fa-var-picture-o: "\f03e"; -$fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f1a7"; -$fa-var-pied-piper-alt: "\f1a8"; -$fa-var-pinterest: "\f0d2"; -$fa-var-pinterest-p: "\f231"; -$fa-var-pinterest-square: "\f0d3"; -$fa-var-plane: "\f072"; -$fa-var-play: "\f04b"; -$fa-var-play-circle: "\f144"; -$fa-var-play-circle-o: "\f01d"; -$fa-var-plug: "\f1e6"; -$fa-var-plus: "\f067"; -$fa-var-plus-circle: "\f055"; -$fa-var-plus-square: "\f0fe"; -$fa-var-plus-square-o: "\f196"; -$fa-var-power-off: "\f011"; -$fa-var-print: "\f02f"; -$fa-var-product-hunt: "\f288"; -$fa-var-puzzle-piece: "\f12e"; -$fa-var-qq: "\f1d6"; -$fa-var-qrcode: "\f029"; -$fa-var-question: "\f128"; -$fa-var-question-circle: "\f059"; -$fa-var-question-circle-o: "\f29c"; -$fa-var-quote-left: "\f10d"; -$fa-var-quote-right: "\f10e"; -$fa-var-ra: "\f1d0"; -$fa-var-random: "\f074"; -$fa-var-rebel: "\f1d0"; -$fa-var-recycle: "\f1b8"; -$fa-var-reddit: "\f1a1"; -$fa-var-reddit-alien: "\f281"; -$fa-var-reddit-square: "\f1a2"; -$fa-var-refresh: "\f021"; -$fa-var-registered: "\f25d"; -$fa-var-remove: "\f00d"; -$fa-var-renren: "\f18b"; -$fa-var-reorder: "\f0c9"; -$fa-var-repeat: "\f01e"; -$fa-var-reply: "\f112"; -$fa-var-reply-all: "\f122"; -$fa-var-retweet: "\f079"; -$fa-var-rmb: "\f157"; -$fa-var-road: "\f018"; -$fa-var-rocket: "\f135"; -$fa-var-rotate-left: "\f0e2"; -$fa-var-rotate-right: "\f01e"; -$fa-var-rouble: "\f158"; -$fa-var-rss: "\f09e"; -$fa-var-rss-square: "\f143"; -$fa-var-rub: "\f158"; -$fa-var-ruble: "\f158"; -$fa-var-rupee: "\f156"; -$fa-var-safari: "\f267"; -$fa-var-save: "\f0c7"; -$fa-var-scissors: "\f0c4"; -$fa-var-scribd: "\f28a"; -$fa-var-search: "\f002"; -$fa-var-search-minus: "\f010"; -$fa-var-search-plus: "\f00e"; -$fa-var-sellsy: "\f213"; -$fa-var-send: "\f1d8"; -$fa-var-send-o: "\f1d9"; -$fa-var-server: "\f233"; -$fa-var-share: "\f064"; -$fa-var-share-alt: "\f1e0"; -$fa-var-share-alt-square: "\f1e1"; -$fa-var-share-square: "\f14d"; -$fa-var-share-square-o: "\f045"; -$fa-var-shekel: "\f20b"; -$fa-var-sheqel: "\f20b"; -$fa-var-shield: "\f132"; -$fa-var-ship: "\f21a"; -$fa-var-shirtsinbulk: "\f214"; -$fa-var-shopping-bag: "\f290"; -$fa-var-shopping-basket: "\f291"; -$fa-var-shopping-cart: "\f07a"; -$fa-var-sign-in: "\f090"; -$fa-var-sign-language: "\f2a7"; -$fa-var-sign-out: "\f08b"; -$fa-var-signal: "\f012"; -$fa-var-signing: "\f2a7"; -$fa-var-simplybuilt: "\f215"; -$fa-var-sitemap: "\f0e8"; -$fa-var-skyatlas: "\f216"; -$fa-var-skype: "\f17e"; -$fa-var-slack: "\f198"; -$fa-var-sliders: "\f1de"; -$fa-var-slideshare: "\f1e7"; -$fa-var-smile-o: "\f118"; -$fa-var-snapchat: "\f2ab"; -$fa-var-snapchat-ghost: "\f2ac"; -$fa-var-snapchat-square: "\f2ad"; -$fa-var-soccer-ball-o: "\f1e3"; -$fa-var-sort: "\f0dc"; -$fa-var-sort-alpha-asc: "\f15d"; -$fa-var-sort-alpha-desc: "\f15e"; -$fa-var-sort-amount-asc: "\f160"; -$fa-var-sort-amount-desc: "\f161"; -$fa-var-sort-asc: "\f0de"; -$fa-var-sort-desc: "\f0dd"; -$fa-var-sort-down: "\f0dd"; -$fa-var-sort-numeric-asc: "\f162"; -$fa-var-sort-numeric-desc: "\f163"; -$fa-var-sort-up: "\f0de"; -$fa-var-soundcloud: "\f1be"; -$fa-var-space-shuttle: "\f197"; -$fa-var-spinner: "\f110"; -$fa-var-spoon: "\f1b1"; -$fa-var-spotify: "\f1bc"; -$fa-var-square: "\f0c8"; -$fa-var-square-o: "\f096"; -$fa-var-stack-exchange: "\f18d"; -$fa-var-stack-overflow: "\f16c"; -$fa-var-star: "\f005"; -$fa-var-star-half: "\f089"; -$fa-var-star-half-empty: "\f123"; -$fa-var-star-half-full: "\f123"; -$fa-var-star-half-o: "\f123"; -$fa-var-star-o: "\f006"; -$fa-var-steam: "\f1b6"; -$fa-var-steam-square: "\f1b7"; -$fa-var-step-backward: "\f048"; -$fa-var-step-forward: "\f051"; -$fa-var-stethoscope: "\f0f1"; -$fa-var-sticky-note: "\f249"; -$fa-var-sticky-note-o: "\f24a"; -$fa-var-stop: "\f04d"; -$fa-var-stop-circle: "\f28d"; -$fa-var-stop-circle-o: "\f28e"; -$fa-var-street-view: "\f21d"; -$fa-var-strikethrough: "\f0cc"; -$fa-var-stumbleupon: "\f1a4"; -$fa-var-stumbleupon-circle: "\f1a3"; -$fa-var-subscript: "\f12c"; -$fa-var-subway: "\f239"; -$fa-var-suitcase: "\f0f2"; -$fa-var-sun-o: "\f185"; -$fa-var-superscript: "\f12b"; -$fa-var-support: "\f1cd"; -$fa-var-table: "\f0ce"; -$fa-var-tablet: "\f10a"; -$fa-var-tachometer: "\f0e4"; -$fa-var-tag: "\f02b"; -$fa-var-tags: "\f02c"; -$fa-var-tasks: "\f0ae"; -$fa-var-taxi: "\f1ba"; -$fa-var-television: "\f26c"; -$fa-var-tencent-weibo: "\f1d5"; -$fa-var-terminal: "\f120"; -$fa-var-text-height: "\f034"; -$fa-var-text-width: "\f035"; -$fa-var-th: "\f00a"; -$fa-var-th-large: "\f009"; -$fa-var-th-list: "\f00b"; -$fa-var-thumb-tack: "\f08d"; -$fa-var-thumbs-down: "\f165"; -$fa-var-thumbs-o-down: "\f088"; -$fa-var-thumbs-o-up: "\f087"; -$fa-var-thumbs-up: "\f164"; -$fa-var-ticket: "\f145"; -$fa-var-times: "\f00d"; -$fa-var-times-circle: "\f057"; -$fa-var-times-circle-o: "\f05c"; -$fa-var-tint: "\f043"; -$fa-var-toggle-down: "\f150"; -$fa-var-toggle-left: "\f191"; -$fa-var-toggle-off: "\f204"; -$fa-var-toggle-on: "\f205"; -$fa-var-toggle-right: "\f152"; -$fa-var-toggle-up: "\f151"; -$fa-var-trademark: "\f25c"; -$fa-var-train: "\f238"; -$fa-var-transgender: "\f224"; -$fa-var-transgender-alt: "\f225"; -$fa-var-trash: "\f1f8"; -$fa-var-trash-o: "\f014"; -$fa-var-tree: "\f1bb"; -$fa-var-trello: "\f181"; -$fa-var-tripadvisor: "\f262"; -$fa-var-trophy: "\f091"; -$fa-var-truck: "\f0d1"; -$fa-var-try: "\f195"; -$fa-var-tty: "\f1e4"; -$fa-var-tumblr: "\f173"; -$fa-var-tumblr-square: "\f174"; -$fa-var-turkish-lira: "\f195"; -$fa-var-tv: "\f26c"; -$fa-var-twitch: "\f1e8"; -$fa-var-twitter: "\f099"; -$fa-var-twitter-square: "\f081"; -$fa-var-umbrella: "\f0e9"; -$fa-var-underline: "\f0cd"; -$fa-var-undo: "\f0e2"; -$fa-var-universal-access: "\f29a"; -$fa-var-university: "\f19c"; -$fa-var-unlink: "\f127"; -$fa-var-unlock: "\f09c"; -$fa-var-unlock-alt: "\f13e"; -$fa-var-unsorted: "\f0dc"; -$fa-var-upload: "\f093"; -$fa-var-usb: "\f287"; -$fa-var-usd: "\f155"; -$fa-var-user: "\f007"; -$fa-var-user-md: "\f0f0"; -$fa-var-user-plus: "\f234"; -$fa-var-user-secret: "\f21b"; -$fa-var-user-times: "\f235"; -$fa-var-users: "\f0c0"; -$fa-var-venus: "\f221"; -$fa-var-venus-double: "\f226"; -$fa-var-venus-mars: "\f228"; -$fa-var-viacoin: "\f237"; -$fa-var-viadeo: "\f2a9"; -$fa-var-viadeo-square: "\f2aa"; -$fa-var-video-camera: "\f03d"; -$fa-var-vimeo: "\f27d"; -$fa-var-vimeo-square: "\f194"; -$fa-var-vine: "\f1ca"; -$fa-var-vk: "\f189"; -$fa-var-volume-control-phone: "\f2a0"; -$fa-var-volume-down: "\f027"; -$fa-var-volume-off: "\f026"; -$fa-var-volume-up: "\f028"; -$fa-var-warning: "\f071"; -$fa-var-wechat: "\f1d7"; -$fa-var-weibo: "\f18a"; -$fa-var-weixin: "\f1d7"; -$fa-var-whatsapp: "\f232"; -$fa-var-wheelchair: "\f193"; -$fa-var-wheelchair-alt: "\f29b"; -$fa-var-wifi: "\f1eb"; -$fa-var-wikipedia-w: "\f266"; -$fa-var-windows: "\f17a"; -$fa-var-won: "\f159"; -$fa-var-wordpress: "\f19a"; -$fa-var-wpbeginner: "\f297"; -$fa-var-wpforms: "\f298"; -$fa-var-wrench: "\f0ad"; -$fa-var-xing: "\f168"; -$fa-var-xing-square: "\f169"; -$fa-var-y-combinator: "\f23b"; -$fa-var-y-combinator-square: "\f1d4"; -$fa-var-yahoo: "\f19e"; -$fa-var-yc: "\f23b"; -$fa-var-yc-square: "\f1d4"; -$fa-var-yelp: "\f1e9"; -$fa-var-yen: "\f157"; -$fa-var-youtube: "\f167"; -$fa-var-youtube-play: "\f16a"; -$fa-var-youtube-square: "\f166"; - diff --git a/_stylesheets/magnific-popup/_magnific-popup.scss b/_stylesheets/magnific-popup/_magnific-popup.scss deleted file mode 100644 index 27b27bcc3..000000000 --- a/_stylesheets/magnific-popup/_magnific-popup.scss +++ /dev/null @@ -1,649 +0,0 @@ -/* 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/_stylesheets/magnific-popup/_settings.scss b/_stylesheets/magnific-popup/_settings.scss deleted file mode 100644 index caaca0266..000000000 --- a/_stylesheets/magnific-popup/_settings.scss +++ /dev/null @@ -1,46 +0,0 @@ -//////////////////////// -// 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/_stylesheets/octicons.css b/_stylesheets/octicons.css deleted file mode 100644 index 2b6c83d63..000000000 --- a/_stylesheets/octicons.css +++ /dev/null @@ -1,238 +0,0 @@ -@font-face { - font-family: 'octicons'; - src: url('octicons.eot'); - src: url('octicons.eot#iefix') format('embedded-opentype'), - url('octicons.woff') format('woff'), - url('octicons.ttf') format('truetype'), - url('octicons.svg#octicons') format('svg'); - font-weight: normal; - font-style: normal; -} - -/* - -.octicon is optimized for 16px. -.mega-octicon is optimized for 32px but can be used larger. - -*/ -.octicon { - font: normal normal 16px octicons; - line-height: 1; - display: inline-block; - text-decoration: none; - -webkit-font-smoothing: antialiased; -} -.mega-octicon { - font: normal normal 32px octicons; - line-height: 1; - display: inline-block; - text-decoration: none; - -webkit-font-smoothing: antialiased; -} - -.octicon-alert:before { content: '\f02d'} /*  */ -.octicon-alignment-align:before { content: '\f08a'} /*  */ -.octicon-alignment-aligned-to:before { content: '\f08e'} /*  */ -.octicon-alignment-unalign:before { content: '\f08b'} /*  */ -.octicon-arrow-down:before { content: '\f03f'} /*  */ -.octicon-arrow-left:before { content: '\f040'} /*  */ -.octicon-arrow-right:before { content: '\f03e'} /*  */ -.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ -.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ -.octicon-arrow-small-right:before { content: '\f071'} /*  */ -.octicon-arrow-small-up:before { content: '\f09f'} /*  */ -.octicon-arrow-up:before { content: '\f03d'} /*  */ -.octicon-beer:before { content: '\f069'} /*  */ -.octicon-book:before { content: '\f007'} /*  */ -.octicon-bookmark:before { content: '\f07b'} /*  */ -.octicon-briefcase:before { content: '\f0d3'} /*  */ -.octicon-broadcast:before { content: '\f048'} /*  */ -.octicon-browser:before { content: '\f0c5'} /*  */ -.octicon-bug:before { content: '\f091'} /*  */ -.octicon-calendar:before { content: '\f068'} /*  */ -.octicon-check:before { content: '\f03a'} /*  */ -.octicon-checklist:before { content: '\f076'} /*  */ -.octicon-chevron-down:before { content: '\f0a3'} /*  */ -.octicon-chevron-left:before { content: '\f0a4'} /*  */ -.octicon-chevron-right:before { content: '\f078'} /*  */ -.octicon-chevron-up:before { content: '\f0a2'} /*  */ -.octicon-circle-slash:before { content: '\f084'} /*  */ -.octicon-clippy:before { content: '\f035'} /*  */ -.octicon-clock:before { content: '\f046'} /*  */ -.octicon-cloud-download:before { content: '\f00b'} /*  */ -.octicon-cloud-upload:before { content: '\f00c'} /*  */ -.octicon-code:before { content: '\f05f'} /*  */ -.octicon-color-mode:before { content: '\f065'} /*  */ -.octicon-comment:before { content: '\f02b'} /*  */ -.octicon-comment-add:before { content: '\f06f'} /*  */ -.octicon-comment-discussion:before { content: '\f04f'} /*  */ -.octicon-credit-card:before { content: '\f045'} /*  */ -.octicon-dash:before { content: '\f0ca'} /*  */ -.octicon-dashboard:before { content: '\f07d'} /*  */ -.octicon-database:before { content: '\f096'} /*  */ -.octicon-device-camera:before { content: '\f056'} /*  */ -.octicon-device-camera-video:before { content: '\f057'} /*  */ -.octicon-device-desktop:before { content: '\f27c'} /*  */ -.octicon-device-mobile:before { content: '\f038'} /*  */ -.octicon-diff:before { content: '\f04d'} /*  */ -.octicon-diff-added:before { content: '\f06b'} /*  */ -.octicon-diff-ignored:before { content: '\f099'} /*  */ -.octicon-diff-modified:before { content: '\f06d'} /*  */ -.octicon-diff-removed:before { content: '\f06c'} /*  */ -.octicon-diff-renamed:before { content: '\f06e'} /*  */ -.octicon-ellipsis:before { content: '\f09a'} /*  */ -.octicon-eye:before { content: '\f04e'} /*  */ -.octicon-eye-unwatch:before { content: '\f01e'} /*  */ -.octicon-eye-watch:before { content: '\f01d'} /*  */ -.octicon-file-add:before { content: '\f086'} /*  */ -.octicon-file-binary:before { content: '\f094'} /*  */ -.octicon-file-code:before { content: '\f010'} /*  */ -.octicon-file-directory:before { content: '\f016'} /*  */ -.octicon-file-directory-create:before { content: '\f095'} /*  */ -.octicon-file-media:before { content: '\f012'} /*  */ -.octicon-file-pdf:before { content: '\f014'} /*  */ -.octicon-file-submodule:before { content: '\f017'} /*  */ -.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ -.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ -.octicon-file-text:before { content: '\f011'} /*  */ -.octicon-file-zip:before { content: '\f013'} /*  */ -.octicon-flame:before { content: '\f0d2'} /*  */ -.octicon-fold:before { content: '\f0cc'} /*  */ -.octicon-gear:before { content: '\f02f'} /*  */ -.octicon-gift:before { content: '\f042'} /*  */ -.octicon-gist:before { content: '\f00e'} /*  */ -.octicon-gist-fork:before { content: '\f079'} /*  */ -.octicon-gist-new:before { content: '\f07a'} /*  */ -.octicon-gist-private:before { content: '\f00f'} /*  */ -.octicon-gist-secret:before { content: '\f08c'} /*  */ -.octicon-git-branch:before { content: '\f020'} /*  */ -.octicon-git-branch-create:before { content: '\f098'} /*  */ -.octicon-git-branch-delete:before { content: '\f09b'} /*  */ -.octicon-git-commit:before { content: '\f01f'} /*  */ -.octicon-git-compare:before { content: '\f0ac'} /*  */ -.octicon-git-fork-private:before { content: '\f021'} /*  */ -.octicon-git-merge:before { content: '\f023'} /*  */ -.octicon-git-pull-request:before { content: '\f009'} /*  */ -.octicon-git-pull-request-abandoned:before { content: '\f090'} /*  */ -.octicon-globe:before { content: '\f0b6'} /*  */ -.octicon-graph:before { content: '\f043'} /*  */ -.octicon-heart:before { content: '\2665'} /* ♥ */ -.octicon-history:before { content: '\f07e'} /*  */ -.octicon-home:before { content: '\f08d'} /*  */ -.octicon-horizontal-rule:before { content: '\f070'} /*  */ -.octicon-hourglass:before { content: '\f09e'} /*  */ -.octicon-hubot:before { content: '\f09d'} /*  */ -.octicon-inbox:before { content: '\f0cf'} /*  */ -.octicon-info:before { content: '\f059'} /*  */ -.octicon-issue-closed:before { content: '\f028'} /*  */ -.octicon-issue-opened:before { content: '\f026'} /*  */ -.octicon-issue-reopened:before { content: '\f027'} /*  */ -.octicon-jersey:before { content: '\f019'} /*  */ -.octicon-jump-down:before { content: '\f072'} /*  */ -.octicon-jump-left:before { content: '\f0a5'} /*  */ -.octicon-jump-right:before { content: '\f0a6'} /*  */ -.octicon-jump-up:before { content: '\f073'} /*  */ -.octicon-key:before { content: '\f049'} /*  */ -.octicon-keyboard:before { content: '\f00d'} /*  */ -.octicon-light-bulb:before { content: '\f000'} /*  */ -.octicon-link:before { content: '\f05c'} /*  */ -.octicon-link-external:before { content: '\f07f'} /*  */ -.octicon-list-ordered:before { content: '\f062'} /*  */ -.octicon-list-unordered:before { content: '\f061'} /*  */ -.octicon-location:before { content: '\f060'} /*  */ -.octicon-lock:before { content: '\f06a'} /*  */ -.octicon-log-in:before { content: '\f036'} /*  */ -.octicon-log-out:before { content: '\f032'} /*  */ -.octicon-logo-github:before { content: '\f092'} /*  */ -.octicon-mail:before { content: '\f03b'} /*  */ -.octicon-mail-read:before { content: '\f03c'} /*  */ -.octicon-mail-reply:before { content: '\f051'} /*  */ -.octicon-mark-facebook:before { content: '\f0ce'} /*  */ -.octicon-mark-github:before { content: '\f00a'} /*  */ -.octicon-mark-google:before { content: '\f0cd'} /*  */ -.octicon-mark-gravatar:before { content: '\f0d5'} /*  */ -.octicon-mark-twitter:before { content: '\f0ae'} /*  */ -.octicon-markdown:before { content: '\f0c9'} /*  */ -.octicon-megaphone:before { content: '\f077'} /*  */ -.octicon-mention:before { content: '\f0be'} /*  */ -.octicon-microscope:before { content: '\f089'} /*  */ -.octicon-milestone:before { content: '\f075'} /*  */ -.octicon-mirror-private:before { content: '\f025'} /*  */ -.octicon-mirror-public:before { content: '\f024'} /*  */ -.octicon-move-down:before { content: '\f0a8'} /*  */ -.octicon-move-left:before { content: '\f074'} /*  */ -.octicon-move-right:before { content: '\f0a9'} /*  */ -.octicon-move-up:before { content: '\f0a7'} /*  */ -.octicon-mute:before { content: '\f080'} /*  */ -.octicon-mute-video:before { content: '\f0b8'} /*  */ -.octicon-no-newline:before { content: '\f09c'} /*  */ -.octicon-octoface:before { content: '\f008'} /*  */ -.octicon-organization:before { content: '\f037'} /*  */ -.octicon-package:before { content: '\f0c4'} /*  */ -.octicon-paintcan:before { content: '\f0d1'} /*  */ -.octicon-pencil:before { content: '\f058'} /*  */ -.octicon-person:before { content: '\f018'} /*  */ -.octicon-person-add:before { content: '\f01a'} /*  */ -.octicon-person-follow:before { content: '\f01c'} /*  */ -.octicon-person-remove:before { content: '\f01b'} /*  */ -.octicon-pin:before { content: '\f041'} /*  */ -.octicon-playback-fast-forward:before { content: '\f0bd'} /*  */ -.octicon-playback-pause:before { content: '\f0bb'} /*  */ -.octicon-playback-play:before { content: '\f0bf'} /*  */ -.octicon-playback-rewind:before { content: '\f0bc'} /*  */ -.octicon-plug:before { content: '\f0d4'} /*  */ -.octicon-plus:before { content: '\f05d'} /*  */ -.octicon-podium:before { content: '\f0af'} /*  */ -.octicon-primitive-dot:before { content: '\f052'} /*  */ -.octicon-primitive-square:before { content: '\f053'} /*  */ -.octicon-pulse:before { content: '\f085'} /*  */ -.octicon-puzzle:before { content: '\f0c0'} /*  */ -.octicon-question:before { content: '\f02c'} /*  */ -.octicon-quote:before { content: '\f063'} /*  */ -.octicon-radio-tower:before { content: '\f030'} /*  */ -.octicon-remove-close:before { content: '\f050'} /*  */ -.octicon-repo:before { content: '\f001'} /*  */ -.octicon-repo-clone:before { content: '\f04c'} /*  */ -.octicon-repo-create:before { content: '\f003'} /*  */ -.octicon-repo-delete:before { content: '\f004'} /*  */ -.octicon-repo-force-push:before { content: '\f04a'} /*  */ -.octicon-repo-forked:before { content: '\f002'} /*  */ -.octicon-repo-pull:before { content: '\f006'} /*  */ -.octicon-repo-push:before { content: '\f005'} /*  */ -.octicon-repo-sync:before { content: '\f04b'} /*  */ -.octicon-rocket:before { content: '\f033'} /*  */ -.octicon-rss:before { content: '\f034'} /*  */ -.octicon-ruby:before { content: '\f047'} /*  */ -.octicon-screen-full:before { content: '\f066'} /*  */ -.octicon-screen-normal:before { content: '\f067'} /*  */ -.octicon-search:before { content: '\f02e'} /*  */ -.octicon-search-save:before { content: '\f0cb'} /*  */ -.octicon-server:before { content: '\f097'} /*  */ -.octicon-settings:before { content: '\f07c'} /*  */ -.octicon-split:before { content: '\f0c6'} /*  */ -.octicon-squirrel:before { content: '\f0b2'} /*  */ -.octicon-star:before { content: '\f02a'} /*  */ -.octicon-star-add:before { content: '\f082'} /*  */ -.octicon-star-delete:before { content: '\f083'} /*  */ -.octicon-steps:before { content: '\f0c7'} /*  */ -.octicon-stop:before { content: '\f08f'} /*  */ -.octicon-sync:before { content: '\f087'} /*  */ -.octicon-tag:before { content: '\f015'} /*  */ -.octicon-tag-add:before { content: '\f054'} /*  */ -.octicon-tag-remove:before { content: '\f055'} /*  */ -.octicon-telescope:before { content: '\f088'} /*  */ -.octicon-terminal:before { content: '\f0c8'} /*  */ -.octicon-three-bars:before { content: '\f05e'} /*  */ -.octicon-tools:before { content: '\f031'} /*  */ -.octicon-trashcan:before { content: '\f0d0'} /*  */ -.octicon-triangle-down:before { content: '\f05b'} /*  */ -.octicon-triangle-left:before { content: '\f044'} /*  */ -.octicon-triangle-right:before { content: '\f05a'} /*  */ -.octicon-triangle-up:before { content: '\f0aa'} /*  */ -.octicon-unfold:before { content: '\f039'} /*  */ -.octicon-unmute:before { content: '\f0ba'} /*  */ -.octicon-unmute-video:before { content: '\f0b9'} /*  */ -.octicon-versions:before { content: '\f064'} /*  */ -.octicon-x:before { content: '\f081'} /*  */ -.octicon-zap:before { content: '\26A1'} /* ⚡ */ - diff --git a/_stylesheets/octicons.eot b/_stylesheets/octicons.eot deleted file mode 100644 index ee27caf92..000000000 Binary files a/_stylesheets/octicons.eot and /dev/null differ diff --git a/_stylesheets/octicons.svg b/_stylesheets/octicons.svg deleted file mode 100644 index 1f92aad3e..000000000 --- a/_stylesheets/octicons.svg +++ /dev/null @@ -1,216 +0,0 @@ - - - -Copyright (C) 2013 by GitHub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/_stylesheets/octicons.ttf b/_stylesheets/octicons.ttf deleted file mode 100644 index bb4cccef0..000000000 Binary files a/_stylesheets/octicons.ttf and /dev/null differ diff --git a/_stylesheets/octicons.woff b/_stylesheets/octicons.woff deleted file mode 100644 index 508a89c3e..000000000 Binary files a/_stylesheets/octicons.woff and /dev/null differ diff --git a/_stylesheets/susy/_su.scss b/_stylesheets/susy/_su.scss deleted file mode 100644 index 83386adba..000000000 --- a/_stylesheets/susy/_su.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Su -// == - -@import 'susy/su'; diff --git a/_stylesheets/susy/_susy.scss b/_stylesheets/susy/_susy.scss deleted file mode 100644 index 224e98ad2..000000000 --- a/_stylesheets/susy/_susy.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Susy -// ==== - -@import 'susy/language/susy'; diff --git a/_stylesheets/susy/_susyone.scss b/_stylesheets/susy/_susyone.scss deleted file mode 100644 index 5b934c688..000000000 --- a/_stylesheets/susy/_susyone.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Susy -// ==== - -@import 'susy/language/susyone'; diff --git a/_stylesheets/susy/susy/_su.scss b/_stylesheets/susy/susy/_su.scss deleted file mode 100644 index a14541574..000000000 --- a/_stylesheets/susy/susy/_su.scss +++ /dev/null @@ -1,7 +0,0 @@ -// Su -// == - -@import "su/utilities"; -@import "su/settings"; -@import "su/validation"; -@import "su/grid"; diff --git a/_stylesheets/susy/susy/language/_susy.scss b/_stylesheets/susy/susy/language/_susy.scss deleted file mode 100644 index 0ee9cae2b..000000000 --- a/_stylesheets/susy/susy/language/_susy.scss +++ /dev/null @@ -1,24 +0,0 @@ -// Susy Next Syntax -// ================ - -$susy-version: 2.1; - -@import "../su"; -@import "../output/float"; - -@import "susy/settings"; -@import "susy/validation"; -@import "susy/grids"; -@import "susy/box-sizing"; -@import "susy/context"; -@import "susy/background"; -@import "susy/container"; -@import "susy/span"; -@import "susy/gutters"; -@import "susy/isolate"; -@import "susy/gallery"; -@import "susy/rows"; -@import "susy/margins"; -@import "susy/padding"; -@import "susy/bleed"; -@import "susy/breakpoint-plugin"; diff --git a/_stylesheets/susy/susy/language/_susyone.scss b/_stylesheets/susy/susy/language/_susyone.scss deleted file mode 100644 index a783d3a82..000000000 --- a/_stylesheets/susy/susy/language/_susyone.scss +++ /dev/null @@ -1,13 +0,0 @@ -// --------------------------------------------------------------------------- -// Partials - -$susy-version: 1.5; - -@import "susyone/settings"; -@import "susyone/functions"; -@import "susyone/grid"; -@import "susyone/isolation"; -@import "susyone/padding"; -@import "susyone/margin"; -@import "susyone/media"; -@import "susyone/background"; diff --git a/_stylesheets/susy/susy/language/susy/_background.scss b/_stylesheets/susy/susy/language/susy/_background.scss deleted file mode 100644 index d39dc7218..000000000 --- a/_stylesheets/susy/susy/language/susy/_background.scss +++ /dev/null @@ -1,385 +0,0 @@ -// Background Grid Syntax -// ====================== - -$susy-overlay-grid-head-exists: false; - - -// Show Grid/s -// ----------- -// Show grid on any element using either background or overlay. -// - [$grid] : -@mixin show-grid( - $grid: $susy -) { - $inspect: $grid; - $_output: debug-get(output, $grid); - - @include susy-inspect(show-grid, $inspect); - @if $_output == overlay and susy-get(debug image, $grid) != hide { - @include overlay-grid($grid); - } @else { - @include background-grid($grid); - } -} - -@mixin show-grids( - $grid: $susy -) { - @include show-grid($grid); -} - -// Background Grid -// --------------- -// Show a grid background on any element. -// - [$grid] : -@mixin background-grid( - $grid: $susy -) { - $inspect : $grid; - $_output : get-background($grid); - - @if length($_output) > 0 { - $_flow: susy-get(flow, $grid); - - $_image: (); - @each $name, $layer in map-get($_output, image) { - $_direction: if($name == baseline, to bottom, to to($_flow)); - $_image: append($_image, linear-gradient($_direction, $layer), comma); - } - $_output: map-merge($_output, (image: $_image)); - - @include background-grid-output($_output...); - @include susy-inspect(background-grid, $inspect); - } -} - - -// Overlay Grid -// ------------ -// Generate an icon to trigger grid-overlays on any given elements. -// $grids... : [] [, ]* -@mixin overlay-grid ( - $grid: $susy -) { - @if not($susy-overlay-grid-head-exists) { - @at-root head { @include overlay-head($grid); } - @at-root head:before { @include overlay-trigger; } - @at-root head:hover { @include overlay-trigger-hover; } - $susy-overlay-grid-head-exists: true !global; - } - - head:hover ~ &, - head:hover ~ body & { - position: relative; - &:before { - @include grid-overlay-base; - @include background-grid($grid); - } - } -} - - -// [Private] Overlay Trigger -// ------------------------- -@mixin overlay-trigger { - content: "|||"; - display: block; - padding: 5px 10px; - font: { - family: sans-serif; - size: 16px; - weight: bold; - } -} - - -// [Private] Overlay Trigger Hover -// ------------------------------- -@mixin overlay-trigger-hover { - background: rgba(white, .5); - color: red; -} - - -// [Private] Overlay Head -// ---------------------- -// styles to create grid overlay toggle -@mixin overlay-head ( - $grid: $susy -) { - $_toggle: debug-get(toggle, $grid); - $_horz: null; - $_vert: null; - - @each $side in $_toggle { - $_horz: if($side == left or $side == right, $side, $_horz); - $_vert: if($side == top or $side == bottom, $side, $_vert); - } - - display: block; - position: fixed; - #{$_horz}: 10px; - #{$_vert}: 10px; - z-index: 999; - color: #333; - background: rgba(white, .25); -} - - -// [Private] Grid Overlay Base -// --------------------------- -// Base styles for generating a grid overlay -@mixin grid-overlay-base() { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - content: " "; - z-index: 998; -} - - -// Get Symmetrical Background -// -------------------------- -// - $grid: -@function get-background-sym( - $grid -) { - $grid : parse-grid($grid); - $_gutters : susy-get(gutters, $grid); - $_column-width : susy-get(column-width, $grid); - $_math : susy-get(math, $grid); - - $_color : debug-get(color); - $_trans : transparent; - $_light : lighten($_color, 15%); - - $_end : 1 + $_gutters; - $_after : percentage(1/$_end); - $_stops : (); - $_size : span(1 $grid wide); - - @if is-inside($grid) { - $_stops: $_color, $_light; - } @else if is-split($grid) { - $_split: $_gutters/2; - $_before: percentage($_split/$_end); - $_after: percentage((1 + $_split)/$_end); - $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after; - } @else { - $_stops: $_color, $_light $_after, $_trans $_after; - } - - @if $_math == static { - $_size: valid-column-math($_math, $_column-width) * $_end; - } - - $_output: ( - image: (columns: $_stops), - size: $_size, - ); - - @return $_output; -} - - -// Get Asymmetrical Inside -// ----------------------- -// - $grid: -@function get-asym-inside( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - @if $location == 1 { - $this-stop: append($this-stop, $_color, comma); - } @else { - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, $_color $start, comma); - } - - @if $location == susy-count($_columns) { - $this-stop: append($this-stop, $_light, comma); - } @else { - $_end: parse-span(1 at ($location + 1) $grid); - $_end: get-isolation($_end); - $this-stop: append($this-stop, $_light $_end, comma); - } - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Split -// ---------------------- -// - $grid: -@function get-asym-split( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, transparent $start, comma); - $this-stop: append($this-stop, $_color $start, comma); - - $_end: $start + span(1 at $location $grid); - $this-stop: append($this-stop, $_light $_end, comma); - $this-stop: append($this-stop, transparent $_end, comma); - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Outside -// ------------------------ -// - $grid: -@function get-asym-outside( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_trans : transparent; - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - @if $location == 1 { - $this-stop: append($this-stop, $_color, comma); - } @else { - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, $_color $start, comma); - } - - @if $location == susy-count($_columns) { - $this-stop: append($this-stop, $_light, comma); - } @else { - $gutter: get-span-width(first $location $grid); - - $_end: parse-span(1 at ($location + 1) $grid); - $_end: get-isolation($_end); - - $gutter: $_light $gutter, $_trans $gutter, $_trans $_end; - $this-stop: join($this-stop, $gutter, comma); - } - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Background -// --------------------------- -// - $grid: -@function get-background-asym( - $grid -) { - $_stops: (); - - @if is-inside($grid) { - $_stops: get-asym-inside($grid); - } @else if is-split($grid) { - $_stops: get-asym-split($grid); - } @else { - $_stops: get-asym-outside($grid); - } - - @return (image: (columns: $_stops)); -} - - -// Get Background -// -------------- -// - $grid: -@function get-background( - $grid -) { - $grid : parse-grid($grid); - $_show : susy-get(debug image, $grid); - $_return : (); - - @if $_show and $_show != 'hide' { - $_columns: susy-get(columns, $grid); - - @if $_show != 'show-baseline' { - $_sym: is-symmetrical($_columns); - $_return: if($_sym, get-background-sym($grid), get-background-asym($grid)); - $_return: map-merge($_return, (clip: content-box)); - } - - @if $_show != 'show-columns' - and global-variable-exists(base-line-height) - and type-of($base-line-height) == 'number' - and not unitless($base-line-height) { - $_color: variable-exists('grid-background-baseline-color'); - $_color: if($_color, $grid-background-baseline-color, #000); - - $_image: map-get($_return, image); - $_size: map-get($_return, size); - $_baseline: (baseline: ($_color 1px, transparent 1px)); - $_baseline-size: 100% $base-line-height; - - $_return: map-merge($_return, ( - image: if($_image, map-merge($_image, $_baseline), $_baseline), - size: if($_size, ($_size, $_baseline-size), $_baseline-size), - )); - - @if $_show == 'show' { - $_clip: map-get($_return, clip); - $_return: map-merge($_return, (clip: join($_clip, border-box, comma))); - } - } @else if $_show == 'show-baseline' { - @warn 'Please provide a $base-line-height with the desired height and units'; - } - } - - @if map-get($_return, image) { - $_return: map-merge($_return, (flow: susy-get(flow, $grid))); - } - - @return $_return; -} - - -// Get Debug -// --------- -// Return the value of a debug setting -// - $key: -@function debug-get( - $key, - $grid: $susy -) { - $key: join(debug, $key, space); - @return susy-get($key, $grid); -} diff --git a/_stylesheets/susy/susy/language/susy/_bleed.scss b/_stylesheets/susy/susy/language/susy/_bleed.scss deleted file mode 100644 index 8ef597432..000000000 --- a/_stylesheets/susy/susy/language/susy/_bleed.scss +++ /dev/null @@ -1,200 +0,0 @@ -// Bleed Syntax -// ============ - -// Bleed -// ----- -// Add negative margins, and equal positive padding to create bleed. -// - $bleed : -@mixin bleed( - $bleed: 0 gutter() -) { - $inspect : $bleed; - $output : get-bleed($bleed); - - @if susy-get(global-box-sizing) != content-box { - $output: map-merge((box-sizing: content-box), $output); - } - - @include susy-inspect(bleed, $inspect); - @include output($output); -} - - -// Bleed-x -// ------- -// Shortcut for horizontal bleed. -// - $bleed : -@mixin bleed-x( - $bleed: gutter() -) { - $bleed : parse-span($bleed); - $trbl : susy-get(span, $bleed); - - @if length($trbl) == 1 { - $bleed: map-merge($bleed, (span: 0 nth($trbl, 1))); - } @else if length($trbl) == 2 { - $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1))); - } @else { - @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.'; - } - - @include bleed($bleed); -} - - -// Bleed-y -// ------- -// Shortcut for vertical bleed. -// - $bleed : -@mixin bleed-y( - $bleed: if(function-exists(rhythm), rhythm(1), 1em) -) { - $bleed : parse-span($bleed); - $trbl : susy-get(span, $bleed); - - @if length($trbl) == 1 { - $bleed: map-merge($bleed, (span: nth($trbl, 1) 0)); - } @else if length($trbl) == 2 { - $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0)); - } @else { - @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.'; - } - - @include bleed($bleed); -} - - -// Get Bleed -// --------- -// Return bleed output values -// - $bleed: -@function get-bleed( - $bleed -) { - $bleed : map-merge((spread: wide), parse-span($bleed)); - $trbl : susy-get(span, $bleed); - $short : null; - $output : (); - - @for $i from 1 through length($trbl) { - $this: nth($trbl, $i); - $new: (); - $margin: null; - $padding: null; - $padding-x: null; - - @if $this > 0 { - $this: map-merge($bleed, (span: $this)); - $margin: span($this); - $padding: $margin; - $padding-x: $padding; - } - - @if $margin and $margin > 0 { - $margin: - $margin; - - @if is-inside($this) { - $gutter: gutter($this); - $join: if($gutter and comparable($padding, $gutter), true, false); - $padding-x: if($join and $padding > 0, $padding + $gutter, $padding); - } - } - - @if $i == 1 { - $new: ( - margin-top: $margin, - padding-top: $padding, - margin-right: $margin, - padding-right: $padding-x, - margin-bottom: $margin, - padding-bottom: $padding, - margin-left: $margin, - padding-left: $padding-x, - ); - } @else if $i == 2 { - $new: ( - margin-right: $margin, - padding-right: $padding-x, - margin-left: $margin, - padding-left: $padding-x, - ); - } @else if $i == 3 { - $new: ( - margin-bottom: $margin, - padding-bottom: $padding, - ); - } @else if $i == 4 { - $new: ( - margin-left: $margin, - padding-left: $padding-x, - ); - } - - $output: map-merge($output, $new); - } - - @each $prop, $value in $output { - $output: if($value == 0, map-merge($output, ($prop: null)), $output); - } - - @return bleed-shorthand($output); -} - -// Bleed Shorthand -// --------------- -// Convert bleed output into shorthand when possible. -// - $bleed: -@function bleed-shorthand( - $bleed -) { - $margin: (); - $padding: (); - $return: (); - - @each $key, $value in $bleed { - @if str-index($key, margin) { - $margin: map-merge($margin, ($key: $value)); - } @else if str-index($key, padding) > 0 { - $padding: map-merge($padding, ($key: $value)); - } - } - - $props: ( - margin: $margin, - padding: $padding, - ); - - @each $name, $map in $props { - $four: if(length(map-keys($map)) == 4, true, false); - $null: if(index(map-values($map), null), true, false); - - @if $four and not($null) { - $top: map-get($map, '#{$name}-top'); - $right: map-get($map, '#{$name}-right'); - $bottom: map-get($map, '#{$name}-bottom'); - $left: map-get($map, '#{$name}-left'); - - $tb: if($top == $bottom, $top, null); - $rl: if($right == $left, $right, null); - $all: if($tb == $rl, $tb, null); - - $new: if($all, $all, null); - - @if not($new) { - @if $tb and $rl { - $new: $tb $rl; - } @else if $rl { - $new: $top $rl $bottom; - } @else { - $new: $top $right $bottom $left; - } - } - - $return: map-merge($return, ($name: $new)); - } @else { - $return: map-merge($return, $map); - } - } - - @return $return; -} diff --git a/_stylesheets/susy/susy/language/susy/_box-sizing.scss b/_stylesheets/susy/susy/language/susy/_box-sizing.scss deleted file mode 100644 index f551241de..000000000 --- a/_stylesheets/susy/susy/language/susy/_box-sizing.scss +++ /dev/null @@ -1,47 +0,0 @@ -// Susy Box Sizing -// ================= - -// Global Box Sizing -// ----------------- -// Set a box model globally on all elements. -// - [$box]: border-box | content-box -// - [$inherit]: true | false -@mixin global-box-sizing( - $box: susy-get(global-box-sizing), - $inherit: false -) { - $inspect: $box; - - @if $inherit { - @at-root { - html { @include output((box-sizing: $box)); } - *, *:before, *:after { box-sizing: inherit; } - } - } @else { - *, *:before, *:after { @include output((box-sizing: $box)); } - } - - @include susy-inspect(global-box-sizing, $inspect); - @include update-box-model($box); -} - -// Border Box Sizing -// ----------------- -// A legacy shortcut... -// - [$inherit]: true | false -@mixin border-box-sizing( - $inherit: false -) { - @include global-box-sizing(border-box, $inherit); -} - -// Update Box Model -// ---------------- -// PRIVATE: Updates global box model setting -@mixin update-box-model( - $box -) { - @if $box != susy-get(global-box-sizing) { - @include susy-set(global-box-sizing, $box); - } -} diff --git a/_stylesheets/susy/susy/language/susy/_breakpoint-plugin.scss b/_stylesheets/susy/susy/language/susy/_breakpoint-plugin.scss deleted file mode 100644 index 30de288bf..000000000 --- a/_stylesheets/susy/susy/language/susy/_breakpoint-plugin.scss +++ /dev/null @@ -1,185 +0,0 @@ -// Breakpoint Integration -// ====================== - -$susy-media: () !default; -$susy-media-fallback: false !default; - -$_susy-media-context: (); - - -// Susy Breakpoint -// --------------- -// Change grids at different media query breakpoints. -// - $query : [] | | -// - $layout : -// - $no-query : | -@mixin susy-breakpoint( - $query, - $layout: false, - $no-query: $susy-media-fallback -) { - @include susy-media-router($query, $no-query) { - @if $layout { - @include with-layout($layout) { - @content; - } - } @else { - @content; - } - } -} - - -// Susy Media -// ---------- -// - $query: [] | -// - $no-query: | -@mixin susy-media( - $query, - $no-query: $susy-media-fallback -) { - $old-context: $_susy-media-context; - $name: if(map-has-key($susy-media, $query), $query, null); - $query: susy-get-media($query); - $query: susy-parse-media($query); - - @include susy-media-context($query, $name); - - @if $no-query and type-of($no-query) != string { - @content; - } @else { - @media #{susy-render-media($query)} { - @content; - } - - @if type-of($no-query) == string { - #{$no-query} & { - @content; - } - } - } - - @include susy-media-context($old-context, $clean: true); -} - - -// Media Router -// ------------ -// Rout media arguments to the correct mixin. -@mixin susy-media-router( - $query, - $no-query: $susy-media-fallback -) { - @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) { - @include breakpoint($query, $no-query) { - @content; - } - } @else { - @include susy-media($query, $no-query) { - @content; - } - } -} - - -// Update Context -// ------------- -// Set the new media context -@mixin susy-media-context( - $query, - $name: null, - $clean: false -) { - $query: map-merge((name: $name), $query); - - @if $clean { - $_susy-media-context: $query !global; - } @else { - $_susy-media-context: map-merge($_susy-media-context, $query) !global; - } -} - - -// Media Context -// ------------- -// Return the full media context, or a single media property (e.g. min-width) -@function susy-media-context( - $property: false -) { - @if $property { - @return map-get($_susy-media-context, $property); - } @else { - @return $_susy-media-context; - } -} - - -// Get Media -// --------- -// Return a named media-query from $susy-media. -// - $name: -@function susy-get-media( - $name -) { - @if map-has-key($susy-media, $name) { - $map-value: map-get($susy-media, $name); - @if ($name == $map-value) { - $name: $map-value; - } @else { - $name: susy-get-media($map-value); - } - } - - @return $name; -} - - -// Render Media -// ------------ -// Build a media-query string from various media settings -@function susy-render-media( - $query -) { - $output: null; - @each $property, $value in $query { - $string: null; - - @if $property == media { - $string: $value; - } @else { - $string: '(#{$property}: #{$value})'; - } - - $output: if($output, '#{$output} and #{$string}', $string); - } - - @return $output; -} - - -// Parse Media -// ----------- -// Return parsed media-query settings based on shorthand -@function susy-parse-media( - $query -) { - $mq: null; - @if type-of($query) == map { - $mq: $query; - } @else if type-of($query) == number { - $mq: (min-width: $query); - } @else if type-of($query) == list and length($query) == 2 { - @if type-of(nth($query, 1)) == number { - $mq: ( - min-width: min($query...), - max-width: max($query...), - ); - } @else { - $mq: (nth($query, 1): nth($query, 2)); - } - } @else { - $mq: (media: '#{$query}'); - } - - @return $mq; -} diff --git a/_stylesheets/susy/susy/language/susy/_container.scss b/_stylesheets/susy/susy/language/susy/_container.scss deleted file mode 100644 index e5f4a858a..000000000 --- a/_stylesheets/susy/susy/language/susy/_container.scss +++ /dev/null @@ -1,81 +0,0 @@ -// Container Syntax -// ================ - -// Container [mixin] -// ----------------- -// Set a container element -// - [$layout] : -@mixin container( - $layout: $susy -) { - $inspect : $layout; - $layout : parse-grid($layout); - - $_width : get-container-width($layout); - $_justify : parse-container-position(susy-get(container-position, $layout)); - $_property : if(susy-get(math, $layout) == static, width, max-width); - - $_box : susy-get(box-sizing, $layout); - - @if $_box { - @include output((box-sizing: $_box)); - } - - @include susy-inspect(container, $inspect); - @include float-container($_width, $_justify, $_property); - @include show-grid($layout); -} - -// Container [function] -// -------------------- -// Return container width -// - [$layout] : -@function container( - $layout: $susy -) { - $layout: parse-grid($layout); - @return get-container-width($layout); -} - -// Get Container Width -// ------------------- -// Calculate the container width -// - [$layout]: -@function get-container-width( - $layout: $susy -) { - $layout : parse-grid($layout); - $_width : susy-get(container, $layout); - $_column-width : susy-get(column-width, $layout); - $_math : susy-get(math, $layout); - - @if not($_width) or $_width == auto { - @if valid-column-math($_math, $_column-width) { - $_columns : susy-get(columns, $layout); - $_gutters : susy-get(gutters, $layout); - $_spread : if(is-split($layout), wide, narrow); - $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width; - } @else { - $_width: 100%; - } - } - - @return $_width; -} - -// Parse Container Position -// ------------------------ -// Parse the $container-position into margin values. -// - [$justify] : left | center | right | [] -@function parse-container-position( - $justify: map-get($susy-defaults, container-position) -) { - $_return: if($justify == left, 0, auto) if($justify == right, 0, auto); - - @if not(index(left right center, $justify)) { - $_return: nth($justify, 1); - $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return); - } - - @return $_return; -} diff --git a/_stylesheets/susy/susy/language/susy/_context.scss b/_stylesheets/susy/susy/language/susy/_context.scss deleted file mode 100644 index 52e12a6ce..000000000 --- a/_stylesheets/susy/susy/language/susy/_context.scss +++ /dev/null @@ -1,36 +0,0 @@ -// Context Syntax -// ============== - -// Nested [function] -// ----------------- -// Return a subset grid for nested context. -// - $context : -@function nested( - $context -) { - $context : parse-span($context); - $span : susy-get(span, $context); - $location : get-location($context); - $columns : susy-get(columns, $context); - - @return susy-slice($span, $location, $columns); -} - -// Nested [mixin] -// -------------- -// Use a subset grid for a nested context -// - $context : -// - @content : -@mixin nested( - $context -) { - $inspect : $context; - $context : parse-span($context); - $old : susy-get(columns); - $susy : map-merge($susy, (columns: nested($context))) !global; - - @include susy-inspect(nested, $inspect); - @content; - - $susy : map-merge($susy, (columns: $old)) !global; -} diff --git a/_stylesheets/susy/susy/language/susy/_gallery.scss b/_stylesheets/susy/susy/language/susy/_gallery.scss deleted file mode 100644 index e59b9a0c6..000000000 --- a/_stylesheets/susy/susy/language/susy/_gallery.scss +++ /dev/null @@ -1,94 +0,0 @@ -// Gallery Syntax -// ============== - -// Gallery -// ------- -// Create an isolated gallery -// - $span : -// - [$selector] : child | of-type -@mixin gallery( - $span, - $selector: child -) { - $inspect : $span; - $span : parse-span($span); - $span : map-merge($span, (location: 1)); - - $n : susy-get(span, $span); - $columns : susy-get(columns, $span); - $context : susy-count($columns); - $flow : susy-get(flow, $span); - - $inside : is-inside($span); - $from : from($flow); - $line : floor($context / $n); - $symmetrical : is-symmetrical($columns); - - $output: ( - width : null, - float : from, - margin-before : null, - margin-after : null, - padding-before : null, - padding-after : null, - flow : $flow, - ); - - @if $inside { - $gutters: get-gutters($span); - $output: map-merge($output, ( - padding-before: map-get($gutters, before), - padding-after: map-get($gutters, after), - )); - } - - @if $symmetrical { - $output: map-merge($output, (width: get-span-width($span))); - } - - $box : susy-get(box-sizing, $span); - $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false); - - @include susy-inspect(gallery, $inspect); - - // Collective Output - @if $box == border-box or ($inside and not($box) and not($global-box)) { - @include output((box-sizing: border-box)); - } @else if $box == content-box { - @include output((box-sizing: content-box)); - } - - @include float-span-output($output...); - - // Individual Loop - @for $item from 1 through $line { - $nth: '#{$line}n + #{$item}'; - &:nth-#{$selector}(#{$nth}) { - // Individual Prep - $output: ( - width : if($symmetrical, null, get-span-width($span)), - float : null, - margin-before : get-isolation($span), - margin-after : -100%, - padding-before : null, - padding-after : null, - flow : $flow, - ); - - // Individual Output - @include float-span-output($output...); - - @if get-edge($span) == first { - @include break; - @include first($span); - } @else { - @include nobreak; - } - - // Individual Location Increment - $location: get-location($span) + $n; - $location: if($location > $context, 1, $location); - $span: map-merge($span, (location: $location)); - } - } -} diff --git a/_stylesheets/susy/susy/language/susy/_grids.scss b/_stylesheets/susy/susy/language/susy/_grids.scss deleted file mode 100644 index 4fa72edc5..000000000 --- a/_stylesheets/susy/susy/language/susy/_grids.scss +++ /dev/null @@ -1,64 +0,0 @@ -// Grid Syntax -// =========== - - -// Layout -// ------ -// Set a new layout using a shorthand -// - $layout: -// - $clean: boolean -@mixin layout( - $layout, - $clean: false -) { - $inspect : $layout; - $susy : _get-layout($layout, $clean) !global; - - @include susy-inspect(layout, $inspect); -} - - -// Use Grid -// -------- -// Use an arbitrary layout for a section of code -// - $layout: -// - $clean: boolean -@mixin with-layout( - $layout, - $clean: false -) { - $inspect : $layout; - $old : $susy; - $susy : _get-layout($layout, $clean) !global; - - @include susy-inspect(with-layout, $inspect); - - @content; - - $susy: $old !global; -} - - -// Layout -// ------ -// Return a parsed layout map based on shorthand syntax -// - $layout: -@function layout( - $layout: $susy -) { - @return parse-grid($layout); -} - - -// Get Layout -// ---------- -// Return a new layout based on current and given settings -// - $layout: -// - $clean: boolean -@function _get-layout( - $layout, - $clean: false -) { - $layout: layout($layout); - @return if($clean, $layout, _susy-deep-merge($susy, $layout)); -} diff --git a/_stylesheets/susy/susy/language/susy/_gutters.scss b/_stylesheets/susy/susy/language/susy/_gutters.scss deleted file mode 100644 index efe7ac209..000000000 --- a/_stylesheets/susy/susy/language/susy/_gutters.scss +++ /dev/null @@ -1,154 +0,0 @@ -// Gutter Syntax -// ============= - - -// Gutters -// ------- -// Set gutters on an element. -// - [$span] : -@mixin gutters( - $span: $susy -) { - $inspect : $span; - $span : parse-gutters($span); - $_gutters : get-gutters($span); - - $_output: ( - before: map-get($_gutters, before), - after: map-get($_gutters, after), - flow: susy-get(flow, $span), - ); - - @include susy-inspect(gutters, $inspect); - - @if is-inside($span) { - @include padding-output($_output...); - } @else { - @include margin-output($_output...); - } -} - -@mixin gutter( - $span: $susy -) { - @include gutters($span); -} - - -// Gutter -// ------ -// Return the width of a gutter. -// - [$span] : -@function gutter( - $span: $susy -) { - $span: parse-gutters($span); - - $_gutters: get-gutters($span); - $_gutters: map-get($_gutters, before) or map-get($_gutters, after); - - @return $_gutters; -} - -@function gutters( - $span: $susy -) { - @return gutter($span); -} - - -// Get Gutter Width -// ---------------- -// Return gutter width. -// - [$context]: -@function get-gutter-width( - $context: $susy -) { - $context : parse-gutters($context); - - $_gutters : susy-get(gutters, $context); - $_gutter : susy-get(gutter-override, $context); - - @if $_gutters and ($_gutters > 0) and not($_gutter) { - $_column-width: susy-get(column-width, $context); - $_math: gutter-math($context); - @if $_math == static { - $_gutter: $_gutters * valid-column-math($_math, $_column-width); - } @else { - $_columns : susy-get(columns, $context); - $_spread : if(is-split($context), wide, susy-get(spread, $context)); - $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread)); - } - } - - $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter); - - @return $_gutter; -} - - -// Get Gutters -// ----------- -// Return before and after gutter values. -// - [$context]: -@function get-gutters( - $context: $susy -) { - $context : parse-gutters($context); - - $_gutter-position : susy-get(gutter-position, $context); - $_gutter : get-gutter-width($context); - - $_return : (before: null, after: null); - - @if is-split($context) and $_gutter { - $_gutter: $_gutter / 2; - $_return: map-merge($_return, (before: $_gutter, after: $_gutter)); - } @else { - $_return: map-merge($_return, ($_gutter-position: $_gutter)); - } - - @return $_return; -} - - -// Is Inside -// --------- -// Returns true if gutters are inside. -// $context: -@function is-inside( - $context -) { - $_inside: inside inside-static; - $_gutter-position: susy-get(gutter-position, $context); - - @return if(index($_inside, $_gutter-position), true, false); -} - - -// Is Split -// -------- -// Returns true if gutters are split. -// $context: -@function is-split( - $context -) { - $_split: split inside inside-static; - $_gutter-position: susy-get(gutter-position, $context); - - @return if(index($_split, $_gutter-position), true, false); -} - - -// Gutter Math -// ----------- -// Return the math to use for gutter calculations -// $context: -@function gutter-math( - $context: $susy -) { - $_return : susy-get(math, $context); - $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return); - - @return $_return; -} diff --git a/_stylesheets/susy/susy/language/susy/_isolate.scss b/_stylesheets/susy/susy/language/susy/_isolate.scss deleted file mode 100644 index 7ddfd7f57..000000000 --- a/_stylesheets/susy/susy/language/susy/_isolate.scss +++ /dev/null @@ -1,77 +0,0 @@ -// Isolation Syntax -// ================ - - -// Isolate [Mixin] -// --------------- -// Set isolation as an override. -// - $location: -@mixin isolate( - $isolate: 1 -) { - $inspect: $isolate; - - $output: ( - push: isolate($isolate), - flow: susy-get(flow, $isolate), - ); - - @include susy-inspect(isolate, $inspect); - @include isolate-output($output...); -} - - -// Isolate [function] -// ------------------ -// Return an isolation offset width. -// - $location: -@function isolate( - $isolate: 1 -) { - $isolate: parse-span($isolate); - $isolation: susy-get(span, $isolate); - - @if $isolation and not(get-location($isolate)) { - $new: ( - span: null, - location: $isolation, - ); - $isolate: map-merge($isolate, $new); - } - - @return get-isolation($isolate); -} - - -// Get Isolation -// ------------- -// Return the isolation offset width -// - $input: -@function get-isolation( - $input -) { - $location : get-location($input); - $columns : susy-get(columns, $input); - $width : null; - - @if type-of($location) == number and not(unitless($location)) { - $width: $location; - } @else if $location { - $push: $location - 1; - @if $push > 0 { - $push: map-merge($input, ( - span: $push, - location: 1, - spread: wide, - )); - $width: get-span-width($push); - } - } - - @if susy-get(gutter-position, $input) == split - and susy-get(gutters, $input) > 0 { - $width: if($width == null, gutters($input), $width + gutters($input)); - } - - @return $width or 0; -} diff --git a/_stylesheets/susy/susy/language/susy/_margins.scss b/_stylesheets/susy/susy/language/susy/_margins.scss deleted file mode 100644 index cb368399a..000000000 --- a/_stylesheets/susy/susy/language/susy/_margins.scss +++ /dev/null @@ -1,94 +0,0 @@ -// Margin Syntax -// ============= - -// Pre -// --- -// Add spanning-margins before an element. -// - $span : -@mixin pre( - $span -) { - $inspect: $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $gutter : gutter($span); - $span : span($span); - $width : if($split and $gutter, $span + $gutter, $span); - - @include susy-inspect(pre, $inspect); - @include margin-output($width, null, $flow); -} - -// Post -// ---- -// Add spanning-margins after an element. -// - $span : -@mixin post( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $width : if($split, span($span) + gutter($span), span($span)); - - @include susy-inspect(post, $inspect); - @include margin-output(null, $width, $flow); -} - -// Push -// ---- -// Simple synonymn for pre. -// - $span : -@mixin push( - $span -) { - @include pre($span); -} - -// Pull -// ---- -// Add negative spanning-margins before an element. -// - $span : -@mixin pull( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); - - @include susy-inspect(pull, $inspect); - @include margin-output($width, null, $flow); -} - -// Squish -// ------ -// Add spanning-margins before and after an element. -// - $pre : -// - [$post] : -@mixin squish( - $pre, - $post: false -) { - $inspect : ($pre, $post); - $pre : map-merge((spread: wide), parse-span($pre)); - - @if $post { - $post: map-merge((spread: wide), parse-span($post)); - } @else { - $span: susy-get(span, $pre); - @if length($span) > 1 { - $pre: map-merge($pre, (span: nth($span, 1))); - $post: map-merge($pre, (span: nth($span, 2))); - } @else { - $post: $pre; - } - } - - @include susy-inspect(squish, $inspect); - @include pre($pre); - @include post($post); -} diff --git a/_stylesheets/susy/susy/language/susy/_padding.scss b/_stylesheets/susy/susy/language/susy/_padding.scss deleted file mode 100644 index cdf75c8b0..000000000 --- a/_stylesheets/susy/susy/language/susy/_padding.scss +++ /dev/null @@ -1,74 +0,0 @@ -// Padding Syntax -// ============== - -// Prefix -// ------ -// Add spanning-padding before an element. -// - $span : -@mixin prefix( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $width : span($span); - - @if is-inside($span) { - $gutter: gutter($span); - $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); - } - - @include susy-inspect(prefix, $inspect); - @include padding-output($width, null, $flow); -} - -// Suffix -// ------ -// Add spanning-padding after an element. -// - $span : -@mixin suffix( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $width : span($span); - - @if is-inside($span) { - $gutter: gutter($span); - $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); - } - - @include susy-inspect(suffix, $inspect); - @include padding-output(null, $width, $flow); -} - -// Pad -// --- -// Add spanning-padding before and after an element. -// - $pre : -// - [$post] : -@mixin pad( - $pre, - $post: false -) { - $inspect : ($pre, $post); - $pre : map-merge((spread: wide), parse-span($pre)); - - @if $post { - $post: map-merge((spread: wide), parse-span($post)); - } @else { - $span: susy-get(span, $pre); - @if length($span) > 1 { - $pre: map-merge($pre, (span: nth($span, 1))); - $post: map-merge($pre, (span: nth($span, 2))); - } @else { - $post: $pre; - } - } - - @include susy-inspect(pad, $inspect); - @include prefix($pre); - @include suffix($post); - -} diff --git a/_stylesheets/susy/susy/language/susy/_rows.scss b/_stylesheets/susy/susy/language/susy/_rows.scss deleted file mode 100644 index d7264313a..000000000 --- a/_stylesheets/susy/susy/language/susy/_rows.scss +++ /dev/null @@ -1,138 +0,0 @@ -// Row Start & End -// =============== - -// Break -// ----- -// Apply to any element that should force a line break. -@mixin break { - @include output((clear: both)); -} - - -// NoBreak -// ------- -// Cancel the break() effect, e.g. when using media queries. -@mixin nobreak { - @include output((clear: none)); -} - - -// Full -// ---- -// - [$context]: -@mixin full( - $context: $susy -) { - $inspect : $context; - @include susy-inspect(full, $inspect); - @include span(full of parse-grid($context) break); -} - - -// First -// ----- -// - [$context]: -@mixin first( - $context: $susy -) { - $inspect : $context; - $context : parse-grid($context); - $flow : susy-get(flow, $context); - - @include susy-inspect(first, $inspect); - @if not(is-split($context)) { - @include float-first($flow); - } -} - -@mixin alpha( - $context: $susy -) { - @include first($context); -} - - -// Last -// ---- -// - [$context]: -@mixin last( - $context: $susy -) { - $inspect : $context; - $context : parse-grid($context); - - @include susy-inspect(last, $inspect); - - $output: ( - flow: susy-get(flow, $context), - last-flow: susy-get(last-flow, $context), - margin: if(is-split($context), null, 0), - ); - - @include float-last($output...); -} - -@mixin omega( - $context: $susy -) { - @include last($context); -} - - -// Get Edge -// -------- -// Calculate edge value based on location, if possible -@function get-edge( - $span -) { - $span : parse-span($span); - $edge : susy-get(edge, $span); - - @if not($edge) { - $count: susy-count(susy-get(columns, $span)); - $location: susy-get(location, $span); - $n: susy-get(span, $span); - - $number: if(type-of($location) == number, true, false); - $index: if($number and unitless($location), true, false); - - @if $n == $count { - $edge: full; - } @else if $location and $n and $index { - @if $location == 1 { - $edge: if($n == $count, full, first); - } @else if $location + $n - 1 == $count { - $edge: last; - } - } - } - - @if $edge == alpha or $edge == omega { - $edge: if($edge == alpha, first, last); - } - - @return $edge; -} - - -// Get Location -// ------------ -// Calculate location value based on edge, if possible -@function get-location( - $span -) { - $span : parse-span($span); - $location : susy-get(location, $span); - $edge : get-edge($span); - $n : susy-get(span, $span); - - @if $edge and not($location) and type-of($n) == number and unitless($n) { - @if $edge == first { - $location: 1; - } @else if $edge == last { - $location: susy-count(susy-get(columns, $span)) - $n + 1; - } - } - - @return $location -} diff --git a/_stylesheets/susy/susy/language/susy/_settings.scss b/_stylesheets/susy/susy/language/susy/_settings.scss deleted file mode 100644 index 9b5d897d5..000000000 --- a/_stylesheets/susy/susy/language/susy/_settings.scss +++ /dev/null @@ -1,216 +0,0 @@ -// Susy Settings -// ============= - -// Susy Language Defaults -// ---------------------- -// - PRIVATE -@include susy-defaults(( - container: auto, - math: fluid, - output: float, - container-position: center, - gutter-position: after, - global-box-sizing: content-box, - debug: ( - image: hide, - color: rgba(#66f, .25), - output: background, - toggle: top right, - ), -)); - - -// Valid Keyword Values -// -------------------- -// - PRIVATE: DONT'T TOUCH -$susy-keywords: ( - container: auto, - math: static fluid, - output: isolate float, - container-position: left center right, - flow: ltr rtl, - gutter-position: before after split inside inside-static, - box-sizing: border-box content-box, - span: full, - edge: first alpha last omega full, - spread: narrow wide wider, - gutter-override: no-gutters no-gutter, - role: nest, - clear: break nobreak, - debug image: show hide show-columns show-baseline, - debug output: background overlay, -); - - -// Parse Susy Keywords and Maps -// ---------------------------- -@function parse-settings( - $short: $susy -) { - $_return: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - @each $item in $short { - // strings - @if type-of($item) == string { - @each $key, $value in $susy-keywords { - @if index($value, $item) { - $_key-value: append($key, $item); - $_return: _susy-deep-set($_return, $_key-value...); - } - } - // maps - } @else if type-of($item) == map { - $_return: map-merge($_return, $item); - } - } - } - - @return $_return; -} - - -// Parse Columns & Gutters -// ----------------------- -@function parse-layout( - $short -) { - $_return: (); - $_columns: (); - $_gutters: null; - - @if not(unitless(nth(nth($short, 1), 1))) { - $_gutters: nth($short, 1); - } @else { - $_columns: (columns: nth($short, 1)); - $_gutters: if(length($short) > 1, nth($short, 2), $_gutters); - } - - @if type-of($_gutters) == list and length($_gutters) > 0 { - $_gutters: ( - gutters: nth($_gutters, 2) / nth($_gutters, 1), - column-width: nth($_gutters, 1), - ); - } @else { - $_gutters: if($_gutters, (gutters: $_gutters), ()); - } - - $_return: map-merge($_return, $_columns); - $_return: map-merge($_return, $_gutters); - - @return $_return; -} - - -// Parse Grid/Context -// ------------------ -@function parse-grid( - $short: $susy -) { - $_return: parse-settings($short); - $_layout: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - @each $item in $short { - // number or list - @if type-of($item) == number or type-of($item) == list { - @if type-of($item) == list or unitless($item) { - $_layout: append($_layout, $item); - } @else { - $_return: map-merge($_return, (container: $item)); - } - } - } - - $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout); - } - - @return map-merge($_return, $_layout); -} - - -// Parse Span -// ---------- -@function parse-span( - $short, - $key: span -) { - $_return: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - $_at: index($short, at); - - @if $_at { - $_loci: $_at + 1; - $_location: nth($short, $_loci); - $_return: map-merge($_return, (location: $_location)); - $short: set-nth($short, $_at, null); - $short: set-nth($short, $_loci, null); - } - - $_i: 1; - $_span: (); - - @while $_i <= length($short) { - $_this: nth($short, $_i); - - @if type-of($_this) == number { - $_span: append($_span, $_this); - $short: set-nth($short, $_i, null); - } @else if $_this == of { - $short: set-nth($short, $_i, null); - $_i: length($short) + 1; - } - - $_i: $_i + 1; - } - - @if length($_span) > 0 { - $_span: if(length($_span) == 1, nth($_span, 1), $_span); - $_return: map-merge($_return, ($key: $_span)); - } - - $_return: map-merge($_return, parse-grid($short)); - } - - @return $_return; -} - - -// Parse Gutters -// ------------- -@function parse-gutters( - $short: $susy -) { - $_gutters: parse-span($short, gutter-override); - $_span: susy-get(gutter-override, $_gutters); - - @if $_span and not(map-get($_gutters, columns)) { - $_context: (); - $_new: (); - - @each $item in $_span { - @if type-of($item) == number and unitless($item) { - $_context: append($_context, $item); - } @else { - $_new: append($_new, $item); - } - } - - $_context: parse-grid($_context); - $_new: if(length($_new) == 0, null, $_new); - $_new: if(length($_new) == 1, nth($_new, 1), $_new); - $_new: (gutter-override: if($_new != $_span, $_new, $_span)); - - $_gutters: map-merge($_gutters, $_new); - $_gutters: map-merge($_gutters, $_context); - } - - @return $_gutters; -} diff --git a/_stylesheets/susy/susy/language/susy/_span.scss b/_stylesheets/susy/susy/language/susy/_span.scss deleted file mode 100644 index 86ccda918..000000000 --- a/_stylesheets/susy/susy/language/susy/_span.scss +++ /dev/null @@ -1,163 +0,0 @@ -// Span Syntax -// =========== - -// Span [mixin] -// ------------ -// Set a spanning element using shorthand syntax. -// - $span : -@mixin span( - $span -) { - $inspect: $span; - $span: parse-span($span); - $output: span-math($span); - $nesting: susy-get(span, $span); - $clear: susy-get(clear, $span); - - $box: susy-get(box-sizing, $span); - $content-box: if(susy-get(global-box-sizing) != 'border-box', true, false); - $box: $box or if(is-inside($span) and $content-box, border-box, null); - - @if $clear == break { - @include break; - } @else if $clear == nobreak { - @include nobreak; - } - - @include susy-inspect(span, $inspect); - @include output((box-sizing: $box)); - @include float-span-output($output...); - - @if valid-columns($nesting, silent) { - @include nested($span) { @content; } - } @else { - @content; - } -} - -// Span [function] -// --------------- -// Return the width of a span. -// - $span : -@function span( - $span -) { - @return get-span-width($span); -} - -// Span Math -// --------- -// Get all the span results. -// - $span: -@function span-math( - $span -) { - $nest : if(susy-get(role, $span) == nest, true, false); - $split-nest : if(is-split($span) and $nest, true, false); - $edge : get-edge($span); - $location : get-location($span); - - $float : from; - $padding-before : null; - $padding-after : null; - $margin-before : null; - $margin-after : null; - - // calculate widths - $spread: index(map-values($span), spread); - $span: if($split-nest and not($spread), map-merge($span, (spread: wide)), $span); - $width: get-span-width($span); - $gutters: get-gutters($span); - - // apply gutters - @if is-inside($span) { - @if not(susy-get(role, $span)) { - $padding-before: map-get($gutters, before); - $padding-after: map-get($gutters, after); - } - } @else { - @if not($split-nest) { - $margin-before: map-get($gutters, before); - $margin-after: map-get($gutters, after); - } - } - - // special margin handling - @if susy-get(output, $span) == isolate and $location { - $margin-before: get-isolation($span); - $margin-after: -100%; - } @else if $edge { - $is-split: is-split($span); - $pos: susy-get(gutter-position, $span); - - @if $edge == last { - $float: susy-get(last-flow, $span); - } - - @if not($is-split) { - @if $edge == full or ($edge == first and $pos == before) { - $margin-before: 0; - } - @if $edge == full or ($edge == last and $pos == after) { - $margin-after: 0; - } - } - - } - - @return ( - width : $width, - float : $float, - margin-before : $margin-before, - margin-after : $margin-after, - padding-before : $padding-before, - padding-after : $padding-after, - flow : susy-get(flow, $span), - ); -} - -// Get Span Width -// -------------- -// Return span width. -// - $span: -@function get-span-width( - $span -) { - $span : parse-span($span); - - $n : susy-get(span, $span); - $location : get-location($span); - $columns : susy-get(columns, $span); - $gutters : susy-get(gutters, $span); - $spread : susy-get(spread, $span); - - $context : null; - $span-sum : null; - $width : null; - - @if $n == 'full' { - $pos: susy-get(gutter-position, $span); - $role: susy-get(role, $span); - $n: if($pos == split and $role != nest, susy-count($columns), 100%); - } - - @if type-of($n) != number { - @warn "(#{type-of($n)}) #{$n} is not a valid span."; - } @else if unitless($n) { - $context: susy-sum($columns, $gutters, if(is-split($span), wide, narrow)); - $spread: if(is-inside($span), $spread or wide, $spread); - $span-sum: susy($n, $location, $columns, $gutters, $spread); - - $_math: susy-get(math, $span); - $_column-width: susy-get(column-width, $span); - @if $_math == static { - $width: $span-sum * valid-column-math($_math, $_column-width); - } @else { - $width: percentage($span-sum / $context); - } - } @else { - $width: $n; - } - - @return $width; -} diff --git a/_stylesheets/susy/susy/language/susy/_validation.scss b/_stylesheets/susy/susy/language/susy/_validation.scss deleted file mode 100644 index a235b176a..000000000 --- a/_stylesheets/susy/susy/language/susy/_validation.scss +++ /dev/null @@ -1,16 +0,0 @@ -// Validation -// ========== - - -// Validate Column Math -// -------------------- -@function valid-column-math( - $math, - $column-width -) { - @if $math == static and not($column-width) { - @error 'Static math requires a valid column-width setting.'; - } - - @return $column-width; -} diff --git a/_stylesheets/susy/susy/language/susyone/_background.scss b/_stylesheets/susy/susy/language/susyone/_background.scss deleted file mode 100644 index 38c6726b8..000000000 --- a/_stylesheets/susy/susy/language/susyone/_background.scss +++ /dev/null @@ -1,18 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -@import "compass/layout/grid-background"; -@import "compass/css3/background-origin"; -@import "compass/css3/background-clip"; - -// --------------------------------------------------------------------------- -// Susy Grid Background -// -// A wrapper for the compass "column-grid-background" mixin -// Uses all your settings to create a grid background for a container element. -// Note: Sub-pixel rounding can lead to several pixels of variation between browsers. -@mixin susy-grid-background(){ - @include column-grid-background($total-columns, column(), gutter(), 0); - @include background-origin(content-box); - @include background-clip(content-box); -} diff --git a/_stylesheets/susy/susy/language/susyone/_functions.scss b/_stylesheets/susy/susy/language/susyone/_functions.scss deleted file mode 100644 index 681845890..000000000 --- a/_stylesheets/susy/susy/language/susyone/_functions.scss +++ /dev/null @@ -1,377 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -// We need access to some basic font settings for handling media-queries. -@import "compass/typography/vertical_rhythm"; - -// For now, we also need this... -$browser-default-font-size-px : 16px; -$browser-default-font-size-percent : 100%; -$browser-default-font-size-pt : 12pt; - -$rem-with-px-fallback : true !default; - -// --------------------------------------------------------------------------- -// Sass list Functions - -// Return a list with specific items removed -// -// filter($list, $target) -// - $list : The list to filter. -// - $target : An item to be removed from the list. -@function filter($list, $target) { - $clean: compact(); - @if index($list, $target) { - @each $item in $list { - $clean: if($item == $target, $clean, append($clean, $item)); - } - } @else { $clean: $list; } - @return $clean; -} - -// --------------------------------------------------------------------------- -// Don't use static output when it will break things - -// Switch element-level output to fluid, when container-width is wrong for static -// -// fix-static-misalignment([$style, $width]) -// - $style: $container-style. -// - $width: $container-width. -@function fix-static-misalignment( - $style: $container-style, - $width: $container-width -) { - @if $container-width and $container-width != container-outer-width($width: false) { - $style: fluid; - } - @return $style; -} - -// --------------------------------------------------------------------------- -// Grid Functions - -// Returns the full width of a grid based on your grid settings. -// -// $columns : The number of columns to get width for. -@function columns-width( - $columns : $total-columns -) { - @if round($columns) != $columns { - @warn "Susy works best with integer column-spans." + - "For partial-columns, you may need to finesse the math by hand using functions directly."; - } - @return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width); -} - -// Return the grid width after adding or subtracting grid padding -// -// $width : the width of the grid without padding; -// $operation : ( add | subtract ) if padding should be added or subtracted; -@function handle-grid-padding( - $width, - $operation : subtract -) { - $pad: $grid-padding*2; - - @if comparable($width, $grid-padding) { - $width: if($operation == subtract, $width - $pad, $width + $pad); - } @else { - @warn "$grid-padding must be set in units comparable to the container width."; - } - - @return $width; -} - -// Return the full outer width of a Container element. -// -// $columns : The number of columns in the Grid Layout. -@function container-outer-width( - $columns : $total-columns, - $width : $container-width -) { - $outerwidth: if($width, $width, columns-width($columns)); - - @if $width { - @if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); } - } @else { - @if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); } - } - - @return $outerwidth; -} - -// Return the percentage width of a single column in a given 'context'. -// -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function column( - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, $column-width, relative-width($column-width, $context)); -} - -// Return the percentage width of multiple 'columns' in a given 'context'. -// -// $columns : The number of columns to get relative width for. -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function columns( - $columns, - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context)); -} - -// Return the percentage width of a single gutter in a given 'context'. -// -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function gutter( - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, $gutter-width, relative-width($gutter-width, $context)); -} - -// Return the percentage width of a given value in a given 'context'. -// -// $width : Any given width value. -// $context : The grid context in columns, if nested. -@function relative-width( - $width, - $context : $total-columns -) { - @return percentage($width / columns-width($context)); -} - -// Return the total space occupied by multiple columns and associated gutters. -// Useful for adding padding or margins (prefix, suffix, push, pull, etc.) -// -// $columns : The number of columns to get relative space for. -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function space( - $columns, - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0); -} - -// Accept a list including column-count and (optional) position. -// Return either the column count or the position alone. -// -// $columns : the list to split and interprate. -// $request : The value to return, either 'columns' or 'position'. -@function split-columns-value( - $columns, - $request : columns -) { - $pos : false; - $cols : false; - - @each $var in $columns { - @if (type-of($var) == 'string') { - $pos: $var; - } @else { - @if (type-of($var) == 'number') and (unitless($var)) { - $cols: $var; - } @else { - @warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.'; - } - } - } - - @if $request == 'columns' { - @return $cols; - } @else { - @if $request == 'position' { - @return $pos; - } @else { - @warn '"#{$request}" is not a valid value for $request'; - } - } -} - -// Accept nth-selector variables, and format them as a valid CSS3 selector. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -@function format-nth( - $n : last, - $selector : child -) { - @if ($n == 'last') or ($n =='first') or ($n =='only') { - $selector: '#{$n}-#{$selector}'; - } @else { - $selector: 'nth-#{$selector}(#{$n})'; - } - @return $selector; -} - -// --------------------------------------------------------------------------- -// Media Functions - -// Return an em value adjusted to match the browser default font size. -// Note: This only works if actual sizes are set relative to browser defaults. -// -// $ems : The initial value to be converted. -// $font-size : The current font-size in. -@function base-ems( - $ems, - $font-size: $base-font-size -){ - $font-size : if(unit($ems) == 'rem', $base-font-size, $font-size); - $unit : unit($font-size); - $mult : $ems / ($ems * 0 + 1); - - @if $unit == 'px' { - @return $font-size / $browser-default-font-size-px * $mult * 1em; - } - @else if $unit == '%' { - @return $font-size / $browser-default-font-size-percent * $mult * 1em; - } - @else if $unit == 'em' { - @return $font-size / 1em * $mult * 1em; - } - @else if $unit == 'pt' { - @return $font-size / $browser-default-font-size-pt * $mult * 1em; - } - @else { - @warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.'; - } -} - -// This name will be deprecated... -@function absolute-ems( - $ems, - $font-size: $base-font-size -){ - @return base-ems( $ems, $font-size); - } - -// Return a length, after any em-values have been sent through absolute-ems(). -// -// $length : The length value to be checked and adjusted if necessary. -// $font-size : The current font-size in px. -@function fix-ems( - $length, - $font-size: $base-font-size -){ - @if $length { - @if (unit($length) == 'em') or (unit($length) == 'rem') { - $length: absolute-ems($length,$font-size); - } - } - @return $length; -} - -// Sort a list of arguments into "$min $layout $max $ie" order, and return the list. -// -// $media-layout : a list of values [$min $layout $max $ie] including... -// : - one unitless number (columns in a layout) -// : - two optional lengths (min and max-width media-query breakpoints). -// : - one optional boolean or string to trigger fallback support for IE. -// $font-size : [optional] The base font-size of your layout, if you are using ems. -// : - defaults to $base-font-size -@function medialayout( - $media-layout, - $font-size: $base-font-size -) { - $media : false; - $min : false; - $layout : false; - $max : false; - $ie : false; - $has-layout : false; - - @each $val in $media-layout { - @if (type-of($val) == "number") { - @if unitless($val) { - $layout : $val; - $has-layout : true; - } @else { - @if ($has-layout) and not($media) { - $max: $val; - } @else { - @if $media { - $media: join($media,$val); - } @else { - $media: $val; - } - } - } - } @else { - $ie: $val; - } - } - @if (length($media) > 0) { - @if (length($media) == 1) { - $min: nth($media,1); - } @else { - $min: nth($media,1); - $max: nth($media,2); - @if comparable($min, $max) { - @if ($min > $max) { - $max: nth($media,1); - $min: nth($media,2); - } - } @else { - @warn "Can't compare incompatible units." + - "Using #{$min} for min-width, and #{$max} for max-width"; - } - @if (length($media) > 2) { - @warn "You can only send two lengths: a min-width and an (optional) max-width." + - "You sent #{length($media)}: #{$media}"; - } - } - } - - // media-queries must be set in ems relative to the browser default - // rather than the font-size set in CSS. - $min: fix-ems($min,$font-size); - $max: fix-ems($max,$font-size); - - @return $min $layout $max $ie; -} - -// Return the nearest layout (column-count) above a given breakpoint. -// -// $min : The min-width media-query breakpoint above which to establish a new layout. -@function get-layout( - $min -) { - $min : fix-ems($min); - $return : false; - - @if comparable($min, $column-width) { - $return : ceil(($min + $gutter-width) / ($column-width + $gutter-width)); - } @else { - @warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable."; - } - - @return $return; -} - -// Check to see if a given $media-layout list is simply the default. -// -// $media-layout : a list of values including - -// : One unitless number (columns in a layout) -// : Two optional lengths (min and max-width media-query breakpoints). -// : One optional boolean or string to trigger fallback support for IE. -@function is-default-layout( - $media-layout -) { - $media-layout : medialayout($media-layout); - $min : nth($media-layout,1); - $layout-cols : nth($media-layout,2); - $max : nth($media-layout,3); - - @if $min or $max { - @return false; - } @else { - @return if($layout-cols == $total-columns,true,false); - } -} diff --git a/_stylesheets/susy/susy/language/susyone/_grid.scss b/_stylesheets/susy/susy/language/susyone/_grid.scss deleted file mode 100644 index 491c6229e..000000000 --- a/_stylesheets/susy/susy/language/susyone/_grid.scss +++ /dev/null @@ -1,312 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -@import "compass/utilities/general/clearfix"; -@import "compass/css3/box-sizing"; - -// --------------------------------------------------------------------------- -// Border-Box Sizing - -// Apply the border-box sizing model to all elements -// and adjust the grid math appropriately. -@mixin border-box-sizing { - $border-box-sizing: true !global; - * { @include box-sizing(border-box); } -} - -// --------------------------------------------------------------------------- -// Container - -// Set the width of a container -// -// $columns : The number of columns in the Grid Layout. -@mixin set-container-width( - $columns : $total-columns, - $style : $container-style, - $px-vals : $pixel-values-only -){ - $width: container-outer-width($columns); - - @if $style == 'static' { - @if $px-vals == true { - width: round(convert-length($width, px)); - } @else { - @include rem(width, $width); - } - } @else { - @if $style == 'fluid' { - @if unit($width) == '%' { - @if $px-vals == true { - width: round(convert-length($width, px)); - } @else { - @include rem(width, $width); - } - } - } @else { - @if $px-vals == true { - max-width: round(convert-length($width, px)); - } @else { - @include rem(max-width, $width); - } - - @include for-legacy-browser(ie,"6") { - @if unit($width) == 'rem' { - _width: round(convert-length($width, px)); - } @else { - _width: $width; - } - } - } - } -} - -// Set the outer grid-containing element(s). -// -// $columns : The number of columns in the container. -@mixin apply-container( - $columns : $total-columns, - $px-vals : $pixel-values-only -){ - @include pie-clearfix; - @include set-container-width($columns); - @if $px-vals == true { - padding-left: round(convert-length($grid-padding, px)); - padding-right: round(convert-length($grid-padding, px)); - } @else { - @include rem(padding-left, $grid-padding); - @include rem(padding-right, $grid-padding); - } - margin: { left: auto; right: auto; } -} - -// Set one or more layouts on a grid-containing element at any number of media-query breakpoints. -// -// $media-layout-1 : [default:$total-columns] A list of values including - -// : One unitless number (representing columns in a layout) -// : Two optional lengths (representing min and max-width media-query breakpoints). -// $media-layout-2 ...-10 : [optional] Same as $media-layout-1 -@mixin container( - $media-layouts... -){ - $media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns); - - @each $ml in $media-layouts { - @if is-default-layout($ml) { - @include apply-container; - } @else { - @include at-breakpoint($ml) { - @include apply-container; - } - } - } -} - -// --------------------------------------------------------------------------- -// Columns - -// Create a grid element spanning any number of 'columns' in a grid 'context'. -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $padding : [optional] Padding applied to the inside of individual grid columns. -// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px) -// : Padding values are applied only on the horizontal axis in from-to order -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin span-columns( - $columns, - $context : $total-columns, - $padding : false, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - $pos : split-columns-value($columns,position); - $cols : split-columns-value($columns,columns); - $pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); - $pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); - - @if $padding != false { - $pad-from : nth($padding, 1); - - @if length($padding) > 1 { - $pad-to: nth($padding, 2); - } @else { - $pad-to: $pad-from; - } - - $pad-from : if($style == static, $pad-from, relative-width($pad-from, $context)); - $pad-to : if($style == static, $pad-to, relative-width($pad-to, $context)); - - padding-#{$from}: $pad-from; - padding-#{$to}: $pad-to; - } - - width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from); - - @if ($pos == 'omega') { - @include omega($from); - } @else { - float: $from; - margin-#{$to}: gutter($context, $style); - @include for-legacy-browser(ie, "6") { - display: inline; - } - } -} - -// Apply to elements spanning the last column, to account for the page edge. -// Only needed as an override. Normally 'omega' can just be called by `columns`. -// -// $from : The start-direction for your document. -@mixin omega( - $from : $from-direction -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: $omega-float; - margin-#{$to}: 0; - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: - $gutter-width; - @include for-legacy-browser(ie, "6") { - display: inline; - } - } -} - -// Shortcut to apply omega to a specific subset of elements. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -// $from : The start-direction for your document. -@mixin nth-omega( - $n : last, - $selector : child, - $from : $from-direction -) { - $from : unquote($from); - - &:#{format-nth($n,$selector)} { - @if $n == "first" { - @include omega($from); - } @else { - @include with-browser-ranges(css-sel3) { - @include omega($from); - } - } - } -} - - - -// --------------------------------------------------------------------------- -// Resets - -// Reset a '+columns' grid element to default block behavior -// -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin reset-columns( - $from: $from-direction -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: none; - width: auto; - margin-#{$to}: auto; - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: auto; - @include for-legacy-browser(ie, "6") { - display: block; - } - } -} - -// Apply to elements previously set as omega. -// This will return floats and margins back to non-omega settigns. -// -// $context : [optional] The context (columns spanned by parent). -// $from : The start-direction for your document. -// $style : The container style to use. -@mixin remove-omega( - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: $from; - margin-#{$to}: gutter($context, $style); - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: auto; - } -} - -// Shortcut to apply remove-omega to a specific subset of elements. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -// $context : [optional] The context (columns spanned by parent). -// $from : The start-direction for your document. -// $style : The container style to use. -@mixin remove-nth-omega( - $n : last, - $selector : child, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - - &:#{format-nth($n,$selector)} { - @if $n == "first" { - @include remove-omega($context, $from, $style); - } @else { - @include with-browser-ranges(css-sel3) { - @include remove-omega($context, $from, $style); - } - } - } -} - - -// --------------------------------------------------------------------------- -// Change Settings - -@mixin with-grid-settings( - $columns: $total-columns, - $width: $column-width, - $gutter: $gutter-width, - $padding: $grid-padding -) { - // keep the defaults around - $default-columns: $total-columns; - $default-width: $column-width; - $default-gutter: $gutter-width; - $default-padding: $grid-padding; - - // use the new settings - $total-columns: $columns !global; - $column-width: $width !global; - $gutter-width: $gutter !global; - $grid-padding: $padding !global; - - // apply to contents - @content; - - // re-instate the defaults - $total-columns: $default-columns !global; - $column-width: $default-width !global; - $gutter-width: $default-gutter !global; - $grid-padding: $default-padding !global; -} diff --git a/_stylesheets/susy/susy/language/susyone/_isolation.scss b/_stylesheets/susy/susy/language/susyone/_isolation.scss deleted file mode 100644 index 2b70038bb..000000000 --- a/_stylesheets/susy/susy/language/susyone/_isolation.scss +++ /dev/null @@ -1,51 +0,0 @@ -// --------------------------------------------------------------------------- -// Isolation - -// Isolate the position of a grid element (use in addition to span-columns) -// -// $location : The grid column to isolate in, relative to the container; -// $context : [optional] The context (columns spanned by parent). -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin isolate( - $location, - $context: $total-columns, - $from: $from-direction, - $style: fix-static-misalignment() -) { - $to: opposite-position($from); - margin-#{$to}: -100%; - margin-#{$from}: space($location - 1, $context, $style); -} - -// Isolate a group of elements in a grid, using nth-child selectors -// -// $columns : The column-width of each item on the grid; -// $context : [optional] The context (columns spanned by parent). -// $selector : [child | of-type | last-of-type ] (default is 'child') -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin isolate-grid( - $columns, - $context: $total-columns, - $selector: 'child', - $from: $from-direction, - $style: fix-static-misalignment() -) { - $to: opposite-position($from); - $location: 1; - $line: floor($context / $columns); - - @include span-columns($columns, $context, $from: $from, $style: $style); - margin-#{$to}: -100%; - - @for $item from 1 through $line { - $nth: '#{$line}n + #{$item}'; - &:#{format-nth($nth,$selector)} { - margin-#{$from}: space($location - 1, $context, $style); - @if $location == 1 { clear: $from; } - @else { clear: none; } - - $location: $location + $columns; - @if $location > $context { $location: 1; } - } - } -} diff --git a/_stylesheets/susy/susy/language/susyone/_margin.scss b/_stylesheets/susy/susy/language/susyone/_margin.scss deleted file mode 100644 index accbbe65b..000000000 --- a/_stylesheets/susy/susy/language/susyone/_margin.scss +++ /dev/null @@ -1,93 +0,0 @@ -// --------------------------------------------------------------------------- -// Margin Mixins - -// Apply 'columns' margin before an element to push it along the grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pre( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - margin-#{$from}: space($columns, $context, $style); -} - -// 'push' is a synonymn for 'pre' -@mixin push( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @include pre($columns, $context, $from, $style); -} - -// Apply negative 'columns' margin before an element to pull it along the grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pull( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - margin-#{$from}: 0 - space($columns, $context, $style); -} - -// Apply 'columns' margin after an element to contain it in a grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin post( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - margin-#{$to}: space($columns, $context, $style); -} - -// Apply 'columns' before and/or after an element to contain it on a grid. -// -// $pre : The number of columns to add as margin before. -// $post : The number of columns to add as margin after. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin squish( - $pre : false, - $post : false, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @if $pre { - @include pre($pre, $context, $from, $style) - } - @if $post { - @include post($post, $context, $from, $style) - } -} diff --git a/_stylesheets/susy/susy/language/susyone/_media.scss b/_stylesheets/susy/susy/language/susyone/_media.scss deleted file mode 100644 index ca860fc93..000000000 --- a/_stylesheets/susy/susy/language/susyone/_media.scss +++ /dev/null @@ -1,105 +0,0 @@ -// --------------------------------------------------------------------------- -// Media Mixins - -// Create a new layout context for (@content) descendants. -// -// $layout-cols : a (unitless) number of columns to use for this layout. -@mixin layout( - $layout-cols -) { - // store default $total-columns setting for later, then change it. - $default-layout : $total-columns; - $total-columns : $layout-cols !global; - - // apply children in this new layout context. - @content; - - // return to default $total-columns setting. - $total-columns : $default-layout !global; -} - -// Nest a block of code inside a new media-query and layout context. -// -// $media-layout : a list of values [$min $layout $max $ie] including... -// : - one unitless number (columns in a layout) -// : - two optional lengths (min and max-width media-query breakpoints). -// : - one optional boolean or string to trigger fallback support for IE. -// $font-size : [optional] The base font-size of your layout, if you are using ems. -// : - defaults to $base-font-size -@mixin at-breakpoint( - $media-layout, - $font-size: $base-font-size -) { - $media-layout : medialayout($media-layout,$font-size); - $min : nth($media-layout,1); - $layout : nth($media-layout,2); - $max : nth($media-layout,3); - $ie : nth($media-layout,4); - - @if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) { - @warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work."; - } - - // We need to have either a min-width breakpoint or a layout in order to proceed. - @if $min or $layout or $max { - - // If we don't have a layout, we create one based on the min-width. - @if not($layout) { - $layout: get-layout($min); - } - - // If we still don't have a layout, we have a problem. - @if $layout { - // Set our new layout context. - @include layout($layout) { - @if $breakpoint-media-output { - @include with-browser-ranges(css-mediaqueries) { - @if $min and $max { - // Both $min and $max - @media (min-width: $min) and (max-width: $max) { - @content; - } - } @else { - @if not($min) and not($max) { - // Neither $min nor $max: - // We can create a breakpoint based on the number of columns in the layout. - $min: fix-ems(container-outer-width($width: false)); - } - @if $min { - // Min only: - @media (min-width: $min) { - @content; - } - } @else { - // Max only: - @media (max-width: $max) { - @content; - } - } - } - } - } - // Set an IE fallback - @if $ie and $breakpoint-ie-output { - @if (type-of($ie) == 'bool') { - $ie: 'lt-ie9'; - } - .#{$ie} & { - @content; - } - } - - @if $breakpoint-raw-output { - @content; - } - } - } @else { - @warn "We were unable to determine a layout for your breakpoint."; - } - - } @else { - @warn "You need to provide either a valid layout (number of columns)" - + "or a valid media-query min-width breakpoint (length)."; - } - -} diff --git a/_stylesheets/susy/susy/language/susyone/_padding.scss b/_stylesheets/susy/susy/language/susyone/_padding.scss deleted file mode 100644 index 8e6394a49..000000000 --- a/_stylesheets/susy/susy/language/susyone/_padding.scss +++ /dev/null @@ -1,92 +0,0 @@ -// --------------------------------------------------------------------------- -// Padding Mixins - -// add empty colums as padding before an element. -// $columns : The number of columns to prefix. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin prefix( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - padding-#{$from}: space($columns, $context, $style); -} - -// add empty colums as padding after an element. -// $columns : The number of columns to suffix. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin suffix( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - padding-#{$to}: space($columns, $context, $style); -} - -// add empty colums as padding before and after an element. -// $columns : The number of columns to pad. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pad( - $prefix : false, - $suffix : false, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @if $prefix { - @include prefix($prefix, $context, $from, $style); - } - @if $suffix { - @include suffix($suffix, $context, $from, $style); - } -} - -// Bleed into colums with margin/padding on any side of an element. -// $width : The side of the bleed. -// : Any unit-length will be used directly. -// : Any unitless number will be used as a column-count. -// : Use "2 of 6" format to represent 2 cals in a 6-col nested context. -// $sides : One or more sides to bleed [ top | right | bottom | left | all ]. -// $style : The container style to use. -@mixin bleed( - $width: $grid-padding, - $sides: left right, - $style: fix-static-misalignment() -) { - @if $border-box-sizing { @include box-sizing(content-box) } - - @if type-of($width) == 'list' { - $width: filter($width, of); - $width: space(nth($width,1), nth($width,2), $style); - } @else if unitless($width) { - $width: space($width, $style: $style); - } - - @if $sides == 'all' { - margin: - $width; - padding: $width; - } @else { - @each $side in $sides { - margin-#{$side}: - $width; - padding-#{$side}: $width; - } - } -} diff --git a/_stylesheets/susy/susy/language/susyone/_settings.scss b/_stylesheets/susy/susy/language/susyone/_settings.scss deleted file mode 100644 index e8ff9c845..000000000 --- a/_stylesheets/susy/susy/language/susyone/_settings.scss +++ /dev/null @@ -1,60 +0,0 @@ -// --------------------------------------------------------------------------- -// Susy Settings - -// The total number of columns in the grid -$total-columns : 12 !default; - -// The width of columns and gutters. -// These must all be set with the comparable units. -$column-width : 4em !default; -$gutter-width : 1em !default; - -// Padding on the left and right of a Grid Container. -$grid-padding : $gutter-width !default; - -// --------------------------------------------------------------------------- -// Advanced Settings - -// From Direction: -// Controls for right-to-left or bi-directional sites. -$from-direction : left !default; - -// Omega Float Direction: -// The direction that +omega elements are floated by deafult. -$omega-float : opposite-position($from-direction) !default; - -// Container Width: -// Override the total width of your grid, using any length (50em, 75%, etc.) -$container-width : false !default; - -// Container Style: -// 'magic' - Static (fixed or elastic) when there's enough space, -// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM). -// 'static' - Forces the grid container to remain static at all times. -// 'fluid' - Forces the grid to remain fluid at all times. -// (this will overrule any static $container-width settings) -$container-style : magic !default; - -// Border-Box Sizing -// Adjust the grid math appropriately for box-sizing: border-box; -// Warning: This does not actually apply the new box model! -// In most cases you can ignore this setting, -// and simply apply the border-box-sizing mixin. -$border-box-sizing : false !default; - -// Pixel Values only: -// Make sure only pixel values are set for the container width. -$pixel-values-only : false !default; - -// --------------------------------------------------------------------------- -// IE Settings - -// When you are using a seperate IE stylesheet, -// you can use these settings to control the output of at-breakpoint. -// By default, at-breakpoint will output media-queries as well as -// any defined ie-fallback classes. -$breakpoint-media-output : true !default; -$breakpoint-ie-output : true !default; - -// Danger Zone! Only set as 'true' in IE-specific style sheets. -$breakpoint-raw-output : false !default; diff --git a/_stylesheets/susy/susy/output/_float.scss b/_stylesheets/susy/susy/output/_float.scss deleted file mode 100644 index 9c24051c9..000000000 --- a/_stylesheets/susy/susy/output/_float.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Float API -// ========= - -@import "shared"; - -@import "float/container"; -@import "float/span"; -@import "float/end"; -@import "float/isolate"; diff --git a/_stylesheets/susy/susy/output/_shared.scss b/_stylesheets/susy/susy/output/_shared.scss deleted file mode 100644 index dd9df4ed8..000000000 --- a/_stylesheets/susy/susy/output/_shared.scss +++ /dev/null @@ -1,15 +0,0 @@ -// Shared API -// ========== - -@import "support"; - -@import "shared/inspect"; -@import "shared/output"; -@import "shared/direction"; -@import "shared/background"; -@import "shared/container"; -@import "shared/margins"; -@import "shared/padding"; - - - diff --git a/_stylesheets/susy/susy/output/_support.scss b/_stylesheets/susy/susy/output/_support.scss deleted file mode 100644 index 53dbc9c3f..000000000 --- a/_stylesheets/susy/susy/output/_support.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Susy Browser Support -// ==================== - -@import "support/support"; -@import "support/prefix"; -@import "support/background"; -@import "support/box-sizing"; -@import "support/rem"; -@import "support/clearfix"; diff --git a/_stylesheets/susy/susy/output/float/_container.scss b/_stylesheets/susy/susy/output/float/_container.scss deleted file mode 100644 index 121eb11ae..000000000 --- a/_stylesheets/susy/susy/output/float/_container.scss +++ /dev/null @@ -1,16 +0,0 @@ -// Float Container API -// =================== - -// Float Container -// --------------- -// - [$width] : -// - [$justify] : left | center | right -// - [$math] : fluid | static -@mixin float-container( - $width, - $justify: auto auto, - $property: max-width -) { - @include susy-clearfix; - @include container-output($width, $justify, $property); -} diff --git a/_stylesheets/susy/susy/output/float/_end.scss b/_stylesheets/susy/susy/output/float/_end.scss deleted file mode 100644 index 3369997fd..000000000 --- a/_stylesheets/susy/susy/output/float/_end.scss +++ /dev/null @@ -1,40 +0,0 @@ -// Float Ends API -// ============== - -// Susy End Defaults -// ----------------- -// - PRIVATE -@include susy-defaults(( - last-flow: to, -)); - -// Float Last -// ---------- -// - [$flow] : ltr | rtl -@mixin float-last( - $flow: map-get($susy-defaults, flow), - $last-flow: map-get($susy-defaults, last-flow), - $margin: 0 -) { - $to: to($flow); - - $output: ( - float: if($last-flow == to, $to, null), - margin-#{$to}: $margin, - ); - - @include output($output); -} - -// Float First -// ----------- -// - [$flow] : ltr | rtl -@mixin float-first( - $flow: map-get($susy-defaults, flow) -) { - $output: ( - margin-#{from($flow)}: 0, - ); - - @include output($output); -} diff --git a/_stylesheets/susy/susy/output/float/_isolate.scss b/_stylesheets/susy/susy/output/float/_isolate.scss deleted file mode 100644 index 4dd3c2309..000000000 --- a/_stylesheets/susy/susy/output/float/_isolate.scss +++ /dev/null @@ -1,22 +0,0 @@ -// Float Isolation API -// =================== - -// Isolate Output -// -------------- -// - $push : -// - [$flow] : ltr | rtl -@mixin isolate-output( - $push, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - float: $from, - margin-#{$from}: $push, - margin-#{$to}: -100%, - ); - - @include output($output); -} diff --git a/_stylesheets/susy/susy/output/float/_span.scss b/_stylesheets/susy/susy/output/float/_span.scss deleted file mode 100644 index 5b732ccb2..000000000 --- a/_stylesheets/susy/susy/output/float/_span.scss +++ /dev/null @@ -1,35 +0,0 @@ -// Float Span API -// ============== - -// Float Span Output -// ----------------- -// - $width : -// - [$float] : from | to -// - [$margin-before] : -// - [$margin-after] : -// - [$padding-before] : -// - [$padding-after] : -// - [$flow] : ltr | rtl -@mixin float-span-output( - $width, - $float : from, - $margin-before : null, - $margin-after : null, - $padding-before : null, - $padding-after : null, - $flow : map-get($susy-defaults, flow) -) { - $to : to($flow); - $from : from($flow); - - $output: ( - width: $width, - float: if($float == to, $to, null) or if($float == from, $from, null), - margin-#{$from}: $margin-before, - margin-#{$to}: $margin-after, - padding-#{$from}: $padding-before, - padding-#{$to}: $padding-after, - ); - - @include output($output); -} diff --git a/_stylesheets/susy/susy/output/shared/_background.scss b/_stylesheets/susy/susy/output/shared/_background.scss deleted file mode 100644 index c230f6136..000000000 --- a/_stylesheets/susy/susy/output/shared/_background.scss +++ /dev/null @@ -1,26 +0,0 @@ -// Grid Background API -// =================== -// - Sub-pixel rounding can lead to several pixels variation between browsers. - -// Grid Background Output -// ---------------------- -// - $image: background-image -// - $size: background-size -// - $clip: background-clip -// - [$flow]: ltr | rtl -@mixin background-grid-output ( - $image, - $size: null, - $clip: null, - $flow: map-get($susy-defaults, flow) -) { - $output: ( - background-image: $image, - background-size: $size, - background-origin: $clip, - background-clip: $clip, - background-position: from($flow) top, - ); - - @include output($output); -} diff --git a/_stylesheets/susy/susy/output/shared/_container.scss b/_stylesheets/susy/susy/output/shared/_container.scss deleted file mode 100644 index 7c7d4f17e..000000000 --- a/_stylesheets/susy/susy/output/shared/_container.scss +++ /dev/null @@ -1,21 +0,0 @@ -// Shared Container API -// ==================== - -// Container Output -// ---------------- -// - [$width] : -// - [$justify] : left | center | right -// - [$math] : fluid | static -@mixin container-output( - $width, - $justify: auto auto, - $property: max-width -) { - $output: ( - #{$property}: $width or 100%, - margin-left: nth($justify, 1), - margin-right: nth($justify, 2), - ); - - @include output($output); -} diff --git a/_stylesheets/susy/susy/output/shared/_direction.scss b/_stylesheets/susy/susy/output/shared/_direction.scss deleted file mode 100644 index abb9c36fc..000000000 --- a/_stylesheets/susy/susy/output/shared/_direction.scss +++ /dev/null @@ -1,42 +0,0 @@ -// Direction Helpers -// ================= - -// Susy Flow Defaults -// ------------------ -// - PRIVATE -@include susy-defaults(( - flow: ltr, -)); - -// Get Direction -// ------------- -// Return the 'from' or 'to' direction of a ltr or rtl flow. -// - [$flow] : ltr | rtl -// - [$key] : from | to -@function get-direction( - $flow: map-get($susy-defaults, flow), - $key: from -) { - $return: if($flow == rtl, (from: right, to: left), (from: left, to: right)); - @return map-get($return, $key); -} - -// To -// -- -// Return the 'to' direction of a flow -// - [$flow] : ltr | rtl -@function to( - $flow: map-get($susy-defaults, flow) -) { - @return get-direction($flow, to); -} - -// From -// ---- -// Return the 'from' direction of a flow -// - [$flow] : ltr | rtl -@function from( - $flow: map-get($susy-defaults, flow) -) { - @return get-direction($flow, from); -} diff --git a/_stylesheets/susy/susy/output/shared/_inspect.scss b/_stylesheets/susy/susy/output/shared/_inspect.scss deleted file mode 100644 index b0af9b6d2..000000000 --- a/_stylesheets/susy/susy/output/shared/_inspect.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Debugging -// ========= - -// Susy Inspect -// ------------ -// Output arguments passed to a inspect. -// - $mixin : -// - $inspec : - -@mixin susy-inspect( - $mixin, - $inspect -) { - $show: false; - - @each $item in $inspect { - @if index($item, inspect) { - $show: true; - } - } - - @if $show or susy-get(debug inspect) { - -susy-#{$mixin}: inspect($inspect); - } -} diff --git a/_stylesheets/susy/susy/output/shared/_margins.scss b/_stylesheets/susy/susy/output/shared/_margins.scss deleted file mode 100644 index cd73e8cf1..000000000 --- a/_stylesheets/susy/susy/output/shared/_margins.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Margins API -// =========== - -// Margin Output -// ------------- -// - $before : -// - $after : -// - [$flow] : ltr | rtl -@mixin margin-output( - $before, - $after, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - margin-#{$from}: $before, - margin-#{$to}: $after, - ); - - @include output($output); -} diff --git a/_stylesheets/susy/susy/output/shared/_output.scss b/_stylesheets/susy/susy/output/shared/_output.scss deleted file mode 100644 index 20fc2d610..000000000 --- a/_stylesheets/susy/susy/output/shared/_output.scss +++ /dev/null @@ -1,14 +0,0 @@ -// Output -// ====== - -// Output -// ------ -// Output CSS with proper browser support. -// - $styles : -@mixin output( - $styles -) { - @each $prop, $val in $styles { - @include susy-support($prop, $val); - } -} diff --git a/_stylesheets/susy/susy/output/shared/_padding.scss b/_stylesheets/susy/susy/output/shared/_padding.scss deleted file mode 100644 index 5069d0cbf..000000000 --- a/_stylesheets/susy/susy/output/shared/_padding.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Padding API -// =========== - -// Padding Output -// -------------- -// - $before : -// - $after : -// - [$flow] : ltr | rtl -@mixin padding-output( - $before, - $after, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - padding-#{$from}: $before, - padding-#{$to}: $after, - ); - - @include output($output); -} diff --git a/_stylesheets/susy/susy/output/support/_background.scss b/_stylesheets/susy/susy/output/support/_background.scss deleted file mode 100644 index b14150285..000000000 --- a/_stylesheets/susy/susy/output/support/_background.scss +++ /dev/null @@ -1,58 +0,0 @@ -// Background Properties -// ===================== - -// Susy Background Image -// --------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-image( - $image -) { - @if susy-support(background-image, (mixin: background-image), $warn: false) { - @include background-image($image...); - } @else { - background-image: $image; - } -} - -// Susy Background Size -// --------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-size( - $size -) { - @if susy-support(background-options, (mixin: background-size)) { - @include background-size($size); - } @else { - background-size: $size; - } -} - -// Susy Background Origin -// ---------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-origin( - $origin -) { - @if susy-support(background-options, (mixin: background-origin)) { - @include background-origin($origin); - } @else { - background-origin: $origin; - } -} - -// Susy Background Clip -// -------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-clip( - $clip -) { - @if susy-support(background-options, (mixin: background-clip)) { - @include background-clip($clip); - } @else { - background-clip: $clip; - } -} diff --git a/_stylesheets/susy/susy/output/support/_box-sizing.scss b/_stylesheets/susy/susy/output/support/_box-sizing.scss deleted file mode 100644 index bf50bbc9c..000000000 --- a/_stylesheets/susy/susy/output/support/_box-sizing.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Box Sizing -// ========== - -// Box Sizing -// ---------- -// Check for an existing support mixin, or provide a simple fallback. -// - $model: -@mixin susy-box-sizing( - $model: content-box -) { - @if $model { - @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) { - @include box-sizing($model); - } @else { - $prefix: (moz, webkit, official); - @include susy-prefix(box-sizing, $model, $prefix); - } - } -} diff --git a/_stylesheets/susy/susy/output/support/_clearfix.scss b/_stylesheets/susy/susy/output/support/_clearfix.scss deleted file mode 100644 index 48c6e7b79..000000000 --- a/_stylesheets/susy/susy/output/support/_clearfix.scss +++ /dev/null @@ -1,18 +0,0 @@ -// Susy Fallback Clearfix -// ====================== - - -// Clearfix -// -------- -// Check for an existing support mixin, or provide a simple fallback. -@mixin susy-clearfix { - @if susy-support(clearfix, (mixin: clearfix)) { - @include clearfix; - } @else { - &:after { - content: " "; - display: block; - clear: both; - } - } -} diff --git a/_stylesheets/susy/susy/output/support/_prefix.scss b/_stylesheets/susy/susy/output/support/_prefix.scss deleted file mode 100644 index f4e26ecc5..000000000 --- a/_stylesheets/susy/susy/output/support/_prefix.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Susy Prefix -// =========== - -// Prefix -// ------ -// Output simple prefixed properties. -// - $prop : -// - $val : -// - [$prefix] : -@mixin susy-prefix( - $prop, - $val, - $prefix: official -) { - @each $fix in $prefix { - $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}'); - @include susy-rem($fix, $val); - } -} diff --git a/_stylesheets/susy/susy/output/support/_rem.scss b/_stylesheets/susy/susy/output/support/_rem.scss deleted file mode 100644 index 0a807f79c..000000000 --- a/_stylesheets/susy/susy/output/support/_rem.scss +++ /dev/null @@ -1,22 +0,0 @@ -// rem Support -// =========== - -// rem -// --- -// Check for an existing support mixin, or output directly. -// - $prop : -// - $val : -@mixin susy-rem( - $prop, - $val -) { - $_reqs: ( - variable: rhythm-unit rem-with-px-fallback, - mixin: rem, - ); - @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem { - @include rem($prop, $val); - } @else { - #{$prop}: $val; - } -} diff --git a/_stylesheets/susy/susy/output/support/_support.scss b/_stylesheets/susy/susy/output/support/_support.scss deleted file mode 100644 index 969911355..000000000 --- a/_stylesheets/susy/susy/output/support/_support.scss +++ /dev/null @@ -1,85 +0,0 @@ -// Browser Support -// =============== - -// Susy Support Defaults -// --------------------- -@include susy-defaults(( - use-custom: ( - clearfix: false, - background-image: true, - background-options: false, - breakpoint: true, - box-sizing: true, - rem: true, - ), -)); - - -// Susy Support [mixin] -// -------------------- -// Send property-value pairs to the proper support modules. -// - $prop : -// - $val : -@mixin susy-support( - $prop, - $val -) { - // Background Support - @if $prop == background-image { - @include susy-background-image($val); - } @else if $prop == background-size { - @include susy-background-size($val); - } @else if $prop == background-origin { - @include susy-background-origin($val); - } @else if $prop == background-clip { - @include susy-background-clip($val); - } - - // Box-Sizing Support - @else if $prop == box-sizing { - @include susy-box-sizing($val); - } - - // Rem Support - @else { - @include susy-rem($prop, $val); - } -} - - -// Susy Support [function] -// ----------------------- -// Check for support of a feature. -// - $feature : -// - e.g "rem" or "box-sizing" -// - $requirements : -// - e.g (variable: rem-with-px-fallback, mixin: rem) -// - $warn : -@function susy-support( - $feature, - $requirements: (), - $warn: true -) { - $_support: susy-get(use-custom $feature); - - @if $_support { - $_fail: false; - - @each $_type, $_req in $requirements { - @each $_i in $_req { - $_pass: call(unquote("#{$_type}-exists"), $_i); - - @if not($_pass) { - $_fail: true; - @if $warn { - @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available."; - } - } - } - } - - $_support: if($_fail, false, $_support); - } - - @return $_support; -} diff --git a/_stylesheets/susy/susy/su/_grid.scss b/_stylesheets/susy/susy/su/_grid.scss deleted file mode 100644 index 7fe2a02d0..000000000 --- a/_stylesheets/susy/susy/su/_grid.scss +++ /dev/null @@ -1,103 +0,0 @@ -// Column math -// =========== - - -// Is Symmetrical -// -------------- -// Returns true if a grid is symmetrical. -// - [$columns] : | -@function is-symmetrical( - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - @return if(type-of($columns) == number, $columns, null); -} - - -// Susy Count -// ---------- -// Find the number of columns in a given layout -// - [$columns] : | -@function susy-count( - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - @return is-symmetrical($columns) or length($columns); -} - - -// Susy Sum -// -------- -// Find the total sum of column-units in a layout -// - [$columns] : | -// - [$gutters] : -// - [$spread] : false/narrow | wide | wider -@function susy-sum( - $columns : susy-get(columns), - $gutters : susy-get(gutters), - $spread : false -) { - $columns: valid-columns($columns); - $gutters: valid-gutters($gutters); - - $spread: if($spread == wide, 0, if($spread == wider, 1, -1)); - $gutter-sum: (susy-count($columns) + $spread) * $gutters; - $column-sum: is-symmetrical($columns); - - @if not($column-sum) { - @each $column in $columns { - $column-sum: ($column-sum or 0) + $column; - } - } - - @return $column-sum + $gutter-sum; -} - - -// Susy Slice -// ---------- -// Return a subset of columns at a given location. -// - $span : -// - $location : -// - [$columns] : | -@function susy-slice( - $span, - $location, - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - $sub-columns: $span; - - @if not(is-symmetrical($columns)) { - $location: $location or 1; - $sub-columns: (); - @for $i from $location to ($location + $span) { - $sub-columns: append($sub-columns, nth($columns, $i)); - } - } - - @return $sub-columns; -} - - -// Susy -// ---- -// Find the sum of a column-span. -// - $span : -// - $location : -// - [$columns] : | -// - [$gutters] : -// - [$spread] : false/narrow | wide | wider -@function susy( - $span, - $location : false, - $columns : susy-get(columns), - $gutters : susy-get(gutters), - $spread : false -) { - $columns: valid-columns($columns); - $gutters: valid-gutters($gutters); - $span: susy-slice($span, $location, $columns); - - @return susy-sum($span, $gutters, $spread); -} diff --git a/_stylesheets/susy/susy/su/_settings.scss b/_stylesheets/susy/susy/su/_settings.scss deleted file mode 100644 index 8b439aaaf..000000000 --- a/_stylesheets/susy/susy/su/_settings.scss +++ /dev/null @@ -1,73 +0,0 @@ -// Settings -// ======== - -// Version -// ------- -$su-version: 1.1; - - -// Default Settings -// ---------------- -// PRIVATE: The basic settings -$susy-defaults: ( - columns: 4, - gutters: .25, -); - - -// User Settings -// ------------- -// - Define the $susy variable with a map of your own settings. -// - Set EITHER $column-width OR $container -// - Use $column-width for static layouts -$susy: () !default; - - -// Susy Defaults -// ------------- -// PRIVATE: Add defaults to Susy -@mixin susy-defaults( - $defaults -) { - $susy-defaults: map-merge($susy-defaults, $defaults) !global; -} - - -// Susy Set -// -------- -// Change one setting -// - $key : setting name -// - $value : setting value -@mixin susy-set( - $key-value... -) { - $susy: _susy-deep-set($susy, $key-value...) !global; -} - - -// Susy Get -// -------- -// Return one setting from a grid -// - $key : -// - $layout : -@function susy-get( - $key, - $layout: map-merge($susy-defaults, $susy) -) { - $layout: parse-grid($layout); - $_options: $layout $susy $susy-defaults; - $_break: false; - $_return: null; - - @each $opt in $_options { - @if type-of($opt) == map and not($_break) { - $_keyset: _susy-deep-has-key($opt, $key...); - @if $_keyset { - $_return: _susy-deep-get($opt, $key...); - $_break: true; - } - } - } - - @return $_return; -} diff --git a/_stylesheets/susy/susy/su/_utilities.scss b/_stylesheets/susy/susy/su/_utilities.scss deleted file mode 100644 index b737f2129..000000000 --- a/_stylesheets/susy/susy/su/_utilities.scss +++ /dev/null @@ -1,111 +0,0 @@ -// Map Functions -// ============= - - -// Truncate List -// ------------- -// - Return a list, truncated to a given length -@function _susy-truncate-list( - $list, - $length -) { - $_return: (); - - @for $i from 1 through length($list) { - $_return: if($i <= $length, append($_return, nth($list, $i)), $_return); - } - - @return $_return; -} - - -// Deep Get -// -------- -// - Return a value deep in nested maps -@function _susy-deep-get( - $map, - $keys... -) { - $_return: $map; - - @each $key in $keys { - @if type-of($_return) == map { - $_return: map-get($_return, $key); - } - } - - @return $_return; -} - - -// Deep Set -// -------- -// - Set a value deep in nested maps -@function _susy-deep-set( - $map, - $keys-value... -) { - $_value: nth($keys-value, -1); - $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1); - $_length: length($_keys); - $_return: (); - - @for $i from 1 through $_length { - $_n: 0 - $i; - $_level: _susy-truncate-list($_keys, $_length + $_n); - $_level: _susy-deep-get($map, $_level...); - $_merge: nth($_keys, $_n); - $_merge: ($_merge: $_value); - $_return: if($_level, map-merge($_level, $_merge), $_merge); - $_value: $_return; - } - - @return $_return; -} - - -// Deep Merge -// ---------- -// Return 2 objects of any depth, merged -@function _susy-deep-merge( - $map1, - $map2 -) { - - @if type-of($map1) != map or type-of($map2) != map { - $map1: $map2; - } @else { - @each $key, $value in $map2 { - $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value)); - $map1: map-merge($map1, $_new); - } - } - - @return $map1; -} - - -// Deep Has-Key -// ------------ -// - Return true if a deep key exists -@function _susy-deep-has-key( - $map, - $keys... -) { - $_return: null; - $_stop: false; - - @each $key in $keys { - @if not($_stop) { - $_return: map-has-key($map, $key); - } - - @if $_return { - $map: map-get($map, $key); - } @else { - $_stop: true; - } - } - - @return $_return; -} diff --git a/_stylesheets/susy/susy/su/_validation.scss b/_stylesheets/susy/susy/su/_validation.scss deleted file mode 100644 index 4c6ab8dac..000000000 --- a/_stylesheets/susy/susy/su/_validation.scss +++ /dev/null @@ -1,57 +0,0 @@ -// Math Validation -// =============== - - -// Valid Columns -// ------------- -// Check that a column setting is valid. -@function valid-columns( - $columns, - $silent: false -) { - $type: type-of($columns); - $return: null; - - @if $type == number and unitless($columns) { - $return: $columns; - } @else if $type == list { - $fail: null; - @each $col in $columns { - @if type-of($col) == number { - $fail: $fail or if(unitless($col), null, true); - } @else { - $fail: true; - } - } - $return: if($fail, $return, $columns); - } - - @if $return != $columns and not($silent) { - $return: null; - $warn: '$columns must be a unitless number or list of unitless numbers.'; - @warn $warn + ' Current value [#{$type}]: #{$columns}'; - } - - @return $return; -} - - -// Valid Gutters -// ------------- -// Check that a gutter setting is valid. -@function valid-gutters( - $gutters, - $silent: false -) { - $type: type-of($gutters); - $return: null; - - @if $type == number and unitless($gutters) { - $return: $gutters; - } @else if not($silent) { - $warn: '$gutters must be a unitless number.'; - @warn $warn + ' Current value [#{$type}]: #{$gutters}'; - } - - @return $return; -} diff --git a/_stylesheets/variables.scss b/_stylesheets/variables.scss deleted file mode 100644 index 3fe1fe4fe..000000000 --- a/_stylesheets/variables.scss +++ /dev/null @@ -1,13 +0,0 @@ -/* Color Definitions */ -$color-dark: #1875c6; -$color-bright: #00a5ea; -$mono-dark: #222222; -$mono-light: #f3f3f3; -$mono-medium: #5a5a5a; -$mono-bright: #ffffff; - -$color-mild: #56c7e3; -$color-medium: #53cda4; -$color-hot: #99d487; - -$width-desktop: 960px; diff --git a/_stylesheets/vendor/breakpoint/_breakpoint.scss b/_stylesheets/vendor/breakpoint/_breakpoint.scss deleted file mode 100644 index a0528eb8b..000000000 --- a/_stylesheets/vendor/breakpoint/_breakpoint.scss +++ /dev/null @@ -1,114 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/_context.scss b/_stylesheets/vendor/breakpoint/_context.scss deleted file mode 100644 index 57947f5c8..000000000 --- a/_stylesheets/vendor/breakpoint/_context.scss +++ /dev/null @@ -1,95 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/_helpers.scss b/_stylesheets/vendor/breakpoint/_helpers.scss deleted file mode 100644 index 97e522d11..000000000 --- a/_stylesheets/vendor/breakpoint/_helpers.scss +++ /dev/null @@ -1,151 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/_legacy-settings.scss b/_stylesheets/vendor/breakpoint/_legacy-settings.scss deleted file mode 100644 index e060ebe3d..000000000 --- a/_stylesheets/vendor/breakpoint/_legacy-settings.scss +++ /dev/null @@ -1,50 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/_no-query.scss b/_stylesheets/vendor/breakpoint/_no-query.scss deleted file mode 100644 index 0b5a81f69..000000000 --- a/_stylesheets/vendor/breakpoint/_no-query.scss +++ /dev/null @@ -1,15 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/_parsers.scss b/_stylesheets/vendor/breakpoint/_parsers.scss deleted file mode 100644 index f0b053fee..000000000 --- a/_stylesheets/vendor/breakpoint/_parsers.scss +++ /dev/null @@ -1,215 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/_respond-to.scss b/_stylesheets/vendor/breakpoint/_respond-to.scss deleted file mode 100644 index e2462c5fc..000000000 --- a/_stylesheets/vendor/breakpoint/_respond-to.scss +++ /dev/null @@ -1,82 +0,0 @@ -//////////////////////// -// 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/_stylesheets/vendor/breakpoint/_settings.scss b/_stylesheets/vendor/breakpoint/_settings.scss deleted file mode 100644 index 05ee68940..000000000 --- a/_stylesheets/vendor/breakpoint/_settings.scss +++ /dev/null @@ -1,71 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/parsers/_double.scss b/_stylesheets/vendor/breakpoint/parsers/_double.scss deleted file mode 100644 index 24580c151..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/_double.scss +++ /dev/null @@ -1,33 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/parsers/_query.scss b/_stylesheets/vendor/breakpoint/parsers/_query.scss deleted file mode 100644 index b138b3933..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/_query.scss +++ /dev/null @@ -1,82 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/parsers/_resolution.scss b/_stylesheets/vendor/breakpoint/parsers/_resolution.scss deleted file mode 100644 index 19769adf4..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/_resolution.scss +++ /dev/null @@ -1,31 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/parsers/_single.scss b/_stylesheets/vendor/breakpoint/parsers/_single.scss deleted file mode 100644 index d9fd764a7..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/_single.scss +++ /dev/null @@ -1,26 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/parsers/_triple.scss b/_stylesheets/vendor/breakpoint/parsers/_triple.scss deleted file mode 100644 index e2732067f..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/_triple.scss +++ /dev/null @@ -1,36 +0,0 @@ -////////////////////////////// -// 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/_stylesheets/vendor/breakpoint/parsers/double/_default-pair.scss b/_stylesheets/vendor/breakpoint/parsers/double/_default-pair.scss deleted file mode 100644 index f88432ccd..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/double/_default-pair.scss +++ /dev/null @@ -1,21 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/parsers/double/_default.scss b/_stylesheets/vendor/breakpoint/parsers/double/_default.scss deleted file mode 100644 index 73190ed59..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/double/_default.scss +++ /dev/null @@ -1,22 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/parsers/double/_double-string.scss b/_stylesheets/vendor/breakpoint/parsers/double/_double-string.scss deleted file mode 100644 index c6fd0cb03..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/double/_double-string.scss +++ /dev/null @@ -1,22 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/parsers/resolution/_resolution.scss b/_stylesheets/vendor/breakpoint/parsers/resolution/_resolution.scss deleted file mode 100644 index 368042126..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/resolution/_resolution.scss +++ /dev/null @@ -1,60 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/parsers/single/_default.scss b/_stylesheets/vendor/breakpoint/parsers/single/_default.scss deleted file mode 100644 index 503ef427b..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/single/_default.scss +++ /dev/null @@ -1,13 +0,0 @@ -@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/_stylesheets/vendor/breakpoint/parsers/triple/_default.scss b/_stylesheets/vendor/breakpoint/parsers/triple/_default.scss deleted file mode 100644 index 7fa418dda..000000000 --- a/_stylesheets/vendor/breakpoint/parsers/triple/_default.scss +++ /dev/null @@ -1,18 +0,0 @@ -@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/_stylesheets/vendor/font-awesome/_animated.scss b/_stylesheets/vendor/font-awesome/_animated.scss deleted file mode 100644 index 8a020dbff..000000000 --- a/_stylesheets/vendor/font-awesome/_animated.scss +++ /dev/null @@ -1,34 +0,0 @@ -// Spinning Icons -// -------------------------- - -.#{$fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.#{$fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/_stylesheets/vendor/font-awesome/_bordered-pulled.scss b/_stylesheets/vendor/font-awesome/_bordered-pulled.scss deleted file mode 100644 index d4b85a02f..000000000 --- a/_stylesheets/vendor/font-awesome/_bordered-pulled.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.#{$fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em $fa-border-color; - border-radius: .1em; -} - -.#{$fa-css-prefix}-pull-left { float: left; } -.#{$fa-css-prefix}-pull-right { float: right; } - -.#{$fa-css-prefix} { - &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } - &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.#{$fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/_stylesheets/vendor/font-awesome/_core.scss b/_stylesheets/vendor/font-awesome/_core.scss deleted file mode 100644 index 7425ef85f..000000000 --- a/_stylesheets/vendor/font-awesome/_core.scss +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.#{$fa-css-prefix} { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/_stylesheets/vendor/font-awesome/_fixed-width.scss b/_stylesheets/vendor/font-awesome/_fixed-width.scss deleted file mode 100644 index b221c9813..000000000 --- a/_stylesheets/vendor/font-awesome/_fixed-width.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.#{$fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/_stylesheets/vendor/font-awesome/_font-awesome.scss b/_stylesheets/vendor/font-awesome/_font-awesome.scss deleted file mode 100644 index a19d664c3..000000000 --- a/_stylesheets/vendor/font-awesome/_font-awesome.scss +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables"; -@import "mixins"; -@import "path"; -@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/_stylesheets/vendor/font-awesome/_icons.scss b/_stylesheets/vendor/font-awesome/_icons.scss deleted file mode 100644 index b64017aef..000000000 --- a/_stylesheets/vendor/font-awesome/_icons.scss +++ /dev/null @@ -1,724 +0,0 @@ -/* 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}-glass:before { content: $fa-var-glass; } -.#{$fa-css-prefix}-music:before { content: $fa-var-music; } -.#{$fa-css-prefix}-search:before { content: $fa-var-search; } -.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } -.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } -.#{$fa-css-prefix}-star:before { content: $fa-var-star; } -.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } -.#{$fa-css-prefix}-user:before { content: $fa-var-user; } -.#{$fa-css-prefix}-film:before { content: $fa-var-film; } -.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } -.#{$fa-css-prefix}-th:before { content: $fa-var-th; } -.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } -.#{$fa-css-prefix}-check:before { content: $fa-var-check; } -.#{$fa-css-prefix}-remove:before, -.#{$fa-css-prefix}-close:before, -.#{$fa-css-prefix}-times:before { content: $fa-var-times; } -.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } -.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } -.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } -.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } -.#{$fa-css-prefix}-gear:before, -.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } -.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } -.#{$fa-css-prefix}-home:before { content: $fa-var-home; } -.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } -.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } -.#{$fa-css-prefix}-road:before { content: $fa-var-road; } -.#{$fa-css-prefix}-download:before { content: $fa-var-download; } -.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } -.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } -.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } -.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } -.#{$fa-css-prefix}-rotate-right:before, -.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } -.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } -.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } -.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } -.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } -.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } -.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } -.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } -.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } -.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } -.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } -.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } -.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } -.#{$fa-css-prefix}-book:before { content: $fa-var-book; } -.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } -.#{$fa-css-prefix}-print:before { content: $fa-var-print; } -.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } -.#{$fa-css-prefix}-font:before { content: $fa-var-font; } -.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } -.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } -.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } -.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } -.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } -.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } -.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } -.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } -.#{$fa-css-prefix}-list:before { content: $fa-var-list; } -.#{$fa-css-prefix}-dedent:before, -.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } -.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } -.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } -.#{$fa-css-prefix}-photo:before, -.#{$fa-css-prefix}-image:before, -.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } -.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } -.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } -.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } -.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } -.#{$fa-css-prefix}-edit:before, -.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } -.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } -.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } -.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } -.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } -.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } -.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } -.#{$fa-css-prefix}-play:before { content: $fa-var-play; } -.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } -.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } -.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } -.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } -.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } -.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } -.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } -.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } -.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } -.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } -.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } -.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } -.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } -.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } -.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } -.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } -.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } -.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } -.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } -.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } -.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } -.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } -.#{$fa-css-prefix}-mail-forward:before, -.#{$fa-css-prefix}-share:before { content: $fa-var-share; } -.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } -.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } -.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } -.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } -.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } -.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } -.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } -.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } -.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } -.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } -.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } -.#{$fa-css-prefix}-warning:before, -.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } -.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } -.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } -.#{$fa-css-prefix}-random:before { content: $fa-var-random; } -.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } -.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } -.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } -.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } -.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } -.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } -.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } -.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } -.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } -.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } -.#{$fa-css-prefix}-bar-chart-o:before, -.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } -.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } -.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } -.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } -.#{$fa-css-prefix}-key:before { content: $fa-var-key; } -.#{$fa-css-prefix}-gears:before, -.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } -.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } -.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } -.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } -.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } -.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } -.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } -.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } -.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } -.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } -.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } -.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } -.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } -.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } -.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } -.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } -.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } -.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } -.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } -.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } -.#{$fa-css-prefix}-facebook-f:before, -.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } -.#{$fa-css-prefix}-github:before { content: $fa-var-github; } -.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } -.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } -.#{$fa-css-prefix}-feed:before, -.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } -.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } -.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } -.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } -.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } -.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } -.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } -.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } -.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } -.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } -.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } -.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } -.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } -.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } -.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } -.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } -.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } -.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } -.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } -.#{$fa-css-prefix}-group:before, -.#{$fa-css-prefix}-users:before { content: $fa-var-users; } -.#{$fa-css-prefix}-chain:before, -.#{$fa-css-prefix}-link:before { content: $fa-var-link; } -.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } -.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } -.#{$fa-css-prefix}-cut:before, -.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } -.#{$fa-css-prefix}-copy:before, -.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } -.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } -.#{$fa-css-prefix}-save:before, -.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } -.#{$fa-css-prefix}-square:before { content: $fa-var-square; } -.#{$fa-css-prefix}-navicon:before, -.#{$fa-css-prefix}-reorder:before, -.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } -.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } -.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } -.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } -.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } -.#{$fa-css-prefix}-table:before { content: $fa-var-table; } -.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } -.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } -.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } -.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } -.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } -.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } -.#{$fa-css-prefix}-money:before { content: $fa-var-money; } -.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } -.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } -.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } -.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } -.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } -.#{$fa-css-prefix}-unsorted:before, -.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } -.#{$fa-css-prefix}-sort-down:before, -.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } -.#{$fa-css-prefix}-sort-up:before, -.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } -.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } -.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } -.#{$fa-css-prefix}-rotate-left:before, -.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } -.#{$fa-css-prefix}-legal:before, -.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } -.#{$fa-css-prefix}-dashboard:before, -.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } -.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } -.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } -.#{$fa-css-prefix}-flash:before, -.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } -.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } -.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } -.#{$fa-css-prefix}-paste:before, -.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } -.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } -.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } -.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } -.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } -.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } -.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } -.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } -.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } -.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } -.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } -.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } -.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } -.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } -.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } -.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } -.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } -.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } -.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } -.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } -.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } -.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } -.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } -.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } -.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } -.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } -.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } -.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } -.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } -.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } -.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } -.#{$fa-css-prefix}-mobile-phone:before, -.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } -.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } -.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } -.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } -.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } -.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } -.#{$fa-css-prefix}-mail-reply:before, -.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } -.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } -.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } -.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } -.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } -.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } -.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } -.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } -.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } -.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } -.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } -.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } -.#{$fa-css-prefix}-code:before { content: $fa-var-code; } -.#{$fa-css-prefix}-mail-reply-all:before, -.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } -.#{$fa-css-prefix}-star-half-empty:before, -.#{$fa-css-prefix}-star-half-full:before, -.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } -.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } -.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } -.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } -.#{$fa-css-prefix}-unlink:before, -.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } -.#{$fa-css-prefix}-question:before { content: $fa-var-question; } -.#{$fa-css-prefix}-info:before { content: $fa-var-info; } -.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } -.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } -.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } -.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } -.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } -.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } -.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } -.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } -.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } -.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } -.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } -.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } -.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } -.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } -.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } -.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } -.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } -.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } -.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } -.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } -.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } -.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } -.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } -.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } -.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } -.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } -.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } -.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } -.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } -.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } -.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } -.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } -.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } -.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } -.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } -.#{$fa-css-prefix}-toggle-down:before, -.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } -.#{$fa-css-prefix}-toggle-up:before, -.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } -.#{$fa-css-prefix}-toggle-right:before, -.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } -.#{$fa-css-prefix}-euro:before, -.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } -.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } -.#{$fa-css-prefix}-dollar:before, -.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } -.#{$fa-css-prefix}-rupee:before, -.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } -.#{$fa-css-prefix}-cny:before, -.#{$fa-css-prefix}-rmb:before, -.#{$fa-css-prefix}-yen:before, -.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } -.#{$fa-css-prefix}-ruble:before, -.#{$fa-css-prefix}-rouble:before, -.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } -.#{$fa-css-prefix}-won:before, -.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } -.#{$fa-css-prefix}-bitcoin:before, -.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } -.#{$fa-css-prefix}-file:before { content: $fa-var-file; } -.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } -.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } -.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } -.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } -.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } -.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } -.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } -.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } -.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } -.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } -.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } -.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } -.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } -.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } -.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } -.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } -.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } -.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } -.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } -.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } -.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } -.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } -.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } -.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } -.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } -.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } -.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } -.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } -.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } -.#{$fa-css-prefix}-android:before { content: $fa-var-android; } -.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } -.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } -.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } -.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } -.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } -.#{$fa-css-prefix}-female:before { content: $fa-var-female; } -.#{$fa-css-prefix}-male:before { content: $fa-var-male; } -.#{$fa-css-prefix}-gittip:before, -.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } -.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } -.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } -.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } -.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } -.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } -.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } -.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } -.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } -.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } -.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } -.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } -.#{$fa-css-prefix}-toggle-left:before, -.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } -.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } -.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } -.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } -.#{$fa-css-prefix}-turkish-lira:before, -.#{$fa-css-prefix}-try:before { content: $fa-var-try; } -.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } -.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } -.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } -.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } -.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } -.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } -.#{$fa-css-prefix}-institution:before, -.#{$fa-css-prefix}-bank:before, -.#{$fa-css-prefix}-university:before { content: $fa-var-university; } -.#{$fa-css-prefix}-mortar-board:before, -.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } -.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } -.#{$fa-css-prefix}-google:before { content: $fa-var-google; } -.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } -.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } -.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } -.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } -.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } -.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } -.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } -.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } -.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } -.#{$fa-css-prefix}-language:before { content: $fa-var-language; } -.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } -.#{$fa-css-prefix}-building:before { content: $fa-var-building; } -.#{$fa-css-prefix}-child:before { content: $fa-var-child; } -.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } -.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } -.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } -.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } -.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } -.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } -.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } -.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } -.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } -.#{$fa-css-prefix}-automobile:before, -.#{$fa-css-prefix}-car:before { content: $fa-var-car; } -.#{$fa-css-prefix}-cab:before, -.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } -.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } -.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } -.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } -.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } -.#{$fa-css-prefix}-database:before { content: $fa-var-database; } -.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } -.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } -.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } -.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } -.#{$fa-css-prefix}-file-photo-o:before, -.#{$fa-css-prefix}-file-picture-o:before, -.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } -.#{$fa-css-prefix}-file-zip-o:before, -.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } -.#{$fa-css-prefix}-file-sound-o:before, -.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } -.#{$fa-css-prefix}-file-movie-o:before, -.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } -.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } -.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } -.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } -.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } -.#{$fa-css-prefix}-life-bouy:before, -.#{$fa-css-prefix}-life-buoy:before, -.#{$fa-css-prefix}-life-saver:before, -.#{$fa-css-prefix}-support:before, -.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } -.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } -.#{$fa-css-prefix}-ra:before, -.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } -.#{$fa-css-prefix}-ge:before, -.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } -.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } -.#{$fa-css-prefix}-git:before { content: $fa-var-git; } -.#{$fa-css-prefix}-y-combinator-square:before, -.#{$fa-css-prefix}-yc-square:before, -.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } -.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } -.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } -.#{$fa-css-prefix}-wechat:before, -.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } -.#{$fa-css-prefix}-send:before, -.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } -.#{$fa-css-prefix}-send-o:before, -.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } -.#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } -.#{$fa-css-prefix}-header:before { content: $fa-var-header; } -.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } -.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } -.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } -.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } -.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } -.#{$fa-css-prefix}-soccer-ball-o:before, -.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } -.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } -.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } -.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } -.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } -.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } -.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } -.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } -.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } -.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } -.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } -.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } -.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } -.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } -.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } -.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } -.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } -.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } -.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } -.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } -.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } -.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } -.#{$fa-css-prefix}-at:before { content: $fa-var-at; } -.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } -.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } -.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } -.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } -.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } -.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } -.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } -.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } -.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } -.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } -.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } -.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } -.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } -.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } -.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } -.#{$fa-css-prefix}-shekel:before, -.#{$fa-css-prefix}-sheqel:before, -.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } -.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } -.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } -.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } -.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } -.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } -.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } -.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } -.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } -.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } -.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } -.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } -.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } -.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } -.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } -.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } -.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } -.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } -.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } -.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } -.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } -.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } -.#{$fa-css-prefix}-intersex:before, -.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } -.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } -.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } -.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } -.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } -.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } -.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } -.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } -.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } -.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } -.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } -.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } -.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } -.#{$fa-css-prefix}-server:before { content: $fa-var-server; } -.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } -.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } -.#{$fa-css-prefix}-hotel:before, -.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } -.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } -.#{$fa-css-prefix}-train:before { content: $fa-var-train; } -.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } -.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } -.#{$fa-css-prefix}-yc:before, -.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } -.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } -.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } -.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } -.#{$fa-css-prefix}-battery-4:before, -.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } -.#{$fa-css-prefix}-battery-3:before, -.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } -.#{$fa-css-prefix}-battery-2:before, -.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } -.#{$fa-css-prefix}-battery-1:before, -.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } -.#{$fa-css-prefix}-battery-0:before, -.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } -.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } -.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } -.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } -.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } -.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } -.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } -.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } -.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } -.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } -.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } -.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } -.#{$fa-css-prefix}-hourglass-1:before, -.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } -.#{$fa-css-prefix}-hourglass-2:before, -.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } -.#{$fa-css-prefix}-hourglass-3:before, -.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } -.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } -.#{$fa-css-prefix}-hand-grab-o:before, -.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } -.#{$fa-css-prefix}-hand-stop-o:before, -.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } -.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } -.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } -.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } -.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } -.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } -.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } -.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } -.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } -.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } -.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } -.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } -.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } -.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } -.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } -.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } -.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } -.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } -.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } -.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } -.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } -.#{$fa-css-prefix}-tv:before, -.#{$fa-css-prefix}-television:before { content: $fa-var-television; } -.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } -.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } -.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } -.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } -.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } -.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } -.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } -.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } -.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } -.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } -.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } -.#{$fa-css-prefix}-map:before { content: $fa-var-map; } -.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } -.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } -.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } -.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } -.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } -.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } -.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } -.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } -.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } -.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } -.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } -.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } -.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } -.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } -.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } -.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } -.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } -.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } -.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } -.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } -.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } -.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } -.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } -.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } -.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } -.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } -.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } -.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } -.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } -.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } -.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } -.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } -.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } -.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } -.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } -.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } -.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } -.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } -.#{$fa-css-prefix}-asl-interpreting:before, -.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } -.#{$fa-css-prefix}-deafness:before, -.#{$fa-css-prefix}-hard-of-hearing:before, -.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } -.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } -.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } -.#{$fa-css-prefix}-signing:before, -.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } -.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } -.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } -.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } -.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } -.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } -.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } diff --git a/_stylesheets/vendor/font-awesome/_larger.scss b/_stylesheets/vendor/font-awesome/_larger.scss deleted file mode 100644 index 41e9a8184..000000000 --- a/_stylesheets/vendor/font-awesome/_larger.scss +++ /dev/null @@ -1,13 +0,0 @@ -// 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: -15%; -} -.#{$fa-css-prefix}-2x { font-size: 2em; } -.#{$fa-css-prefix}-3x { font-size: 3em; } -.#{$fa-css-prefix}-4x { font-size: 4em; } -.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/_stylesheets/vendor/font-awesome/_list.scss b/_stylesheets/vendor/font-awesome/_list.scss deleted file mode 100644 index 7d1e4d54d..000000000 --- a/_stylesheets/vendor/font-awesome/_list.scss +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.#{$fa-css-prefix}-ul { - padding-left: 0; - margin-left: $fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.#{$fa-css-prefix}-li { - position: absolute; - left: -$fa-li-width; - width: $fa-li-width; - top: (2em / 14); - text-align: center; - &.#{$fa-css-prefix}-lg { - left: -$fa-li-width + (4em / 14); - } -} diff --git a/_stylesheets/vendor/font-awesome/_mixins.scss b/_stylesheets/vendor/font-awesome/_mixins.scss deleted file mode 100644 index c3bbd5745..000000000 --- a/_stylesheets/vendor/font-awesome/_mixins.scss +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -@mixin fa-icon-rotate($degrees, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - 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 { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// 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 { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/_stylesheets/vendor/font-awesome/_path.scss b/_stylesheets/vendor/font-awesome/_path.scss deleted file mode 100644 index bb457c23a..000000000 --- a/_stylesheets/vendor/font-awesome/_path.scss +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); - src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), - url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), - url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), - url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), - url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); -// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/_stylesheets/vendor/font-awesome/_rotated-flipped.scss b/_stylesheets/vendor/font-awesome/_rotated-flipped.scss deleted file mode 100644 index a3558fd09..000000000 --- a/_stylesheets/vendor/font-awesome/_rotated-flipped.scss +++ /dev/null @@ -1,20 +0,0 @@ -// 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); } - -// Hook for IE8-9 -// ------------------------- - -:root .#{$fa-css-prefix}-rotate-90, -:root .#{$fa-css-prefix}-rotate-180, -:root .#{$fa-css-prefix}-rotate-270, -:root .#{$fa-css-prefix}-flip-horizontal, -:root .#{$fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/_stylesheets/vendor/font-awesome/_screen-reader.scss b/_stylesheets/vendor/font-awesome/_screen-reader.scss deleted file mode 100644 index 637426f0d..000000000 --- a/_stylesheets/vendor/font-awesome/_screen-reader.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { @include sr-only(); } -.sr-only-focusable { @include sr-only-focusable(); } diff --git a/_stylesheets/vendor/font-awesome/_stacked.scss b/_stylesheets/vendor/font-awesome/_stacked.scss deleted file mode 100644 index aef740366..000000000 --- a/_stylesheets/vendor/font-awesome/_stacked.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.#{$fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.#{$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/_stylesheets/vendor/font-awesome/_variables.scss b/_stylesheets/vendor/font-awesome/_variables.scss deleted file mode 100644 index 1f374d6c9..000000000 --- a/_stylesheets/vendor/font-awesome/_variables.scss +++ /dev/null @@ -1,735 +0,0 @@ -// Variables -// -------------------------- - -$fa-font-path: "../fonts" !default; -$fa-font-size-base: 14px !default; -$fa-line-height-base: 1 !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.1/fonts" !default; // for referencing Bootstrap CDN font files directly -$fa-css-prefix: fa !default; -$fa-version: "4.6.1" !default; -$fa-border-color: #eee !default; -$fa-inverse: #fff !default; -$fa-li-width: (30em / 14) !default; - -$fa-var-500px: "\f26e"; -$fa-var-adjust: "\f042"; -$fa-var-adn: "\f170"; -$fa-var-align-center: "\f037"; -$fa-var-align-justify: "\f039"; -$fa-var-align-left: "\f036"; -$fa-var-align-right: "\f038"; -$fa-var-amazon: "\f270"; -$fa-var-ambulance: "\f0f9"; -$fa-var-american-sign-language-interpreting: "\f2a3"; -$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-apple: "\f179"; -$fa-var-archive: "\f187"; -$fa-var-area-chart: "\f1fe"; -$fa-var-arrow-circle-down: "\f0ab"; -$fa-var-arrow-circle-left: "\f0a8"; -$fa-var-arrow-circle-o-down: "\f01a"; -$fa-var-arrow-circle-o-left: "\f190"; -$fa-var-arrow-circle-o-right: "\f18e"; -$fa-var-arrow-circle-o-up: "\f01b"; -$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: "\f047"; -$fa-var-arrows-alt: "\f0b2"; -$fa-var-arrows-h: "\f07e"; -$fa-var-arrows-v: "\f07d"; -$fa-var-asl-interpreting: "\f2a3"; -$fa-var-assistive-listening-systems: "\f2a2"; -$fa-var-asterisk: "\f069"; -$fa-var-at: "\f1fa"; -$fa-var-audio-description: "\f29e"; -$fa-var-automobile: "\f1b9"; -$fa-var-backward: "\f04a"; -$fa-var-balance-scale: "\f24e"; -$fa-var-ban: "\f05e"; -$fa-var-bank: "\f19c"; -$fa-var-bar-chart: "\f080"; -$fa-var-bar-chart-o: "\f080"; -$fa-var-barcode: "\f02a"; -$fa-var-bars: "\f0c9"; -$fa-var-battery-0: "\f244"; -$fa-var-battery-1: "\f243"; -$fa-var-battery-2: "\f242"; -$fa-var-battery-3: "\f241"; -$fa-var-battery-4: "\f240"; -$fa-var-battery-empty: "\f244"; -$fa-var-battery-full: "\f240"; -$fa-var-battery-half: "\f242"; -$fa-var-battery-quarter: "\f243"; -$fa-var-battery-three-quarters: "\f241"; -$fa-var-bed: "\f236"; -$fa-var-beer: "\f0fc"; -$fa-var-behance: "\f1b4"; -$fa-var-behance-square: "\f1b5"; -$fa-var-bell: "\f0f3"; -$fa-var-bell-o: "\f0a2"; -$fa-var-bell-slash: "\f1f6"; -$fa-var-bell-slash-o: "\f1f7"; -$fa-var-bicycle: "\f206"; -$fa-var-binoculars: "\f1e5"; -$fa-var-birthday-cake: "\f1fd"; -$fa-var-bitbucket: "\f171"; -$fa-var-bitbucket-square: "\f172"; -$fa-var-bitcoin: "\f15a"; -$fa-var-black-tie: "\f27e"; -$fa-var-blind: "\f29d"; -$fa-var-bluetooth: "\f293"; -$fa-var-bluetooth-b: "\f294"; -$fa-var-bold: "\f032"; -$fa-var-bolt: "\f0e7"; -$fa-var-bomb: "\f1e2"; -$fa-var-book: "\f02d"; -$fa-var-bookmark: "\f02e"; -$fa-var-bookmark-o: "\f097"; -$fa-var-braille: "\f2a1"; -$fa-var-briefcase: "\f0b1"; -$fa-var-btc: "\f15a"; -$fa-var-bug: "\f188"; -$fa-var-building: "\f1ad"; -$fa-var-building-o: "\f0f7"; -$fa-var-bullhorn: "\f0a1"; -$fa-var-bullseye: "\f140"; -$fa-var-bus: "\f207"; -$fa-var-buysellads: "\f20d"; -$fa-var-cab: "\f1ba"; -$fa-var-calculator: "\f1ec"; -$fa-var-calendar: "\f073"; -$fa-var-calendar-check-o: "\f274"; -$fa-var-calendar-minus-o: "\f272"; -$fa-var-calendar-o: "\f133"; -$fa-var-calendar-plus-o: "\f271"; -$fa-var-calendar-times-o: "\f273"; -$fa-var-camera: "\f030"; -$fa-var-camera-retro: "\f083"; -$fa-var-car: "\f1b9"; -$fa-var-caret-down: "\f0d7"; -$fa-var-caret-left: "\f0d9"; -$fa-var-caret-right: "\f0da"; -$fa-var-caret-square-o-down: "\f150"; -$fa-var-caret-square-o-left: "\f191"; -$fa-var-caret-square-o-right: "\f152"; -$fa-var-caret-square-o-up: "\f151"; -$fa-var-caret-up: "\f0d8"; -$fa-var-cart-arrow-down: "\f218"; -$fa-var-cart-plus: "\f217"; -$fa-var-cc: "\f20a"; -$fa-var-cc-amex: "\f1f3"; -$fa-var-cc-diners-club: "\f24c"; -$fa-var-cc-discover: "\f1f2"; -$fa-var-cc-jcb: "\f24b"; -$fa-var-cc-mastercard: "\f1f1"; -$fa-var-cc-paypal: "\f1f4"; -$fa-var-cc-stripe: "\f1f5"; -$fa-var-cc-visa: "\f1f0"; -$fa-var-certificate: "\f0a3"; -$fa-var-chain: "\f0c1"; -$fa-var-chain-broken: "\f127"; -$fa-var-check: "\f00c"; -$fa-var-check-circle: "\f058"; -$fa-var-check-circle-o: "\f05d"; -$fa-var-check-square: "\f14a"; -$fa-var-check-square-o: "\f046"; -$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-circle: "\f111"; -$fa-var-circle-o: "\f10c"; -$fa-var-circle-o-notch: "\f1ce"; -$fa-var-circle-thin: "\f1db"; -$fa-var-clipboard: "\f0ea"; -$fa-var-clock-o: "\f017"; -$fa-var-clone: "\f24d"; -$fa-var-close: "\f00d"; -$fa-var-cloud: "\f0c2"; -$fa-var-cloud-download: "\f0ed"; -$fa-var-cloud-upload: "\f0ee"; -$fa-var-cny: "\f157"; -$fa-var-code: "\f121"; -$fa-var-code-fork: "\f126"; -$fa-var-codepen: "\f1cb"; -$fa-var-codiepie: "\f284"; -$fa-var-coffee: "\f0f4"; -$fa-var-cog: "\f013"; -$fa-var-cogs: "\f085"; -$fa-var-columns: "\f0db"; -$fa-var-comment: "\f075"; -$fa-var-comment-o: "\f0e5"; -$fa-var-commenting: "\f27a"; -$fa-var-commenting-o: "\f27b"; -$fa-var-comments: "\f086"; -$fa-var-comments-o: "\f0e6"; -$fa-var-compass: "\f14e"; -$fa-var-compress: "\f066"; -$fa-var-connectdevelop: "\f20e"; -$fa-var-contao: "\f26d"; -$fa-var-copy: "\f0c5"; -$fa-var-copyright: "\f1f9"; -$fa-var-creative-commons: "\f25e"; -$fa-var-credit-card: "\f09d"; -$fa-var-credit-card-alt: "\f283"; -$fa-var-crop: "\f125"; -$fa-var-crosshairs: "\f05b"; -$fa-var-css3: "\f13c"; -$fa-var-cube: "\f1b2"; -$fa-var-cubes: "\f1b3"; -$fa-var-cut: "\f0c4"; -$fa-var-cutlery: "\f0f5"; -$fa-var-dashboard: "\f0e4"; -$fa-var-dashcube: "\f210"; -$fa-var-database: "\f1c0"; -$fa-var-deaf: "\f2a4"; -$fa-var-deafness: "\f2a4"; -$fa-var-dedent: "\f03b"; -$fa-var-delicious: "\f1a5"; -$fa-var-desktop: "\f108"; -$fa-var-deviantart: "\f1bd"; -$fa-var-diamond: "\f219"; -$fa-var-digg: "\f1a6"; -$fa-var-dollar: "\f155"; -$fa-var-dot-circle-o: "\f192"; -$fa-var-download: "\f019"; -$fa-var-dribbble: "\f17d"; -$fa-var-dropbox: "\f16b"; -$fa-var-drupal: "\f1a9"; -$fa-var-edge: "\f282"; -$fa-var-edit: "\f044"; -$fa-var-eject: "\f052"; -$fa-var-ellipsis-h: "\f141"; -$fa-var-ellipsis-v: "\f142"; -$fa-var-empire: "\f1d1"; -$fa-var-envelope: "\f0e0"; -$fa-var-envelope-o: "\f003"; -$fa-var-envelope-square: "\f199"; -$fa-var-envira: "\f299"; -$fa-var-eraser: "\f12d"; -$fa-var-eur: "\f153"; -$fa-var-euro: "\f153"; -$fa-var-exchange: "\f0ec"; -$fa-var-exclamation: "\f12a"; -$fa-var-exclamation-circle: "\f06a"; -$fa-var-exclamation-triangle: "\f071"; -$fa-var-expand: "\f065"; -$fa-var-expeditedssl: "\f23e"; -$fa-var-external-link: "\f08e"; -$fa-var-external-link-square: "\f14c"; -$fa-var-eye: "\f06e"; -$fa-var-eye-slash: "\f070"; -$fa-var-eyedropper: "\f1fb"; -$fa-var-facebook: "\f09a"; -$fa-var-facebook-f: "\f09a"; -$fa-var-facebook-official: "\f230"; -$fa-var-facebook-square: "\f082"; -$fa-var-fast-backward: "\f049"; -$fa-var-fast-forward: "\f050"; -$fa-var-fax: "\f1ac"; -$fa-var-feed: "\f09e"; -$fa-var-female: "\f182"; -$fa-var-fighter-jet: "\f0fb"; -$fa-var-file: "\f15b"; -$fa-var-file-archive-o: "\f1c6"; -$fa-var-file-audio-o: "\f1c7"; -$fa-var-file-code-o: "\f1c9"; -$fa-var-file-excel-o: "\f1c3"; -$fa-var-file-image-o: "\f1c5"; -$fa-var-file-movie-o: "\f1c8"; -$fa-var-file-o: "\f016"; -$fa-var-file-pdf-o: "\f1c1"; -$fa-var-file-photo-o: "\f1c5"; -$fa-var-file-picture-o: "\f1c5"; -$fa-var-file-powerpoint-o: "\f1c4"; -$fa-var-file-sound-o: "\f1c7"; -$fa-var-file-text: "\f15c"; -$fa-var-file-text-o: "\f0f6"; -$fa-var-file-video-o: "\f1c8"; -$fa-var-file-word-o: "\f1c2"; -$fa-var-file-zip-o: "\f1c6"; -$fa-var-files-o: "\f0c5"; -$fa-var-film: "\f008"; -$fa-var-filter: "\f0b0"; -$fa-var-fire: "\f06d"; -$fa-var-fire-extinguisher: "\f134"; -$fa-var-firefox: "\f269"; -$fa-var-flag: "\f024"; -$fa-var-flag-checkered: "\f11e"; -$fa-var-flag-o: "\f11d"; -$fa-var-flash: "\f0e7"; -$fa-var-flask: "\f0c3"; -$fa-var-flickr: "\f16e"; -$fa-var-floppy-o: "\f0c7"; -$fa-var-folder: "\f07b"; -$fa-var-folder-o: "\f114"; -$fa-var-folder-open: "\f07c"; -$fa-var-folder-open-o: "\f115"; -$fa-var-font: "\f031"; -$fa-var-fonticons: "\f280"; -$fa-var-fort-awesome: "\f286"; -$fa-var-forumbee: "\f211"; -$fa-var-forward: "\f04e"; -$fa-var-foursquare: "\f180"; -$fa-var-frown-o: "\f119"; -$fa-var-futbol-o: "\f1e3"; -$fa-var-gamepad: "\f11b"; -$fa-var-gavel: "\f0e3"; -$fa-var-gbp: "\f154"; -$fa-var-ge: "\f1d1"; -$fa-var-gear: "\f013"; -$fa-var-gears: "\f085"; -$fa-var-genderless: "\f22d"; -$fa-var-get-pocket: "\f265"; -$fa-var-gg: "\f260"; -$fa-var-gg-circle: "\f261"; -$fa-var-gift: "\f06b"; -$fa-var-git: "\f1d3"; -$fa-var-git-square: "\f1d2"; -$fa-var-github: "\f09b"; -$fa-var-github-alt: "\f113"; -$fa-var-github-square: "\f092"; -$fa-var-gitlab: "\f296"; -$fa-var-gittip: "\f184"; -$fa-var-glass: "\f000"; -$fa-var-glide: "\f2a5"; -$fa-var-glide-g: "\f2a6"; -$fa-var-globe: "\f0ac"; -$fa-var-google: "\f1a0"; -$fa-var-google-plus: "\f0d5"; -$fa-var-google-plus-square: "\f0d4"; -$fa-var-google-wallet: "\f1ee"; -$fa-var-graduation-cap: "\f19d"; -$fa-var-gratipay: "\f184"; -$fa-var-group: "\f0c0"; -$fa-var-h-square: "\f0fd"; -$fa-var-hacker-news: "\f1d4"; -$fa-var-hand-grab-o: "\f255"; -$fa-var-hand-lizard-o: "\f258"; -$fa-var-hand-o-down: "\f0a7"; -$fa-var-hand-o-left: "\f0a5"; -$fa-var-hand-o-right: "\f0a4"; -$fa-var-hand-o-up: "\f0a6"; -$fa-var-hand-paper-o: "\f256"; -$fa-var-hand-peace-o: "\f25b"; -$fa-var-hand-pointer-o: "\f25a"; -$fa-var-hand-rock-o: "\f255"; -$fa-var-hand-scissors-o: "\f257"; -$fa-var-hand-spock-o: "\f259"; -$fa-var-hand-stop-o: "\f256"; -$fa-var-hard-of-hearing: "\f2a4"; -$fa-var-hashtag: "\f292"; -$fa-var-hdd-o: "\f0a0"; -$fa-var-header: "\f1dc"; -$fa-var-headphones: "\f025"; -$fa-var-heart: "\f004"; -$fa-var-heart-o: "\f08a"; -$fa-var-heartbeat: "\f21e"; -$fa-var-history: "\f1da"; -$fa-var-home: "\f015"; -$fa-var-hospital-o: "\f0f8"; -$fa-var-hotel: "\f236"; -$fa-var-hourglass: "\f254"; -$fa-var-hourglass-1: "\f251"; -$fa-var-hourglass-2: "\f252"; -$fa-var-hourglass-3: "\f253"; -$fa-var-hourglass-end: "\f253"; -$fa-var-hourglass-half: "\f252"; -$fa-var-hourglass-o: "\f250"; -$fa-var-hourglass-start: "\f251"; -$fa-var-houzz: "\f27c"; -$fa-var-html5: "\f13b"; -$fa-var-i-cursor: "\f246"; -$fa-var-ils: "\f20b"; -$fa-var-image: "\f03e"; -$fa-var-inbox: "\f01c"; -$fa-var-indent: "\f03c"; -$fa-var-industry: "\f275"; -$fa-var-info: "\f129"; -$fa-var-info-circle: "\f05a"; -$fa-var-inr: "\f156"; -$fa-var-instagram: "\f16d"; -$fa-var-institution: "\f19c"; -$fa-var-internet-explorer: "\f26b"; -$fa-var-intersex: "\f224"; -$fa-var-ioxhost: "\f208"; -$fa-var-italic: "\f033"; -$fa-var-joomla: "\f1aa"; -$fa-var-jpy: "\f157"; -$fa-var-jsfiddle: "\f1cc"; -$fa-var-key: "\f084"; -$fa-var-keyboard-o: "\f11c"; -$fa-var-krw: "\f159"; -$fa-var-language: "\f1ab"; -$fa-var-laptop: "\f109"; -$fa-var-lastfm: "\f202"; -$fa-var-lastfm-square: "\f203"; -$fa-var-leaf: "\f06c"; -$fa-var-leanpub: "\f212"; -$fa-var-legal: "\f0e3"; -$fa-var-lemon-o: "\f094"; -$fa-var-level-down: "\f149"; -$fa-var-level-up: "\f148"; -$fa-var-life-bouy: "\f1cd"; -$fa-var-life-buoy: "\f1cd"; -$fa-var-life-ring: "\f1cd"; -$fa-var-life-saver: "\f1cd"; -$fa-var-lightbulb-o: "\f0eb"; -$fa-var-line-chart: "\f201"; -$fa-var-link: "\f0c1"; -$fa-var-linkedin: "\f0e1"; -$fa-var-linkedin-square: "\f08c"; -$fa-var-linux: "\f17c"; -$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-long-arrow-down: "\f175"; -$fa-var-long-arrow-left: "\f177"; -$fa-var-long-arrow-right: "\f178"; -$fa-var-long-arrow-up: "\f176"; -$fa-var-low-vision: "\f2a8"; -$fa-var-magic: "\f0d0"; -$fa-var-magnet: "\f076"; -$fa-var-mail-forward: "\f064"; -$fa-var-mail-reply: "\f112"; -$fa-var-mail-reply-all: "\f122"; -$fa-var-male: "\f183"; -$fa-var-map: "\f279"; -$fa-var-map-marker: "\f041"; -$fa-var-map-o: "\f278"; -$fa-var-map-pin: "\f276"; -$fa-var-map-signs: "\f277"; -$fa-var-mars: "\f222"; -$fa-var-mars-double: "\f227"; -$fa-var-mars-stroke: "\f229"; -$fa-var-mars-stroke-h: "\f22b"; -$fa-var-mars-stroke-v: "\f22a"; -$fa-var-maxcdn: "\f136"; -$fa-var-meanpath: "\f20c"; -$fa-var-medium: "\f23a"; -$fa-var-medkit: "\f0fa"; -$fa-var-meh-o: "\f11a"; -$fa-var-mercury: "\f223"; -$fa-var-microphone: "\f130"; -$fa-var-microphone-slash: "\f131"; -$fa-var-minus: "\f068"; -$fa-var-minus-circle: "\f056"; -$fa-var-minus-square: "\f146"; -$fa-var-minus-square-o: "\f147"; -$fa-var-mixcloud: "\f289"; -$fa-var-mobile: "\f10b"; -$fa-var-mobile-phone: "\f10b"; -$fa-var-modx: "\f285"; -$fa-var-money: "\f0d6"; -$fa-var-moon-o: "\f186"; -$fa-var-mortar-board: "\f19d"; -$fa-var-motorcycle: "\f21c"; -$fa-var-mouse-pointer: "\f245"; -$fa-var-music: "\f001"; -$fa-var-navicon: "\f0c9"; -$fa-var-neuter: "\f22c"; -$fa-var-newspaper-o: "\f1ea"; -$fa-var-object-group: "\f247"; -$fa-var-object-ungroup: "\f248"; -$fa-var-odnoklassniki: "\f263"; -$fa-var-odnoklassniki-square: "\f264"; -$fa-var-opencart: "\f23d"; -$fa-var-openid: "\f19b"; -$fa-var-opera: "\f26a"; -$fa-var-optin-monster: "\f23c"; -$fa-var-outdent: "\f03b"; -$fa-var-pagelines: "\f18c"; -$fa-var-paint-brush: "\f1fc"; -$fa-var-paper-plane: "\f1d8"; -$fa-var-paper-plane-o: "\f1d9"; -$fa-var-paperclip: "\f0c6"; -$fa-var-paragraph: "\f1dd"; -$fa-var-paste: "\f0ea"; -$fa-var-pause: "\f04c"; -$fa-var-pause-circle: "\f28b"; -$fa-var-pause-circle-o: "\f28c"; -$fa-var-paw: "\f1b0"; -$fa-var-paypal: "\f1ed"; -$fa-var-pencil: "\f040"; -$fa-var-pencil-square: "\f14b"; -$fa-var-pencil-square-o: "\f044"; -$fa-var-percent: "\f295"; -$fa-var-phone: "\f095"; -$fa-var-phone-square: "\f098"; -$fa-var-photo: "\f03e"; -$fa-var-picture-o: "\f03e"; -$fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f1a7"; -$fa-var-pied-piper-alt: "\f1a8"; -$fa-var-pinterest: "\f0d2"; -$fa-var-pinterest-p: "\f231"; -$fa-var-pinterest-square: "\f0d3"; -$fa-var-plane: "\f072"; -$fa-var-play: "\f04b"; -$fa-var-play-circle: "\f144"; -$fa-var-play-circle-o: "\f01d"; -$fa-var-plug: "\f1e6"; -$fa-var-plus: "\f067"; -$fa-var-plus-circle: "\f055"; -$fa-var-plus-square: "\f0fe"; -$fa-var-plus-square-o: "\f196"; -$fa-var-power-off: "\f011"; -$fa-var-print: "\f02f"; -$fa-var-product-hunt: "\f288"; -$fa-var-puzzle-piece: "\f12e"; -$fa-var-qq: "\f1d6"; -$fa-var-qrcode: "\f029"; -$fa-var-question: "\f128"; -$fa-var-question-circle: "\f059"; -$fa-var-question-circle-o: "\f29c"; -$fa-var-quote-left: "\f10d"; -$fa-var-quote-right: "\f10e"; -$fa-var-ra: "\f1d0"; -$fa-var-random: "\f074"; -$fa-var-rebel: "\f1d0"; -$fa-var-recycle: "\f1b8"; -$fa-var-reddit: "\f1a1"; -$fa-var-reddit-alien: "\f281"; -$fa-var-reddit-square: "\f1a2"; -$fa-var-refresh: "\f021"; -$fa-var-registered: "\f25d"; -$fa-var-remove: "\f00d"; -$fa-var-renren: "\f18b"; -$fa-var-reorder: "\f0c9"; -$fa-var-repeat: "\f01e"; -$fa-var-reply: "\f112"; -$fa-var-reply-all: "\f122"; -$fa-var-retweet: "\f079"; -$fa-var-rmb: "\f157"; -$fa-var-road: "\f018"; -$fa-var-rocket: "\f135"; -$fa-var-rotate-left: "\f0e2"; -$fa-var-rotate-right: "\f01e"; -$fa-var-rouble: "\f158"; -$fa-var-rss: "\f09e"; -$fa-var-rss-square: "\f143"; -$fa-var-rub: "\f158"; -$fa-var-ruble: "\f158"; -$fa-var-rupee: "\f156"; -$fa-var-safari: "\f267"; -$fa-var-save: "\f0c7"; -$fa-var-scissors: "\f0c4"; -$fa-var-scribd: "\f28a"; -$fa-var-search: "\f002"; -$fa-var-search-minus: "\f010"; -$fa-var-search-plus: "\f00e"; -$fa-var-sellsy: "\f213"; -$fa-var-send: "\f1d8"; -$fa-var-send-o: "\f1d9"; -$fa-var-server: "\f233"; -$fa-var-share: "\f064"; -$fa-var-share-alt: "\f1e0"; -$fa-var-share-alt-square: "\f1e1"; -$fa-var-share-square: "\f14d"; -$fa-var-share-square-o: "\f045"; -$fa-var-shekel: "\f20b"; -$fa-var-sheqel: "\f20b"; -$fa-var-shield: "\f132"; -$fa-var-ship: "\f21a"; -$fa-var-shirtsinbulk: "\f214"; -$fa-var-shopping-bag: "\f290"; -$fa-var-shopping-basket: "\f291"; -$fa-var-shopping-cart: "\f07a"; -$fa-var-sign-in: "\f090"; -$fa-var-sign-language: "\f2a7"; -$fa-var-sign-out: "\f08b"; -$fa-var-signal: "\f012"; -$fa-var-signing: "\f2a7"; -$fa-var-simplybuilt: "\f215"; -$fa-var-sitemap: "\f0e8"; -$fa-var-skyatlas: "\f216"; -$fa-var-skype: "\f17e"; -$fa-var-slack: "\f198"; -$fa-var-sliders: "\f1de"; -$fa-var-slideshare: "\f1e7"; -$fa-var-smile-o: "\f118"; -$fa-var-snapchat: "\f2ab"; -$fa-var-snapchat-ghost: "\f2ac"; -$fa-var-snapchat-square: "\f2ad"; -$fa-var-soccer-ball-o: "\f1e3"; -$fa-var-sort: "\f0dc"; -$fa-var-sort-alpha-asc: "\f15d"; -$fa-var-sort-alpha-desc: "\f15e"; -$fa-var-sort-amount-asc: "\f160"; -$fa-var-sort-amount-desc: "\f161"; -$fa-var-sort-asc: "\f0de"; -$fa-var-sort-desc: "\f0dd"; -$fa-var-sort-down: "\f0dd"; -$fa-var-sort-numeric-asc: "\f162"; -$fa-var-sort-numeric-desc: "\f163"; -$fa-var-sort-up: "\f0de"; -$fa-var-soundcloud: "\f1be"; -$fa-var-space-shuttle: "\f197"; -$fa-var-spinner: "\f110"; -$fa-var-spoon: "\f1b1"; -$fa-var-spotify: "\f1bc"; -$fa-var-square: "\f0c8"; -$fa-var-square-o: "\f096"; -$fa-var-stack-exchange: "\f18d"; -$fa-var-stack-overflow: "\f16c"; -$fa-var-star: "\f005"; -$fa-var-star-half: "\f089"; -$fa-var-star-half-empty: "\f123"; -$fa-var-star-half-full: "\f123"; -$fa-var-star-half-o: "\f123"; -$fa-var-star-o: "\f006"; -$fa-var-steam: "\f1b6"; -$fa-var-steam-square: "\f1b7"; -$fa-var-step-backward: "\f048"; -$fa-var-step-forward: "\f051"; -$fa-var-stethoscope: "\f0f1"; -$fa-var-sticky-note: "\f249"; -$fa-var-sticky-note-o: "\f24a"; -$fa-var-stop: "\f04d"; -$fa-var-stop-circle: "\f28d"; -$fa-var-stop-circle-o: "\f28e"; -$fa-var-street-view: "\f21d"; -$fa-var-strikethrough: "\f0cc"; -$fa-var-stumbleupon: "\f1a4"; -$fa-var-stumbleupon-circle: "\f1a3"; -$fa-var-subscript: "\f12c"; -$fa-var-subway: "\f239"; -$fa-var-suitcase: "\f0f2"; -$fa-var-sun-o: "\f185"; -$fa-var-superscript: "\f12b"; -$fa-var-support: "\f1cd"; -$fa-var-table: "\f0ce"; -$fa-var-tablet: "\f10a"; -$fa-var-tachometer: "\f0e4"; -$fa-var-tag: "\f02b"; -$fa-var-tags: "\f02c"; -$fa-var-tasks: "\f0ae"; -$fa-var-taxi: "\f1ba"; -$fa-var-television: "\f26c"; -$fa-var-tencent-weibo: "\f1d5"; -$fa-var-terminal: "\f120"; -$fa-var-text-height: "\f034"; -$fa-var-text-width: "\f035"; -$fa-var-th: "\f00a"; -$fa-var-th-large: "\f009"; -$fa-var-th-list: "\f00b"; -$fa-var-thumb-tack: "\f08d"; -$fa-var-thumbs-down: "\f165"; -$fa-var-thumbs-o-down: "\f088"; -$fa-var-thumbs-o-up: "\f087"; -$fa-var-thumbs-up: "\f164"; -$fa-var-ticket: "\f145"; -$fa-var-times: "\f00d"; -$fa-var-times-circle: "\f057"; -$fa-var-times-circle-o: "\f05c"; -$fa-var-tint: "\f043"; -$fa-var-toggle-down: "\f150"; -$fa-var-toggle-left: "\f191"; -$fa-var-toggle-off: "\f204"; -$fa-var-toggle-on: "\f205"; -$fa-var-toggle-right: "\f152"; -$fa-var-toggle-up: "\f151"; -$fa-var-trademark: "\f25c"; -$fa-var-train: "\f238"; -$fa-var-transgender: "\f224"; -$fa-var-transgender-alt: "\f225"; -$fa-var-trash: "\f1f8"; -$fa-var-trash-o: "\f014"; -$fa-var-tree: "\f1bb"; -$fa-var-trello: "\f181"; -$fa-var-tripadvisor: "\f262"; -$fa-var-trophy: "\f091"; -$fa-var-truck: "\f0d1"; -$fa-var-try: "\f195"; -$fa-var-tty: "\f1e4"; -$fa-var-tumblr: "\f173"; -$fa-var-tumblr-square: "\f174"; -$fa-var-turkish-lira: "\f195"; -$fa-var-tv: "\f26c"; -$fa-var-twitch: "\f1e8"; -$fa-var-twitter: "\f099"; -$fa-var-twitter-square: "\f081"; -$fa-var-umbrella: "\f0e9"; -$fa-var-underline: "\f0cd"; -$fa-var-undo: "\f0e2"; -$fa-var-universal-access: "\f29a"; -$fa-var-university: "\f19c"; -$fa-var-unlink: "\f127"; -$fa-var-unlock: "\f09c"; -$fa-var-unlock-alt: "\f13e"; -$fa-var-unsorted: "\f0dc"; -$fa-var-upload: "\f093"; -$fa-var-usb: "\f287"; -$fa-var-usd: "\f155"; -$fa-var-user: "\f007"; -$fa-var-user-md: "\f0f0"; -$fa-var-user-plus: "\f234"; -$fa-var-user-secret: "\f21b"; -$fa-var-user-times: "\f235"; -$fa-var-users: "\f0c0"; -$fa-var-venus: "\f221"; -$fa-var-venus-double: "\f226"; -$fa-var-venus-mars: "\f228"; -$fa-var-viacoin: "\f237"; -$fa-var-viadeo: "\f2a9"; -$fa-var-viadeo-square: "\f2aa"; -$fa-var-video-camera: "\f03d"; -$fa-var-vimeo: "\f27d"; -$fa-var-vimeo-square: "\f194"; -$fa-var-vine: "\f1ca"; -$fa-var-vk: "\f189"; -$fa-var-volume-control-phone: "\f2a0"; -$fa-var-volume-down: "\f027"; -$fa-var-volume-off: "\f026"; -$fa-var-volume-up: "\f028"; -$fa-var-warning: "\f071"; -$fa-var-wechat: "\f1d7"; -$fa-var-weibo: "\f18a"; -$fa-var-weixin: "\f1d7"; -$fa-var-whatsapp: "\f232"; -$fa-var-wheelchair: "\f193"; -$fa-var-wheelchair-alt: "\f29b"; -$fa-var-wifi: "\f1eb"; -$fa-var-wikipedia-w: "\f266"; -$fa-var-windows: "\f17a"; -$fa-var-won: "\f159"; -$fa-var-wordpress: "\f19a"; -$fa-var-wpbeginner: "\f297"; -$fa-var-wpforms: "\f298"; -$fa-var-wrench: "\f0ad"; -$fa-var-xing: "\f168"; -$fa-var-xing-square: "\f169"; -$fa-var-y-combinator: "\f23b"; -$fa-var-y-combinator-square: "\f1d4"; -$fa-var-yahoo: "\f19e"; -$fa-var-yc: "\f23b"; -$fa-var-yc-square: "\f1d4"; -$fa-var-yelp: "\f1e9"; -$fa-var-yen: "\f157"; -$fa-var-youtube: "\f167"; -$fa-var-youtube-play: "\f16a"; -$fa-var-youtube-square: "\f166"; - diff --git a/_stylesheets/vendor/magnific-popup/_magnific-popup.scss b/_stylesheets/vendor/magnific-popup/_magnific-popup.scss deleted file mode 100644 index 27b27bcc3..000000000 --- a/_stylesheets/vendor/magnific-popup/_magnific-popup.scss +++ /dev/null @@ -1,649 +0,0 @@ -/* 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/_stylesheets/vendor/magnific-popup/_settings.scss b/_stylesheets/vendor/magnific-popup/_settings.scss deleted file mode 100644 index caaca0266..000000000 --- a/_stylesheets/vendor/magnific-popup/_settings.scss +++ /dev/null @@ -1,46 +0,0 @@ -//////////////////////// -// 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/_stylesheets/vendor/susy/_su.scss b/_stylesheets/vendor/susy/_su.scss deleted file mode 100644 index 83386adba..000000000 --- a/_stylesheets/vendor/susy/_su.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Su -// == - -@import 'susy/su'; diff --git a/_stylesheets/vendor/susy/_susy.scss b/_stylesheets/vendor/susy/_susy.scss deleted file mode 100644 index 224e98ad2..000000000 --- a/_stylesheets/vendor/susy/_susy.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Susy -// ==== - -@import 'susy/language/susy'; diff --git a/_stylesheets/vendor/susy/_susyone.scss b/_stylesheets/vendor/susy/_susyone.scss deleted file mode 100644 index 5b934c688..000000000 --- a/_stylesheets/vendor/susy/_susyone.scss +++ /dev/null @@ -1,4 +0,0 @@ -// Susy -// ==== - -@import 'susy/language/susyone'; diff --git a/_stylesheets/vendor/susy/susy/_su.scss b/_stylesheets/vendor/susy/susy/_su.scss deleted file mode 100644 index a14541574..000000000 --- a/_stylesheets/vendor/susy/susy/_su.scss +++ /dev/null @@ -1,7 +0,0 @@ -// Su -// == - -@import "su/utilities"; -@import "su/settings"; -@import "su/validation"; -@import "su/grid"; diff --git a/_stylesheets/vendor/susy/susy/language/_susy.scss b/_stylesheets/vendor/susy/susy/language/_susy.scss deleted file mode 100644 index 0ee9cae2b..000000000 --- a/_stylesheets/vendor/susy/susy/language/_susy.scss +++ /dev/null @@ -1,24 +0,0 @@ -// Susy Next Syntax -// ================ - -$susy-version: 2.1; - -@import "../su"; -@import "../output/float"; - -@import "susy/settings"; -@import "susy/validation"; -@import "susy/grids"; -@import "susy/box-sizing"; -@import "susy/context"; -@import "susy/background"; -@import "susy/container"; -@import "susy/span"; -@import "susy/gutters"; -@import "susy/isolate"; -@import "susy/gallery"; -@import "susy/rows"; -@import "susy/margins"; -@import "susy/padding"; -@import "susy/bleed"; -@import "susy/breakpoint-plugin"; diff --git a/_stylesheets/vendor/susy/susy/language/_susyone.scss b/_stylesheets/vendor/susy/susy/language/_susyone.scss deleted file mode 100644 index a783d3a82..000000000 --- a/_stylesheets/vendor/susy/susy/language/_susyone.scss +++ /dev/null @@ -1,13 +0,0 @@ -// --------------------------------------------------------------------------- -// Partials - -$susy-version: 1.5; - -@import "susyone/settings"; -@import "susyone/functions"; -@import "susyone/grid"; -@import "susyone/isolation"; -@import "susyone/padding"; -@import "susyone/margin"; -@import "susyone/media"; -@import "susyone/background"; diff --git a/_stylesheets/vendor/susy/susy/language/susy/_background.scss b/_stylesheets/vendor/susy/susy/language/susy/_background.scss deleted file mode 100644 index d39dc7218..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_background.scss +++ /dev/null @@ -1,385 +0,0 @@ -// Background Grid Syntax -// ====================== - -$susy-overlay-grid-head-exists: false; - - -// Show Grid/s -// ----------- -// Show grid on any element using either background or overlay. -// - [$grid] : -@mixin show-grid( - $grid: $susy -) { - $inspect: $grid; - $_output: debug-get(output, $grid); - - @include susy-inspect(show-grid, $inspect); - @if $_output == overlay and susy-get(debug image, $grid) != hide { - @include overlay-grid($grid); - } @else { - @include background-grid($grid); - } -} - -@mixin show-grids( - $grid: $susy -) { - @include show-grid($grid); -} - -// Background Grid -// --------------- -// Show a grid background on any element. -// - [$grid] : -@mixin background-grid( - $grid: $susy -) { - $inspect : $grid; - $_output : get-background($grid); - - @if length($_output) > 0 { - $_flow: susy-get(flow, $grid); - - $_image: (); - @each $name, $layer in map-get($_output, image) { - $_direction: if($name == baseline, to bottom, to to($_flow)); - $_image: append($_image, linear-gradient($_direction, $layer), comma); - } - $_output: map-merge($_output, (image: $_image)); - - @include background-grid-output($_output...); - @include susy-inspect(background-grid, $inspect); - } -} - - -// Overlay Grid -// ------------ -// Generate an icon to trigger grid-overlays on any given elements. -// $grids... : [] [, ]* -@mixin overlay-grid ( - $grid: $susy -) { - @if not($susy-overlay-grid-head-exists) { - @at-root head { @include overlay-head($grid); } - @at-root head:before { @include overlay-trigger; } - @at-root head:hover { @include overlay-trigger-hover; } - $susy-overlay-grid-head-exists: true !global; - } - - head:hover ~ &, - head:hover ~ body & { - position: relative; - &:before { - @include grid-overlay-base; - @include background-grid($grid); - } - } -} - - -// [Private] Overlay Trigger -// ------------------------- -@mixin overlay-trigger { - content: "|||"; - display: block; - padding: 5px 10px; - font: { - family: sans-serif; - size: 16px; - weight: bold; - } -} - - -// [Private] Overlay Trigger Hover -// ------------------------------- -@mixin overlay-trigger-hover { - background: rgba(white, .5); - color: red; -} - - -// [Private] Overlay Head -// ---------------------- -// styles to create grid overlay toggle -@mixin overlay-head ( - $grid: $susy -) { - $_toggle: debug-get(toggle, $grid); - $_horz: null; - $_vert: null; - - @each $side in $_toggle { - $_horz: if($side == left or $side == right, $side, $_horz); - $_vert: if($side == top or $side == bottom, $side, $_vert); - } - - display: block; - position: fixed; - #{$_horz}: 10px; - #{$_vert}: 10px; - z-index: 999; - color: #333; - background: rgba(white, .25); -} - - -// [Private] Grid Overlay Base -// --------------------------- -// Base styles for generating a grid overlay -@mixin grid-overlay-base() { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - content: " "; - z-index: 998; -} - - -// Get Symmetrical Background -// -------------------------- -// - $grid: -@function get-background-sym( - $grid -) { - $grid : parse-grid($grid); - $_gutters : susy-get(gutters, $grid); - $_column-width : susy-get(column-width, $grid); - $_math : susy-get(math, $grid); - - $_color : debug-get(color); - $_trans : transparent; - $_light : lighten($_color, 15%); - - $_end : 1 + $_gutters; - $_after : percentage(1/$_end); - $_stops : (); - $_size : span(1 $grid wide); - - @if is-inside($grid) { - $_stops: $_color, $_light; - } @else if is-split($grid) { - $_split: $_gutters/2; - $_before: percentage($_split/$_end); - $_after: percentage((1 + $_split)/$_end); - $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after; - } @else { - $_stops: $_color, $_light $_after, $_trans $_after; - } - - @if $_math == static { - $_size: valid-column-math($_math, $_column-width) * $_end; - } - - $_output: ( - image: (columns: $_stops), - size: $_size, - ); - - @return $_output; -} - - -// Get Asymmetrical Inside -// ----------------------- -// - $grid: -@function get-asym-inside( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - @if $location == 1 { - $this-stop: append($this-stop, $_color, comma); - } @else { - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, $_color $start, comma); - } - - @if $location == susy-count($_columns) { - $this-stop: append($this-stop, $_light, comma); - } @else { - $_end: parse-span(1 at ($location + 1) $grid); - $_end: get-isolation($_end); - $this-stop: append($this-stop, $_light $_end, comma); - } - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Split -// ---------------------- -// - $grid: -@function get-asym-split( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, transparent $start, comma); - $this-stop: append($this-stop, $_color $start, comma); - - $_end: $start + span(1 at $location $grid); - $this-stop: append($this-stop, $_light $_end, comma); - $this-stop: append($this-stop, transparent $_end, comma); - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Outside -// ------------------------ -// - $grid: -@function get-asym-outside( - $grid -) { - $grid : parse-grid($grid); - $_columns : susy-get(columns, $grid); - - $_color : debug-get(color); - $_light : lighten($_color, 15%); - $_trans : transparent; - $_stops : (); - - @for $location from 1 through susy-count($_columns) { - $this-stop: (); - - @if $location == 1 { - $this-stop: append($this-stop, $_color, comma); - } @else { - $start: parse-span(1 at $location $grid); - $start: get-isolation($start); - $this-stop: append($this-stop, $_color $start, comma); - } - - @if $location == susy-count($_columns) { - $this-stop: append($this-stop, $_light, comma); - } @else { - $gutter: get-span-width(first $location $grid); - - $_end: parse-span(1 at ($location + 1) $grid); - $_end: get-isolation($_end); - - $gutter: $_light $gutter, $_trans $gutter, $_trans $_end; - $this-stop: join($this-stop, $gutter, comma); - } - - $_stops: join($_stops, $this-stop, comma); - } - - @return $_stops; -} - - -// Get Asymmetrical Background -// --------------------------- -// - $grid: -@function get-background-asym( - $grid -) { - $_stops: (); - - @if is-inside($grid) { - $_stops: get-asym-inside($grid); - } @else if is-split($grid) { - $_stops: get-asym-split($grid); - } @else { - $_stops: get-asym-outside($grid); - } - - @return (image: (columns: $_stops)); -} - - -// Get Background -// -------------- -// - $grid: -@function get-background( - $grid -) { - $grid : parse-grid($grid); - $_show : susy-get(debug image, $grid); - $_return : (); - - @if $_show and $_show != 'hide' { - $_columns: susy-get(columns, $grid); - - @if $_show != 'show-baseline' { - $_sym: is-symmetrical($_columns); - $_return: if($_sym, get-background-sym($grid), get-background-asym($grid)); - $_return: map-merge($_return, (clip: content-box)); - } - - @if $_show != 'show-columns' - and global-variable-exists(base-line-height) - and type-of($base-line-height) == 'number' - and not unitless($base-line-height) { - $_color: variable-exists('grid-background-baseline-color'); - $_color: if($_color, $grid-background-baseline-color, #000); - - $_image: map-get($_return, image); - $_size: map-get($_return, size); - $_baseline: (baseline: ($_color 1px, transparent 1px)); - $_baseline-size: 100% $base-line-height; - - $_return: map-merge($_return, ( - image: if($_image, map-merge($_image, $_baseline), $_baseline), - size: if($_size, ($_size, $_baseline-size), $_baseline-size), - )); - - @if $_show == 'show' { - $_clip: map-get($_return, clip); - $_return: map-merge($_return, (clip: join($_clip, border-box, comma))); - } - } @else if $_show == 'show-baseline' { - @warn 'Please provide a $base-line-height with the desired height and units'; - } - } - - @if map-get($_return, image) { - $_return: map-merge($_return, (flow: susy-get(flow, $grid))); - } - - @return $_return; -} - - -// Get Debug -// --------- -// Return the value of a debug setting -// - $key: -@function debug-get( - $key, - $grid: $susy -) { - $key: join(debug, $key, space); - @return susy-get($key, $grid); -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_bleed.scss b/_stylesheets/vendor/susy/susy/language/susy/_bleed.scss deleted file mode 100644 index 8ef597432..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_bleed.scss +++ /dev/null @@ -1,200 +0,0 @@ -// Bleed Syntax -// ============ - -// Bleed -// ----- -// Add negative margins, and equal positive padding to create bleed. -// - $bleed : -@mixin bleed( - $bleed: 0 gutter() -) { - $inspect : $bleed; - $output : get-bleed($bleed); - - @if susy-get(global-box-sizing) != content-box { - $output: map-merge((box-sizing: content-box), $output); - } - - @include susy-inspect(bleed, $inspect); - @include output($output); -} - - -// Bleed-x -// ------- -// Shortcut for horizontal bleed. -// - $bleed : -@mixin bleed-x( - $bleed: gutter() -) { - $bleed : parse-span($bleed); - $trbl : susy-get(span, $bleed); - - @if length($trbl) == 1 { - $bleed: map-merge($bleed, (span: 0 nth($trbl, 1))); - } @else if length($trbl) == 2 { - $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1))); - } @else { - @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.'; - } - - @include bleed($bleed); -} - - -// Bleed-y -// ------- -// Shortcut for vertical bleed. -// - $bleed : -@mixin bleed-y( - $bleed: if(function-exists(rhythm), rhythm(1), 1em) -) { - $bleed : parse-span($bleed); - $trbl : susy-get(span, $bleed); - - @if length($trbl) == 1 { - $bleed: map-merge($bleed, (span: nth($trbl, 1) 0)); - } @else if length($trbl) == 2 { - $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0)); - } @else { - @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.'; - } - - @include bleed($bleed); -} - - -// Get Bleed -// --------- -// Return bleed output values -// - $bleed: -@function get-bleed( - $bleed -) { - $bleed : map-merge((spread: wide), parse-span($bleed)); - $trbl : susy-get(span, $bleed); - $short : null; - $output : (); - - @for $i from 1 through length($trbl) { - $this: nth($trbl, $i); - $new: (); - $margin: null; - $padding: null; - $padding-x: null; - - @if $this > 0 { - $this: map-merge($bleed, (span: $this)); - $margin: span($this); - $padding: $margin; - $padding-x: $padding; - } - - @if $margin and $margin > 0 { - $margin: - $margin; - - @if is-inside($this) { - $gutter: gutter($this); - $join: if($gutter and comparable($padding, $gutter), true, false); - $padding-x: if($join and $padding > 0, $padding + $gutter, $padding); - } - } - - @if $i == 1 { - $new: ( - margin-top: $margin, - padding-top: $padding, - margin-right: $margin, - padding-right: $padding-x, - margin-bottom: $margin, - padding-bottom: $padding, - margin-left: $margin, - padding-left: $padding-x, - ); - } @else if $i == 2 { - $new: ( - margin-right: $margin, - padding-right: $padding-x, - margin-left: $margin, - padding-left: $padding-x, - ); - } @else if $i == 3 { - $new: ( - margin-bottom: $margin, - padding-bottom: $padding, - ); - } @else if $i == 4 { - $new: ( - margin-left: $margin, - padding-left: $padding-x, - ); - } - - $output: map-merge($output, $new); - } - - @each $prop, $value in $output { - $output: if($value == 0, map-merge($output, ($prop: null)), $output); - } - - @return bleed-shorthand($output); -} - -// Bleed Shorthand -// --------------- -// Convert bleed output into shorthand when possible. -// - $bleed: -@function bleed-shorthand( - $bleed -) { - $margin: (); - $padding: (); - $return: (); - - @each $key, $value in $bleed { - @if str-index($key, margin) { - $margin: map-merge($margin, ($key: $value)); - } @else if str-index($key, padding) > 0 { - $padding: map-merge($padding, ($key: $value)); - } - } - - $props: ( - margin: $margin, - padding: $padding, - ); - - @each $name, $map in $props { - $four: if(length(map-keys($map)) == 4, true, false); - $null: if(index(map-values($map), null), true, false); - - @if $four and not($null) { - $top: map-get($map, '#{$name}-top'); - $right: map-get($map, '#{$name}-right'); - $bottom: map-get($map, '#{$name}-bottom'); - $left: map-get($map, '#{$name}-left'); - - $tb: if($top == $bottom, $top, null); - $rl: if($right == $left, $right, null); - $all: if($tb == $rl, $tb, null); - - $new: if($all, $all, null); - - @if not($new) { - @if $tb and $rl { - $new: $tb $rl; - } @else if $rl { - $new: $top $rl $bottom; - } @else { - $new: $top $right $bottom $left; - } - } - - $return: map-merge($return, ($name: $new)); - } @else { - $return: map-merge($return, $map); - } - } - - @return $return; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_box-sizing.scss b/_stylesheets/vendor/susy/susy/language/susy/_box-sizing.scss deleted file mode 100644 index f551241de..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_box-sizing.scss +++ /dev/null @@ -1,47 +0,0 @@ -// Susy Box Sizing -// ================= - -// Global Box Sizing -// ----------------- -// Set a box model globally on all elements. -// - [$box]: border-box | content-box -// - [$inherit]: true | false -@mixin global-box-sizing( - $box: susy-get(global-box-sizing), - $inherit: false -) { - $inspect: $box; - - @if $inherit { - @at-root { - html { @include output((box-sizing: $box)); } - *, *:before, *:after { box-sizing: inherit; } - } - } @else { - *, *:before, *:after { @include output((box-sizing: $box)); } - } - - @include susy-inspect(global-box-sizing, $inspect); - @include update-box-model($box); -} - -// Border Box Sizing -// ----------------- -// A legacy shortcut... -// - [$inherit]: true | false -@mixin border-box-sizing( - $inherit: false -) { - @include global-box-sizing(border-box, $inherit); -} - -// Update Box Model -// ---------------- -// PRIVATE: Updates global box model setting -@mixin update-box-model( - $box -) { - @if $box != susy-get(global-box-sizing) { - @include susy-set(global-box-sizing, $box); - } -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_breakpoint-plugin.scss b/_stylesheets/vendor/susy/susy/language/susy/_breakpoint-plugin.scss deleted file mode 100644 index 30de288bf..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_breakpoint-plugin.scss +++ /dev/null @@ -1,185 +0,0 @@ -// Breakpoint Integration -// ====================== - -$susy-media: () !default; -$susy-media-fallback: false !default; - -$_susy-media-context: (); - - -// Susy Breakpoint -// --------------- -// Change grids at different media query breakpoints. -// - $query : [] | | -// - $layout : -// - $no-query : | -@mixin susy-breakpoint( - $query, - $layout: false, - $no-query: $susy-media-fallback -) { - @include susy-media-router($query, $no-query) { - @if $layout { - @include with-layout($layout) { - @content; - } - } @else { - @content; - } - } -} - - -// Susy Media -// ---------- -// - $query: [] | -// - $no-query: | -@mixin susy-media( - $query, - $no-query: $susy-media-fallback -) { - $old-context: $_susy-media-context; - $name: if(map-has-key($susy-media, $query), $query, null); - $query: susy-get-media($query); - $query: susy-parse-media($query); - - @include susy-media-context($query, $name); - - @if $no-query and type-of($no-query) != string { - @content; - } @else { - @media #{susy-render-media($query)} { - @content; - } - - @if type-of($no-query) == string { - #{$no-query} & { - @content; - } - } - } - - @include susy-media-context($old-context, $clean: true); -} - - -// Media Router -// ------------ -// Rout media arguments to the correct mixin. -@mixin susy-media-router( - $query, - $no-query: $susy-media-fallback -) { - @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) { - @include breakpoint($query, $no-query) { - @content; - } - } @else { - @include susy-media($query, $no-query) { - @content; - } - } -} - - -// Update Context -// ------------- -// Set the new media context -@mixin susy-media-context( - $query, - $name: null, - $clean: false -) { - $query: map-merge((name: $name), $query); - - @if $clean { - $_susy-media-context: $query !global; - } @else { - $_susy-media-context: map-merge($_susy-media-context, $query) !global; - } -} - - -// Media Context -// ------------- -// Return the full media context, or a single media property (e.g. min-width) -@function susy-media-context( - $property: false -) { - @if $property { - @return map-get($_susy-media-context, $property); - } @else { - @return $_susy-media-context; - } -} - - -// Get Media -// --------- -// Return a named media-query from $susy-media. -// - $name: -@function susy-get-media( - $name -) { - @if map-has-key($susy-media, $name) { - $map-value: map-get($susy-media, $name); - @if ($name == $map-value) { - $name: $map-value; - } @else { - $name: susy-get-media($map-value); - } - } - - @return $name; -} - - -// Render Media -// ------------ -// Build a media-query string from various media settings -@function susy-render-media( - $query -) { - $output: null; - @each $property, $value in $query { - $string: null; - - @if $property == media { - $string: $value; - } @else { - $string: '(#{$property}: #{$value})'; - } - - $output: if($output, '#{$output} and #{$string}', $string); - } - - @return $output; -} - - -// Parse Media -// ----------- -// Return parsed media-query settings based on shorthand -@function susy-parse-media( - $query -) { - $mq: null; - @if type-of($query) == map { - $mq: $query; - } @else if type-of($query) == number { - $mq: (min-width: $query); - } @else if type-of($query) == list and length($query) == 2 { - @if type-of(nth($query, 1)) == number { - $mq: ( - min-width: min($query...), - max-width: max($query...), - ); - } @else { - $mq: (nth($query, 1): nth($query, 2)); - } - } @else { - $mq: (media: '#{$query}'); - } - - @return $mq; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_container.scss b/_stylesheets/vendor/susy/susy/language/susy/_container.scss deleted file mode 100644 index e5f4a858a..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_container.scss +++ /dev/null @@ -1,81 +0,0 @@ -// Container Syntax -// ================ - -// Container [mixin] -// ----------------- -// Set a container element -// - [$layout] : -@mixin container( - $layout: $susy -) { - $inspect : $layout; - $layout : parse-grid($layout); - - $_width : get-container-width($layout); - $_justify : parse-container-position(susy-get(container-position, $layout)); - $_property : if(susy-get(math, $layout) == static, width, max-width); - - $_box : susy-get(box-sizing, $layout); - - @if $_box { - @include output((box-sizing: $_box)); - } - - @include susy-inspect(container, $inspect); - @include float-container($_width, $_justify, $_property); - @include show-grid($layout); -} - -// Container [function] -// -------------------- -// Return container width -// - [$layout] : -@function container( - $layout: $susy -) { - $layout: parse-grid($layout); - @return get-container-width($layout); -} - -// Get Container Width -// ------------------- -// Calculate the container width -// - [$layout]: -@function get-container-width( - $layout: $susy -) { - $layout : parse-grid($layout); - $_width : susy-get(container, $layout); - $_column-width : susy-get(column-width, $layout); - $_math : susy-get(math, $layout); - - @if not($_width) or $_width == auto { - @if valid-column-math($_math, $_column-width) { - $_columns : susy-get(columns, $layout); - $_gutters : susy-get(gutters, $layout); - $_spread : if(is-split($layout), wide, narrow); - $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width; - } @else { - $_width: 100%; - } - } - - @return $_width; -} - -// Parse Container Position -// ------------------------ -// Parse the $container-position into margin values. -// - [$justify] : left | center | right | [] -@function parse-container-position( - $justify: map-get($susy-defaults, container-position) -) { - $_return: if($justify == left, 0, auto) if($justify == right, 0, auto); - - @if not(index(left right center, $justify)) { - $_return: nth($justify, 1); - $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return); - } - - @return $_return; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_context.scss b/_stylesheets/vendor/susy/susy/language/susy/_context.scss deleted file mode 100644 index 52e12a6ce..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_context.scss +++ /dev/null @@ -1,36 +0,0 @@ -// Context Syntax -// ============== - -// Nested [function] -// ----------------- -// Return a subset grid for nested context. -// - $context : -@function nested( - $context -) { - $context : parse-span($context); - $span : susy-get(span, $context); - $location : get-location($context); - $columns : susy-get(columns, $context); - - @return susy-slice($span, $location, $columns); -} - -// Nested [mixin] -// -------------- -// Use a subset grid for a nested context -// - $context : -// - @content : -@mixin nested( - $context -) { - $inspect : $context; - $context : parse-span($context); - $old : susy-get(columns); - $susy : map-merge($susy, (columns: nested($context))) !global; - - @include susy-inspect(nested, $inspect); - @content; - - $susy : map-merge($susy, (columns: $old)) !global; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_gallery.scss b/_stylesheets/vendor/susy/susy/language/susy/_gallery.scss deleted file mode 100644 index e59b9a0c6..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_gallery.scss +++ /dev/null @@ -1,94 +0,0 @@ -// Gallery Syntax -// ============== - -// Gallery -// ------- -// Create an isolated gallery -// - $span : -// - [$selector] : child | of-type -@mixin gallery( - $span, - $selector: child -) { - $inspect : $span; - $span : parse-span($span); - $span : map-merge($span, (location: 1)); - - $n : susy-get(span, $span); - $columns : susy-get(columns, $span); - $context : susy-count($columns); - $flow : susy-get(flow, $span); - - $inside : is-inside($span); - $from : from($flow); - $line : floor($context / $n); - $symmetrical : is-symmetrical($columns); - - $output: ( - width : null, - float : from, - margin-before : null, - margin-after : null, - padding-before : null, - padding-after : null, - flow : $flow, - ); - - @if $inside { - $gutters: get-gutters($span); - $output: map-merge($output, ( - padding-before: map-get($gutters, before), - padding-after: map-get($gutters, after), - )); - } - - @if $symmetrical { - $output: map-merge($output, (width: get-span-width($span))); - } - - $box : susy-get(box-sizing, $span); - $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false); - - @include susy-inspect(gallery, $inspect); - - // Collective Output - @if $box == border-box or ($inside and not($box) and not($global-box)) { - @include output((box-sizing: border-box)); - } @else if $box == content-box { - @include output((box-sizing: content-box)); - } - - @include float-span-output($output...); - - // Individual Loop - @for $item from 1 through $line { - $nth: '#{$line}n + #{$item}'; - &:nth-#{$selector}(#{$nth}) { - // Individual Prep - $output: ( - width : if($symmetrical, null, get-span-width($span)), - float : null, - margin-before : get-isolation($span), - margin-after : -100%, - padding-before : null, - padding-after : null, - flow : $flow, - ); - - // Individual Output - @include float-span-output($output...); - - @if get-edge($span) == first { - @include break; - @include first($span); - } @else { - @include nobreak; - } - - // Individual Location Increment - $location: get-location($span) + $n; - $location: if($location > $context, 1, $location); - $span: map-merge($span, (location: $location)); - } - } -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_grids.scss b/_stylesheets/vendor/susy/susy/language/susy/_grids.scss deleted file mode 100644 index 4fa72edc5..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_grids.scss +++ /dev/null @@ -1,64 +0,0 @@ -// Grid Syntax -// =========== - - -// Layout -// ------ -// Set a new layout using a shorthand -// - $layout: -// - $clean: boolean -@mixin layout( - $layout, - $clean: false -) { - $inspect : $layout; - $susy : _get-layout($layout, $clean) !global; - - @include susy-inspect(layout, $inspect); -} - - -// Use Grid -// -------- -// Use an arbitrary layout for a section of code -// - $layout: -// - $clean: boolean -@mixin with-layout( - $layout, - $clean: false -) { - $inspect : $layout; - $old : $susy; - $susy : _get-layout($layout, $clean) !global; - - @include susy-inspect(with-layout, $inspect); - - @content; - - $susy: $old !global; -} - - -// Layout -// ------ -// Return a parsed layout map based on shorthand syntax -// - $layout: -@function layout( - $layout: $susy -) { - @return parse-grid($layout); -} - - -// Get Layout -// ---------- -// Return a new layout based on current and given settings -// - $layout: -// - $clean: boolean -@function _get-layout( - $layout, - $clean: false -) { - $layout: layout($layout); - @return if($clean, $layout, _susy-deep-merge($susy, $layout)); -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_gutters.scss b/_stylesheets/vendor/susy/susy/language/susy/_gutters.scss deleted file mode 100644 index efe7ac209..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_gutters.scss +++ /dev/null @@ -1,154 +0,0 @@ -// Gutter Syntax -// ============= - - -// Gutters -// ------- -// Set gutters on an element. -// - [$span] : -@mixin gutters( - $span: $susy -) { - $inspect : $span; - $span : parse-gutters($span); - $_gutters : get-gutters($span); - - $_output: ( - before: map-get($_gutters, before), - after: map-get($_gutters, after), - flow: susy-get(flow, $span), - ); - - @include susy-inspect(gutters, $inspect); - - @if is-inside($span) { - @include padding-output($_output...); - } @else { - @include margin-output($_output...); - } -} - -@mixin gutter( - $span: $susy -) { - @include gutters($span); -} - - -// Gutter -// ------ -// Return the width of a gutter. -// - [$span] : -@function gutter( - $span: $susy -) { - $span: parse-gutters($span); - - $_gutters: get-gutters($span); - $_gutters: map-get($_gutters, before) or map-get($_gutters, after); - - @return $_gutters; -} - -@function gutters( - $span: $susy -) { - @return gutter($span); -} - - -// Get Gutter Width -// ---------------- -// Return gutter width. -// - [$context]: -@function get-gutter-width( - $context: $susy -) { - $context : parse-gutters($context); - - $_gutters : susy-get(gutters, $context); - $_gutter : susy-get(gutter-override, $context); - - @if $_gutters and ($_gutters > 0) and not($_gutter) { - $_column-width: susy-get(column-width, $context); - $_math: gutter-math($context); - @if $_math == static { - $_gutter: $_gutters * valid-column-math($_math, $_column-width); - } @else { - $_columns : susy-get(columns, $context); - $_spread : if(is-split($context), wide, susy-get(spread, $context)); - $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread)); - } - } - - $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter); - - @return $_gutter; -} - - -// Get Gutters -// ----------- -// Return before and after gutter values. -// - [$context]: -@function get-gutters( - $context: $susy -) { - $context : parse-gutters($context); - - $_gutter-position : susy-get(gutter-position, $context); - $_gutter : get-gutter-width($context); - - $_return : (before: null, after: null); - - @if is-split($context) and $_gutter { - $_gutter: $_gutter / 2; - $_return: map-merge($_return, (before: $_gutter, after: $_gutter)); - } @else { - $_return: map-merge($_return, ($_gutter-position: $_gutter)); - } - - @return $_return; -} - - -// Is Inside -// --------- -// Returns true if gutters are inside. -// $context: -@function is-inside( - $context -) { - $_inside: inside inside-static; - $_gutter-position: susy-get(gutter-position, $context); - - @return if(index($_inside, $_gutter-position), true, false); -} - - -// Is Split -// -------- -// Returns true if gutters are split. -// $context: -@function is-split( - $context -) { - $_split: split inside inside-static; - $_gutter-position: susy-get(gutter-position, $context); - - @return if(index($_split, $_gutter-position), true, false); -} - - -// Gutter Math -// ----------- -// Return the math to use for gutter calculations -// $context: -@function gutter-math( - $context: $susy -) { - $_return : susy-get(math, $context); - $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return); - - @return $_return; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_isolate.scss b/_stylesheets/vendor/susy/susy/language/susy/_isolate.scss deleted file mode 100644 index 7ddfd7f57..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_isolate.scss +++ /dev/null @@ -1,77 +0,0 @@ -// Isolation Syntax -// ================ - - -// Isolate [Mixin] -// --------------- -// Set isolation as an override. -// - $location: -@mixin isolate( - $isolate: 1 -) { - $inspect: $isolate; - - $output: ( - push: isolate($isolate), - flow: susy-get(flow, $isolate), - ); - - @include susy-inspect(isolate, $inspect); - @include isolate-output($output...); -} - - -// Isolate [function] -// ------------------ -// Return an isolation offset width. -// - $location: -@function isolate( - $isolate: 1 -) { - $isolate: parse-span($isolate); - $isolation: susy-get(span, $isolate); - - @if $isolation and not(get-location($isolate)) { - $new: ( - span: null, - location: $isolation, - ); - $isolate: map-merge($isolate, $new); - } - - @return get-isolation($isolate); -} - - -// Get Isolation -// ------------- -// Return the isolation offset width -// - $input: -@function get-isolation( - $input -) { - $location : get-location($input); - $columns : susy-get(columns, $input); - $width : null; - - @if type-of($location) == number and not(unitless($location)) { - $width: $location; - } @else if $location { - $push: $location - 1; - @if $push > 0 { - $push: map-merge($input, ( - span: $push, - location: 1, - spread: wide, - )); - $width: get-span-width($push); - } - } - - @if susy-get(gutter-position, $input) == split - and susy-get(gutters, $input) > 0 { - $width: if($width == null, gutters($input), $width + gutters($input)); - } - - @return $width or 0; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_margins.scss b/_stylesheets/vendor/susy/susy/language/susy/_margins.scss deleted file mode 100644 index cb368399a..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_margins.scss +++ /dev/null @@ -1,94 +0,0 @@ -// Margin Syntax -// ============= - -// Pre -// --- -// Add spanning-margins before an element. -// - $span : -@mixin pre( - $span -) { - $inspect: $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $gutter : gutter($span); - $span : span($span); - $width : if($split and $gutter, $span + $gutter, $span); - - @include susy-inspect(pre, $inspect); - @include margin-output($width, null, $flow); -} - -// Post -// ---- -// Add spanning-margins after an element. -// - $span : -@mixin post( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $width : if($split, span($span) + gutter($span), span($span)); - - @include susy-inspect(post, $inspect); - @include margin-output(null, $width, $flow); -} - -// Push -// ---- -// Simple synonymn for pre. -// - $span : -@mixin push( - $span -) { - @include pre($span); -} - -// Pull -// ---- -// Add negative spanning-margins before an element. -// - $span : -@mixin pull( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $split : if(susy-get(gutter-position, $span) == split, true, false); - $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); - - @include susy-inspect(pull, $inspect); - @include margin-output($width, null, $flow); -} - -// Squish -// ------ -// Add spanning-margins before and after an element. -// - $pre : -// - [$post] : -@mixin squish( - $pre, - $post: false -) { - $inspect : ($pre, $post); - $pre : map-merge((spread: wide), parse-span($pre)); - - @if $post { - $post: map-merge((spread: wide), parse-span($post)); - } @else { - $span: susy-get(span, $pre); - @if length($span) > 1 { - $pre: map-merge($pre, (span: nth($span, 1))); - $post: map-merge($pre, (span: nth($span, 2))); - } @else { - $post: $pre; - } - } - - @include susy-inspect(squish, $inspect); - @include pre($pre); - @include post($post); -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_padding.scss b/_stylesheets/vendor/susy/susy/language/susy/_padding.scss deleted file mode 100644 index cdf75c8b0..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_padding.scss +++ /dev/null @@ -1,74 +0,0 @@ -// Padding Syntax -// ============== - -// Prefix -// ------ -// Add spanning-padding before an element. -// - $span : -@mixin prefix( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $width : span($span); - - @if is-inside($span) { - $gutter: gutter($span); - $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); - } - - @include susy-inspect(prefix, $inspect); - @include padding-output($width, null, $flow); -} - -// Suffix -// ------ -// Add spanning-padding after an element. -// - $span : -@mixin suffix( - $span -) { - $inspect : $span; - $span : map-merge((spread: wide), parse-span($span)); - $flow : susy-get(flow, $span); - $width : span($span); - - @if is-inside($span) { - $gutter: gutter($span); - $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); - } - - @include susy-inspect(suffix, $inspect); - @include padding-output(null, $width, $flow); -} - -// Pad -// --- -// Add spanning-padding before and after an element. -// - $pre : -// - [$post] : -@mixin pad( - $pre, - $post: false -) { - $inspect : ($pre, $post); - $pre : map-merge((spread: wide), parse-span($pre)); - - @if $post { - $post: map-merge((spread: wide), parse-span($post)); - } @else { - $span: susy-get(span, $pre); - @if length($span) > 1 { - $pre: map-merge($pre, (span: nth($span, 1))); - $post: map-merge($pre, (span: nth($span, 2))); - } @else { - $post: $pre; - } - } - - @include susy-inspect(pad, $inspect); - @include prefix($pre); - @include suffix($post); - -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_rows.scss b/_stylesheets/vendor/susy/susy/language/susy/_rows.scss deleted file mode 100644 index d7264313a..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_rows.scss +++ /dev/null @@ -1,138 +0,0 @@ -// Row Start & End -// =============== - -// Break -// ----- -// Apply to any element that should force a line break. -@mixin break { - @include output((clear: both)); -} - - -// NoBreak -// ------- -// Cancel the break() effect, e.g. when using media queries. -@mixin nobreak { - @include output((clear: none)); -} - - -// Full -// ---- -// - [$context]: -@mixin full( - $context: $susy -) { - $inspect : $context; - @include susy-inspect(full, $inspect); - @include span(full of parse-grid($context) break); -} - - -// First -// ----- -// - [$context]: -@mixin first( - $context: $susy -) { - $inspect : $context; - $context : parse-grid($context); - $flow : susy-get(flow, $context); - - @include susy-inspect(first, $inspect); - @if not(is-split($context)) { - @include float-first($flow); - } -} - -@mixin alpha( - $context: $susy -) { - @include first($context); -} - - -// Last -// ---- -// - [$context]: -@mixin last( - $context: $susy -) { - $inspect : $context; - $context : parse-grid($context); - - @include susy-inspect(last, $inspect); - - $output: ( - flow: susy-get(flow, $context), - last-flow: susy-get(last-flow, $context), - margin: if(is-split($context), null, 0), - ); - - @include float-last($output...); -} - -@mixin omega( - $context: $susy -) { - @include last($context); -} - - -// Get Edge -// -------- -// Calculate edge value based on location, if possible -@function get-edge( - $span -) { - $span : parse-span($span); - $edge : susy-get(edge, $span); - - @if not($edge) { - $count: susy-count(susy-get(columns, $span)); - $location: susy-get(location, $span); - $n: susy-get(span, $span); - - $number: if(type-of($location) == number, true, false); - $index: if($number and unitless($location), true, false); - - @if $n == $count { - $edge: full; - } @else if $location and $n and $index { - @if $location == 1 { - $edge: if($n == $count, full, first); - } @else if $location + $n - 1 == $count { - $edge: last; - } - } - } - - @if $edge == alpha or $edge == omega { - $edge: if($edge == alpha, first, last); - } - - @return $edge; -} - - -// Get Location -// ------------ -// Calculate location value based on edge, if possible -@function get-location( - $span -) { - $span : parse-span($span); - $location : susy-get(location, $span); - $edge : get-edge($span); - $n : susy-get(span, $span); - - @if $edge and not($location) and type-of($n) == number and unitless($n) { - @if $edge == first { - $location: 1; - } @else if $edge == last { - $location: susy-count(susy-get(columns, $span)) - $n + 1; - } - } - - @return $location -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_settings.scss b/_stylesheets/vendor/susy/susy/language/susy/_settings.scss deleted file mode 100644 index 9b5d897d5..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_settings.scss +++ /dev/null @@ -1,216 +0,0 @@ -// Susy Settings -// ============= - -// Susy Language Defaults -// ---------------------- -// - PRIVATE -@include susy-defaults(( - container: auto, - math: fluid, - output: float, - container-position: center, - gutter-position: after, - global-box-sizing: content-box, - debug: ( - image: hide, - color: rgba(#66f, .25), - output: background, - toggle: top right, - ), -)); - - -// Valid Keyword Values -// -------------------- -// - PRIVATE: DONT'T TOUCH -$susy-keywords: ( - container: auto, - math: static fluid, - output: isolate float, - container-position: left center right, - flow: ltr rtl, - gutter-position: before after split inside inside-static, - box-sizing: border-box content-box, - span: full, - edge: first alpha last omega full, - spread: narrow wide wider, - gutter-override: no-gutters no-gutter, - role: nest, - clear: break nobreak, - debug image: show hide show-columns show-baseline, - debug output: background overlay, -); - - -// Parse Susy Keywords and Maps -// ---------------------------- -@function parse-settings( - $short: $susy -) { - $_return: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - @each $item in $short { - // strings - @if type-of($item) == string { - @each $key, $value in $susy-keywords { - @if index($value, $item) { - $_key-value: append($key, $item); - $_return: _susy-deep-set($_return, $_key-value...); - } - } - // maps - } @else if type-of($item) == map { - $_return: map-merge($_return, $item); - } - } - } - - @return $_return; -} - - -// Parse Columns & Gutters -// ----------------------- -@function parse-layout( - $short -) { - $_return: (); - $_columns: (); - $_gutters: null; - - @if not(unitless(nth(nth($short, 1), 1))) { - $_gutters: nth($short, 1); - } @else { - $_columns: (columns: nth($short, 1)); - $_gutters: if(length($short) > 1, nth($short, 2), $_gutters); - } - - @if type-of($_gutters) == list and length($_gutters) > 0 { - $_gutters: ( - gutters: nth($_gutters, 2) / nth($_gutters, 1), - column-width: nth($_gutters, 1), - ); - } @else { - $_gutters: if($_gutters, (gutters: $_gutters), ()); - } - - $_return: map-merge($_return, $_columns); - $_return: map-merge($_return, $_gutters); - - @return $_return; -} - - -// Parse Grid/Context -// ------------------ -@function parse-grid( - $short: $susy -) { - $_return: parse-settings($short); - $_layout: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - @each $item in $short { - // number or list - @if type-of($item) == number or type-of($item) == list { - @if type-of($item) == list or unitless($item) { - $_layout: append($_layout, $item); - } @else { - $_return: map-merge($_return, (container: $item)); - } - } - } - - $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout); - } - - @return map-merge($_return, $_layout); -} - - -// Parse Span -// ---------- -@function parse-span( - $short, - $key: span -) { - $_return: (); - - @if type-of($short) == map { - $_return: $short; - } @else { - $_at: index($short, at); - - @if $_at { - $_loci: $_at + 1; - $_location: nth($short, $_loci); - $_return: map-merge($_return, (location: $_location)); - $short: set-nth($short, $_at, null); - $short: set-nth($short, $_loci, null); - } - - $_i: 1; - $_span: (); - - @while $_i <= length($short) { - $_this: nth($short, $_i); - - @if type-of($_this) == number { - $_span: append($_span, $_this); - $short: set-nth($short, $_i, null); - } @else if $_this == of { - $short: set-nth($short, $_i, null); - $_i: length($short) + 1; - } - - $_i: $_i + 1; - } - - @if length($_span) > 0 { - $_span: if(length($_span) == 1, nth($_span, 1), $_span); - $_return: map-merge($_return, ($key: $_span)); - } - - $_return: map-merge($_return, parse-grid($short)); - } - - @return $_return; -} - - -// Parse Gutters -// ------------- -@function parse-gutters( - $short: $susy -) { - $_gutters: parse-span($short, gutter-override); - $_span: susy-get(gutter-override, $_gutters); - - @if $_span and not(map-get($_gutters, columns)) { - $_context: (); - $_new: (); - - @each $item in $_span { - @if type-of($item) == number and unitless($item) { - $_context: append($_context, $item); - } @else { - $_new: append($_new, $item); - } - } - - $_context: parse-grid($_context); - $_new: if(length($_new) == 0, null, $_new); - $_new: if(length($_new) == 1, nth($_new, 1), $_new); - $_new: (gutter-override: if($_new != $_span, $_new, $_span)); - - $_gutters: map-merge($_gutters, $_new); - $_gutters: map-merge($_gutters, $_context); - } - - @return $_gutters; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_span.scss b/_stylesheets/vendor/susy/susy/language/susy/_span.scss deleted file mode 100644 index 86ccda918..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_span.scss +++ /dev/null @@ -1,163 +0,0 @@ -// Span Syntax -// =========== - -// Span [mixin] -// ------------ -// Set a spanning element using shorthand syntax. -// - $span : -@mixin span( - $span -) { - $inspect: $span; - $span: parse-span($span); - $output: span-math($span); - $nesting: susy-get(span, $span); - $clear: susy-get(clear, $span); - - $box: susy-get(box-sizing, $span); - $content-box: if(susy-get(global-box-sizing) != 'border-box', true, false); - $box: $box or if(is-inside($span) and $content-box, border-box, null); - - @if $clear == break { - @include break; - } @else if $clear == nobreak { - @include nobreak; - } - - @include susy-inspect(span, $inspect); - @include output((box-sizing: $box)); - @include float-span-output($output...); - - @if valid-columns($nesting, silent) { - @include nested($span) { @content; } - } @else { - @content; - } -} - -// Span [function] -// --------------- -// Return the width of a span. -// - $span : -@function span( - $span -) { - @return get-span-width($span); -} - -// Span Math -// --------- -// Get all the span results. -// - $span: -@function span-math( - $span -) { - $nest : if(susy-get(role, $span) == nest, true, false); - $split-nest : if(is-split($span) and $nest, true, false); - $edge : get-edge($span); - $location : get-location($span); - - $float : from; - $padding-before : null; - $padding-after : null; - $margin-before : null; - $margin-after : null; - - // calculate widths - $spread: index(map-values($span), spread); - $span: if($split-nest and not($spread), map-merge($span, (spread: wide)), $span); - $width: get-span-width($span); - $gutters: get-gutters($span); - - // apply gutters - @if is-inside($span) { - @if not(susy-get(role, $span)) { - $padding-before: map-get($gutters, before); - $padding-after: map-get($gutters, after); - } - } @else { - @if not($split-nest) { - $margin-before: map-get($gutters, before); - $margin-after: map-get($gutters, after); - } - } - - // special margin handling - @if susy-get(output, $span) == isolate and $location { - $margin-before: get-isolation($span); - $margin-after: -100%; - } @else if $edge { - $is-split: is-split($span); - $pos: susy-get(gutter-position, $span); - - @if $edge == last { - $float: susy-get(last-flow, $span); - } - - @if not($is-split) { - @if $edge == full or ($edge == first and $pos == before) { - $margin-before: 0; - } - @if $edge == full or ($edge == last and $pos == after) { - $margin-after: 0; - } - } - - } - - @return ( - width : $width, - float : $float, - margin-before : $margin-before, - margin-after : $margin-after, - padding-before : $padding-before, - padding-after : $padding-after, - flow : susy-get(flow, $span), - ); -} - -// Get Span Width -// -------------- -// Return span width. -// - $span: -@function get-span-width( - $span -) { - $span : parse-span($span); - - $n : susy-get(span, $span); - $location : get-location($span); - $columns : susy-get(columns, $span); - $gutters : susy-get(gutters, $span); - $spread : susy-get(spread, $span); - - $context : null; - $span-sum : null; - $width : null; - - @if $n == 'full' { - $pos: susy-get(gutter-position, $span); - $role: susy-get(role, $span); - $n: if($pos == split and $role != nest, susy-count($columns), 100%); - } - - @if type-of($n) != number { - @warn "(#{type-of($n)}) #{$n} is not a valid span."; - } @else if unitless($n) { - $context: susy-sum($columns, $gutters, if(is-split($span), wide, narrow)); - $spread: if(is-inside($span), $spread or wide, $spread); - $span-sum: susy($n, $location, $columns, $gutters, $spread); - - $_math: susy-get(math, $span); - $_column-width: susy-get(column-width, $span); - @if $_math == static { - $width: $span-sum * valid-column-math($_math, $_column-width); - } @else { - $width: percentage($span-sum / $context); - } - } @else { - $width: $n; - } - - @return $width; -} diff --git a/_stylesheets/vendor/susy/susy/language/susy/_validation.scss b/_stylesheets/vendor/susy/susy/language/susy/_validation.scss deleted file mode 100644 index a235b176a..000000000 --- a/_stylesheets/vendor/susy/susy/language/susy/_validation.scss +++ /dev/null @@ -1,16 +0,0 @@ -// Validation -// ========== - - -// Validate Column Math -// -------------------- -@function valid-column-math( - $math, - $column-width -) { - @if $math == static and not($column-width) { - @error 'Static math requires a valid column-width setting.'; - } - - @return $column-width; -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_background.scss b/_stylesheets/vendor/susy/susy/language/susyone/_background.scss deleted file mode 100644 index 38c6726b8..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_background.scss +++ /dev/null @@ -1,18 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -@import "compass/layout/grid-background"; -@import "compass/css3/background-origin"; -@import "compass/css3/background-clip"; - -// --------------------------------------------------------------------------- -// Susy Grid Background -// -// A wrapper for the compass "column-grid-background" mixin -// Uses all your settings to create a grid background for a container element. -// Note: Sub-pixel rounding can lead to several pixels of variation between browsers. -@mixin susy-grid-background(){ - @include column-grid-background($total-columns, column(), gutter(), 0); - @include background-origin(content-box); - @include background-clip(content-box); -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_functions.scss b/_stylesheets/vendor/susy/susy/language/susyone/_functions.scss deleted file mode 100644 index 681845890..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_functions.scss +++ /dev/null @@ -1,377 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -// We need access to some basic font settings for handling media-queries. -@import "compass/typography/vertical_rhythm"; - -// For now, we also need this... -$browser-default-font-size-px : 16px; -$browser-default-font-size-percent : 100%; -$browser-default-font-size-pt : 12pt; - -$rem-with-px-fallback : true !default; - -// --------------------------------------------------------------------------- -// Sass list Functions - -// Return a list with specific items removed -// -// filter($list, $target) -// - $list : The list to filter. -// - $target : An item to be removed from the list. -@function filter($list, $target) { - $clean: compact(); - @if index($list, $target) { - @each $item in $list { - $clean: if($item == $target, $clean, append($clean, $item)); - } - } @else { $clean: $list; } - @return $clean; -} - -// --------------------------------------------------------------------------- -// Don't use static output when it will break things - -// Switch element-level output to fluid, when container-width is wrong for static -// -// fix-static-misalignment([$style, $width]) -// - $style: $container-style. -// - $width: $container-width. -@function fix-static-misalignment( - $style: $container-style, - $width: $container-width -) { - @if $container-width and $container-width != container-outer-width($width: false) { - $style: fluid; - } - @return $style; -} - -// --------------------------------------------------------------------------- -// Grid Functions - -// Returns the full width of a grid based on your grid settings. -// -// $columns : The number of columns to get width for. -@function columns-width( - $columns : $total-columns -) { - @if round($columns) != $columns { - @warn "Susy works best with integer column-spans." + - "For partial-columns, you may need to finesse the math by hand using functions directly."; - } - @return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width); -} - -// Return the grid width after adding or subtracting grid padding -// -// $width : the width of the grid without padding; -// $operation : ( add | subtract ) if padding should be added or subtracted; -@function handle-grid-padding( - $width, - $operation : subtract -) { - $pad: $grid-padding*2; - - @if comparable($width, $grid-padding) { - $width: if($operation == subtract, $width - $pad, $width + $pad); - } @else { - @warn "$grid-padding must be set in units comparable to the container width."; - } - - @return $width; -} - -// Return the full outer width of a Container element. -// -// $columns : The number of columns in the Grid Layout. -@function container-outer-width( - $columns : $total-columns, - $width : $container-width -) { - $outerwidth: if($width, $width, columns-width($columns)); - - @if $width { - @if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); } - } @else { - @if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); } - } - - @return $outerwidth; -} - -// Return the percentage width of a single column in a given 'context'. -// -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function column( - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, $column-width, relative-width($column-width, $context)); -} - -// Return the percentage width of multiple 'columns' in a given 'context'. -// -// $columns : The number of columns to get relative width for. -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function columns( - $columns, - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context)); -} - -// Return the percentage width of a single gutter in a given 'context'. -// -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function gutter( - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return if($style == static, $gutter-width, relative-width($gutter-width, $context)); -} - -// Return the percentage width of a given value in a given 'context'. -// -// $width : Any given width value. -// $context : The grid context in columns, if nested. -@function relative-width( - $width, - $context : $total-columns -) { - @return percentage($width / columns-width($context)); -} - -// Return the total space occupied by multiple columns and associated gutters. -// Useful for adding padding or margins (prefix, suffix, push, pull, etc.) -// -// $columns : The number of columns to get relative space for. -// $context : The grid context in columns, if nested. -// $style : The container style to use. -@function space( - $columns, - $context : $total-columns, - $style : fix-static-misalignment() -) { - @return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0); -} - -// Accept a list including column-count and (optional) position. -// Return either the column count or the position alone. -// -// $columns : the list to split and interprate. -// $request : The value to return, either 'columns' or 'position'. -@function split-columns-value( - $columns, - $request : columns -) { - $pos : false; - $cols : false; - - @each $var in $columns { - @if (type-of($var) == 'string') { - $pos: $var; - } @else { - @if (type-of($var) == 'number') and (unitless($var)) { - $cols: $var; - } @else { - @warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.'; - } - } - } - - @if $request == 'columns' { - @return $cols; - } @else { - @if $request == 'position' { - @return $pos; - } @else { - @warn '"#{$request}" is not a valid value for $request'; - } - } -} - -// Accept nth-selector variables, and format them as a valid CSS3 selector. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -@function format-nth( - $n : last, - $selector : child -) { - @if ($n == 'last') or ($n =='first') or ($n =='only') { - $selector: '#{$n}-#{$selector}'; - } @else { - $selector: 'nth-#{$selector}(#{$n})'; - } - @return $selector; -} - -// --------------------------------------------------------------------------- -// Media Functions - -// Return an em value adjusted to match the browser default font size. -// Note: This only works if actual sizes are set relative to browser defaults. -// -// $ems : The initial value to be converted. -// $font-size : The current font-size in. -@function base-ems( - $ems, - $font-size: $base-font-size -){ - $font-size : if(unit($ems) == 'rem', $base-font-size, $font-size); - $unit : unit($font-size); - $mult : $ems / ($ems * 0 + 1); - - @if $unit == 'px' { - @return $font-size / $browser-default-font-size-px * $mult * 1em; - } - @else if $unit == '%' { - @return $font-size / $browser-default-font-size-percent * $mult * 1em; - } - @else if $unit == 'em' { - @return $font-size / 1em * $mult * 1em; - } - @else if $unit == 'pt' { - @return $font-size / $browser-default-font-size-pt * $mult * 1em; - } - @else { - @warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.'; - } -} - -// This name will be deprecated... -@function absolute-ems( - $ems, - $font-size: $base-font-size -){ - @return base-ems( $ems, $font-size); - } - -// Return a length, after any em-values have been sent through absolute-ems(). -// -// $length : The length value to be checked and adjusted if necessary. -// $font-size : The current font-size in px. -@function fix-ems( - $length, - $font-size: $base-font-size -){ - @if $length { - @if (unit($length) == 'em') or (unit($length) == 'rem') { - $length: absolute-ems($length,$font-size); - } - } - @return $length; -} - -// Sort a list of arguments into "$min $layout $max $ie" order, and return the list. -// -// $media-layout : a list of values [$min $layout $max $ie] including... -// : - one unitless number (columns in a layout) -// : - two optional lengths (min and max-width media-query breakpoints). -// : - one optional boolean or string to trigger fallback support for IE. -// $font-size : [optional] The base font-size of your layout, if you are using ems. -// : - defaults to $base-font-size -@function medialayout( - $media-layout, - $font-size: $base-font-size -) { - $media : false; - $min : false; - $layout : false; - $max : false; - $ie : false; - $has-layout : false; - - @each $val in $media-layout { - @if (type-of($val) == "number") { - @if unitless($val) { - $layout : $val; - $has-layout : true; - } @else { - @if ($has-layout) and not($media) { - $max: $val; - } @else { - @if $media { - $media: join($media,$val); - } @else { - $media: $val; - } - } - } - } @else { - $ie: $val; - } - } - @if (length($media) > 0) { - @if (length($media) == 1) { - $min: nth($media,1); - } @else { - $min: nth($media,1); - $max: nth($media,2); - @if comparable($min, $max) { - @if ($min > $max) { - $max: nth($media,1); - $min: nth($media,2); - } - } @else { - @warn "Can't compare incompatible units." + - "Using #{$min} for min-width, and #{$max} for max-width"; - } - @if (length($media) > 2) { - @warn "You can only send two lengths: a min-width and an (optional) max-width." + - "You sent #{length($media)}: #{$media}"; - } - } - } - - // media-queries must be set in ems relative to the browser default - // rather than the font-size set in CSS. - $min: fix-ems($min,$font-size); - $max: fix-ems($max,$font-size); - - @return $min $layout $max $ie; -} - -// Return the nearest layout (column-count) above a given breakpoint. -// -// $min : The min-width media-query breakpoint above which to establish a new layout. -@function get-layout( - $min -) { - $min : fix-ems($min); - $return : false; - - @if comparable($min, $column-width) { - $return : ceil(($min + $gutter-width) / ($column-width + $gutter-width)); - } @else { - @warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable."; - } - - @return $return; -} - -// Check to see if a given $media-layout list is simply the default. -// -// $media-layout : a list of values including - -// : One unitless number (columns in a layout) -// : Two optional lengths (min and max-width media-query breakpoints). -// : One optional boolean or string to trigger fallback support for IE. -@function is-default-layout( - $media-layout -) { - $media-layout : medialayout($media-layout); - $min : nth($media-layout,1); - $layout-cols : nth($media-layout,2); - $max : nth($media-layout,3); - - @if $min or $max { - @return false; - } @else { - @return if($layout-cols == $total-columns,true,false); - } -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_grid.scss b/_stylesheets/vendor/susy/susy/language/susyone/_grid.scss deleted file mode 100644 index 491c6229e..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_grid.scss +++ /dev/null @@ -1,312 +0,0 @@ -// --------------------------------------------------------------------------- -// Imports - -@import "compass/utilities/general/clearfix"; -@import "compass/css3/box-sizing"; - -// --------------------------------------------------------------------------- -// Border-Box Sizing - -// Apply the border-box sizing model to all elements -// and adjust the grid math appropriately. -@mixin border-box-sizing { - $border-box-sizing: true !global; - * { @include box-sizing(border-box); } -} - -// --------------------------------------------------------------------------- -// Container - -// Set the width of a container -// -// $columns : The number of columns in the Grid Layout. -@mixin set-container-width( - $columns : $total-columns, - $style : $container-style, - $px-vals : $pixel-values-only -){ - $width: container-outer-width($columns); - - @if $style == 'static' { - @if $px-vals == true { - width: round(convert-length($width, px)); - } @else { - @include rem(width, $width); - } - } @else { - @if $style == 'fluid' { - @if unit($width) == '%' { - @if $px-vals == true { - width: round(convert-length($width, px)); - } @else { - @include rem(width, $width); - } - } - } @else { - @if $px-vals == true { - max-width: round(convert-length($width, px)); - } @else { - @include rem(max-width, $width); - } - - @include for-legacy-browser(ie,"6") { - @if unit($width) == 'rem' { - _width: round(convert-length($width, px)); - } @else { - _width: $width; - } - } - } - } -} - -// Set the outer grid-containing element(s). -// -// $columns : The number of columns in the container. -@mixin apply-container( - $columns : $total-columns, - $px-vals : $pixel-values-only -){ - @include pie-clearfix; - @include set-container-width($columns); - @if $px-vals == true { - padding-left: round(convert-length($grid-padding, px)); - padding-right: round(convert-length($grid-padding, px)); - } @else { - @include rem(padding-left, $grid-padding); - @include rem(padding-right, $grid-padding); - } - margin: { left: auto; right: auto; } -} - -// Set one or more layouts on a grid-containing element at any number of media-query breakpoints. -// -// $media-layout-1 : [default:$total-columns] A list of values including - -// : One unitless number (representing columns in a layout) -// : Two optional lengths (representing min and max-width media-query breakpoints). -// $media-layout-2 ...-10 : [optional] Same as $media-layout-1 -@mixin container( - $media-layouts... -){ - $media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns); - - @each $ml in $media-layouts { - @if is-default-layout($ml) { - @include apply-container; - } @else { - @include at-breakpoint($ml) { - @include apply-container; - } - } - } -} - -// --------------------------------------------------------------------------- -// Columns - -// Create a grid element spanning any number of 'columns' in a grid 'context'. -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $padding : [optional] Padding applied to the inside of individual grid columns. -// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px) -// : Padding values are applied only on the horizontal axis in from-to order -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin span-columns( - $columns, - $context : $total-columns, - $padding : false, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - $pos : split-columns-value($columns,position); - $cols : split-columns-value($columns,columns); - $pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); - $pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); - - @if $padding != false { - $pad-from : nth($padding, 1); - - @if length($padding) > 1 { - $pad-to: nth($padding, 2); - } @else { - $pad-to: $pad-from; - } - - $pad-from : if($style == static, $pad-from, relative-width($pad-from, $context)); - $pad-to : if($style == static, $pad-to, relative-width($pad-to, $context)); - - padding-#{$from}: $pad-from; - padding-#{$to}: $pad-to; - } - - width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from); - - @if ($pos == 'omega') { - @include omega($from); - } @else { - float: $from; - margin-#{$to}: gutter($context, $style); - @include for-legacy-browser(ie, "6") { - display: inline; - } - } -} - -// Apply to elements spanning the last column, to account for the page edge. -// Only needed as an override. Normally 'omega' can just be called by `columns`. -// -// $from : The start-direction for your document. -@mixin omega( - $from : $from-direction -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: $omega-float; - margin-#{$to}: 0; - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: - $gutter-width; - @include for-legacy-browser(ie, "6") { - display: inline; - } - } -} - -// Shortcut to apply omega to a specific subset of elements. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -// $from : The start-direction for your document. -@mixin nth-omega( - $n : last, - $selector : child, - $from : $from-direction -) { - $from : unquote($from); - - &:#{format-nth($n,$selector)} { - @if $n == "first" { - @include omega($from); - } @else { - @include with-browser-ranges(css-sel3) { - @include omega($from); - } - } - } -} - - - -// --------------------------------------------------------------------------- -// Resets - -// Reset a '+columns' grid element to default block behavior -// -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin reset-columns( - $from: $from-direction -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: none; - width: auto; - margin-#{$to}: auto; - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: auto; - @include for-legacy-browser(ie, "6") { - display: block; - } - } -} - -// Apply to elements previously set as omega. -// This will return floats and margins back to non-omega settigns. -// -// $context : [optional] The context (columns spanned by parent). -// $from : The start-direction for your document. -// $style : The container style to use. -@mixin remove-omega( - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - $hack : opposite-position($omega-float); - - float: $from; - margin-#{$to}: gutter($context, $style); - - @include for-legacy-browser(ie, "6", "7") { - *margin-#{$hack}: auto; - } -} - -// Shortcut to apply remove-omega to a specific subset of elements. -// -// $n : [first | only | last | ] -// $selector : [child | last-child | of-type | last-of-type ] -// $context : [optional] The context (columns spanned by parent). -// $from : The start-direction for your document. -// $style : The container style to use. -@mixin remove-nth-omega( - $n : last, - $selector : child, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - - &:#{format-nth($n,$selector)} { - @if $n == "first" { - @include remove-omega($context, $from, $style); - } @else { - @include with-browser-ranges(css-sel3) { - @include remove-omega($context, $from, $style); - } - } - } -} - - -// --------------------------------------------------------------------------- -// Change Settings - -@mixin with-grid-settings( - $columns: $total-columns, - $width: $column-width, - $gutter: $gutter-width, - $padding: $grid-padding -) { - // keep the defaults around - $default-columns: $total-columns; - $default-width: $column-width; - $default-gutter: $gutter-width; - $default-padding: $grid-padding; - - // use the new settings - $total-columns: $columns !global; - $column-width: $width !global; - $gutter-width: $gutter !global; - $grid-padding: $padding !global; - - // apply to contents - @content; - - // re-instate the defaults - $total-columns: $default-columns !global; - $column-width: $default-width !global; - $gutter-width: $default-gutter !global; - $grid-padding: $default-padding !global; -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_isolation.scss b/_stylesheets/vendor/susy/susy/language/susyone/_isolation.scss deleted file mode 100644 index 2b70038bb..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_isolation.scss +++ /dev/null @@ -1,51 +0,0 @@ -// --------------------------------------------------------------------------- -// Isolation - -// Isolate the position of a grid element (use in addition to span-columns) -// -// $location : The grid column to isolate in, relative to the container; -// $context : [optional] The context (columns spanned by parent). -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin isolate( - $location, - $context: $total-columns, - $from: $from-direction, - $style: fix-static-misalignment() -) { - $to: opposite-position($from); - margin-#{$to}: -100%; - margin-#{$from}: space($location - 1, $context, $style); -} - -// Isolate a group of elements in a grid, using nth-child selectors -// -// $columns : The column-width of each item on the grid; -// $context : [optional] The context (columns spanned by parent). -// $selector : [child | of-type | last-of-type ] (default is 'child') -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -@mixin isolate-grid( - $columns, - $context: $total-columns, - $selector: 'child', - $from: $from-direction, - $style: fix-static-misalignment() -) { - $to: opposite-position($from); - $location: 1; - $line: floor($context / $columns); - - @include span-columns($columns, $context, $from: $from, $style: $style); - margin-#{$to}: -100%; - - @for $item from 1 through $line { - $nth: '#{$line}n + #{$item}'; - &:#{format-nth($nth,$selector)} { - margin-#{$from}: space($location - 1, $context, $style); - @if $location == 1 { clear: $from; } - @else { clear: none; } - - $location: $location + $columns; - @if $location > $context { $location: 1; } - } - } -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_margin.scss b/_stylesheets/vendor/susy/susy/language/susyone/_margin.scss deleted file mode 100644 index accbbe65b..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_margin.scss +++ /dev/null @@ -1,93 +0,0 @@ -// --------------------------------------------------------------------------- -// Margin Mixins - -// Apply 'columns' margin before an element to push it along the grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pre( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - margin-#{$from}: space($columns, $context, $style); -} - -// 'push' is a synonymn for 'pre' -@mixin push( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @include pre($columns, $context, $from, $style); -} - -// Apply negative 'columns' margin before an element to pull it along the grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pull( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - margin-#{$from}: 0 - space($columns, $context, $style); -} - -// Apply 'columns' margin after an element to contain it in a grid. -// -// $columns : The number of columns to span. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin post( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - margin-#{$to}: space($columns, $context, $style); -} - -// Apply 'columns' before and/or after an element to contain it on a grid. -// -// $pre : The number of columns to add as margin before. -// $post : The number of columns to add as margin after. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin squish( - $pre : false, - $post : false, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @if $pre { - @include pre($pre, $context, $from, $style) - } - @if $post { - @include post($post, $context, $from, $style) - } -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_media.scss b/_stylesheets/vendor/susy/susy/language/susyone/_media.scss deleted file mode 100644 index ca860fc93..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_media.scss +++ /dev/null @@ -1,105 +0,0 @@ -// --------------------------------------------------------------------------- -// Media Mixins - -// Create a new layout context for (@content) descendants. -// -// $layout-cols : a (unitless) number of columns to use for this layout. -@mixin layout( - $layout-cols -) { - // store default $total-columns setting for later, then change it. - $default-layout : $total-columns; - $total-columns : $layout-cols !global; - - // apply children in this new layout context. - @content; - - // return to default $total-columns setting. - $total-columns : $default-layout !global; -} - -// Nest a block of code inside a new media-query and layout context. -// -// $media-layout : a list of values [$min $layout $max $ie] including... -// : - one unitless number (columns in a layout) -// : - two optional lengths (min and max-width media-query breakpoints). -// : - one optional boolean or string to trigger fallback support for IE. -// $font-size : [optional] The base font-size of your layout, if you are using ems. -// : - defaults to $base-font-size -@mixin at-breakpoint( - $media-layout, - $font-size: $base-font-size -) { - $media-layout : medialayout($media-layout,$font-size); - $min : nth($media-layout,1); - $layout : nth($media-layout,2); - $max : nth($media-layout,3); - $ie : nth($media-layout,4); - - @if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) { - @warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work."; - } - - // We need to have either a min-width breakpoint or a layout in order to proceed. - @if $min or $layout or $max { - - // If we don't have a layout, we create one based on the min-width. - @if not($layout) { - $layout: get-layout($min); - } - - // If we still don't have a layout, we have a problem. - @if $layout { - // Set our new layout context. - @include layout($layout) { - @if $breakpoint-media-output { - @include with-browser-ranges(css-mediaqueries) { - @if $min and $max { - // Both $min and $max - @media (min-width: $min) and (max-width: $max) { - @content; - } - } @else { - @if not($min) and not($max) { - // Neither $min nor $max: - // We can create a breakpoint based on the number of columns in the layout. - $min: fix-ems(container-outer-width($width: false)); - } - @if $min { - // Min only: - @media (min-width: $min) { - @content; - } - } @else { - // Max only: - @media (max-width: $max) { - @content; - } - } - } - } - } - // Set an IE fallback - @if $ie and $breakpoint-ie-output { - @if (type-of($ie) == 'bool') { - $ie: 'lt-ie9'; - } - .#{$ie} & { - @content; - } - } - - @if $breakpoint-raw-output { - @content; - } - } - } @else { - @warn "We were unable to determine a layout for your breakpoint."; - } - - } @else { - @warn "You need to provide either a valid layout (number of columns)" - + "or a valid media-query min-width breakpoint (length)."; - } - -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_padding.scss b/_stylesheets/vendor/susy/susy/language/susyone/_padding.scss deleted file mode 100644 index 8e6394a49..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_padding.scss +++ /dev/null @@ -1,92 +0,0 @@ -// --------------------------------------------------------------------------- -// Padding Mixins - -// add empty colums as padding before an element. -// $columns : The number of columns to prefix. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin prefix( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - padding-#{$from}: space($columns, $context, $style); -} - -// add empty colums as padding after an element. -// $columns : The number of columns to suffix. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin suffix( - $columns, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - $to : opposite-position($from); - padding-#{$to}: space($columns, $context, $style); -} - -// add empty colums as padding before and after an element. -// $columns : The number of columns to pad. -// $context : [optional] The context (columns spanned by parent). -// : Context is required on any nested elements. -// : Context MUST NOT be declared on a root element. -// $from : The start direction of your layout (e.g. 'left' for ltr languages) -// $style : The container style to use. -@mixin pad( - $prefix : false, - $suffix : false, - $context : $total-columns, - $from : $from-direction, - $style : fix-static-misalignment() -) { - $from : unquote($from); - @if $prefix { - @include prefix($prefix, $context, $from, $style); - } - @if $suffix { - @include suffix($suffix, $context, $from, $style); - } -} - -// Bleed into colums with margin/padding on any side of an element. -// $width : The side of the bleed. -// : Any unit-length will be used directly. -// : Any unitless number will be used as a column-count. -// : Use "2 of 6" format to represent 2 cals in a 6-col nested context. -// $sides : One or more sides to bleed [ top | right | bottom | left | all ]. -// $style : The container style to use. -@mixin bleed( - $width: $grid-padding, - $sides: left right, - $style: fix-static-misalignment() -) { - @if $border-box-sizing { @include box-sizing(content-box) } - - @if type-of($width) == 'list' { - $width: filter($width, of); - $width: space(nth($width,1), nth($width,2), $style); - } @else if unitless($width) { - $width: space($width, $style: $style); - } - - @if $sides == 'all' { - margin: - $width; - padding: $width; - } @else { - @each $side in $sides { - margin-#{$side}: - $width; - padding-#{$side}: $width; - } - } -} diff --git a/_stylesheets/vendor/susy/susy/language/susyone/_settings.scss b/_stylesheets/vendor/susy/susy/language/susyone/_settings.scss deleted file mode 100644 index e8ff9c845..000000000 --- a/_stylesheets/vendor/susy/susy/language/susyone/_settings.scss +++ /dev/null @@ -1,60 +0,0 @@ -// --------------------------------------------------------------------------- -// Susy Settings - -// The total number of columns in the grid -$total-columns : 12 !default; - -// The width of columns and gutters. -// These must all be set with the comparable units. -$column-width : 4em !default; -$gutter-width : 1em !default; - -// Padding on the left and right of a Grid Container. -$grid-padding : $gutter-width !default; - -// --------------------------------------------------------------------------- -// Advanced Settings - -// From Direction: -// Controls for right-to-left or bi-directional sites. -$from-direction : left !default; - -// Omega Float Direction: -// The direction that +omega elements are floated by deafult. -$omega-float : opposite-position($from-direction) !default; - -// Container Width: -// Override the total width of your grid, using any length (50em, 75%, etc.) -$container-width : false !default; - -// Container Style: -// 'magic' - Static (fixed or elastic) when there's enough space, -// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM). -// 'static' - Forces the grid container to remain static at all times. -// 'fluid' - Forces the grid to remain fluid at all times. -// (this will overrule any static $container-width settings) -$container-style : magic !default; - -// Border-Box Sizing -// Adjust the grid math appropriately for box-sizing: border-box; -// Warning: This does not actually apply the new box model! -// In most cases you can ignore this setting, -// and simply apply the border-box-sizing mixin. -$border-box-sizing : false !default; - -// Pixel Values only: -// Make sure only pixel values are set for the container width. -$pixel-values-only : false !default; - -// --------------------------------------------------------------------------- -// IE Settings - -// When you are using a seperate IE stylesheet, -// you can use these settings to control the output of at-breakpoint. -// By default, at-breakpoint will output media-queries as well as -// any defined ie-fallback classes. -$breakpoint-media-output : true !default; -$breakpoint-ie-output : true !default; - -// Danger Zone! Only set as 'true' in IE-specific style sheets. -$breakpoint-raw-output : false !default; diff --git a/_stylesheets/vendor/susy/susy/output/_float.scss b/_stylesheets/vendor/susy/susy/output/_float.scss deleted file mode 100644 index 9c24051c9..000000000 --- a/_stylesheets/vendor/susy/susy/output/_float.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Float API -// ========= - -@import "shared"; - -@import "float/container"; -@import "float/span"; -@import "float/end"; -@import "float/isolate"; diff --git a/_stylesheets/vendor/susy/susy/output/_shared.scss b/_stylesheets/vendor/susy/susy/output/_shared.scss deleted file mode 100644 index dd9df4ed8..000000000 --- a/_stylesheets/vendor/susy/susy/output/_shared.scss +++ /dev/null @@ -1,15 +0,0 @@ -// Shared API -// ========== - -@import "support"; - -@import "shared/inspect"; -@import "shared/output"; -@import "shared/direction"; -@import "shared/background"; -@import "shared/container"; -@import "shared/margins"; -@import "shared/padding"; - - - diff --git a/_stylesheets/vendor/susy/susy/output/_support.scss b/_stylesheets/vendor/susy/susy/output/_support.scss deleted file mode 100644 index 53dbc9c3f..000000000 --- a/_stylesheets/vendor/susy/susy/output/_support.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Susy Browser Support -// ==================== - -@import "support/support"; -@import "support/prefix"; -@import "support/background"; -@import "support/box-sizing"; -@import "support/rem"; -@import "support/clearfix"; diff --git a/_stylesheets/vendor/susy/susy/output/float/_container.scss b/_stylesheets/vendor/susy/susy/output/float/_container.scss deleted file mode 100644 index 121eb11ae..000000000 --- a/_stylesheets/vendor/susy/susy/output/float/_container.scss +++ /dev/null @@ -1,16 +0,0 @@ -// Float Container API -// =================== - -// Float Container -// --------------- -// - [$width] : -// - [$justify] : left | center | right -// - [$math] : fluid | static -@mixin float-container( - $width, - $justify: auto auto, - $property: max-width -) { - @include susy-clearfix; - @include container-output($width, $justify, $property); -} diff --git a/_stylesheets/vendor/susy/susy/output/float/_end.scss b/_stylesheets/vendor/susy/susy/output/float/_end.scss deleted file mode 100644 index 3369997fd..000000000 --- a/_stylesheets/vendor/susy/susy/output/float/_end.scss +++ /dev/null @@ -1,40 +0,0 @@ -// Float Ends API -// ============== - -// Susy End Defaults -// ----------------- -// - PRIVATE -@include susy-defaults(( - last-flow: to, -)); - -// Float Last -// ---------- -// - [$flow] : ltr | rtl -@mixin float-last( - $flow: map-get($susy-defaults, flow), - $last-flow: map-get($susy-defaults, last-flow), - $margin: 0 -) { - $to: to($flow); - - $output: ( - float: if($last-flow == to, $to, null), - margin-#{$to}: $margin, - ); - - @include output($output); -} - -// Float First -// ----------- -// - [$flow] : ltr | rtl -@mixin float-first( - $flow: map-get($susy-defaults, flow) -) { - $output: ( - margin-#{from($flow)}: 0, - ); - - @include output($output); -} diff --git a/_stylesheets/vendor/susy/susy/output/float/_isolate.scss b/_stylesheets/vendor/susy/susy/output/float/_isolate.scss deleted file mode 100644 index 4dd3c2309..000000000 --- a/_stylesheets/vendor/susy/susy/output/float/_isolate.scss +++ /dev/null @@ -1,22 +0,0 @@ -// Float Isolation API -// =================== - -// Isolate Output -// -------------- -// - $push : -// - [$flow] : ltr | rtl -@mixin isolate-output( - $push, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - float: $from, - margin-#{$from}: $push, - margin-#{$to}: -100%, - ); - - @include output($output); -} diff --git a/_stylesheets/vendor/susy/susy/output/float/_span.scss b/_stylesheets/vendor/susy/susy/output/float/_span.scss deleted file mode 100644 index 5b732ccb2..000000000 --- a/_stylesheets/vendor/susy/susy/output/float/_span.scss +++ /dev/null @@ -1,35 +0,0 @@ -// Float Span API -// ============== - -// Float Span Output -// ----------------- -// - $width : -// - [$float] : from | to -// - [$margin-before] : -// - [$margin-after] : -// - [$padding-before] : -// - [$padding-after] : -// - [$flow] : ltr | rtl -@mixin float-span-output( - $width, - $float : from, - $margin-before : null, - $margin-after : null, - $padding-before : null, - $padding-after : null, - $flow : map-get($susy-defaults, flow) -) { - $to : to($flow); - $from : from($flow); - - $output: ( - width: $width, - float: if($float == to, $to, null) or if($float == from, $from, null), - margin-#{$from}: $margin-before, - margin-#{$to}: $margin-after, - padding-#{$from}: $padding-before, - padding-#{$to}: $padding-after, - ); - - @include output($output); -} diff --git a/_stylesheets/vendor/susy/susy/output/shared/_background.scss b/_stylesheets/vendor/susy/susy/output/shared/_background.scss deleted file mode 100644 index c230f6136..000000000 --- a/_stylesheets/vendor/susy/susy/output/shared/_background.scss +++ /dev/null @@ -1,26 +0,0 @@ -// Grid Background API -// =================== -// - Sub-pixel rounding can lead to several pixels variation between browsers. - -// Grid Background Output -// ---------------------- -// - $image: background-image -// - $size: background-size -// - $clip: background-clip -// - [$flow]: ltr | rtl -@mixin background-grid-output ( - $image, - $size: null, - $clip: null, - $flow: map-get($susy-defaults, flow) -) { - $output: ( - background-image: $image, - background-size: $size, - background-origin: $clip, - background-clip: $clip, - background-position: from($flow) top, - ); - - @include output($output); -} diff --git a/_stylesheets/vendor/susy/susy/output/shared/_container.scss b/_stylesheets/vendor/susy/susy/output/shared/_container.scss deleted file mode 100644 index 7c7d4f17e..000000000 --- a/_stylesheets/vendor/susy/susy/output/shared/_container.scss +++ /dev/null @@ -1,21 +0,0 @@ -// Shared Container API -// ==================== - -// Container Output -// ---------------- -// - [$width] : -// - [$justify] : left | center | right -// - [$math] : fluid | static -@mixin container-output( - $width, - $justify: auto auto, - $property: max-width -) { - $output: ( - #{$property}: $width or 100%, - margin-left: nth($justify, 1), - margin-right: nth($justify, 2), - ); - - @include output($output); -} diff --git a/_stylesheets/vendor/susy/susy/output/shared/_direction.scss b/_stylesheets/vendor/susy/susy/output/shared/_direction.scss deleted file mode 100644 index abb9c36fc..000000000 --- a/_stylesheets/vendor/susy/susy/output/shared/_direction.scss +++ /dev/null @@ -1,42 +0,0 @@ -// Direction Helpers -// ================= - -// Susy Flow Defaults -// ------------------ -// - PRIVATE -@include susy-defaults(( - flow: ltr, -)); - -// Get Direction -// ------------- -// Return the 'from' or 'to' direction of a ltr or rtl flow. -// - [$flow] : ltr | rtl -// - [$key] : from | to -@function get-direction( - $flow: map-get($susy-defaults, flow), - $key: from -) { - $return: if($flow == rtl, (from: right, to: left), (from: left, to: right)); - @return map-get($return, $key); -} - -// To -// -- -// Return the 'to' direction of a flow -// - [$flow] : ltr | rtl -@function to( - $flow: map-get($susy-defaults, flow) -) { - @return get-direction($flow, to); -} - -// From -// ---- -// Return the 'from' direction of a flow -// - [$flow] : ltr | rtl -@function from( - $flow: map-get($susy-defaults, flow) -) { - @return get-direction($flow, from); -} diff --git a/_stylesheets/vendor/susy/susy/output/shared/_inspect.scss b/_stylesheets/vendor/susy/susy/output/shared/_inspect.scss deleted file mode 100644 index b0af9b6d2..000000000 --- a/_stylesheets/vendor/susy/susy/output/shared/_inspect.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Debugging -// ========= - -// Susy Inspect -// ------------ -// Output arguments passed to a inspect. -// - $mixin : -// - $inspec : - -@mixin susy-inspect( - $mixin, - $inspect -) { - $show: false; - - @each $item in $inspect { - @if index($item, inspect) { - $show: true; - } - } - - @if $show or susy-get(debug inspect) { - -susy-#{$mixin}: inspect($inspect); - } -} diff --git a/_stylesheets/vendor/susy/susy/output/shared/_margins.scss b/_stylesheets/vendor/susy/susy/output/shared/_margins.scss deleted file mode 100644 index cd73e8cf1..000000000 --- a/_stylesheets/vendor/susy/susy/output/shared/_margins.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Margins API -// =========== - -// Margin Output -// ------------- -// - $before : -// - $after : -// - [$flow] : ltr | rtl -@mixin margin-output( - $before, - $after, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - margin-#{$from}: $before, - margin-#{$to}: $after, - ); - - @include output($output); -} diff --git a/_stylesheets/vendor/susy/susy/output/shared/_output.scss b/_stylesheets/vendor/susy/susy/output/shared/_output.scss deleted file mode 100644 index 20fc2d610..000000000 --- a/_stylesheets/vendor/susy/susy/output/shared/_output.scss +++ /dev/null @@ -1,14 +0,0 @@ -// Output -// ====== - -// Output -// ------ -// Output CSS with proper browser support. -// - $styles : -@mixin output( - $styles -) { - @each $prop, $val in $styles { - @include susy-support($prop, $val); - } -} diff --git a/_stylesheets/vendor/susy/susy/output/shared/_padding.scss b/_stylesheets/vendor/susy/susy/output/shared/_padding.scss deleted file mode 100644 index 5069d0cbf..000000000 --- a/_stylesheets/vendor/susy/susy/output/shared/_padding.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Padding API -// =========== - -// Padding Output -// -------------- -// - $before : -// - $after : -// - [$flow] : ltr | rtl -@mixin padding-output( - $before, - $after, - $flow: map-get($susy-defaults, flow) -) { - $to: to($flow); - $from: from($flow); - - $output: ( - padding-#{$from}: $before, - padding-#{$to}: $after, - ); - - @include output($output); -} diff --git a/_stylesheets/vendor/susy/susy/output/support/_background.scss b/_stylesheets/vendor/susy/susy/output/support/_background.scss deleted file mode 100644 index b14150285..000000000 --- a/_stylesheets/vendor/susy/susy/output/support/_background.scss +++ /dev/null @@ -1,58 +0,0 @@ -// Background Properties -// ===================== - -// Susy Background Image -// --------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-image( - $image -) { - @if susy-support(background-image, (mixin: background-image), $warn: false) { - @include background-image($image...); - } @else { - background-image: $image; - } -} - -// Susy Background Size -// --------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-size( - $size -) { - @if susy-support(background-options, (mixin: background-size)) { - @include background-size($size); - } @else { - background-size: $size; - } -} - -// Susy Background Origin -// ---------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-origin( - $origin -) { - @if susy-support(background-options, (mixin: background-origin)) { - @include background-origin($origin); - } @else { - background-origin: $origin; - } -} - -// Susy Background Clip -// -------------------- -// Check for an existing support mixin, or provide a simple fallback. -// - $image: -@mixin susy-background-clip( - $clip -) { - @if susy-support(background-options, (mixin: background-clip)) { - @include background-clip($clip); - } @else { - background-clip: $clip; - } -} diff --git a/_stylesheets/vendor/susy/susy/output/support/_box-sizing.scss b/_stylesheets/vendor/susy/susy/output/support/_box-sizing.scss deleted file mode 100644 index bf50bbc9c..000000000 --- a/_stylesheets/vendor/susy/susy/output/support/_box-sizing.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Box Sizing -// ========== - -// Box Sizing -// ---------- -// Check for an existing support mixin, or provide a simple fallback. -// - $model: -@mixin susy-box-sizing( - $model: content-box -) { - @if $model { - @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) { - @include box-sizing($model); - } @else { - $prefix: (moz, webkit, official); - @include susy-prefix(box-sizing, $model, $prefix); - } - } -} diff --git a/_stylesheets/vendor/susy/susy/output/support/_clearfix.scss b/_stylesheets/vendor/susy/susy/output/support/_clearfix.scss deleted file mode 100644 index 48c6e7b79..000000000 --- a/_stylesheets/vendor/susy/susy/output/support/_clearfix.scss +++ /dev/null @@ -1,18 +0,0 @@ -// Susy Fallback Clearfix -// ====================== - - -// Clearfix -// -------- -// Check for an existing support mixin, or provide a simple fallback. -@mixin susy-clearfix { - @if susy-support(clearfix, (mixin: clearfix)) { - @include clearfix; - } @else { - &:after { - content: " "; - display: block; - clear: both; - } - } -} diff --git a/_stylesheets/vendor/susy/susy/output/support/_prefix.scss b/_stylesheets/vendor/susy/susy/output/support/_prefix.scss deleted file mode 100644 index f4e26ecc5..000000000 --- a/_stylesheets/vendor/susy/susy/output/support/_prefix.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Susy Prefix -// =========== - -// Prefix -// ------ -// Output simple prefixed properties. -// - $prop : -// - $val : -// - [$prefix] : -@mixin susy-prefix( - $prop, - $val, - $prefix: official -) { - @each $fix in $prefix { - $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}'); - @include susy-rem($fix, $val); - } -} diff --git a/_stylesheets/vendor/susy/susy/output/support/_rem.scss b/_stylesheets/vendor/susy/susy/output/support/_rem.scss deleted file mode 100644 index 0a807f79c..000000000 --- a/_stylesheets/vendor/susy/susy/output/support/_rem.scss +++ /dev/null @@ -1,22 +0,0 @@ -// rem Support -// =========== - -// rem -// --- -// Check for an existing support mixin, or output directly. -// - $prop : -// - $val : -@mixin susy-rem( - $prop, - $val -) { - $_reqs: ( - variable: rhythm-unit rem-with-px-fallback, - mixin: rem, - ); - @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem { - @include rem($prop, $val); - } @else { - #{$prop}: $val; - } -} diff --git a/_stylesheets/vendor/susy/susy/output/support/_support.scss b/_stylesheets/vendor/susy/susy/output/support/_support.scss deleted file mode 100644 index 969911355..000000000 --- a/_stylesheets/vendor/susy/susy/output/support/_support.scss +++ /dev/null @@ -1,85 +0,0 @@ -// Browser Support -// =============== - -// Susy Support Defaults -// --------------------- -@include susy-defaults(( - use-custom: ( - clearfix: false, - background-image: true, - background-options: false, - breakpoint: true, - box-sizing: true, - rem: true, - ), -)); - - -// Susy Support [mixin] -// -------------------- -// Send property-value pairs to the proper support modules. -// - $prop : -// - $val : -@mixin susy-support( - $prop, - $val -) { - // Background Support - @if $prop == background-image { - @include susy-background-image($val); - } @else if $prop == background-size { - @include susy-background-size($val); - } @else if $prop == background-origin { - @include susy-background-origin($val); - } @else if $prop == background-clip { - @include susy-background-clip($val); - } - - // Box-Sizing Support - @else if $prop == box-sizing { - @include susy-box-sizing($val); - } - - // Rem Support - @else { - @include susy-rem($prop, $val); - } -} - - -// Susy Support [function] -// ----------------------- -// Check for support of a feature. -// - $feature : -// - e.g "rem" or "box-sizing" -// - $requirements : -// - e.g (variable: rem-with-px-fallback, mixin: rem) -// - $warn : -@function susy-support( - $feature, - $requirements: (), - $warn: true -) { - $_support: susy-get(use-custom $feature); - - @if $_support { - $_fail: false; - - @each $_type, $_req in $requirements { - @each $_i in $_req { - $_pass: call(unquote("#{$_type}-exists"), $_i); - - @if not($_pass) { - $_fail: true; - @if $warn { - @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available."; - } - } - } - } - - $_support: if($_fail, false, $_support); - } - - @return $_support; -} diff --git a/_stylesheets/vendor/susy/susy/su/_grid.scss b/_stylesheets/vendor/susy/susy/su/_grid.scss deleted file mode 100644 index 7fe2a02d0..000000000 --- a/_stylesheets/vendor/susy/susy/su/_grid.scss +++ /dev/null @@ -1,103 +0,0 @@ -// Column math -// =========== - - -// Is Symmetrical -// -------------- -// Returns true if a grid is symmetrical. -// - [$columns] : | -@function is-symmetrical( - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - @return if(type-of($columns) == number, $columns, null); -} - - -// Susy Count -// ---------- -// Find the number of columns in a given layout -// - [$columns] : | -@function susy-count( - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - @return is-symmetrical($columns) or length($columns); -} - - -// Susy Sum -// -------- -// Find the total sum of column-units in a layout -// - [$columns] : | -// - [$gutters] : -// - [$spread] : false/narrow | wide | wider -@function susy-sum( - $columns : susy-get(columns), - $gutters : susy-get(gutters), - $spread : false -) { - $columns: valid-columns($columns); - $gutters: valid-gutters($gutters); - - $spread: if($spread == wide, 0, if($spread == wider, 1, -1)); - $gutter-sum: (susy-count($columns) + $spread) * $gutters; - $column-sum: is-symmetrical($columns); - - @if not($column-sum) { - @each $column in $columns { - $column-sum: ($column-sum or 0) + $column; - } - } - - @return $column-sum + $gutter-sum; -} - - -// Susy Slice -// ---------- -// Return a subset of columns at a given location. -// - $span : -// - $location : -// - [$columns] : | -@function susy-slice( - $span, - $location, - $columns: susy-get(columns) -) { - $columns: valid-columns($columns); - $sub-columns: $span; - - @if not(is-symmetrical($columns)) { - $location: $location or 1; - $sub-columns: (); - @for $i from $location to ($location + $span) { - $sub-columns: append($sub-columns, nth($columns, $i)); - } - } - - @return $sub-columns; -} - - -// Susy -// ---- -// Find the sum of a column-span. -// - $span : -// - $location : -// - [$columns] : | -// - [$gutters] : -// - [$spread] : false/narrow | wide | wider -@function susy( - $span, - $location : false, - $columns : susy-get(columns), - $gutters : susy-get(gutters), - $spread : false -) { - $columns: valid-columns($columns); - $gutters: valid-gutters($gutters); - $span: susy-slice($span, $location, $columns); - - @return susy-sum($span, $gutters, $spread); -} diff --git a/_stylesheets/vendor/susy/susy/su/_settings.scss b/_stylesheets/vendor/susy/susy/su/_settings.scss deleted file mode 100644 index 8b439aaaf..000000000 --- a/_stylesheets/vendor/susy/susy/su/_settings.scss +++ /dev/null @@ -1,73 +0,0 @@ -// Settings -// ======== - -// Version -// ------- -$su-version: 1.1; - - -// Default Settings -// ---------------- -// PRIVATE: The basic settings -$susy-defaults: ( - columns: 4, - gutters: .25, -); - - -// User Settings -// ------------- -// - Define the $susy variable with a map of your own settings. -// - Set EITHER $column-width OR $container -// - Use $column-width for static layouts -$susy: () !default; - - -// Susy Defaults -// ------------- -// PRIVATE: Add defaults to Susy -@mixin susy-defaults( - $defaults -) { - $susy-defaults: map-merge($susy-defaults, $defaults) !global; -} - - -// Susy Set -// -------- -// Change one setting -// - $key : setting name -// - $value : setting value -@mixin susy-set( - $key-value... -) { - $susy: _susy-deep-set($susy, $key-value...) !global; -} - - -// Susy Get -// -------- -// Return one setting from a grid -// - $key : -// - $layout : -@function susy-get( - $key, - $layout: map-merge($susy-defaults, $susy) -) { - $layout: parse-grid($layout); - $_options: $layout $susy $susy-defaults; - $_break: false; - $_return: null; - - @each $opt in $_options { - @if type-of($opt) == map and not($_break) { - $_keyset: _susy-deep-has-key($opt, $key...); - @if $_keyset { - $_return: _susy-deep-get($opt, $key...); - $_break: true; - } - } - } - - @return $_return; -} diff --git a/_stylesheets/vendor/susy/susy/su/_utilities.scss b/_stylesheets/vendor/susy/susy/su/_utilities.scss deleted file mode 100644 index b737f2129..000000000 --- a/_stylesheets/vendor/susy/susy/su/_utilities.scss +++ /dev/null @@ -1,111 +0,0 @@ -// Map Functions -// ============= - - -// Truncate List -// ------------- -// - Return a list, truncated to a given length -@function _susy-truncate-list( - $list, - $length -) { - $_return: (); - - @for $i from 1 through length($list) { - $_return: if($i <= $length, append($_return, nth($list, $i)), $_return); - } - - @return $_return; -} - - -// Deep Get -// -------- -// - Return a value deep in nested maps -@function _susy-deep-get( - $map, - $keys... -) { - $_return: $map; - - @each $key in $keys { - @if type-of($_return) == map { - $_return: map-get($_return, $key); - } - } - - @return $_return; -} - - -// Deep Set -// -------- -// - Set a value deep in nested maps -@function _susy-deep-set( - $map, - $keys-value... -) { - $_value: nth($keys-value, -1); - $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1); - $_length: length($_keys); - $_return: (); - - @for $i from 1 through $_length { - $_n: 0 - $i; - $_level: _susy-truncate-list($_keys, $_length + $_n); - $_level: _susy-deep-get($map, $_level...); - $_merge: nth($_keys, $_n); - $_merge: ($_merge: $_value); - $_return: if($_level, map-merge($_level, $_merge), $_merge); - $_value: $_return; - } - - @return $_return; -} - - -// Deep Merge -// ---------- -// Return 2 objects of any depth, merged -@function _susy-deep-merge( - $map1, - $map2 -) { - - @if type-of($map1) != map or type-of($map2) != map { - $map1: $map2; - } @else { - @each $key, $value in $map2 { - $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value)); - $map1: map-merge($map1, $_new); - } - } - - @return $map1; -} - - -// Deep Has-Key -// ------------ -// - Return true if a deep key exists -@function _susy-deep-has-key( - $map, - $keys... -) { - $_return: null; - $_stop: false; - - @each $key in $keys { - @if not($_stop) { - $_return: map-has-key($map, $key); - } - - @if $_return { - $map: map-get($map, $key); - } @else { - $_stop: true; - } - } - - @return $_return; -} diff --git a/_stylesheets/vendor/susy/susy/su/_validation.scss b/_stylesheets/vendor/susy/susy/su/_validation.scss deleted file mode 100644 index 4c6ab8dac..000000000 --- a/_stylesheets/vendor/susy/susy/su/_validation.scss +++ /dev/null @@ -1,57 +0,0 @@ -// Math Validation -// =============== - - -// Valid Columns -// ------------- -// Check that a column setting is valid. -@function valid-columns( - $columns, - $silent: false -) { - $type: type-of($columns); - $return: null; - - @if $type == number and unitless($columns) { - $return: $columns; - } @else if $type == list { - $fail: null; - @each $col in $columns { - @if type-of($col) == number { - $fail: $fail or if(unitless($col), null, true); - } @else { - $fail: true; - } - } - $return: if($fail, $return, $columns); - } - - @if $return != $columns and not($silent) { - $return: null; - $warn: '$columns must be a unitless number or list of unitless numbers.'; - @warn $warn + ' Current value [#{$type}]: #{$columns}'; - } - - @return $return; -} - - -// Valid Gutters -// ------------- -// Check that a gutter setting is valid. -@function valid-gutters( - $gutters, - $silent: false -) { - $type: type-of($gutters); - $return: null; - - @if $type == number and unitless($gutters) { - $return: $gutters; - } @else if not($silent) { - $warn: '$gutters must be a unitless number.'; - @warn $warn + ' Current value [#{$type}]: #{$gutters}'; - } - - @return $return; -} diff --git a/assets/_scss/_base.scss b/assets/_scss/_base.scss index 90e6982a5..bda487338 100644 --- a/assets/_scss/_base.scss +++ b/assets/_scss/_base.scss @@ -300,4 +300,13 @@ nav { 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 { transition: $global-transition; -} \ No newline at end of file +} + +.container { + width: 960px - 32px; + max-width: 100%; + padding-right: 16px; + padding-left: 16px; + margin-right: auto; + margin-left: auto; +} diff --git a/assets/_scss/_cheat-sheets.scss b/assets/_scss/_cheat-sheets.scss new file mode 100644 index 000000000..5559e1340 --- /dev/null +++ b/assets/_scss/_cheat-sheets.scss @@ -0,0 +1,16 @@ +.cheat-sheet { + width: 50%; + padding: 0 16px; + float: left; + + @media (max-width: 768px) { + width: 100%; + float: none; + } + + svg { + width: 72px; + height: 72px; + margin: 0 auto; + } +} \ No newline at end of file diff --git a/assets/_scss/_masthead.scss b/assets/_scss/_masthead.scss index 3b654225e..b8ea7ca3f 100644 --- a/assets/_scss/_masthead.scss +++ b/assets/_scss/_masthead.scss @@ -45,6 +45,7 @@ white-space: nowrap; &--lg { + padding-left: 4em; padding-right: 2em; font-weight: 700; } diff --git a/assets/_scss/_notices.scss b/assets/_scss/_notices.scss index ec7dd2561..15fcf10c3 100644 --- a/assets/_scss/_notices.scss +++ b/assets/_scss/_notices.scss @@ -14,7 +14,7 @@ margin: 2em 0 !important; // override padding: 1em; font-family: $global-font-family; - font-size: $type-size-6 !important; + font-size: $type-size-5 !important; text-indent: initial; // override background-color: mix(#fff, $notice-color, 90%); border-radius: $border-radius; @@ -96,4 +96,4 @@ .notice--danger { @include notice($danger-color); -} \ No newline at end of file +} diff --git a/assets/_scss/_resources.scss b/assets/_scss/_resources.scss new file mode 100644 index 000000000..80a71597d --- /dev/null +++ b/assets/_scss/_resources.scss @@ -0,0 +1,81 @@ +.resources { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + + &__tile { + width: 24%; + text-align: center; + text-decoration: none; + + @media (max-width: 768px) { + width: 49%; + margin-bottom: 2%; + } + + svg { + width: 72px; + height: 72px; + + path { fill: $info-color; } + } + + h4 { font-size: 1rem; margin-top: 0.2em; } + p { font-size: 0.8rem; color: black; } + } +} + +.card { + display: block; + padding: 1em; + border: 1px solid darken(white, 10%); + box-shadow: 0 2px 4px rgba(black, 0.1); + border-radius: 4px; + transition: box-shadow 200ms ease-in-out; + + &:hover { + box-shadow: 0 4px 15px rgba(black, 0.2); + } +} + +.book { + display: flex; + justify-content: space-between; + + & + & { + margin-top: 2em; + } + + &__img { + display: block; + width: 20%; + margin-right: 1em; + flex-shrink: 0; + + img { display: block; max-width: 100%; } + } +} + +.videos { + display: flex; + flex-wrap: wrap; +} + +.video { + width: 49%; + margin-bottom: 2%; + text-decoration: none; + + img { border: 1px solid darken(white, 10%); } + + &:nth-child(odd) { + margin-right: 2%; + } + + p { color: black; } + + @media (max-width: 768px) { + margin-right: 0 !important; + width: 100%; + } +} \ No newline at end of file diff --git a/assets/_scss/main.scss b/assets/_scss/main.scss deleted file mode 100644 index c2a54a4ed..000000000 --- a/assets/_scss/main.scss +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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/font-awesome"; -@import "vendor/magnific-popup/magnific-popup"; -@import "print"; \ No newline at end of file diff --git a/assets/vendor/Snap.svg/.bower.json b/assets/_scss/vendor/Snap.svg/.bower.json similarity index 100% rename from assets/vendor/Snap.svg/.bower.json rename to assets/_scss/vendor/Snap.svg/.bower.json diff --git a/assets/vendor/Snap.svg/CONTRIBUTING b/assets/_scss/vendor/Snap.svg/CONTRIBUTING similarity index 100% rename from assets/vendor/Snap.svg/CONTRIBUTING rename to assets/_scss/vendor/Snap.svg/CONTRIBUTING diff --git a/assets/vendor/Snap.svg/Gruntfile.js b/assets/_scss/vendor/Snap.svg/Gruntfile.js similarity index 100% rename from assets/vendor/Snap.svg/Gruntfile.js rename to assets/_scss/vendor/Snap.svg/Gruntfile.js diff --git a/assets/vendor/Snap.svg/LICENSE b/assets/_scss/vendor/Snap.svg/LICENSE similarity index 100% rename from assets/vendor/Snap.svg/LICENSE rename to assets/_scss/vendor/Snap.svg/LICENSE diff --git a/assets/vendor/Snap.svg/NOTICE b/assets/_scss/vendor/Snap.svg/NOTICE similarity index 100% rename from assets/vendor/Snap.svg/NOTICE rename to assets/_scss/vendor/Snap.svg/NOTICE diff --git a/assets/vendor/Snap.svg/README.md b/assets/_scss/vendor/Snap.svg/README.md similarity index 100% rename from assets/vendor/Snap.svg/README.md rename to assets/_scss/vendor/Snap.svg/README.md diff --git a/assets/vendor/Snap.svg/bower.json b/assets/_scss/vendor/Snap.svg/bower.json similarity index 100% rename from assets/vendor/Snap.svg/bower.json rename to assets/_scss/vendor/Snap.svg/bower.json diff --git a/assets/vendor/Snap.svg/component.json b/assets/_scss/vendor/Snap.svg/component.json similarity index 100% rename from assets/vendor/Snap.svg/component.json rename to assets/_scss/vendor/Snap.svg/component.json diff --git a/assets/vendor/Snap.svg/dist/snap.svg-min.js b/assets/_scss/vendor/Snap.svg/dist/snap.svg-min.js similarity index 100% rename from assets/vendor/Snap.svg/dist/snap.svg-min.js rename to assets/_scss/vendor/Snap.svg/dist/snap.svg-min.js diff --git a/assets/vendor/Snap.svg/dist/snap.svg.js b/assets/_scss/vendor/Snap.svg/dist/snap.svg.js similarity index 100% rename from assets/vendor/Snap.svg/dist/snap.svg.js rename to assets/_scss/vendor/Snap.svg/dist/snap.svg.js diff --git a/assets/vendor/Snap.svg/doc/css/dr.css b/assets/_scss/vendor/Snap.svg/doc/css/dr.css similarity index 100% rename from assets/vendor/Snap.svg/doc/css/dr.css rename to assets/_scss/vendor/Snap.svg/doc/css/dr.css diff --git a/assets/vendor/Snap.svg/doc/css/main.css b/assets/_scss/vendor/Snap.svg/doc/css/main.css similarity index 100% rename from assets/vendor/Snap.svg/doc/css/main.css rename to assets/_scss/vendor/Snap.svg/doc/css/main.css diff --git a/assets/vendor/Snap.svg/doc/css/prism.css b/assets/_scss/vendor/Snap.svg/doc/css/prism.css similarity index 100% rename from assets/vendor/Snap.svg/doc/css/prism.css rename to assets/_scss/vendor/Snap.svg/doc/css/prism.css diff --git a/assets/vendor/Snap.svg/doc/css/topcoat-desktop-light.css b/assets/_scss/vendor/Snap.svg/doc/css/topcoat-desktop-light.css similarity index 100% rename from assets/vendor/Snap.svg/doc/css/topcoat-desktop-light.css rename to assets/_scss/vendor/Snap.svg/doc/css/topcoat-desktop-light.css diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.eot b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.eot similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.eot rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.eot diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.svg b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.svg similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.svg rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.svg diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.ttf b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.ttf similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.ttf rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.ttf diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.woff b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.woff similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.woff rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcecodepro-regular-webfont.woff diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.eot b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.eot similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.eot rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.eot diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.svg b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.svg similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.svg rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.svg diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.ttf b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.ttf similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.ttf rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.ttf diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.woff b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.woff similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.woff rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-light-webfont.woff diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.eot b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.eot similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.eot rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.eot diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.svg b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.svg similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.svg rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.svg diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.ttf b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.ttf similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.ttf rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.ttf diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.woff b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.woff similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.woff rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-regular-webfont.woff diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.eot b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.eot similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.eot rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.eot diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.svg b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.svg similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.svg rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.svg diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.ttf b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.ttf similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.ttf rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.ttf diff --git a/assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.woff b/assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.woff similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.woff rename to assets/_scss/vendor/Snap.svg/doc/fonts/sourcesanspro-semibold-webfont.woff diff --git a/assets/vendor/Snap.svg/doc/fonts/stylesheet.css b/assets/_scss/vendor/Snap.svg/doc/fonts/stylesheet.css similarity index 100% rename from assets/vendor/Snap.svg/doc/fonts/stylesheet.css rename to assets/_scss/vendor/Snap.svg/doc/fonts/stylesheet.css diff --git a/assets/vendor/Snap.svg/doc/img/search.svg b/assets/_scss/vendor/Snap.svg/doc/img/search.svg similarity index 100% rename from assets/vendor/Snap.svg/doc/img/search.svg rename to assets/_scss/vendor/Snap.svg/doc/img/search.svg diff --git a/assets/vendor/Snap.svg/doc/img/search_dark.svg b/assets/_scss/vendor/Snap.svg/doc/img/search_dark.svg similarity index 100% rename from assets/vendor/Snap.svg/doc/img/search_dark.svg rename to assets/_scss/vendor/Snap.svg/doc/img/search_dark.svg diff --git a/assets/vendor/Snap.svg/doc/js/prism.js b/assets/_scss/vendor/Snap.svg/doc/js/prism.js similarity index 100% rename from assets/vendor/Snap.svg/doc/js/prism.js rename to assets/_scss/vendor/Snap.svg/doc/js/prism.js diff --git a/assets/vendor/Snap.svg/doc/reference.html b/assets/_scss/vendor/Snap.svg/doc/reference.html similarity index 100% rename from assets/vendor/Snap.svg/doc/reference.html rename to assets/_scss/vendor/Snap.svg/doc/reference.html diff --git a/assets/vendor/Snap.svg/dr.json b/assets/_scss/vendor/Snap.svg/dr.json similarity index 100% rename from assets/vendor/Snap.svg/dr.json rename to assets/_scss/vendor/Snap.svg/dr.json diff --git a/assets/vendor/Snap.svg/history.md b/assets/_scss/vendor/Snap.svg/history.md similarity index 100% rename from assets/vendor/Snap.svg/history.md rename to assets/_scss/vendor/Snap.svg/history.md diff --git a/assets/vendor/Snap.svg/package.json b/assets/_scss/vendor/Snap.svg/package.json similarity index 100% rename from assets/vendor/Snap.svg/package.json rename to assets/_scss/vendor/Snap.svg/package.json diff --git a/assets/vendor/Snap.svg/template.dot b/assets/_scss/vendor/Snap.svg/template.dot similarity index 100% rename from assets/vendor/Snap.svg/template.dot rename to assets/_scss/vendor/Snap.svg/template.dot diff --git a/assets/vendor/Snap.svg/test.html b/assets/_scss/vendor/Snap.svg/test.html similarity index 100% rename from assets/vendor/Snap.svg/test.html rename to assets/_scss/vendor/Snap.svg/test.html diff --git a/assets/vendor/bootstrap-sass/.bower.json b/assets/_scss/vendor/bootstrap-sass/.bower.json similarity index 100% rename from assets/vendor/bootstrap-sass/.bower.json rename to assets/_scss/vendor/bootstrap-sass/.bower.json diff --git a/assets/vendor/bootstrap-sass/CNAME b/assets/_scss/vendor/bootstrap-sass/CNAME similarity index 100% rename from assets/vendor/bootstrap-sass/CNAME rename to assets/_scss/vendor/bootstrap-sass/CNAME diff --git a/assets/vendor/bootstrap-sass/CONTRIBUTING.md b/assets/_scss/vendor/bootstrap-sass/CONTRIBUTING.md similarity index 100% rename from assets/vendor/bootstrap-sass/CONTRIBUTING.md rename to assets/_scss/vendor/bootstrap-sass/CONTRIBUTING.md diff --git a/assets/vendor/bootstrap-sass/DOCS-LICENSE b/assets/_scss/vendor/bootstrap-sass/DOCS-LICENSE similarity index 100% rename from assets/vendor/bootstrap-sass/DOCS-LICENSE rename to assets/_scss/vendor/bootstrap-sass/DOCS-LICENSE diff --git a/assets/vendor/bootstrap-sass/Gemfile b/assets/_scss/vendor/bootstrap-sass/Gemfile similarity index 100% rename from assets/vendor/bootstrap-sass/Gemfile rename to assets/_scss/vendor/bootstrap-sass/Gemfile diff --git a/assets/vendor/bootstrap-sass/Gemfile.lock b/assets/_scss/vendor/bootstrap-sass/Gemfile.lock similarity index 100% rename from assets/vendor/bootstrap-sass/Gemfile.lock rename to assets/_scss/vendor/bootstrap-sass/Gemfile.lock diff --git a/assets/vendor/bootstrap-sass/Gruntfile.js b/assets/_scss/vendor/bootstrap-sass/Gruntfile.js similarity index 100% rename from assets/vendor/bootstrap-sass/Gruntfile.js rename to assets/_scss/vendor/bootstrap-sass/Gruntfile.js diff --git a/assets/vendor/bootstrap-sass/LICENSE b/assets/_scss/vendor/bootstrap-sass/LICENSE similarity index 100% rename from assets/vendor/bootstrap-sass/LICENSE rename to assets/_scss/vendor/bootstrap-sass/LICENSE diff --git a/assets/vendor/bootstrap-sass/LICENSE-MIT b/assets/_scss/vendor/bootstrap-sass/LICENSE-MIT similarity index 100% rename from assets/vendor/bootstrap-sass/LICENSE-MIT rename to assets/_scss/vendor/bootstrap-sass/LICENSE-MIT diff --git a/assets/vendor/bootstrap-sass/README.md b/assets/_scss/vendor/bootstrap-sass/README.md similarity index 100% rename from assets/vendor/bootstrap-sass/README.md rename to assets/_scss/vendor/bootstrap-sass/README.md diff --git a/assets/vendor/bootstrap-sass/Rakefile b/assets/_scss/vendor/bootstrap-sass/Rakefile similarity index 100% rename from assets/vendor/bootstrap-sass/Rakefile rename to assets/_scss/vendor/bootstrap-sass/Rakefile diff --git a/assets/vendor/bootstrap-sass/_config.yml b/assets/_scss/vendor/bootstrap-sass/_config.yml similarity index 100% rename from assets/vendor/bootstrap-sass/_config.yml rename to assets/_scss/vendor/bootstrap-sass/_config.yml diff --git a/assets/vendor/bootstrap-sass/_includes/ads.html b/assets/_scss/vendor/bootstrap-sass/_includes/ads.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/ads.html rename to assets/_scss/vendor/bootstrap-sass/_includes/ads.html diff --git a/assets/vendor/bootstrap-sass/_includes/footer.html b/assets/_scss/vendor/bootstrap-sass/_includes/footer.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/footer.html rename to assets/_scss/vendor/bootstrap-sass/_includes/footer.html diff --git a/assets/vendor/bootstrap-sass/_includes/header.html b/assets/_scss/vendor/bootstrap-sass/_includes/header.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/header.html rename to assets/_scss/vendor/bootstrap-sass/_includes/header.html diff --git a/assets/vendor/bootstrap-sass/_includes/nav-about.html b/assets/_scss/vendor/bootstrap-sass/_includes/nav-about.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/nav-about.html rename to assets/_scss/vendor/bootstrap-sass/_includes/nav-about.html diff --git a/assets/vendor/bootstrap-sass/_includes/nav-components.html b/assets/_scss/vendor/bootstrap-sass/_includes/nav-components.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/nav-components.html rename to assets/_scss/vendor/bootstrap-sass/_includes/nav-components.html diff --git a/assets/vendor/bootstrap-sass/_includes/nav-css.html b/assets/_scss/vendor/bootstrap-sass/_includes/nav-css.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/nav-css.html rename to assets/_scss/vendor/bootstrap-sass/_includes/nav-css.html diff --git a/assets/vendor/bootstrap-sass/_includes/nav-customize.html b/assets/_scss/vendor/bootstrap-sass/_includes/nav-customize.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/nav-customize.html rename to assets/_scss/vendor/bootstrap-sass/_includes/nav-customize.html diff --git a/assets/vendor/bootstrap-sass/_includes/nav-getting-started.html b/assets/_scss/vendor/bootstrap-sass/_includes/nav-getting-started.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/nav-getting-started.html rename to assets/_scss/vendor/bootstrap-sass/_includes/nav-getting-started.html diff --git a/assets/vendor/bootstrap-sass/_includes/nav-javascript.html b/assets/_scss/vendor/bootstrap-sass/_includes/nav-javascript.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/nav-javascript.html rename to assets/_scss/vendor/bootstrap-sass/_includes/nav-javascript.html diff --git a/assets/vendor/bootstrap-sass/_includes/nav-main.html b/assets/_scss/vendor/bootstrap-sass/_includes/nav-main.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/nav-main.html rename to assets/_scss/vendor/bootstrap-sass/_includes/nav-main.html diff --git a/assets/vendor/bootstrap-sass/_includes/old-bs-docs.html b/assets/_scss/vendor/bootstrap-sass/_includes/old-bs-docs.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/old-bs-docs.html rename to assets/_scss/vendor/bootstrap-sass/_includes/old-bs-docs.html diff --git a/assets/vendor/bootstrap-sass/_includes/social-buttons.html b/assets/_scss/vendor/bootstrap-sass/_includes/social-buttons.html similarity index 100% rename from assets/vendor/bootstrap-sass/_includes/social-buttons.html rename to assets/_scss/vendor/bootstrap-sass/_includes/social-buttons.html diff --git a/assets/vendor/bootstrap-sass/_layouts/default.html b/assets/_scss/vendor/bootstrap-sass/_layouts/default.html similarity index 100% rename from assets/vendor/bootstrap-sass/_layouts/default.html rename to assets/_scss/vendor/bootstrap-sass/_layouts/default.html diff --git a/assets/vendor/bootstrap-sass/_layouts/home.html b/assets/_scss/vendor/bootstrap-sass/_layouts/home.html similarity index 100% rename from assets/vendor/bootstrap-sass/_layouts/home.html rename to assets/_scss/vendor/bootstrap-sass/_layouts/home.html diff --git a/assets/vendor/bootstrap-sass/about.html b/assets/_scss/vendor/bootstrap-sass/about.html similarity index 100% rename from assets/vendor/bootstrap-sass/about.html rename to assets/_scss/vendor/bootstrap-sass/about.html diff --git a/assets/vendor/bootstrap-sass/bower.json b/assets/_scss/vendor/bootstrap-sass/bower.json similarity index 100% rename from assets/vendor/bootstrap-sass/bower.json rename to assets/_scss/vendor/bootstrap-sass/bower.json diff --git a/assets/vendor/bootstrap-sass/browserstack.json b/assets/_scss/vendor/bootstrap-sass/browserstack.json similarity index 100% rename from assets/vendor/bootstrap-sass/browserstack.json rename to assets/_scss/vendor/bootstrap-sass/browserstack.json diff --git a/assets/vendor/bootstrap-sass/components.html b/assets/_scss/vendor/bootstrap-sass/components.html similarity index 100% rename from assets/vendor/bootstrap-sass/components.html rename to assets/_scss/vendor/bootstrap-sass/components.html diff --git a/assets/vendor/bootstrap-sass/composer.json b/assets/_scss/vendor/bootstrap-sass/composer.json similarity index 100% rename from assets/vendor/bootstrap-sass/composer.json rename to assets/_scss/vendor/bootstrap-sass/composer.json diff --git a/assets/vendor/bootstrap-sass/css.html b/assets/_scss/vendor/bootstrap-sass/css.html similarity index 100% rename from assets/vendor/bootstrap-sass/css.html rename to assets/_scss/vendor/bootstrap-sass/css.html diff --git a/assets/vendor/bootstrap-sass/customize.html b/assets/_scss/vendor/bootstrap-sass/customize.html similarity index 100% rename from assets/vendor/bootstrap-sass/customize.html rename to assets/_scss/vendor/bootstrap-sass/customize.html diff --git a/assets/vendor/bootstrap-sass/dist/css/bootstrap-theme.css b/assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap-theme.css similarity index 100% rename from assets/vendor/bootstrap-sass/dist/css/bootstrap-theme.css rename to assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap-theme.css diff --git a/assets/vendor/bootstrap-sass/dist/css/bootstrap-theme.min.css b/assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap-theme.min.css similarity index 100% rename from assets/vendor/bootstrap-sass/dist/css/bootstrap-theme.min.css rename to assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap-theme.min.css diff --git a/assets/vendor/bootstrap-sass/dist/css/bootstrap.css b/assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap.css similarity index 100% rename from assets/vendor/bootstrap-sass/dist/css/bootstrap.css rename to assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap.css diff --git a/assets/vendor/bootstrap-sass/dist/css/bootstrap.min.css b/assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap.min.css similarity index 100% rename from assets/vendor/bootstrap-sass/dist/css/bootstrap.min.css rename to assets/_scss/vendor/bootstrap-sass/dist/css/bootstrap.min.css diff --git a/assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.eot b/assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.eot rename to assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.eot diff --git a/assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.svg b/assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.svg rename to assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.svg diff --git a/assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.ttf b/assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.ttf rename to assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.woff b/assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from assets/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.woff rename to assets/_scss/vendor/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.woff diff --git a/assets/vendor/bootstrap-sass/docs-assets/css/docs.css b/assets/_scss/vendor/bootstrap-sass/docs-assets/css/docs.css similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/css/docs.css rename to assets/_scss/vendor/bootstrap-sass/docs-assets/css/docs.css diff --git a/assets/vendor/bootstrap-sass/docs-assets/css/pygments-manni.css b/assets/_scss/vendor/bootstrap-sass/docs-assets/css/pygments-manni.css similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/css/pygments-manni.css rename to assets/_scss/vendor/bootstrap-sass/docs-assets/css/pygments-manni.css diff --git a/assets/vendor/bootstrap-sass/docs-assets/ico/apple-touch-icon-144-precomposed.png b/assets/_scss/vendor/bootstrap-sass/docs-assets/ico/apple-touch-icon-144-precomposed.png similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/ico/apple-touch-icon-144-precomposed.png rename to assets/_scss/vendor/bootstrap-sass/docs-assets/ico/apple-touch-icon-144-precomposed.png diff --git a/assets/vendor/bootstrap-sass/docs-assets/ico/favicon.png b/assets/_scss/vendor/bootstrap-sass/docs-assets/ico/favicon.png similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/ico/favicon.png rename to assets/_scss/vendor/bootstrap-sass/docs-assets/ico/favicon.png diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/application.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/application.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/application.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/application.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/customizer.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/customizer.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/customizer.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/customizer.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/filesaver.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/filesaver.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/filesaver.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/filesaver.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/holder.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/holder.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/holder.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/holder.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/ie8-responsive-file-warning.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/ie8-responsive-file-warning.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/ie8-responsive-file-warning.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/ie8-responsive-file-warning.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/jszip.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/jszip.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/jszip.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/jszip.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/less.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/less.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/less.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/less.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/raw-files.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/raw-files.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/raw-files.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/raw-files.js diff --git a/assets/vendor/bootstrap-sass/docs-assets/js/uglify.js b/assets/_scss/vendor/bootstrap-sass/docs-assets/js/uglify.js similarity index 100% rename from assets/vendor/bootstrap-sass/docs-assets/js/uglify.js rename to assets/_scss/vendor/bootstrap-sass/docs-assets/js/uglify.js diff --git a/assets/vendor/bootstrap-sass/examples/carousel/carousel.css b/assets/_scss/vendor/bootstrap-sass/examples/carousel/carousel.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/carousel/carousel.css rename to assets/_scss/vendor/bootstrap-sass/examples/carousel/carousel.css diff --git a/assets/vendor/bootstrap-sass/examples/carousel/index.html b/assets/_scss/vendor/bootstrap-sass/examples/carousel/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/carousel/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/carousel/index.html diff --git a/assets/vendor/bootstrap-sass/examples/grid/grid.css b/assets/_scss/vendor/bootstrap-sass/examples/grid/grid.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/grid/grid.css rename to assets/_scss/vendor/bootstrap-sass/examples/grid/grid.css diff --git a/assets/vendor/bootstrap-sass/examples/grid/index.html b/assets/_scss/vendor/bootstrap-sass/examples/grid/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/grid/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/grid/index.html diff --git a/assets/vendor/bootstrap-sass/examples/jumbotron-narrow/index.html b/assets/_scss/vendor/bootstrap-sass/examples/jumbotron-narrow/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/jumbotron-narrow/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/jumbotron-narrow/index.html diff --git a/assets/vendor/bootstrap-sass/examples/jumbotron-narrow/jumbotron-narrow.css b/assets/_scss/vendor/bootstrap-sass/examples/jumbotron-narrow/jumbotron-narrow.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/jumbotron-narrow/jumbotron-narrow.css rename to assets/_scss/vendor/bootstrap-sass/examples/jumbotron-narrow/jumbotron-narrow.css diff --git a/assets/vendor/bootstrap-sass/examples/jumbotron/index.html b/assets/_scss/vendor/bootstrap-sass/examples/jumbotron/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/jumbotron/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/jumbotron/index.html diff --git a/assets/vendor/bootstrap-sass/examples/jumbotron/jumbotron.css b/assets/_scss/vendor/bootstrap-sass/examples/jumbotron/jumbotron.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/jumbotron/jumbotron.css rename to assets/_scss/vendor/bootstrap-sass/examples/jumbotron/jumbotron.css diff --git a/assets/vendor/bootstrap-sass/examples/justified-nav/index.html b/assets/_scss/vendor/bootstrap-sass/examples/justified-nav/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/justified-nav/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/justified-nav/index.html diff --git a/assets/vendor/bootstrap-sass/examples/justified-nav/justified-nav.css b/assets/_scss/vendor/bootstrap-sass/examples/justified-nav/justified-nav.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/justified-nav/justified-nav.css rename to assets/_scss/vendor/bootstrap-sass/examples/justified-nav/justified-nav.css diff --git a/assets/vendor/bootstrap-sass/examples/navbar-fixed-top/index.html b/assets/_scss/vendor/bootstrap-sass/examples/navbar-fixed-top/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/navbar-fixed-top/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/navbar-fixed-top/index.html diff --git a/assets/vendor/bootstrap-sass/examples/navbar-fixed-top/navbar-fixed-top.css b/assets/_scss/vendor/bootstrap-sass/examples/navbar-fixed-top/navbar-fixed-top.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/navbar-fixed-top/navbar-fixed-top.css rename to assets/_scss/vendor/bootstrap-sass/examples/navbar-fixed-top/navbar-fixed-top.css diff --git a/assets/vendor/bootstrap-sass/examples/navbar-static-top/index.html b/assets/_scss/vendor/bootstrap-sass/examples/navbar-static-top/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/navbar-static-top/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/navbar-static-top/index.html diff --git a/assets/vendor/bootstrap-sass/examples/navbar-static-top/navbar-static-top.css b/assets/_scss/vendor/bootstrap-sass/examples/navbar-static-top/navbar-static-top.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/navbar-static-top/navbar-static-top.css rename to assets/_scss/vendor/bootstrap-sass/examples/navbar-static-top/navbar-static-top.css diff --git a/assets/vendor/bootstrap-sass/examples/navbar/index.html b/assets/_scss/vendor/bootstrap-sass/examples/navbar/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/navbar/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/navbar/index.html diff --git a/assets/vendor/bootstrap-sass/examples/navbar/navbar.css b/assets/_scss/vendor/bootstrap-sass/examples/navbar/navbar.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/navbar/navbar.css rename to assets/_scss/vendor/bootstrap-sass/examples/navbar/navbar.css diff --git a/assets/vendor/bootstrap-sass/examples/non-responsive/index.html b/assets/_scss/vendor/bootstrap-sass/examples/non-responsive/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/non-responsive/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/non-responsive/index.html diff --git a/assets/vendor/bootstrap-sass/examples/non-responsive/non-responsive.css b/assets/_scss/vendor/bootstrap-sass/examples/non-responsive/non-responsive.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/non-responsive/non-responsive.css rename to assets/_scss/vendor/bootstrap-sass/examples/non-responsive/non-responsive.css diff --git a/assets/vendor/bootstrap-sass/examples/offcanvas/index.html b/assets/_scss/vendor/bootstrap-sass/examples/offcanvas/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/offcanvas/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/offcanvas/index.html diff --git a/assets/vendor/bootstrap-sass/examples/offcanvas/offcanvas.css b/assets/_scss/vendor/bootstrap-sass/examples/offcanvas/offcanvas.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/offcanvas/offcanvas.css rename to assets/_scss/vendor/bootstrap-sass/examples/offcanvas/offcanvas.css diff --git a/assets/vendor/bootstrap-sass/examples/offcanvas/offcanvas.js b/assets/_scss/vendor/bootstrap-sass/examples/offcanvas/offcanvas.js similarity index 100% rename from assets/vendor/bootstrap-sass/examples/offcanvas/offcanvas.js rename to assets/_scss/vendor/bootstrap-sass/examples/offcanvas/offcanvas.js diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/carousel.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/carousel.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/carousel.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/carousel.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/grid.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/grid.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/grid.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/grid.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/jumbotron-narrow.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/jumbotron-narrow.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/jumbotron-narrow.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/jumbotron-narrow.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/jumbotron.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/jumbotron.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/jumbotron.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/jumbotron.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/justified-nav.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/justified-nav.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/justified-nav.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/justified-nav.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/navbar-fixed.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/navbar-fixed.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/navbar-fixed.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/navbar-fixed.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/navbar-static.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/navbar-static.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/navbar-static.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/navbar-static.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/navbar.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/navbar.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/navbar.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/navbar.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/non-responsive.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/non-responsive.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/non-responsive.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/non-responsive.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/offcanvas.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/offcanvas.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/offcanvas.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/offcanvas.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/sign-in.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/sign-in.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/sign-in.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/sign-in.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/starter-template.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/starter-template.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/starter-template.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/starter-template.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/sticky-footer-navbar.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/sticky-footer-navbar.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/sticky-footer-navbar.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/sticky-footer-navbar.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/sticky-footer.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/sticky-footer.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/sticky-footer.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/sticky-footer.jpg diff --git a/assets/vendor/bootstrap-sass/examples/screenshots/theme.jpg b/assets/_scss/vendor/bootstrap-sass/examples/screenshots/theme.jpg similarity index 100% rename from assets/vendor/bootstrap-sass/examples/screenshots/theme.jpg rename to assets/_scss/vendor/bootstrap-sass/examples/screenshots/theme.jpg diff --git a/assets/vendor/bootstrap-sass/examples/signin/index.html b/assets/_scss/vendor/bootstrap-sass/examples/signin/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/signin/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/signin/index.html diff --git a/assets/vendor/bootstrap-sass/examples/signin/signin.css b/assets/_scss/vendor/bootstrap-sass/examples/signin/signin.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/signin/signin.css rename to assets/_scss/vendor/bootstrap-sass/examples/signin/signin.css diff --git a/assets/vendor/bootstrap-sass/examples/starter-template/index.html b/assets/_scss/vendor/bootstrap-sass/examples/starter-template/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/starter-template/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/starter-template/index.html diff --git a/assets/vendor/bootstrap-sass/examples/starter-template/starter-template.css b/assets/_scss/vendor/bootstrap-sass/examples/starter-template/starter-template.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/starter-template/starter-template.css rename to assets/_scss/vendor/bootstrap-sass/examples/starter-template/starter-template.css diff --git a/assets/vendor/bootstrap-sass/examples/sticky-footer-navbar/index.html b/assets/_scss/vendor/bootstrap-sass/examples/sticky-footer-navbar/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/sticky-footer-navbar/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/sticky-footer-navbar/index.html diff --git a/assets/vendor/bootstrap-sass/examples/sticky-footer-navbar/sticky-footer-navbar.css b/assets/_scss/vendor/bootstrap-sass/examples/sticky-footer-navbar/sticky-footer-navbar.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/sticky-footer-navbar/sticky-footer-navbar.css rename to assets/_scss/vendor/bootstrap-sass/examples/sticky-footer-navbar/sticky-footer-navbar.css diff --git a/assets/vendor/bootstrap-sass/examples/sticky-footer/index.html b/assets/_scss/vendor/bootstrap-sass/examples/sticky-footer/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/sticky-footer/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/sticky-footer/index.html diff --git a/assets/vendor/bootstrap-sass/examples/sticky-footer/sticky-footer.css b/assets/_scss/vendor/bootstrap-sass/examples/sticky-footer/sticky-footer.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/sticky-footer/sticky-footer.css rename to assets/_scss/vendor/bootstrap-sass/examples/sticky-footer/sticky-footer.css diff --git a/assets/vendor/bootstrap-sass/examples/theme/index.html b/assets/_scss/vendor/bootstrap-sass/examples/theme/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/examples/theme/index.html rename to assets/_scss/vendor/bootstrap-sass/examples/theme/index.html diff --git a/assets/vendor/bootstrap-sass/examples/theme/theme.css b/assets/_scss/vendor/bootstrap-sass/examples/theme/theme.css similarity index 100% rename from assets/vendor/bootstrap-sass/examples/theme/theme.css rename to assets/_scss/vendor/bootstrap-sass/examples/theme/theme.css diff --git a/assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.eot b/assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.eot rename to assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.eot diff --git a/assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.svg b/assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.svg rename to assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.svg diff --git a/assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.ttf b/assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.ttf rename to assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.ttf diff --git a/assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.woff b/assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from assets/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.woff rename to assets/_scss/vendor/bootstrap-sass/fonts/glyphicons-halflings-regular.woff diff --git a/assets/vendor/bootstrap-sass/getting-started.html b/assets/_scss/vendor/bootstrap-sass/getting-started.html similarity index 100% rename from assets/vendor/bootstrap-sass/getting-started.html rename to assets/_scss/vendor/bootstrap-sass/getting-started.html diff --git a/assets/vendor/bootstrap-sass/index.html b/assets/_scss/vendor/bootstrap-sass/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/index.html rename to assets/_scss/vendor/bootstrap-sass/index.html diff --git a/assets/vendor/bootstrap-sass/javascript.html b/assets/_scss/vendor/bootstrap-sass/javascript.html similarity index 100% rename from assets/vendor/bootstrap-sass/javascript.html rename to assets/_scss/vendor/bootstrap-sass/javascript.html diff --git a/assets/vendor/bootstrap-sass/js/affix.js b/assets/_scss/vendor/bootstrap-sass/js/affix.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/affix.js rename to assets/_scss/vendor/bootstrap-sass/js/affix.js diff --git a/assets/vendor/bootstrap-sass/js/alert.js b/assets/_scss/vendor/bootstrap-sass/js/alert.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/alert.js rename to assets/_scss/vendor/bootstrap-sass/js/alert.js diff --git a/assets/vendor/bootstrap-sass/js/button.js b/assets/_scss/vendor/bootstrap-sass/js/button.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/button.js rename to assets/_scss/vendor/bootstrap-sass/js/button.js diff --git a/assets/vendor/bootstrap-sass/js/carousel.js b/assets/_scss/vendor/bootstrap-sass/js/carousel.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/carousel.js rename to assets/_scss/vendor/bootstrap-sass/js/carousel.js diff --git a/assets/vendor/bootstrap-sass/js/collapse.js b/assets/_scss/vendor/bootstrap-sass/js/collapse.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/collapse.js rename to assets/_scss/vendor/bootstrap-sass/js/collapse.js diff --git a/assets/vendor/bootstrap-sass/js/dropdown.js b/assets/_scss/vendor/bootstrap-sass/js/dropdown.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/dropdown.js rename to assets/_scss/vendor/bootstrap-sass/js/dropdown.js diff --git a/assets/vendor/bootstrap-sass/js/modal.js b/assets/_scss/vendor/bootstrap-sass/js/modal.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/modal.js rename to assets/_scss/vendor/bootstrap-sass/js/modal.js diff --git a/assets/vendor/bootstrap-sass/js/popover.js b/assets/_scss/vendor/bootstrap-sass/js/popover.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/popover.js rename to assets/_scss/vendor/bootstrap-sass/js/popover.js diff --git a/assets/vendor/bootstrap-sass/js/scrollspy.js b/assets/_scss/vendor/bootstrap-sass/js/scrollspy.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/scrollspy.js rename to assets/_scss/vendor/bootstrap-sass/js/scrollspy.js diff --git a/assets/vendor/bootstrap-sass/js/tab.js b/assets/_scss/vendor/bootstrap-sass/js/tab.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tab.js rename to assets/_scss/vendor/bootstrap-sass/js/tab.js diff --git a/assets/vendor/bootstrap-sass/js/tests/index.html b/assets/_scss/vendor/bootstrap-sass/js/tests/index.html similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/index.html rename to assets/_scss/vendor/bootstrap-sass/js/tests/index.html diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/affix.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/affix.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/affix.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/affix.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/alert.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/alert.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/alert.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/alert.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/button.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/button.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/button.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/button.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/carousel.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/carousel.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/carousel.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/carousel.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/collapse.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/collapse.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/collapse.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/collapse.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/dropdown.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/dropdown.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/dropdown.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/dropdown.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/modal.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/modal.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/modal.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/modal.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/phantom.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/phantom.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/phantom.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/phantom.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/popover.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/popover.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/popover.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/popover.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/scrollspy.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/scrollspy.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/scrollspy.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/scrollspy.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/tab.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/tab.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/tab.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/tab.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/tooltip.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/tooltip.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/tooltip.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/tooltip.js diff --git a/assets/vendor/bootstrap-sass/js/tests/unit/transition.js b/assets/_scss/vendor/bootstrap-sass/js/tests/unit/transition.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/unit/transition.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/unit/transition.js diff --git a/assets/vendor/bootstrap-sass/js/tests/vendor/jquery.js b/assets/_scss/vendor/bootstrap-sass/js/tests/vendor/jquery.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/vendor/jquery.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/vendor/jquery.js diff --git a/assets/vendor/bootstrap-sass/js/tests/vendor/qunit.css b/assets/_scss/vendor/bootstrap-sass/js/tests/vendor/qunit.css similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/vendor/qunit.css rename to assets/_scss/vendor/bootstrap-sass/js/tests/vendor/qunit.css diff --git a/assets/vendor/bootstrap-sass/js/tests/vendor/qunit.js b/assets/_scss/vendor/bootstrap-sass/js/tests/vendor/qunit.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tests/vendor/qunit.js rename to assets/_scss/vendor/bootstrap-sass/js/tests/vendor/qunit.js diff --git a/assets/vendor/bootstrap-sass/js/tooltip.js b/assets/_scss/vendor/bootstrap-sass/js/tooltip.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/tooltip.js rename to assets/_scss/vendor/bootstrap-sass/js/tooltip.js diff --git a/assets/vendor/bootstrap-sass/js/transition.js b/assets/_scss/vendor/bootstrap-sass/js/transition.js similarity index 100% rename from assets/vendor/bootstrap-sass/js/transition.js rename to assets/_scss/vendor/bootstrap-sass/js/transition.js diff --git a/assets/vendor/bootstrap-sass/lib/_alerts.scss b/assets/_scss/vendor/bootstrap-sass/lib/_alerts.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_alerts.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_alerts.scss diff --git a/assets/vendor/bootstrap-sass/lib/_badges.scss b/assets/_scss/vendor/bootstrap-sass/lib/_badges.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_badges.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_badges.scss diff --git a/assets/vendor/bootstrap-sass/lib/_breadcrumbs.scss b/assets/_scss/vendor/bootstrap-sass/lib/_breadcrumbs.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_breadcrumbs.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_breadcrumbs.scss diff --git a/assets/vendor/bootstrap-sass/lib/_button-groups.scss b/assets/_scss/vendor/bootstrap-sass/lib/_button-groups.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_button-groups.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_button-groups.scss diff --git a/assets/vendor/bootstrap-sass/lib/_buttons.scss b/assets/_scss/vendor/bootstrap-sass/lib/_buttons.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_buttons.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_buttons.scss diff --git a/assets/vendor/bootstrap-sass/lib/_carousel.scss b/assets/_scss/vendor/bootstrap-sass/lib/_carousel.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_carousel.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_carousel.scss diff --git a/assets/vendor/bootstrap-sass/lib/_close.scss b/assets/_scss/vendor/bootstrap-sass/lib/_close.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_close.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_close.scss diff --git a/assets/vendor/bootstrap-sass/lib/_code.scss b/assets/_scss/vendor/bootstrap-sass/lib/_code.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_code.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_code.scss diff --git a/assets/vendor/bootstrap-sass/lib/_component-animations.scss b/assets/_scss/vendor/bootstrap-sass/lib/_component-animations.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_component-animations.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_component-animations.scss diff --git a/assets/vendor/bootstrap-sass/lib/_dropdowns.scss b/assets/_scss/vendor/bootstrap-sass/lib/_dropdowns.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_dropdowns.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_dropdowns.scss diff --git a/assets/vendor/bootstrap-sass/lib/_forms.scss b/assets/_scss/vendor/bootstrap-sass/lib/_forms.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_forms.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_forms.scss diff --git a/assets/vendor/bootstrap-sass/lib/_glyphicons.scss b/assets/_scss/vendor/bootstrap-sass/lib/_glyphicons.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_glyphicons.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_glyphicons.scss diff --git a/assets/vendor/bootstrap-sass/lib/_grid.scss b/assets/_scss/vendor/bootstrap-sass/lib/_grid.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_grid.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_grid.scss diff --git a/assets/vendor/bootstrap-sass/lib/_input-groups.scss b/assets/_scss/vendor/bootstrap-sass/lib/_input-groups.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_input-groups.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_input-groups.scss diff --git a/assets/vendor/bootstrap-sass/lib/_jumbotron.scss b/assets/_scss/vendor/bootstrap-sass/lib/_jumbotron.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_jumbotron.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_jumbotron.scss diff --git a/assets/vendor/bootstrap-sass/lib/_labels.scss b/assets/_scss/vendor/bootstrap-sass/lib/_labels.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_labels.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_labels.scss diff --git a/assets/vendor/bootstrap-sass/lib/_list-group.scss b/assets/_scss/vendor/bootstrap-sass/lib/_list-group.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_list-group.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_list-group.scss diff --git a/assets/vendor/bootstrap-sass/lib/_media.scss b/assets/_scss/vendor/bootstrap-sass/lib/_media.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_media.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_media.scss diff --git a/assets/vendor/bootstrap-sass/lib/_mixins.scss b/assets/_scss/vendor/bootstrap-sass/lib/_mixins.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_mixins.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_mixins.scss diff --git a/assets/vendor/bootstrap-sass/lib/_modals.scss b/assets/_scss/vendor/bootstrap-sass/lib/_modals.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_modals.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_modals.scss diff --git a/assets/vendor/bootstrap-sass/lib/_navbar.scss b/assets/_scss/vendor/bootstrap-sass/lib/_navbar.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_navbar.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_navbar.scss diff --git a/assets/vendor/bootstrap-sass/lib/_navs.scss b/assets/_scss/vendor/bootstrap-sass/lib/_navs.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_navs.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_navs.scss diff --git a/assets/vendor/bootstrap-sass/lib/_normalize.scss b/assets/_scss/vendor/bootstrap-sass/lib/_normalize.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_normalize.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_normalize.scss diff --git a/assets/vendor/bootstrap-sass/lib/_pager.scss b/assets/_scss/vendor/bootstrap-sass/lib/_pager.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_pager.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_pager.scss diff --git a/assets/vendor/bootstrap-sass/lib/_pagination.scss b/assets/_scss/vendor/bootstrap-sass/lib/_pagination.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_pagination.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_pagination.scss diff --git a/assets/vendor/bootstrap-sass/lib/_panels.scss b/assets/_scss/vendor/bootstrap-sass/lib/_panels.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_panels.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_panels.scss diff --git a/assets/vendor/bootstrap-sass/lib/_popovers.scss b/assets/_scss/vendor/bootstrap-sass/lib/_popovers.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_popovers.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_popovers.scss diff --git a/assets/vendor/bootstrap-sass/lib/_print.scss b/assets/_scss/vendor/bootstrap-sass/lib/_print.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_print.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_print.scss diff --git a/assets/vendor/bootstrap-sass/lib/_progress-bars.scss b/assets/_scss/vendor/bootstrap-sass/lib/_progress-bars.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_progress-bars.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_progress-bars.scss diff --git a/assets/vendor/bootstrap-sass/lib/_responsive-utilities.scss b/assets/_scss/vendor/bootstrap-sass/lib/_responsive-utilities.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_responsive-utilities.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_responsive-utilities.scss diff --git a/assets/vendor/bootstrap-sass/lib/_scaffolding.scss b/assets/_scss/vendor/bootstrap-sass/lib/_scaffolding.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_scaffolding.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_scaffolding.scss diff --git a/assets/vendor/bootstrap-sass/lib/_tables.scss b/assets/_scss/vendor/bootstrap-sass/lib/_tables.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_tables.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_tables.scss diff --git a/assets/vendor/bootstrap-sass/lib/_theme.scss b/assets/_scss/vendor/bootstrap-sass/lib/_theme.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_theme.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_theme.scss diff --git a/assets/vendor/bootstrap-sass/lib/_thumbnails.scss b/assets/_scss/vendor/bootstrap-sass/lib/_thumbnails.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_thumbnails.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_thumbnails.scss diff --git a/assets/vendor/bootstrap-sass/lib/_tooltip.scss b/assets/_scss/vendor/bootstrap-sass/lib/_tooltip.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_tooltip.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_tooltip.scss diff --git a/assets/vendor/bootstrap-sass/lib/_type.scss b/assets/_scss/vendor/bootstrap-sass/lib/_type.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_type.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_type.scss diff --git a/assets/vendor/bootstrap-sass/lib/_utilities.scss b/assets/_scss/vendor/bootstrap-sass/lib/_utilities.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_utilities.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_utilities.scss diff --git a/assets/vendor/bootstrap-sass/lib/_variables.scss b/assets/_scss/vendor/bootstrap-sass/lib/_variables.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_variables.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_variables.scss diff --git a/assets/vendor/bootstrap-sass/lib/_wells.scss b/assets/_scss/vendor/bootstrap-sass/lib/_wells.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/_wells.scss rename to assets/_scss/vendor/bootstrap-sass/lib/_wells.scss diff --git a/assets/vendor/bootstrap-sass/lib/bootstrap.scss b/assets/_scss/vendor/bootstrap-sass/lib/bootstrap.scss similarity index 100% rename from assets/vendor/bootstrap-sass/lib/bootstrap.scss rename to assets/_scss/vendor/bootstrap-sass/lib/bootstrap.scss diff --git a/assets/vendor/bootstrap-sass/package.json b/assets/_scss/vendor/bootstrap-sass/package.json similarity index 100% rename from assets/vendor/bootstrap-sass/package.json rename to assets/_scss/vendor/bootstrap-sass/package.json diff --git a/assets/vendor/jquery/.bower.json b/assets/_scss/vendor/jquery/.bower.json similarity index 100% rename from assets/vendor/jquery/.bower.json rename to assets/_scss/vendor/jquery/.bower.json diff --git a/assets/vendor/jquery/MIT-LICENSE.txt b/assets/_scss/vendor/jquery/MIT-LICENSE.txt similarity index 100% rename from assets/vendor/jquery/MIT-LICENSE.txt rename to assets/_scss/vendor/jquery/MIT-LICENSE.txt diff --git a/assets/vendor/jquery/bower.json b/assets/_scss/vendor/jquery/bower.json similarity index 100% rename from assets/vendor/jquery/bower.json rename to assets/_scss/vendor/jquery/bower.json diff --git a/assets/vendor/jquery/dist/jquery.js b/assets/_scss/vendor/jquery/dist/jquery.js similarity index 100% rename from assets/vendor/jquery/dist/jquery.js rename to assets/_scss/vendor/jquery/dist/jquery.js diff --git a/assets/vendor/jquery/dist/jquery.min.js b/assets/_scss/vendor/jquery/dist/jquery.min.js similarity index 100% rename from assets/vendor/jquery/dist/jquery.min.js rename to assets/_scss/vendor/jquery/dist/jquery.min.js diff --git a/assets/vendor/jquery/src/ajax.js b/assets/_scss/vendor/jquery/src/ajax.js similarity index 100% rename from assets/vendor/jquery/src/ajax.js rename to assets/_scss/vendor/jquery/src/ajax.js diff --git a/assets/vendor/jquery/src/ajax/jsonp.js b/assets/_scss/vendor/jquery/src/ajax/jsonp.js similarity index 100% rename from assets/vendor/jquery/src/ajax/jsonp.js rename to assets/_scss/vendor/jquery/src/ajax/jsonp.js diff --git a/assets/vendor/jquery/src/ajax/load.js b/assets/_scss/vendor/jquery/src/ajax/load.js similarity index 100% rename from assets/vendor/jquery/src/ajax/load.js rename to assets/_scss/vendor/jquery/src/ajax/load.js diff --git a/assets/vendor/jquery/src/ajax/parseJSON.js b/assets/_scss/vendor/jquery/src/ajax/parseJSON.js similarity index 100% rename from assets/vendor/jquery/src/ajax/parseJSON.js rename to assets/_scss/vendor/jquery/src/ajax/parseJSON.js diff --git a/assets/vendor/jquery/src/ajax/parseXML.js b/assets/_scss/vendor/jquery/src/ajax/parseXML.js similarity index 100% rename from assets/vendor/jquery/src/ajax/parseXML.js rename to assets/_scss/vendor/jquery/src/ajax/parseXML.js diff --git a/assets/vendor/jquery/src/ajax/script.js b/assets/_scss/vendor/jquery/src/ajax/script.js similarity index 100% rename from assets/vendor/jquery/src/ajax/script.js rename to assets/_scss/vendor/jquery/src/ajax/script.js diff --git a/assets/vendor/jquery/src/ajax/var/nonce.js b/assets/_scss/vendor/jquery/src/ajax/var/nonce.js similarity index 100% rename from assets/vendor/jquery/src/ajax/var/nonce.js rename to assets/_scss/vendor/jquery/src/ajax/var/nonce.js diff --git a/assets/vendor/jquery/src/ajax/var/rquery.js b/assets/_scss/vendor/jquery/src/ajax/var/rquery.js similarity index 100% rename from assets/vendor/jquery/src/ajax/var/rquery.js rename to assets/_scss/vendor/jquery/src/ajax/var/rquery.js diff --git a/assets/vendor/jquery/src/ajax/xhr.js b/assets/_scss/vendor/jquery/src/ajax/xhr.js similarity index 100% rename from assets/vendor/jquery/src/ajax/xhr.js rename to assets/_scss/vendor/jquery/src/ajax/xhr.js diff --git a/assets/vendor/jquery/src/attributes.js b/assets/_scss/vendor/jquery/src/attributes.js similarity index 100% rename from assets/vendor/jquery/src/attributes.js rename to assets/_scss/vendor/jquery/src/attributes.js diff --git a/assets/vendor/jquery/src/attributes/attr.js b/assets/_scss/vendor/jquery/src/attributes/attr.js similarity index 100% rename from assets/vendor/jquery/src/attributes/attr.js rename to assets/_scss/vendor/jquery/src/attributes/attr.js diff --git a/assets/vendor/jquery/src/attributes/classes.js b/assets/_scss/vendor/jquery/src/attributes/classes.js similarity index 100% rename from assets/vendor/jquery/src/attributes/classes.js rename to assets/_scss/vendor/jquery/src/attributes/classes.js diff --git a/assets/vendor/jquery/src/attributes/prop.js b/assets/_scss/vendor/jquery/src/attributes/prop.js similarity index 100% rename from assets/vendor/jquery/src/attributes/prop.js rename to assets/_scss/vendor/jquery/src/attributes/prop.js diff --git a/assets/vendor/jquery/src/attributes/support.js b/assets/_scss/vendor/jquery/src/attributes/support.js similarity index 100% rename from assets/vendor/jquery/src/attributes/support.js rename to assets/_scss/vendor/jquery/src/attributes/support.js diff --git a/assets/vendor/jquery/src/attributes/val.js b/assets/_scss/vendor/jquery/src/attributes/val.js similarity index 100% rename from assets/vendor/jquery/src/attributes/val.js rename to assets/_scss/vendor/jquery/src/attributes/val.js diff --git a/assets/vendor/jquery/src/callbacks.js b/assets/_scss/vendor/jquery/src/callbacks.js similarity index 100% rename from assets/vendor/jquery/src/callbacks.js rename to assets/_scss/vendor/jquery/src/callbacks.js diff --git a/assets/vendor/jquery/src/core.js b/assets/_scss/vendor/jquery/src/core.js similarity index 100% rename from assets/vendor/jquery/src/core.js rename to assets/_scss/vendor/jquery/src/core.js diff --git a/assets/vendor/jquery/src/core/access.js b/assets/_scss/vendor/jquery/src/core/access.js similarity index 100% rename from assets/vendor/jquery/src/core/access.js rename to assets/_scss/vendor/jquery/src/core/access.js diff --git a/assets/vendor/jquery/src/core/init.js b/assets/_scss/vendor/jquery/src/core/init.js similarity index 100% rename from assets/vendor/jquery/src/core/init.js rename to assets/_scss/vendor/jquery/src/core/init.js diff --git a/assets/vendor/jquery/src/core/parseHTML.js b/assets/_scss/vendor/jquery/src/core/parseHTML.js similarity index 100% rename from assets/vendor/jquery/src/core/parseHTML.js rename to assets/_scss/vendor/jquery/src/core/parseHTML.js diff --git a/assets/vendor/jquery/src/core/ready.js b/assets/_scss/vendor/jquery/src/core/ready.js similarity index 100% rename from assets/vendor/jquery/src/core/ready.js rename to assets/_scss/vendor/jquery/src/core/ready.js diff --git a/assets/vendor/jquery/src/core/var/rsingleTag.js b/assets/_scss/vendor/jquery/src/core/var/rsingleTag.js similarity index 100% rename from assets/vendor/jquery/src/core/var/rsingleTag.js rename to assets/_scss/vendor/jquery/src/core/var/rsingleTag.js diff --git a/assets/vendor/jquery/src/css.js b/assets/_scss/vendor/jquery/src/css.js similarity index 100% rename from assets/vendor/jquery/src/css.js rename to assets/_scss/vendor/jquery/src/css.js diff --git a/assets/vendor/jquery/src/css/addGetHookIf.js b/assets/_scss/vendor/jquery/src/css/addGetHookIf.js similarity index 100% rename from assets/vendor/jquery/src/css/addGetHookIf.js rename to assets/_scss/vendor/jquery/src/css/addGetHookIf.js diff --git a/assets/vendor/jquery/src/css/curCSS.js b/assets/_scss/vendor/jquery/src/css/curCSS.js similarity index 100% rename from assets/vendor/jquery/src/css/curCSS.js rename to assets/_scss/vendor/jquery/src/css/curCSS.js diff --git a/assets/vendor/jquery/src/css/defaultDisplay.js b/assets/_scss/vendor/jquery/src/css/defaultDisplay.js similarity index 100% rename from assets/vendor/jquery/src/css/defaultDisplay.js rename to assets/_scss/vendor/jquery/src/css/defaultDisplay.js diff --git a/assets/vendor/jquery/src/css/hiddenVisibleSelectors.js b/assets/_scss/vendor/jquery/src/css/hiddenVisibleSelectors.js similarity index 100% rename from assets/vendor/jquery/src/css/hiddenVisibleSelectors.js rename to assets/_scss/vendor/jquery/src/css/hiddenVisibleSelectors.js diff --git a/assets/vendor/jquery/src/css/support.js b/assets/_scss/vendor/jquery/src/css/support.js similarity index 100% rename from assets/vendor/jquery/src/css/support.js rename to assets/_scss/vendor/jquery/src/css/support.js diff --git a/assets/vendor/jquery/src/css/swap.js b/assets/_scss/vendor/jquery/src/css/swap.js similarity index 100% rename from assets/vendor/jquery/src/css/swap.js rename to assets/_scss/vendor/jquery/src/css/swap.js diff --git a/assets/vendor/jquery/src/css/var/cssExpand.js b/assets/_scss/vendor/jquery/src/css/var/cssExpand.js similarity index 100% rename from assets/vendor/jquery/src/css/var/cssExpand.js rename to assets/_scss/vendor/jquery/src/css/var/cssExpand.js diff --git a/assets/vendor/jquery/src/css/var/getStyles.js b/assets/_scss/vendor/jquery/src/css/var/getStyles.js similarity index 100% rename from assets/vendor/jquery/src/css/var/getStyles.js rename to assets/_scss/vendor/jquery/src/css/var/getStyles.js diff --git a/assets/vendor/jquery/src/css/var/isHidden.js b/assets/_scss/vendor/jquery/src/css/var/isHidden.js similarity index 100% rename from assets/vendor/jquery/src/css/var/isHidden.js rename to assets/_scss/vendor/jquery/src/css/var/isHidden.js diff --git a/assets/vendor/jquery/src/css/var/rmargin.js b/assets/_scss/vendor/jquery/src/css/var/rmargin.js similarity index 100% rename from assets/vendor/jquery/src/css/var/rmargin.js rename to assets/_scss/vendor/jquery/src/css/var/rmargin.js diff --git a/assets/vendor/jquery/src/css/var/rnumnonpx.js b/assets/_scss/vendor/jquery/src/css/var/rnumnonpx.js similarity index 100% rename from assets/vendor/jquery/src/css/var/rnumnonpx.js rename to assets/_scss/vendor/jquery/src/css/var/rnumnonpx.js diff --git a/assets/vendor/jquery/src/data.js b/assets/_scss/vendor/jquery/src/data.js similarity index 100% rename from assets/vendor/jquery/src/data.js rename to assets/_scss/vendor/jquery/src/data.js diff --git a/assets/vendor/jquery/src/data/Data.js b/assets/_scss/vendor/jquery/src/data/Data.js similarity index 100% rename from assets/vendor/jquery/src/data/Data.js rename to assets/_scss/vendor/jquery/src/data/Data.js diff --git a/assets/vendor/jquery/src/data/accepts.js b/assets/_scss/vendor/jquery/src/data/accepts.js similarity index 100% rename from assets/vendor/jquery/src/data/accepts.js rename to assets/_scss/vendor/jquery/src/data/accepts.js diff --git a/assets/vendor/jquery/src/data/var/data_priv.js b/assets/_scss/vendor/jquery/src/data/var/data_priv.js similarity index 100% rename from assets/vendor/jquery/src/data/var/data_priv.js rename to assets/_scss/vendor/jquery/src/data/var/data_priv.js diff --git a/assets/vendor/jquery/src/data/var/data_user.js b/assets/_scss/vendor/jquery/src/data/var/data_user.js similarity index 100% rename from assets/vendor/jquery/src/data/var/data_user.js rename to assets/_scss/vendor/jquery/src/data/var/data_user.js diff --git a/assets/vendor/jquery/src/deferred.js b/assets/_scss/vendor/jquery/src/deferred.js similarity index 100% rename from assets/vendor/jquery/src/deferred.js rename to assets/_scss/vendor/jquery/src/deferred.js diff --git a/assets/vendor/jquery/src/deprecated.js b/assets/_scss/vendor/jquery/src/deprecated.js similarity index 100% rename from assets/vendor/jquery/src/deprecated.js rename to assets/_scss/vendor/jquery/src/deprecated.js diff --git a/assets/vendor/jquery/src/dimensions.js b/assets/_scss/vendor/jquery/src/dimensions.js similarity index 100% rename from assets/vendor/jquery/src/dimensions.js rename to assets/_scss/vendor/jquery/src/dimensions.js diff --git a/assets/vendor/jquery/src/effects.js b/assets/_scss/vendor/jquery/src/effects.js similarity index 100% rename from assets/vendor/jquery/src/effects.js rename to assets/_scss/vendor/jquery/src/effects.js diff --git a/assets/vendor/jquery/src/effects/Tween.js b/assets/_scss/vendor/jquery/src/effects/Tween.js similarity index 100% rename from assets/vendor/jquery/src/effects/Tween.js rename to assets/_scss/vendor/jquery/src/effects/Tween.js diff --git a/assets/vendor/jquery/src/effects/animatedSelector.js b/assets/_scss/vendor/jquery/src/effects/animatedSelector.js similarity index 100% rename from assets/vendor/jquery/src/effects/animatedSelector.js rename to assets/_scss/vendor/jquery/src/effects/animatedSelector.js diff --git a/assets/vendor/jquery/src/event.js b/assets/_scss/vendor/jquery/src/event.js similarity index 100% rename from assets/vendor/jquery/src/event.js rename to assets/_scss/vendor/jquery/src/event.js diff --git a/assets/vendor/jquery/src/event/alias.js b/assets/_scss/vendor/jquery/src/event/alias.js similarity index 100% rename from assets/vendor/jquery/src/event/alias.js rename to assets/_scss/vendor/jquery/src/event/alias.js diff --git a/assets/vendor/jquery/src/event/support.js b/assets/_scss/vendor/jquery/src/event/support.js similarity index 100% rename from assets/vendor/jquery/src/event/support.js rename to assets/_scss/vendor/jquery/src/event/support.js diff --git a/assets/vendor/jquery/src/exports/amd.js b/assets/_scss/vendor/jquery/src/exports/amd.js similarity index 100% rename from assets/vendor/jquery/src/exports/amd.js rename to assets/_scss/vendor/jquery/src/exports/amd.js diff --git a/assets/vendor/jquery/src/exports/global.js b/assets/_scss/vendor/jquery/src/exports/global.js similarity index 100% rename from assets/vendor/jquery/src/exports/global.js rename to assets/_scss/vendor/jquery/src/exports/global.js diff --git a/assets/vendor/jquery/src/intro.js b/assets/_scss/vendor/jquery/src/intro.js similarity index 100% rename from assets/vendor/jquery/src/intro.js rename to assets/_scss/vendor/jquery/src/intro.js diff --git a/assets/vendor/jquery/src/jquery.js b/assets/_scss/vendor/jquery/src/jquery.js similarity index 100% rename from assets/vendor/jquery/src/jquery.js rename to assets/_scss/vendor/jquery/src/jquery.js diff --git a/assets/vendor/jquery/src/manipulation.js b/assets/_scss/vendor/jquery/src/manipulation.js similarity index 100% rename from assets/vendor/jquery/src/manipulation.js rename to assets/_scss/vendor/jquery/src/manipulation.js diff --git a/assets/vendor/jquery/src/manipulation/_evalUrl.js b/assets/_scss/vendor/jquery/src/manipulation/_evalUrl.js similarity index 100% rename from assets/vendor/jquery/src/manipulation/_evalUrl.js rename to assets/_scss/vendor/jquery/src/manipulation/_evalUrl.js diff --git a/assets/vendor/jquery/src/manipulation/support.js b/assets/_scss/vendor/jquery/src/manipulation/support.js similarity index 100% rename from assets/vendor/jquery/src/manipulation/support.js rename to assets/_scss/vendor/jquery/src/manipulation/support.js diff --git a/assets/vendor/jquery/src/manipulation/var/rcheckableType.js b/assets/_scss/vendor/jquery/src/manipulation/var/rcheckableType.js similarity index 100% rename from assets/vendor/jquery/src/manipulation/var/rcheckableType.js rename to assets/_scss/vendor/jquery/src/manipulation/var/rcheckableType.js diff --git a/assets/vendor/jquery/src/offset.js b/assets/_scss/vendor/jquery/src/offset.js similarity index 100% rename from assets/vendor/jquery/src/offset.js rename to assets/_scss/vendor/jquery/src/offset.js diff --git a/assets/vendor/jquery/src/outro.js b/assets/_scss/vendor/jquery/src/outro.js similarity index 100% rename from assets/vendor/jquery/src/outro.js rename to assets/_scss/vendor/jquery/src/outro.js diff --git a/assets/vendor/jquery/src/queue.js b/assets/_scss/vendor/jquery/src/queue.js similarity index 100% rename from assets/vendor/jquery/src/queue.js rename to assets/_scss/vendor/jquery/src/queue.js diff --git a/assets/vendor/jquery/src/queue/delay.js b/assets/_scss/vendor/jquery/src/queue/delay.js similarity index 100% rename from assets/vendor/jquery/src/queue/delay.js rename to assets/_scss/vendor/jquery/src/queue/delay.js diff --git a/assets/vendor/jquery/src/selector-native.js b/assets/_scss/vendor/jquery/src/selector-native.js similarity index 100% rename from assets/vendor/jquery/src/selector-native.js rename to assets/_scss/vendor/jquery/src/selector-native.js diff --git a/assets/vendor/jquery/src/selector-sizzle.js b/assets/_scss/vendor/jquery/src/selector-sizzle.js similarity index 100% rename from assets/vendor/jquery/src/selector-sizzle.js rename to assets/_scss/vendor/jquery/src/selector-sizzle.js diff --git a/assets/vendor/jquery/src/selector.js b/assets/_scss/vendor/jquery/src/selector.js similarity index 100% rename from assets/vendor/jquery/src/selector.js rename to assets/_scss/vendor/jquery/src/selector.js diff --git a/assets/vendor/jquery/src/serialize.js b/assets/_scss/vendor/jquery/src/serialize.js similarity index 100% rename from assets/vendor/jquery/src/serialize.js rename to assets/_scss/vendor/jquery/src/serialize.js diff --git a/assets/vendor/jquery/src/sizzle/dist/sizzle.js b/assets/_scss/vendor/jquery/src/sizzle/dist/sizzle.js similarity index 100% rename from assets/vendor/jquery/src/sizzle/dist/sizzle.js rename to assets/_scss/vendor/jquery/src/sizzle/dist/sizzle.js diff --git a/assets/vendor/jquery/src/sizzle/dist/sizzle.min.js b/assets/_scss/vendor/jquery/src/sizzle/dist/sizzle.min.js similarity index 100% rename from assets/vendor/jquery/src/sizzle/dist/sizzle.min.js rename to assets/_scss/vendor/jquery/src/sizzle/dist/sizzle.min.js diff --git a/assets/vendor/jquery/src/traversing.js b/assets/_scss/vendor/jquery/src/traversing.js similarity index 100% rename from assets/vendor/jquery/src/traversing.js rename to assets/_scss/vendor/jquery/src/traversing.js diff --git a/assets/vendor/jquery/src/traversing/findFilter.js b/assets/_scss/vendor/jquery/src/traversing/findFilter.js similarity index 100% rename from assets/vendor/jquery/src/traversing/findFilter.js rename to assets/_scss/vendor/jquery/src/traversing/findFilter.js diff --git a/assets/vendor/jquery/src/traversing/var/rneedsContext.js b/assets/_scss/vendor/jquery/src/traversing/var/rneedsContext.js similarity index 100% rename from assets/vendor/jquery/src/traversing/var/rneedsContext.js rename to assets/_scss/vendor/jquery/src/traversing/var/rneedsContext.js diff --git a/assets/vendor/jquery/src/var/arr.js b/assets/_scss/vendor/jquery/src/var/arr.js similarity index 100% rename from assets/vendor/jquery/src/var/arr.js rename to assets/_scss/vendor/jquery/src/var/arr.js diff --git a/assets/vendor/jquery/src/var/class2type.js b/assets/_scss/vendor/jquery/src/var/class2type.js similarity index 100% rename from assets/vendor/jquery/src/var/class2type.js rename to assets/_scss/vendor/jquery/src/var/class2type.js diff --git a/assets/vendor/jquery/src/var/concat.js b/assets/_scss/vendor/jquery/src/var/concat.js similarity index 100% rename from assets/vendor/jquery/src/var/concat.js rename to assets/_scss/vendor/jquery/src/var/concat.js diff --git a/assets/vendor/jquery/src/var/hasOwn.js b/assets/_scss/vendor/jquery/src/var/hasOwn.js similarity index 100% rename from assets/vendor/jquery/src/var/hasOwn.js rename to assets/_scss/vendor/jquery/src/var/hasOwn.js diff --git a/assets/vendor/jquery/src/var/indexOf.js b/assets/_scss/vendor/jquery/src/var/indexOf.js similarity index 100% rename from assets/vendor/jquery/src/var/indexOf.js rename to assets/_scss/vendor/jquery/src/var/indexOf.js diff --git a/assets/vendor/jquery/src/var/pnum.js b/assets/_scss/vendor/jquery/src/var/pnum.js similarity index 100% rename from assets/vendor/jquery/src/var/pnum.js rename to assets/_scss/vendor/jquery/src/var/pnum.js diff --git a/assets/vendor/jquery/src/var/push.js b/assets/_scss/vendor/jquery/src/var/push.js similarity index 100% rename from assets/vendor/jquery/src/var/push.js rename to assets/_scss/vendor/jquery/src/var/push.js diff --git a/assets/vendor/jquery/src/var/rnotwhite.js b/assets/_scss/vendor/jquery/src/var/rnotwhite.js similarity index 100% rename from assets/vendor/jquery/src/var/rnotwhite.js rename to assets/_scss/vendor/jquery/src/var/rnotwhite.js diff --git a/assets/vendor/jquery/src/var/slice.js b/assets/_scss/vendor/jquery/src/var/slice.js similarity index 100% rename from assets/vendor/jquery/src/var/slice.js rename to assets/_scss/vendor/jquery/src/var/slice.js diff --git a/assets/vendor/jquery/src/var/strundefined.js b/assets/_scss/vendor/jquery/src/var/strundefined.js similarity index 100% rename from assets/vendor/jquery/src/var/strundefined.js rename to assets/_scss/vendor/jquery/src/var/strundefined.js diff --git a/assets/vendor/jquery/src/var/support.js b/assets/_scss/vendor/jquery/src/var/support.js similarity index 100% rename from assets/vendor/jquery/src/var/support.js rename to assets/_scss/vendor/jquery/src/var/support.js diff --git a/assets/vendor/jquery/src/var/toString.js b/assets/_scss/vendor/jquery/src/var/toString.js similarity index 100% rename from assets/vendor/jquery/src/var/toString.js rename to assets/_scss/vendor/jquery/src/var/toString.js diff --git a/assets/vendor/jquery/src/wrap.js b/assets/_scss/vendor/jquery/src/wrap.js similarity index 100% rename from assets/vendor/jquery/src/wrap.js rename to assets/_scss/vendor/jquery/src/wrap.js diff --git a/assets/vendor/octicons/.bower.json b/assets/_scss/vendor/octicons/.bower.json similarity index 100% rename from assets/vendor/octicons/.bower.json rename to assets/_scss/vendor/octicons/.bower.json diff --git a/assets/vendor/octicons/CHANGELOG.md b/assets/_scss/vendor/octicons/CHANGELOG.md similarity index 100% rename from assets/vendor/octicons/CHANGELOG.md rename to assets/_scss/vendor/octicons/CHANGELOG.md diff --git a/assets/vendor/octicons/CONTRIBUTING.md b/assets/_scss/vendor/octicons/CONTRIBUTING.md similarity index 100% rename from assets/vendor/octicons/CONTRIBUTING.md rename to assets/_scss/vendor/octicons/CONTRIBUTING.md diff --git a/assets/vendor/octicons/LICENSE.txt b/assets/_scss/vendor/octicons/LICENSE.txt similarity index 100% rename from assets/vendor/octicons/LICENSE.txt rename to assets/_scss/vendor/octicons/LICENSE.txt diff --git a/assets/vendor/octicons/README.md b/assets/_scss/vendor/octicons/README.md similarity index 100% rename from assets/vendor/octicons/README.md rename to assets/_scss/vendor/octicons/README.md diff --git a/assets/vendor/octicons/bower.json b/assets/_scss/vendor/octicons/bower.json similarity index 100% rename from assets/vendor/octicons/bower.json rename to assets/_scss/vendor/octicons/bower.json diff --git a/assets/vendor/octicons/octicons/README.md b/assets/_scss/vendor/octicons/octicons/README.md similarity index 100% rename from assets/vendor/octicons/octicons/README.md rename to assets/_scss/vendor/octicons/octicons/README.md diff --git a/assets/vendor/octicons/octicons/octicons-local.ttf b/assets/_scss/vendor/octicons/octicons/octicons-local.ttf similarity index 100% rename from assets/vendor/octicons/octicons/octicons-local.ttf rename to assets/_scss/vendor/octicons/octicons/octicons-local.ttf diff --git a/assets/vendor/octicons/octicons/octicons.css b/assets/_scss/vendor/octicons/octicons/octicons.css similarity index 100% rename from assets/vendor/octicons/octicons/octicons.css rename to assets/_scss/vendor/octicons/octicons/octicons.css diff --git a/assets/vendor/octicons/octicons/octicons.eot b/assets/_scss/vendor/octicons/octicons/octicons.eot similarity index 100% rename from assets/vendor/octicons/octicons/octicons.eot rename to assets/_scss/vendor/octicons/octicons/octicons.eot diff --git a/assets/vendor/octicons/octicons/octicons.less b/assets/_scss/vendor/octicons/octicons/octicons.less similarity index 100% rename from assets/vendor/octicons/octicons/octicons.less rename to assets/_scss/vendor/octicons/octicons/octicons.less diff --git a/assets/vendor/octicons/octicons/octicons.svg b/assets/_scss/vendor/octicons/octicons/octicons.svg similarity index 100% rename from assets/vendor/octicons/octicons/octicons.svg rename to assets/_scss/vendor/octicons/octicons/octicons.svg diff --git a/assets/vendor/octicons/octicons/octicons.ttf b/assets/_scss/vendor/octicons/octicons/octicons.ttf similarity index 100% rename from assets/vendor/octicons/octicons/octicons.ttf rename to assets/_scss/vendor/octicons/octicons/octicons.ttf diff --git a/assets/vendor/octicons/octicons/octicons.woff b/assets/_scss/vendor/octicons/octicons/octicons.woff similarity index 100% rename from assets/vendor/octicons/octicons/octicons.woff rename to assets/_scss/vendor/octicons/octicons/octicons.woff diff --git a/assets/vendor/octicons/octicons/sprockets-octicons.scss b/assets/_scss/vendor/octicons/octicons/sprockets-octicons.scss similarity index 100% rename from assets/vendor/octicons/octicons/sprockets-octicons.scss rename to assets/_scss/vendor/octicons/octicons/sprockets-octicons.scss diff --git a/assets/vendor/octicons/svg/alert.svg b/assets/_scss/vendor/octicons/svg/alert.svg similarity index 100% rename from assets/vendor/octicons/svg/alert.svg rename to assets/_scss/vendor/octicons/svg/alert.svg diff --git a/assets/vendor/octicons/svg/alignment-align.svg b/assets/_scss/vendor/octicons/svg/alignment-align.svg similarity index 100% rename from assets/vendor/octicons/svg/alignment-align.svg rename to assets/_scss/vendor/octicons/svg/alignment-align.svg diff --git a/assets/vendor/octicons/svg/alignment-aligned-to.svg b/assets/_scss/vendor/octicons/svg/alignment-aligned-to.svg similarity index 100% rename from assets/vendor/octicons/svg/alignment-aligned-to.svg rename to assets/_scss/vendor/octicons/svg/alignment-aligned-to.svg diff --git a/assets/vendor/octicons/svg/alignment-unalign.svg b/assets/_scss/vendor/octicons/svg/alignment-unalign.svg similarity index 100% rename from assets/vendor/octicons/svg/alignment-unalign.svg rename to assets/_scss/vendor/octicons/svg/alignment-unalign.svg diff --git a/assets/vendor/octicons/svg/arrow-down.svg b/assets/_scss/vendor/octicons/svg/arrow-down.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-down.svg rename to assets/_scss/vendor/octicons/svg/arrow-down.svg diff --git a/assets/vendor/octicons/svg/arrow-left.svg b/assets/_scss/vendor/octicons/svg/arrow-left.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-left.svg rename to assets/_scss/vendor/octicons/svg/arrow-left.svg diff --git a/assets/vendor/octicons/svg/arrow-right.svg b/assets/_scss/vendor/octicons/svg/arrow-right.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-right.svg rename to assets/_scss/vendor/octicons/svg/arrow-right.svg diff --git a/assets/vendor/octicons/svg/arrow-small-down.svg b/assets/_scss/vendor/octicons/svg/arrow-small-down.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-small-down.svg rename to assets/_scss/vendor/octicons/svg/arrow-small-down.svg diff --git a/assets/vendor/octicons/svg/arrow-small-left.svg b/assets/_scss/vendor/octicons/svg/arrow-small-left.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-small-left.svg rename to assets/_scss/vendor/octicons/svg/arrow-small-left.svg diff --git a/assets/vendor/octicons/svg/arrow-small-right.svg b/assets/_scss/vendor/octicons/svg/arrow-small-right.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-small-right.svg rename to assets/_scss/vendor/octicons/svg/arrow-small-right.svg diff --git a/assets/vendor/octicons/svg/arrow-small-up.svg b/assets/_scss/vendor/octicons/svg/arrow-small-up.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-small-up.svg rename to assets/_scss/vendor/octicons/svg/arrow-small-up.svg diff --git a/assets/vendor/octicons/svg/arrow-up.svg b/assets/_scss/vendor/octicons/svg/arrow-up.svg similarity index 100% rename from assets/vendor/octicons/svg/arrow-up.svg rename to assets/_scss/vendor/octicons/svg/arrow-up.svg diff --git a/assets/vendor/octicons/svg/beer.svg b/assets/_scss/vendor/octicons/svg/beer.svg similarity index 100% rename from assets/vendor/octicons/svg/beer.svg rename to assets/_scss/vendor/octicons/svg/beer.svg diff --git a/assets/vendor/octicons/svg/book.svg b/assets/_scss/vendor/octicons/svg/book.svg similarity index 100% rename from assets/vendor/octicons/svg/book.svg rename to assets/_scss/vendor/octicons/svg/book.svg diff --git a/assets/vendor/octicons/svg/bookmark.svg b/assets/_scss/vendor/octicons/svg/bookmark.svg similarity index 100% rename from assets/vendor/octicons/svg/bookmark.svg rename to assets/_scss/vendor/octicons/svg/bookmark.svg diff --git a/assets/vendor/octicons/svg/briefcase.svg b/assets/_scss/vendor/octicons/svg/briefcase.svg similarity index 100% rename from assets/vendor/octicons/svg/briefcase.svg rename to assets/_scss/vendor/octicons/svg/briefcase.svg diff --git a/assets/vendor/octicons/svg/broadcast.svg b/assets/_scss/vendor/octicons/svg/broadcast.svg similarity index 100% rename from assets/vendor/octicons/svg/broadcast.svg rename to assets/_scss/vendor/octicons/svg/broadcast.svg diff --git a/assets/vendor/octicons/svg/browser.svg b/assets/_scss/vendor/octicons/svg/browser.svg similarity index 100% rename from assets/vendor/octicons/svg/browser.svg rename to assets/_scss/vendor/octicons/svg/browser.svg diff --git a/assets/vendor/octicons/svg/bug.svg b/assets/_scss/vendor/octicons/svg/bug.svg similarity index 100% rename from assets/vendor/octicons/svg/bug.svg rename to assets/_scss/vendor/octicons/svg/bug.svg diff --git a/assets/vendor/octicons/svg/calendar.svg b/assets/_scss/vendor/octicons/svg/calendar.svg similarity index 100% rename from assets/vendor/octicons/svg/calendar.svg rename to assets/_scss/vendor/octicons/svg/calendar.svg diff --git a/assets/vendor/octicons/svg/check.svg b/assets/_scss/vendor/octicons/svg/check.svg similarity index 100% rename from assets/vendor/octicons/svg/check.svg rename to assets/_scss/vendor/octicons/svg/check.svg diff --git a/assets/vendor/octicons/svg/checklist.svg b/assets/_scss/vendor/octicons/svg/checklist.svg similarity index 100% rename from assets/vendor/octicons/svg/checklist.svg rename to assets/_scss/vendor/octicons/svg/checklist.svg diff --git a/assets/vendor/octicons/svg/chevron-down.svg b/assets/_scss/vendor/octicons/svg/chevron-down.svg similarity index 100% rename from assets/vendor/octicons/svg/chevron-down.svg rename to assets/_scss/vendor/octicons/svg/chevron-down.svg diff --git a/assets/vendor/octicons/svg/chevron-left.svg b/assets/_scss/vendor/octicons/svg/chevron-left.svg similarity index 100% rename from assets/vendor/octicons/svg/chevron-left.svg rename to assets/_scss/vendor/octicons/svg/chevron-left.svg diff --git a/assets/vendor/octicons/svg/chevron-right.svg b/assets/_scss/vendor/octicons/svg/chevron-right.svg similarity index 100% rename from assets/vendor/octicons/svg/chevron-right.svg rename to assets/_scss/vendor/octicons/svg/chevron-right.svg diff --git a/assets/vendor/octicons/svg/chevron-up.svg b/assets/_scss/vendor/octicons/svg/chevron-up.svg similarity index 100% rename from assets/vendor/octicons/svg/chevron-up.svg rename to assets/_scss/vendor/octicons/svg/chevron-up.svg diff --git a/assets/vendor/octicons/svg/circle-slash.svg b/assets/_scss/vendor/octicons/svg/circle-slash.svg similarity index 100% rename from assets/vendor/octicons/svg/circle-slash.svg rename to assets/_scss/vendor/octicons/svg/circle-slash.svg diff --git a/assets/vendor/octicons/svg/circuit-board.svg b/assets/_scss/vendor/octicons/svg/circuit-board.svg similarity index 100% rename from assets/vendor/octicons/svg/circuit-board.svg rename to assets/_scss/vendor/octicons/svg/circuit-board.svg diff --git a/assets/vendor/octicons/svg/clippy.svg b/assets/_scss/vendor/octicons/svg/clippy.svg similarity index 100% rename from assets/vendor/octicons/svg/clippy.svg rename to assets/_scss/vendor/octicons/svg/clippy.svg diff --git a/assets/vendor/octicons/svg/clock.svg b/assets/_scss/vendor/octicons/svg/clock.svg similarity index 100% rename from assets/vendor/octicons/svg/clock.svg rename to assets/_scss/vendor/octicons/svg/clock.svg diff --git a/assets/vendor/octicons/svg/cloud-download.svg b/assets/_scss/vendor/octicons/svg/cloud-download.svg similarity index 100% rename from assets/vendor/octicons/svg/cloud-download.svg rename to assets/_scss/vendor/octicons/svg/cloud-download.svg diff --git a/assets/vendor/octicons/svg/cloud-upload.svg b/assets/_scss/vendor/octicons/svg/cloud-upload.svg similarity index 100% rename from assets/vendor/octicons/svg/cloud-upload.svg rename to assets/_scss/vendor/octicons/svg/cloud-upload.svg diff --git a/assets/vendor/octicons/svg/code.svg b/assets/_scss/vendor/octicons/svg/code.svg similarity index 100% rename from assets/vendor/octicons/svg/code.svg rename to assets/_scss/vendor/octicons/svg/code.svg diff --git a/assets/vendor/octicons/svg/color-mode.svg b/assets/_scss/vendor/octicons/svg/color-mode.svg similarity index 100% rename from assets/vendor/octicons/svg/color-mode.svg rename to assets/_scss/vendor/octicons/svg/color-mode.svg diff --git a/assets/vendor/octicons/svg/comment-discussion.svg b/assets/_scss/vendor/octicons/svg/comment-discussion.svg similarity index 100% rename from assets/vendor/octicons/svg/comment-discussion.svg rename to assets/_scss/vendor/octicons/svg/comment-discussion.svg diff --git a/assets/vendor/octicons/svg/comment.svg b/assets/_scss/vendor/octicons/svg/comment.svg similarity index 100% rename from assets/vendor/octicons/svg/comment.svg rename to assets/_scss/vendor/octicons/svg/comment.svg diff --git a/assets/vendor/octicons/svg/credit-card.svg b/assets/_scss/vendor/octicons/svg/credit-card.svg similarity index 100% rename from assets/vendor/octicons/svg/credit-card.svg rename to assets/_scss/vendor/octicons/svg/credit-card.svg diff --git a/assets/vendor/octicons/svg/dash.svg b/assets/_scss/vendor/octicons/svg/dash.svg similarity index 100% rename from assets/vendor/octicons/svg/dash.svg rename to assets/_scss/vendor/octicons/svg/dash.svg diff --git a/assets/vendor/octicons/svg/dashboard.svg b/assets/_scss/vendor/octicons/svg/dashboard.svg similarity index 100% rename from assets/vendor/octicons/svg/dashboard.svg rename to assets/_scss/vendor/octicons/svg/dashboard.svg diff --git a/assets/vendor/octicons/svg/database.svg b/assets/_scss/vendor/octicons/svg/database.svg similarity index 100% rename from assets/vendor/octicons/svg/database.svg rename to assets/_scss/vendor/octicons/svg/database.svg diff --git a/assets/vendor/octicons/svg/device-camera-video.svg b/assets/_scss/vendor/octicons/svg/device-camera-video.svg similarity index 100% rename from assets/vendor/octicons/svg/device-camera-video.svg rename to assets/_scss/vendor/octicons/svg/device-camera-video.svg diff --git a/assets/vendor/octicons/svg/device-camera.svg b/assets/_scss/vendor/octicons/svg/device-camera.svg similarity index 100% rename from assets/vendor/octicons/svg/device-camera.svg rename to assets/_scss/vendor/octicons/svg/device-camera.svg diff --git a/assets/vendor/octicons/svg/device-desktop.svg b/assets/_scss/vendor/octicons/svg/device-desktop.svg similarity index 100% rename from assets/vendor/octicons/svg/device-desktop.svg rename to assets/_scss/vendor/octicons/svg/device-desktop.svg diff --git a/assets/vendor/octicons/svg/device-mobile.svg b/assets/_scss/vendor/octicons/svg/device-mobile.svg similarity index 100% rename from assets/vendor/octicons/svg/device-mobile.svg rename to assets/_scss/vendor/octicons/svg/device-mobile.svg diff --git a/assets/vendor/octicons/svg/diff-added.svg b/assets/_scss/vendor/octicons/svg/diff-added.svg similarity index 100% rename from assets/vendor/octicons/svg/diff-added.svg rename to assets/_scss/vendor/octicons/svg/diff-added.svg diff --git a/assets/vendor/octicons/svg/diff-ignored.svg b/assets/_scss/vendor/octicons/svg/diff-ignored.svg similarity index 100% rename from assets/vendor/octicons/svg/diff-ignored.svg rename to assets/_scss/vendor/octicons/svg/diff-ignored.svg diff --git a/assets/vendor/octicons/svg/diff-modified.svg b/assets/_scss/vendor/octicons/svg/diff-modified.svg similarity index 100% rename from assets/vendor/octicons/svg/diff-modified.svg rename to assets/_scss/vendor/octicons/svg/diff-modified.svg diff --git a/assets/vendor/octicons/svg/diff-removed.svg b/assets/_scss/vendor/octicons/svg/diff-removed.svg similarity index 100% rename from assets/vendor/octicons/svg/diff-removed.svg rename to assets/_scss/vendor/octicons/svg/diff-removed.svg diff --git a/assets/vendor/octicons/svg/diff-renamed.svg b/assets/_scss/vendor/octicons/svg/diff-renamed.svg similarity index 100% rename from assets/vendor/octicons/svg/diff-renamed.svg rename to assets/_scss/vendor/octicons/svg/diff-renamed.svg diff --git a/assets/vendor/octicons/svg/diff.svg b/assets/_scss/vendor/octicons/svg/diff.svg similarity index 100% rename from assets/vendor/octicons/svg/diff.svg rename to assets/_scss/vendor/octicons/svg/diff.svg diff --git a/assets/vendor/octicons/svg/ellipsis.svg b/assets/_scss/vendor/octicons/svg/ellipsis.svg similarity index 100% rename from assets/vendor/octicons/svg/ellipsis.svg rename to assets/_scss/vendor/octicons/svg/ellipsis.svg diff --git a/assets/vendor/octicons/svg/eye.svg b/assets/_scss/vendor/octicons/svg/eye.svg similarity index 100% rename from assets/vendor/octicons/svg/eye.svg rename to assets/_scss/vendor/octicons/svg/eye.svg diff --git a/assets/vendor/octicons/svg/file-binary.svg b/assets/_scss/vendor/octicons/svg/file-binary.svg similarity index 100% rename from assets/vendor/octicons/svg/file-binary.svg rename to assets/_scss/vendor/octicons/svg/file-binary.svg diff --git a/assets/vendor/octicons/svg/file-code.svg b/assets/_scss/vendor/octicons/svg/file-code.svg similarity index 100% rename from assets/vendor/octicons/svg/file-code.svg rename to assets/_scss/vendor/octicons/svg/file-code.svg diff --git a/assets/vendor/octicons/svg/file-directory.svg b/assets/_scss/vendor/octicons/svg/file-directory.svg similarity index 100% rename from assets/vendor/octicons/svg/file-directory.svg rename to assets/_scss/vendor/octicons/svg/file-directory.svg diff --git a/assets/vendor/octicons/svg/file-media.svg b/assets/_scss/vendor/octicons/svg/file-media.svg similarity index 100% rename from assets/vendor/octicons/svg/file-media.svg rename to assets/_scss/vendor/octicons/svg/file-media.svg diff --git a/assets/vendor/octicons/svg/file-pdf.svg b/assets/_scss/vendor/octicons/svg/file-pdf.svg similarity index 100% rename from assets/vendor/octicons/svg/file-pdf.svg rename to assets/_scss/vendor/octicons/svg/file-pdf.svg diff --git a/assets/vendor/octicons/svg/file-submodule.svg b/assets/_scss/vendor/octicons/svg/file-submodule.svg similarity index 100% rename from assets/vendor/octicons/svg/file-submodule.svg rename to assets/_scss/vendor/octicons/svg/file-submodule.svg diff --git a/assets/vendor/octicons/svg/file-symlink-directory.svg b/assets/_scss/vendor/octicons/svg/file-symlink-directory.svg similarity index 100% rename from assets/vendor/octicons/svg/file-symlink-directory.svg rename to assets/_scss/vendor/octicons/svg/file-symlink-directory.svg diff --git a/assets/vendor/octicons/svg/file-symlink-file.svg b/assets/_scss/vendor/octicons/svg/file-symlink-file.svg similarity index 100% rename from assets/vendor/octicons/svg/file-symlink-file.svg rename to assets/_scss/vendor/octicons/svg/file-symlink-file.svg diff --git a/assets/vendor/octicons/svg/file-text.svg b/assets/_scss/vendor/octicons/svg/file-text.svg similarity index 100% rename from assets/vendor/octicons/svg/file-text.svg rename to assets/_scss/vendor/octicons/svg/file-text.svg diff --git a/assets/vendor/octicons/svg/file-zip.svg b/assets/_scss/vendor/octicons/svg/file-zip.svg similarity index 100% rename from assets/vendor/octicons/svg/file-zip.svg rename to assets/_scss/vendor/octicons/svg/file-zip.svg diff --git a/assets/vendor/octicons/svg/flame.svg b/assets/_scss/vendor/octicons/svg/flame.svg similarity index 100% rename from assets/vendor/octicons/svg/flame.svg rename to assets/_scss/vendor/octicons/svg/flame.svg diff --git a/assets/vendor/octicons/svg/fold.svg b/assets/_scss/vendor/octicons/svg/fold.svg similarity index 100% rename from assets/vendor/octicons/svg/fold.svg rename to assets/_scss/vendor/octicons/svg/fold.svg diff --git a/assets/vendor/octicons/svg/gear.svg b/assets/_scss/vendor/octicons/svg/gear.svg similarity index 100% rename from assets/vendor/octicons/svg/gear.svg rename to assets/_scss/vendor/octicons/svg/gear.svg diff --git a/assets/vendor/octicons/svg/gift.svg b/assets/_scss/vendor/octicons/svg/gift.svg similarity index 100% rename from assets/vendor/octicons/svg/gift.svg rename to assets/_scss/vendor/octicons/svg/gift.svg diff --git a/assets/vendor/octicons/svg/gist-secret.svg b/assets/_scss/vendor/octicons/svg/gist-secret.svg similarity index 100% rename from assets/vendor/octicons/svg/gist-secret.svg rename to assets/_scss/vendor/octicons/svg/gist-secret.svg diff --git a/assets/vendor/octicons/svg/gist.svg b/assets/_scss/vendor/octicons/svg/gist.svg similarity index 100% rename from assets/vendor/octicons/svg/gist.svg rename to assets/_scss/vendor/octicons/svg/gist.svg diff --git a/assets/vendor/octicons/svg/git-branch.svg b/assets/_scss/vendor/octicons/svg/git-branch.svg similarity index 100% rename from assets/vendor/octicons/svg/git-branch.svg rename to assets/_scss/vendor/octicons/svg/git-branch.svg diff --git a/assets/vendor/octicons/svg/git-commit.svg b/assets/_scss/vendor/octicons/svg/git-commit.svg similarity index 100% rename from assets/vendor/octicons/svg/git-commit.svg rename to assets/_scss/vendor/octicons/svg/git-commit.svg diff --git a/assets/vendor/octicons/svg/git-compare.svg b/assets/_scss/vendor/octicons/svg/git-compare.svg similarity index 100% rename from assets/vendor/octicons/svg/git-compare.svg rename to assets/_scss/vendor/octicons/svg/git-compare.svg diff --git a/assets/vendor/octicons/svg/git-merge.svg b/assets/_scss/vendor/octicons/svg/git-merge.svg similarity index 100% rename from assets/vendor/octicons/svg/git-merge.svg rename to assets/_scss/vendor/octicons/svg/git-merge.svg diff --git a/assets/vendor/octicons/svg/git-pull-request.svg b/assets/_scss/vendor/octicons/svg/git-pull-request.svg similarity index 100% rename from assets/vendor/octicons/svg/git-pull-request.svg rename to assets/_scss/vendor/octicons/svg/git-pull-request.svg diff --git a/assets/vendor/octicons/svg/globe.svg b/assets/_scss/vendor/octicons/svg/globe.svg similarity index 100% rename from assets/vendor/octicons/svg/globe.svg rename to assets/_scss/vendor/octicons/svg/globe.svg diff --git a/assets/vendor/octicons/svg/graph.svg b/assets/_scss/vendor/octicons/svg/graph.svg similarity index 100% rename from assets/vendor/octicons/svg/graph.svg rename to assets/_scss/vendor/octicons/svg/graph.svg diff --git a/assets/vendor/octicons/svg/heart.svg b/assets/_scss/vendor/octicons/svg/heart.svg similarity index 100% rename from assets/vendor/octicons/svg/heart.svg rename to assets/_scss/vendor/octicons/svg/heart.svg diff --git a/assets/vendor/octicons/svg/history.svg b/assets/_scss/vendor/octicons/svg/history.svg similarity index 100% rename from assets/vendor/octicons/svg/history.svg rename to assets/_scss/vendor/octicons/svg/history.svg diff --git a/assets/vendor/octicons/svg/home.svg b/assets/_scss/vendor/octicons/svg/home.svg similarity index 100% rename from assets/vendor/octicons/svg/home.svg rename to assets/_scss/vendor/octicons/svg/home.svg diff --git a/assets/vendor/octicons/svg/horizontal-rule.svg b/assets/_scss/vendor/octicons/svg/horizontal-rule.svg similarity index 100% rename from assets/vendor/octicons/svg/horizontal-rule.svg rename to assets/_scss/vendor/octicons/svg/horizontal-rule.svg diff --git a/assets/vendor/octicons/svg/hourglass.svg b/assets/_scss/vendor/octicons/svg/hourglass.svg similarity index 100% rename from assets/vendor/octicons/svg/hourglass.svg rename to assets/_scss/vendor/octicons/svg/hourglass.svg diff --git a/assets/vendor/octicons/svg/hubot.svg b/assets/_scss/vendor/octicons/svg/hubot.svg similarity index 100% rename from assets/vendor/octicons/svg/hubot.svg rename to assets/_scss/vendor/octicons/svg/hubot.svg diff --git a/assets/vendor/octicons/svg/inbox.svg b/assets/_scss/vendor/octicons/svg/inbox.svg similarity index 100% rename from assets/vendor/octicons/svg/inbox.svg rename to assets/_scss/vendor/octicons/svg/inbox.svg diff --git a/assets/vendor/octicons/svg/info.svg b/assets/_scss/vendor/octicons/svg/info.svg similarity index 100% rename from assets/vendor/octicons/svg/info.svg rename to assets/_scss/vendor/octicons/svg/info.svg diff --git a/assets/vendor/octicons/svg/issue-closed.svg b/assets/_scss/vendor/octicons/svg/issue-closed.svg similarity index 100% rename from assets/vendor/octicons/svg/issue-closed.svg rename to assets/_scss/vendor/octicons/svg/issue-closed.svg diff --git a/assets/vendor/octicons/svg/issue-opened.svg b/assets/_scss/vendor/octicons/svg/issue-opened.svg similarity index 100% rename from assets/vendor/octicons/svg/issue-opened.svg rename to assets/_scss/vendor/octicons/svg/issue-opened.svg diff --git a/assets/vendor/octicons/svg/issue-reopened.svg b/assets/_scss/vendor/octicons/svg/issue-reopened.svg similarity index 100% rename from assets/vendor/octicons/svg/issue-reopened.svg rename to assets/_scss/vendor/octicons/svg/issue-reopened.svg diff --git a/assets/vendor/octicons/svg/jersey.svg b/assets/_scss/vendor/octicons/svg/jersey.svg similarity index 100% rename from assets/vendor/octicons/svg/jersey.svg rename to assets/_scss/vendor/octicons/svg/jersey.svg diff --git a/assets/vendor/octicons/svg/jump-down.svg b/assets/_scss/vendor/octicons/svg/jump-down.svg similarity index 100% rename from assets/vendor/octicons/svg/jump-down.svg rename to assets/_scss/vendor/octicons/svg/jump-down.svg diff --git a/assets/vendor/octicons/svg/jump-left.svg b/assets/_scss/vendor/octicons/svg/jump-left.svg similarity index 100% rename from assets/vendor/octicons/svg/jump-left.svg rename to assets/_scss/vendor/octicons/svg/jump-left.svg diff --git a/assets/vendor/octicons/svg/jump-right.svg b/assets/_scss/vendor/octicons/svg/jump-right.svg similarity index 100% rename from assets/vendor/octicons/svg/jump-right.svg rename to assets/_scss/vendor/octicons/svg/jump-right.svg diff --git a/assets/vendor/octicons/svg/jump-up.svg b/assets/_scss/vendor/octicons/svg/jump-up.svg similarity index 100% rename from assets/vendor/octicons/svg/jump-up.svg rename to assets/_scss/vendor/octicons/svg/jump-up.svg diff --git a/assets/vendor/octicons/svg/key.svg b/assets/_scss/vendor/octicons/svg/key.svg similarity index 100% rename from assets/vendor/octicons/svg/key.svg rename to assets/_scss/vendor/octicons/svg/key.svg diff --git a/assets/vendor/octicons/svg/keyboard.svg b/assets/_scss/vendor/octicons/svg/keyboard.svg similarity index 100% rename from assets/vendor/octicons/svg/keyboard.svg rename to assets/_scss/vendor/octicons/svg/keyboard.svg diff --git a/assets/vendor/octicons/svg/law.svg b/assets/_scss/vendor/octicons/svg/law.svg similarity index 100% rename from assets/vendor/octicons/svg/law.svg rename to assets/_scss/vendor/octicons/svg/law.svg diff --git a/assets/vendor/octicons/svg/light-bulb.svg b/assets/_scss/vendor/octicons/svg/light-bulb.svg similarity index 100% rename from assets/vendor/octicons/svg/light-bulb.svg rename to assets/_scss/vendor/octicons/svg/light-bulb.svg diff --git a/assets/vendor/octicons/svg/link-external.svg b/assets/_scss/vendor/octicons/svg/link-external.svg similarity index 100% rename from assets/vendor/octicons/svg/link-external.svg rename to assets/_scss/vendor/octicons/svg/link-external.svg diff --git a/assets/vendor/octicons/svg/link.svg b/assets/_scss/vendor/octicons/svg/link.svg similarity index 100% rename from assets/vendor/octicons/svg/link.svg rename to assets/_scss/vendor/octicons/svg/link.svg diff --git a/assets/vendor/octicons/svg/list-ordered.svg b/assets/_scss/vendor/octicons/svg/list-ordered.svg similarity index 100% rename from assets/vendor/octicons/svg/list-ordered.svg rename to assets/_scss/vendor/octicons/svg/list-ordered.svg diff --git a/assets/vendor/octicons/svg/list-unordered.svg b/assets/_scss/vendor/octicons/svg/list-unordered.svg similarity index 100% rename from assets/vendor/octicons/svg/list-unordered.svg rename to assets/_scss/vendor/octicons/svg/list-unordered.svg diff --git a/assets/vendor/octicons/svg/location.svg b/assets/_scss/vendor/octicons/svg/location.svg similarity index 100% rename from assets/vendor/octicons/svg/location.svg rename to assets/_scss/vendor/octicons/svg/location.svg diff --git a/assets/vendor/octicons/svg/lock.svg b/assets/_scss/vendor/octicons/svg/lock.svg similarity index 100% rename from assets/vendor/octicons/svg/lock.svg rename to assets/_scss/vendor/octicons/svg/lock.svg diff --git a/assets/vendor/octicons/svg/logo-github.svg b/assets/_scss/vendor/octicons/svg/logo-github.svg similarity index 100% rename from assets/vendor/octicons/svg/logo-github.svg rename to assets/_scss/vendor/octicons/svg/logo-github.svg diff --git a/assets/vendor/octicons/svg/mail-read.svg b/assets/_scss/vendor/octicons/svg/mail-read.svg similarity index 100% rename from assets/vendor/octicons/svg/mail-read.svg rename to assets/_scss/vendor/octicons/svg/mail-read.svg diff --git a/assets/vendor/octicons/svg/mail-reply.svg b/assets/_scss/vendor/octicons/svg/mail-reply.svg similarity index 100% rename from assets/vendor/octicons/svg/mail-reply.svg rename to assets/_scss/vendor/octicons/svg/mail-reply.svg diff --git a/assets/vendor/octicons/svg/mail.svg b/assets/_scss/vendor/octicons/svg/mail.svg similarity index 100% rename from assets/vendor/octicons/svg/mail.svg rename to assets/_scss/vendor/octicons/svg/mail.svg diff --git a/assets/vendor/octicons/svg/mark-github.svg b/assets/_scss/vendor/octicons/svg/mark-github.svg similarity index 100% rename from assets/vendor/octicons/svg/mark-github.svg rename to assets/_scss/vendor/octicons/svg/mark-github.svg diff --git a/assets/vendor/octicons/svg/markdown.svg b/assets/_scss/vendor/octicons/svg/markdown.svg similarity index 100% rename from assets/vendor/octicons/svg/markdown.svg rename to assets/_scss/vendor/octicons/svg/markdown.svg diff --git a/assets/vendor/octicons/svg/megaphone.svg b/assets/_scss/vendor/octicons/svg/megaphone.svg similarity index 100% rename from assets/vendor/octicons/svg/megaphone.svg rename to assets/_scss/vendor/octicons/svg/megaphone.svg diff --git a/assets/vendor/octicons/svg/mention.svg b/assets/_scss/vendor/octicons/svg/mention.svg similarity index 100% rename from assets/vendor/octicons/svg/mention.svg rename to assets/_scss/vendor/octicons/svg/mention.svg diff --git a/assets/vendor/octicons/svg/microscope.svg b/assets/_scss/vendor/octicons/svg/microscope.svg similarity index 100% rename from assets/vendor/octicons/svg/microscope.svg rename to assets/_scss/vendor/octicons/svg/microscope.svg diff --git a/assets/vendor/octicons/svg/milestone.svg b/assets/_scss/vendor/octicons/svg/milestone.svg similarity index 100% rename from assets/vendor/octicons/svg/milestone.svg rename to assets/_scss/vendor/octicons/svg/milestone.svg diff --git a/assets/vendor/octicons/svg/mirror.svg b/assets/_scss/vendor/octicons/svg/mirror.svg similarity index 100% rename from assets/vendor/octicons/svg/mirror.svg rename to assets/_scss/vendor/octicons/svg/mirror.svg diff --git a/assets/vendor/octicons/svg/mortar-board.svg b/assets/_scss/vendor/octicons/svg/mortar-board.svg similarity index 100% rename from assets/vendor/octicons/svg/mortar-board.svg rename to assets/_scss/vendor/octicons/svg/mortar-board.svg diff --git a/assets/vendor/octicons/svg/move-down.svg b/assets/_scss/vendor/octicons/svg/move-down.svg similarity index 100% rename from assets/vendor/octicons/svg/move-down.svg rename to assets/_scss/vendor/octicons/svg/move-down.svg diff --git a/assets/vendor/octicons/svg/move-left.svg b/assets/_scss/vendor/octicons/svg/move-left.svg similarity index 100% rename from assets/vendor/octicons/svg/move-left.svg rename to assets/_scss/vendor/octicons/svg/move-left.svg diff --git a/assets/vendor/octicons/svg/move-right.svg b/assets/_scss/vendor/octicons/svg/move-right.svg similarity index 100% rename from assets/vendor/octicons/svg/move-right.svg rename to assets/_scss/vendor/octicons/svg/move-right.svg diff --git a/assets/vendor/octicons/svg/move-up.svg b/assets/_scss/vendor/octicons/svg/move-up.svg similarity index 100% rename from assets/vendor/octicons/svg/move-up.svg rename to assets/_scss/vendor/octicons/svg/move-up.svg diff --git a/assets/vendor/octicons/svg/mute.svg b/assets/_scss/vendor/octicons/svg/mute.svg similarity index 100% rename from assets/vendor/octicons/svg/mute.svg rename to assets/_scss/vendor/octicons/svg/mute.svg diff --git a/assets/vendor/octicons/svg/no-newline.svg b/assets/_scss/vendor/octicons/svg/no-newline.svg similarity index 100% rename from assets/vendor/octicons/svg/no-newline.svg rename to assets/_scss/vendor/octicons/svg/no-newline.svg diff --git a/assets/vendor/octicons/svg/octoface.svg b/assets/_scss/vendor/octicons/svg/octoface.svg similarity index 100% rename from assets/vendor/octicons/svg/octoface.svg rename to assets/_scss/vendor/octicons/svg/octoface.svg diff --git a/assets/vendor/octicons/svg/organization.svg b/assets/_scss/vendor/octicons/svg/organization.svg similarity index 100% rename from assets/vendor/octicons/svg/organization.svg rename to assets/_scss/vendor/octicons/svg/organization.svg diff --git a/assets/vendor/octicons/svg/package.svg b/assets/_scss/vendor/octicons/svg/package.svg similarity index 100% rename from assets/vendor/octicons/svg/package.svg rename to assets/_scss/vendor/octicons/svg/package.svg diff --git a/assets/vendor/octicons/svg/paintcan.svg b/assets/_scss/vendor/octicons/svg/paintcan.svg similarity index 100% rename from assets/vendor/octicons/svg/paintcan.svg rename to assets/_scss/vendor/octicons/svg/paintcan.svg diff --git a/assets/vendor/octicons/svg/pencil.svg b/assets/_scss/vendor/octicons/svg/pencil.svg similarity index 100% rename from assets/vendor/octicons/svg/pencil.svg rename to assets/_scss/vendor/octicons/svg/pencil.svg diff --git a/assets/vendor/octicons/svg/person.svg b/assets/_scss/vendor/octicons/svg/person.svg similarity index 100% rename from assets/vendor/octicons/svg/person.svg rename to assets/_scss/vendor/octicons/svg/person.svg diff --git a/assets/vendor/octicons/svg/pin.svg b/assets/_scss/vendor/octicons/svg/pin.svg similarity index 100% rename from assets/vendor/octicons/svg/pin.svg rename to assets/_scss/vendor/octicons/svg/pin.svg diff --git a/assets/vendor/octicons/svg/playback-fast-forward.svg b/assets/_scss/vendor/octicons/svg/playback-fast-forward.svg similarity index 100% rename from assets/vendor/octicons/svg/playback-fast-forward.svg rename to assets/_scss/vendor/octicons/svg/playback-fast-forward.svg diff --git a/assets/vendor/octicons/svg/playback-pause.svg b/assets/_scss/vendor/octicons/svg/playback-pause.svg similarity index 100% rename from assets/vendor/octicons/svg/playback-pause.svg rename to assets/_scss/vendor/octicons/svg/playback-pause.svg diff --git a/assets/vendor/octicons/svg/playback-play.svg b/assets/_scss/vendor/octicons/svg/playback-play.svg similarity index 100% rename from assets/vendor/octicons/svg/playback-play.svg rename to assets/_scss/vendor/octicons/svg/playback-play.svg diff --git a/assets/vendor/octicons/svg/playback-rewind.svg b/assets/_scss/vendor/octicons/svg/playback-rewind.svg similarity index 100% rename from assets/vendor/octicons/svg/playback-rewind.svg rename to assets/_scss/vendor/octicons/svg/playback-rewind.svg diff --git a/assets/vendor/octicons/svg/plug.svg b/assets/_scss/vendor/octicons/svg/plug.svg similarity index 100% rename from assets/vendor/octicons/svg/plug.svg rename to assets/_scss/vendor/octicons/svg/plug.svg diff --git a/assets/vendor/octicons/svg/plus.svg b/assets/_scss/vendor/octicons/svg/plus.svg similarity index 100% rename from assets/vendor/octicons/svg/plus.svg rename to assets/_scss/vendor/octicons/svg/plus.svg diff --git a/assets/vendor/octicons/svg/podium.svg b/assets/_scss/vendor/octicons/svg/podium.svg similarity index 100% rename from assets/vendor/octicons/svg/podium.svg rename to assets/_scss/vendor/octicons/svg/podium.svg diff --git a/assets/vendor/octicons/svg/primitive-dot.svg b/assets/_scss/vendor/octicons/svg/primitive-dot.svg similarity index 100% rename from assets/vendor/octicons/svg/primitive-dot.svg rename to assets/_scss/vendor/octicons/svg/primitive-dot.svg diff --git a/assets/vendor/octicons/svg/primitive-square.svg b/assets/_scss/vendor/octicons/svg/primitive-square.svg similarity index 100% rename from assets/vendor/octicons/svg/primitive-square.svg rename to assets/_scss/vendor/octicons/svg/primitive-square.svg diff --git a/assets/vendor/octicons/svg/pulse.svg b/assets/_scss/vendor/octicons/svg/pulse.svg similarity index 100% rename from assets/vendor/octicons/svg/pulse.svg rename to assets/_scss/vendor/octicons/svg/pulse.svg diff --git a/assets/vendor/octicons/svg/puzzle.svg b/assets/_scss/vendor/octicons/svg/puzzle.svg similarity index 100% rename from assets/vendor/octicons/svg/puzzle.svg rename to assets/_scss/vendor/octicons/svg/puzzle.svg diff --git a/assets/vendor/octicons/svg/question.svg b/assets/_scss/vendor/octicons/svg/question.svg similarity index 100% rename from assets/vendor/octicons/svg/question.svg rename to assets/_scss/vendor/octicons/svg/question.svg diff --git a/assets/vendor/octicons/svg/quote.svg b/assets/_scss/vendor/octicons/svg/quote.svg similarity index 100% rename from assets/vendor/octicons/svg/quote.svg rename to assets/_scss/vendor/octicons/svg/quote.svg diff --git a/assets/vendor/octicons/svg/radio-tower.svg b/assets/_scss/vendor/octicons/svg/radio-tower.svg similarity index 100% rename from assets/vendor/octicons/svg/radio-tower.svg rename to assets/_scss/vendor/octicons/svg/radio-tower.svg diff --git a/assets/vendor/octicons/svg/repo-clone.svg b/assets/_scss/vendor/octicons/svg/repo-clone.svg similarity index 100% rename from assets/vendor/octicons/svg/repo-clone.svg rename to assets/_scss/vendor/octicons/svg/repo-clone.svg diff --git a/assets/vendor/octicons/svg/repo-force-push.svg b/assets/_scss/vendor/octicons/svg/repo-force-push.svg similarity index 100% rename from assets/vendor/octicons/svg/repo-force-push.svg rename to assets/_scss/vendor/octicons/svg/repo-force-push.svg diff --git a/assets/vendor/octicons/svg/repo-forked.svg b/assets/_scss/vendor/octicons/svg/repo-forked.svg similarity index 100% rename from assets/vendor/octicons/svg/repo-forked.svg rename to assets/_scss/vendor/octicons/svg/repo-forked.svg diff --git a/assets/vendor/octicons/svg/repo-pull.svg b/assets/_scss/vendor/octicons/svg/repo-pull.svg similarity index 100% rename from assets/vendor/octicons/svg/repo-pull.svg rename to assets/_scss/vendor/octicons/svg/repo-pull.svg diff --git a/assets/vendor/octicons/svg/repo-push.svg b/assets/_scss/vendor/octicons/svg/repo-push.svg similarity index 100% rename from assets/vendor/octicons/svg/repo-push.svg rename to assets/_scss/vendor/octicons/svg/repo-push.svg diff --git a/assets/vendor/octicons/svg/repo.svg b/assets/_scss/vendor/octicons/svg/repo.svg similarity index 100% rename from assets/vendor/octicons/svg/repo.svg rename to assets/_scss/vendor/octicons/svg/repo.svg diff --git a/assets/vendor/octicons/svg/rocket.svg b/assets/_scss/vendor/octicons/svg/rocket.svg similarity index 100% rename from assets/vendor/octicons/svg/rocket.svg rename to assets/_scss/vendor/octicons/svg/rocket.svg diff --git a/assets/vendor/octicons/svg/rss.svg b/assets/_scss/vendor/octicons/svg/rss.svg similarity index 100% rename from assets/vendor/octicons/svg/rss.svg rename to assets/_scss/vendor/octicons/svg/rss.svg diff --git a/assets/vendor/octicons/svg/ruby.svg b/assets/_scss/vendor/octicons/svg/ruby.svg similarity index 100% rename from assets/vendor/octicons/svg/ruby.svg rename to assets/_scss/vendor/octicons/svg/ruby.svg diff --git a/assets/vendor/octicons/svg/screen-full.svg b/assets/_scss/vendor/octicons/svg/screen-full.svg similarity index 100% rename from assets/vendor/octicons/svg/screen-full.svg rename to assets/_scss/vendor/octicons/svg/screen-full.svg diff --git a/assets/vendor/octicons/svg/screen-normal.svg b/assets/_scss/vendor/octicons/svg/screen-normal.svg similarity index 100% rename from assets/vendor/octicons/svg/screen-normal.svg rename to assets/_scss/vendor/octicons/svg/screen-normal.svg diff --git a/assets/vendor/octicons/svg/search.svg b/assets/_scss/vendor/octicons/svg/search.svg similarity index 100% rename from assets/vendor/octicons/svg/search.svg rename to assets/_scss/vendor/octicons/svg/search.svg diff --git a/assets/vendor/octicons/svg/server.svg b/assets/_scss/vendor/octicons/svg/server.svg similarity index 100% rename from assets/vendor/octicons/svg/server.svg rename to assets/_scss/vendor/octicons/svg/server.svg diff --git a/assets/vendor/octicons/svg/settings.svg b/assets/_scss/vendor/octicons/svg/settings.svg similarity index 100% rename from assets/vendor/octicons/svg/settings.svg rename to assets/_scss/vendor/octicons/svg/settings.svg diff --git a/assets/vendor/octicons/svg/sign-in.svg b/assets/_scss/vendor/octicons/svg/sign-in.svg similarity index 100% rename from assets/vendor/octicons/svg/sign-in.svg rename to assets/_scss/vendor/octicons/svg/sign-in.svg diff --git a/assets/vendor/octicons/svg/sign-out.svg b/assets/_scss/vendor/octicons/svg/sign-out.svg similarity index 100% rename from assets/vendor/octicons/svg/sign-out.svg rename to assets/_scss/vendor/octicons/svg/sign-out.svg diff --git a/assets/vendor/octicons/svg/split.svg b/assets/_scss/vendor/octicons/svg/split.svg similarity index 100% rename from assets/vendor/octicons/svg/split.svg rename to assets/_scss/vendor/octicons/svg/split.svg diff --git a/assets/vendor/octicons/svg/squirrel.svg b/assets/_scss/vendor/octicons/svg/squirrel.svg similarity index 100% rename from assets/vendor/octicons/svg/squirrel.svg rename to assets/_scss/vendor/octicons/svg/squirrel.svg diff --git a/assets/vendor/octicons/svg/star.svg b/assets/_scss/vendor/octicons/svg/star.svg similarity index 100% rename from assets/vendor/octicons/svg/star.svg rename to assets/_scss/vendor/octicons/svg/star.svg diff --git a/assets/vendor/octicons/svg/steps.svg b/assets/_scss/vendor/octicons/svg/steps.svg similarity index 100% rename from assets/vendor/octicons/svg/steps.svg rename to assets/_scss/vendor/octicons/svg/steps.svg diff --git a/assets/vendor/octicons/svg/stop.svg b/assets/_scss/vendor/octicons/svg/stop.svg similarity index 100% rename from assets/vendor/octicons/svg/stop.svg rename to assets/_scss/vendor/octicons/svg/stop.svg diff --git a/assets/vendor/octicons/svg/sync.svg b/assets/_scss/vendor/octicons/svg/sync.svg similarity index 100% rename from assets/vendor/octicons/svg/sync.svg rename to assets/_scss/vendor/octicons/svg/sync.svg diff --git a/assets/vendor/octicons/svg/tag.svg b/assets/_scss/vendor/octicons/svg/tag.svg similarity index 100% rename from assets/vendor/octicons/svg/tag.svg rename to assets/_scss/vendor/octicons/svg/tag.svg diff --git a/assets/vendor/octicons/svg/telescope.svg b/assets/_scss/vendor/octicons/svg/telescope.svg similarity index 100% rename from assets/vendor/octicons/svg/telescope.svg rename to assets/_scss/vendor/octicons/svg/telescope.svg diff --git a/assets/vendor/octicons/svg/terminal.svg b/assets/_scss/vendor/octicons/svg/terminal.svg similarity index 100% rename from assets/vendor/octicons/svg/terminal.svg rename to assets/_scss/vendor/octicons/svg/terminal.svg diff --git a/assets/vendor/octicons/svg/three-bars.svg b/assets/_scss/vendor/octicons/svg/three-bars.svg similarity index 100% rename from assets/vendor/octicons/svg/three-bars.svg rename to assets/_scss/vendor/octicons/svg/three-bars.svg diff --git a/assets/vendor/octicons/svg/tools.svg b/assets/_scss/vendor/octicons/svg/tools.svg similarity index 100% rename from assets/vendor/octicons/svg/tools.svg rename to assets/_scss/vendor/octicons/svg/tools.svg diff --git a/assets/vendor/octicons/svg/trashcan.svg b/assets/_scss/vendor/octicons/svg/trashcan.svg similarity index 100% rename from assets/vendor/octicons/svg/trashcan.svg rename to assets/_scss/vendor/octicons/svg/trashcan.svg diff --git a/assets/vendor/octicons/svg/triangle-down.svg b/assets/_scss/vendor/octicons/svg/triangle-down.svg similarity index 100% rename from assets/vendor/octicons/svg/triangle-down.svg rename to assets/_scss/vendor/octicons/svg/triangle-down.svg diff --git a/assets/vendor/octicons/svg/triangle-left.svg b/assets/_scss/vendor/octicons/svg/triangle-left.svg similarity index 100% rename from assets/vendor/octicons/svg/triangle-left.svg rename to assets/_scss/vendor/octicons/svg/triangle-left.svg diff --git a/assets/vendor/octicons/svg/triangle-right.svg b/assets/_scss/vendor/octicons/svg/triangle-right.svg similarity index 100% rename from assets/vendor/octicons/svg/triangle-right.svg rename to assets/_scss/vendor/octicons/svg/triangle-right.svg diff --git a/assets/vendor/octicons/svg/triangle-up.svg b/assets/_scss/vendor/octicons/svg/triangle-up.svg similarity index 100% rename from assets/vendor/octicons/svg/triangle-up.svg rename to assets/_scss/vendor/octicons/svg/triangle-up.svg diff --git a/assets/vendor/octicons/svg/unfold.svg b/assets/_scss/vendor/octicons/svg/unfold.svg similarity index 100% rename from assets/vendor/octicons/svg/unfold.svg rename to assets/_scss/vendor/octicons/svg/unfold.svg diff --git a/assets/vendor/octicons/svg/unmute.svg b/assets/_scss/vendor/octicons/svg/unmute.svg similarity index 100% rename from assets/vendor/octicons/svg/unmute.svg rename to assets/_scss/vendor/octicons/svg/unmute.svg diff --git a/assets/vendor/octicons/svg/versions.svg b/assets/_scss/vendor/octicons/svg/versions.svg similarity index 100% rename from assets/vendor/octicons/svg/versions.svg rename to assets/_scss/vendor/octicons/svg/versions.svg diff --git a/assets/vendor/octicons/svg/x.svg b/assets/_scss/vendor/octicons/svg/x.svg similarity index 100% rename from assets/vendor/octicons/svg/x.svg rename to assets/_scss/vendor/octicons/svg/x.svg diff --git a/assets/vendor/octicons/svg/zap.svg b/assets/_scss/vendor/octicons/svg/zap.svg similarity index 100% rename from assets/vendor/octicons/svg/zap.svg rename to assets/_scss/vendor/octicons/svg/zap.svg diff --git a/_stylesheets/course.css b/assets/css/course.css similarity index 100% rename from _stylesheets/course.css rename to assets/css/course.css diff --git a/_stylesheets/curriculum.scss b/assets/css/curriculum.scss similarity index 98% rename from _stylesheets/curriculum.scss rename to assets/css/curriculum.scss index b60f99e5a..cb14f2595 100644 --- a/_stylesheets/curriculum.scss +++ b/assets/css/curriculum.scss @@ -3,8 +3,8 @@ --- // Import external dependencies -@import "octicons/octicons/sprockets-octicons.scss"; -@import "bootstrap-sass/lib/bootstrap.scss"; +@import "vendor/octicons/octicons/sprockets-octicons.scss"; +@import "vendor/bootstrap-sass/lib/bootstrap.scss"; body{ diff --git a/assets/css/main.css b/assets/css/main.css deleted file mode 100644 index 384330f47..000000000 --- a/assets/css/main.css +++ /dev/null @@ -1,22 +0,0 @@ -a:focus{outline:thin dotted #f89406;outline:5px auto #f89406;outline-offset:-2px}*,*:before,*:after{box-sizing:border-box}html{box-sizing:border-box;background-color:#fff;font-size:16px;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}@media (min-width: 48em){html{font-size:18px}}body{margin:0}::-moz-selection{color:#fff;background:#000}::selection{color:#fff;background:#000}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}a{color:#52adc8}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}body{margin:0;padding:0;color:#494e52;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;line-height:1.5}body.overflow--hidden{overflow:hidden}h1,h2,h3,h4,h5,h6{margin:2em 0 0.5em;line-height:1.2;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}h1{margin-top:0;font-size:1.563em}h2{font-size:1.25em}h3{font-size:1em}h4{font-size:.75em}h5{font-size:.75em}h6{font-size:.75em}small,.small{font-size:.75em}p{margin-bottom:1.3em}u,ins{text-decoration:none;border-bottom:1px solid #494e52}u a,ins a{color:inherit}del a{color:inherit}p,pre,blockquote,ul,ol,dl,figure,table,fieldset{orphans:3;widows:3}abbr[title],abbr[data-original-title]{text-decoration:none;cursor:help;border-bottom:1px dotted #494e52}blockquote{margin:2em 1em 2em 0;padding-left:1em;padding-right:1em;font-style:italic;border-left:0.25em solid #7a8288}blockquote cite{font-style:italic}blockquote cite:before{content:"\2014";padding-right:5px}a:hover,a:active{outline:0}tt,code,kbd,samp,pre{font-family:Monaco,Consolas,"Lucida Console",monospace}pre{overflow-x:auto}p>code,a>code,li>code,figcaption>code,td>code{padding-top:0.1rem;padding-bottom:0.1rem;font-size:.75em;background:#fafafa;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}p>code:before,p>code:after,a>code:before,a>code:after,li>code:before,li>code:after,figcaption>code:before,figcaption>code:after,td>code:before,td>code:after{letter-spacing:-0.2em;content:"\00a0"}hr{display:block;margin:1em 0;border:0;border-top:1px solid #f2f3f3}ul li,ol li{margin-bottom:0.5em}li ul,li ol{margin-top:0.5em}figure{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:2em 0}figure img,figure iframe,figure .fluid-width-video-wrapper{margin-bottom:1em}figure img{width:100%;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}figure>a{display:block}@media (min-width: 37.5em){figure.half>a,figure.half>img{width:calc(50% - 0.5em)}}figure.half figcaption{width:100%}@media (min-width: 37.5em){figure.third>a,figure.third>img{width:calc(33.3333% - 0.5em)}}figure.third figcaption{width:100%}figcaption{margin-bottom:0.5em;color:#777a7d;font-family:Georgia,Times,serif;font-size:.75em}figcaption a{color:inherit;text-decoration:none;border-bottom:1px solid #bdc1c4;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}figcaption a:hover{color:#000;border-bottom-color:#000}svg:not(:root){overflow:hidden}nav ul{margin:0;padding:0}nav li{list-style:none}nav a{text-decoration:none}nav ul li,nav ol li{margin-bottom:0}nav li ul,nav li ol{margin-top:0}b,i,strong,em,blockquote,p,q,span,figure,img,h1,h2,header,input,a,tr,td,form button,input[type="submit"],.btn,#goog-wm-sb,.highlight,.archive__item-teaser{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.hidden{display:none;visibility:hidden}.load{display:none}.transparent{opacity:0}.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-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,0.6)}.skip-link{position:fixed;z-index:20;margin:0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;white-space:nowrap}.skip-link li{height:0;width:0;list-style:none}.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}.cf{clear:both}.wrapper{max-width:1024px;margin-left:auto;margin-right:auto}.wrapper:after{content:" ";display:block;clear:both}.align-left{display:block;margin-left:auto;margin-right:auto}@media (min-width: 37.5em){.align-left{float:left;margin-right:1em}}.align-right{display:block;margin-left:auto;margin-right:auto}@media (min-width: 37.5em){.align-right{float:right;margin-left:1em}}.align-center{display:block;margin-left:auto;margin-right:auto}@media (min-width: 64em){.full{margin-right:-19.49153% !important}}.icon{display:inline-block;fill:currentColor;width:1em;height:1.1em;line-height:1;position:relative;top:-0.1em;vertical-align:middle}.social-icons .fa{color:#000;display:initial}.social-icons .fa-behance,.social-icons .fa-behance-square{color:#1769FF}.social-icons .fa-dribbble{color:#ea4c89}.social-icons .fa-facebook,.social-icons .fa-facebook-square{color:#3b5998}.social-icons .fa-flickr{color:#ff0084}.social-icons .fa-foursquare{color:#0072b1}.social-icons .fa-github,.social-icons .fa-github-alt,.social-icons .fa-github-square{color:#171516}.social-icons .fa-google-plus,.social-icons .fa-google-plus-square{color:#dd4b39}.social-icons .fa-instagram{color:#517fa4}.social-icons .fa-lastfm,.social-icons .fa-lastfm-square{color:#d51007}.social-icons .fa-linkedin,.social-icons .fa-linkedin-square{color:#007bb6}.social-icons .fa-pinterest,.social-icons .fa-pinterest-p,.social-icons .fa-pinterest-square{color:#cb2027}.social-icons .fa-rss,.social-icons .fa-rss-square{color:#fa9b39}.social-icons .fa-soundcloud{color:#f30}.social-icons .fa-stack-exchange,.social-icons .fa-stack-overflow{color:#fe7a15}.social-icons .fa-tumblr,.social-icons .fa-tumblr-square{color:#32506d}.social-icons .fa-twitter,.social-icons .fa-twitter-square{color:#55acee}.social-icons .fa-vimeo,.social-icons .fa-vimeo-square{color:#1ab7ea}.social-icons .fa-vine{color:#00bf8f}.social-icons .fa-youtube,.social-icons .fa-youtube-square,.social-icons .fa-youtube-play{color:#b00}.social-icons .fa-xing,.social-icons .fa-xing-square{color:#006567}.navicon{position:relative;width:28px;height:4px;background:#fff;margin:auto;-webkit-transition:0.3s;transition:0.3s}.navicon:before,.navicon:after{content:"";position:absolute;left:0;width:28px;height:4px;background:#fff;-webkit-transition:0.3s;transition:0.3s}.navicon:before{top:-8px}.navicon:after{bottom:-8px}.close .navicon{background:transparent}.close .navicon:before,.close .navicon:after{-webkit-transform-origin:50% 50%;transform-origin:50% 50%;top:0;width:28px}.close .navicon:before{-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg)}.close .navicon:after{-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg)}@media (min-width: 64em){.sticky{clear:both;position:-webkit-sticky;position:sticky;top:2em}.sticky::after{clear:both;content:"";display:table}.sticky>*{display:block}}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.footnote{color:#9ba1a6;text-decoration:none}.footnotes{color:#9ba1a6}.footnotes ol,.footnotes li,.footnotes p{margin-bottom:0;font-size:.75em}a.reversefootnote{color:#7a8288;text-decoration:none}a.reversefootnote:hover{text-decoration:underline}@-webkit-keyframes intro{0%{opacity:0}100%{opacity:1}}@keyframes intro{0%{opacity:0}100%{opacity:1}}table{margin-bottom:1em;width:100%;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;border-collapse:collapse;border:1px solid #bdc1c4}table+table{margin-top:1em}thead{background-color:#f2f3f3;border-bottom:1px solid #bdc1c4}th{padding:0.5em;font-weight:bold;text-align:left;border-right:1px solid #bdc1c4}td{padding:0.5em;border-bottom:1px solid #bdc1c4;border-right:1px solid #bdc1c4}tr,td,th{vertical-align:middle}.btn,#goog-wm-sb{display:inline-block;margin-bottom:0.25em;padding:0.5em 1em;color:#fff !important;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold;text-align:center;text-decoration:none;background-color:#7a8288;border:0 !important;border-radius:4px;cursor:pointer}.btn:hover,#goog-wm-sb:hover{background-color:#333}.btn .icon,#goog-wm-sb .icon{margin-right:0.5em}.btn .icon+.hidden,#goog-wm-sb .icon+.hidden{margin-left:-0.5em}.btn--block{display:block;width:100%}.btn--block+.btn--block{margin-top:0.25em}.btn--inverse{color:#7a8288 !important;border:1px solid #bdc1c4 !important;background-color:#fff}.btn--inverse:hover{color:#fff !important;border-color:#7a8288}.btn--light-outline{border:1px solid #fff !important;background-color:transparent}.btn--info{background-color:#52adc8}.btn--info:hover{background-color:#428aa0}.btn--warning{background-color:#f89406}.btn--warning:hover{background-color:#c67605}.btn--success{background-color:#62c462}.btn--success:hover{background-color:#4e9d4e}.btn--danger{background-color:#ee5f5b}.btn--danger:hover{background-color:#be4c49}.btn--disabled{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:0.65}.btn--facebook{background-color:#3b5998}.btn--facebook:hover{background-color:#2f477a}.btn--twitter{background-color:#55acee}.btn--twitter:hover{background-color:#448abe}.btn--google-plus{background-color:#dd4b39}.btn--google-plus:hover{background-color:#b13c2e}.btn--linkedin{background-color:#007bb6}.btn--linkedin:hover{background-color:#006292}.btn--x-large{font-size:1.25em}.btn--large{font-size:1em}.btn--small{font-size:.6875em}.notice{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#f8f9f9;border-radius:4px;box-shadow:0 1px 1px rgba(189,193,196,0.25)}.notice h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice h4{margin-bottom:0;font-size:1em}.notice p:last-child{margin-bottom:0 !important}.notice h4+p{margin-top:0;padding-top:0}.notice a{color:#bdc1c4}.notice a:hover{color:#717476}.notice code{background-color:#fcfcfc}.notice ul:last-child{margin-bottom:0}.notice--primary{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(122,130,136,0.25)}.notice--primary h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--primary h4{margin-bottom:0;font-size:1em}.notice--primary p:last-child{margin-bottom:0 !important}.notice--primary h4+p{margin-top:0;padding-top:0}.notice--primary a{color:#7a8288}.notice--primary a:hover{color:#494e52}.notice--primary code{background-color:#f8f9f9}.notice--primary ul:last-child{margin-bottom:0}.notice--info{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#eef7fa;border-radius:4px;box-shadow:0 1px 1px rgba(82,173,200,0.25)}.notice--info h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--info h4{margin-bottom:0;font-size:1em}.notice--info p:last-child{margin-bottom:0 !important}.notice--info h4+p{margin-top:0;padding-top:0}.notice--info a{color:#52adc8}.notice--info a:hover{color:#316878}.notice--info code{background-color:#f6fbfc}.notice--info ul:last-child{margin-bottom:0}.notice--warning{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#fef4e6;border-radius:4px;box-shadow:0 1px 1px rgba(248,148,6,0.25)}.notice--warning h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--warning h4{margin-bottom:0;font-size:1em}.notice--warning p:last-child{margin-bottom:0 !important}.notice--warning h4+p{margin-top:0;padding-top:0}.notice--warning a{color:#f89406}.notice--warning a:hover{color:#955904}.notice--warning code{background-color:#fffaf3}.notice--warning ul:last-child{margin-bottom:0}.notice--success{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#eff9ef;border-radius:4px;box-shadow:0 1px 1px rgba(98,196,98,0.25)}.notice--success h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--success h4{margin-bottom:0;font-size:1em}.notice--success p:last-child{margin-bottom:0 !important}.notice--success h4+p{margin-top:0;padding-top:0}.notice--success a{color:#62c462}.notice--success a:hover{color:#3b763b}.notice--success code{background-color:#f7fcf7}.notice--success ul:last-child{margin-bottom:0}.notice--danger{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#fdefef;border-radius:4px;box-shadow:0 1px 1px rgba(238,95,91,0.25)}.notice--danger h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--danger h4{margin-bottom:0;font-size:1em}.notice--danger p:last-child{margin-bottom:0 !important}.notice--danger h4+p{margin-top:0;padding-top:0}.notice--danger a{color:#ee5f5b}.notice--danger a:hover{color:#8f3937}.notice--danger code{background-color:#fef7f7}.notice--danger ul:last-child{margin-bottom:0}.masthead{position:relative;border-bottom:1px solid #f2f3f3;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.15s;animation-delay:0.15s;z-index:20}.masthead__inner-wrap{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;padding:1em 1em 1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:700;text-transform:uppercase}.masthead__inner-wrap:after{content:" ";display:block;clear:both}.masthead__inner-wrap::after{clear:both;content:"";display:table}@media (min-width: 80em){.masthead__inner-wrap{max-width:1280px}}.masthead__inner-wrap nav{z-index:10}.masthead__inner-wrap a{text-decoration:none}@media (min-width: 64em){.masthead__menu{padding-left:21.18644%}}.masthead__menu ul{margin:0;padding:0;clear:both;list-style-type:none}.masthead__menu-item{display:block;list-style-type:none;font-size:.75em;white-space:nowrap}.masthead__menu-item--lg{font-size:1em}.breadcrumbs{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;margin-top:0;margin-bottom:0;padding-left:2em;padding-right:2em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.30s;animation-delay:0.30s}.breadcrumbs:after{content:" ";display:block;clear:both}.breadcrumbs::after{clear:both;content:"";display:table}@media (min-width: 64em){.breadcrumbs{padding-left:1em;padding-right:1em}}@media (min-width: 80em){.breadcrumbs{max-width:1280px}}.breadcrumbs ol{padding:0;list-style:none;font-size:.75em}@media (min-width: 64em){.breadcrumbs ol{width:83.05085%;float:right;margin-right:0}}@media (min-width: 80em){.breadcrumbs ol{padding-left:4.23729%}}.breadcrumbs li{display:inline}.breadcrumbs .current{font-weight:bold}.pagination{clear:both;width:100%;float:left;margin-left:0;margin-right:0;clear:both;margin-top:1em;padding-top:1em}.pagination::after{clear:both;content:"";display:table}.pagination ul{margin:0;padding:0;list-style-type:none;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.pagination li{display:block;float:left;margin-left:-1px}.pagination li a{margin-bottom:0.25em;padding:0.5em 1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:14px;font-weight:bold;line-height:1.5;text-align:center;text-decoration:none;color:#9ba1a6;border:1px solid #bdc1c4;border-radius:0}.pagination li a:hover{color:#3e8296}.pagination li a.current{color:#fff;background:#7a8288}.pagination li a.disabled{color:#bdc1c4;pointer-events:none;cursor:not-allowed}.pagination li:first-child{margin-left:0}.pagination li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination--pager{display:block;padding:1em 2em;float:left;width:50%;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em;font-weight:bold;text-align:center;text-decoration:none;color:#9ba1a6;border:1px solid #bdc1c4;border-radius:4px}.pagination--pager:hover{color:#3e8296}.pagination--pager:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.pagination--pager:last-child{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.pagination--pager.disabled{color:#bdc1c4;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 #f2f3f3}.greedy-nav{position:relative;min-width:250px;background:#fff}.greedy-nav a{display:block;margin:0 1rem;padding:0.5rem 0;color:#7a8288;text-decoration:none}.greedy-nav a:hover{color:#5c6266}.greedy-nav button{position:absolute;height:100%;right:0;padding:0 0.5rem;border:0;outline:none;background-color:#7a8288;color:#fff;cursor:pointer}.greedy-nav .visible-links{display:table}.greedy-nav .visible-links li{display:table-cell;vertical-align:middle}.greedy-nav .visible-links li:first-child{font-weight:bold}.greedy-nav .visible-links li:first-child a{margin-left:0}.greedy-nav .visible-links li:last-child a{margin-right:0}.greedy-nav .visible-links a{position:relative}.greedy-nav .visible-links a:before{content:"";position:absolute;bottom:0;height:4px;background:#bdc1c4;width:0;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.greedy-nav .visible-links a:hover:before{width:100%}.greedy-nav .hidden-links{position:absolute;top:100%;right:0;margin-top:15px;padding:5px;border:1px solid #f2f3f3;border-radius:4px;background:#fff;box-shadow:0 0 10px rgba(0,0,0,0.25)}.greedy-nav .hidden-links a{margin:0;padding:10px 20px;font-size:1em}.greedy-nav .hidden-links a:hover{color:#5c6266;background:#dee0e1}.greedy-nav .hidden-links:before{content:"";position:absolute;top:-11px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#f2f3f3 transparent;display:block;z-index:0}.greedy-nav .hidden-links: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}.greedy-nav .hidden-links li{display:block;border-bottom:1px solid #f2f3f3}.greedy-nav .hidden-links li:last-child{border-bottom:none}.nav__list{font-size:1.25rem}.nav__list ul{margin-bottom:1em}.nav__list a{display:block;padding:0.125em 0;color:inherit}.nav__list a:hover{text-decoration:underline}.nav__list .active{margin-left:-0.5em;padding-left:0.5em;padding-right:0.5em;color:#fff;font-weight:bold;background:#7a8288;border-radius:4px}.nav__list .active:hover{color:#fff}.nav__title{margin:0;padding:0.5rem 1rem;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em;font-weight:bold}.nav__sub-title{display:block;margin:0.5rem 0;padding:0.5rem 0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold;text-transform:uppercase;border-bottom:1px solid #f2f3f3}.toc{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;color:#7a8288;text-transform:uppercase;letter-spacing:1px;background-color:#fff;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}.toc .nav__title{color:#fff;font-size:.75em;background:#7a8288;border-top-left-radius:4px;border-top-right-radius:4px}.toc__menu{margin:0;padding:0;width:100%;list-style:none;font-size:0.8rem}.toc__menu a{display:block;padding:0.5rem 1rem;color:#7a8288;font-size:.6875em;font-weight:bold;line-height:1.5;border-bottom:1px solid #f2f3f3}.toc__menu a:hover{color:#000;background:#f2f3f3}.toc__menu>li:last-child a{border-bottom:none}.toc__menu li ul>li a{padding-left:2rem;font-weight:normal}.toc__menu li>ul li{display:none}@media (min-width: 48em){.toc__menu li>ul li{display:block}}.page__footer{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;margin-top:3em;padding:0 1em 3em;color:#9ba1a6;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.45s;animation-delay:0.45s}.page__footer:after{content:" ";display:block;clear:both}.page__footer::after{clear:both;content:"";display:table}@media (min-width: 80em){.page__footer{max-width:1280px}}.page__footer a{color:inherit;text-decoration:none}.page__footer a:hover{text-decoration:underline}.page__footer-copyright{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.6875em}@media (min-width: 64em){.page__footer-copyright{padding-left:21.18644%}}@media (min-width: 64em){.page__footer-follow{padding-left:21.18644%}}.page__footer-follow ul{margin:0;padding:0;list-style-type:none}.page__footer-follow li{display:inline-block;padding-top:5px;padding-bottom:5px;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;text-transform:uppercase}.page__footer-follow li+li:before{content:"";padding-right:5px}.page__footer-follow a{padding-right:10px;font-weight:bold}div.highlighter-rouge,figure.highlight{position:relative;margin-bottom:1em;padding:1em;border:1px solid #f2f3f3;border-radius:4px;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,0.125)}div.highlighter-rouge:before,figure.highlight:before{position:absolute;top:0;right:0;padding:0.5em;background-color:#f2f3f3;content:"\f121";font-family:"fontawesome" !important;font-size:.75em;line-height:1;text-transform:none;speak:none}div.highlighter-rouge .highlight,figure.highlight .highlight{margin:0;font-family:Monaco,Consolas,"Lucida Console",monospace;font-size:.6875em;line-height:1.8}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .c{color:#93a1a1}.highlight .err{color:#586e75}.highlight .g{color:#586e75}.highlight .k{color:#859900}.highlight .l{color:#586e75}.highlight .n{color:#586e75}.highlight .o{color:#859900}.highlight .x{color:#cb4b16}.highlight .p{color:#586e75}.highlight .cm{color:#93a1a1}.highlight .cp{color:#859900}.highlight .c1{color:#93a1a1}.highlight .cs{color:#859900}.highlight .gd{color:#2aa198}.highlight .ge{color:#586e75;font-style:italic}.highlight .gr{color:#dc322f}.highlight .gh{color:#cb4b16}.highlight .gi{color:#859900}.highlight .go{color:#586e75}.highlight .gp{color:#586e75}.highlight .gs{color:#586e75;font-weight:bold}.highlight .gu{color:#cb4b16}.highlight .gt{color:#586e75}.highlight .kc{color:#cb4b16}.highlight .kd{color:#22b3eb}.highlight .kn{color:#859900}.highlight .kp{color:#859900}.highlight .kr{color:#22b3eb}.highlight .kt{color:#dc322f}.highlight .ld{color:#586e75}.highlight .m{color:#2aa198}.highlight .s{color:#2aa198}.highlight .na{color:#586e75}.highlight .nb{color:#B58900}.highlight .nc{color:#22b3eb}.highlight .no{color:#cb4b16}.highlight .nd{color:#22b3eb}.highlight .ni{color:#cb4b16}.highlight .ne{color:#cb4b16}.highlight .nf{color:#22b3eb}.highlight .nl{color:#586e75}.highlight .nn{color:#586e75}.highlight .nx{color:#586e75}.highlight .py{color:#586e75}.highlight .nt{color:#22b3eb}.highlight .nv{color:#22b3eb}.highlight .ow{color:#859900}.highlight .w{color:#586e75}.highlight .mf{color:#2aa198}.highlight .mh{color:#2aa198}.highlight .mi{color:#2aa198}.highlight .mo{color:#2aa198}.highlight .sb{color:#93a1a1}.highlight .sc{color:#2aa198}.highlight .sd{color:#586e75}.highlight .s2{color:#2aa198}.highlight .se{color:#cb4b16}.highlight .sh{color:#586e75}.highlight .si{color:#2aa198}.highlight .sx{color:#2aa198}.highlight .sr{color:#dc322f}.highlight .s1{color:#2aa198}.highlight .ss{color:#2aa198}.highlight .bp{color:#22b3eb}.highlight .vc{color:#22b3eb}.highlight .vg{color:#22b3eb}.highlight .vi{color:#22b3eb}.highlight .il{color:#2aa198}btnform{margin:0 0 5px 0}btnform fieldset{margin-bottom:5px;padding:0;border-width:0}btnform legend{display:block;width:100%;margin-bottom:10px;*margin-left:-7px;padding:0;color:#494e52;border:0;border-bottom:1px solid #ccc;white-space:normal}btnform p{margin-bottom:5px / 2}btnform ul{list-style-type:none;margin:0 0 5px 0;padding:0}btnform br{display:none}label,input,button,select,textarea{vertical-align:baseline;*vertical-align:middle}input,button,select,textarea{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;box-sizing:border-box}label{display:block;margin-bottom:10px / 8;font-weight:bold;color:#494e52;cursor:pointer}label input,label textarea,label select{display:block}input,textarea,select{display:inline-block;width:100%;padding:4px;margin-bottom:5px / 4;background-color:#fff;border:1px solid #ccc;color:#494e52}input:hover,textarea:hover,select:hover{border-color:#bdc1c4}.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}.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}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{opacity:0.5;cursor:not-allowed}input:focus,textarea:focus{border-color:#7a8288;outline:0;outline:thin dotted \9}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{box-shadow:none}.help-block,.help-inline{color:#52adc8}.help-block{display:block;margin-bottom:1em;line-height:1em}.help-inline{display:inline-block;vertical-align:middle;padding-left:5px}.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 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}#goog-fixurl ul{list-style:none;margin-left:0;padding-left:0}#goog-fixurl ul li{list-style-type:none}#goog-wm-qt{width:auto;margin-right:10px;margin-bottom:20px;padding:8px 20px;display:inline-block;font-size:.75em;background-color:#fff;color:#000;border-width:2px !important;border-style:solid !important;border-color:gray;border-radius:4px}#main{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;margin-top:2em;padding-left:1em;padding-right:1em;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.35s;animation-delay:0.35s}#main:after{content:" ";display:block;clear:both}#main::after{clear:both;content:"";display:table}@media (min-width: 80em){#main{max-width:1280px}}@media (min-width: 64em){.page{width:83.05085%;float:right;margin-right:0;padding-left:4.23729%;padding-right:0%}}.page .page__inner-wrap{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page .page__inner-wrap .page__content,.page .page__inner-wrap .page__meta,.page .page__inner-wrap .page__share{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page__title{margin-top:0;line-height:1}.page__title+.page__meta{margin-top:-0.5em}.page__lead{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1.25em}.page__content p,.page__content li,.page__content dl{font-size:1em}.page__content p{margin:0 0 1.3em}.page__content a{text-decoration:none}.page__content a:hover{text-decoration:underline}.page__content a:hover img{box-shadow:0 0 10px rgba(0,0,0,0.25)}.page__content dt{margin-top:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}.page__content dd{margin-left:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em}.page__content .small{font-size:.75em}.page__content blockquote+.small{margin-top:-1.5em;padding-left:1.25rem}.page__hero{position:relative;margin-bottom:2em;clear:both;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.25s;animation-delay:0.25s}.page__hero::after{clear:both;content:"";display:table}.page__hero--overlay{position:relative;margin-bottom:2em;padding:3em 0;clear:both;text-align:center;background-size:cover;background-repeat:no-repeat;background-position:center;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.25s;animation-delay:0.25s}.page__hero--overlay::after{clear:both;content:"";display:table}.page__hero--overlay .wrapper{padding-left:2em;padding-right:2em}.page__hero--overlay .page__title,.page__hero--overlay .page__meta,.page__hero--overlay .page__lead,.page__hero--overlay .btn,.page__hero--overlay #goog-wm-sb{color:#fff}.page__hero--overlay .page__title{font-size:1.953em}@media (min-width: 37.5em){.page__hero--overlay .page__title{font-size:2.441em}}.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:Georgia,Times,serif;font-size:.6875em;background:#000;text-align:right;z-index:5;opacity:0.5;border-radius:4px 0 4px 0}@media (min-width: 64em){.page__hero-caption{padding:5px 10px}}.page__hero-caption a{color:#fff;text-decoration:none}.page__share{margin-top:2em;padding-top:1em;border-top:1px solid #f2f3f3}@media (max-width: 37.5em){.page__share .btn span,.page__share #goog-wm-sb 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:.75em;text-transform:uppercase}.page__meta{margin-top:2em;color:#9ba1a6;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em}.page__meta p{margin:0}.page__meta a{color:inherit}.page__meta-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}.page__taxonomy .sep{display:none}.page__taxonomy 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 #bdc1c4;border-radius:4px}.page__taxonomy-item:hover{text-decoration:none;color:#3e8296}.page__comments{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page__comments-title{margin-top:2rem;margin-bottom:10px;padding-top:2rem;font-size:.75em;border-top:1px solid #f2f3f3;text-transform:uppercase}.page__related{margin-top:2em;padding-top:1em;border-top:1px solid #f2f3f3;clear:both;float:left}.page__related::after{clear:both;content:"";display:table}@media (min-width: 64em){.page__related{margin-left:21.18644%}}.page__related a{color:inherit;text-decoration:none}.page__related-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}.archive{margin-bottom:2em}@media (min-width: 48em){.archive{width:100%;float:left;margin-left:0;margin-right:0}}@media (min-width: 64em){.archive{width:83.05085%;float:right;margin-right:0;padding-left:4.23729%}}.archive a{color:inherit;text-decoration:none}.archive__subtitle{margin:1.414em 0 0;padding-bottom:0.5em;font-size:1em;color:#9ba1a6;border-bottom:1px solid #f2f3f3}.archive__subtitle+.list__item .archive__item-title{margin-top:0.5em}.archive__item-title{margin-bottom:0.25em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em}.archive__item-excerpt{margin-top:0;font-size:.75em}.archive__item-excerpt+p{text-indent:0}.archive__item-teaser{border-radius:4px;overflow:hidden}.archive__item-teaser img{width:100%}a:hover .archive__item-teaser{box-shadow:0 0 10px rgba(0,0,0,0.25)}a:hover .archive__item-title{text-decoration:underline}@media (min-width: 48em){.list__item{padding-right:200px}}@media (min-width: 64em){.list__item{padding-right:300px}}@media (min-width: 80em){.list__item{padding-right:400px}}.list__item .page__meta{margin:0 0 4px}.grid__item{margin-bottom:2em}.grid__item .page__meta{margin:0 0 4px}.grid__item .archive__item-title{margin-top:0.5em;font-size:1em}.grid__item .archive__item-excerpt{display:none}@media (min-width: 37.5em){.grid__item{width:48.97959%;float:left}.grid__item:nth-child(2n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.grid__item:nth-child(2n+2){margin-left:51.02041%;margin-right:-100%;clear:none}.grid__item .archive__item-teaser{max-height:200px}}@media (min-width: 48em){.grid__item{margin-left:0;margin-right:0;width:23.46939%;float:left}.grid__item:nth-child(4n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.grid__item:nth-child(4n+2){margin-left:25.5102%;margin-right:-100%;clear:none}.grid__item:nth-child(4n+3){margin-left:51.02041%;margin-right:-100%;clear:none}.grid__item:nth-child(4n+4){margin-left:76.53061%;margin-right:-100%;clear:none}.grid__item .archive__item-teaser{max-height:120px}.grid__item .archive__item-excerpt{display:block;font-size:.75em}}.feature__wrapper{clear:both;margin-bottom:2em;border-bottom:1px solid #f2f3f3}.feature__wrapper::after{clear:both;content:"";display:table}.feature__item{margin-bottom:2em;font-size:1.25rem}@media (min-width: 37.5em){.feature__item{margin-bottom:0;text-align:center;width:32.20339%;float:left}.feature__item:nth-child(3n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.feature__item:nth-child(3n+2){margin-left:33.89831%;margin-right:-100%;clear:none}.feature__item:nth-child(3n+3){margin-left:67.79661%;margin-right:-100%;clear:none}.feature__item .feature__item-teaser{max-height:200px;overflow:hidden}}.feature__item .archive__item-body{padding-left:0.5em;padding-right:0.5em}.feature__item--left{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--left .archive__item-teaser{margin-bottom:2em}@media (min-width: 37.5em){.feature__item--left .archive__item-teaser{width:40.67797%;float:left;margin-right:1.69492%}.feature__item--left .archive__item-body{width:57.62712%;float:right;margin-right:0;padding-left:4.23729%;padding-right:8.47458%}}.feature__item--right{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--right .archive__item-teaser{margin-bottom:2em}@media (min-width: 37.5em){.feature__item--right{text-align:right}.feature__item--right .archive__item-teaser{width:40.67797%;float:right;margin-left:1.69492%}.feature__item--right .archive__item-body{width:57.62712%;float:left;margin-left:0;padding-left:4.23729%;padding-right:8.47458%}}.feature__item--center{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--center .archive__item-teaser{margin-bottom:2em}@media (min-width: 37.5em){.feature__item--center{text-align:center}.feature__item--center .archive__item-teaser{margin:0 auto;width:40.67797%}.feature__item--center .archive__item-body{margin:0 auto;width:57.62712%}}.sidebar{clear:both;margin-bottom:1em}.sidebar::after{clear:both;content:"";display:table}@media (min-width: 64em){.sidebar{width:15.25424%;float:left;margin-right:1.69492%;opacity:0.75;-webkit-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out}.sidebar:hover{opacity:1}}@media (min-width: 80em){.sidebar{padding-right:0}}.sidebar h2,.sidebar h3,.sidebar h4,.sidebar h5,.sidebar h6{margin-bottom:0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.sidebar h3,.sidebar h4{font-size:1em}.sidebar p,.sidebar li{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;line-height:1.5}.sidebar img{width:100%}.sidebar__right{margin-bottom:1em}@media (min-width: 64em){.sidebar__right{position:relative;float:right;width:200px;margin-left:2.54237%;z-index:10}}@media (min-width: 80em){.sidebar__right{width:300px}}.author__avatar{display:table-cell;vertical-align:top;width:36px;height:36px}@media (min-width: 64em){.author__avatar{display:block;width:auto;height:auto}}.author__avatar img{max-width:110px;border-radius:50%}@media (min-width: 64em){.author__avatar img{padding:5px;border:1px solid #f2f3f3}}.author__content{display:table-cell;vertical-align:top;padding-left:15px;padding-right:25px;line-height:1}@media (min-width: 64em){.author__content{display:block;width:100%;padding-left:0;padding-right:0}}.author__name{margin:0}@media (min-width: 64em){.author__name{margin-top:10px;margin-bottom:10px}}.sidebar .author__name{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em}.author__bio{margin:0}@media (min-width: 64em){.author__bio{margin-top:10px;margin-bottom:20px}}.author__urls-wrapper{position:relative;display:table-cell;vertical-align:middle;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;z-index:10;position:relative;cursor:pointer}.author__urls-wrapper li:last-child a{margin-bottom:0}@media (min-width: 64em){.author__urls-wrapper{display:block}}.author__urls-wrapper button{margin-bottom:0}@media (min-width: 64em){.author__urls-wrapper button{display:none}}.author__urls{display:none;position:absolute;right:0;margin-top:15px;padding:10px;list-style-type:none;border:1px solid #f2f3f3;border-radius:4px;background:#fff;z-index:-1;box-shadow:0 0 10px rgba(0,0,0,0.25)}@media (min-width: 64em){.author__urls{display:block;position:relative;margin:0;padding:0;border:0;background:transparent;box-shadow:none}}.author__urls:before{display:block;content:"";position:absolute;top:-11px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#f2f3f3 transparent;z-index:0}@media (min-width: 64em){.author__urls:before{display:none}}.author__urls: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}@media (min-width: 64em){.author__urls:after{display:none}}.author__urls li{white-space:nowrap}.author__urls a{display:block;margin-bottom:5px;padding-right:5px;padding-top:2px;padding-bottom:2px;color:inherit;font-size:1em;text-decoration:none}.author__urls a:hover{text-decoration:underline}/* - * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.6.1");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.6.1") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.6.1") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.6.1") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.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.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;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}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.mfp-counter{font-family:Georgia,Times,serif}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#000;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:zoom-out}.mfp-zoom{cursor:pointer;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;-ms-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:1;filter:alpha(opacity=100);padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Georgia,Times,serif}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#fff}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:1;filter:alpha(opacity=100);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .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}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:0.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #fff}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #fff}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-figure figcaption{margin-top:0;margin-bottom:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .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}}@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:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}@media print{.masthead,.toc,.page__share,.page__related,.ads,.page__footer{display:none}} - -details -{ - font-size: 14pt; - font-family: -apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif; -} -summary -{ - font-size: 1em; - font-weight: bold; - font-family: -apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif; -} - -hr -{ - border-width: 2px; - border-color: #494e52; -} diff --git a/_stylesheets/main.scss b/assets/css/main.scss similarity index 90% rename from _stylesheets/main.scss rename to assets/css/main.scss index c2a54a4ed..e1f40bc97 100644 --- a/_stylesheets/main.scss +++ b/assets/css/main.scss @@ -1,3 +1,6 @@ +--- +--- + /* * Minimal Mistakes Jekyll Theme * @@ -6,7 +9,6 @@ * - https://twitter.com/mmistakes * */ - @import "vendor/breakpoint/breakpoint"; // media query mixins @import "variables"; @import "mixins"; @@ -30,7 +32,9 @@ @import "page"; @import "archive"; @import "sidebar"; +@import "cheat-sheets"; +@import "resources"; @import "vendor/font-awesome/font-awesome"; @import "vendor/magnific-popup/magnific-popup"; -@import "print"; \ No newline at end of file +@import "print"; diff --git a/_stylesheets/page.scss b/assets/css/page.scss similarity index 84% rename from _stylesheets/page.scss rename to assets/css/page.scss index af4bcc94c..dc3760baf 100644 --- a/_stylesheets/page.scss +++ b/assets/css/page.scss @@ -1,7 +1,7 @@ --- --- -@import "bootstrap-sass/lib/bootstrap.scss"; +@import "vendor/bootstrap-sass/lib/bootstrap.scss"; /* Color Definitions */ $color-dark: #1875c6; @@ -145,6 +145,32 @@ header{ } } +.site-header-logo { + @media (min-width: 768px) { + float: left; + } + + .logo { + width: auto; + height: 28px; + overflow: visible !important; // overrides for descender characters to not get cut off by SVG frame. + +/* @include breakpoint($small) { + height: 22px; + opacity: 0.9; + } +*/ + &:hover { + opacity: 1; + } + + path, + ellipse { + fill: #000; + } + } +} + #logo{ a { @@ -153,7 +179,7 @@ header{ width: 185px; text-indent: -999px; overflow: hidden; - background: url('../images/gh-training-logo-2x.png') no-repeat center center; + background: url('../../images/gh-training-logo-2x.png') no-repeat center center; background-size: contain; } } diff --git a/assets/css/timeline.css b/assets/css/timeline.css index 86fb6b821..0987a3203 100644 --- a/assets/css/timeline.css +++ b/assets/css/timeline.css @@ -93,7 +93,7 @@ border-radius: 100%; text-align: center; color: #fff; - background-color: #{{ site.data.template.color.primary }}; + background-color: white; } .timeline>li p{ diff --git a/assets/js/mapsAPI.js b/assets/js/mapsAPI.js index 553893db8..1c516f970 100644 --- a/assets/js/mapsAPI.js +++ b/assets/js/mapsAPI.js @@ -1,49 +1,70 @@ function initialize() { - $.getJSON('https://githubschool.github.io/open-enrollment-classes-introduction-to-github/createMap.topojson', function (data) { - var map = new google.maps.Map(document.getElementById('map'), { - zoom: 2, - minZoom: 2, - center: new google.maps.LatLng(10, 15), - mapTypeId: 'terrain', - //disableDefaultUI: true, - mapTypeControl: false, - panControl: false, - //scaleControl: false, - scrollwheel: false, - streetViewControl: false, - //zoomControl: false, - //draggable: false, - styles: [{ - featureType: 'administrative', - elementType: 'geometry', - stylers: [{visibility: 'off'}] - }, { - featureType: 'administrative.country', - stylers: [{visibility: 'off'}] - }, { - featureType: 'water', - elementType: 'labels', - stylers: [{visibility: 'off'}] - }, { - featureType: 'administrative', - elementType: 'labels', - stylers: [{visibility: 'off'}] - }] - }); + $.getJSON( + 'https://githubschool.github.io/open-enrollment-classes-introduction-to-github/createMap.topojson', + function (data) { + var mapSize = new google.maps.Size(256, 256), // original size, fallback for space invador images + scaledSize = new google.maps.Size(20, 20), // size on map, fallback for space invador images + anchor = new google.maps.Point(0, 32), // start point + map = new google.maps.Map(document.getElementById('map'), { + zoom: 2, + minZoom: 2, + center: new google.maps.LatLng(10, 15), + mapTypeId: 'terrain', + //disableDefaultUI: true, + mapTypeControl: false, + panControl: false, + //scaleControl: false, + scrollwheel: false, + streetViewControl: false, + //zoomControl: false, + //draggable: false, + styles: [ + { + featureType: 'administrative', + elementType: 'geometry', + stylers: [{visibility: 'off'}] + }, + { + featureType: 'administrative.country', + stylers: [{visibility: 'off'}] + }, + { + featureType: 'water', + elementType: 'labels', + stylers: [{visibility: 'off'}] + }, + { + featureType: 'administrative', + elementType: 'labels', + stylers: [{visibility: 'off'}] + } + ] + }), + markers = data.features.map(function (coords) { + var coordinates = coords.geometry.coordinates, + username = coords.properties.username; - $.each(data.features, function (index, coords) { - var latLng = new google.maps.LatLng(coords.geometry.coordinates[1], coords.geometry.coordinates[0]); - var marker = new google.maps.Marker({ - position: latLng, - map: map, - title: coords.properties.username, - icon: { - url: 'https://github.com/' + coords.properties.username + '.png?size=20', - size: new google.maps.Size(256, 256), // original size, fallback for space invador images - scaledSize: new google.maps.Size(20, 20), // size on map, fallback for space invador images - anchor: new google.maps.Point(0, 32) // start point - } + return new google.maps.Marker({ + position: new google.maps.LatLng( + coordinates[1], + coordinates[0] + ), + map: map, + title: username, + icon: { + url: 'https://github.com/' + username + '.png?size=20', + size: mapSize, + scaledSize: scaledSize, + anchor: anchor + } + }); + }); + + new MarkerClusterer(map, markers, { + imagePath: '../images/cluster/m', + averageCenter: true, + minimumClusterSize: 42 }); - }); - }); + } + ); } diff --git a/assets/vendor/jquery/dist/jquery.min.map b/assets/vendor/jquery/dist/jquery.min.map deleted file mode 100644 index 25ed98c4e..000000000 --- a/assets/vendor/jquery/dist/jquery.min.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"jquery.min.js","sources":["jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","nodeType","isEmptyObject","globalEval","code","script","indirect","eval","trim","createElement","text","head","appendChild","parentNode","removeChild","camelCase","string","nodeName","toLowerCase","value","isArraylike","makeArray","results","Object","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","strundefined","MAX_NEGATIVE","pop","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","childNodes","e","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","div","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","doc","parent","defaultView","top","addEventListener","attachEvent","className","createComment","innerHTML","firstChild","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","truncate","sibling","n","targets","l","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","list","stack","once","fire","data","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","completed","removeEventListener","readyState","setTimeout","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","defineProperty","uid","accepts","descriptor","unlock","defineProperties","set","prop","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","rcheckableType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","event","types","handleObjIn","eventHandle","events","t","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","bubbleType","ontype","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","props","fixHooks","keyHooks","original","which","charCode","keyCode","mouseHooks","eventDoc","body","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","load","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","on","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","getAll","fixInput","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","wrap","nodes","createTextNode","cleanData","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","style","display","getDefaultComputedStyle","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","getComputedStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","container","backgroundClip","clearCloneStyle","cssText","computePixelPositionAndBoxSizingReliable","divStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","marginRight","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","showHide","show","hidden","cssHooks","opacity","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","*","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","checkDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","nodeHook","boolHook","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","rfocusable","removeProp","for","class","notxml","hasAttribute","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","JSON","parse","parseXML","DOMParser","parseFromString","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","async","contentType","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","status","abort","statusText","finalText","success","method","crossDomain","param","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrId","xhrCallbacks","xhrSuccessStatus",1223,"xhrSupported","ActiveXObject","cors","open","username","xhrFields","onload","onerror","responseText","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","left","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/assets/vendor/jquery/src/sizzle/dist/sizzle.min.map b/assets/vendor/jquery/src/sizzle/dist/sizzle.min.map deleted file mode 100644 index d72bc3baa..000000000 --- a/assets/vendor/jquery/src/sizzle/dist/sizzle.min.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"sizzle.min.js","sources":["sizzle.js"],"names":["window","i","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","strundefined","MAX_NEGATIVE","hasOwn","hasOwnProperty","arr","pop","push_native","push","slice","indexOf","elem","len","this","length","booleans","whitespace","characterEncoding","identifier","replace","attributes","pseudos","rtrim","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","apply","call","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","parentNode","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","toLowerCase","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","value","cacheLength","shift","markFunction","fn","assert","div","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","type","name","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","doc","parent","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","innerHTML","firstChild","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","tmp","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","val","undefined","specified","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","nodeValue","selectors","createPseudo","relative",">","dir","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","last","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","eq","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","prototype","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","elems","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","token","compiled","div1","defaultValue","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/bower.json b/bower.json deleted file mode 100644 index ff53e24a3..000000000 --- a/bower.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "training-kit", - "dependencies": { - - "jquery": "2.1.1", - "bootstrap-sass": "3.0.2", - "Snap.svg": "0.3.0", - "octicons": "https://github.com/github/octicons.git#2.1.2" - } -} diff --git a/community.md b/community.md index 47296e7df..061927fcf 100644 --- a/community.md +++ b/community.md @@ -1,30 +1,24 @@ --- layout: single -title: Community +title: GitHub Training Community category: community permalink: /community/ header: - overlay_color: "#137bce" + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) --- # Availability -GitHub's training team answers your questions about this training via a Gitter chat room. Gitter is a chat service that integrates well with GitHub and allows you to authenticate with your GitHub account. +GitHub's training team drops by the on-demand repositories daily to answer questions and offer assistance to those who are stuck. We will work to answer questions within 12 hours if you ask them Monday through Friday (except on [US holidays](us-holidays/)). -In the meantime, a great way to learn new things is to explain them to others. If you see any questions you feel equipped to answer, please feel free to help! - - Just use the "Open Chat" button on the bottom right of your browser when you begin working through the exercises. - -If you aren't quite ready to get started yet, but want to bookmark the "Help" room, you can find us here: - -[Chat on Gitter](https://gitter.im/githubschool/on-demand?utm_source=share-link&utm_medium=link&utm_campaign=share-link){: .btn .btn--success} - +In the meantime, a great way to learn new things is to explain them to others. If you see any questions you feel equipped to answer, please feel free to help! ## GitHub Trainers -Meet the members of GitHub who will be in Gitter and the class repository helping you along the way. +Meet the members of GitHub who will be dropping by the class repository and helping you along the way. | ![@beardofedu](https://avatars2.githubusercontent.com/u/18329853?v=3&s=140){: .align-center}|![@brianamarie](https://avatars0.githubusercontent.com/u/9906718?v=3&s=140){: .align-center}|![@crichID](https://avatars0.githubusercontent.com/u/9950121?v=3&s=140){: .align-center}|![@hectorsector](https://avatars3.githubusercontent.com/u/16547949?v=3&s=140){: .align-center}|![@hollenberry](https://avatars1.githubusercontent.com/u/13326548?v=3&s=140){: .align-center}| |---|---|---|---|---| @@ -32,6 +26,12 @@ Meet the members of GitHub who will be in Gitter and the class repository helpin {: .text-center} --- -## Participating +## Code of Conduct By participating in the activities in this course, you agree to comply with our [Code of Conduct](https://github.com/github/training-kit/blob/master/CODE_OF_CONDUCT.md). + +## GitHub Professional Services + +Courses on the On Demand website are made with :heart: by the friendly :octocat:s from GitHub Professional Services with help from the open source community. These courses are an extension of the paid engagements that we provide to companies large and small. If you are interested in how GitHub Professional Services can help you and your team or organization, [contact us](https://services.github.com/contact/). + +For information regarding the different engagements that we provide, please refer to the [Services](https://services.github.com) website. \ No newline at end of file diff --git a/downloads/ar/github-git-cheat-sheet.md b/downloads/ar/github-git-cheat-sheet.md index 201f3e788..42bb63254 100644 --- a/downloads/ar/github-git-cheat-sheet.md +++ b/downloads/ar/github-git-cheat-sheet.md @@ -1,7 +1,7 @@ --- layout: cheat-sheet -title: برشامة أوامر Git لنظام GitHub -byline: أمر Git هو نظام تحكم بالنسخ الموزعة المفتوحة المصدر التي توظف أنشطة GitHub في الحواسيب الشخصية. هذه "البرشامة" تلخص تعليمات Git الأكثر استخداماً على سطر الأوامر كمرجع سري +title:
    برشامة أوامر Git لنظام GitHub
    +byline:

    أمر Git هو نظام تحكم بالنسخ الموزعة المفتوحة المصدر التي توظف أنشطة GitHub في الحواسيب الشخصية. هذه "البرشامة" تلخص تعليمات Git الأكثر استخداماً على سطر الأوامر كمرجع سري

    leadingpath: ../../../ --- diff --git a/downloads/bn_BD/github-git-cheat-sheet.md b/downloads/bn_BD/github-git-cheat-sheet.md new file mode 100644 index 000000000..1f6399586 --- /dev/null +++ b/downloads/bn_BD/github-git-cheat-sheet.md @@ -0,0 +1,248 @@ +--- +layout: cheat-sheet +title: গিটহাব গিট চিট শীট +byline: গিট হচ্ছে একটি ওপেন সোর্স ড্রিস্ট্রিবিউটেড ভার্শন কন্ট্রোল সিস্টেম যা আপনার ল্যাপটপ বা ডেস্কটপে গিটহাব সুবিধাদি প্রদান করে। এই চিট শীটে সাধারনভাবে ব্যবহৃত গিট কমান্ড লাইনের নির্দেশনা দেওয়া আছে । +leadingpath: ../../../ +--- + +{% capture colOne %} +## ইন্সটল গিট +গিটহাবের রিপোজিটরির সাধারন অ্যাকশন ও উন্নত পরিস্থিতিতে জন্য Git এর একটি স্বয়ংক্রিয়ভাবে আপডেট করার কমান্ড লাইন সংস্করণসহ ডেস্কটপের জন্য গ্রাফিকাল ইউজার ইন্টারফেস সুবিধাযুক্ত ক্লায়েন্ট আছে। + +### উইন্ডোজের জন্য গিটহাব +http://windows.github.com + +### ম্যাকের জন্য গিটহাব +http://mac.github.com + +লিনাক্স ও POSIX সিস্টেমের জন্য গিট অফিশিয়াল Git SCM ওয়েবসাইটে উপলব্ধ। + +### সকল প্ল্যাটফরমের জন্য গিটহাব +http://git-scm.com + +## টুল কনফিগার করা +সকল লোকাল রিপোজিটরির জন্য টুল কনফিগার করা + +```$ git config --global user.name "[name]"``` + +নাম ঠিক করুন যেটা আপনি কমিট ট্রান্সেকশনের সাথে সংযুক্ত করতে চান। + + +```$ git config --global user.email "[email address]"``` + +ইমেইল ঠিক করুন যেটা আপনি কমিট ট্রান্সেকশনের সাথে সংযুক্ত করতে চান। + + +## রিপোজিটরি তৈরি করা +একটি নতুন রিপোসিটোরি শুরু অথবা একটি বিদ্যমান URL থেকে শুরু করুন। + + +```$ git init [project-name]``` + +নির্দিষ্ট নাম দিয়ে একটি নতুন রিপোসিটোরি তৈরি করুন। + + +```$ git clone [url]``` + +একটি প্রকল্প এবং তার সম্পূর্ণ সংস্করণ ইতিহাস ডাউনলোড করুন। + +{% endcapture %} +
    +{{ colOne | markdownify }} +
    + + +{% capture colTwo %} + +## পরিবর্তন করা +সম্পাদনা পর্যালোচনা করুন এবং একটি কমিট ট্রান্সেকসন ক্রাফট করুন। + + +```$ git status``` + +সকল ফাইল লিস্ট করুন যা কমিট করা হবে। + + +```$ git diff``` + +ফাইলগুলোর পার্থক্য দেখুন যেগুলো এখনো staged হয়নি। + + +```$ git add [file]``` + +সংস্করনের জন্য প্রস্তুতি ফাইল স্ন্যাপশট করুন। + + +```$ git diff --staged``` + +staging এবং last file version এরমধ্যে পার্থক্য দেখুন। + + +```$ git reset [file]``` + +ফাইল Unstages, কিন্তু তার বিষয়বস্তু অপরিবর্তিত রাখুন। + + +```$ git commit -m"[descriptive message]"``` + +ফাইলের স্ন্যাপশট ভার্শনের ইতিহাসে সংরক্ষন করুন। + +## গ্রুপ পরিবর্তন +Name a series of commits and combine completed efforts + + +```$ git branch``` + +বর্তমান রিপোসিটোরির মধ্যে সব লোকাল ব্রাঞ্চ তালিকাভুক্ত করুন। + + +```$ git branch [branch-name]``` + +একটি নতুন ব্রাঞ্চ তৈরি করুন + + +```$ git checkout [branch-name]``` + +নির্দিষ্ট শাখায় সুইচ এবং আপডেট ওয়ার্কিং ডিরেক্টরি + + +```$ git merge [branch-name]``` + +বর্তমান শাখায় নির্দিষ্ট শাখার ইতিহাস একত্রিত করুন + + +```$ git branch -d [branch-name]``` + +নির্দিষ্ট শাখা মুছে ফেলে +{% endcapture %} +
    +{{ colTwo | markdownify }} +
    +
    + + +{% capture colThree %} +## ফাইলের নাম Refactor করুন +versioned ফাইল নতুন স্থানে স্থাপন বা মুছে ফেলুন + + +```$ git rm [file]``` + +ওয়ার্কিং ডিরেক্টরি থেকে ফাইল মুছে এবং মুছে ফেলার পর্যায়ে + + +```$ git rm --cached [file]``` + +ভার্সন নিয়ন্ত্রণ থেকে ফাইল মুছে ফেলা কিন্তু স্থানীয়ভাবে ফাইল সংরক্ষন করা + + +```$ git mv [file-original] [file-renamed]``` + +ফাইলের নাম পরিবর্তন করা এবং কমিট জন্য এটি প্রস্তুত করুন + +## ট্র্যাকিং দমন +অস্থায়ী ফাইল এবং পাথ বাদ দিন + +``` +*.log +build/ +temp-* +``` + +A text file named `.gitignore` suppresses accidental versioning of files and paths matching the specified patterns + + +```$ git ls-files --others --ignored --exclude-standard``` + +এই প্রকল্পে সব উপেক্ষিত ফাইলের তালিকা তৈরি করুন + +## ফ্রাগমেন্টস সংরক্ষন +অসম্পূর্ণ পরিবর্তন পুনরুদ্ধার এবং সরাইয়া রাখা + + +```$ git stash``` + +সাময়িকভাবে সব পরিবর্তিত ট্র্যাক ফাইল স্টোর করা + + +```$ git stash pop``` + +সাম্প্রতিক stashed ফাইল রিস্টোর করা + + +```$ git stash list``` + +সব stashed changesets ফাইলের তালিকা তৈরি করুন + + +```$ git stash drop``` + +সাম্প্রতিক stashed changeset ফাইল বর্জন করুন +{% endcapture %} +
    +{{ colThree | markdownify }} +
    + +{% capture colFour %} +## হিস্টোরি রিভিউ +ব্রাউজ করুন এবং প্রকল্পের ফাইল এর বিবর্তন পরিদর্শন করুন + + +```$ git log``` + +বর্তমান শাখার জন্য ভার্সন ইতিহাসের তালিকা তৈরি করুন + + +```$ git log --follow [file]``` + +বর্তমান শাখার জন্য ভার্সন ইতিহাসের তালিকা তৈরি করুন, renames সহ + + +```$ git diff [first-branch]...[second-branch]``` + +দুই শাখার মধ্যে বিষয়বস্তুর পার্থক্য দেখুন + + +```$ git show [commit]``` + +নির্দিষ্ট আউটপুট মেটাডেটা এবং বিষয়বস্তু পরিবর্তন কমিট করুন + +## কমিট রিডো করা +ভুল এবংক্রাফট প্রতিস্থাপনের ইতিহাস মুছুন + + +```$ git reset [commit]``` + +Undoes all commits after `[commit]`, preserving changes locally + + +```$ git reset --hard [commit]``` + +সব ইতিহাস এবং করা পরিবর্তনগুলি ফিরে নির্দিষ্ট কমিটে অস্বীকার করুন + +## সিঙ্ক্রোনাইজড পরিবর্তনগুলি +একটি দূরবর্তী (URL) নিবন্ধন করুন এবং রিপোসিটোরি ইতিহাস এক্সচেঞ্জ করুন + + +```$ git fetch [remote]``` + +দূরবর্তী রিপোসিটোরি থেকে সব ইতিহাস ডাউনলোড করুন + + +```$ git merge [remote]/[branch]``` + +বর্তমান স্থানীয় শাখা ও দূরবর্তী শাখা একত্রিত করুন + + +```$ git push [remote] [branch]``` + +সকল লোকাল ব্রাঞ্চ কমিট গিটহাবে আপলোড করুন + + +```$ git pull``` + +বুকমার্ক হিস্টোরি ও অন্তর্ভুক্ত পরিবর্তনগুলো ডাউনলোড করুন +{% endcapture %} +
    +{{ colFour | markdownify }} +
    diff --git a/downloads/fa/github-git-cheat-sheet.md b/downloads/fa/github-git-cheat-sheet.md new file mode 100644 index 000000000..362ac2460 --- /dev/null +++ b/downloads/fa/github-git-cheat-sheet.md @@ -0,0 +1,374 @@ +--- +layout: cheat-sheet +title: گیت‌هاب برگه‌تقلب گیت +byline: گیت سیستم کنترل نسخه توزیع‌شده است که فعالیت‌های گیت‌هاب را بر روی لپ‌تاپ یا دسکتپاب برای تسهیل می‌نماید. این برگه تقلب، دستورهای رایج مورد استفادهٔ خط‌فرمان را برای ارجاع سریع خلاصه نموده است. +leadingpath: ../../../ +--- + +{% capture colOne %} +

    نصب گیت‌هاب

    +
    +گبت‌هاب برنامه‌های رومیزی فراهم نموده است که شامل یک واسط گرافیکی برای بیشترکارهای عمومی مخازن هستند و یک +نسخهٔ خط‌فرمان گیت که به صورت خودکار بروزرسانی می‌شود برای سناریوهای پیشرفته‌تر ارائه نموده است. +
    + +

    گیت‌هاب برای ویندوز

    +http://windows.github.com + +

    گیت‌هاب برای مک

    +http://mac.github.com + +
    +توزیع‌های گیت برای لینوکس و سیستم‌های POSIX در سایت رسمی Git SCM در دسترس است. +
    + +

    گیت برای همهٔ سیستم‌ها

    +http://git-scm.com + +

    آماده‌سازی پیکربندی

    +
    +پیکربندی اطلاعات کاربر برای تمامی مخازن محلی +
    + +```$ git config --global user.name "[name]"``` + +
    +نامی را که تمایل دارید به تراکنش‌های مشارکت خودتان نسبت داده شود تنظیم نمایید. +
    + + + +```$ git config --global user.email "[email address]"``` + +
    +ایمیلی را که تمایل دارید به تراکنش‌های مشارکت خودتان نسبت داده شود تنظیم نمایید. +
    + + + +

    ساخت مخازن

    +
    +یک مخزن جدید را شروع نمایید یا یکی از مخازن را از URL موجود بدست آورید. +
    + + + +```$ git init [project-name]``` + +
    +یک مخزن محلی جدید با یک نام مشخص می‌سازد +
    + + +```$ git clone [url]``` + +
    +یک پروژه و تمام نسخه تاریخچه آن را بارگیری می‌نماید. +
    + + +{% endcapture %} +
    +{{ colOne | markdownify }} +
    + + +{% capture colTwo %} + +

    انجام تغییرات

    +
    + +مرور ویرایش‌ها و ساخت یک تراکنش مشارکت +
    + + +```$ git status``` + +
    + +تمامی فایل‌های جدید و یا ویرایش شده‌ای که باید مشارکت داده شوند را لیست می‌نماید +
    + + + +```$ git diff``` + +
    +تفاوت فایلی که هنوز قرارداده نشده است را نمایش می‌دهد +
    + + +```$ git add [file]``` + +
    +از فایل در حال آماده‌شدن یک تصویر لحظه‌ای برای نسخه‌برداری می‌گیرد (اضافه نمودن فایل به لیست مشارکت‌ها) +
    + + + +```$ git diff --staged``` + +
    +تفاوت‌های فایل بین آخرین نسخه و نسخه آماده ارسال را نمایش می‌دهد +
    + + + +```$ git reset [file]``` + +
    +فایل آماده ارسال از حالت ارسال خارج نموده لکن محتویات آن را نگاه می‌دارد +
    + + + +```$ git commit -m"[descriptive message]"``` + +
    +تصاویر لحظه‌ای فایل‌ را به صورت دائمی در تاریخچه نسخه ذخیره می‌نماید. +
    + + +

    تغیرات گروهی

    +
    +نام‌گذاری یک سری از مشارکت‌ها و ترکیب‌ تلاش‌های موفق +
    + + + +```$ git branch``` + +
    +تمامی شاخه‌های محلی را در مخزن جاری لیست می‌نماید +
    + + + +```$ git branch [branch-name]``` + +
    +یک شاخهٔ جدید می‌سازد +
    + + + +```$ git checkout [branch-name]``` + +
    +به شاخه تعیین‌شده سوئیچ نموده و دایرکتوری کاری را نیز تغییر می‌دهد +
    + + + +```$ git merge [branch-name]``` + +
    +تاریخچهٔ شاخهٔ معین‌شده درون شاخه جاری ترکیب می‌نماید +
    + + + +```$ git branch -d [branch-name]``` + +
    +شاخه تعیین‌شده را حذف می‌نماید +
    + +{% endcapture %} +
    +{{ colTwo | markdownify }} +
    +
    + + +{% capture colThree %} + +

    پیرایش نام فایل‌ها

    +
    +بازجاگذاری و حذف فایل‌های نسخه‌بندی شده +
    + + + +```$ git rm [file]``` + +
    +فایل را از شاخه جاری حذف نموده و حذف را نیز ثبت می‌نماید +
    + + +```$ git rm --cached [file]``` + +
    +فایل را از سیستم نسخه کنترل حذف نموده لکن به صورت محلی آن را نگاه می‌دارد +
    + + +```$ git mv [file-original] [file-renamed]``` + +
    +نام فایل را تغییر داده و آن را برای مشارکت آماده می‌نماید +
    + + +

    جلوگیری از ردگیری

    +
    +خارج‌نمودن فایل‌ها و مسیرهای موقتی +
    + + +``` +*.log +build/ +temp-* +``` +
    +یک فایل متنی با نام +.gitignore` +از نسخه‌برداری اتفاقی فایل‌ها و مسیرهایی که با الگوی تعیین‌شده تطابق دارند جلوگیری می‌نماید +
    + + + +```$ git ls-files --others --ignored --exclude-standard``` + +
    +تمامی فایل‌های صرف نظر شده در این پروژه را لیست می‌نماید +
    + + +

    ذخیره سازی قطعات

    +
    +کنار گذاشتن و بازیابی تغییرات ناکامل +
    + + + +```$ git stash``` + +
    +به طور موقت تمامی فایل‌های ردگیری شده تغییر کرده را ذخیره می‌نماید +
    + + +```$ git stash pop``` + +
    +فایل‌هایی که اخیراً ذخیره شده است را بازیابی می‌نماید +
    + + + +```$ git stash list``` + +
    +تمامی مجموعه تغییرات ذخیره شده را لیست می‌نماید +
    + + + +```$ git stash drop``` + +
    +مجموعه تغییرات ذخیره شده اخیر را نادیده می‌گیرد +
    + +{% endcapture %} +
    +{{ colThree | markdownify }} +
    + +{% capture colFour %} + +

    مرور تاریخچه

    +
    +نمایش و بررسی سیر تکامل فایل‌های پروژه +
    + + + +```$ git log``` + +
    +نسخه تاریخچه شاخه جاری را لیست می‌نماید +
    + + +```$ git log --follow [file]``` + +
    +نسخه تاریخچه فایل مشخصی بعلاوه تمامی تغییر نام‌های آن را لیست می‌نماید +
    + + + +```$ git diff [first-branch]...[second-branch]``` + +
    +تفاوت‌های محتوایی بین دو شاخه را نشان می‌دهد +
    + + +```$ git show [commit]``` + +
    +متادیتا و تغییرات محتوای تغیر یک مشارکت مشخص‌شده را در خروجی نمایش می‌دهد +
    + +

    باز انجام یک مشارکت

    +
    +حذف خطاها و ساخت تاریخچه جایگزین +
    + + +```$ git reset [commit]``` + +
    +تمامی مشارکت‌های پس از [commit] بدون اثر نموده و در عین حال تغییرات را به صورت محلی نگاه می‌دارد +
    + + +```$ git reset --hard [commit]``` + +
    +تمامی تاریخچه و تغییرات را تا مشارکت تعیین شده نادیده می‌انگارد +
    + +

    همگام‌سازی تغییرات

    +
    + +ثبت یک مخزن دوردست (URL) و تعویض تاریخچه مخزن +
    + + + +```$ git fetch [remote]``` + +
    +تمامی تاریخچه را از مخزن دوردست بارگیری می‌نماید +
    + + +```$ git merge [remote]/[branch]``` + +
    +شاخه دوردست را درون شاخه محلی جاری ترکیب می‌نماید +
    + + +```$ git push [remote] [branch]``` + +
    +تمامی مشارکت‌های شاخه‌های محلی را به گیت‌هاب بارگذاری می‌نماید +
    + + +```$ git pull``` + +
    +نشان تاریخچه را بارگیری نموده و تغییرات را جاگذاری می‌نماید +
    +{% endcapture %} +
    +{{ colFour | markdownify }} +
    diff --git a/downloads/fr/github-git-cheat-sheet.md b/downloads/fr/github-git-cheat-sheet.md index 2c6e7b4b3..d53cf0f95 100644 --- a/downloads/fr/github-git-cheat-sheet.md +++ b/downloads/fr/github-git-cheat-sheet.md @@ -17,7 +17,7 @@ http://mac.github.com Les distributions de Git pour Linux et les systèmes POSIX sont disponibles sur le site web officiel de Git SCM. -###Git pour toutes les plate-formes +### Git pour toutes les plate-formes http://git-scm.com ## Configuration des outils diff --git a/downloads/github-bash-cheat-sheet.md b/downloads/github-bash-cheat-sheet.md new file mode 100644 index 000000000..77321208b --- /dev/null +++ b/downloads/github-bash-cheat-sheet.md @@ -0,0 +1,216 @@ +--- +layout: cheat-sheet +title: GitHub Bash Cheat Sheet +byline: Bash is the GNU Project's shell. Bash is the Bourne Again SHell. Bash is an sh-compatible shell that incorporates useful features from the Korn shell (ksh) and C shell (csh). It is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers functional improvements over sh for both programming and interactive use. In addition, most sh scripts can be run by Bash without modification. +leadingpath: ../../ +--- + +{% capture colOne %} +## Install Bash +Bash is typically a native application on Linux/Unix based machines; however, if installation is necessary you can find links to downloads below. + +### Bash for Windows +Because bash isn't native to Windows an application like Cygwin would be necessary to +gain the same features readily available in linux/macOS. +https://www.cygwin.com + +### Bash for macOS and linux +Bash is natively installed on Linux/Unix based machines. + +## Configure shell +Configuring bash aliases + +```$ alias ls='ls -lGh'``` + +Sets the ls command to list, colorize, and provide file size suffixes + +## Working with directories +Navigate, create, and delete directory folders and files + +```$ pwd``` + +Display path of current working directory + +```$ cd [directory]``` + +Change working directory to [directory] + +```$ cd ..``` + +Navigate to the parent directory + +```$ ls``` + +List directory contents + +```$ ls -la``` + +List detailed directory contents, including hidden files + + +```$ mkdir [directory]``` + +Create a new directory named [directory] + +{% endcapture %} +
    +{{ colOne | markdownify }} +
    + +{% capture colTwo %} + +## Handling output +Control the flow of data from a file + +```$ cat [file]``` + +Output the contents of [file] + + +```$ less [file]``` + +Output the contents of [file] which supports pagination + + +```$ head [file]``` + +Output the first 10 lines of [file] + + +```$ [cmd] > [file] ``` + +Direct the output of [cmd] into [file] + + +```$ [cmd] >> [file]``` + +Append the output of [cmd] to [file] + + +```$ [cmd1] | [cmd2]``` + +Direct the output of [cmd1] to the input of [cmd2] + + +```$ clear``` + +Clear the bash window + +## Working with files +Moving, renaming, creating and deleting files + +```$ rm [file]``` + +Delete [file] + + +```$ rm -r [directory]``` + +Delete [directory] + +```$ rm -f [file]``` + +Force-delete [file] (add -r to force-delete a directory) + + +```$ mv [file-old] [file-new]``` + +Rename [file-old] to [file-new] + + +```$ cp [file] [directory]``` + +Copy [file] to [directory] (possibly overwriting an existing file) + + +```$ cp -r [src-directory] [dest-directory]``` + +Copy [src-directory] and it's contents to [dest-directory] (possibly overwriting files in an existing directory) + +```$ touch [file]``` + +Update file access and modification time (and create [file] if it does not exist) + +{% endcapture %} +
    +{{ colTwo | markdownify }} +
    +
    + + +{% capture colThree %} +## File and folder permissions +Change read, write, and execute permissions on files and folders + + +```$ chmod 755 [file]``` + +Change permissions of [file] to 755 + + +```$ chmod -R 600``` + +Change permissions of [directory] (and its contents to 600) + + +```$ chown [user]:[group] [file]``` + +Change ownership of [tile] to [user] and [group] (add -R to include a directory's contents) + +## Networking and Internet +```$ ping [ip/host]``` + +Ping the [ip/host] and displays time, among other things + +```$ curl -O [url]``` + +Downloads [url] to current working directory + +```$ ssh [user]@[ip/host]``` + +Starts an SSH connection to [host] using [user] + +```$ ssh-copy-id [user]@[host]``` + +Adds your SSH key to the host file for [user] to enable a keyed or passwordless login + +```$ scp [file] [user]@[ip/host]:/path/to/file``` + +Securely copies [file] to a remote [host] + +```$ wget [file]``` + +Downloads [file] to your current working directory + +## System Tasks + +Find important information related to your currently running system + +```$ ps ax``` + +List currently running processes + +```$ top``` + +Displays live information on your currently running processes + +```$ kill [pid]``` + +Ends the process using the provided process ID [pid] + +```$ killall [processname]``` + +Ends all processes with the given [processname] + +```$ df``` + +Shows disk usage + +```$ du [filename]``` + +Shows disk usage of all files and folders in [filename] + +{% endcapture %} +
    +{{ colThree | markdownify }} +
    diff --git a/downloads/id/github-git-advanced-cheat-sheet.md b/downloads/id/github-git-advanced-cheat-sheet.md new file mode 100644 index 000000000..1344cdb2f --- /dev/null +++ b/downloads/id/github-git-advanced-cheat-sheet.md @@ -0,0 +1,67 @@ +# Buku Saku Tingkat Lanjut + +## Perintah penggabungan + +--- + +Batalkan penggabungan + +`$ git merge --abort` + +## Perintah penyimpanan + +--- + +Simpan perubahan saat ini dalam penyimpanan dengan nama tertentu + +`$ git stash save ` + +Simpan perubahan saat ini dalam sebuah penyimpanan (dengan nama stash@{0}) + +`$ git stash` + +Hilangkan simpanan di tumpukan teratas + +`$ git stash drop` + +Hilangkan simpanan di indeks tumpukan ke-n + +`$ git stash drop stash@{n}` + +Terapkan penyimpanan di indeks tumpukan ke-n dan hapus dari daftar + +`$ git stash pop stash@{n}` + +Terapkan penyimpanan di indeks tumpukan ke-n + +`$ git stash apply stash@{n}` + +## Perintah lapor keluar + +--- + +Singkirkan semua perubahan + +`$ git checkout .` + +Membuat cabang baru dan pindah ke cabang tersebut + +`$ git checkout -b ` + +Membawa satu berkas ke lokasi saat ini dari simpanan + +`$ git checkout ` + +## Perintah tambalan + +--- + +Menerapkan berkas tambalan (.diff atau .patch) ke dalam repo + +`$ git apply ` + +## Perintah log + +Mendandani riwayat log sebuah git + +`$ git log --pretty=oneline` diff --git a/downloads/id/github-git-cheat-sheet.md b/downloads/id/github-git-cheat-sheet.md new file mode 100644 index 000000000..ef5d41c2d --- /dev/null +++ b/downloads/id/github-git-cheat-sheet.md @@ -0,0 +1,215 @@ +--- +layout: cheat-sheet +title: Buku Saku Git GitHub +byline: Git adalah sistem manajemen revisi terdistribusi bersifat terbuka yang menyediakan aktivitas GitHub di laptop atau komputer pribadi Anda. Buku saku ini meringkas baris perintah instruksi-instruksi Git yang paling sering dipakai sebagai referensi singkat. +leadingpath: ../ +--- + +{% capture colOne %} +## Pasang Git +GitHub menyediakan klien bagi komputer, termasuk di dalamnya ada antarmuka grafis untuk tindakan repositori yang paling umum dilakukan dan tampilan konsol tempat menuliskan baris perintah untuk melaksanakan tindakan lebih lanjut. + +### GitHub untuk Windows +http://windows.github.com + +### GitHub untuk Mac +http://mac.github.com + +Distribusi Git untuk Linux dan sistem POSIX tersedia di situs resmi Git SCM. + +### Git untuk semua media +https://git-scm.com + +## Konfigurasi alat +Konfigurasi informasi pengguna untuk semua repositori lokal + +```$ git config --global user.name "[nama]"``` + +Menata nama yang ditautkan dalam pencatatan _commit_ Anda + +```$ git config --global user.email "[alamat surel]"``` + +Menata alamat pos-el yang ditautkan dalam pencatatan _commit_ Anda + +## Buat repositori +Memulai repositori baru atau mengambilnya dari tautan yang sudah ada + +```$ git init [nama-proyek]``` + +Membuat repositori lokal dengan nama tertentu + +```$ git clone [url]``` + +Unduh sebuah proyek dan seluruh riwayat revisinya + +{% endcapture %} +
    +{{ colOne | markdownify }} +
    + + +{% capture colTwo %} + +## Buat perubahan +Tinjau suntingan dan daftarkan _commit_ + +```$ git status``` + +Daftar semua berkas yang baru dibuat atau telah dimodifikasi dan akan didaftarkan dalam bentuk _commit_ + +```$ git diff``` + +Menunjukkan perbedaan berkas-berkas yang belum didaftarkan dalam _commit_ + +```$ git add [berkas]``` + +Rekam berkas untuk didaftarkan ke dalam _commit_ + +```$ git diff --staged``` + +Menunjukkan perbedaan file antara hasil revisi dan versi berkas terakhir yang terdaftar + +```$ git reset [berkas]``` + +Batal merevisi berkas, namun tetap mempertahankan isinya + +```$ git commit -m "[descriptive message]"``` + +Daftarkan perubahan berkas secara permanen di riwayat revisi + +## Perubahan untuk banyak berkas +Namai serangkaian _commit_ dan gabungkan upaya pengubahan jadi satu + +```$ git branch``` + +Daftar semua cabang lokal di repositori saat ini + +```$ git branch [nama-cabang]``` + +Buat cabang baru + +```$ git checkout [nama-cabang]``` + +Berpindah ke cabang tertentu dan perbarui direktori yang sedang dikerjakan + +```$ git merge [nama-cabang]``` + +Menggabungkan riwayat cabang tertentu ke dalam cabang yang sedang dipakai + +```$ git branch -d [nama-cabang]``` + +Hapus cabang tertentu +{% endcapture %} +
    +{{ colTwo | markdownify }} +
    +
    + + +{% capture colThree %} +## Pergantian nama berkas +Relokasi dan menghapus berkas terevisi + +```$ git rm [berkas]``` + +Menghapus berkas dari direktori kerja dan daftarkan penghapusan + +```$ git rm --cached [berkas]``` + +Menghapus berkas dari riwayat revisi dengan tetap mempertahankan berkas lokal + +```$ git mv [berkas-asli] [berkas-baru]``` + +Mengganti nama berkas dan mempersiapkan berkas untuk pendaftaran _commit_ + +## Tahan pelacakan +Mengabaikan berkas dan jalur untuk sementara + +``` +*.log +build/ +temp-* +``` + +Sebuah berkas teks bernama `.gitignore` mengabaikan revisi berkas yang tidak disengaja serta jalur berkas yang cocok dengan pola tertentu + +```$ git ls-files --others --ignored --exclude-standard``` + +Daftarkan semua berkas yang diabaikan dalam proyek ini + +## Simpan fragmen +Menyimpan dan mengembalikan perubahan yang belum lengkap + +```$ git stash``` + +Menyimpan semua perubahan berkas yang terlacak untuk sementara + +```$ git stash pop``` + +Mengembalikan berkas yang paling baru disimpan + +```$ git stash list``` + +Daftar semua koleksi perubahan yang tersimpan + +```$ git stash drop``` + +Membuang koleksi perubahan yang paling baru disimpan +{% endcapture %} +
    +{{ colThree | markdownify }} +
    + +{% capture colFour %} +## riwayat ulasan +Jelajah dan periksa perkembangan berkas-berkas dalam proyek + +```$ git log``` + +Daftar riwayat revisi untuk cabang saat ini + +```$ git log --follow [berkas]``` + +Daftar riwayat revisi untuk sebuah berkas, termasuk pergantian namanya + +```$ git diff [cabang-pertama]...[cabang-kedua]``` + +Menunjukkan perbedaan konten antar dua cabang + +`` `$ git show [commit]` `` + +Mennampilkan perubahan konten dan metadata yang terdaftar dalam sebuah komit + +## Lakukan _commit_ kembali +Menghapus kesalahan dan buat riwayat penggantian + +`` `$ git reset [commit]` `` + +Membatalkan semua _commit_ setelah `[commit]`, dengan melestarikan perubahan lokal + +`` `$ Git reset --hard [commit]` `` + +Membuang semua riwayat dan perubahan sampai di titik yang ditentukan oleh _commit_ + +## Sinkronisasi perubahan +Daftar (tautan) remot dan perbarui riwayat repositori + +```$ git fetch [remot]``` + +Unduh semua riwayat dari repositori remot + +```$ git merge [remot]/[cabang]``` + +Menggabungkan cabang remot ke dalam cabang lokal saat ini + +```$ git push [remote] [branch]``` + +Unggah semua _commit_ dari cabang lokal ke GitHub + +```$ git pull``` + +Unduh riwayat marka dan gabungkan perubahan +{% endcapture %} +
    +{{ colFour | markdownify }} +
    diff --git a/downloads/submodule-vs-subtree-cheat-sheet.md b/downloads/submodule-vs-subtree-cheat-sheet.md new file mode 100644 index 000000000..7117a1ca7 --- /dev/null +++ b/downloads/submodule-vs-subtree-cheat-sheet.md @@ -0,0 +1,228 @@ +--- +layout: cheat-sheet +title: Handling Dependencies with Submodules and Subtrees +byline: Submodules and subtrees are git tools that allow subprojects to be included as a subdirectory within a project. The implementation of each is very different. +leadingpath: ../../ +--- + +
    +

    Adding a New Subproject

    +
    + +{% capture submodule %} +### Submodule + + git submodule add https://github.com/githubtraining/example-submodule + + git commit -m "adding new submodule" + +The `submodule add` command adds a new file called `.gitmodules` along with a subdirectory containing the files from `example-submodule`. Both are added to your index (staging area) and you simply need to commit them. The submodule's history remains independent of the parent project. + +{% endcapture %} + +{% capture subtree %} + +### Subtree + + + git subtree add --prefix=example-submodule https://github.com/githubtraining/example-submodule master --squash + +The subtree command adds a subdirectory containing the files from `example-submodule`. The most common practice is to use the `--squash` option to combine the subproject's history into a single commit, which is then grafted onto the existing tree of the parent project. You can omit the `--squash` option to maintain all of the history from the designated branch of the subproject. + +{% endcapture %} + +
    +{{ submodule | markdownify }} +
    + +
    +{{ subtree | markdownify }} +
    + +
    +

    Viewing a Diff of the Subproject

    +
    + +{% capture submodule %} +### Submodule + +To view a diff of the submodule: + + git diff --cached example-submodule + git diff --cached --submodule example-submodule +{% endcapture %} + +{% capture subtree %} + +### Subtree + +No special command required + +{% endcapture %} + +
    +{{ submodule | markdownify }} +
    + +
    +{{ subtree | markdownify }} +
    + +
    +

    Cloning a Repository with a Subproject

    +
    + +{% capture submodule %} +### Submodule + +Anyone who clones will need to: + + git clone --recursive URL + +Anyone who already has a local copy of the repo will need to: + + git submodule update --init + +{% endcapture %} + +{% capture subtree %} + +### Subtree + +No special command required + +{% endcapture %} + +
    +{{ submodule | markdownify }} +
    + +
    +{{ subtree | markdownify }} +
    + +
    +

    Pulling in Subproject Updates

    +
    + +{% capture submodule %} +### Submodule + + git submodule update --remote + +If you have more than one submodule, you can add the name of the submodule to the end of the command to specify which subproject to update. + +By default, this will update the submodule and check out to the default branch of the submodule remote. + +You can change the default branch with: + + git config -f .gitmodules submodule.example-submodule.branch other-branch + +{% endcapture %} + +{% capture subtree %} + +### Subtree + git subtree pull --prefix=example-submodule https://github.com/githubtraining/example-submodule master --squash + +You can shorten the command by adding the subtree URL as a remote: + + git remote add sub-remote https://github.com/githubtraining/example-submodule.git + +You can add/pull from other refs by replacing master with the desired ref (e.g. stable, v1.0). + +{% endcapture %} + +
    +{{ submodule | markdownify }} +
    + +
    +{{ subtree | markdownify }} +
    + +
    +

    Making Changes to a Subproject

    + +In most cases, it is considered best practice to make changes in the subproject repository and pull them in to the parent project. When this is not practical, follow these instructions: +
    + +{% capture submodule %} +### Submodule + +Access the submodule directory and create a branch: + + cd example-submodule + git checkout -b branch-name master + +Changes require two commits, one in the subproject repository and one in the parent repository. + +{% endcapture %} + +{% capture subtree %} + +### Subtree + +No special command required, changes will be committed on the parent project branch. + +It is possible to create commits mixing changes to the subproject and the parent project, but this is generally discouraged. +{% endcapture %} + +
    +{{ submodule | markdownify }} +
    + +
    +{{ subtree | markdownify }} +
    + +
    +

    Pushing Changes to the Subproject Repository

    +
    + +{% capture submodule %} +### Submodule + +While in the submodule directory: + + git push + +Or while in the parent directory: + + git push --recurse-submodules=on-demand + +{% endcapture %} + +{% capture subtree %} + +### Subtree + git subtree push --prefix= example-submodule https://github.com/githubtraining/example-submodule master +{% endcapture %} + +
    +{{ submodule | markdownify }} +
    + +
    +{{ subtree | markdownify }} +
    + +
    +

    Helpful Configs for Submodules

    + +{% capture configs %} +Always show the submodule log when you diff: + + git config --global diff.submodule log + +Show a short summary of submodule changes in your status message: + + git config status.submoduleSummary true + +See the diffs in all of your submodules: + + git config alias.sdiff "git diff; git submodule foreach 'git diff'" +{% endcapture %} + +{{ configs | markdownify }} +
    diff --git a/images/atom.png b/images/atom.png new file mode 100644 index 000000000..bd59db3db Binary files /dev/null and b/images/atom.png differ diff --git a/images/cherry-pick-after.png b/images/cherry-pick-after.png new file mode 100644 index 000000000..34b72cd2e Binary files /dev/null and b/images/cherry-pick-after.png differ diff --git a/images/cherry-pick-before.png b/images/cherry-pick-before.png new file mode 100644 index 000000000..4e15a1b82 Binary files /dev/null and b/images/cherry-pick-before.png differ diff --git a/images/cherry-pick-reflog.png b/images/cherry-pick-reflog.png new file mode 100644 index 000000000..e0937066c Binary files /dev/null and b/images/cherry-pick-reflog.png differ diff --git a/images/cluster/m1.png b/images/cluster/m1.png new file mode 100644 index 000000000..329ff524c Binary files /dev/null and b/images/cluster/m1.png differ diff --git a/images/cluster/m2.png b/images/cluster/m2.png new file mode 100644 index 000000000..b999cbcf6 Binary files /dev/null and b/images/cluster/m2.png differ diff --git a/images/cluster/m3.png b/images/cluster/m3.png new file mode 100644 index 000000000..9f30b3092 Binary files /dev/null and b/images/cluster/m3.png differ diff --git a/images/cluster/m4.png b/images/cluster/m4.png new file mode 100644 index 000000000..0d3f8263b Binary files /dev/null and b/images/cluster/m4.png differ diff --git a/images/cluster/m5.png b/images/cluster/m5.png new file mode 100644 index 000000000..61387d2ab Binary files /dev/null and b/images/cluster/m5.png differ diff --git a/images/electron1.png b/images/electron1.png new file mode 100644 index 000000000..49d95d59d Binary files /dev/null and b/images/electron1.png differ diff --git a/images/electron2.png b/images/electron2.png new file mode 100644 index 000000000..ee66fa47c Binary files /dev/null and b/images/electron2.png differ diff --git a/images/gifs/electron/electron1-add-css.gif b/images/gifs/electron/electron1-add-css.gif new file mode 100644 index 000000000..ceabe2b84 Binary files /dev/null and b/images/gifs/electron/electron1-add-css.gif differ diff --git a/images/gifs/electron/electron1-add-index.gif b/images/gifs/electron/electron1-add-index.gif new file mode 100644 index 000000000..8d59a5331 Binary files /dev/null and b/images/gifs/electron/electron1-add-index.gif differ diff --git a/images/gifs/electron/electron1-add-javascript.gif b/images/gifs/electron/electron1-add-javascript.gif new file mode 100644 index 000000000..c416811f5 Binary files /dev/null and b/images/gifs/electron/electron1-add-javascript.gif differ diff --git a/images/gifs/electron/electron1-create-files.gif b/images/gifs/electron/electron1-create-files.gif new file mode 100644 index 000000000..dc8513778 Binary files /dev/null and b/images/gifs/electron/electron1-create-files.gif differ diff --git a/images/gifs/electron/electron1-createapp.gif b/images/gifs/electron/electron1-createapp.gif new file mode 100644 index 000000000..2cfc32d31 Binary files /dev/null and b/images/gifs/electron/electron1-createapp.gif differ diff --git a/images/gifs/electron/electron1-push-to-github.gif b/images/gifs/electron/electron1-push-to-github.gif new file mode 100644 index 000000000..6e2160d47 Binary files /dev/null and b/images/gifs/electron/electron1-push-to-github.gif differ diff --git a/images/gifs/electron/electron1-run-app.gif b/images/gifs/electron/electron1-run-app.gif new file mode 100644 index 000000000..52fd84f9d Binary files /dev/null and b/images/gifs/electron/electron1-run-app.gif differ diff --git a/images/gifs/electron/electron2-icon.gif b/images/gifs/electron/electron2-icon.gif new file mode 100644 index 000000000..fd4d63ce2 Binary files /dev/null and b/images/gifs/electron/electron2-icon.gif differ diff --git a/images/gifs/electron/electron2-packaging.gif b/images/gifs/electron/electron2-packaging.gif new file mode 100644 index 000000000..785d12d2e Binary files /dev/null and b/images/gifs/electron/electron2-packaging.gif differ diff --git a/images/gifs/electron/electron2-test.gif b/images/gifs/electron/electron2-test.gif new file mode 100644 index 000000000..ba0f44e44 Binary files /dev/null and b/images/gifs/electron/electron2-test.gif differ diff --git a/images/gifs/electron/electron2-use-electron-pack.gif b/images/gifs/electron/electron2-use-electron-pack.gif new file mode 100644 index 000000000..325f48255 Binary files /dev/null and b/images/gifs/electron/electron2-use-electron-pack.gif differ diff --git a/images/gifs/github-cli/create-repository.gif b/images/gifs/github-cli/create-repository.gif deleted file mode 100644 index 6a6691dce..000000000 Binary files a/images/gifs/github-cli/create-repository.gif and /dev/null differ diff --git a/images/gifs/github-desktop/add-collab.gif b/images/gifs/github-desktop/add-collab.gif deleted file mode 100644 index ee139b74a..000000000 Binary files a/images/gifs/github-desktop/add-collab.gif and /dev/null differ diff --git a/images/gifs/github-desktop/add-commits-locally.gif b/images/gifs/github-desktop/add-commits-locally.gif index ea8a28c0d..157285ca8 100644 Binary files a/images/gifs/github-desktop/add-commits-locally.gif and b/images/gifs/github-desktop/add-commits-locally.gif differ diff --git a/images/gifs/github-desktop/choose-a-theme.gif b/images/gifs/github-desktop/choose-a-theme.gif new file mode 100644 index 000000000..04f8d1b3b Binary files /dev/null and b/images/gifs/github-desktop/choose-a-theme.gif differ diff --git a/images/gifs/github-desktop/clone-repository-locally.gif b/images/gifs/github-desktop/clone-repository-locally.gif index 72b12aa12..16ac1d147 100644 Binary files a/images/gifs/github-desktop/clone-repository-locally.gif and b/images/gifs/github-desktop/clone-repository-locally.gif differ diff --git a/images/gifs/github-desktop/create-branch-on-desktop.gif b/images/gifs/github-desktop/create-branch-on-desktop.gif index 07a506030..abbbe5e07 100644 Binary files a/images/gifs/github-desktop/create-branch-on-desktop.gif and b/images/gifs/github-desktop/create-branch-on-desktop.gif differ diff --git a/images/gifs/github-desktop/create-repo.gif b/images/gifs/github-desktop/create-repo.gif new file mode 100644 index 000000000..a31738460 Binary files /dev/null and b/images/gifs/github-desktop/create-repo.gif differ diff --git a/images/gifs/github-desktop/create-repository-on-github.gif b/images/gifs/github-desktop/create-repository-on-github.gif deleted file mode 100644 index 135121c04..000000000 Binary files a/images/gifs/github-desktop/create-repository-on-github.gif and /dev/null differ diff --git a/images/gifs/github-desktop/download-gh-desktop.gif b/images/gifs/github-desktop/download-gh-desktop.gif index abbdccf84..7c21eab00 100644 Binary files a/images/gifs/github-desktop/download-gh-desktop.gif and b/images/gifs/github-desktop/download-gh-desktop.gif differ diff --git a/images/gifs/github-desktop/join-repo-make-issue-pages.gif b/images/gifs/github-desktop/join-repo-make-issue-pages.gif new file mode 100644 index 000000000..9579bea16 Binary files /dev/null and b/images/gifs/github-desktop/join-repo-make-issue-pages.gif differ diff --git a/images/gifs/github-desktop/making-commits-locally.gif b/images/gifs/github-desktop/making-commits-locally.gif index 4cc4ba93b..1f8043cf4 100644 Binary files a/images/gifs/github-desktop/making-commits-locally.gif and b/images/gifs/github-desktop/making-commits-locally.gif differ diff --git a/images/gifs/github-desktop/merge-pr.gif b/images/gifs/github-desktop/merge-pr.gif index 8c991fec6..b06142508 100644 Binary files a/images/gifs/github-desktop/merge-pr.gif and b/images/gifs/github-desktop/merge-pr.gif differ diff --git a/images/gifs/github-desktop/opening-a-pr.gif b/images/gifs/github-desktop/opening-a-pr.gif index e876b7c6c..a661be647 100644 Binary files a/images/gifs/github-desktop/opening-a-pr.gif and b/images/gifs/github-desktop/opening-a-pr.gif differ diff --git a/images/gifs/github-desktop/review-local-workflow.gif b/images/gifs/github-desktop/review-local-workflow.gif index 4b1d3c995..a9e9e92c0 100644 Binary files a/images/gifs/github-desktop/review-local-workflow.gif and b/images/gifs/github-desktop/review-local-workflow.gif differ diff --git a/images/gifs/github-desktop/review-push-open-pr.gif b/images/gifs/github-desktop/review-push-open-pr.gif index 04a05e740..9eb7bd204 100644 Binary files a/images/gifs/github-desktop/review-push-open-pr.gif and b/images/gifs/github-desktop/review-push-open-pr.gif differ diff --git a/images/gifs/github-desktop/sync-changes.gif b/images/gifs/github-desktop/sync-changes.gif index de4294390..3561fac3b 100644 Binary files a/images/gifs/github-desktop/sync-changes.gif and b/images/gifs/github-desktop/sync-changes.gif differ diff --git a/images/gifs/graphql/build-query.gif b/images/gifs/graphql/build-query.gif new file mode 100644 index 000000000..ac3e26ac5 Binary files /dev/null and b/images/gifs/graphql/build-query.gif differ diff --git a/images/gifs/graphql/first-query.gif b/images/gifs/graphql/first-query.gif new file mode 100644 index 000000000..9c6a75f9b Binary files /dev/null and b/images/gifs/graphql/first-query.gif differ diff --git a/images/gifs/graphql/get-issue-id.gif b/images/gifs/graphql/get-issue-id.gif new file mode 100644 index 000000000..d4808b6db Binary files /dev/null and b/images/gifs/graphql/get-issue-id.gif differ diff --git a/images/gifs/graphql/mutation.gif b/images/gifs/graphql/mutation.gif new file mode 100644 index 000000000..5e4f64898 Binary files /dev/null and b/images/gifs/graphql/mutation.gif differ diff --git a/images/gifs/graphql/recent-contributions.gif b/images/gifs/graphql/recent-contributions.gif new file mode 100644 index 000000000..2c72c7534 Binary files /dev/null and b/images/gifs/graphql/recent-contributions.gif differ diff --git a/images/gifs/intro/join-class-repo.gif b/images/gifs/intro/join-class-repo.gif deleted file mode 100644 index 08d659b33..000000000 Binary files a/images/gifs/intro/join-class-repo.gif and /dev/null differ diff --git a/images/gifs/intro/join-repo-make-issue-introduction.gif b/images/gifs/intro/join-repo-make-issue-introduction.gif new file mode 100644 index 000000000..5f7f4c66e Binary files /dev/null and b/images/gifs/intro/join-repo-make-issue-introduction.gif differ diff --git a/images/gifs/intro/notifications.gif b/images/gifs/intro/notifications.gif deleted file mode 100644 index d42fa21fd..000000000 Binary files a/images/gifs/intro/notifications.gif and /dev/null differ diff --git a/images/gifs/reset/commit-history.gif b/images/gifs/reset/commit-history.gif new file mode 100644 index 000000000..1d5ac9d88 Binary files /dev/null and b/images/gifs/reset/commit-history.gif differ diff --git a/images/gifs/reset/create-local-repository.gif b/images/gifs/reset/create-local-repository.gif new file mode 100644 index 000000000..930ff4db4 Binary files /dev/null and b/images/gifs/reset/create-local-repository.gif differ diff --git a/images/gifs/reset/git-reflog-git-cherry-pick.gif b/images/gifs/reset/git-reflog-git-cherry-pick.gif new file mode 100644 index 000000000..75fa3b59a Binary files /dev/null and b/images/gifs/reset/git-reflog-git-cherry-pick.gif differ diff --git a/images/gifs/reset/git-reset-hard.gif b/images/gifs/reset/git-reset-hard.gif new file mode 100644 index 000000000..d50fdc51a Binary files /dev/null and b/images/gifs/reset/git-reset-hard.gif differ diff --git a/images/gifs/reset/git-reset-mixed.gif b/images/gifs/reset/git-reset-mixed.gif new file mode 100644 index 000000000..88aeaffc6 Binary files /dev/null and b/images/gifs/reset/git-reset-mixed.gif differ diff --git a/images/gifs/reset/git-reset-soft.gif b/images/gifs/reset/git-reset-soft.gif new file mode 100644 index 000000000..bcacbc095 Binary files /dev/null and b/images/gifs/reset/git-reset-soft.gif differ diff --git a/images/gifs/windows/configure-credmgr.gif b/images/gifs/windows/configure-credmgr.gif new file mode 100644 index 000000000..9da17d636 Binary files /dev/null and b/images/gifs/windows/configure-credmgr.gif differ diff --git a/images/gifs/windows/configure-crlf.gif b/images/gifs/windows/configure-crlf.gif new file mode 100644 index 000000000..77799c814 Binary files /dev/null and b/images/gifs/windows/configure-crlf.gif differ diff --git a/images/gifs/windows/configure-git.gif b/images/gifs/windows/configure-git.gif new file mode 100644 index 000000000..ce378a786 Binary files /dev/null and b/images/gifs/windows/configure-git.gif differ diff --git a/images/gifs/windows/tfs-make-commit.gif b/images/gifs/windows/tfs-make-commit.gif new file mode 100644 index 000000000..6cb13f5c0 Binary files /dev/null and b/images/gifs/windows/tfs-make-commit.gif differ diff --git a/images/git-merge-recursive.png b/images/git-merge-recursive.png new file mode 100644 index 000000000..64ac884e3 Binary files /dev/null and b/images/git-merge-recursive.png differ diff --git a/images/git-merge.png b/images/git-merge.png new file mode 100644 index 000000000..d82310599 Binary files /dev/null and b/images/git-merge.png differ diff --git a/images/git-rebase-after.png b/images/git-rebase-after.png new file mode 100644 index 000000000..e4741410e Binary files /dev/null and b/images/git-rebase-after.png differ diff --git a/images/git-rebase-before.png b/images/git-rebase-before.png new file mode 100644 index 000000000..9e8c90056 Binary files /dev/null and b/images/git-rebase-before.png differ diff --git a/images/git-rebase.png b/images/git-rebase.png new file mode 100644 index 000000000..e75d85ca7 Binary files /dev/null and b/images/git-rebase.png differ diff --git a/images/github-pages-code.png b/images/github-pages-code.png deleted file mode 100644 index 2b01ba613..000000000 Binary files a/images/github-pages-code.png and /dev/null differ diff --git a/images/graphql-logo.svg b/images/graphql-logo.svg new file mode 100644 index 000000000..6a8a83abe --- /dev/null +++ b/images/graphql-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/push-dropdowns.png b/images/push-dropdowns.png new file mode 100644 index 000000000..cc12e386f Binary files /dev/null and b/images/push-dropdowns.png differ diff --git a/images/red-polo.png b/images/red-polo.png new file mode 100644 index 000000000..7435132d8 Binary files /dev/null and b/images/red-polo.png differ diff --git a/images/reset-mixed.png b/images/reset-mixed.png new file mode 100644 index 000000000..933d6659b Binary files /dev/null and b/images/reset-mixed.png differ diff --git a/images/reset-soft.png b/images/reset-soft.png new file mode 100644 index 000000000..e0d6527be Binary files /dev/null and b/images/reset-soft.png differ diff --git a/index.md b/index.md index 533cbdbbe..2da71d215 100644 --- a/index.md +++ b/index.md @@ -1,7 +1,7 @@ --- layout: splash header: - overlay_image: cover.jpeg + overlay_image: cover.jpeg "Picture of keyboard with hands typing and a cup of coffee" overlay_filter: rgba(46, 129, 200, 0.6) excerpt: "You're in control. We're with you along the way." diff --git a/paths/electron/distributing/01-share-apps.md b/paths/electron/distributing/01-share-apps.md new file mode 100644 index 000000000..1651ff659 --- /dev/null +++ b/paths/electron/distributing/01-share-apps.md @@ -0,0 +1,26 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Share Your App +permalink: /electron/share-your-app/ +next-page: /electron/share-your-app/list-on-app-stores/ +facilitator: false +sidebar: + nav: "electron-share-your-app" +main-content: | + + So you have a packaged app, but now what? The next few pages will walk through how to make apps easy to find and download. The Electron team keeps the [source of truth](https://github.com/electron/electron/blob/master/docs/tutorial/application-distribution.md) for application distribution. + + ### Legal things to be aware of + + Once you're sharing your app, your licenses and other legal things need to be in order. We recommend that you [choose the right license for your project](https://help.github.com/articles/licensing-a-repository/) early on to avoid headaches in the future. + + ### Getting Help + + If you have any issues and need help, we've created a repository for you! If you have any questions throughout this course, go here to open an issue and ask a question: [On Demand Electron App Repo](https://github.com/githubschool/on-demand-electron-app). +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/distributing/02-native-app-discovery.md b/paths/electron/distributing/02-native-app-discovery.md new file mode 100644 index 000000000..0496b6034 --- /dev/null +++ b/paths/electron/distributing/02-native-app-discovery.md @@ -0,0 +1,25 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: List on App Stores +permalink: /electron/share-your-app/list-on-app-stores/ +next-page: /electron/share-your-app/share-on-websites/ +facilitator: false +sidebar: + nav: "electron-share-your-app" +main-content: | + + Here are some resources for sharing the apps in their native stores. However, instead of walking through this process with the app we built earlier, we'll show you these resources and move on to a how-to of getting the app up and ready for download from a website. + + - **Apple** has the [Mac App Store](https://www.apple.com/ca/osx/apps/app-store/). Read up on [Electron's guide for Mac App Store Submission](https://github.com/electron/electron/blob/master/docs/tutorial/mac-app-store-submission-guide.md), or Apple's own [guide]( + https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/SubmittingYourApp/SubmittingYourApp.html). + - **Windows** has the [Windows Store](https://www.microsoft.com/en-US/store/apps?rtc=1). There's also an [Electron guide for the Windows Store](https://github.com/electron/electron/blob/master/docs/tutorial/windows-store-guide.md), and Microsoft also keeps an [application submission checklist for Windows](https://docs.microsoft.com/en-us/windows/uwp/publish/app-submissions). + - **Linux** has [Ubuntu Apps Directory](https://apps.ubuntu.com/cat/) and [Deepin App Store](http://appstore.deepin.com/). + + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/distributing/03-sharing-on-websites.md b/paths/electron/distributing/03-sharing-on-websites.md new file mode 100644 index 000000000..bd7ae4aaf --- /dev/null +++ b/paths/electron/distributing/03-sharing-on-websites.md @@ -0,0 +1,22 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Share on Websites +permalink: /electron/share-your-app/share-on-websites/ +next-page: /electron/share-your-app/celebrate/ +facilitator: false +sidebar: + nav: "electron-share-your-app" +main-content: | + + Most commonly, Electron apps are shared via [GitHub Releases](https://help.github.com/articles/about-releases/). People who create and package their own applications upload the binaries to a GitHub repository where others can download them. You can see some great examples of this on the [Electron App page](https://electron.atom.io/apps/). This is free, version controlled, and kept cleanly alongside your code. + + Once you [create your release](https://help.github.com/articles/creating-releases/), link to your downloads from your website! We recommend [GitHub Pages](../../github-cli/) if you don't have a website yet. + + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/distributing/04-celebrate.md b/paths/electron/distributing/04-celebrate.md new file mode 100644 index 000000000..a3c00826e --- /dev/null +++ b/paths/electron/distributing/04-celebrate.md @@ -0,0 +1,23 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Celebrate +permalink: /electron/share-your-app/celebrate/ +facilitator: false +sidebar: + nav: "electron-share-your-app" +main-content: | + + + ## Congratulations! :tada: + + Now you've really done it - you've created a multi-platform application, packaged it, and you're sharing it! Explore the [Electron community](https://electron.atom.io/community/), and keep building fantastic applications. + + + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/distributing/outline.md b/paths/electron/distributing/outline.md new file mode 100644 index 000000000..6afcd7a95 --- /dev/null +++ b/paths/electron/distributing/outline.md @@ -0,0 +1,19 @@ +# Electron 103: Sharing Apps + +So I have a packaged app, now what? How to get apps onto the app store and easy to download. + + +## Legal things to be aware of +- Once you're sharing your app, your licenses and other legal things need to be in order + - App submission checklist for Windows (https://docs.microsoft.com/en-us/windows/uwp/publish/app-submissions) + + +## Native App Discovery +- [General docs on application distribution](https://github.com/electron/electron/blob/master/docs/tutorial/application-distribution.md) +- Apple has app store...[See Mac App Store Submission Guide](https://github.com/electron/electron/blob/master/docs/tutorial/mac-app-store-submission-guide.md) +- Windows has the [Windows Store]( (https://www.microsoft.com/en-US/store/apps?rtc=1))...[See Windows Store Guide](https://github.com/electron/electron/blob/master/docs/tutorial/windows-store-guide.md) +- Linux has Ubuntu Apps Directory (https://apps.ubuntu.com/cat/) and Deepin App Store (http://appstore.deepin.com/) + +## Downloads from a website, how to set up a website so others can download a program by clicking a button + +- Show how to get the packaged app onto existing website (maybe pages? linking to release package? would we need something heftier?) diff --git a/paths/electron/electron.md b/paths/electron/electron.md new file mode 100644 index 000000000..490e55dd7 --- /dev/null +++ b/paths/electron/electron.md @@ -0,0 +1,9 @@ +--- +layout: default +title: Electron +permalink: /electron/ +facilitator: false + +--- + +{% include electron.html %} diff --git a/paths/electron/packaging-apps/01-packaging-electron.md b/paths/electron/packaging-apps/01-packaging-electron.md new file mode 100644 index 000000000..129037195 --- /dev/null +++ b/paths/electron/packaging-apps/01-packaging-electron.md @@ -0,0 +1,46 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Package Your App for Downloads +permalink: /electron/package-your-app/ +next-page: /electron/package-your-app/use-electron-packager/ +facilitator: false +sidebar: + nav: "electron-package-your-app" +main-content: | + + + ## Packaging Electron Applications + + We are going to use a node package named [`electron-packager`](https://github.com/electron-userland/electron-packager) to package the Electron app. This means that others will be able to download and use the app natively, whether they're running macOS, Windows, or Linux. + + _Note: There are absolutely other tools to package Electron apps, but we're using this one because it's widely adopted and consistently maintained within the community. Feel free to branch out and explore others after this demo if you're interested!_ + + ### Packaging for different environments + + macOS, Windows, and Linux all have different technical needs for apps to work well. We will work through those technical needs, but it's important to keep in mind that there's much more to building apps for multiple operating systems. Packaging can be done for each operating system, but the user interface isn't automatically made to look native in the process. It's good practice to be mindful of a user's experience with the interface of their native OS. As you begin to ramp up on desktop app development, you should consider designing interfaces that fit into the user's mental model of their OS. + + ### Why `electron-packager`? + + Many factors make the process of packaging Electron applications somewhat complicated. It is a different process based on your operating system and the operating system you're trying to package for. Right now, [`electron-packager`](https://github.com/electron-userland/electron-packager) is the community's most popular choice to solve these problems. + + ### Downloading `electron-packager` + + While you are in the command line in the directory of your electron app, install the node package `electron-packager` and [save it to your development dependencies in the `package.json` file](https://github.com/githubschool/on-demand-electron-app/blob/master/package.json#L60). + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron2-packaging.gif) + + 1. `npm install electron-packager --save-dev` + + Since we run this command with `--save-dev`, it will be installed for this directory _and_ added to the `package.json` file, the important file that guides Node and `npm` packages for the life of the project. + + ### Getting Help + + If you have any issues and need help, we've created a repository for you! If you have any questions throughout this course, go here to open an issue and ask a question: [On Demand Electron App Repo](https://github.com/githubschool/on-demand-electron-app). + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/packaging-apps/02-using-electron-packager.md b/paths/electron/packaging-apps/02-using-electron-packager.md new file mode 100644 index 000000000..e4bbe8a59 --- /dev/null +++ b/paths/electron/packaging-apps/02-using-electron-packager.md @@ -0,0 +1,53 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Use electron-packager +permalink: /electron/package-your-app/use-electron-packager/ +next-page: /electron/package-your-app/add-an-icon/ +facilitator: false +sidebar: + nav: "electron-package-your-app" +main-content: | + + Now that we have installed `electron-packager`, we're ready to use it. We could type out the entire command every time, but it's best practice to add a build script to the `package.json` file. This means that every time we run the default build script, our specific list of commands will be run. + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron2-packaging.gif) + + + 1. In the `package.json` file, add the following script in "scripts" of package.json. + + "build": "electron-packager . electron-app --all --overwrite" + 1. In the `src/index.js` file, the first line is pre-populated by `electron-forge` and doesn't play nicely with `electron-packager`. Replace the first line with: + + const { BrowserWindow, app } = require('electron'); + 1. Run the new build script with: `npm run build` + 1. If this doesn't work for you, check out the troubleshooting steps below. + +troubleshooting: | + There are some inconsistencies between electron-packager and the most recent version of node. If the steps above didn't work for you, try using `node 6.11.2` with `npm 3.10.10`. The following steps should help you do this on macOS. + + _Note: We're using nvm here instead of `n`, or other version manager tools. If you can duplicate successful steps to adjust your node version, please do so (and good luck!)._ + + **macOS** + + 1. Type `brew cask install xquartz` + 1. Type `brew install wine` + 1. Type `brew install nvm` + 1. Type `nvm install 6.11.2` + 1. Type `nvm use 6` + 1. Use the `npm run build` command again, and everything should work! + - **WARNING** -- It might take a long time to build the win32 package. Leave this for 5-10 minutes and return. + +show-me-how: +tell-me-why: | + When we use [electron-packager](https://github.com/electron-userland/electron-packager#usage), we have some options about how and what we build the applications. + + The typical form is: + + electron-packager --platform= --arch= [optional flags...] + + However, when we use the `--all` flag, `electron-packager` creates bundles for all valid combinations of target platforms/architectures. + +--- diff --git a/paths/electron/packaging-apps/03-adding-an-icon.md b/paths/electron/packaging-apps/03-adding-an-icon.md new file mode 100644 index 000000000..d9897c2e6 --- /dev/null +++ b/paths/electron/packaging-apps/03-adding-an-icon.md @@ -0,0 +1,60 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Add an Icon +permalink: /electron/package-your-app/add-an-icon/ +next-page: /electron/package-your-app/test-your-app/ +facilitator: false +sidebar: + nav: "electron-package-your-app" +main-content: | + + We have an app, but right now the app only uses the default image. Let's make it a specific, custom image. + + ### Finding an Image + + To find an image for your application, keep a few things in mind. + + - Ownership of the image (Public domain or self-owned) + - Size of image (recommendation here) + + Not sure where to start? [Check out this icon library](https://useiconic.com/open)! + + ### Converting the Image + + Every operating system will prefer a different format of image. + + | Operating System | Image Format | + |-----|-----| + | macOS | .icns | + | Windows | .ico | + | Linux | .png | + + To convert the image to the appropriate format, we recommend [this tool](https://iconverticons.com/online/). + + ### Including the Image in the Build + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron2-icon.gif) + + 1. From your project's root directory in the CLI, type `mkdir Icons` to create a new Icons directory. + 1. Generate an icon file for Windows (.ico), macOS (.icns), and Linux (.png). + 1. Add all of the image files to the `Icons` directory. + 1. Replace the previous build script in your `package.json` to account for builds with different icons with the scripts below. In the example below, the app name is `electron-app`, and the icon name is `unicorn`. You can change that to match your own app and icon name. + + "build-darwin" : "electron-packager . electron-app --platform=darwin --icon Icons/unicorn.icns --overwrite", + "build-mas" : "electron-packager . electron-app --platform=mas --icon Icons/unicorn.icns --overwrite", + "build-linux" : "electron-packager . electron-app --platform=linux --icon Icons/unicorn.png --overwrite", + "build-win32" : "electron-packager . electron-app --platform=win32 --icon Icons/unicorn.ico --overwrite", + "build" : "npm run build-darwin && npm run build-mas && npm run build-linux && npm run build-win32" + + 1. Rebuild: `npm run build` + + To see an example file of this, [take a peek at our example repository](https://github.com/githubschool/on-demand-electron-app/blob/master/package.json#L12-L16). + + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/packaging-apps/04-testing.md b/paths/electron/packaging-apps/04-testing.md new file mode 100644 index 000000000..3b9c4012e --- /dev/null +++ b/paths/electron/packaging-apps/04-testing.md @@ -0,0 +1,22 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Test Your App +permalink: /electron/package-your-app/test-your-app/ +next-page: /electron/package-your-app/celebrate/ +facilitator: false +sidebar: + nav: "electron-package-your-app" +main-content: | + + Now that you've created and packaged the application for many operating systems, you may want to ensure that the app will work as expected. The obvious way to do this is to share it with yourself or someone you trust who has access to that operating system and try it manually. However, there are other ways to do this. + + We won't walk through the steps of setting up testing in this tutorial. However, [Spectron](https://electron.atom.io/spectron/) is the Electron community's preferred way to test Electron apps. Spectron's [source code](https://github.com/electron/spectron) is also kept on GitHub. + + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/packaging-apps/05-celebrate.md b/paths/electron/packaging-apps/05-celebrate.md new file mode 100644 index 000000000..d2458adaf --- /dev/null +++ b/paths/electron/packaging-apps/05-celebrate.md @@ -0,0 +1,19 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Celebrate +permalink: /electron/package-your-app/celebrate/ +facilitator: false +sidebar: + nav: "electron-package-your-app" +main-content: | + ## Hooray! :tada: + + Next, you're ready to learn learn [how to share packaged applications](../../share-your-app/) with others. + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/packaging-apps/outline.md b/paths/electron/packaging-apps/outline.md new file mode 100644 index 000000000..df2088eec --- /dev/null +++ b/paths/electron/packaging-apps/outline.md @@ -0,0 +1,54 @@ +# Electron 102: Packaging Electron Apps + +Main goal: Going from local to something someone can download + +Outstanding questions: +?? Do we need to have different guides here? +Maybe using something like this video to help us: https://www.youtube.com/watch?v=GC3oMVdnmVg +- Packaging from Mac to Mac +- Packaging from Mac to Linux +- Packaging from Mac to Windows (I needed to `brew cask install xquartz`, and `brew install wine`, and was prompted to install a wine mono package from a website which I did but don't know if it was necessary) +- Packaging from Windows to Mac +- Packaging from Windows to Linux +- etc...? + +## Getting Started with `electron-packager` + + ### Packaging for different environments + - Needs for Windows, OSX, and Linux + - Packaging can be done for each OS, but the UI isn't automatically made to look native in the process + - Many factors make this somewhat complicated. It is a different process based on your OS and the OS you're trying to go to. + + ### Tools to use + - [How to do this with Electron](https://github.com/electron/electron/blob/master/docs/tutorial/application-packaging.md) + - [Other libraries to use](https://github.com/electron-userland/electron-packager) + + +# Walkthrough of Process +- `npm install electron-packager --save-dev` +- Add build script `"build": "electron-packager . app-name --ignore=node_modules/electron-*"` in "scripts" of package.json (ignore all dependency apps the same way) +- `npm run build` + + +## Adding an Icon +- Including the icon image for the program +- give recommendations on what type of image is allowed (open or public domain) and what size would be best. +- possibly include [icon library](https://useiconic.com/open) suggestions +- Replace icon in Contents>Resources directory in build script: "build": "electron-packager . app-name && cp Icon.icns Path/To/New/Icon" +- Delete app: `rm -rf AppName.app` +- Rebuild: `npm run build` + +## Stopping people from editing source code with asar +- Archive capability with asar +- `npm install asar --save-dev` +- Create another script in package.json called "package": "asar pack AppName.app/Contents/Resources/app MyApp.app/Contents/Resources/app.assar" +- Run `npm package`, and delete the app directory + +## Testing that the packages work +- How to test the packages +- Allude to automated testing but probably not walk through it + +## Using electron-packager, how to clean up old binaries and what that means +- ? + +## Hooray! Next, let's learn how to share diff --git a/paths/electron/starting-with-electron/01-getting-started.md b/paths/electron/starting-with-electron/01-getting-started.md new file mode 100644 index 000000000..39e305790 --- /dev/null +++ b/paths/electron/starting-with-electron/01-getting-started.md @@ -0,0 +1,54 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Get Started with Electron +permalink: /electron/create-an-app/ +next-page: /electron/create-an-app/create-your-app/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + Welcome to the first in a series of courses on Electron! + + Electron allows you to create native desktop applications using web technologies. + +
    + + ### Environment Setup + + Before we get started, let's identify the things you are going to need to be successful in this course. + + - Install [Git](../../github-cli/git-configuration) + - Install [Node.js and NPM](https://nodejs.org/en/download/) + - Create a [GitHub account](../../intro-to-github/create-github-account) + - Get [excited to learn new things](http://www.reactiongifs.com/r/cheering_minions.gif) + + We will be using Node.js packages that are not maintained by GitHub. This means that we chose these packages because we believe they will make the easiest, smoothest path to get up and running. However, as you continue to work with Electron, there may be other packages that are better fits for your projects. + + ### Software Skills + + If you are already familiar with HTML, CSS, and Javascript then adding Electron to your toolkit will be :cake:. For this course, the basics are more than enough. + + **_What if I'm still learning?_** + + Don't worry. We'll walk you through what you need to get today's app running, even if you don't have much experience in these technologies. + + **_What counts as familiar enough?_** + + Creating an app on your own requires the same level of proficiency that you'd need to create that app for the browser. If you are just getting started, here are a few free courses to consider: + + - [freeCodeCamp](https://www.freecodecamp.com/map) + - [The Best Places to Learn to Code for Absolutely Free](https://learntocodewith.me/posts/code-for-free/) + - [Awesome, a curated list of learning resources](https://github.com/sindresorhus/awesome) + + **_What if I have questions?_** + + We've created a repository for you! If you have any questions throughout this course, go here to open an issue and ask a question: [On Demand Electron App Repo](https://github.com/githubschool/on-demand-electron-app). + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/starting-with-electron/02-electron-boilerplate.md b/paths/electron/starting-with-electron/02-electron-boilerplate.md new file mode 100644 index 000000000..974ed9db9 --- /dev/null +++ b/paths/electron/starting-with-electron/02-electron-boilerplate.md @@ -0,0 +1,48 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Create your app +permalink: /electron/create-an-app/create-your-app/ +next-page: /electron/create-an-app/push-your-project-to-github/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + To begin, we will set up a base electron app using an npm package called [electron-forge](https://electronforge.io/). + + _Note: Electron Forge isn't the only way to get started with Electron! There are other resources, like [Electron Quick Start](https://github.com/electron/electron-quick-start)._ + + To get started, we need to go through a few steps. + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron1-createapp.gif) + + 1. Find the terminal and navigate to your desired project location, for example: `cd ~/` will navigate to your home directory. + 1. Install electron-forge globally: `npm install -g electron-forge` + 1. Initialize a new project: `electron-forge init electron-app` + 1. Change into that app's directory: `cd electron-app` + + Important files to watch out for in any Electron app: + + - `package.json` + - `package-lock.json` + - `src/index.html` + - `src/index.js` + +show-me-how: +tell-me-why: | + Any Electron app has [2 types of processes](https://github.com/electron/electron/blob/master/docs/tutorial/quick-start.md) that interact with each other. The main process, initialized by `package.json`, and a renderer process generated by each web page. + + - `package.json` - Points to the app's main file and lists your project's details and dependencies. + - `package-lock.json` - If you're using NPM 5 or greater (you can check by running `npm -v`), you'll also get a [`package-lock.json` file](https://docs.npmjs.com/files/package-lock.json). This file aims to keep versions of dependencies identical across projects. + - `src/index.html` - A web page to render. Each web page will spin off its own renderer process. + - `src/index.js` - The default script called by `package.json` to create windows and handle system events. Runs the app's main process. + + #### What is Node? + Node.js is the server side portion of full stack Javascript. Many websites are powered with Node, and it powers things on Electron as well. [Node.js documentation](https://nodejs.org/en/docs/) is full of information that explain its functionality and purpose. + + #### What is `npm`? + `npm`, short for "Node Package Manager", is exactly as it is named: a manager for packages in Node. Dependencies and their versions are managed in apps through the `package.json` file, and downloaded through `npm`. +--- diff --git a/paths/electron/starting-with-electron/03-git-repository.md b/paths/electron/starting-with-electron/03-git-repository.md new file mode 100644 index 000000000..4d14dc83e --- /dev/null +++ b/paths/electron/starting-with-electron/03-git-repository.md @@ -0,0 +1,48 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Push your project to GitHub +permalink: /electron/create-an-app/push-your-project-to-github/ +next-page: /electron/create-an-app/create-your-apps-files/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + Throughout this tutorial, we won't guide you too much on using Git. For all of the code, we recommend using branches and atomic commits, as well as pushing to the remote frequently. + + > Not sure what to do with Git or GitHub? [Check out some of the on-demand courses to learn more!](../../) + + Let's create our first commit, and push our project to GitHub :octocat:. + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron1-push-to-github.gif) + + ### Create your first commit + 1. Type `git status`, and see that all of your files are currently untracked in the working tree. + 1. Type `git add .gitignore`. This command stages our first commit using a special file called `.gitignore`, which lets us specify the parts of our project that should be pushed to GitHub, and those that should remain just on our machine. + 1. Type `git commit -m "initial commit with gitignore"` to craft our first commit. + 1. Stage the rest of the files, using `git add .`. + 1. Create your commit using `git commit -m "add electron boilerplate files"`. + + ### Push to GitHub + 1. [Create a new repository](https://help.github.com/articles/creating-a-new-repository/) on GitHub.com. To avoid errors, do not initialize the new repository with `README`, `license`, or `.gitignore` files. You can add these files after your project has been pushed to GitHub. + 1. Follow the steps shown in your new project for pushing an existing repository from the command line. See _Tell my why_ if you'd like some extra resources to help you along. + +show-me-how: +tell-me-why: | + By default, the boilerplate initialized this directory as a Git repository, so we won't need to do any extra work to get this set up. But we did need to do a little work to get it pushed up to GitHub.com, where we can show off our code to others, and backup our work. + + ### Understanding the `.gitignore` file + There's a [file in your repository named .gitignore](https://help.github.com/articles/ignoring-files/). Git uses this to determine which files and directories to ignore, before you make a commit. + + We want to use a `.gitignore file` built for Node projects, since Electron is a Node based project. Typically, we would do this manually. Since we used a boilerplate, this is already done. If you're interested in learning about different `.gitignore` files, the [github/gitignore repository](https://github.com/github/gitignore) contains examples for many common programming languages. + + ### More about pushing to GitHub + Repositories can live locally on your machine, but also on a remote like GitHub.com. The steps had you push your repository to GitHub, but if you need some assistance on performing some of the steps we described, you may find the following links helpful: + + 1. [Adding a remote](https://help.github.com/articles/adding-a-remote/). + 1. [Pushing to a remote](https://help.github.com/articles/pushing-to-a-remote/). + + +--- diff --git a/paths/electron/starting-with-electron/04-creating-app-files.md b/paths/electron/starting-with-electron/04-creating-app-files.md new file mode 100644 index 000000000..d99848bf6 --- /dev/null +++ b/paths/electron/starting-with-electron/04-creating-app-files.md @@ -0,0 +1,40 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Create your App's Files +permalink: /electron/create-an-app/create-your-apps-files/ +next-page: /electron/create-an-app/run-your-first-electron-app/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + Since we used a boilerplate, the most important files are already there. These files are: + + - `package.json` + - `src/index.html` + - `src/index.js` + + We're going to be using other CSS and Javascript for our project, so let's add those files now. + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron1-create-files.gif) + + 1. Create a new file in the `src` directory named `style.css`. + 1. Create a new file in the `src` directory named `renderer.js`. + + It's OK that these are empty now, we'll add more later. Now, link those files to the main `index.html` by adding the following lines of code to `index.html`: + + 1. Add the following code on a new line after the existing `` tags. + + + 1. Add the following code on a new line directly above ``. + + + + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/starting-with-electron/05-running-the-app.md b/paths/electron/starting-with-electron/05-running-the-app.md new file mode 100644 index 000000000..14beb4aa9 --- /dev/null +++ b/paths/electron/starting-with-electron/05-running-the-app.md @@ -0,0 +1,30 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Run Your First Electron App +permalink: /electron/create-an-app/run-your-first-electron-app/ +next-page: /electron/create-an-app/add-your-index-html/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + Now, let's spin up the application locally. + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron1-run-app.gif) + + 1. Type `npm start` and press enter. + + Your app should open up, successfully, with a string of text. Dev Tools will also be open on the right side, due to a setting that we added by default. Quit the app by pressing `Ctrl` + `C` in your Command Line Interface. + + +show-me-how: +tell-me-why: | + ### Dev Tools + You may be familiar with [Chrome Developer Tools](https://developer.chrome.com/devtools) if you've ever built a web page. If you're not, they're a set of tools that allow you to see behind the scenes of what a browser displays, giving you visibility into the HTML, CSS, and Javascript that makes up a web application alongside a number of performance analysis tools. + + When working in Electron, Dev tools is also available to you. Open it at any time by selecting "View" from the top level drop down menu of the application, then clicking "Toggle Developer Tools", or use the shortcuts described in the official documentation. + +--- diff --git a/paths/electron/starting-with-electron/06-add-to-index.md b/paths/electron/starting-with-electron/06-add-to-index.md new file mode 100644 index 000000000..a45c3e760 --- /dev/null +++ b/paths/electron/starting-with-electron/06-add-to-index.md @@ -0,0 +1,34 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Add your index.html +permalink: /electron/create-an-app/add-your-index-html/ +next-page: /electron/create-an-app/add-css/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + For our app, we are going to build a [memory game](https://en.wikipedia.org/wiki/Concentration_(game)). You can find the code for the web application [here on Codepen](https://codepen.io/githubteacher/pen/brRvVz). + + On Codepen, you can see there are three main sections of code; `html`, `css`, and `js`. These will map out to be our `src/index.html`, `src/style.css`, and `src/renderer.js`. + + _Note: This Codepen works for our demo, but feel free to use any Codepen that you like if you want to try an extension exercise on your own! You'll need to be careful of any that use dependencies, though. In fact, we re-wrote this exercise to use vanilla JS instead of using jQuery for stability and less steps._ + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron1-add-index.gif) + + 1. Copy the code from the `html` tab on Codepen into the `src/index.html` file locally. Paste the code so it replaces the existing text ("Well hey there!!!") between `` and ``. + 1. Save and commit your changes. + 1. Start the app again by typing `npm start`. At this point, you should only see text without graphics or functionality. + 1. Quit the app by pressing `Ctrl` + `C` in your Command Line Interface. + + See [this commit](https://github.com/githubschool/on-demand-electron-app/commit/ef39ab6714fe755f646f2b855bdc83b4830b0921) as an example of what to take away and what to add in this step. + + > If you don't understand everything in the `.html` file, that's okay. Remember the resources listed [at the beginning of the course](./#software-skills), and know you can always go back and learn more! + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/starting-with-electron/07-add-to-css.md b/paths/electron/starting-with-electron/07-add-to-css.md new file mode 100644 index 000000000..c0bcf5450 --- /dev/null +++ b/paths/electron/starting-with-electron/07-add-to-css.md @@ -0,0 +1,26 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Add CSS +permalink: /electron/create-an-app/add-css/ +next-page: /electron/create-an-app/add-javascript/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + Just like with the `src/index.html` file, now we will copy the contents for the CSS. [Here's an example of a commit doing just that](https://github.com/githubschool/on-demand-electron-app/commit/c1cc4bac87449d27d15a10c5c890467c41c56e5e). + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron1-add-css.gif) + + 1. Copy the contents of the `css` tab on Codepen into the `src/style.css` file. + 1. Spin up the app with `npm start` and see how things look different. There should be style now, but you should still be unable to play the game. + 1. Quit the app by pressing Ctrl + C in your Command Line Interface. + 1. Save and commit your changes. + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/starting-with-electron/08-add-to-js.md b/paths/electron/starting-with-electron/08-add-to-js.md new file mode 100644 index 000000000..6ca5ca127 --- /dev/null +++ b/paths/electron/starting-with-electron/08-add-to-js.md @@ -0,0 +1,27 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Add JavaScript +permalink: /electron/create-an-app/add-javascript/ +next-page: /electron/create-an-app/celebrate/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + Finally, let's add the fun part: the Javascript! [Click here to see what this commit should look like](https://github.com/githubschool/on-demand-electron-app/commit/1d6e34a7c5a44a37f5c952950a2abfdf3b423f22). + + ![gif of following the directions below](<% SITEURL %><% BASEURL %>/images/gifs/electron/electron1-add-javascript.gif) + + 1. Copy the Javascript from Codepen into the `src/renderer.js` file. + 1. Spin up your app with `npm start`, and see how it works. + 1. Save and commit your changes. + + It's great to have a working game! What else could you build? How could you change this game? Feel free to make it your own by changing the images, changing the game functionality, or even adding sound! + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/starting-with-electron/09-celebrate.md b/paths/electron/starting-with-electron/09-celebrate.md new file mode 100644 index 000000000..69c429234 --- /dev/null +++ b/paths/electron/starting-with-electron/09-celebrate.md @@ -0,0 +1,23 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Celebrate +permalink: /electron/create-an-app/celebrate/ +facilitator: false +sidebar: + nav: "create-an-app-in-electron" +main-content: | + + ## Done but not Finished + + This was just the tip of the iceberg when it comes to using Electron. + + Next, [learn how to package the apps so they can be distributed to different operating systems](../../package-your-app/) and explore the [electron community](https://electron.atom.io/community/). + + +show-me-how: +tell-me-why: + +--- diff --git a/paths/electron/starting-with-electron/outline.md b/paths/electron/starting-with-electron/outline.md new file mode 100644 index 000000000..e5906621a --- /dev/null +++ b/paths/electron/starting-with-electron/outline.md @@ -0,0 +1,79 @@ +# Electron 101: Building an Electron App from Scratch + +## Getting Started +- Not prereqs + - Baseline things to get started: + - computer + - git installed + - github account + - excited to learn new things + - Helpful but not necessary to complete course + - Basic website knowledge (html / css) + - Understanding of what Javascript is +- Listed to make this course more accessible to all, regardless of JS skill +- Let users know that full stack JS knowledge is best for Electron development + - Provide links to freeCodeCamp JS intro courses perhaps? + - Explain that JS knowledge is useful for enhancing the application, but won't be necessary to complete the course +- Point to resources + +## Creating the Boilerplate Electron App +On this page, the user creates a directory and sets it up with the basic structure of any Electron App. +- mkdir +- npm init +- npm install electron + +## Make it a Git Repository +On this page, the user types `git init` and pushes to a bare repo on GitHub +- making it a git repository + - this might be an opportunity for us to show them how to take an existing project and ADD it to GitHub since we normally have them set the repo up on GH then clone it +- Callback again to existing git courses in on-demand +- Important things for `.gitignore` in this type of project + +## Creating the Files for the App +Q: At what point do we start using branches if we're using git? +On this page, the user creates the files that will be customizable and directly impact how the program looks and behaves. (index.html, style.css, main.js) +- creating the files that we'll need within the directory +- explaining all files at high level + +## Starting the app +Now, the user tries to see the app and see their html page +- electron . +- what to look for +- developer tools +- TROUBLESHOOTING in case they can't see it here + +## add to index.html +On this page, the user types very simple "hello world" type text on the index.html page. +- Breakdown the specific things contained within the `.html` file to show how it makes the application work +- Type or copy/paste enough to see a home page +- recall the resources in the beginning for users who this goes over their heads +- Save and commit changes +- Starting the app again + - electron . + - what to look for + - developer tools + - troubleshooting + +## Add to style.css +- Adds to the `style.css` file, and links to it from `index.html`. +- As the others, points to resources to learn css +- Save and commit changes +- Starting the app again + - electron . + - what to look for + - developer tools + - troubleshooting + +## Add to main.js +- Add to the `main.js` file, link to it from `index.html` +- Do we need to include jQuery for this to be worthwhile? +- callback to resources to learn JS +- discuss how it can be made more complex + - maybe we can add some "extra credit" resources where we say, try to add X functionality and provide the answer in a TMW section (similar to the GraphQL course) +- Starting the app again + - electron . + - what to look for + - developer tools + - troubleshooting + +## Celebrate! Point to what's next diff --git a/paths/git-trouble/fc-accidentcommit.md b/paths/git-trouble/fc-accidentcommit.md new file mode 100644 index 000000000..4199d84cf --- /dev/null +++ b/paths/git-trouble/fc-accidentcommit.md @@ -0,0 +1,59 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Accidental Git Commit +permalink: /git-trouble/accidental-git-commit +next-page: /git-trouble/git-scenarios +facilitator: false +sidebar: + nav: "advanced" +main-content: | + In the fervor of making some sweet changes to your repository you might accidentally commit changes before you were actually ready to. First, breathe, you can fix this; for real. Second, remember you aren't the first person who completely broke everything with a commit, heck, even the GitHub Trainers do it from time to time. So, now that you have found yourself in some :ahem: _very_ distinguished company, you can fix that gross commit. + + Keep in mind, all exercises expect you to have run the script to create files using the scripts found on the [Set Up Your Environment]({{site.baseurl}}/git-set-up) page. + +pushed: | + Since we accidentally pushed our changes to the remote, you need to `revert` the commit (or commits) to prevent them creating any problems for other collaborators. + + 1. Ensure you are on the correct branch and enter: `git log --oneline`. + 1. Identify the SHA-1 hash for the incorrect commit. For this example, let's use the **adding file 4** commit. + 1. Enter: `git revert SHA-1`, where SHA-1 is the SHA-1 hash for the commit where you created **file 4**. + 1. Enter a commit message (or simply keep the predefined `revert` message) and close the editor. + 1. Enter: `git push`. You have successfully undone the commit you recently `push`ed to your remote. + + ## Recovering Your Work + + Now that the branch on the remote is fixed, you may want to recover that accidental commit and finish your work. Here's how you can do it: + + 1. Use `git log --oneline` to identify the SHA-1 of the revert commit. If you left the default message, it will say something like `Revert "adding file 4"`. + 1. Type `git revert SHA-1` where the SHA-1 is the revert commit. + 1. Finish your work on the files. + 1. Type: `git add` to stage your changes. + 1. Type: `git commit --amend` to meld your changes into the previous commit. + 1. Enter an appropriate commit message and close your text editor. + 1. Enter: `git push` to send your beautiful (and complete) new commit to the remote. + +didnt-push: | + If you didn't push that incomplete commit up to your remote, it makes it a little bit easier to resolve this misstep. + + 1. Ensure you are on the correct branch and enter: `git log --oneline`. + 1. We are going to assume you didn't mean to commit file 6, so identify the SHA-1 hash for the **adding file 5** commit. + 1. Enter: `git reset --mixed SHA-1`, where SHA-1 is the SHA-1 hash associated with the **adding file 5** commit. + 1. Enter: `git status`. You should see `file6.md` in your working directory. + + Now you are ready to keep making your changes and no one is the wiser! :guitar: + +show-me-how: +tell-me-why: | + ## Revert + The easiest way to think about `revert` is just making your repository do the exact opposite of an existing commit and creating a new commit to record that change. Revert is useful when trying to 'undo' the changes made in a specific commit, and even _more_ useful if you pushed a change that your want to reverse to your remote since it will always create a new commit and leave the original commit untouched. + + ## Reset + For more information on `git reset`, check out the 'Tell me why' section in the [Too Many (small) Commits]({{site.baseurl}}too-many-commits) scenario. + + ## Commit --amend + For more information on `git commit --amend`, check out the 'Tell me why' section in the [Commit Message Sucks]({{site.baseurl}}git-commit-message) scenario. + +--- diff --git a/paths/git-trouble/fc-commitbroke.md b/paths/git-trouble/fc-commitbroke.md new file mode 100644 index 000000000..5b3fbce15 --- /dev/null +++ b/paths/git-trouble/fc-commitbroke.md @@ -0,0 +1,108 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Just Make it Go Away - Breaking Things With Git +permalink: /git-trouble/breaking-things-with-git +next-page: /git-trouble/git-scenarios +facilitator: false +sidebar: + nav: "advanced" +main-content: | + + Your well intentioned branch was supposed to introduce that awesome new feature, but after making a few commits, things aren't going as planned! + + Keep in mind, all exercises expect you to have run the script to create files using the scripts found on the [Set Up Your Environment]({{site.baseurl}}/git-set-up) page. +pushed: | + This is what makes Git awesome! You can try new things and, when they don't work out, just get rid of them. First, ask yourself: + + > Is it all terrible? Or can I use some of it? + + ## Make it all go away! + + Ok, if you really mean it, we can get rid of the entire branch on the remote. + + 1. First, let's go back to the `master` branch with: `git checkout master` + 1. Enter: `git push origin :BRANCH-NAME` or `git push --delete BRANCH-NAME` to delete the branch on the remote. + 1. Enter: `git fetch --prune` to delete the remote tracking branch. + 1. Enter: `git branch -D BRANCH-NAME` to delete the local copy of the branch. + + ## It isn't all bad + + If some of it can be salvaged, you can use the following approach: + + 1. Ensure you are on the correct branch and enter: `git log --oneline`. + 1. Identify the SHA-1 hash for the last commit you want to keep. For this example, let's pretend files 1 and 2 are good, but we want to get rid of the rest, so grab the SHA-1 for "adding file 2". + 1. Enter: `git reset --hard SHA-1`, where SHA-1 is the SHA-1 hash for the commit where you created **file 2**. + 1. Type: `git status` and `ls`, notice that everything except files 1 and 2 are gone! + 1. Enter: `git push --force`. + +didnt-push: | + Well, you didn't push, that means no one else knows about your failed experiment. Use the following steps to get back to your happy place. + + First, ask yourself: + + > Is it all terrible? Or can I use some of it? + + ## Make it all go away! + + Sometimes the best way to fix a problem is to pretend it never happened. The easiest solution is to just delete the branch: + + 1. Check out to the `master` branch with: `git checkout master` + 1. Enter: `git branch -D BRANCH-NAME` to delete the local copy of the branch. + + ## It isn't all bad + + If some of it can be salvaged, you can use the following approach: + + > If you want to see something kinda cool, open your local repository in a file browser (Finder, My Computer, etc.) and leave it to the side (but in view). + + 1. Ensure you are on the correct branch and enter: `git log --oneline`. + 1. Identify the SHA-1 hash for the last commit you want to keep. For this example, let's pretend files 1 and 2 are good, but we want to get rid of the rest, so grab the SHA-1 for "adding file 2". + 1. Enter: `git reset --hard SHA-1`, where SHA-1 is the SHA-1 hash for the commit where you created **file 2**. + If you have your file explorer open, you might have noticed something pretty cool happen! + 1. Type: `git status` and `ls`, notice that everything except files 1 and 2 are gone! + 1. Enter: `git log --oneline`, all of the commits after **adding file2.md** are gone! + + ## Wait, I Shouldn't Have Done That!!! + + OK, so that one rage-induced moment you 'accidentally' deleted that file because you just couldn't stand the sight of it. What if you could bring it back from the dead? You can: + + ### Bring One File Back + + 1. Enter: `git reflog`. + 1. Identify the SHA-1 for the **adding file 6** commit. + 1. Enter: `git cherry-pick SHA-1` where SHA-1 is the commit for "Adding file 6". + 1. Enter: `git log --oneline` and `ls` to see that file 6 and its commit are back. + + ### Bring Them All Back + + After you took the dog for a walk, you realized where you were going wrong (fresh air works every time) and you want it all back. Don't worry, you can do that too: + + 1. Enter: `git reflog`. + 1. Identify the SHA-1 for the **adding file 6** commit. + 1. Enter: `git reset --hard SHA-1` where SHA-1 is the commit for "Adding file 6". + 1. Enter: `git log --oneline` to see all of the commits are back. Notice the SHA-1 hashes of the commit - they match the original commits! + +show-me-how: +tell-me-why: | + + ## Reflog + Reflog is a more powerful version of `git log`, it records every commit HEAD has pointed to. HEAD is simply a pointer that represents the commit you are currently "checked out" to. + + In most cases, you will be checked out to a branch, but you can also check out to any commit or tag in your history. When you are checked out to something other than a local branch, you are in what's called a **detached head** state. This is also recorded in the reflog. + + There are a few things that you should know about `reflog`, such as: + + 1. `reflog` is **local** only, so, your other collaborators are not going to be able to find files you deleted in their `reflog`s. + 1. `reflog` only displays commits for a limited time: + - 30 days: 'Unreachable' objects, aka commits or modifications that were made to a branch that no longer exists. + - 90 days: 'Reachable' objects, aka commits or modifications that were made to a branch that still exists. + + ## Reset + For more information about `reset`, check out the 'Tell me why' section in the [Too Many (small) Commits]({{site.baseurl}}/too-many-commits) scenario. + + ## Cherry-pick + For more information about `cherry-pick`, check out the 'Tell me why' section in the [Committed to the Wrong Branch!]({{site.baseurl}}git-commit-wrong-branch) scenario. +--- diff --git a/paths/git-trouble/fc-commitsucks.md b/paths/git-trouble/fc-commitsucks.md new file mode 100644 index 000000000..d2e1e7618 --- /dev/null +++ b/paths/git-trouble/fc-commitsucks.md @@ -0,0 +1,82 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Git Commit Message Sucks +permalink: /git-trouble/git-commit-message +next-page: /git-trouble/git-scenarios +facilitator: false +sidebar: + nav: "advanced" +main-content: | + As you begin creating commits you might 'accidentally' create a commit message that is borderline atrocious; something like 'Fixed the thing'. Although you are definitely aware of the **thing** you just **fixed**, other collaborators (including future you) will not know what you fixed and more importantly, **why** you needed to fix it. Thankfully, Git is well aware of our tendency to craft terrible commit messages and has a handful of commands that save even the vaguest commit message. + + Keep in mind, all exercises expect you to have run the script to create files using the scripts found on the [Set Up Your Environment]({{site.baseurl}}/git-set-up) page. +pushed: | + Before you begin worrying about that terrible commit message you have pushed to the remote, let's talk about the risks associated with fixing it. Fixing a commit message you have already pushed is going to require you to use `git push --force-with-lease`. Using `push --force-with-lease` can cause some **serious** problems for other collaborators on your project. The embarrassment of a mispelled :grin: word is nothing compared to the embarrassment of messing up your collaborators. If your commit is really that bad, or if causing problems doesn't trouble you, keep reading. + + Start by asking yourself: + + > Am I trying to fix the **last** commit I made or one a few commits back? + + ### Fixing the Last Commit + + If you are fixing the **last** commit you made you can do the following: + + 1. Ensure you are on the correct `branch` + 1. Use `git log --oneline` to ensure the commit you want to fix is at the top of the list. + 1. Enter: `git commit --amend`. + 1. Enter the desired commit message and close the text editor. + 1. Enter: `git push --force-with-lease` to force your change to your remote. + + **BOOM** you just fixed your terrible commit message and you potentially caused problems for other collaborators. Congratulations!!! In all seriousness, editing a commit message might seem important at the time, but pushing a terrible commit message isn't the worst thing in the world, so it is recommended that you do this sparingly. + + ### Fixing an Older Commit + + If you aren't fixing your **last** commit, you can perform the following...actually wait, this process is very complex and you _really_ need to figure out if you _need_ to fix those commit messages that badly. + + Still here? Ok, here we go: + + 1. Ensure you are on the correct `branch` and enter: `git log --oneline` + 1. Identify the SHA-1 hash for the commit just before the one you would like to change. For this example, let's pretend we want to fix the commit for file 5, so we will pick the SHA-1 associated with the **file 4** commit. + 1. Enter: `git rebase -i SHA-1`, where SHA-1 is the SHA-1 of the commit for adding **file 4**. The `-i` is the interactive option and will open your text editor, allowing you to modify the `rebase` script. + 1. Identify the commits you want to modify in the list and replace the word `pick` with an `e` or the word `edit`. When you are happy with your selections, close the editor and go back to the terminal. + 1. The rebase will stop at the first commit to be edited. To begin editing the first commit message, enter `git commit --amend`. Your text editor will open, allowing you to edit the commit message. + 1. Close the text editor and enter: `git rebase --continue`. + 1. Repeat the two previous steps for each commit you would like to edit. + 1. When you have edited the last commit, the rebase will finish. Enter: `git push --force-with-lease` to push your new commits to the remote. + +didnt-push: | + You have a couple of options when it comes to fixing a bad commit message. First, you need to ask yourself: + + > Am I trying to fix the **last** commit I made or one a few commits back? + + ### Fixing the Last Commit + + If you are fixing the **last** commit you made you can do the following: + + 1. Ensure you are on the correct `branch` + 1. Use `git log --oneline` to ensure the commit you want to fix is at the top of the list. + 1. Enter: `git commit --amend`. + 1. Enter the desired commit message and close the text editor. + + **BOOM** you just fixed your terrible commit message and now no one is the wiser. Congratulations!!! + + ### Fixing an Older Commit + + If you aren't fixing your **last** commit, you can perform the following: + + 1. Ensure you are on the correct `branch` and enter: `git log --oneline` + 1. Identify the SHA-1 hash associated with the commit just before the one you want to fix. For practice, let's use the one where **file 4** was added. + 1. Enter `git reset --mixed SHA-1`, where SHA-1 is the SHA-1 of the commit before the one you want to fix. + 1. The changes you made in the file 5 and file 6 commits are now sitting in your working directory. Simply re-add and re-commit the changes. + +show-me-how: +tell-me-why: + includes: + - tell-me-why/trouble-commitamend.md + - tell-me-why/trouble-pushforcewithlease.md + - tell-me-why/trouble-reset-xref.md + - tell-me-why/trouble-rebase.md +--- diff --git a/paths/git-trouble/fc-manycommits.md b/paths/git-trouble/fc-manycommits.md new file mode 100644 index 000000000..8f690f930 --- /dev/null +++ b/paths/git-trouble/fc-manycommits.md @@ -0,0 +1,37 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Too Many (small) Git Commits! +permalink: /git-trouble/too-many-commits +next-page: /git-trouble/git-scenarios +facilitator: false +sidebar: + nav: "advanced" +main-content: | + While working on your project, you might have made commits for every little change and created a commit history that looks more like an avalanche of information as opposed to a succinct list of the changes. + + Keep in mind, all exercises expect you to have run the script to create files using the scripts found on the [Set Up Your Environment]({{site.baseurl}}/git-set-up) page. +pushed: | + I know that avalanche of commits looks bad, but it doesn't need to be permanent. A lot of people unintentionally create problems by trying to use Git to fix something that has already been pushed to the remote. + + Instead, let it go (for now) and use the [**Squash and Merge**](https://help.github.com/articles/merging-a-pull-request/#merging-a-pull-request-using-the-web-interface) option when you are ready to merge the pull request. This will reduce that avalanche of commits down to a single snowflake on master! + +didnt-push: | + If you haven't pushed your changes, you can adjust the commits you created without worrying about causing problems for other collaborators: + + 1. Ensure you are on the correct branch and enter: `git log --oneline`. + 1. For this example, we are going to combine the commits associated with the addition of files 4, 5, and 6. So identify the SHA-1 associated with the commit for **adding file 3**. + 1. Enter the following: `git reset --soft SHA-1`, where SHA-1 is the SHA-1 associated with the `adding file 3` commit. + 1. Enter `git status`. You should see files 4, 5, and 6; in the Staging Area (aka ready to be committed). + 1. Enter: `git commit -m "Adding files 4, 5, and 6"`. + 1. Enter: `git log --oneline`, your commit history should be modified. + + Congratulations you just combined a bunch of commits into a single commit! Now, none of the other collaborators will know that you made **way** too many commits! + +show-me-how: +tell-me-why: + includes: + - tell-me-why/trouble-reset.md +--- diff --git a/paths/git-trouble/fc-scenarios.md b/paths/git-trouble/fc-scenarios.md new file mode 100644 index 000000000..754f91c6b --- /dev/null +++ b/paths/git-trouble/fc-scenarios.md @@ -0,0 +1,41 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Git Trouble Scenarios +permalink: /git-trouble/git-scenarios +facilitator: false +sidebar: + nav: "advanced" +main-content: | + + Unlike our other [courses](https://services.github.com{{site.baseurl}}/), this course doesn't follow a linear path and you can jump into any of the different scenarios provided. So `git` ready to learn about how to get out of trouble with a healthy dose of terrible `git` puns. + + ## [Too Many (small) Git Commits!](../git-trouble/too-many-commits) + + While you were making changes you might have created a bunch of tiny commits, but when it comes time to actually push your changes back to your `remote`, you want to prevent your commit history from being inundated with the 30 commits you just made. This scenario guides you through creating a more concise history. + + ## [Git Commit Message Sucks](../git-trouble/git-commit-message) + + 'Edited stuff' might have seemed like a decent commit message at 3am, but in hindsight, you might want to provide a _little_ more context. Covering the different commands you can use to `revert` the error of your commit message-ways, this scenario identifies how to get more descriptive. + + ## [Git Committed to Wrong Branch](../git-trouble/git-commit-wrong-branch) + + So you got excited about making some changes and accidentally committed your changes to the wrong branch? Happens **all** the time. This scenario walks you through the steps required to successfully remove those commits and commit them to the right branch, even if you already pushed them up! + + ## [Accidental Git Commit](../git-trouble/accidental-git-commit) + + Did you make a commit before you had actually finished all of the related changes? Maybe you left one lonely little change in the working directory? Perhaps your commit included changes that were unrelated. In either case, we can fix that, just follow along and `git` out of trouble. + + ## [Just Make it Go Away! - Breaking Things With Git](../git-trouble/breaking-things-with-git) + + That innovative fix was **supposed** to fix everything! Instead your project is a garbage fire and you just want everything to go back to how it was. Have no fear, we can make that happen. + + ## We Love Feedback :heart: + + Please take _literally less than a minute_ to let us know what you think of this course. You may also choose to opt-in for updates on future classes. [Start Survey](http://www.surveygizmo.com/s3/3288550/git-reset)! + +show-me-how: +tell-me-why: +--- diff --git a/paths/git-trouble/fc-setup.md b/paths/git-trouble/fc-setup.md new file mode 100644 index 000000000..802205fcb --- /dev/null +++ b/paths/git-trouble/fc-setup.md @@ -0,0 +1,56 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Set Up Your Git Scenario Environment +permalink: /git-trouble/git-set-up +next-page: /git-trouble/git-scenarios +facilitator: false +sidebar: + nav: "advanced" +main-content: | + This stuff is a lot more fun if you try it out. Let's create a sample repository to play with: + + 1. Create a repository on [GitHub.com](https://www.github.com) and `clone` it to your desktop. + 1. Create a new branch, call it ```test```. + 1. Create a series of commits that give you a rich history to practice the scenarios in this course. Feel free to use this handy script to generate them for you: + - **Bash**: + + for d in {1..6}; + do touch file$d.md; + git add file$d.md; + git commit -m "adding file $d"; + done + - **PowerShell:** + + for ($d=1; $d -le 6;$d++) { + touch file$d.md; + git add file$d.md; + git commit -m "adding file$d.md"; + } + + :metal: You're ready to rock! :guitar: + + ## Using `git log` + + If you type `git log --oneline`, your commit history should include several commits that look something like this: + + 5950a1b adding file 4 + + Those first 7 characters are going to be unique to your machine and are a section of the SHA-1 hash assigned to that specific commit (the SHA-1 hash is 40 characters long). We are going to use that hash identifier a lot as we learn how to 'git' out of sticky situations. + + ## New UI Addition + When trying to get out of a pickle, the best tool for the job is typically dependent on if you `push`ed your commits to your remote (or not). Look :eyes: for these drop downs throughout the course: + + ![example of the "I didn't push" and "I pushed" drop downs](../images/push-dropdowns.png){: .align-center} + + They will help you find the right instructions for each situation. + +refresh: + includes: + - tell-me-why/create-repo.md + - tell-me-why/clone-repo.md +show-me-how: +tell-me-why: +--- diff --git a/paths/git-trouble/fc-welcome.md b/paths/git-trouble/fc-welcome.md new file mode 100644 index 000000000..8617037e1 --- /dev/null +++ b/paths/git-trouble/fc-welcome.md @@ -0,0 +1,25 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Welcome to Git Out Of Trouble +permalink: /git-trouble/ +next-page: /git-trouble/git-set-up +toc: true +sidebar: + nav: "advanced" +main-content: | + It isn't uncommon to make a mistake while working with Git, but don't fret, everyone does it. Getting out of a mess, can be just as easy as getting into one if you know the tools at your disposal to save your project and prevent public embarrassment. This course outlines the different commands you can use to get out of almost **any** sticky situation. + + ### Thanks! + Before we begin, the GitHub Training team would like to thank the following community contributors for their work in creating meaningful content that inspired this course: + + - Justin Hileman (:octocat:[@bobthecow](https://github.com/bobthecow)), [Git Pretty](http://justinhileman.info/article/git-pretty/) + + - Katie Sylor-Miller (:octocat:[@ksylor](https://github.com/ksylor)), [Oh, Shit, Git!](http://ohshitgit.com/) + + +show-me-how: +tell-me-why: +--- diff --git a/paths/git-trouble/fc-wrongbranch.md b/paths/git-trouble/fc-wrongbranch.md new file mode 100644 index 000000000..ba94d516d --- /dev/null +++ b/paths/git-trouble/fc-wrongbranch.md @@ -0,0 +1,93 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Git Committed to the Wrong Branch! +permalink: /git-trouble/git-commit-wrong-branch +next-page: /git-trouble/git-scenarios +facilitator: false +sidebar: + nav: "advanced" +main-content: | + + We have all been there, cruising along, making changes, making commits, and just as you are about to call it a night, you realize you just committed all of your changes to `master` and not that new branch you forgot to `checkout` to. + + Fear not! You can salvage those changes and put them where they belong! + + Keep in mind, all exercises expect you to have run the script to create files using the scripts found on the [Set Up Your Environment]({{site.baseurl}}/git-set-up) page. +pushed: | + ## First Things First: Fix Master + + Since this usually happens on `master`, the first thing you probably need to do is get those untested, unapproved commits out of master. + + 1. While on `master` enter: `git log --oneline`. Identify the SHA-1 hash for the commits that should be removed. In this case, let's use the **adding file 3** commit. + 1. Enter: `git revert SHA-1`, where SHA-1 is the hash for the **adding file 3** commit. You can revert multiple commits in the same operation by adding a list of SHA-1's with a space between each one. + 1. You can modify the revert commit message(s) if you would like or just close the editor. + 1. Use `git push` to send the changes to the remote. + + ## Rebuilding the Branch + + Now that `master` is safe, let's create a new branch and grab those commits. + + 1. Create a new branch with: `git checkout -b BRANCH-NAME`(or check out to one you had already created). + 1. Enter `git reflog` to identify the SHA-1 hash for the commits you need to rescue. + 1. Enter: `git cherry-pick SHA-1`, where SHA-1 is the hash for the commit you want to place on the branch. You can cherry pick multiple commits by adding multiple SHA-1s separated by a space. + 1. Push your new branch to the remote with: `git push -u origin BRANCH-NAME` + +didnt-push: | + The good news is, you didn't push, so none of the collaborators on your project know you just committed a bunch of changes directly to `Master` on 'accident' (I mean, lets be serious, those changes are awesome and are definitely gonna get merged). Here is how we can fix that 'mistake'. + + 1. Ensure you are on the branch you accidentally made those commits to. If you followed the 'Setting Up Your Scenario Environment' directions, you should have made a few commits to a branch named `test`. + 1. Enter: `git log --oneline` and identify the SHA-1 hash associated with the commit just before the first incorrect commit. In this case, let's pretend file 5 was the first one that should have been on the other branch. + 1. Enter: `git reset --mixed SHA-1`, where `SHA-1` is the SHA-1 associated with the **adding file 4** commit. + 1. Enter: `git status`. You should see files 5 and 6 in your working directory. + 1. Enter: `git checkout -b correct`. This will create a new branch named `correct` and check you out to that branch. + 1. Enter: `git status`. Files 5 and 6 should still be in your working directory. + 1. Add both File 5 and File 6 by entering: `git add file* `. + 1. Enter: `git status`. File 5 and 6 should now be in the staging area waiting to be committed. + 1. Enter `git commit -m "Adding file 5 and 6"`. + + Congratulations, you just removed the commits you made to the incorrect branch and added them to the correct branch! + + P.S. Next time, try to remember to run a quick `git checkout BRANCH` before you get working on that sweet new feature :wink:. + +show-me-how: +tell-me-why: | + ## Cherry-pick + Cherry-pick allows you to apply a single commit to another branch (or rescue it from your reflog). + + ### How Cherry-pick Works + When you use `git cherry-pick`, git generates the difference between the commit you have designated and its parent commit (the one just before it) and then applies that diff wherever you are. + + For example, let's pretend you have a simple branch called `new-branch`. + + ![Commits showing a master branch with a feature branch, the feature branch is four commits ahead and set up for a fast forward merge](../images/cherry-pick-before.png){: .align-center} + + You are generally unhappy with the way this feature is going, so you decide to cherry-pick the good parts and use them to try out a different idea. So you check out to `better-branch` and then cherry-pick `7f013` from `new-branch`. + + ![Same branch as before, but now a new branch is created off of master](../images/cherry-pick-after.png){: .align-center} + + Now, `66a2e` represents the same diff that was introduced in `7f013` on `new-branch`. + + You aren't limited to cherry-picking commits attached to a branch, you can also cherry-pick a commit from the reflog! + + ![Same example as before, but now parent commit is one of the new commits on the first feature branch](../images/cherry-pick-reflog.png){: .align-center} + + In this example, we created 4 commits on `new-branch`, then did `git reset --hard HEAD~3`. The three commits with dashed lines are considered "unreachable" because they aren't currently attached to a branch. So we cherry-picked `28144` to rescue that commit from the ashes. + + ### Why Did the SHA-1 Change? + + So, after you cherry-picked your commit you might have noticed that the SHA-1 associated with the commit is now different. That is because the SHA-1 doesn't just identify the file (or files) that have been committed. It actually contains a lot of additional information like Date, Time, Author, and other information. So, even though you might have created a commit with the exact same file from before, you will have a completely new SHA-1 hash for the commit. Pretty cool, huh? + + ## Revert + For more information about `revert`, check out the ‘Tell me why’ section in the [Accidental Commit]({{site.baseurl}}/accidental-git-commit) scenario. + + ## Reset + For more information about `reset`, check out the 'Tell me why' section in the [Too Many (small) Commits]({{site.baseurl}}/too-many-commits) scenario. + + ### What Happened to File 4? + When you were running the `git reset --mixed SHA-1` you might have expected `file4.md` to be included in the files that got sent to the Working Directory. This is a very misconception when it comes to `git reset`, so don't worry, you are not alone! When you run `git reset`, you are identifying the commit that you want to `reset` to. + + For example, if you had wanted to include `file4.md`'s commit with the `reset` command, you would have needed to use the SHA-1 associated with the `adding file 3` commit. +--- diff --git a/paths/github-cli/01-github-CLI-introduction.md b/paths/github-cli/01-github-CLI-introduction.md index fffd6d53e..8a2c3dfee 100644 --- a/paths/github-cli/01-github-CLI-introduction.md +++ b/paths/github-cli/01-github-CLI-introduction.md @@ -3,15 +3,15 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Welcome +title: GitHub Pages from the Command Line permalink: /github-cli/ -next-page: /github-cli/02 +next-page: /github-cli/git-configuration facilitator: false sidebar: nav: "github-cli" main-content: | - **Essential First Step:** Before this class, you should complete our [Introduction to GitHub](https://github.github.com/on-demand/intro-to-github/) course. + **Essential First Step:** Before this class, you should complete our [Introduction to GitHub](https://github.github.com{{site.baseurl}}/intro-to-github/) course. This course teaches you to create and host your own website via GitHub, using Git in the command line. diff --git a/paths/github-cli/02-local-configurations.md b/paths/github-cli/02-local-configurations.md index ab669d03b..f6410dd24 100644 --- a/paths/github-cli/02-local-configurations.md +++ b/paths/github-cli/02-local-configurations.md @@ -4,8 +4,8 @@ header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) title: Git Configuration -permalink: /github-cli/02 -next-page: /github-cli/03 +permalink: /github-cli/git-configuration +next-page: /github-cli/create-remote-repository facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/03-create-repo-in-browser.md b/paths/github-cli/03-create-repo-in-browser.md index 1842b9ca6..84871602f 100644 --- a/paths/github-cli/03-create-repo-in-browser.md +++ b/paths/github-cli/03-create-repo-in-browser.md @@ -3,16 +3,16 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Create the Remote Repository -permalink: /github-cli/03 -next-page: /github-cli/04 +title: Create the Remote Repository on GitHub +permalink: /github-cli/create-remote-repository +next-page: /github-cli/choose-github-pages-theme facilitator: false sidebar: nav: "github-cli" main-content: includes: - activity/github-desktop/01-create-repository.md -show-me-how: images/gifs/github-cli/create-repository.gif +show-me-how: images/gifs/github-desktop/create-repo.gif tell-me-why: includes: - tell-me-why/create-remote.md diff --git a/paths/github-cli/04-choose-a-theme.md b/paths/github-cli/04-choose-a-theme.md new file mode 100644 index 000000000..afc6d684c --- /dev/null +++ b/paths/github-cli/04-choose-a-theme.md @@ -0,0 +1,17 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Choose a GitHub Pages Theme +permalink: /github-cli/choose-github-pages-theme +next-page: /github-cli/clone-repo-cli +facilitator: false +sidebar: + nav: "github-cli" +main-content: + includes: + - activity/github-desktop/choose-a-theme.md +show-me-how: images/gifs/github-desktop/choose-a-theme.gif +tell-me-why: +--- diff --git a/paths/github-cli/04-cloning.md b/paths/github-cli/05-cloning.md similarity index 71% rename from paths/github-cli/04-cloning.md rename to paths/github-cli/05-cloning.md index 1a906d897..530654b03 100644 --- a/paths/github-cli/04-cloning.md +++ b/paths/github-cli/05-cloning.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Clone the Repository -permalink: /github-cli/04 -next-page: /github-cli/05 +title: Clone the Repository Using the Command Line +permalink: /github-cli/clone-repo-cli +next-page: /github-cli/create-branches-git facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/05-create-branch.md b/paths/github-cli/06-create-branch.md similarity index 72% rename from paths/github-cli/05-create-branch.md rename to paths/github-cli/06-create-branch.md index 7f9873a88..326fc6c08 100644 --- a/paths/github-cli/05-create-branch.md +++ b/paths/github-cli/06-create-branch.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Create Local Branches -permalink: /github-cli/05 -next-page: /github-cli/06 +title: Create Local Branches With Git +permalink: /github-cli/create-branches-git +next-page: /github-cli/make-local-changes-git facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/06-local-files.md b/paths/github-cli/07-local-files.md similarity index 74% rename from paths/github-cli/06-local-files.md rename to paths/github-cli/07-local-files.md index 0d4cdf83f..e41fa7ae1 100644 --- a/paths/github-cli/06-local-files.md +++ b/paths/github-cli/07-local-files.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Make Local Changes -permalink: /github-cli/06 -next-page: /github-cli/07 +title: Make Local Changes With Git +permalink: /github-cli/make-local-changes-git +next-page: /github-cli/add-commits-git facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/07-2-step-commit.md b/paths/github-cli/08-2-step-commit.md similarity index 75% rename from paths/github-cli/07-2-step-commit.md rename to paths/github-cli/08-2-step-commit.md index b70efb8fe..c14241692 100644 --- a/paths/github-cli/07-2-step-commit.md +++ b/paths/github-cli/08-2-step-commit.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Add Local Commits -permalink: /github-cli/07 -next-page: /github-cli/08 +title: Add Local Commits With Git +permalink: /github-cli/add-commits-git +next-page: /github-cli/open-pull-request-github facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/08-push-and-pull.md b/paths/github-cli/09-push-and-pull.md similarity index 93% rename from paths/github-cli/08-push-and-pull.md rename to paths/github-cli/09-push-and-pull.md index e0cfc062d..f52862f87 100644 --- a/paths/github-cli/08-push-and-pull.md +++ b/paths/github-cli/09-push-and-pull.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Open a Pull Request -permalink: /github-cli/08 -next-page: /github-cli/09 +title: Open a Pull Request on GitHub +permalink: /github-cli/open-pull-request-github +next-page: /github-cli/merge-pull-request-github facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/09-merging.md b/paths/github-cli/10-merging.md similarity index 87% rename from paths/github-cli/09-merging.md rename to paths/github-cli/10-merging.md index 25d1aaf17..341b89b56 100644 --- a/paths/github-cli/09-merging.md +++ b/paths/github-cli/10-merging.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Merge Your Pull Request -permalink: /github-cli/09 -next-page: /github-cli/10 +title: Merge Your Pull Request on GitHub +permalink: /github-cli/merge-pull-request-github +next-page: /github-cli/view-github-pages-site facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/10-view-your-site.md b/paths/github-cli/11-view-your-site.md similarity index 76% rename from paths/github-cli/10-view-your-site.md rename to paths/github-cli/11-view-your-site.md index 2b938a08e..0086c3419 100644 --- a/paths/github-cli/10-view-your-site.md +++ b/paths/github-cli/11-view-your-site.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: View Your Site -permalink: /github-cli/10 -next-page: /github-cli/11 +title: View Your GitHub Pages Site +permalink: /github-cli/view-github-pages-site +next-page: /github-cli/git-push-git-pull facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/11-sync-local-repo.md b/paths/github-cli/12-sync-local-repo.md similarity index 92% rename from paths/github-cli/11-sync-local-repo.md rename to paths/github-cli/12-sync-local-repo.md index 2b87f948d..b1edbcc4f 100644 --- a/paths/github-cli/11-sync-local-repo.md +++ b/paths/github-cli/12-sync-local-repo.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Keep Things in Sync -permalink: /github-cli/11 -next-page: /github-cli/12 +title: Git Push & Git Pull +permalink: /github-cli/git-push-git-pull +next-page: /github-cli/add-github-pages-site-showcase facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/12-join-class-repo.md b/paths/github-cli/13-join-class-repo.md similarity index 73% rename from paths/github-cli/12-join-class-repo.md rename to paths/github-cli/13-join-class-repo.md index e28b9e11d..17b6bef12 100644 --- a/paths/github-cli/12-join-class-repo.md +++ b/paths/github-cli/13-join-class-repo.md @@ -3,16 +3,16 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Add Your Site to the Showcase -permalink: /github-cli/12 -next-page: /github-cli/13 +title: Add Your GitHub Pages Site to the Showcase +permalink: /github-cli/add-github-pages-site-showcase +next-page: /github-cli/github-flow-cli facilitator: false sidebar: nav: "github-cli" main-content: includes: - activity/github-desktop/12-add-class-repo.md -show-me-how: images/gifs/github-cli/join-class-repo.gif +show-me-how: images/gifs/github-desktop/join-repo-make-issue-pages.gif tell-me-why: | ## Access to the Shared Repository diff --git a/paths/github-cli/13-review-local-workflow.md b/paths/github-cli/14-review-local-workflow.md similarity index 88% rename from paths/github-cli/13-review-local-workflow.md rename to paths/github-cli/14-review-local-workflow.md index d962253cf..fd16a21f6 100644 --- a/paths/github-cli/13-review-local-workflow.md +++ b/paths/github-cli/14-review-local-workflow.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Review the Local Workflow -permalink: /github-cli/13 -next-page: /github-cli/14 +title: Review the Local GitHub Flow in the Command Line +permalink: /github-cli/github-flow-cli +next-page: /github-cli/git-push-open-pull-request facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/14-push-and-open-pr.md b/paths/github-cli/15-push-and-open-pr.md similarity index 80% rename from paths/github-cli/14-push-and-open-pr.md rename to paths/github-cli/15-push-and-open-pr.md index 3f2dd742d..639234154 100644 --- a/paths/github-cli/14-push-and-open-pr.md +++ b/paths/github-cli/15-push-and-open-pr.md @@ -4,8 +4,8 @@ header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) title: Review Pushing and Opening Pull Requests -permalink: /github-cli/14 -next-page: /github-cli/15 +permalink: /github-cli/git-push-open-pull-request +next-page: /github-cli/collaborate-github-pull-requests facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/15-collaborate.md b/paths/github-cli/16-collaborate.md similarity index 70% rename from paths/github-cli/15-collaborate.md rename to paths/github-cli/16-collaborate.md index 5dfee4e73..17e9d7f94 100644 --- a/paths/github-cli/15-collaborate.md +++ b/paths/github-cli/16-collaborate.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Let's Collaborate! -permalink: /github-cli/15 -next-page: /github-cli/16 +title: Collaborate with GitHub Pull Requests +permalink: /github-cli/collaborate-github-pull-requests +next-page: /github-cli/merge-pull-request-github-showcase facilitator: false sidebar: nav: "github-cli" diff --git a/paths/github-cli/16-merge-changes.md b/paths/github-cli/17-merge-changes.md similarity index 71% rename from paths/github-cli/16-merge-changes.md rename to paths/github-cli/17-merge-changes.md index d56006869..9517af18b 100644 --- a/paths/github-cli/16-merge-changes.md +++ b/paths/github-cli/17-merge-changes.md @@ -3,14 +3,15 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Merge Your PR -permalink: /github-cli/16 +title: Merge Your Pull Request on GitHub +permalink: /github-cli/merge-pull-request-github-showcase facilitator: false sidebar: nav: "github-cli" main-content: includes: - activity/github-desktop/16-merge-pr.md + - activity/github-CLI/clisurvey.md show-me-how: images/gifs/github-cli/merge-pull-request.gif tell-me-why: includes: diff --git a/paths/github-cli/viewing-history.md b/paths/github-cli/viewing-history.md index 81e0c5bd7..18ca2529a 100644 --- a/paths/github-cli/viewing-history.md +++ b/paths/github-cli/viewing-history.md @@ -3,7 +3,7 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Viewing History +title: Viewing History With Git Log permalink: /github-cli/98 next-page: /github-cli/99 facilitator: false diff --git a/paths/github-desktop/01-class-introduction.md b/paths/github-desktop/01-class-introduction.md index c462d35d6..88315e269 100644 --- a/paths/github-desktop/01-class-introduction.md +++ b/paths/github-desktop/01-class-introduction.md @@ -3,15 +3,15 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Welcome +title: GitHub Pages from GitHub Desktop permalink: /github-desktop/ -next-page: /github-desktop/02/ +next-page: /github-desktop/install-github-desktop facilitator: false sidebar: nav: "github-desktop-nav" main-content: | - **Essential First Step**: Before this class, you should complete our [Introduction to GitHub](https://github.github.com/on-demand/intro-to-github/) course. + **Essential First Step**: Before this class, you should complete our [Introduction to GitHub](https://github.github.com{{site.baseurl}}/intro-to-github/) course. This course teaches you to create and host your own website via GitHub, using GitHub Desktop. @@ -22,7 +22,7 @@ main-content: | - Convert your repository into a website - Host and share your website - **Take a look at everyone who has shared their website so far:** + **Take a look at everyone who has shared their website so far in this Contribution Graph:**
    diff --git a/paths/github-desktop/02-install-desktop.md b/paths/github-desktop/02-install-desktop.md index 725b72b93..d74c6fe11 100644 --- a/paths/github-desktop/02-install-desktop.md +++ b/paths/github-desktop/02-install-desktop.md @@ -4,8 +4,8 @@ header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) title: Install GitHub Desktop -permalink: /github-desktop/02/ -next-page: /github-desktop/03/ +permalink: /github-desktop/install-github-desktop +next-page: /github-desktop/create-remote-repository facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/03-creating-repository-in-browser.md b/paths/github-desktop/03-creating-repository-in-browser.md index 9659a861a..4eef6e0be 100644 --- a/paths/github-desktop/03-creating-repository-in-browser.md +++ b/paths/github-desktop/03-creating-repository-in-browser.md @@ -3,16 +3,16 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Create the Remote Repository -permalink: /github-desktop/03/ -next-page: /github-desktop/04/ +title: Create the Remote Repository on GitHub +permalink: /github-desktop/create-remote-repository +next-page: /github-desktop/choose-github-pages-theme facilitator: false sidebar: nav: "github-desktop-nav" main-content: includes: - activity/github-desktop/01-create-repository.md -show-me-how: "images/gifs/github-desktop/create-repository-on-github.gif" +show-me-how: "images/gifs/github-desktop/create-repo.gif" tell-me-why: includes: - tell-me-why/create-remote.md diff --git a/paths/github-desktop/04-choose-a-theme.md b/paths/github-desktop/04-choose-a-theme.md new file mode 100644 index 000000000..7f8224962 --- /dev/null +++ b/paths/github-desktop/04-choose-a-theme.md @@ -0,0 +1,17 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Choose a GitHub Pages Theme +permalink: /github-desktop/choose-github-pages-theme +next-page: /github-desktop/clone-repository-github-desktop +facilitator: false +sidebar: + nav: "github-desktop-nav" +main-content: + includes: + - activity/github-desktop/choose-a-theme.md +show-me-how: images/gifs/github-desktop/choose-a-theme.gif +tell-me-why: +--- diff --git a/paths/github-desktop/04-cloning-repository-locally.md b/paths/github-desktop/05-cloning-repository-locally.md similarity index 69% rename from paths/github-desktop/04-cloning-repository-locally.md rename to paths/github-desktop/05-cloning-repository-locally.md index a947d2b5e..bc42774b7 100644 --- a/paths/github-desktop/04-cloning-repository-locally.md +++ b/paths/github-desktop/05-cloning-repository-locally.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Clone the Repository -permalink: /github-desktop/04/ -next-page: /github-desktop/05/ +title: Clone the Repository with GitHub Desktop +permalink: /github-desktop/clone-repository-github-desktop +next-page: /github-desktop/create-branches-github-desktop facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/05-create-a-branch.md b/paths/github-desktop/06-create-a-branch.md similarity index 69% rename from paths/github-desktop/05-create-a-branch.md rename to paths/github-desktop/06-create-a-branch.md index 333de795b..d8999f49d 100644 --- a/paths/github-desktop/05-create-a-branch.md +++ b/paths/github-desktop/06-create-a-branch.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Create Local Branches -permalink: /github-desktop/05/ -next-page: /github-desktop/06/ +title: Create Local Branches With GitHub Desktop +permalink: /github-desktop/create-branches-github-desktop +next-page: /github-desktop/make-changes-github-desktop facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/06-make-local-changes.md b/paths/github-desktop/07-make-local-changes.md similarity index 70% rename from paths/github-desktop/06-make-local-changes.md rename to paths/github-desktop/07-make-local-changes.md index 818b744cc..4b151c545 100644 --- a/paths/github-desktop/06-make-local-changes.md +++ b/paths/github-desktop/07-make-local-changes.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Make Local Changes -permalink: /github-desktop/06/ -next-page: /github-desktop/07/ +title: Make Local Changes With GitHub Desktop +permalink: /github-desktop/make-changes-github-desktop +next-page: /github-desktop/add-commits-github-desktop facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/07-add-commits-desktop.md b/paths/github-desktop/08-add-commits-desktop.md similarity index 85% rename from paths/github-desktop/07-add-commits-desktop.md rename to paths/github-desktop/08-add-commits-desktop.md index c4877a899..f4f7cecc6 100644 --- a/paths/github-desktop/07-add-commits-desktop.md +++ b/paths/github-desktop/08-add-commits-desktop.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Add Local Commits -permalink: /github-desktop/07/ -next-page: /github-desktop/08/ +title: Add Local Commits With GitHub Desktop +permalink: /github-desktop/add-commits-github-desktop +next-page: /github-desktop/pull-request-github-desktop facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/08-open-pull-request.md b/paths/github-desktop/09-open-pull-request.md similarity index 61% rename from paths/github-desktop/08-open-pull-request.md rename to paths/github-desktop/09-open-pull-request.md index 59a8207b3..07553b251 100644 --- a/paths/github-desktop/08-open-pull-request.md +++ b/paths/github-desktop/09-open-pull-request.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Open a Pull Request -permalink: /github-desktop/08/ -next-page: /github-desktop/09/ +title: Open a Pull Request With GitHub Desktop +permalink: /github-desktop/pull-request-github-desktop +next-page: /github-desktop/merge-pull-request-github facilitator: false sidebar: nav: "github-desktop-nav" @@ -24,6 +24,6 @@ tell-me-why: | 1. Collaborate, and make more commits 1. Merge the Pull Request - GitHub Desktop makes it easy to open a Pull Request without leaving the app. However, if you wanted to create the Pull Request on GitHub.com, you would simply click the Publish button. This would send your branch up to GitHub so you could open the Pull Request there! + Simply click the "Update Origin" button. This sends your branch up to GitHub. Then, you open the Pull Request there! --- diff --git a/paths/github-desktop/09-merging-pull-requests.md b/paths/github-desktop/10-merging-pull-requests.md similarity index 81% rename from paths/github-desktop/09-merging-pull-requests.md rename to paths/github-desktop/10-merging-pull-requests.md index e018a5658..8e5b0f771 100644 --- a/paths/github-desktop/09-merging-pull-requests.md +++ b/paths/github-desktop/10-merging-pull-requests.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Merge Pull Requests -permalink: /github-desktop/09/ -next-page: /github-desktop/10/ +title: Merge Your Pull Request on GitHub +permalink: /github-desktop/merge-pull-request-github +next-page: /github-desktop/view-github-pages-site facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/10-view-your-site.md b/paths/github-desktop/11-view-your-site.md similarity index 75% rename from paths/github-desktop/10-view-your-site.md rename to paths/github-desktop/11-view-your-site.md index ccf93ec7d..3690d05a1 100644 --- a/paths/github-desktop/10-view-your-site.md +++ b/paths/github-desktop/11-view-your-site.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: View Your Site -permalink: /github-desktop/10/ -next-page: /github-desktop/11/ +title: View Your GitHub Pages Site +permalink: /github-desktop/view-github-pages-site +next-page: /github-desktop/push-with-github-desktop facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/11-sync-local-repo.md b/paths/github-desktop/12-sync-local-repo.md similarity index 50% rename from paths/github-desktop/11-sync-local-repo.md rename to paths/github-desktop/12-sync-local-repo.md index c73aa471e..d04ace19b 100644 --- a/paths/github-desktop/11-sync-local-repo.md +++ b/paths/github-desktop/12-sync-local-repo.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Keep Things in Sync -permalink: /github-desktop/11/ -next-page: /github-desktop/12/ +title: Push to GitHub with GitHub Desktop +permalink: /github-desktop/push-with-github-desktop +next-page: /github-desktop/add-github-pages-site-showcase facilitator: false sidebar: nav: "github-desktop-nav" @@ -16,12 +16,12 @@ show-me-how: "images/gifs/github-desktop/sync-changes.gif" tell-me-why: | ## Keeping your local repository in sync - As we discussed previously, Git doesn't require an internet connection which means it doesn't communicate with remote repositories unless explicitly instructed to do so. + As we discussed previously, GitHub Desktop doesn't require an internet connection which means it doesn't communicate with remote repositories unless explicitly instructed to do so. When you merge your Pull Request on GitHub.com, the changes you made locally are merged into the `master` branch on the _remote_ repository on GitHub. - However, you won't automatically see those changes reflected in your local copy until you do another sync. + However, you won't automatically see those changes reflected in your local copy until you get an update from _origin_. - You should `sync` your local repository regularly to ensure you are always working with the most recent copies of the files in the repository. + You should `Fetch Origin` regularly, and then `pull` or `push` as necessary to ensure you are always working with the most recent copies of the files in the repository. --- diff --git a/paths/github-desktop/12-add-site-to-showcase.md b/paths/github-desktop/13-add-site-to-showcase.md similarity index 73% rename from paths/github-desktop/12-add-site-to-showcase.md rename to paths/github-desktop/13-add-site-to-showcase.md index c6c02bd1e..a75acf177 100644 --- a/paths/github-desktop/12-add-site-to-showcase.md +++ b/paths/github-desktop/13-add-site-to-showcase.md @@ -3,16 +3,16 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Add Your Site to the Showcase -permalink: /github-desktop/12/ -next-page: /github-desktop/13/ +title: Add Your GitHub Pages Site to the Showcase +permalink: /github-desktop/add-github-pages-site-showcase +next-page: /github-desktop/review-github-flow facilitator: false sidebar: nav: "github-desktop-nav" main-content: includes: - activity/github-desktop/12-add-class-repo.md -show-me-how: images/gifs/github-desktop/add-collab.gif +show-me-how: images/gifs/github-desktop/join-repo-make-issue-pages.gif tell-me-why: | ## Getting access to the shared repository diff --git a/paths/github-desktop/13-review-local-workflow.md b/paths/github-desktop/14-review-local-workflow.md similarity index 85% rename from paths/github-desktop/13-review-local-workflow.md rename to paths/github-desktop/14-review-local-workflow.md index f899382ed..90c7c062c 100644 --- a/paths/github-desktop/13-review-local-workflow.md +++ b/paths/github-desktop/14-review-local-workflow.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Review the Local Workflow -permalink: /github-desktop/13/ -next-page: /github-desktop/14/ +title: Review the Local GitHub Flow +permalink: /github-desktop/review-github-flow +next-page: /github-desktop/push-pull-request-github-desktop facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/14-push-and-open-pr.md b/paths/github-desktop/15-push-and-open-pr.md similarity index 68% rename from paths/github-desktop/14-push-and-open-pr.md rename to paths/github-desktop/15-push-and-open-pr.md index ce21b2a59..ce309aae2 100644 --- a/paths/github-desktop/14-push-and-open-pr.md +++ b/paths/github-desktop/15-push-and-open-pr.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Review of Pull Requests -permalink: /github-desktop/14/ -next-page: /github-desktop/15/ +title: Push to GitHub & Create a Pull Request +permalink: /github-desktop/push-pull-request-github-desktop +next-page: /github-desktop/collaborate-github-pull-requests facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/15-collaborate.md b/paths/github-desktop/16-collaborate.md similarity index 71% rename from paths/github-desktop/15-collaborate.md rename to paths/github-desktop/16-collaborate.md index 81b26d7ee..b7b2b4996 100644 --- a/paths/github-desktop/15-collaborate.md +++ b/paths/github-desktop/16-collaborate.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Let's Collaborate! -permalink: /github-desktop/15/ -next-page: /github-desktop/16/ +title: Collaborate With GitHub Pull Requests +permalink: /github-desktop/collaborate-github-pull-requests +next-page: /github-desktop/merge-pull-request-showcase facilitator: false sidebar: nav: "github-desktop-nav" diff --git a/paths/github-desktop/16-merge.md b/paths/github-desktop/17-merge.md similarity index 70% rename from paths/github-desktop/16-merge.md rename to paths/github-desktop/17-merge.md index 1128aecc0..4c14bf53d 100644 --- a/paths/github-desktop/16-merge.md +++ b/paths/github-desktop/17-merge.md @@ -3,14 +3,15 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Merge Your PR -permalink: /github-desktop/16/ +title: Merge Your Pull Request on GitHub +permalink: /github-desktop/merge-pull-request-showcase facilitator: false sidebar: nav: "github-desktop-nav" main-content: includes: - activity/github-desktop/16-merge-pr.md + - activity/github-desktop/desktopsurvey.md show-me-how: images/gifs/github-desktop/merge.gif tell-me-why: includes: diff --git a/paths/graphql/01-introduction.md b/paths/graphql/01-introduction.md new file mode 100644 index 000000000..36bad2528 --- /dev/null +++ b/paths/graphql/01-introduction.md @@ -0,0 +1,62 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Introduction to GraphQL +permalink: /graphql/ +next-page: /graphql/first-use +facilitator: false +sidebar: + nav: "github-graphql" +main-content: | + ## An Introduction to APIs for Complete Beginners + + Modern apps are interdependent and dynamic. For example, you probably sign in to various web apps using your GitHub account. These apps may be grabbing your [avatar](https://github.com/blog/1586-identicons) directly from GitHub, or some information about your projects. The data about your project is always changing so, as an added bonus, these connections are constantly updating the information that is displayed. + + GitHub isn't the only web app that does this. A few examples of rich data sources are: + + - [Weather Underground](https://www.wunderground.com/weather/api/): get access to your local weather or report it from you home weather station + - [Flight stats](https://developer.flightstats.com/api-docs/flightstatus/v2): grab information about any flight, and + - [ESPN](http://www.espn.com/static/apis/devcenter/docs/scores.html): keep track of your favorite sports team's record + + This data is available to you because the developers of these apps created a public Application Program Interface (API). + + This course is going to introduce the concept of using APIs via GitHub's GraphQL. You'll learn how to gather data from GitHub, and how to make a simple change. + +
    + + There are several types of APIs. Learn more by expanding the "Tell me why" section below. + + +tell-me-why: | + + ## GraphQL vs. Other APIs + + If this is your first time exploring APIs, you picked the perfect time to start. GraphQL is the newest player in the API game and represents a significant leap forward. + + Many of the web apps you use on a daily basis have APIs. Common APIs include: + + - REST + - SOAP + - .NET + + The goal of this course isn't to teach you about all of the common API types, but it is worth mentioning some of the advantages GraphQL has over the popular REST API so you can leverage these features in your projects. + + ### Common Frustrations with REST + + - REST APIs are designed to interact with one specific end point at a time. For example, you can get a list of all your issues on GitHub, but you can't get a list of issues and the comments on those issues at the same time. This means you often need to make more than one "request" to the API to get the exact information you need. + - REST API results are determined by the API developer, and they want to make sure you have everything you could possibly want. This often means you are getting way more information than you intend to use. + + ### GraphQL Solves These Frustrations + + GraphQL was designed to remove these frustrations by creating a more flexible query structure, which allows you to request information based on connections across traditional data points. + + GraphQL also allows you to specify the information you want. So if you only want to know how many :smile: emoji reactions were on your last comment, you can get precisely that information. + + ## How Will You Use GitHub's GraphQL? + + If you aren't sure why you might use GraphQL right now, that's ok :ok_hand:. This course walks through a few examples, and will set you confidently on the path of additional use cases. + + You can find use cases and examples of GraphQL in action in [GitHub's official GraphQL documentation](https://developer.github.com/v4/). +--- diff --git a/paths/graphql/02-first-use.md b/paths/graphql/02-first-use.md new file mode 100644 index 000000000..1137608f0 --- /dev/null +++ b/paths/graphql/02-first-use.md @@ -0,0 +1,90 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Use GraphQL for the First Time +permalink: /graphql/first-use +next-page: /graphql/first-query +facilitator: false +sidebar: + nav: "github-graphql" +main-content: | + + ## Using GraphQL Explorer + + In this section, we are going to introduce you to a tool that enables you to experiment with GraphQL quickly and easily. + + ![animated gif of instructions outlined below](../images/gifs/graphql/first-query.gif) + + ### Running Your First GraphQL Query + + 1. [Navigate to the GraphQL explorer](https://developer.github.com/v4/explorer/). + 1. Once the page has loaded, click the "Sign in with GitHub" button. If you don't have a GitHub account, [here are some instructions for getting an account setup](https://help.github.com/articles/signing-up-for-a-new-github-account/). + + On your first log in, The GraphQL interface displays a sample query in the left pane that should look like this: + + # Type queries into this side of the screen, and you will + # see intelligent typeaheads aware of the current GraphQL type schema, + # live syntax, and validation errors highlighted within the text. + + # We'll get you started with a simple query showing your username! + query { + viewer { + login + } + } + + 1. Click the "Execute Query" button (it looks like a Play button) to run the query that is in the left pane and display the results in the right pane. + + Clicking "Execute Query" should present something that looks like this: + + + { + "data": { + "viewer": { + "login": "githubteacher" + } + } + } + + + The response from a query in GraphQL will be JSON, just like the query itself, and is returned in the exact same format as the request. + + 1. Make changes to the sample query. + + In this case, we only asked GraphQL to tell us our login name, but what if we wanted to know more? + + Just below `login`, add a new line with the text `avatarURL`. Now your query should look like this: + + + { + viewer { + login + avatarUrl + } + } + + To learn more about the information you can request and what is being returned, check out "Tell me why" below :point_down:. + +tell-me-why: | + + ### What Can I Access with the API? + + GitHub has made much of the data about a user accessible via the API. To learn more about the data available to the User object, you can check out the [user reference documents on developer.github.com](https://developer.github.com/v4/reference/object/user/). + + ### What Should I See? + + When you ran the query above, it should have returned something that looks like this: + + { + "data": { + "viewer": { + "login": "githubteacher", + "avatarUrl": "https://avatars3.githubusercontent.com/u/2132216?v=3" + } + } + } + + +--- diff --git a/paths/graphql/03-first-query.md b/paths/graphql/03-first-query.md new file mode 100644 index 000000000..eefb06a39 --- /dev/null +++ b/paths/graphql/03-first-query.md @@ -0,0 +1,70 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Build a Query +permalink: /graphql/first-query +next-page: /graphql/query-info +facilitator: false +sidebar: + nav: "github-graphql" +main-content: | + + ## Building a Useful Query + + Let's imagine that you'd like to update your team about some of your recent work via [an issue](https://guides.github.com/features/issues/). You could use a GraphQL query to find the repositories you've most recently contributed to. + + ![animated gif of instructions outlined below](../images/gifs/graphql/build-query.gif) + + 1. Paste this query into the [GraphQL explorer](https://developer.github.com/v4/explorer/). + + query { + viewer { + contributedRepositories(last:5, privacy:PUBLIC) { + edges { + node { + owner { + login + } + name + url + } + } + } + } + } + + > To identify what the different parts of this query are doing, click "Tell me why" below. We could easily change this query to ask for different information. If you'd like, feel free to do that in your own query! + + 1. Click the "Execute Query" button (it looks like a Play button) to run the query that is in the left pane and display the results in the right pane. + + This example shows that with the same code, we can get updated data! Any time you have to manually search for information, try to find out if and how you could use an API to do it for you. + +tell-me-why: | + + ### What is a query? + + A **query** is a request for specific information. The [previous exercise](first-use#running-your-first-graphql-query) would be similar to asking someone for their name and a picture, except with a query we can ask GitHub to get the information from _hundreds_ (or _thousands_, or even _millions_) of users, repositories, issues, commits, and pull requests. + + Additionally, since the results are JSON, you can use the response to your query to power useful apps that request and send data to GitHub. When you use GraphQL to make a change to the data, it is called a **mutation**. We'll get to that soon. + + ### Components of our query + + - [**viewer:**](https://developer.github.com/v4/reference/query/#fields) Who is currently the logged in user? (you!) + - [**contributedRepositories(last:#, privacy:PUBLIC):**](https://developer.github.com/v4/reference/object/user/#connections) Contributed repositories is what is known as a connection. It a relationship between two sets of data. In this case, it is a connection between the user (in this case the logged in user) and the (most recent) repositories the viewer has contributed to. We are providing two arguments to help us limit the results. + - **Last:** tells the query to return the most recent results. In this case, the `#` must be used to limit the number of repositories returned. + - We also chose to only display PUBLIC repositories by providing the **privacy** argument. We could also set this parameter to `PRIVATE`, or leave it out altogether if we'd like PUBLIC and PRIVATE repositories. + - [**edge:**](https://developer.github.com/v4/reference/object/repositoryedge/) It is easiest to think of an edge as a bridge between two sets of data. You will need an edge any time you are working between nodes. + - [**node:**](https://developer.github.com/v4/reference/object/repository/) A node is a set of data. If an edge is a bridge connecting two islands, the node is the island. Within a node, you can select specific data you would like to view. In this case, the node contains the information about the repositories. + + > For a visual example of **nodes** and **edges**, view the [GraphQL Voyager site](https://apis.guru/graphql-voyager/). Any column of data in the graphs would be considered a __node__, and the lines connecting them would be considered __edges__. + + - [**owner:**](https://developer.github.com/v4/reference/interface/repositoryowner/#repositoryowner) Within the node, you will find specific pieces of information called interfaces. These are interfaces have additional layers of data. + - [**login:**](https://developer.github.com/v4/reference/interface/repositoryowner/#repositoryowner) The repository owner's username on GitHub. The owner may be an individual, or an organization. + - [**name:**](https://developer.github.com/v4/reference/object/repository/#fields) The name of the repository. + - [**url:**](https://developer.github.com/v4/reference/object/repository/#fields) The repository's URL. + + > As you begin exploring and crafting your own queries for your unique projects, you can click the "< Docs" button located above the right pane of the GraphQL Explorer to get a definition of different query objects or look for query objects that will perform the task you are attempting. + +--- diff --git a/paths/graphql/04-query-info.md b/paths/graphql/04-query-info.md new file mode 100644 index 000000000..c219c0871 --- /dev/null +++ b/paths/graphql/04-query-info.md @@ -0,0 +1,39 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Grab a Query's Response +permalink: /graphql/query-info +next-page: /graphql/another-query +facilitator: false +sidebar: + nav: "github-graphql" +main-content: | + + ## Get Ready to Mutate + + ![animated gif of instructions outlined below](../images/gifs/graphql/recent-contributions.gif) + + 1. Using the response from the query in the last step, fill in this template. + + My most recent contributions are to:
    + 1. [repository1](url1)
    + 1. [repository2](url2)
    + 1. [repository3](url3)
    + 1. [repository4](url4)
    + 1. [repository5](url5)
    + + + 1. Save this template somewhere where you can get to it later, like a text editor or as a comment in an issue. + +tell-me-why: | + + ### Why are we making this file? + + Maybe you are a trying to land a job and want to show your potential employer the projects that you work on. Maybe you already have a job, but you want to be able to show your team or manager what you have been working on recently. + + You can use this query to automatically generate a list of the projects that you are actively contributing to. + + For this course, we are going to use this information in our first **mutation**. +--- diff --git a/paths/graphql/05-another-query.md b/paths/graphql/05-another-query.md new file mode 100644 index 000000000..69a2237e3 --- /dev/null +++ b/paths/graphql/05-another-query.md @@ -0,0 +1,47 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Use a Query to Find Specific Information +permalink: /graphql/another-query +next-page: /graphql/mutation +facilitator: false +sidebar: + nav: "github-graphql" +main-content: | + + ## We Need More Information + + We are working our way to our first mutation. The first mutation will be to add a comment to an existing issue containing the list of repositories you just created. + + When we look at [the documentation for adding a comment](https://developer.github.com/v4/reference/mutation/addcomment/), we will see that the list of inputs includes a `subjectId` and `body`. We can tell these are required because they have an ! next to the data type (ID!). + + Let's build another query to get the ID of for the issue where we want to place our list of repositories. + + ![animated gif of instructions outlined below](../images/gifs/graphql/get-issue-id.gif) + + 1. Open an issue in our shared class repository: https://github.com/githubschool/graph-ql + 1. Create the query to find your issue ID number + - We have started the query for you below, however, we left some of the **fields** blank so you can try to build the query yourself. For help, [check out the documentation](https://developer.github.com/v4/). To see a full code example, expand the "Tell me why" section below. + + query FindIssueID { + repository(owner: "", name: "") { + + } + } + 1. Find the issue's `id` in your results and put it in a safe place. We'll need it for the next step when we build a mutation. + +tell-me-why: | + + Did building the query give you trouble? That's OK! Here's the full query. Paste it into the GraphQL Explorer to get the issue `id` for your own issue, just be sure to replace `#` with the number of [your own issue](https://github.com/githubschool/graph-ql/issues). + + query FindIssueID { + repository(owner: "githubschool", name: "graph-QL") { + issue(number: #) { + id + } + } + } + +--- diff --git a/paths/graphql/06-mutation.md b/paths/graphql/06-mutation.md new file mode 100644 index 000000000..f6d45874a --- /dev/null +++ b/paths/graphql/06-mutation.md @@ -0,0 +1,51 @@ +--- +layout: simple-class +header: + overlay_image: cover.jpeg + overlay_filter: rgba(46, 129, 200, 0.6) +title: Create a Mutation +permalink: /graphql/mutation +facilitator: false +sidebar: + nav: "github-graphql" +main-content: | + + ## Using GraphQL to Add an Issue Comment + + So far, we've only used GraphQL to form **queries**, or requests for information. Next, we're going to use the information we've gathered to craft a **mutation**. Simply put, using a **mutation** we can actually manipulate server-side data. + + ![animated gif of instructions outlined below](../images/gifs/graphql/mutation.gif) + + 1. Get your information from the both previous queries ready (list of repositories, and your issue's `id`). + 1. Create a mutation by either typing or pasting the following into the [GraphQL explorer](https://developer.github.com/v4/explorer/). + + mutation AddComment { + addComment(input: { + subjectId: "[issueID]", + body: "[contribution template]"}) + { + subject { + id + } + } + } + + > Look around using the built in documentation. By hovering, erasing, retyping, or changing fields, what can you learn about this mutation? + + 1. Change `[issueID]` to the issue `id` you found in the [most recent query](another-query), and `[contribution template]` to the [template you completed earlier](query-info) based on your most recent contributions. _You will need to delete the new lines in between the list items in the template for it to process correctly._ + 1. Click the "Execute Query" button + 1. Go to your issue and find your posted comment. + 1. For an extra challenge, use GraphQL to add an emoji reaction to your comment! + + ## Done but not Finished + + This was just the tip of the iceberg when it comes to using GraphQL to supercharge your interactions with GitHub. + + In this course, we used GraphQL to automagically post information about repositories you recently worked on to an issue, but the possibilities of what your future queries can do is limited by your imagination. + + So go out there, experiment with some queries, and share them with the Training team at GitHub and other students in an issue on the course [repository](https://github.com/githubschool/graph-ql). Our favorite queries will be added to a document within the repository for all students to view! + + Good luck out there and may your queries be responsive. + + +--- diff --git a/paths/graphql/outline.md b/paths/graphql/outline.md new file mode 100644 index 000000000..c13256744 --- /dev/null +++ b/paths/graphql/outline.md @@ -0,0 +1,80 @@ +## Page 1: Introduction +- Motivation, present the problem that needs solving +- API as the solution (context: dynamic, consumable information) + - Examples of API usages (format: service, how API is used, link) + +## Page 2: First use (jump right in, no later than pg 2) +- instructions for navigating to GraphiQL on web UI +- interact with interface, show how it works, live data +- tell me why, can explain differences between rest and graphql +- Does this have to be different than page 3, or could we combine? + +## Page 3: Your first query (get personal statistic) +- short, direct explanation of a query +- instructions for building the first query +- tell me why breaks down the components of the query, links to existing documentation +- rationale for using API instead of hardcoding data +- Explain how we build this query, what we're searching for, how we could easily change it to search for different things. + +``` +query RecentPRs { + user(login: "brianamarie") { + name + pullRequests(last: 5) { + edges { + node { + title + body + url + } + } + } + } +} +``` + +## Page 4: Get relevant query information +- Context of why we're doing this, explain standups, show this could be useful for weekly updates of work +- Pick out titles and URLs manually and copy them into this template + +``` +My most recent PRs are:
    +1. [title1](url1) +1. [title2](url2) +1. [title3](url3) +1. [title4](url4) +1. [title5](url5) +``` + +## Page 5: Another Query: Find a relevant issue ID +- Explain why this is necessary for us to post in the mutation coming up +- Build another query +- Copy issue ID in response for use in next step. + +``` +query FindIssueID { + repository(owner: "githubschool", name: "graphQL-standup") { + issue(number: 2) { + id + } + } +} +``` + +## Page 6: Your first mutation (push to existing personal site) +- short, direct explanation of a mutation +- instructions for building the mutation +- tell my why break down the components of the mutation + +``` +mutation AddComment { + addComment(input: { + subjectId: "[issueID from step 4]", + body: "[template from step 2]"}) + { + subject { + id + } + } +} +``` diff --git a/paths/intro-to-github/00-welcome.md b/paths/intro-to-github/00-welcome.md index cd84775a7..c35df3335 100644 --- a/paths/intro-to-github/00-welcome.md +++ b/paths/intro-to-github/00-welcome.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Welcome +title: Introduction to GitHub permalink: /intro-to-github/ -next-page: /intro-to-github/01/ +next-page: /intro-to-github/create-github-account sidebar: nav: "intro-nav" main-content: | @@ -30,6 +30,8 @@ show-me-how: tell-me-why: | ## What is GitHub? + + We are glad you asked! Many people stumble onto GitHub through one of the millions of Open Source projects it holds or because their employer or professor is using it. Why do these projects use GitHub? **At its heart, GitHub is a collaboration platform.** diff --git a/paths/intro-to-github/01-create-github-account.md b/paths/intro-to-github/01-create-github-account.md index 4db9724c0..c2ec90110 100644 --- a/paths/intro-to-github/01-create-github-account.md +++ b/paths/intro-to-github/01-create-github-account.md @@ -4,8 +4,8 @@ header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) title: Create a GitHub Account -permalink: /intro-to-github/01/ -next-page: /intro-to-github/02/ +permalink: /intro-to-github/create-github-account +next-page: /intro-to-github/join-class-repository sidebar: nav: "intro-nav" main-content: diff --git a/paths/intro-to-github/02-join-class-repo.md b/paths/intro-to-github/02-join-class-repo.md index ab6146428..0e380d2ab 100644 --- a/paths/intro-to-github/02-join-class-repo.md +++ b/paths/intro-to-github/02-join-class-repo.md @@ -4,35 +4,16 @@ header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) title: Join the Class Repository -permalink: /intro-to-github/02/ -next-page: /intro-to-github/03/ +permalink: /intro-to-github/join-class-repository +next-page: /intro-to-github/explore-github-repository sidebar: nav: "intro-nav" main-content: includes: - activity/intro-to-github/01-join-intro-repo.md -show-me-how: "images/gifs/intro/join-class-repo.gif" -tell-me-why: | - - ## Using GitHub Issues - - GitHub issues are used to record and discuss ideas, enhancements, tasks, and bugs. They make collaboration easier by: - - - Replacing email for project discussions, ensuring everyone on the team (even your future team member) has the complete story. - - Allowing you to cross-link to other issues and pull requests. - - Creating a single, comprehensive record of how and why you made certain decisions. - - Allowing you to easily pull the right people into a conversation with @ mentions and team mentions. - - To learn more about issues, check out this video: - - - - ## Why Did We Ask You to Comment on this Issue? - - When you sign up for GitHub, you automatically have **Read only access** to any public repository. This means you can look around, comment on Issues and Pull Requests, and open new Issues to report bugs or request features on your favorite projects. You can also create repositories on your own account! - - However, you can't make changes directly on someone else's project unless you use a special workflow (called Fork and Pull) or they give you collaborator access. - - For this repository, we have created a webhook that adds you as a collaborator when you comment on this issue. If you completed the steps above, you are ready to be a collaborator on our project! - +show-me-how: "images/gifs/intro/join-repo-make-issue-introduction.gif" +tell-me-why: + includes: + - tell-me-why/create-issue.md + - tell-me-why/manage-notifications.md --- diff --git a/paths/intro-to-github/04-exploring-repository.md b/paths/intro-to-github/03-exploring-repository.md similarity index 81% rename from paths/intro-to-github/04-exploring-repository.md rename to paths/intro-to-github/03-exploring-repository.md index b4280cf13..96474b4aa 100644 --- a/paths/intro-to-github/04-exploring-repository.md +++ b/paths/intro-to-github/03-exploring-repository.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Exploring the Repository -permalink: /intro-to-github/04/ -next-page: /intro-to-github/05/ +title: Explore the GitHub Repository +permalink: /intro-to-github/explore-github-repository +next-page: /intro-to-github/use-github-flow sidebar: nav: "intro-nav" main-content: | @@ -14,7 +14,7 @@ main-content: | 1. Watch the video in the **Tell me why** section for a guided tour. 2. Navigate to the **Code** tab to find the README. 3. Click on an **Issue** and a **Pull Request** to see the difference (HINT: one contains changes to code, the other does not). - 4. Click **Pulse** and **Graphs** to view some of our repository stats. + 4. Click **Insights** and select the **Pulse** or **Graphs** sub-options to view some of our repository stats. show-me-how: "images/gifs/intro/explore-repo.gif" tell-me-why: | @@ -26,12 +26,12 @@ tell-me-why: | ### More Great Features - The video covered some of the most commonly used features. Here are a few other items of interest you can find GitHub repositories: + The video covered some of the most commonly used features. Here are a few other items of interest you can find in GitHub repositories: - **Projects:** You can create Kanban style project tracking boards within GitHub. - **Wiki**: GitHub also has a place to create and store your relevant project documentation. - - **Pulse**: Pulse is our project's dashboard. It contains information on the work that has been completed and the work in progress. - - **Graphs**: Graphs provide a more granular view of the repository activity, including who has contributed, when the work has been done, and who has forked the repository. + - **Pulse**: Pulse is our project's dashboard. It contains information on the work that has been completed and the work in progress and can be found under the Insights menu option. + - **Graphs**: Graphs provide a more granular view of the repository activity, including who has contributed, when the work has been done, and who has forked the repository and can be found under the Insights menu option. ### Special Files diff --git a/paths/intro-to-github/03-manage-notifications.md b/paths/intro-to-github/03-manage-notifications.md deleted file mode 100644 index 4e5f93249..000000000 --- a/paths/intro-to-github/03-manage-notifications.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: simple-class -header: - overlay_image: cover.jpeg - overlay_filter: rgba(46, 129, 200, 0.6) -title: Manage Notifications -permalink: /intro-to-github/03/ -next-page: /intro-to-github/04/ -sidebar: - nav: "intro-nav" -main-content: - includes: - - activity/intro-to-github/02-manage-notifications.md -show-me-how: "images/gifs/intro/notifications.gif" -tell-me-why: | - - ### Managing Notifications - - When you commented on the issue to become a collaborator, GitHub will start to send you email notifications about the things happening in our project. If you would like to learn how to customize (or reduce) the notifications you receive from GitHub, check out this video: - - - ---- diff --git a/paths/intro-to-github/05-github-flow.md b/paths/intro-to-github/04-github-flow.md similarity index 85% rename from paths/intro-to-github/05-github-flow.md rename to paths/intro-to-github/04-github-flow.md index 873fa5d9c..5c6b3567f 100644 --- a/paths/intro-to-github/05-github-flow.md +++ b/paths/intro-to-github/04-github-flow.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Using GitHub Flow -permalink: /intro-to-github/05/ -next-page: /intro-to-github/06/ +title: Use GitHub Flow +permalink: /intro-to-github/use-github-flow +next-page: /intro-to-github/create-a-branch sidebar: nav: "intro-nav" main-content: | diff --git a/paths/intro-to-github/06-creating-a-branch.md b/paths/intro-to-github/05-creating-a-branch.md similarity index 92% rename from paths/intro-to-github/06-creating-a-branch.md rename to paths/intro-to-github/05-creating-a-branch.md index c3bc549cc..9e265654a 100644 --- a/paths/intro-to-github/06-creating-a-branch.md +++ b/paths/intro-to-github/05-creating-a-branch.md @@ -3,9 +3,9 @@ layout: simple-class header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) -title: Creating a Branch -permalink: /intro-to-github/06/ -next-page: /intro-to-github/07/ +title: Create a Branch +permalink: /intro-to-github/create-a-branch +next-page: /intro-to-github/find-your-coordinates sidebar: nav: "intro-nav" main-content: diff --git a/paths/intro-to-github/07-find-coordinates.md b/paths/intro-to-github/06-find-coordinates.md similarity index 83% rename from paths/intro-to-github/07-find-coordinates.md rename to paths/intro-to-github/06-find-coordinates.md index 3c913a82b..3c3d05b47 100644 --- a/paths/intro-to-github/07-find-coordinates.md +++ b/paths/intro-to-github/06-find-coordinates.md @@ -4,8 +4,8 @@ header: overlay_image: cover.jpeg overlay_filter: rgba(46, 129, 200, 0.6) title: Find Your Coordinates -permalink: /intro-to-github/07/ -next-page: /intro-to-github/08/ +permalink: /intro-to-github/find-your-coordinates +next-page: /intro-to-github/work-on-github sidebar: nav: "intro-nav" main-content: | @@ -13,7 +13,7 @@ main-content: | 1. Find your latitude and longitude using one of these buttons. - [ Find My Coordinates Automatically](#location){: #find-location .btn .btn--success} [ Manually Search for My Own Coordinates ](https://mynasadata.larc.nasa.gov/latitudelongitude-finder/){: .btn .btn--warning} + [ Find My Coordinates Automatically](#location){: #find-location .btn .btn--success} [ Manually Search for My Own Coordinates ](https://landsatlook.usgs.gov/viewer.html){: .btn .btn--warning}