├── .gitignore ├── CHANGELOG.md ├── Gemfile ├── LICENSE.md ├── README.md ├── _assets ├── fonts │ ├── bootstrap │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ ├── custom │ │ └── .keep │ └── font-awesome │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff ├── images │ └── .keep ├── javascripts │ ├── bootstrap.js │ ├── custom │ │ └── custom.js │ ├── jekyllkb.js │ └── jquery.js └── stylesheets │ ├── application.scss │ ├── bootstrap │ ├── _alerts.scss │ ├── _badges.scss │ ├── _breadcrumbs.scss │ ├── _button-groups.scss │ ├── _buttons.scss │ ├── _carousel.scss │ ├── _close.scss │ ├── _code.scss │ ├── _component-animations.scss │ ├── _dropdowns.scss │ ├── _forms.scss │ ├── _glyphicons.scss │ ├── _grid.scss │ ├── _input-groups.scss │ ├── _jumbotron.scss │ ├── _labels.scss │ ├── _list-group.scss │ ├── _media.scss │ ├── _mixins.scss │ ├── _modals.scss │ ├── _navbar.scss │ ├── _navs.scss │ ├── _normalize.scss │ ├── _pager.scss │ ├── _pagination.scss │ ├── _panels.scss │ ├── _popovers.scss │ ├── _print.scss │ ├── _progress-bars.scss │ ├── _responsive-embed.scss │ ├── _responsive-utilities.scss │ ├── _scaffolding.scss │ ├── _tables.scss │ ├── _theme.scss │ ├── _thumbnails.scss │ ├── _tooltip.scss │ ├── _type.scss │ ├── _utilities.scss │ ├── _variables.scss │ ├── _wells.scss │ ├── bootstrap.scss │ └── mixins │ │ ├── _alerts.scss │ │ ├── _background-variant.scss │ │ ├── _border-radius.scss │ │ ├── _buttons.scss │ │ ├── _center-block.scss │ │ ├── _clearfix.scss │ │ ├── _forms.scss │ │ ├── _gradients.scss │ │ ├── _grid-framework.scss │ │ ├── _grid.scss │ │ ├── _hide-text.scss │ │ ├── _image.scss │ │ ├── _labels.scss │ │ ├── _list-group.scss │ │ ├── _nav-divider.scss │ │ ├── _nav-vertical-align.scss │ │ ├── _opacity.scss │ │ ├── _pagination.scss │ │ ├── _panels.scss │ │ ├── _progress-bar.scss │ │ ├── _reset-filter.scss │ │ ├── _resize.scss │ │ ├── _responsive-visibility.scss │ │ ├── _size.scss │ │ ├── _tab-focus.scss │ │ ├── _table-row.scss │ │ ├── _text-emphasis.scss │ │ ├── _text-overflow.scss │ │ └── _vendor-prefixes.scss │ ├── custom │ └── custom.scss │ ├── font-awesome │ ├── _bordered-pulled.scss │ ├── _core.scss │ ├── _fixed-width.scss │ ├── _icons.scss │ ├── _larger.scss │ ├── _list.scss │ ├── _mixins.scss │ ├── _path.scss │ ├── _rotated-flipped.scss │ ├── _spinning.scss │ ├── _stacked.scss │ ├── _variables.scss │ └── font-awesome.scss │ ├── jekyllkb.scss │ └── syntax.scss ├── _config.yml ├── _data └── navbar.yml ├── _includes ├── analytics.html ├── custom │ └── .keep ├── footer.html ├── head.html └── header.html ├── _kb ├── index.html └── test │ ├── jekyllkb-asset-test-page.md │ └── jekyllkb-test-article.md ├── _layouts ├── custom │ └── .keep ├── default.html ├── home.html ├── kb.html ├── page.html └── post.html ├── _plugins ├── jekyll-assets.rb └── jekyllkb.rb ├── about └── index.html ├── blog ├── _posts │ └── 2013-11-06-jekyllkb-blog-posts.md └── index.html ├── contact └── index.html ├── favicon.png └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore compiled site 2 | _site 3 | _gh_pages 4 | 5 | # Always ignore 6 | .DS_Store 7 | *.sass-cache 8 | .ruby-gemset 9 | .ruby-version 10 | Gemfile.lock 11 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## HEAD 2 | 3 | ### Major Enhancements 4 | * 5 | ### Minor Enhancements 6 | * 7 | ### Bug Fixes 8 | 9 | ### Development Fixes 10 | 11 | 12 | ## 0.1.2 / 2014-07-05 13 | 14 | * Updated to support Jekyll version 2.1.0 15 | * Updated to support jekyll-assets version 0.8.1 16 | * Updated to support Sass version 3.3.9 17 | * Updated Copyright year in LICENSE.md 18 | * Minor version bump to 0.1.2 19 | * Updated syntax highlighting to support Jekyll 2.1.0 20 | * Minor documentation and code comment updates 21 | * Converted the Knowledge base to a Jekyll Collection -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'jekyll', '~> 2.1.0' 4 | gem 'jekyll-assets', '~> 0.8.1' 5 | gem 'sass', '~> 3.3.9' 6 | gem 'uglifier' 7 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # MIT License 2 | 3 | Copyright (c) 2014 [AJ Acevedo](http://ajalabs.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | 24 | ### NOTE: 25 | 26 | [Jekyll is also under the MIT License](https://github.com/mojombo/jekyll/blob/master/LICENSE) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## JekyllKB v0.1.2 2 | 3 | 4 | [JekyllKB](http://jekyllkb.com) - A Knowledge Base framework for [jekyll](http://jekyllrb.com) the static site generator in Ruby. 5 | 6 | JekyllKB can be used as a knowledge base framework or starter theme for your Jekyll documentation site. 7 | 8 | Version 0.1.2 is just a simple Jekyll starter theme. STAY TUNED! 9 | 10 | ### Installation 11 | 12 | 1. Install Jekyll: `gem install jekyll` 13 | 14 | 2. [Fork and clone this repo](https://github.com/AJAlabs/jekyllkb/fork) 15 | 16 | 3. From your local clone run `bundle install` 17 | 18 | 4. Once bundler is finished you can fire up Jekyll: `jekyll serve --watch` 19 | 20 | That's it! You're now ready to start hacking on your new knowledge base. enjoy! 21 | 22 | 23 | ### Usage 24 | 25 | - placeholder 26 | 27 | 28 | ### Resources & Dependancies 29 | 30 | - [Bootstrap Sass](http://getbootstrap.com) - [(source)](https://github.com/twbs/bootstrap-sass) 31 | - [Font Awesome Icons](http://fortawesome.github.io/Font-Awesome/icons/) - [(source)](https://github.com/FortAwesome/Font-Awesome) 32 | - [Jekyll](http://jekyllrb.com/) - [(source)](https://github.com/jekyll/jekyll) 33 | - [jekyll-assets](https://github.com/ixti/jekyll-assets) 34 | - [Liquid - Template engine](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers) 35 | - [Sass - Syntactically Awesome Stylesheets](http://sass-lang.com/) 36 | 37 | [Introduction to Jekyll-Assets](http://ixti.net/software/2012/12/30/unleash-mr-hyde-introduction-of-jekyll-assets.html) 38 | 39 | 40 | ### Requirements 41 | 42 | Installing JekyllKB is easy and straight-forward, but there are a few requirements you’ll need to make sure your system has before you start. [Git](http://git-scm.com) or [rsync](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/rsync.1.html) is recommended but not required. 43 | 44 | - [Ruby](http://www.ruby-lang.org/en/downloads/) 45 | - [RubyGems](http://rubygems.org/pages/download) 46 | 47 | 48 | ### Directory Structure and Ruby on Rails style asset pipeline 49 | 50 | ``` 51 | jekyllkb/ 52 | ├── _assets/ 53 | | ├── fonts/ 54 | | ├── images/ 55 | | ├── javascripts/ 56 | | | ├── custom/ // Custom javascripts 57 | | | ├── bootstrap.js // Bootstrap compiled javascript 58 | | | ├── jekyllkb.js // JekyllKB javascript that requires all other javascripts 59 | | | ├── jquery.js // jQuery 60 | | ├── stylesheets/ // Preprocessed Sass styles 61 | ├── _includes/ 62 | | ├── custom/ // directory to store your custom includes 63 | | ├── analytics.html // Google Analytics 64 | | ├── footer.html //site footer 65 | | ├── header.html //site head 66 | ├── _layouts/ 67 | | ├── custom/ // directory to store your custom layouts 68 | | ├── home.html // homepage layout 69 | | ├── page.html // page layout 70 | | ├── post-index.html // post listing layout 71 | | └── post.html // post layout 72 | ├── _plugins/ 73 | ├── about/ 74 | | ├── index.html // Default About Page 75 | ├── contact/ 76 | | ├── index.html // Default Contact Page 77 | ├── blog/ 78 | | ├── _posts/ // Blog posts directory 79 | | ├── index.html // Blog index file 80 | ├── kb/ 81 | | ├── _posts/ // Knowledge Base articles directory 82 | | ├── index.html // Knowledge Base index file 83 | └── index.html // Homepage 84 | ``` 85 | 86 | 87 | ### Customizing 88 | 89 | - placeholder 90 | 91 | 92 | ### Bugs and Feature Requests 93 | 94 | Have a bug or a feature request? [Please open a new issue](https://github.com/Synculus/jekyllkb/issues/new). Before opening an issue, please search for existing [issues](https://github.com/Synculus/jekyllkb/issues) in this repo as well as the [mojombo/jekyll](https://github.com/mojombo/jekyll/issues) repository. 95 | 96 | 97 | ### Versioning 98 | 99 | Jekyll**KB** is maintained under the Semantic Versioning guidelines as much as possible. 100 | 101 | Releases will be numbered with the following format: 102 | 103 | `..` 104 | 105 | And constructed with the following guidelines: 106 | 107 | * Breaking backward compatibility bumps the major (and resets the minor and patch) 108 | * New additions without breaking backward compatibility bumps the minor (and resets the patch) 109 | * Bug fixes and misc changes bumps the patch 110 | 111 | For more information on SemVer, please visit [http://semver.org/](http://semver.org/). 112 | 113 | 114 | ### Support, Troubleshooting and Discussions 115 | 116 | If you're having any problems with JekyllKB, here are a few resources for finding answeres: 117 | * Official [Jekyll](http://jekyllrb.com) site 118 | * [JekyllKB](http://jekyllkb.com) repo 119 | * [Jekyll Help repo](https://github.com/jekyll/jekyll-help) 120 | * [stackoverflow](http://stackoverflow.com/questions/tagged/jekyll) 121 | * You can also see if there's someone available at the #jekyllkb or the #jekyll IRC channels on irc.freenode.net 122 | 123 | 124 | ### License 125 | 126 | See the [LICENSE](https://github.com//Synculus/jekyllkb/blob/master/LICENSE.md) file for licensing and copyright details. 127 | 128 | 129 | ### Authors 130 | 131 | **AJ Acevedo** 132 | 133 | - [http://twitter.com/aj_acevedo](https://twitter.com/aj_acevedo) 134 | - [http://github.com/AJ-Acevedo](https://github.com/AJ-Acevedo) 135 | - [http://AJAcevedo.com](http://AJAcevedo.com) 136 | - IRC freenode.net nick: _AJ 137 | 138 | **Mike Barnard** 139 | 140 | - [http://twitter.com/mbarnard](https://twitter.com/mbarnard) 141 | - [http://github.com/barnardm](https://github.com/barnardm) 142 | - [http://mBarnard.com](http://mbarnard.com) 143 | - IRC freenode.net nick: mbarnard 144 | -------------------------------------------------------------------------------- /_assets/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /_assets/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /_assets/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /_assets/fonts/custom/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/custom/.keep -------------------------------------------------------------------------------- /_assets/fonts/font-awesome/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/font-awesome/FontAwesome.otf -------------------------------------------------------------------------------- /_assets/fonts/font-awesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/font-awesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /_assets/fonts/font-awesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/font-awesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /_assets/fonts/font-awesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/fonts/font-awesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /_assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AJAlabs/jekyllkb/85fb09d9c5c92a167992877228ceca9cbf4c237c/_assets/images/.keep -------------------------------------------------------------------------------- /_assets/javascripts/custom/custom.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Custom Javascripts 3 | * If you prefer to use CoffeeScript, rename this files to custom.coffee 4 | */ 5 | -------------------------------------------------------------------------------- /_assets/javascripts/jekyllkb.js: -------------------------------------------------------------------------------- 1 | //= require jquery 2 | //= require bootstrap 3 | -------------------------------------------------------------------------------- /_assets/stylesheets/application.scss: -------------------------------------------------------------------------------- 1 | // JekyllKB v0.1.2 - Application Stylesheet 2 | // All Sass styles can be overridden by modifying the custom/custom.scss file 3 | // New Sass stylesheets should be added below using @import 4 | 5 | @import "bootstrap/bootstrap"; 6 | @import "font-awesome/font-awesome.scss"; 7 | @import "syntax.scss"; 8 | @import "jekyllkb.scss"; 9 | @import "custom/custom.scss"; 10 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_alerts.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Alerts 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // ------------------------- 8 | 9 | .alert { 10 | padding: $alert-padding; 11 | margin-bottom: $line-height-computed; 12 | border: 1px solid transparent; 13 | border-radius: $alert-border-radius; 14 | 15 | // Headings for larger alerts 16 | h4 { 17 | margin-top: 0; 18 | // Specified for the h4 to prevent conflicts of changing $headings-color 19 | color: inherit; 20 | } 21 | // Provide class for links that match alerts 22 | .alert-link { 23 | font-weight: $alert-link-font-weight; 24 | } 25 | 26 | // Improve alignment and spacing of inner content 27 | > p, 28 | > ul { 29 | margin-bottom: 0; 30 | } 31 | > p + p { 32 | margin-top: 5px; 33 | } 34 | } 35 | 36 | // Dismissible alerts 37 | // 38 | // Expand the right padding and account for the close button's positioning. 39 | 40 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 41 | .alert-dismissible { 42 | padding-right: ($alert-padding + 20); 43 | 44 | // Adjust close link position 45 | .close { 46 | position: relative; 47 | top: -2px; 48 | right: -21px; 49 | color: inherit; 50 | } 51 | } 52 | 53 | // Alternate styles 54 | // 55 | // Generate contextual modifier classes for colorizing the alert. 56 | 57 | .alert-success { 58 | @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); 59 | } 60 | .alert-info { 61 | @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); 62 | } 63 | .alert-warning { 64 | @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); 65 | } 66 | .alert-danger { 67 | @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); 68 | } 69 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_badges.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: $font-size-small; 12 | font-weight: $badge-font-weight; 13 | color: $badge-color; 14 | line-height: $badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: $badge-bg; 19 | border-radius: $badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | 36 | // [converter] extracted a& to a.badge 37 | 38 | // Account for badges in navs 39 | a.list-group-item.active > &, 40 | .nav-pills > .active > a > & { 41 | color: $badge-active-color; 42 | background-color: $badge-active-bg; 43 | } 44 | .nav-pills > li > a > & { 45 | margin-left: 3px; 46 | } 47 | } 48 | 49 | // Hover state, but only for links 50 | a.badge { 51 | &:hover, 52 | &:focus { 53 | color: $badge-link-hover-color; 54 | text-decoration: none; 55 | cursor: pointer; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_breadcrumbs.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; 8 | margin-bottom: $line-height-computed; 9 | list-style: none; 10 | background-color: $breadcrumb-bg; 11 | border-radius: $border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "#{$breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: $breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: $breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_button-groups.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Button groups 3 | // -------------------------------------------------- 4 | 5 | // Make the div behave like a button 6 | .btn-group, 7 | .btn-group-vertical { 8 | position: relative; 9 | display: inline-block; 10 | vertical-align: middle; // match .btn alignment given font-size hack above 11 | > .btn { 12 | position: relative; 13 | float: left; 14 | // Bring the "active" button to the front 15 | &:hover, 16 | &:focus, 17 | &:active, 18 | &.active { 19 | z-index: 2; 20 | } 21 | &:focus { 22 | // Remove focus outline when dropdown JS adds it after closing the menu 23 | outline: 0; 24 | } 25 | } 26 | } 27 | 28 | // Prevent double borders when buttons are next to each other 29 | .btn-group { 30 | .btn + .btn, 31 | .btn + .btn-group, 32 | .btn-group + .btn, 33 | .btn-group + .btn-group { 34 | margin-left: -1px; 35 | } 36 | } 37 | 38 | // Optional: Group multiple button groups together for a toolbar 39 | .btn-toolbar { 40 | margin-left: -5px; // Offset the first child's margin 41 | @include clearfix(); 42 | 43 | .btn-group, 44 | .input-group { 45 | float: left; 46 | } 47 | > .btn, 48 | > .btn-group, 49 | > .input-group { 50 | margin-left: 5px; 51 | } 52 | } 53 | 54 | .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { 55 | border-radius: 0; 56 | } 57 | 58 | // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match 59 | .btn-group > .btn:first-child { 60 | margin-left: 0; 61 | &:not(:last-child):not(.dropdown-toggle) { 62 | @include border-right-radius(0); 63 | } 64 | } 65 | // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it 66 | .btn-group > .btn:last-child:not(:first-child), 67 | .btn-group > .dropdown-toggle:not(:first-child) { 68 | @include border-left-radius(0); 69 | } 70 | 71 | // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) 72 | .btn-group > .btn-group { 73 | float: left; 74 | } 75 | .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { 76 | border-radius: 0; 77 | } 78 | .btn-group > .btn-group:first-child { 79 | > .btn:last-child, 80 | > .dropdown-toggle { 81 | @include border-right-radius(0); 82 | } 83 | } 84 | .btn-group > .btn-group:last-child > .btn:first-child { 85 | @include border-left-radius(0); 86 | } 87 | 88 | // On active and open, don't show outline 89 | .btn-group .dropdown-toggle:active, 90 | .btn-group.open .dropdown-toggle { 91 | outline: 0; 92 | } 93 | 94 | 95 | // Sizing 96 | // 97 | // Remix the default button sizing classes into new ones for easier manipulation. 98 | 99 | .btn-group-xs > .btn { @extend .btn-xs; } 100 | .btn-group-sm > .btn { @extend .btn-sm; } 101 | .btn-group-lg > .btn { @extend .btn-lg; } 102 | 103 | 104 | // Split button dropdowns 105 | // ---------------------- 106 | 107 | // Give the line between buttons some depth 108 | .btn-group > .btn + .dropdown-toggle { 109 | padding-left: 8px; 110 | padding-right: 8px; 111 | } 112 | .btn-group > .btn-lg + .dropdown-toggle { 113 | padding-left: 12px; 114 | padding-right: 12px; 115 | } 116 | 117 | // The clickable button for toggling the menu 118 | // Remove the gradient and set the same inset shadow as the :active state 119 | .btn-group.open .dropdown-toggle { 120 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 121 | 122 | // Show no shadow for `.btn-link` since it has no other button styles. 123 | &.btn-link { 124 | @include box-shadow(none); 125 | } 126 | } 127 | 128 | 129 | // Reposition the caret 130 | .btn .caret { 131 | margin-left: 0; 132 | } 133 | // Carets in other button sizes 134 | .btn-lg .caret { 135 | border-width: $caret-width-large $caret-width-large 0; 136 | border-bottom-width: 0; 137 | } 138 | // Upside down carets for .dropup 139 | .dropup .btn-lg .caret { 140 | border-width: 0 $caret-width-large $caret-width-large; 141 | } 142 | 143 | 144 | // Vertical button groups 145 | // ---------------------- 146 | 147 | .btn-group-vertical { 148 | > .btn, 149 | > .btn-group, 150 | > .btn-group > .btn { 151 | display: block; 152 | float: none; 153 | width: 100%; 154 | max-width: 100%; 155 | } 156 | 157 | // Clear floats so dropdown menus can be properly placed 158 | > .btn-group { 159 | @include clearfix(); 160 | > .btn { 161 | float: none; 162 | } 163 | } 164 | 165 | > .btn + .btn, 166 | > .btn + .btn-group, 167 | > .btn-group + .btn, 168 | > .btn-group + .btn-group { 169 | margin-top: -1px; 170 | margin-left: 0; 171 | } 172 | } 173 | 174 | .btn-group-vertical > .btn { 175 | &:not(:first-child):not(:last-child) { 176 | border-radius: 0; 177 | } 178 | &:first-child:not(:last-child) { 179 | border-top-right-radius: $border-radius-base; 180 | @include border-bottom-radius(0); 181 | } 182 | &:last-child:not(:first-child) { 183 | border-bottom-left-radius: $border-radius-base; 184 | @include border-top-radius(0); 185 | } 186 | } 187 | .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { 188 | border-radius: 0; 189 | } 190 | .btn-group-vertical > .btn-group:first-child:not(:last-child) { 191 | > .btn:last-child, 192 | > .dropdown-toggle { 193 | @include border-bottom-radius(0); 194 | } 195 | } 196 | .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { 197 | @include border-top-radius(0); 198 | } 199 | 200 | 201 | 202 | // Justified button groups 203 | // ---------------------- 204 | 205 | .btn-group-justified { 206 | display: table; 207 | width: 100%; 208 | table-layout: fixed; 209 | border-collapse: separate; 210 | > .btn, 211 | > .btn-group { 212 | float: none; 213 | display: table-cell; 214 | width: 1%; 215 | } 216 | > .btn-group .btn { 217 | width: 100%; 218 | } 219 | 220 | > .btn-group .dropdown-menu { 221 | left: auto; 222 | } 223 | } 224 | 225 | 226 | // Checkbox and radio options 227 | // 228 | // In order to support the browser's form validation feedback, powered by the 229 | // `required` attribute, we have to "hide" the inputs via `opacity`. We cannot 230 | // use `display: none;` or `visibility: hidden;` as that also hides the popover. 231 | // This way, we ensure a DOM element is visible to position the popover from. 232 | // 233 | // See https://github.com/twbs/bootstrap/pull/12794 for more. 234 | 235 | [data-toggle="buttons"] > .btn > input[type="radio"], 236 | [data-toggle="buttons"] > .btn > input[type="checkbox"] { 237 | position: absolute; 238 | z-index: -1; 239 | @include opacity(0); 240 | } 241 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_buttons.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Buttons 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base styles 7 | // -------------------------------------------------- 8 | 9 | .btn { 10 | display: inline-block; 11 | margin-bottom: 0; // For input.btn 12 | font-weight: $btn-font-weight; 13 | text-align: center; 14 | vertical-align: middle; 15 | cursor: pointer; 16 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 17 | border: 1px solid transparent; 18 | white-space: nowrap; 19 | @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base); 20 | @include user-select(none); 21 | 22 | &, 23 | &:active, 24 | &.active { 25 | &:focus { 26 | @include tab-focus(); 27 | } 28 | } 29 | 30 | &:hover, 31 | &:focus { 32 | color: $btn-default-color; 33 | text-decoration: none; 34 | } 35 | 36 | &:active, 37 | &.active { 38 | outline: 0; 39 | background-image: none; 40 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 41 | } 42 | 43 | &.disabled, 44 | &[disabled], 45 | fieldset[disabled] & { 46 | cursor: not-allowed; 47 | pointer-events: none; // Future-proof disabling of clicks 48 | @include opacity(.65); 49 | @include box-shadow(none); 50 | } 51 | } 52 | 53 | 54 | // Alternate buttons 55 | // -------------------------------------------------- 56 | 57 | .btn-default { 58 | @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); 59 | } 60 | .btn-primary { 61 | @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); 62 | } 63 | // Success appears as green 64 | .btn-success { 65 | @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); 66 | } 67 | // Info appears as blue-green 68 | .btn-info { 69 | @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); 70 | } 71 | // Warning appears as orange 72 | .btn-warning { 73 | @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); 74 | } 75 | // Danger and error appear as red 76 | .btn-danger { 77 | @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); 78 | } 79 | 80 | 81 | // Link buttons 82 | // ------------------------- 83 | 84 | // Make a button look and behave like a link 85 | .btn-link { 86 | color: $link-color; 87 | font-weight: normal; 88 | cursor: pointer; 89 | border-radius: 0; 90 | 91 | &, 92 | &:active, 93 | &[disabled], 94 | fieldset[disabled] & { 95 | background-color: transparent; 96 | @include box-shadow(none); 97 | } 98 | &, 99 | &:hover, 100 | &:focus, 101 | &:active { 102 | border-color: transparent; 103 | } 104 | &:hover, 105 | &:focus { 106 | color: $link-hover-color; 107 | text-decoration: underline; 108 | background-color: transparent; 109 | } 110 | &[disabled], 111 | fieldset[disabled] & { 112 | &:hover, 113 | &:focus { 114 | color: $btn-link-disabled-color; 115 | text-decoration: none; 116 | } 117 | } 118 | } 119 | 120 | 121 | // Button Sizes 122 | // -------------------------------------------------- 123 | 124 | .btn-lg { 125 | // line-height: ensure even-numbered height of button next to large input 126 | @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large); 127 | } 128 | .btn-sm { 129 | // line-height: ensure proper height of button next to small input 130 | @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small); 131 | } 132 | .btn-xs { 133 | @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small); 134 | } 135 | 136 | 137 | // Block button 138 | // -------------------------------------------------- 139 | 140 | .btn-block { 141 | display: block; 142 | width: 100%; 143 | } 144 | 145 | // Vertically space out multiple block buttons 146 | .btn-block + .btn-block { 147 | margin-top: 5px; 148 | } 149 | 150 | // Specificity overrides 151 | input[type="submit"], 152 | input[type="reset"], 153 | input[type="button"] { 154 | &.btn-block { 155 | width: 100%; 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_carousel.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Carousel 3 | // -------------------------------------------------- 4 | 5 | 6 | // Wrapper for the slide container and indicators 7 | .carousel { 8 | position: relative; 9 | } 10 | 11 | .carousel-inner { 12 | position: relative; 13 | overflow: hidden; 14 | width: 100%; 15 | 16 | > .item { 17 | display: none; 18 | position: relative; 19 | @include transition(.6s ease-in-out left); 20 | 21 | // Account for jankitude on images 22 | > img, 23 | > a > img { 24 | @include img-responsive(); 25 | line-height: 1; 26 | } 27 | } 28 | 29 | > .active, 30 | > .next, 31 | > .prev { 32 | display: block; 33 | } 34 | 35 | > .active { 36 | left: 0; 37 | } 38 | 39 | > .next, 40 | > .prev { 41 | position: absolute; 42 | top: 0; 43 | width: 100%; 44 | } 45 | 46 | > .next { 47 | left: 100%; 48 | } 49 | > .prev { 50 | left: -100%; 51 | } 52 | > .next.left, 53 | > .prev.right { 54 | left: 0; 55 | } 56 | 57 | > .active.left { 58 | left: -100%; 59 | } 60 | > .active.right { 61 | left: 100%; 62 | } 63 | 64 | } 65 | 66 | // Left/right controls for nav 67 | // --------------------------- 68 | 69 | .carousel-control { 70 | position: absolute; 71 | top: 0; 72 | left: 0; 73 | bottom: 0; 74 | width: $carousel-control-width; 75 | @include opacity($carousel-control-opacity); 76 | font-size: $carousel-control-font-size; 77 | color: $carousel-control-color; 78 | text-align: center; 79 | text-shadow: $carousel-text-shadow; 80 | // We can't have this transition here because WebKit cancels the carousel 81 | // animation if you trip this while in the middle of another animation. 82 | 83 | // Set gradients for backgrounds 84 | &.left { 85 | @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001)); 86 | } 87 | &.right { 88 | left: auto; 89 | right: 0; 90 | @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5)); 91 | } 92 | 93 | // Hover/focus state 94 | &:hover, 95 | &:focus { 96 | outline: 0; 97 | color: $carousel-control-color; 98 | text-decoration: none; 99 | @include opacity(.9); 100 | } 101 | 102 | // Toggles 103 | .icon-prev, 104 | .icon-next, 105 | .glyphicon-chevron-left, 106 | .glyphicon-chevron-right { 107 | position: absolute; 108 | top: 50%; 109 | z-index: 5; 110 | display: inline-block; 111 | } 112 | .icon-prev, 113 | .glyphicon-chevron-left { 114 | left: 50%; 115 | margin-left: -10px; 116 | } 117 | .icon-next, 118 | .glyphicon-chevron-right { 119 | right: 50%; 120 | margin-right: -10px; 121 | } 122 | .icon-prev, 123 | .icon-next { 124 | width: 20px; 125 | height: 20px; 126 | margin-top: -10px; 127 | font-family: serif; 128 | } 129 | 130 | 131 | .icon-prev { 132 | &:before { 133 | content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) 134 | } 135 | } 136 | .icon-next { 137 | &:before { 138 | content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) 139 | } 140 | } 141 | } 142 | 143 | // Optional indicator pips 144 | // 145 | // Add an unordered list with the following class and add a list item for each 146 | // slide your carousel holds. 147 | 148 | .carousel-indicators { 149 | position: absolute; 150 | bottom: 10px; 151 | left: 50%; 152 | z-index: 15; 153 | width: 60%; 154 | margin-left: -30%; 155 | padding-left: 0; 156 | list-style: none; 157 | text-align: center; 158 | 159 | li { 160 | display: inline-block; 161 | width: 10px; 162 | height: 10px; 163 | margin: 1px; 164 | text-indent: -999px; 165 | border: 1px solid $carousel-indicator-border-color; 166 | border-radius: 10px; 167 | cursor: pointer; 168 | 169 | // IE8-9 hack for event handling 170 | // 171 | // Internet Explorer 8-9 does not support clicks on elements without a set 172 | // `background-color`. We cannot use `filter` since that's not viewed as a 173 | // background color by the browser. Thus, a hack is needed. 174 | // 175 | // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we 176 | // set alpha transparency for the best results possible. 177 | background-color: #000 \9; // IE8 178 | background-color: rgba(0,0,0,0); // IE9 179 | } 180 | .active { 181 | margin: 0; 182 | width: 12px; 183 | height: 12px; 184 | background-color: $carousel-indicator-active-bg; 185 | } 186 | } 187 | 188 | // Optional captions 189 | // ----------------------------- 190 | // Hidden by default for smaller viewports 191 | .carousel-caption { 192 | position: absolute; 193 | left: 15%; 194 | right: 15%; 195 | bottom: 20px; 196 | z-index: 10; 197 | padding-top: 20px; 198 | padding-bottom: 20px; 199 | color: $carousel-caption-color; 200 | text-align: center; 201 | text-shadow: $carousel-text-shadow; 202 | & .btn { 203 | text-shadow: none; // No shadow for button elements in carousel-caption 204 | } 205 | } 206 | 207 | 208 | // Scale up controls for tablets and up 209 | @media screen and (min-width: $screen-sm-min) { 210 | 211 | // Scale up the controls a smidge 212 | .carousel-control { 213 | .glyphicon-chevron-left, 214 | .glyphicon-chevron-right, 215 | .icon-prev, 216 | .icon-next { 217 | width: 30px; 218 | height: 30px; 219 | margin-top: -15px; 220 | font-size: 30px; 221 | } 222 | .glyphicon-chevron-left, 223 | .icon-prev { 224 | margin-left: -15px; 225 | } 226 | .glyphicon-chevron-right, 227 | .icon-next { 228 | margin-right: -15px; 229 | } 230 | } 231 | 232 | // Show and left align the captions 233 | .carousel-caption { 234 | left: 20%; 235 | right: 20%; 236 | padding-bottom: 30px; 237 | } 238 | 239 | // Move up the indicators 240 | .carousel-indicators { 241 | bottom: 20px; 242 | } 243 | } 244 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_close.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: ($font-size-base * 1.5); 9 | font-weight: $close-font-weight; 10 | line-height: 1; 11 | color: $close-color; 12 | text-shadow: $close-text-shadow; 13 | @include opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: $close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | @include opacity(.5); 21 | } 22 | 23 | // [converter] extracted button& to button.close 24 | } 25 | 26 | // Additional properties for button version 27 | // iOS requires the button element instead of an anchor tag. 28 | // If you want the anchor version, it requires `href="#"`. 29 | button.close { 30 | padding: 0; 31 | cursor: pointer; 32 | background: transparent; 33 | border: 0; 34 | -webkit-appearance: none; 35 | } 36 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_code.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Code (inline and block) 3 | // -------------------------------------------------- 4 | 5 | 6 | // Inline and block code styles 7 | code, 8 | kbd, 9 | pre, 10 | samp { 11 | font-family: $font-family-monospace; 12 | } 13 | 14 | // Inline code 15 | code { 16 | padding: 2px 4px; 17 | font-size: 90%; 18 | color: $code-color; 19 | background-color: $code-bg; 20 | border-radius: $border-radius-base; 21 | } 22 | 23 | // User input typically entered via keyboard 24 | kbd { 25 | padding: 2px 4px; 26 | font-size: 90%; 27 | color: $kbd-color; 28 | background-color: $kbd-bg; 29 | border-radius: $border-radius-small; 30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); 31 | 32 | kbd { 33 | padding: 0; 34 | font-size: 100%; 35 | box-shadow: none; 36 | } 37 | } 38 | 39 | // Blocks of code 40 | pre { 41 | display: block; 42 | padding: (($line-height-computed - 1) / 2); 43 | margin: 0 0 ($line-height-computed / 2); 44 | font-size: ($font-size-base - 1); // 14px to 13px 45 | line-height: $line-height-base; 46 | word-break: break-all; 47 | word-wrap: break-word; 48 | color: $pre-color; 49 | background-color: $pre-bg; 50 | border: 1px solid $pre-border-color; 51 | border-radius: $border-radius-base; 52 | 53 | // Account for some code outputs that place code tags in pre tags 54 | code { 55 | padding: 0; 56 | font-size: inherit; 57 | color: inherit; 58 | white-space: pre-wrap; 59 | background-color: transparent; 60 | border-radius: 0; 61 | } 62 | } 63 | 64 | // Enable scrollable blocks of code 65 | .pre-scrollable { 66 | max-height: $pre-scrollable-max-height; 67 | overflow-y: scroll; 68 | } 69 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_component-animations.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | @include transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | // [converter] extracted tr&.in to tr.collapse.in 23 | // [converter] extracted tbody&.in to tbody.collapse.in 24 | } 25 | 26 | tr.collapse.in { display: table-row; } 27 | 28 | tbody.collapse.in { display: table-row-group; } 29 | 30 | .collapsing { 31 | position: relative; 32 | height: 0; 33 | overflow: hidden; 34 | @include transition(height .35s ease); 35 | } 36 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_dropdowns.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Dropdown menus 3 | // -------------------------------------------------- 4 | 5 | 6 | // Dropdown arrow/caret 7 | .caret { 8 | display: inline-block; 9 | width: 0; 10 | height: 0; 11 | margin-left: 2px; 12 | vertical-align: middle; 13 | border-top: $caret-width-base solid; 14 | border-right: $caret-width-base solid transparent; 15 | border-left: $caret-width-base solid transparent; 16 | } 17 | 18 | // The dropdown wrapper (div) 19 | .dropdown { 20 | position: relative; 21 | } 22 | 23 | // Prevent the focus on the dropdown toggle when closing dropdowns 24 | .dropdown-toggle:focus { 25 | outline: 0; 26 | } 27 | 28 | // The dropdown menu (ul) 29 | .dropdown-menu { 30 | position: absolute; 31 | top: 100%; 32 | left: 0; 33 | z-index: $zindex-dropdown; 34 | display: none; // none by default, but block on "open" of the menu 35 | float: left; 36 | min-width: 160px; 37 | padding: 5px 0; 38 | margin: 2px 0 0; // override default ul 39 | list-style: none; 40 | font-size: $font-size-base; 41 | text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) 42 | background-color: $dropdown-bg; 43 | border: 1px solid $dropdown-fallback-border; // IE8 fallback 44 | border: 1px solid $dropdown-border; 45 | border-radius: $border-radius-base; 46 | @include box-shadow(0 6px 12px rgba(0,0,0,.175)); 47 | background-clip: padding-box; 48 | 49 | // Aligns the dropdown menu to right 50 | // 51 | // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` 52 | &.pull-right { 53 | right: 0; 54 | left: auto; 55 | } 56 | 57 | // Dividers (basically an hr) within the dropdown 58 | .divider { 59 | @include nav-divider($dropdown-divider-bg); 60 | } 61 | 62 | // Links within the dropdown menu 63 | > li > a { 64 | display: block; 65 | padding: 3px 20px; 66 | clear: both; 67 | font-weight: normal; 68 | line-height: $line-height-base; 69 | color: $dropdown-link-color; 70 | white-space: nowrap; // prevent links from randomly breaking onto new lines 71 | } 72 | } 73 | 74 | // Hover/Focus state 75 | .dropdown-menu > li > a { 76 | &:hover, 77 | &:focus { 78 | text-decoration: none; 79 | color: $dropdown-link-hover-color; 80 | background-color: $dropdown-link-hover-bg; 81 | } 82 | } 83 | 84 | // Active state 85 | .dropdown-menu > .active > a { 86 | &, 87 | &:hover, 88 | &:focus { 89 | color: $dropdown-link-active-color; 90 | text-decoration: none; 91 | outline: 0; 92 | background-color: $dropdown-link-active-bg; 93 | } 94 | } 95 | 96 | // Disabled state 97 | // 98 | // Gray out text and ensure the hover/focus state remains gray 99 | 100 | .dropdown-menu > .disabled > a { 101 | &, 102 | &:hover, 103 | &:focus { 104 | color: $dropdown-link-disabled-color; 105 | } 106 | } 107 | // Nuke hover/focus effects 108 | .dropdown-menu > .disabled > a { 109 | &:hover, 110 | &:focus { 111 | text-decoration: none; 112 | background-color: transparent; 113 | background-image: none; // Remove CSS gradient 114 | @include reset-filter(); 115 | cursor: not-allowed; 116 | } 117 | } 118 | 119 | // Open state for the dropdown 120 | .open { 121 | // Show the menu 122 | > .dropdown-menu { 123 | display: block; 124 | } 125 | 126 | // Remove the outline when :focus is triggered 127 | > a { 128 | outline: 0; 129 | } 130 | } 131 | 132 | // Menu positioning 133 | // 134 | // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown 135 | // menu with the parent. 136 | .dropdown-menu-right { 137 | left: auto; // Reset the default from `.dropdown-menu` 138 | right: 0; 139 | } 140 | // With v3, we enabled auto-flipping if you have a dropdown within a right 141 | // aligned nav component. To enable the undoing of that, we provide an override 142 | // to restore the default dropdown menu alignment. 143 | // 144 | // This is only for left-aligning a dropdown menu within a `.navbar-right` or 145 | // `.pull-right` nav component. 146 | .dropdown-menu-left { 147 | left: 0; 148 | right: auto; 149 | } 150 | 151 | // Dropdown section headers 152 | .dropdown-header { 153 | display: block; 154 | padding: 3px 20px; 155 | font-size: $font-size-small; 156 | line-height: $line-height-base; 157 | color: $dropdown-header-color; 158 | white-space: nowrap; // as with > li > a 159 | } 160 | 161 | // Backdrop to catch body clicks on mobile, etc. 162 | .dropdown-backdrop { 163 | position: fixed; 164 | left: 0; 165 | right: 0; 166 | bottom: 0; 167 | top: 0; 168 | z-index: ($zindex-dropdown - 10); 169 | } 170 | 171 | // Right aligned dropdowns 172 | .pull-right > .dropdown-menu { 173 | right: 0; 174 | left: auto; 175 | } 176 | 177 | // Allow for dropdowns to go bottom up (aka, dropup-menu) 178 | // 179 | // Just add .dropup after the standard .dropdown class and you're set, bro. 180 | // TODO: abstract this so that the navbar fixed styles are not placed here? 181 | 182 | .dropup, 183 | .navbar-fixed-bottom .dropdown { 184 | // Reverse the caret 185 | .caret { 186 | border-top: 0; 187 | border-bottom: $caret-width-base solid; 188 | content: ""; 189 | } 190 | // Different positioning for bottom up menu 191 | .dropdown-menu { 192 | top: auto; 193 | bottom: 100%; 194 | margin-bottom: 1px; 195 | } 196 | } 197 | 198 | 199 | // Component alignment 200 | // 201 | // Reiterate per navbar.less and the modified component alignment there. 202 | 203 | @media (min-width: $grid-float-breakpoint) { 204 | .navbar-right { 205 | .dropdown-menu { 206 | right: 0; left: auto; 207 | } 208 | // Necessary for overrides of the default right aligned menu. 209 | // Will remove come v4 in all likelihood. 210 | .dropdown-menu-left { 211 | left: 0; right: auto; 212 | } 213 | } 214 | } 215 | 216 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_glyphicons.scss: -------------------------------------------------------------------------------- 1 | //= depend_on "bootstrap/glyphicons-halflings-regular.eot" 2 | //= depend_on "bootstrap/glyphicons-halflings-regular.svg" 3 | //= depend_on "bootstrap/glyphicons-halflings-regular.ttf" 4 | //= depend_on "bootstrap/glyphicons-halflings-regular.woff" 5 | // 6 | // Glyphicons for Bootstrap 7 | // 8 | // Since icons are fonts, they can be placed anywhere text is placed and are 9 | // thus automatically sized to match the surrounding child. To use, create an 10 | // inline element with the appropriate classes, like so: 11 | // 12 | // Star 13 | 14 | // Import the fonts 15 | @font-face { 16 | font-family: 'Glyphicons Halflings'; 17 | src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot')); 18 | src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'), 19 | url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'), 20 | url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'), 21 | url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg'); 22 | } 23 | 24 | // Catchall baseclass 25 | .glyphicon { 26 | position: relative; 27 | top: 1px; 28 | display: inline-block; 29 | font-family: 'Glyphicons Halflings'; 30 | font-style: normal; 31 | font-weight: normal; 32 | line-height: 1; 33 | -webkit-font-smoothing: antialiased; 34 | -moz-osx-font-smoothing: grayscale; 35 | } 36 | 37 | // Individual icons 38 | .glyphicon-asterisk { &:before { content: "\2a"; } } 39 | .glyphicon-plus { &:before { content: "\2b"; } } 40 | .glyphicon-euro { &:before { content: "\20ac"; } } 41 | .glyphicon-minus { &:before { content: "\2212"; } } 42 | .glyphicon-cloud { &:before { content: "\2601"; } } 43 | .glyphicon-envelope { &:before { content: "\2709"; } } 44 | .glyphicon-pencil { &:before { content: "\270f"; } } 45 | .glyphicon-glass { &:before { content: "\e001"; } } 46 | .glyphicon-music { &:before { content: "\e002"; } } 47 | .glyphicon-search { &:before { content: "\e003"; } } 48 | .glyphicon-heart { &:before { content: "\e005"; } } 49 | .glyphicon-star { &:before { content: "\e006"; } } 50 | .glyphicon-star-empty { &:before { content: "\e007"; } } 51 | .glyphicon-user { &:before { content: "\e008"; } } 52 | .glyphicon-film { &:before { content: "\e009"; } } 53 | .glyphicon-th-large { &:before { content: "\e010"; } } 54 | .glyphicon-th { &:before { content: "\e011"; } } 55 | .glyphicon-th-list { &:before { content: "\e012"; } } 56 | .glyphicon-ok { &:before { content: "\e013"; } } 57 | .glyphicon-remove { &:before { content: "\e014"; } } 58 | .glyphicon-zoom-in { &:before { content: "\e015"; } } 59 | .glyphicon-zoom-out { &:before { content: "\e016"; } } 60 | .glyphicon-off { &:before { content: "\e017"; } } 61 | .glyphicon-signal { &:before { content: "\e018"; } } 62 | .glyphicon-cog { &:before { content: "\e019"; } } 63 | .glyphicon-trash { &:before { content: "\e020"; } } 64 | .glyphicon-home { &:before { content: "\e021"; } } 65 | .glyphicon-file { &:before { content: "\e022"; } } 66 | .glyphicon-time { &:before { content: "\e023"; } } 67 | .glyphicon-road { &:before { content: "\e024"; } } 68 | .glyphicon-download-alt { &:before { content: "\e025"; } } 69 | .glyphicon-download { &:before { content: "\e026"; } } 70 | .glyphicon-upload { &:before { content: "\e027"; } } 71 | .glyphicon-inbox { &:before { content: "\e028"; } } 72 | .glyphicon-play-circle { &:before { content: "\e029"; } } 73 | .glyphicon-repeat { &:before { content: "\e030"; } } 74 | .glyphicon-refresh { &:before { content: "\e031"; } } 75 | .glyphicon-list-alt { &:before { content: "\e032"; } } 76 | .glyphicon-lock { &:before { content: "\e033"; } } 77 | .glyphicon-flag { &:before { content: "\e034"; } } 78 | .glyphicon-headphones { &:before { content: "\e035"; } } 79 | .glyphicon-volume-off { &:before { content: "\e036"; } } 80 | .glyphicon-volume-down { &:before { content: "\e037"; } } 81 | .glyphicon-volume-up { &:before { content: "\e038"; } } 82 | .glyphicon-qrcode { &:before { content: "\e039"; } } 83 | .glyphicon-barcode { &:before { content: "\e040"; } } 84 | .glyphicon-tag { &:before { content: "\e041"; } } 85 | .glyphicon-tags { &:before { content: "\e042"; } } 86 | .glyphicon-book { &:before { content: "\e043"; } } 87 | .glyphicon-bookmark { &:before { content: "\e044"; } } 88 | .glyphicon-print { &:before { content: "\e045"; } } 89 | .glyphicon-camera { &:before { content: "\e046"; } } 90 | .glyphicon-font { &:before { content: "\e047"; } } 91 | .glyphicon-bold { &:before { content: "\e048"; } } 92 | .glyphicon-italic { &:before { content: "\e049"; } } 93 | .glyphicon-text-height { &:before { content: "\e050"; } } 94 | .glyphicon-text-width { &:before { content: "\e051"; } } 95 | .glyphicon-align-left { &:before { content: "\e052"; } } 96 | .glyphicon-align-center { &:before { content: "\e053"; } } 97 | .glyphicon-align-right { &:before { content: "\e054"; } } 98 | .glyphicon-align-justify { &:before { content: "\e055"; } } 99 | .glyphicon-list { &:before { content: "\e056"; } } 100 | .glyphicon-indent-left { &:before { content: "\e057"; } } 101 | .glyphicon-indent-right { &:before { content: "\e058"; } } 102 | .glyphicon-facetime-video { &:before { content: "\e059"; } } 103 | .glyphicon-picture { &:before { content: "\e060"; } } 104 | .glyphicon-map-marker { &:before { content: "\e062"; } } 105 | .glyphicon-adjust { &:before { content: "\e063"; } } 106 | .glyphicon-tint { &:before { content: "\e064"; } } 107 | .glyphicon-edit { &:before { content: "\e065"; } } 108 | .glyphicon-share { &:before { content: "\e066"; } } 109 | .glyphicon-check { &:before { content: "\e067"; } } 110 | .glyphicon-move { &:before { content: "\e068"; } } 111 | .glyphicon-step-backward { &:before { content: "\e069"; } } 112 | .glyphicon-fast-backward { &:before { content: "\e070"; } } 113 | .glyphicon-backward { &:before { content: "\e071"; } } 114 | .glyphicon-play { &:before { content: "\e072"; } } 115 | .glyphicon-pause { &:before { content: "\e073"; } } 116 | .glyphicon-stop { &:before { content: "\e074"; } } 117 | .glyphicon-forward { &:before { content: "\e075"; } } 118 | .glyphicon-fast-forward { &:before { content: "\e076"; } } 119 | .glyphicon-step-forward { &:before { content: "\e077"; } } 120 | .glyphicon-eject { &:before { content: "\e078"; } } 121 | .glyphicon-chevron-left { &:before { content: "\e079"; } } 122 | .glyphicon-chevron-right { &:before { content: "\e080"; } } 123 | .glyphicon-plus-sign { &:before { content: "\e081"; } } 124 | .glyphicon-minus-sign { &:before { content: "\e082"; } } 125 | .glyphicon-remove-sign { &:before { content: "\e083"; } } 126 | .glyphicon-ok-sign { &:before { content: "\e084"; } } 127 | .glyphicon-question-sign { &:before { content: "\e085"; } } 128 | .glyphicon-info-sign { &:before { content: "\e086"; } } 129 | .glyphicon-screenshot { &:before { content: "\e087"; } } 130 | .glyphicon-remove-circle { &:before { content: "\e088"; } } 131 | .glyphicon-ok-circle { &:before { content: "\e089"; } } 132 | .glyphicon-ban-circle { &:before { content: "\e090"; } } 133 | .glyphicon-arrow-left { &:before { content: "\e091"; } } 134 | .glyphicon-arrow-right { &:before { content: "\e092"; } } 135 | .glyphicon-arrow-up { &:before { content: "\e093"; } } 136 | .glyphicon-arrow-down { &:before { content: "\e094"; } } 137 | .glyphicon-share-alt { &:before { content: "\e095"; } } 138 | .glyphicon-resize-full { &:before { content: "\e096"; } } 139 | .glyphicon-resize-small { &:before { content: "\e097"; } } 140 | .glyphicon-exclamation-sign { &:before { content: "\e101"; } } 141 | .glyphicon-gift { &:before { content: "\e102"; } } 142 | .glyphicon-leaf { &:before { content: "\e103"; } } 143 | .glyphicon-fire { &:before { content: "\e104"; } } 144 | .glyphicon-eye-open { &:before { content: "\e105"; } } 145 | .glyphicon-eye-close { &:before { content: "\e106"; } } 146 | .glyphicon-warning-sign { &:before { content: "\e107"; } } 147 | .glyphicon-plane { &:before { content: "\e108"; } } 148 | .glyphicon-calendar { &:before { content: "\e109"; } } 149 | .glyphicon-random { &:before { content: "\e110"; } } 150 | .glyphicon-comment { &:before { content: "\e111"; } } 151 | .glyphicon-magnet { &:before { content: "\e112"; } } 152 | .glyphicon-chevron-up { &:before { content: "\e113"; } } 153 | .glyphicon-chevron-down { &:before { content: "\e114"; } } 154 | .glyphicon-retweet { &:before { content: "\e115"; } } 155 | .glyphicon-shopping-cart { &:before { content: "\e116"; } } 156 | .glyphicon-folder-close { &:before { content: "\e117"; } } 157 | .glyphicon-folder-open { &:before { content: "\e118"; } } 158 | .glyphicon-resize-vertical { &:before { content: "\e119"; } } 159 | .glyphicon-resize-horizontal { &:before { content: "\e120"; } } 160 | .glyphicon-hdd { &:before { content: "\e121"; } } 161 | .glyphicon-bullhorn { &:before { content: "\e122"; } } 162 | .glyphicon-bell { &:before { content: "\e123"; } } 163 | .glyphicon-certificate { &:before { content: "\e124"; } } 164 | .glyphicon-thumbs-up { &:before { content: "\e125"; } } 165 | .glyphicon-thumbs-down { &:before { content: "\e126"; } } 166 | .glyphicon-hand-right { &:before { content: "\e127"; } } 167 | .glyphicon-hand-left { &:before { content: "\e128"; } } 168 | .glyphicon-hand-up { &:before { content: "\e129"; } } 169 | .glyphicon-hand-down { &:before { content: "\e130"; } } 170 | .glyphicon-circle-arrow-right { &:before { content: "\e131"; } } 171 | .glyphicon-circle-arrow-left { &:before { content: "\e132"; } } 172 | .glyphicon-circle-arrow-up { &:before { content: "\e133"; } } 173 | .glyphicon-circle-arrow-down { &:before { content: "\e134"; } } 174 | .glyphicon-globe { &:before { content: "\e135"; } } 175 | .glyphicon-wrench { &:before { content: "\e136"; } } 176 | .glyphicon-tasks { &:before { content: "\e137"; } } 177 | .glyphicon-filter { &:before { content: "\e138"; } } 178 | .glyphicon-briefcase { &:before { content: "\e139"; } } 179 | .glyphicon-fullscreen { &:before { content: "\e140"; } } 180 | .glyphicon-dashboard { &:before { content: "\e141"; } } 181 | .glyphicon-paperclip { &:before { content: "\e142"; } } 182 | .glyphicon-heart-empty { &:before { content: "\e143"; } } 183 | .glyphicon-link { &:before { content: "\e144"; } } 184 | .glyphicon-phone { &:before { content: "\e145"; } } 185 | .glyphicon-pushpin { &:before { content: "\e146"; } } 186 | .glyphicon-usd { &:before { content: "\e148"; } } 187 | .glyphicon-gbp { &:before { content: "\e149"; } } 188 | .glyphicon-sort { &:before { content: "\e150"; } } 189 | .glyphicon-sort-by-alphabet { &:before { content: "\e151"; } } 190 | .glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } } 191 | .glyphicon-sort-by-order { &:before { content: "\e153"; } } 192 | .glyphicon-sort-by-order-alt { &:before { content: "\e154"; } } 193 | .glyphicon-sort-by-attributes { &:before { content: "\e155"; } } 194 | .glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } } 195 | .glyphicon-unchecked { &:before { content: "\e157"; } } 196 | .glyphicon-expand { &:before { content: "\e158"; } } 197 | .glyphicon-collapse-down { &:before { content: "\e159"; } } 198 | .glyphicon-collapse-up { &:before { content: "\e160"; } } 199 | .glyphicon-log-in { &:before { content: "\e161"; } } 200 | .glyphicon-flash { &:before { content: "\e162"; } } 201 | .glyphicon-log-out { &:before { content: "\e163"; } } 202 | .glyphicon-new-window { &:before { content: "\e164"; } } 203 | .glyphicon-record { &:before { content: "\e165"; } } 204 | .glyphicon-save { &:before { content: "\e166"; } } 205 | .glyphicon-open { &:before { content: "\e167"; } } 206 | .glyphicon-saved { &:before { content: "\e168"; } } 207 | .glyphicon-import { &:before { content: "\e169"; } } 208 | .glyphicon-export { &:before { content: "\e170"; } } 209 | .glyphicon-send { &:before { content: "\e171"; } } 210 | .glyphicon-floppy-disk { &:before { content: "\e172"; } } 211 | .glyphicon-floppy-saved { &:before { content: "\e173"; } } 212 | .glyphicon-floppy-remove { &:before { content: "\e174"; } } 213 | .glyphicon-floppy-save { &:before { content: "\e175"; } } 214 | .glyphicon-floppy-open { &:before { content: "\e176"; } } 215 | .glyphicon-credit-card { &:before { content: "\e177"; } } 216 | .glyphicon-transfer { &:before { content: "\e178"; } } 217 | .glyphicon-cutlery { &:before { content: "\e179"; } } 218 | .glyphicon-header { &:before { content: "\e180"; } } 219 | .glyphicon-compressed { &:before { content: "\e181"; } } 220 | .glyphicon-earphone { &:before { content: "\e182"; } } 221 | .glyphicon-phone-alt { &:before { content: "\e183"; } } 222 | .glyphicon-tower { &:before { content: "\e184"; } } 223 | .glyphicon-stats { &:before { content: "\e185"; } } 224 | .glyphicon-sd-video { &:before { content: "\e186"; } } 225 | .glyphicon-hd-video { &:before { content: "\e187"; } } 226 | .glyphicon-subtitles { &:before { content: "\e188"; } } 227 | .glyphicon-sound-stereo { &:before { content: "\e189"; } } 228 | .glyphicon-sound-dolby { &:before { content: "\e190"; } } 229 | .glyphicon-sound-5-1 { &:before { content: "\e191"; } } 230 | .glyphicon-sound-6-1 { &:before { content: "\e192"; } } 231 | .glyphicon-sound-7-1 { &:before { content: "\e193"; } } 232 | .glyphicon-copyright-mark { &:before { content: "\e194"; } } 233 | .glyphicon-registration-mark { &:before { content: "\e195"; } } 234 | .glyphicon-cloud-download { &:before { content: "\e197"; } } 235 | .glyphicon-cloud-upload { &:before { content: "\e198"; } } 236 | .glyphicon-tree-conifer { &:before { content: "\e199"; } } 237 | .glyphicon-tree-deciduous { &:before { content: "\e200"; } } 238 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_grid.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Grid system 3 | // -------------------------------------------------- 4 | 5 | 6 | // Container widths 7 | // 8 | // Set the container width, and override it for fixed navbars in media queries. 9 | 10 | .container { 11 | @include container-fixed(); 12 | 13 | @media (min-width: $screen-sm-min) { 14 | width: $container-sm; 15 | } 16 | @media (min-width: $screen-md-min) { 17 | width: $container-md; 18 | } 19 | @media (min-width: $screen-lg-min) { 20 | width: $container-lg; 21 | } 22 | } 23 | 24 | 25 | // Fluid container 26 | // 27 | // Utilizes the mixin meant for fixed width containers, but without any defined 28 | // width for fluid, full width layouts. 29 | 30 | .container-fluid { 31 | @include container-fixed(); 32 | } 33 | 34 | 35 | // Row 36 | // 37 | // Rows contain and clear the floats of your columns. 38 | 39 | .row { 40 | @include make-row(); 41 | } 42 | 43 | 44 | // Columns 45 | // 46 | // Common styles for small and large grid columns 47 | 48 | @include make-grid-columns(); 49 | 50 | 51 | // Extra small grid 52 | // 53 | // Columns, offsets, pushes, and pulls for extra small devices like 54 | // smartphones. 55 | 56 | @include make-grid(xs); 57 | 58 | 59 | // Small grid 60 | // 61 | // Columns, offsets, pushes, and pulls for the small device range, from phones 62 | // to tablets. 63 | 64 | @media (min-width: $screen-sm-min) { 65 | @include make-grid(sm); 66 | } 67 | 68 | 69 | // Medium grid 70 | // 71 | // Columns, offsets, pushes, and pulls for the desktop device range. 72 | 73 | @media (min-width: $screen-md-min) { 74 | @include make-grid(md); 75 | } 76 | 77 | 78 | // Large grid 79 | // 80 | // Columns, offsets, pushes, and pulls for the large desktop device range. 81 | 82 | @media (min-width: $screen-lg-min) { 83 | @include make-grid(lg); 84 | } 85 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_input-groups.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Input groups 3 | // -------------------------------------------------- 4 | 5 | // Base styles 6 | // ------------------------- 7 | .input-group { 8 | position: relative; // For dropdowns 9 | display: table; 10 | border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table 11 | 12 | // Undo padding and float of grid classes 13 | &[class*="col-"] { 14 | float: none; 15 | padding-left: 0; 16 | padding-right: 0; 17 | } 18 | 19 | .form-control { 20 | // Ensure that the input is always above the *appended* addon button for 21 | // proper border colors. 22 | position: relative; 23 | z-index: 2; 24 | 25 | // IE9 fubars the placeholder attribute in text inputs and the arrows on 26 | // select elements in input groups. To fix it, we float the input. Details: 27 | // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855 28 | float: left; 29 | 30 | width: 100%; 31 | margin-bottom: 0; 32 | } 33 | } 34 | 35 | // Sizing options 36 | // 37 | // Remix the default form control sizing classes into new ones for easier 38 | // manipulation. 39 | 40 | .input-group-lg > .form-control, 41 | .input-group-lg > .input-group-addon, 42 | .input-group-lg > .input-group-btn > .btn { 43 | @extend .input-lg; 44 | } 45 | .input-group-sm > .form-control, 46 | .input-group-sm > .input-group-addon, 47 | .input-group-sm > .input-group-btn > .btn { 48 | @extend .input-sm; 49 | } 50 | 51 | 52 | // Display as table-cell 53 | // ------------------------- 54 | .input-group-addon, 55 | .input-group-btn, 56 | .input-group .form-control { 57 | display: table-cell; 58 | 59 | &:not(:first-child):not(:last-child) { 60 | border-radius: 0; 61 | } 62 | } 63 | // Addon and addon wrapper for buttons 64 | .input-group-addon, 65 | .input-group-btn { 66 | width: 1%; 67 | white-space: nowrap; 68 | vertical-align: middle; // Match the inputs 69 | } 70 | 71 | // Text input groups 72 | // ------------------------- 73 | .input-group-addon { 74 | padding: $padding-base-vertical $padding-base-horizontal; 75 | font-size: $font-size-base; 76 | font-weight: normal; 77 | line-height: 1; 78 | color: $input-color; 79 | text-align: center; 80 | background-color: $input-group-addon-bg; 81 | border: 1px solid $input-group-addon-border-color; 82 | border-radius: $border-radius-base; 83 | 84 | // Sizing 85 | &.input-sm { 86 | padding: $padding-small-vertical $padding-small-horizontal; 87 | font-size: $font-size-small; 88 | border-radius: $border-radius-small; 89 | } 90 | &.input-lg { 91 | padding: $padding-large-vertical $padding-large-horizontal; 92 | font-size: $font-size-large; 93 | border-radius: $border-radius-large; 94 | } 95 | 96 | // Nuke default margins from checkboxes and radios to vertically center within. 97 | input[type="radio"], 98 | input[type="checkbox"] { 99 | margin-top: 0; 100 | } 101 | } 102 | 103 | // Reset rounded corners 104 | .input-group .form-control:first-child, 105 | .input-group-addon:first-child, 106 | .input-group-btn:first-child > .btn, 107 | .input-group-btn:first-child > .btn-group > .btn, 108 | .input-group-btn:first-child > .dropdown-toggle, 109 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), 110 | .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { 111 | @include border-right-radius(0); 112 | } 113 | .input-group-addon:first-child { 114 | border-right: 0; 115 | } 116 | .input-group .form-control:last-child, 117 | .input-group-addon:last-child, 118 | .input-group-btn:last-child > .btn, 119 | .input-group-btn:last-child > .btn-group > .btn, 120 | .input-group-btn:last-child > .dropdown-toggle, 121 | .input-group-btn:first-child > .btn:not(:first-child), 122 | .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { 123 | @include border-left-radius(0); 124 | } 125 | .input-group-addon:last-child { 126 | border-left: 0; 127 | } 128 | 129 | // Button input groups 130 | // ------------------------- 131 | .input-group-btn { 132 | position: relative; 133 | // Jankily prevent input button groups from wrapping with `white-space` and 134 | // `font-size` in combination with `inline-block` on buttons. 135 | font-size: 0; 136 | white-space: nowrap; 137 | 138 | // Negative margin for spacing, position for bringing hovered/focused/actived 139 | // element above the siblings. 140 | > .btn { 141 | position: relative; 142 | + .btn { 143 | margin-left: -1px; 144 | } 145 | // Bring the "active" button to the front 146 | &:hover, 147 | &:focus, 148 | &:active { 149 | z-index: 2; 150 | } 151 | } 152 | 153 | // Negative margin to only have a 1px border between the two 154 | &:first-child { 155 | > .btn, 156 | > .btn-group { 157 | margin-right: -1px; 158 | } 159 | } 160 | &:last-child { 161 | > .btn, 162 | > .btn-group { 163 | margin-left: -1px; 164 | } 165 | } 166 | } 167 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: $jumbotron-padding; 8 | margin-bottom: $jumbotron-padding; 9 | color: $jumbotron-color; 10 | background-color: $jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: $jumbotron-heading-color; 15 | } 16 | p { 17 | margin-bottom: ($jumbotron-padding / 2); 18 | font-size: $jumbotron-font-size; 19 | font-weight: 200; 20 | } 21 | 22 | > hr { 23 | border-top-color: darken($jumbotron-bg, 10%); 24 | } 25 | 26 | .container & { 27 | border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container 28 | } 29 | 30 | .container { 31 | max-width: 100%; 32 | } 33 | 34 | @media screen and (min-width: $screen-sm-min) { 35 | padding-top: ($jumbotron-padding * 1.6); 36 | padding-bottom: ($jumbotron-padding * 1.6); 37 | 38 | .container & { 39 | padding-left: ($jumbotron-padding * 2); 40 | padding-right: ($jumbotron-padding * 2); 41 | } 42 | 43 | h1, 44 | .h1 { 45 | font-size: ($font-size-base * 4.5); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_labels.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: $label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // [converter] extracted a& to a.label 18 | 19 | // Empty labels collapse automatically (not available in IE8) 20 | &:empty { 21 | display: none; 22 | } 23 | 24 | // Quick fix for labels in buttons 25 | .btn & { 26 | position: relative; 27 | top: -1px; 28 | } 29 | } 30 | 31 | // Add hover effects, but only for links 32 | a.label { 33 | &:hover, 34 | &:focus { 35 | color: $label-link-hover-color; 36 | text-decoration: none; 37 | cursor: pointer; 38 | } 39 | } 40 | 41 | // Colors 42 | // Contextual variations (linked labels get darker on :hover) 43 | 44 | .label-default { 45 | @include label-variant($label-default-bg); 46 | } 47 | 48 | .label-primary { 49 | @include label-variant($label-primary-bg); 50 | } 51 | 52 | .label-success { 53 | @include label-variant($label-success-bg); 54 | } 55 | 56 | .label-info { 57 | @include label-variant($label-info-bg); 58 | } 59 | 60 | .label-warning { 61 | @include label-variant($label-warning-bg); 62 | } 63 | 64 | .label-danger { 65 | @include label-variant($label-danger-bg); 66 | } 67 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_list-group.scss: -------------------------------------------------------------------------------- 1 | // 2 | // List groups 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | // 8 | // Easily usable on
    ,
      , or
      . 9 | 10 | .list-group { 11 | // No need to set list-style: none; since .list-group-item is block level 12 | margin-bottom: 20px; 13 | padding-left: 0; // reset padding because ul and ol 14 | } 15 | 16 | 17 | // Individual list items 18 | // 19 | // Use on `li`s or `div`s within the `.list-group` parent. 20 | 21 | .list-group-item { 22 | position: relative; 23 | display: block; 24 | padding: 10px 15px; 25 | // Place the border on the list items and negative margin up for better styling 26 | margin-bottom: -1px; 27 | background-color: $list-group-bg; 28 | border: 1px solid $list-group-border; 29 | 30 | // Round the first and last items 31 | &:first-child { 32 | @include border-top-radius($list-group-border-radius); 33 | } 34 | &:last-child { 35 | margin-bottom: 0; 36 | @include border-bottom-radius($list-group-border-radius); 37 | } 38 | 39 | // Align badges within list items 40 | > .badge { 41 | float: right; 42 | } 43 | > .badge + .badge { 44 | margin-right: 5px; 45 | } 46 | } 47 | 48 | 49 | // Linked list items 50 | // 51 | // Use anchor elements instead of `li`s or `div`s to create linked list items. 52 | // Includes an extra `.active` modifier class for showing selected items. 53 | 54 | a.list-group-item { 55 | color: $list-group-link-color; 56 | 57 | .list-group-item-heading { 58 | color: $list-group-link-heading-color; 59 | } 60 | 61 | // Hover state 62 | &:hover, 63 | &:focus { 64 | text-decoration: none; 65 | color: $list-group-link-hover-color; 66 | background-color: $list-group-hover-bg; 67 | } 68 | } 69 | 70 | .list-group-item { 71 | // Disabled state 72 | &.disabled, 73 | &.disabled:hover, 74 | &.disabled:focus { 75 | background-color: $list-group-disabled-bg; 76 | color: $list-group-disabled-color; 77 | cursor: not-allowed; 78 | 79 | // Force color to inherit for custom content 80 | .list-group-item-heading { 81 | color: inherit; 82 | } 83 | .list-group-item-text { 84 | color: $list-group-disabled-text-color; 85 | } 86 | } 87 | 88 | // Active class on item itself, not parent 89 | &.active, 90 | &.active:hover, 91 | &.active:focus { 92 | z-index: 2; // Place active items above their siblings for proper border styling 93 | color: $list-group-active-color; 94 | background-color: $list-group-active-bg; 95 | border-color: $list-group-active-border; 96 | 97 | // Force color to inherit for custom content 98 | .list-group-item-heading, 99 | .list-group-item-heading > small, 100 | .list-group-item-heading > .small { 101 | color: inherit; 102 | } 103 | .list-group-item-text { 104 | color: $list-group-active-text-color; 105 | } 106 | } 107 | } 108 | 109 | 110 | // Contextual variants 111 | // 112 | // Add modifier classes to change text and background color on individual items. 113 | // Organizationally, this must come after the `:hover` states. 114 | 115 | @include list-group-item-variant(success, $state-success-bg, $state-success-text); 116 | @include list-group-item-variant(info, $state-info-bg, $state-info-text); 117 | @include list-group-item-variant(warning, $state-warning-bg, $state-warning-text); 118 | @include list-group-item-variant(danger, $state-danger-bg, $state-danger-text); 119 | 120 | 121 | // Custom content options 122 | // 123 | // Extra classes for creating well-formatted content within `.list-group-item`s. 124 | 125 | .list-group-item-heading { 126 | margin-top: 0; 127 | margin-bottom: 5px; 128 | } 129 | .list-group-item-text { 130 | margin-bottom: 0; 131 | line-height: 1.3; 132 | } 133 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_media.scss: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | zoom: 1; 14 | } 15 | 16 | // Proper spacing between instances of .media 17 | .media, 18 | .media .media { 19 | margin-top: 15px; 20 | } 21 | .media:first-child { 22 | margin-top: 0; 23 | } 24 | 25 | // For images and videos, set to block 26 | .media-object { 27 | display: block; 28 | } 29 | 30 | // Reset margins on headings for tighter default spacing 31 | .media-heading { 32 | margin: 0 0 5px; 33 | } 34 | 35 | 36 | // Media image alignment 37 | // ------------------------- 38 | 39 | .media { 40 | > .pull-left { 41 | margin-right: 10px; 42 | } 43 | > .pull-right { 44 | margin-left: 10px; 45 | } 46 | } 47 | 48 | 49 | // Media list variation 50 | // ------------------------- 51 | 52 | // Undo default ul/ol styles 53 | .media-list { 54 | padding-left: 0; 55 | list-style: none; 56 | } 57 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text"; 6 | @import "mixins/opacity"; 7 | @import "mixins/image"; 8 | @import "mixins/labels"; 9 | @import "mixins/reset-filter"; 10 | @import "mixins/resize"; 11 | @import "mixins/responsive-visibility"; 12 | @import "mixins/size"; 13 | @import "mixins/tab-focus"; 14 | @import "mixins/text-emphasis"; 15 | @import "mixins/text-overflow"; 16 | @import "mixins/vendor-prefixes"; 17 | 18 | // Components 19 | @import "mixins/alerts"; 20 | @import "mixins/buttons"; 21 | @import "mixins/panels"; 22 | @import "mixins/pagination"; 23 | @import "mixins/list-group"; 24 | @import "mixins/nav-divider"; 25 | @import "mixins/forms"; 26 | @import "mixins/progress-bar"; 27 | @import "mixins/table-row"; 28 | 29 | // Skins 30 | @import "mixins/background-variant"; 31 | @import "mixins/border-radius"; 32 | @import "mixins/gradients"; 33 | 34 | // Layout 35 | @import "mixins/clearfix"; 36 | @import "mixins/center-block"; 37 | @import "mixins/nav-vertical-align"; 38 | @import "mixins/grid-framework"; 39 | @import "mixins/grid"; 40 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_modals.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Modals 3 | // -------------------------------------------------- 4 | 5 | // .modal-open - body class for killing the scroll 6 | // .modal - container to scroll within 7 | // .modal-dialog - positioning shell for the actual modal 8 | // .modal-content - actual modal w/ bg and corners and shit 9 | 10 | // Kill the scroll on the body 11 | .modal-open { 12 | overflow: hidden; 13 | } 14 | 15 | // Container that the modal scrolls within 16 | .modal { 17 | display: none; 18 | overflow: hidden; 19 | position: fixed; 20 | top: 0; 21 | right: 0; 22 | bottom: 0; 23 | left: 0; 24 | z-index: $zindex-modal; 25 | -webkit-overflow-scrolling: touch; 26 | 27 | // Prevent Chrome on Windows from adding a focus outline. For details, see 28 | // https://github.com/twbs/bootstrap/pull/10951. 29 | outline: 0; 30 | 31 | // When fading in the modal, animate it to slide down 32 | &.fade .modal-dialog { 33 | @include translate3d(0, -25%, 0); 34 | @include transition-transform(0.3s ease-out); 35 | } 36 | &.in .modal-dialog { @include translate3d(0, 0, 0) } 37 | } 38 | .modal-open .modal { 39 | overflow-x: hidden; 40 | overflow-y: auto; 41 | } 42 | 43 | // Shell div to position the modal with bottom padding 44 | .modal-dialog { 45 | position: relative; 46 | width: auto; 47 | margin: 10px; 48 | } 49 | 50 | // Actual modal 51 | .modal-content { 52 | position: relative; 53 | background-color: $modal-content-bg; 54 | border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc) 55 | border: 1px solid $modal-content-border-color; 56 | border-radius: $border-radius-large; 57 | @include box-shadow(0 3px 9px rgba(0,0,0,.5)); 58 | background-clip: padding-box; 59 | // Remove focus outline from opened modal 60 | outline: 0; 61 | } 62 | 63 | // Modal background 64 | .modal-backdrop { 65 | position: fixed; 66 | top: 0; 67 | right: 0; 68 | bottom: 0; 69 | left: 0; 70 | z-index: $zindex-modal-background; 71 | background-color: $modal-backdrop-bg; 72 | // Fade for backdrop 73 | &.fade { @include opacity(0); } 74 | &.in { @include opacity($modal-backdrop-opacity); } 75 | } 76 | 77 | // Modal header 78 | // Top section of the modal w/ title and dismiss 79 | .modal-header { 80 | padding: $modal-title-padding; 81 | border-bottom: 1px solid $modal-header-border-color; 82 | min-height: ($modal-title-padding + $modal-title-line-height); 83 | } 84 | // Close icon 85 | .modal-header .close { 86 | margin-top: -2px; 87 | } 88 | 89 | // Title text within header 90 | .modal-title { 91 | margin: 0; 92 | line-height: $modal-title-line-height; 93 | } 94 | 95 | // Modal body 96 | // Where all modal content resides (sibling of .modal-header and .modal-footer) 97 | .modal-body { 98 | position: relative; 99 | padding: $modal-inner-padding; 100 | } 101 | 102 | // Footer (for actions) 103 | .modal-footer { 104 | padding: $modal-inner-padding; 105 | text-align: right; // right align buttons 106 | border-top: 1px solid $modal-footer-border-color; 107 | @include clearfix(); // clear it in case folks use .pull-* classes on buttons 108 | 109 | // Properly space out buttons 110 | .btn + .btn { 111 | margin-left: 5px; 112 | margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs 113 | } 114 | // but override that for button groups 115 | .btn-group .btn + .btn { 116 | margin-left: -1px; 117 | } 118 | // and override it for block buttons as well 119 | .btn-block + .btn-block { 120 | margin-left: 0; 121 | } 122 | } 123 | 124 | // Measure scrollbar width for padding body during modal show/hide 125 | .modal-scrollbar-measure { 126 | position: absolute; 127 | top: -9999px; 128 | width: 50px; 129 | height: 50px; 130 | overflow: scroll; 131 | } 132 | 133 | // Scale up the modal 134 | @media (min-width: $screen-sm-min) { 135 | // Automatically set modal's width for larger viewports 136 | .modal-dialog { 137 | width: $modal-md; 138 | margin: 30px auto; 139 | } 140 | .modal-content { 141 | @include box-shadow(0 5px 15px rgba(0,0,0,.5)); 142 | } 143 | 144 | // Modal sizes 145 | .modal-sm { width: $modal-sm; } 146 | } 147 | 148 | @media (min-width: $screen-md-min) { 149 | .modal-lg { width: $modal-lg; } 150 | } 151 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_navs.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Navs 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | // -------------------------------------------------- 8 | 9 | .nav { 10 | margin-bottom: 0; 11 | padding-left: 0; // Override default ul/ol 12 | list-style: none; 13 | @include clearfix(); 14 | 15 | > li { 16 | position: relative; 17 | display: block; 18 | 19 | > a { 20 | position: relative; 21 | display: block; 22 | padding: $nav-link-padding; 23 | &:hover, 24 | &:focus { 25 | text-decoration: none; 26 | background-color: $nav-link-hover-bg; 27 | } 28 | } 29 | 30 | // Disabled state sets text to gray and nukes hover/tab effects 31 | &.disabled > a { 32 | color: $nav-disabled-link-color; 33 | 34 | &:hover, 35 | &:focus { 36 | color: $nav-disabled-link-hover-color; 37 | text-decoration: none; 38 | background-color: transparent; 39 | cursor: not-allowed; 40 | } 41 | } 42 | } 43 | 44 | // Open dropdowns 45 | .open > a { 46 | &, 47 | &:hover, 48 | &:focus { 49 | background-color: $nav-link-hover-bg; 50 | border-color: $link-color; 51 | } 52 | } 53 | 54 | // Nav dividers (deprecated with v3.0.1) 55 | // 56 | // This should have been removed in v3 with the dropping of `.nav-list`, but 57 | // we missed it. We don't currently support this anywhere, but in the interest 58 | // of maintaining backward compatibility in case you use it, it's deprecated. 59 | .nav-divider { 60 | @include nav-divider(); 61 | } 62 | 63 | // Prevent IE8 from misplacing imgs 64 | // 65 | // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 66 | > li > a > img { 67 | max-width: none; 68 | } 69 | } 70 | 71 | 72 | // Tabs 73 | // ------------------------- 74 | 75 | // Give the tabs something to sit on 76 | .nav-tabs { 77 | border-bottom: 1px solid $nav-tabs-border-color; 78 | > li { 79 | float: left; 80 | // Make the list-items overlay the bottom border 81 | margin-bottom: -1px; 82 | 83 | // Actual tabs (as links) 84 | > a { 85 | margin-right: 2px; 86 | line-height: $line-height-base; 87 | border: 1px solid transparent; 88 | border-radius: $border-radius-base $border-radius-base 0 0; 89 | &:hover { 90 | border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color; 91 | } 92 | } 93 | 94 | // Active state, and its :hover to override normal :hover 95 | &.active > a { 96 | &, 97 | &:hover, 98 | &:focus { 99 | color: $nav-tabs-active-link-hover-color; 100 | background-color: $nav-tabs-active-link-hover-bg; 101 | border: 1px solid $nav-tabs-active-link-hover-border-color; 102 | border-bottom-color: transparent; 103 | cursor: default; 104 | } 105 | } 106 | } 107 | // pulling this in mainly for less shorthand 108 | &.nav-justified { 109 | @extend .nav-justified; 110 | @extend .nav-tabs-justified; 111 | } 112 | } 113 | 114 | 115 | // Pills 116 | // ------------------------- 117 | .nav-pills { 118 | > li { 119 | float: left; 120 | 121 | // Links rendered as pills 122 | > a { 123 | border-radius: $nav-pills-border-radius; 124 | } 125 | + li { 126 | margin-left: 2px; 127 | } 128 | 129 | // Active state 130 | &.active > a { 131 | &, 132 | &:hover, 133 | &:focus { 134 | color: $nav-pills-active-link-hover-color; 135 | background-color: $nav-pills-active-link-hover-bg; 136 | } 137 | } 138 | } 139 | } 140 | 141 | 142 | // Stacked pills 143 | .nav-stacked { 144 | > li { 145 | float: none; 146 | + li { 147 | margin-top: 2px; 148 | margin-left: 0; // no need for this gap between nav items 149 | } 150 | } 151 | } 152 | 153 | 154 | // Nav variations 155 | // -------------------------------------------------- 156 | 157 | // Justified nav links 158 | // ------------------------- 159 | 160 | .nav-justified { 161 | width: 100%; 162 | 163 | > li { 164 | float: none; 165 | > a { 166 | text-align: center; 167 | margin-bottom: 5px; 168 | } 169 | } 170 | 171 | > .dropdown .dropdown-menu { 172 | top: auto; 173 | left: auto; 174 | } 175 | 176 | @media (min-width: $screen-sm-min) { 177 | > li { 178 | display: table-cell; 179 | width: 1%; 180 | > a { 181 | margin-bottom: 0; 182 | } 183 | } 184 | } 185 | } 186 | 187 | // Move borders to anchors instead of bottom of list 188 | // 189 | // Mixin for adding on top the shared `.nav-justified` styles for our tabs 190 | .nav-tabs-justified { 191 | border-bottom: 0; 192 | 193 | > li > a { 194 | // Override margin from .nav-tabs 195 | margin-right: 0; 196 | border-radius: $border-radius-base; 197 | } 198 | 199 | > .active > a, 200 | > .active > a:hover, 201 | > .active > a:focus { 202 | border: 1px solid $nav-tabs-justified-link-border-color; 203 | } 204 | 205 | @media (min-width: $screen-sm-min) { 206 | > li > a { 207 | border-bottom: 1px solid $nav-tabs-justified-link-border-color; 208 | border-radius: $border-radius-base $border-radius-base 0 0; 209 | } 210 | > .active > a, 211 | > .active > a:hover, 212 | > .active > a:focus { 213 | border-bottom-color: $nav-tabs-justified-active-link-border-color; 214 | } 215 | } 216 | } 217 | 218 | 219 | // Tabbable tabs 220 | // ------------------------- 221 | 222 | // Hide tabbable panes to start, show them when `.active` 223 | .tab-content { 224 | > .tab-pane { 225 | display: none; 226 | } 227 | > .active { 228 | display: block; 229 | } 230 | } 231 | 232 | 233 | // Dropdowns 234 | // ------------------------- 235 | 236 | // Specific dropdowns 237 | .nav-tabs .dropdown-menu { 238 | // make dropdown border overlap tab border 239 | margin-top: -1px; 240 | // Remove the top rounded corners here since there is a hard edge above the menu 241 | @include border-top-radius(0); 242 | } 243 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_normalize.scss: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.1 | MIT License | git.io/normalize */ 2 | 3 | // 4 | // 1. Set default font family to sans-serif. 5 | // 2. Prevent iOS text size adjust after orientation change, without disabling 6 | // user zoom. 7 | // 8 | 9 | html { 10 | font-family: sans-serif; // 1 11 | -ms-text-size-adjust: 100%; // 2 12 | -webkit-text-size-adjust: 100%; // 2 13 | } 14 | 15 | // 16 | // Remove default margin. 17 | // 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | // HTML5 display definitions 24 | // ========================================================================== 25 | 26 | // 27 | // Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | // Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. 29 | // Correct `block` display not defined for `main` in IE 11. 30 | // 31 | 32 | article, 33 | aside, 34 | details, 35 | figcaption, 36 | figure, 37 | footer, 38 | header, 39 | hgroup, 40 | main, 41 | nav, 42 | section, 43 | summary { 44 | display: block; 45 | } 46 | 47 | // 48 | // 1. Correct `inline-block` display not defined in IE 8/9. 49 | // 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 50 | // 51 | 52 | audio, 53 | canvas, 54 | progress, 55 | video { 56 | display: inline-block; // 1 57 | vertical-align: baseline; // 2 58 | } 59 | 60 | // 61 | // Prevent modern browsers from displaying `audio` without controls. 62 | // Remove excess height in iOS 5 devices. 63 | // 64 | 65 | audio:not([controls]) { 66 | display: none; 67 | height: 0; 68 | } 69 | 70 | // 71 | // Address `[hidden]` styling not present in IE 8/9/10. 72 | // Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 73 | // 74 | 75 | [hidden], 76 | template { 77 | display: none; 78 | } 79 | 80 | // Links 81 | // ========================================================================== 82 | 83 | // 84 | // Remove the gray background color from active links in IE 10. 85 | // 86 | 87 | a { 88 | background: transparent; 89 | } 90 | 91 | // 92 | // Improve readability when focused and also mouse hovered in all browsers. 93 | // 94 | 95 | a:active, 96 | a:hover { 97 | outline: 0; 98 | } 99 | 100 | // Text-level semantics 101 | // ========================================================================== 102 | 103 | // 104 | // Address styling not present in IE 8/9/10/11, Safari, and Chrome. 105 | // 106 | 107 | abbr[title] { 108 | border-bottom: 1px dotted; 109 | } 110 | 111 | // 112 | // Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 113 | // 114 | 115 | b, 116 | strong { 117 | font-weight: bold; 118 | } 119 | 120 | // 121 | // Address styling not present in Safari and Chrome. 122 | // 123 | 124 | dfn { 125 | font-style: italic; 126 | } 127 | 128 | // 129 | // Address variable `h1` font-size and margin within `section` and `article` 130 | // contexts in Firefox 4+, Safari, and Chrome. 131 | // 132 | 133 | h1 { 134 | font-size: 2em; 135 | margin: 0.67em 0; 136 | } 137 | 138 | // 139 | // Address styling not present in IE 8/9. 140 | // 141 | 142 | mark { 143 | background: #ff0; 144 | color: #000; 145 | } 146 | 147 | // 148 | // Address inconsistent and variable font size in all browsers. 149 | // 150 | 151 | small { 152 | font-size: 80%; 153 | } 154 | 155 | // 156 | // Prevent `sub` and `sup` affecting `line-height` in all browsers. 157 | // 158 | 159 | sub, 160 | sup { 161 | font-size: 75%; 162 | line-height: 0; 163 | position: relative; 164 | vertical-align: baseline; 165 | } 166 | 167 | sup { 168 | top: -0.5em; 169 | } 170 | 171 | sub { 172 | bottom: -0.25em; 173 | } 174 | 175 | // Embedded content 176 | // ========================================================================== 177 | 178 | // 179 | // Remove border when inside `a` element in IE 8/9/10. 180 | // 181 | 182 | img { 183 | border: 0; 184 | } 185 | 186 | // 187 | // Correct overflow not hidden in IE 9/10/11. 188 | // 189 | 190 | svg:not(:root) { 191 | overflow: hidden; 192 | } 193 | 194 | // Grouping content 195 | // ========================================================================== 196 | 197 | // 198 | // Address margin not present in IE 8/9 and Safari. 199 | // 200 | 201 | figure { 202 | margin: 1em 40px; 203 | } 204 | 205 | // 206 | // Address differences between Firefox and other browsers. 207 | // 208 | 209 | hr { 210 | -moz-box-sizing: content-box; 211 | box-sizing: content-box; 212 | height: 0; 213 | } 214 | 215 | // 216 | // Contain overflow in all browsers. 217 | // 218 | 219 | pre { 220 | overflow: auto; 221 | } 222 | 223 | // 224 | // Address odd `em`-unit font size rendering in all browsers. 225 | // 226 | 227 | code, 228 | kbd, 229 | pre, 230 | samp { 231 | font-family: monospace, monospace; 232 | font-size: 1em; 233 | } 234 | 235 | // Forms 236 | // ========================================================================== 237 | 238 | // 239 | // Known limitation: by default, Chrome and Safari on OS X allow very limited 240 | // styling of `select`, unless a `border` property is set. 241 | // 242 | 243 | // 244 | // 1. Correct color not being inherited. 245 | // Known issue: affects color of disabled elements. 246 | // 2. Correct font properties not being inherited. 247 | // 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 248 | // 249 | 250 | button, 251 | input, 252 | optgroup, 253 | select, 254 | textarea { 255 | color: inherit; // 1 256 | font: inherit; // 2 257 | margin: 0; // 3 258 | } 259 | 260 | // 261 | // Address `overflow` set to `hidden` in IE 8/9/10/11. 262 | // 263 | 264 | button { 265 | overflow: visible; 266 | } 267 | 268 | // 269 | // Address inconsistent `text-transform` inheritance for `button` and `select`. 270 | // All other form control elements do not inherit `text-transform` values. 271 | // Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 272 | // Correct `select` style inheritance in Firefox. 273 | // 274 | 275 | button, 276 | select { 277 | text-transform: none; 278 | } 279 | 280 | // 281 | // 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 282 | // and `video` controls. 283 | // 2. Correct inability to style clickable `input` types in iOS. 284 | // 3. Improve usability and consistency of cursor style between image-type 285 | // `input` and others. 286 | // 287 | 288 | button, 289 | html input[type="button"], // 1 290 | input[type="reset"], 291 | input[type="submit"] { 292 | -webkit-appearance: button; // 2 293 | cursor: pointer; // 3 294 | } 295 | 296 | // 297 | // Re-set default cursor for disabled elements. 298 | // 299 | 300 | button[disabled], 301 | html input[disabled] { 302 | cursor: default; 303 | } 304 | 305 | // 306 | // Remove inner padding and border in Firefox 4+. 307 | // 308 | 309 | button::-moz-focus-inner, 310 | input::-moz-focus-inner { 311 | border: 0; 312 | padding: 0; 313 | } 314 | 315 | // 316 | // Address Firefox 4+ setting `line-height` on `input` using `!important` in 317 | // the UA stylesheet. 318 | // 319 | 320 | input { 321 | line-height: normal; 322 | } 323 | 324 | // 325 | // It's recommended that you don't attempt to style these elements. 326 | // Firefox's implementation doesn't respect box-sizing, padding, or width. 327 | // 328 | // 1. Address box sizing set to `content-box` in IE 8/9/10. 329 | // 2. Remove excess padding in IE 8/9/10. 330 | // 331 | 332 | input[type="checkbox"], 333 | input[type="radio"] { 334 | box-sizing: border-box; // 1 335 | padding: 0; // 2 336 | } 337 | 338 | // 339 | // Fix the cursor style for Chrome's increment/decrement buttons. For certain 340 | // `font-size` values of the `input`, it causes the cursor style of the 341 | // decrement button to change from `default` to `text`. 342 | // 343 | 344 | input[type="number"]::-webkit-inner-spin-button, 345 | input[type="number"]::-webkit-outer-spin-button { 346 | height: auto; 347 | } 348 | 349 | // 350 | // 1. Address `appearance` set to `searchfield` in Safari and Chrome. 351 | // 2. Address `box-sizing` set to `border-box` in Safari and Chrome 352 | // (include `-moz` to future-proof). 353 | // 354 | 355 | input[type="search"] { 356 | -webkit-appearance: textfield; // 1 357 | -moz-box-sizing: content-box; 358 | -webkit-box-sizing: content-box; // 2 359 | box-sizing: content-box; 360 | } 361 | 362 | // 363 | // Remove inner padding and search cancel button in Safari and Chrome on OS X. 364 | // Safari (but not Chrome) clips the cancel button when the search input has 365 | // padding (and `textfield` appearance). 366 | // 367 | 368 | input[type="search"]::-webkit-search-cancel-button, 369 | input[type="search"]::-webkit-search-decoration { 370 | -webkit-appearance: none; 371 | } 372 | 373 | // 374 | // Define consistent border, margin, and padding. 375 | // 376 | 377 | fieldset { 378 | border: 1px solid #c0c0c0; 379 | margin: 0 2px; 380 | padding: 0.35em 0.625em 0.75em; 381 | } 382 | 383 | // 384 | // 1. Correct `color` not being inherited in IE 8/9/10/11. 385 | // 2. Remove padding so people aren't caught out if they zero out fieldsets. 386 | // 387 | 388 | legend { 389 | border: 0; // 1 390 | padding: 0; // 2 391 | } 392 | 393 | // 394 | // Remove default vertical scrollbar in IE 8/9/10/11. 395 | // 396 | 397 | textarea { 398 | overflow: auto; 399 | } 400 | 401 | // 402 | // Don't inherit the `font-weight` (applied by a rule above). 403 | // NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 404 | // 405 | 406 | optgroup { 407 | font-weight: bold; 408 | } 409 | 410 | // Tables 411 | // ========================================================================== 412 | 413 | // 414 | // Remove most spacing between table cells. 415 | // 416 | 417 | table { 418 | border-collapse: collapse; 419 | border-spacing: 0; 420 | } 421 | 422 | td, 423 | th { 424 | padding: 0; 425 | } 426 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_pager.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: $line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | @include clearfix(); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: $pager-bg; 19 | border: 1px solid $pager-border; 20 | border-radius: $pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: $pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: $pager-disabled-color; 50 | background-color: $pager-bg; 51 | cursor: not-allowed; 52 | } 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_pagination.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Pagination (multiple pages) 3 | // -------------------------------------------------- 4 | .pagination { 5 | display: inline-block; 6 | padding-left: 0; 7 | margin: $line-height-computed 0; 8 | border-radius: $border-radius-base; 9 | 10 | > li { 11 | display: inline; // Remove list-style and block-level defaults 12 | > a, 13 | > span { 14 | position: relative; 15 | float: left; // Collapse white-space 16 | padding: $padding-base-vertical $padding-base-horizontal; 17 | line-height: $line-height-base; 18 | text-decoration: none; 19 | color: $pagination-color; 20 | background-color: $pagination-bg; 21 | border: 1px solid $pagination-border; 22 | margin-left: -1px; 23 | } 24 | &:first-child { 25 | > a, 26 | > span { 27 | margin-left: 0; 28 | @include border-left-radius($border-radius-base); 29 | } 30 | } 31 | &:last-child { 32 | > a, 33 | > span { 34 | @include border-right-radius($border-radius-base); 35 | } 36 | } 37 | } 38 | 39 | > li > a, 40 | > li > span { 41 | &:hover, 42 | &:focus { 43 | color: $pagination-hover-color; 44 | background-color: $pagination-hover-bg; 45 | border-color: $pagination-hover-border; 46 | } 47 | } 48 | 49 | > .active > a, 50 | > .active > span { 51 | &, 52 | &:hover, 53 | &:focus { 54 | z-index: 2; 55 | color: $pagination-active-color; 56 | background-color: $pagination-active-bg; 57 | border-color: $pagination-active-border; 58 | cursor: default; 59 | } 60 | } 61 | 62 | > .disabled { 63 | > span, 64 | > span:hover, 65 | > span:focus, 66 | > a, 67 | > a:hover, 68 | > a:focus { 69 | color: $pagination-disabled-color; 70 | background-color: $pagination-disabled-bg; 71 | border-color: $pagination-disabled-border; 72 | cursor: not-allowed; 73 | } 74 | } 75 | } 76 | 77 | // Sizing 78 | // -------------------------------------------------- 79 | 80 | // Large 81 | .pagination-lg { 82 | @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large); 83 | } 84 | 85 | // Small 86 | .pagination-sm { 87 | @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small); 88 | } 89 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_panels.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Panels 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .panel { 8 | margin-bottom: $line-height-computed; 9 | background-color: $panel-bg; 10 | border: 1px solid transparent; 11 | border-radius: $panel-border-radius; 12 | @include box-shadow(0 1px 1px rgba(0,0,0,.05)); 13 | } 14 | 15 | // Panel contents 16 | .panel-body { 17 | padding: $panel-body-padding; 18 | @include clearfix(); 19 | } 20 | 21 | // Optional heading 22 | .panel-heading { 23 | padding: $panel-heading-padding; 24 | border-bottom: 1px solid transparent; 25 | @include border-top-radius(($panel-border-radius - 1)); 26 | 27 | > .dropdown .dropdown-toggle { 28 | color: inherit; 29 | } 30 | } 31 | 32 | // Within heading, strip any `h*` tag of its default margins for spacing. 33 | .panel-title { 34 | margin-top: 0; 35 | margin-bottom: 0; 36 | font-size: ceil(($font-size-base * 1.125)); 37 | color: inherit; 38 | 39 | > a { 40 | color: inherit; 41 | } 42 | } 43 | 44 | // Optional footer (stays gray in every modifier class) 45 | .panel-footer { 46 | padding: $panel-footer-padding; 47 | background-color: $panel-footer-bg; 48 | border-top: 1px solid $panel-inner-border; 49 | @include border-bottom-radius(($panel-border-radius - 1)); 50 | } 51 | 52 | 53 | // List groups in panels 54 | // 55 | // By default, space out list group content from panel headings to account for 56 | // any kind of custom content between the two. 57 | 58 | .panel { 59 | > .list-group { 60 | margin-bottom: 0; 61 | 62 | .list-group-item { 63 | border-width: 1px 0; 64 | border-radius: 0; 65 | } 66 | 67 | // Add border top radius for first one 68 | &:first-child { 69 | .list-group-item:first-child { 70 | border-top: 0; 71 | @include border-top-radius(($panel-border-radius - 1)); 72 | } 73 | } 74 | // Add border bottom radius for last one 75 | &:last-child { 76 | .list-group-item:last-child { 77 | border-bottom: 0; 78 | @include border-bottom-radius(($panel-border-radius - 1)); 79 | } 80 | } 81 | } 82 | } 83 | // Collapse space between when there's no additional content. 84 | .panel-heading + .list-group { 85 | .list-group-item:first-child { 86 | border-top-width: 0; 87 | } 88 | } 89 | .list-group + .panel-footer { 90 | border-top-width: 0; 91 | } 92 | 93 | // Tables in panels 94 | // 95 | // Place a non-bordered `.table` within a panel (not within a `.panel-body`) and 96 | // watch it go full width. 97 | 98 | .panel { 99 | > .table, 100 | > .table-responsive > .table, 101 | > .panel-collapse > .table { 102 | margin-bottom: 0; 103 | } 104 | // Add border top radius for first one 105 | > .table:first-child, 106 | > .table-responsive:first-child > .table:first-child { 107 | @include border-top-radius(($panel-border-radius - 1)); 108 | 109 | > thead:first-child, 110 | > tbody:first-child { 111 | > tr:first-child { 112 | td:first-child, 113 | th:first-child { 114 | border-top-left-radius: ($panel-border-radius - 1); 115 | } 116 | td:last-child, 117 | th:last-child { 118 | border-top-right-radius: ($panel-border-radius - 1); 119 | } 120 | } 121 | } 122 | } 123 | // Add border bottom radius for last one 124 | > .table:last-child, 125 | > .table-responsive:last-child > .table:last-child { 126 | @include border-bottom-radius(($panel-border-radius - 1)); 127 | 128 | > tbody:last-child, 129 | > tfoot:last-child { 130 | > tr:last-child { 131 | td:first-child, 132 | th:first-child { 133 | border-bottom-left-radius: ($panel-border-radius - 1); 134 | } 135 | td:last-child, 136 | th:last-child { 137 | border-bottom-right-radius: ($panel-border-radius - 1); 138 | } 139 | } 140 | } 141 | } 142 | > .panel-body + .table, 143 | > .panel-body + .table-responsive { 144 | border-top: 1px solid $table-border-color; 145 | } 146 | > .table > tbody:first-child > tr:first-child th, 147 | > .table > tbody:first-child > tr:first-child td { 148 | border-top: 0; 149 | } 150 | > .table-bordered, 151 | > .table-responsive > .table-bordered { 152 | border: 0; 153 | > thead, 154 | > tbody, 155 | > tfoot { 156 | > tr { 157 | > th:first-child, 158 | > td:first-child { 159 | border-left: 0; 160 | } 161 | > th:last-child, 162 | > td:last-child { 163 | border-right: 0; 164 | } 165 | } 166 | } 167 | > thead, 168 | > tbody { 169 | > tr:first-child { 170 | > td, 171 | > th { 172 | border-bottom: 0; 173 | } 174 | } 175 | } 176 | > tbody, 177 | > tfoot { 178 | > tr:last-child { 179 | > td, 180 | > th { 181 | border-bottom: 0; 182 | } 183 | } 184 | } 185 | } 186 | > .table-responsive { 187 | border: 0; 188 | margin-bottom: 0; 189 | } 190 | } 191 | 192 | 193 | // Collapsable panels (aka, accordion) 194 | // 195 | // Wrap a series of panels in `.panel-group` to turn them into an accordion with 196 | // the help of our collapse JavaScript plugin. 197 | 198 | .panel-group { 199 | margin-bottom: $line-height-computed; 200 | 201 | // Tighten up margin so it's only between panels 202 | .panel { 203 | margin-bottom: 0; 204 | border-radius: $panel-border-radius; 205 | + .panel { 206 | margin-top: 5px; 207 | } 208 | } 209 | 210 | .panel-heading { 211 | border-bottom: 0; 212 | + .panel-collapse > .panel-body { 213 | border-top: 1px solid $panel-inner-border; 214 | } 215 | } 216 | .panel-footer { 217 | border-top: 0; 218 | + .panel-collapse .panel-body { 219 | border-bottom: 1px solid $panel-inner-border; 220 | } 221 | } 222 | } 223 | 224 | 225 | // Contextual variations 226 | .panel-default { 227 | @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border); 228 | } 229 | .panel-primary { 230 | @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border); 231 | } 232 | .panel-success { 233 | @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border); 234 | } 235 | .panel-info { 236 | @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border); 237 | } 238 | .panel-warning { 239 | @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border); 240 | } 241 | .panel-danger { 242 | @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border); 243 | } 244 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_popovers.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Popovers 3 | // -------------------------------------------------- 4 | 5 | 6 | .popover { 7 | position: absolute; 8 | top: 0; 9 | left: 0; 10 | z-index: $zindex-popover; 11 | display: none; 12 | max-width: $popover-max-width; 13 | padding: 1px; 14 | text-align: left; // Reset given new insertion method 15 | background-color: $popover-bg; 16 | background-clip: padding-box; 17 | border: 1px solid $popover-fallback-border-color; 18 | border: 1px solid $popover-border-color; 19 | border-radius: $border-radius-large; 20 | @include box-shadow(0 5px 10px rgba(0,0,0,.2)); 21 | 22 | // Overrides for proper insertion 23 | white-space: normal; 24 | 25 | // Offset the popover to account for the popover arrow 26 | &.top { margin-top: -$popover-arrow-width; } 27 | &.right { margin-left: $popover-arrow-width; } 28 | &.bottom { margin-top: $popover-arrow-width; } 29 | &.left { margin-left: -$popover-arrow-width; } 30 | } 31 | 32 | .popover-title { 33 | margin: 0; // reset heading margin 34 | padding: 8px 14px; 35 | font-size: $font-size-base; 36 | font-weight: normal; 37 | line-height: 18px; 38 | background-color: $popover-title-bg; 39 | border-bottom: 1px solid darken($popover-title-bg, 5%); 40 | border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0; 41 | } 42 | 43 | .popover-content { 44 | padding: 9px 14px; 45 | } 46 | 47 | // Arrows 48 | // 49 | // .arrow is outer, .arrow:after is inner 50 | 51 | .popover > .arrow { 52 | &, 53 | &:after { 54 | position: absolute; 55 | display: block; 56 | width: 0; 57 | height: 0; 58 | border-color: transparent; 59 | border-style: solid; 60 | } 61 | } 62 | .popover > .arrow { 63 | border-width: $popover-arrow-outer-width; 64 | } 65 | .popover > .arrow:after { 66 | border-width: $popover-arrow-width; 67 | content: ""; 68 | } 69 | 70 | .popover { 71 | &.top > .arrow { 72 | left: 50%; 73 | margin-left: -$popover-arrow-outer-width; 74 | border-bottom-width: 0; 75 | border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback 76 | border-top-color: $popover-arrow-outer-color; 77 | bottom: -$popover-arrow-outer-width; 78 | &:after { 79 | content: " "; 80 | bottom: 1px; 81 | margin-left: -$popover-arrow-width; 82 | border-bottom-width: 0; 83 | border-top-color: $popover-arrow-color; 84 | } 85 | } 86 | &.right > .arrow { 87 | top: 50%; 88 | left: -$popover-arrow-outer-width; 89 | margin-top: -$popover-arrow-outer-width; 90 | border-left-width: 0; 91 | border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback 92 | border-right-color: $popover-arrow-outer-color; 93 | &:after { 94 | content: " "; 95 | left: 1px; 96 | bottom: -$popover-arrow-width; 97 | border-left-width: 0; 98 | border-right-color: $popover-arrow-color; 99 | } 100 | } 101 | &.bottom > .arrow { 102 | left: 50%; 103 | margin-left: -$popover-arrow-outer-width; 104 | border-top-width: 0; 105 | border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback 106 | border-bottom-color: $popover-arrow-outer-color; 107 | top: -$popover-arrow-outer-width; 108 | &:after { 109 | content: " "; 110 | top: 1px; 111 | margin-left: -$popover-arrow-width; 112 | border-top-width: 0; 113 | border-bottom-color: $popover-arrow-color; 114 | } 115 | } 116 | 117 | &.left > .arrow { 118 | top: 50%; 119 | right: -$popover-arrow-outer-width; 120 | margin-top: -$popover-arrow-outer-width; 121 | border-right-width: 0; 122 | border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback 123 | border-left-color: $popover-arrow-outer-color; 124 | &:after { 125 | content: " "; 126 | right: 1px; 127 | border-right-width: 0; 128 | border-left-color: $popover-arrow-color; 129 | bottom: -$popover-arrow-width; 130 | } 131 | } 132 | 133 | } 134 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_print.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Basic print styles 3 | // -------------------------------------------------- 4 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css 5 | 6 | @media print { 7 | 8 | * { 9 | text-shadow: none !important; 10 | color: #000 !important; // Black prints faster: h5bp.com/s 11 | background: transparent !important; 12 | box-shadow: none !important; 13 | } 14 | 15 | a, 16 | a:visited { 17 | text-decoration: underline; 18 | } 19 | 20 | a[href]:after { 21 | content: " (" attr(href) ")"; 22 | } 23 | 24 | abbr[title]:after { 25 | content: " (" attr(title) ")"; 26 | } 27 | 28 | // Don't show links for images, or javascript/internal links 29 | a[href^="javascript:"]:after, 30 | a[href^="#"]:after { 31 | content: ""; 32 | } 33 | 34 | pre, 35 | blockquote { 36 | border: 1px solid #999; 37 | page-break-inside: avoid; 38 | } 39 | 40 | thead { 41 | display: table-header-group; // h5bp.com/t 42 | } 43 | 44 | tr, 45 | img { 46 | page-break-inside: avoid; 47 | } 48 | 49 | img { 50 | max-width: 100% !important; 51 | } 52 | 53 | p, 54 | h2, 55 | h3 { 56 | orphans: 3; 57 | widows: 3; 58 | } 59 | 60 | h2, 61 | h3 { 62 | page-break-after: avoid; 63 | } 64 | 65 | // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245 66 | // Once fixed, we can just straight up remove this. 67 | select { 68 | background: #fff !important; 69 | } 70 | 71 | // Bootstrap components 72 | .navbar { 73 | display: none; 74 | } 75 | .table { 76 | td, 77 | th { 78 | background-color: #fff !important; 79 | } 80 | } 81 | .btn, 82 | .dropup > .btn { 83 | > .caret { 84 | border-top-color: #000 !important; 85 | } 86 | } 87 | .label { 88 | border: 1px solid #000; 89 | } 90 | 91 | .table { 92 | border-collapse: collapse !important; 93 | } 94 | .table-bordered { 95 | th, 96 | td { 97 | border: 1px solid #ddd !important; 98 | } 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_progress-bars.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | 23 | // Bar itself 24 | // ------------------------- 25 | 26 | // Outer container 27 | .progress { 28 | overflow: hidden; 29 | height: $line-height-computed; 30 | margin-bottom: $line-height-computed; 31 | background-color: $progress-bg; 32 | border-radius: $border-radius-base; 33 | @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 34 | } 35 | 36 | // Bar of progress 37 | .progress-bar { 38 | float: left; 39 | width: 0%; 40 | height: 100%; 41 | font-size: $font-size-small; 42 | line-height: $line-height-computed; 43 | color: $progress-bar-color; 44 | text-align: center; 45 | background-color: $progress-bar-bg; 46 | @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 47 | @include transition(width .6s ease); 48 | } 49 | 50 | // Striped bars 51 | // 52 | // `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the 53 | // `.progress-bar-striped` class, which you just add to an existing 54 | // `.progress-bar`. 55 | .progress-striped .progress-bar, 56 | .progress-bar-striped { 57 | @include gradient-striped(); 58 | background-size: 40px 40px; 59 | } 60 | 61 | // Call animation for the active one 62 | // 63 | // `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the 64 | // `.progress-bar.active` approach. 65 | .progress.active .progress-bar, 66 | .progress-bar.active { 67 | @include animation(progress-bar-stripes 2s linear infinite); 68 | } 69 | 70 | // Account for lower percentages 71 | .progress-bar { 72 | &[aria-valuenow="1"], 73 | &[aria-valuenow="2"] { 74 | min-width: 30px; 75 | } 76 | 77 | &[aria-valuenow="0"] { 78 | color: $gray-light; 79 | min-width: 30px; 80 | background-color: transparent; 81 | background-image: none; 82 | box-shadow: none; 83 | } 84 | } 85 | 86 | 87 | 88 | // Variations 89 | // ------------------------- 90 | 91 | .progress-bar-success { 92 | @include progress-bar-variant($progress-bar-success-bg); 93 | } 94 | 95 | .progress-bar-info { 96 | @include progress-bar-variant($progress-bar-info-bg); 97 | } 98 | 99 | .progress-bar-warning { 100 | @include progress-bar-variant($progress-bar-warning-bg); 101 | } 102 | 103 | .progress-bar-danger { 104 | @include progress-bar-variant($progress-bar-danger-bg); 105 | } 106 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_responsive-embed.scss: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object { 16 | position: absolute; 17 | top: 0; 18 | left: 0; 19 | bottom: 0; 20 | height: 100%; 21 | width: 100%; 22 | border: 0; 23 | } 24 | 25 | // Modifier class for 16:9 aspect ratio 26 | &.embed-responsive-16by9 { 27 | padding-bottom: 56.25%; 28 | } 29 | 30 | // Modifier class for 4:3 aspect ratio 31 | &.embed-responsive-4by3 { 32 | padding-bottom: 75%; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_responsive-utilities.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Responsive: Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // IE10 in Windows (Phone) 8 7 | // 8 | // Support for responsive views via media queries is kind of borked in IE10, for 9 | // Surface/desktop in split view and for Windows Phone 8. This particular fix 10 | // must be accompanied by a snippet of JavaScript to sniff the user agent and 11 | // apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at 12 | // our Getting Started page for more information on this bug. 13 | // 14 | // For more information, see the following: 15 | // 16 | // Issue: https://github.com/twbs/bootstrap/issues/10497 17 | // Docs: http://getbootstrap.com/getting-started/#support-ie10-width 18 | // Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ 19 | // Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ 20 | 21 | @-ms-viewport { 22 | width: device-width; 23 | } 24 | 25 | 26 | // Visibility utilities 27 | // Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 28 | 29 | @include responsive-invisibility('.visible-xs, .visible-sm, .visible-md, .visible-lg'); 30 | 31 | .visible-xs-block, 32 | .visible-xs-inline, 33 | .visible-xs-inline-block, 34 | .visible-sm-block, 35 | .visible-sm-inline, 36 | .visible-sm-inline-block, 37 | .visible-md-block, 38 | .visible-md-inline, 39 | .visible-md-inline-block, 40 | .visible-lg-block, 41 | .visible-lg-inline, 42 | .visible-lg-inline-block { 43 | display: none !important; 44 | } 45 | 46 | @media (max-width: $screen-xs-max) { 47 | @include responsive-visibility('.visible-xs'); 48 | } 49 | .visible-xs-block { 50 | @media (max-width: $screen-xs-max) { 51 | display: block !important; 52 | } 53 | } 54 | .visible-xs-inline { 55 | @media (max-width: $screen-xs-max) { 56 | display: inline !important; 57 | } 58 | } 59 | .visible-xs-inline-block { 60 | @media (max-width: $screen-xs-max) { 61 | display: inline-block !important; 62 | } 63 | } 64 | 65 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 66 | @include responsive-visibility('.visible-sm'); 67 | } 68 | .visible-sm-block { 69 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 70 | display: block !important; 71 | } 72 | } 73 | .visible-sm-inline { 74 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 75 | display: inline !important; 76 | } 77 | } 78 | .visible-sm-inline-block { 79 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 80 | display: inline-block !important; 81 | } 82 | } 83 | 84 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 85 | @include responsive-visibility('.visible-md'); 86 | } 87 | .visible-md-block { 88 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 89 | display: block !important; 90 | } 91 | } 92 | .visible-md-inline { 93 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 94 | display: inline !important; 95 | } 96 | } 97 | .visible-md-inline-block { 98 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 99 | display: inline-block !important; 100 | } 101 | } 102 | 103 | @media (min-width: $screen-lg-min) { 104 | @include responsive-visibility('.visible-lg'); 105 | } 106 | .visible-lg-block { 107 | @media (min-width: $screen-lg-min) { 108 | display: block !important; 109 | } 110 | } 111 | .visible-lg-inline { 112 | @media (min-width: $screen-lg-min) { 113 | display: inline !important; 114 | } 115 | } 116 | .visible-lg-inline-block { 117 | @media (min-width: $screen-lg-min) { 118 | display: inline-block !important; 119 | } 120 | } 121 | 122 | @media (max-width: $screen-xs-max) { 123 | @include responsive-invisibility('.hidden-xs'); 124 | } 125 | 126 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 127 | @include responsive-invisibility('.hidden-sm'); 128 | } 129 | 130 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 131 | @include responsive-invisibility('.hidden-md'); 132 | } 133 | 134 | @media (min-width: $screen-lg-min) { 135 | @include responsive-invisibility('.hidden-lg'); 136 | } 137 | 138 | 139 | // Print utilities 140 | // 141 | // Media queries are placed on the inside to be mixin-friendly. 142 | 143 | // Note: Deprecated .visible-print as of v3.2.0 144 | 145 | @include responsive-invisibility('.visible-print'); 146 | 147 | @media print { 148 | @include responsive-visibility('.visible-print'); 149 | } 150 | .visible-print-block { 151 | display: none !important; 152 | 153 | @media print { 154 | display: block !important; 155 | } 156 | } 157 | .visible-print-inline { 158 | display: none !important; 159 | 160 | @media print { 161 | display: inline !important; 162 | } 163 | } 164 | .visible-print-inline-block { 165 | display: none !important; 166 | 167 | @media print { 168 | display: inline-block !important; 169 | } 170 | } 171 | 172 | @media print { 173 | @include responsive-invisibility('.hidden-print'); 174 | } 175 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_scaffolding.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // -------------------------------------------------- 4 | 5 | 6 | // Reset the box-sizing 7 | // 8 | // Heads up! This reset may cause conflicts with some third-party widgets. 9 | // For recommendations on resolving such conflicts, see 10 | // http://getbootstrap.com/getting-started/#third-box-sizing 11 | * { 12 | @include box-sizing(border-box); 13 | } 14 | *:before, 15 | *:after { 16 | @include box-sizing(border-box); 17 | } 18 | 19 | 20 | // Body reset 21 | 22 | html { 23 | font-size: 10px; 24 | -webkit-tap-highlight-color: rgba(0,0,0,0); 25 | } 26 | 27 | body { 28 | font-family: $font-family-base; 29 | font-size: $font-size-base; 30 | line-height: $line-height-base; 31 | color: $text-color; 32 | background-color: $body-bg; 33 | } 34 | 35 | // Reset fonts for relevant elements 36 | input, 37 | button, 38 | select, 39 | textarea { 40 | font-family: inherit; 41 | font-size: inherit; 42 | line-height: inherit; 43 | } 44 | 45 | 46 | // Links 47 | 48 | a { 49 | color: $link-color; 50 | text-decoration: none; 51 | 52 | &:hover, 53 | &:focus { 54 | color: $link-hover-color; 55 | text-decoration: underline; 56 | } 57 | 58 | &:focus { 59 | @include tab-focus(); 60 | } 61 | } 62 | 63 | 64 | // Figures 65 | // 66 | // We reset this here because previously Normalize had no `figure` margins. This 67 | // ensures we don't break anyone's use of the element. 68 | 69 | figure { 70 | margin: 0; 71 | } 72 | 73 | 74 | // Images 75 | 76 | img { 77 | vertical-align: middle; 78 | } 79 | 80 | // Responsive images (ensure images don't scale beyond their parents) 81 | .img-responsive { 82 | @include img-responsive(); 83 | } 84 | 85 | // Rounded corners 86 | .img-rounded { 87 | border-radius: $border-radius-large; 88 | } 89 | 90 | // Image thumbnails 91 | // 92 | // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. 93 | .img-thumbnail { 94 | padding: $thumbnail-padding; 95 | line-height: $line-height-base; 96 | background-color: $thumbnail-bg; 97 | border: 1px solid $thumbnail-border; 98 | border-radius: $thumbnail-border-radius; 99 | @include transition(all .2s ease-in-out); 100 | 101 | // Keep them at most 100% wide 102 | @include img-responsive(inline-block); 103 | } 104 | 105 | // Perfect circle 106 | .img-circle { 107 | border-radius: 50%; // set radius in percents 108 | } 109 | 110 | 111 | // Horizontal rules 112 | 113 | hr { 114 | margin-top: $line-height-computed; 115 | margin-bottom: $line-height-computed; 116 | border: 0; 117 | border-top: 1px solid $hr-border; 118 | } 119 | 120 | 121 | // Only display content to screen readers 122 | // 123 | // See: http://a11yproject.com/posts/how-to-hide-content/ 124 | 125 | .sr-only { 126 | position: absolute; 127 | width: 1px; 128 | height: 1px; 129 | margin: -1px; 130 | padding: 0; 131 | overflow: hidden; 132 | clip: rect(0,0,0,0); 133 | border: 0; 134 | } 135 | 136 | // Use in conjunction with .sr-only to only display content when it's focused. 137 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 138 | // Credit: HTML5 Boilerplate 139 | 140 | .sr-only-focusable { 141 | &:active, 142 | &:focus { 143 | position: static; 144 | width: auto; 145 | height: auto; 146 | margin: 0; 147 | overflow: visible; 148 | clip: auto; 149 | } 150 | } 151 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_tables.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Tables 3 | // -------------------------------------------------- 4 | 5 | 6 | table { 7 | background-color: $table-bg; 8 | } 9 | th { 10 | text-align: left; 11 | } 12 | 13 | 14 | // Baseline styles 15 | 16 | .table { 17 | width: 100%; 18 | max-width: 100%; 19 | margin-bottom: $line-height-computed; 20 | // Cells 21 | > thead, 22 | > tbody, 23 | > tfoot { 24 | > tr { 25 | > th, 26 | > td { 27 | padding: $table-cell-padding; 28 | line-height: $line-height-base; 29 | vertical-align: top; 30 | border-top: 1px solid $table-border-color; 31 | } 32 | } 33 | } 34 | // Bottom align for column headings 35 | > thead > tr > th { 36 | vertical-align: bottom; 37 | border-bottom: 2px solid $table-border-color; 38 | } 39 | // Remove top border from thead by default 40 | > caption + thead, 41 | > colgroup + thead, 42 | > thead:first-child { 43 | > tr:first-child { 44 | > th, 45 | > td { 46 | border-top: 0; 47 | } 48 | } 49 | } 50 | // Account for multiple tbody instances 51 | > tbody + tbody { 52 | border-top: 2px solid $table-border-color; 53 | } 54 | 55 | // Nesting 56 | .table { 57 | background-color: $body-bg; 58 | } 59 | } 60 | 61 | 62 | // Condensed table w/ half padding 63 | 64 | .table-condensed { 65 | > thead, 66 | > tbody, 67 | > tfoot { 68 | > tr { 69 | > th, 70 | > td { 71 | padding: $table-condensed-cell-padding; 72 | } 73 | } 74 | } 75 | } 76 | 77 | 78 | // Bordered version 79 | // 80 | // Add borders all around the table and between all the columns. 81 | 82 | .table-bordered { 83 | border: 1px solid $table-border-color; 84 | > thead, 85 | > tbody, 86 | > tfoot { 87 | > tr { 88 | > th, 89 | > td { 90 | border: 1px solid $table-border-color; 91 | } 92 | } 93 | } 94 | > thead > tr { 95 | > th, 96 | > td { 97 | border-bottom-width: 2px; 98 | } 99 | } 100 | } 101 | 102 | 103 | // Zebra-striping 104 | // 105 | // Default zebra-stripe styles (alternating gray and transparent backgrounds) 106 | 107 | .table-striped { 108 | > tbody > tr:nth-child(odd) { 109 | > td, 110 | > th { 111 | background-color: $table-bg-accent; 112 | } 113 | } 114 | } 115 | 116 | 117 | // Hover effect 118 | // 119 | // Placed here since it has to come after the potential zebra striping 120 | 121 | .table-hover { 122 | > tbody > tr:hover { 123 | > td, 124 | > th { 125 | background-color: $table-bg-hover; 126 | } 127 | } 128 | } 129 | 130 | 131 | // Table cell sizing 132 | // 133 | // Reset default table behavior 134 | 135 | table col[class*="col-"] { 136 | position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623) 137 | float: none; 138 | display: table-column; 139 | } 140 | table { 141 | td, 142 | th { 143 | &[class*="col-"] { 144 | position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623) 145 | float: none; 146 | display: table-cell; 147 | } 148 | } 149 | } 150 | 151 | 152 | // Table backgrounds 153 | // 154 | // Exact selectors below required to override `.table-striped` and prevent 155 | // inheritance to nested tables. 156 | 157 | // Generate the contextual variants 158 | @include table-row-variant('active', $table-bg-active); 159 | @include table-row-variant('success', $state-success-bg); 160 | @include table-row-variant('info', $state-info-bg); 161 | @include table-row-variant('warning', $state-warning-bg); 162 | @include table-row-variant('danger', $state-danger-bg); 163 | 164 | 165 | // Responsive tables 166 | // 167 | // Wrap your tables in `.table-responsive` and we'll make them mobile friendly 168 | // by enabling horizontal scrolling. Only applies <768px. Everything above that 169 | // will display normally. 170 | 171 | .table-responsive { 172 | @media screen and (max-width: $screen-xs-max) { 173 | width: 100%; 174 | margin-bottom: ($line-height-computed * 0.75); 175 | overflow-y: hidden; 176 | overflow-x: auto; 177 | -ms-overflow-style: -ms-autohiding-scrollbar; 178 | border: 1px solid $table-border-color; 179 | -webkit-overflow-scrolling: touch; 180 | 181 | // Tighten up spacing 182 | > .table { 183 | margin-bottom: 0; 184 | 185 | // Ensure the content doesn't wrap 186 | > thead, 187 | > tbody, 188 | > tfoot { 189 | > tr { 190 | > th, 191 | > td { 192 | white-space: nowrap; 193 | } 194 | } 195 | } 196 | } 197 | 198 | // Special overrides for the bordered tables 199 | > .table-bordered { 200 | border: 0; 201 | 202 | // Nuke the appropriate borders so that the parent can handle them 203 | > thead, 204 | > tbody, 205 | > tfoot { 206 | > tr { 207 | > th:first-child, 208 | > td:first-child { 209 | border-left: 0; 210 | } 211 | > th:last-child, 212 | > td:last-child { 213 | border-right: 0; 214 | } 215 | } 216 | } 217 | 218 | // Only nuke the last row's bottom-border in `tbody` and `tfoot` since 219 | // chances are there will be only one `tr` in a `thead` and that would 220 | // remove the border altogether. 221 | > tbody, 222 | > tfoot { 223 | > tr:last-child { 224 | > th, 225 | > td { 226 | border-bottom: 0; 227 | } 228 | } 229 | } 230 | 231 | } 232 | } 233 | } 234 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_theme.scss: -------------------------------------------------------------------------------- 1 | 2 | // 3 | // Load core variables and mixins 4 | // -------------------------------------------------- 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | 9 | 10 | 11 | // 12 | // Buttons 13 | // -------------------------------------------------- 14 | 15 | // Common styles 16 | .btn-default, 17 | .btn-primary, 18 | .btn-success, 19 | .btn-info, 20 | .btn-warning, 21 | .btn-danger { 22 | text-shadow: 0 -1px 0 rgba(0,0,0,.2); 23 | $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); 24 | @include box-shadow($shadow); 25 | 26 | // Reset the shadow 27 | &:active, 28 | &.active { 29 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 30 | } 31 | } 32 | 33 | // Mixin for generating new styles 34 | @mixin btn-styles($btn-color: #555) { 35 | @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%)); 36 | @include reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners 37 | background-repeat: repeat-x; 38 | border-color: darken($btn-color, 14%); 39 | 40 | &:hover, 41 | &:focus { 42 | background-color: darken($btn-color, 12%); 43 | background-position: 0 -15px; 44 | } 45 | 46 | &:active, 47 | &.active { 48 | background-color: darken($btn-color, 12%); 49 | border-color: darken($btn-color, 14%); 50 | } 51 | 52 | &:disabled, 53 | &[disabled] { 54 | background-color: darken($btn-color, 12%); 55 | background-image: none; 56 | } 57 | } 58 | 59 | // Common styles 60 | .btn { 61 | // Remove the gradient for the pressed/active state 62 | &:active, 63 | &.active { 64 | background-image: none; 65 | } 66 | } 67 | 68 | // Apply the mixin to the buttons 69 | .btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } 70 | .btn-primary { @include btn-styles($btn-primary-bg); } 71 | .btn-success { @include btn-styles($btn-success-bg); } 72 | .btn-info { @include btn-styles($btn-info-bg); } 73 | .btn-warning { @include btn-styles($btn-warning-bg); } 74 | .btn-danger { @include btn-styles($btn-danger-bg); } 75 | 76 | 77 | 78 | // 79 | // Images 80 | // -------------------------------------------------- 81 | 82 | .thumbnail, 83 | .img-thumbnail { 84 | @include box-shadow(0 1px 2px rgba(0,0,0,.075)); 85 | } 86 | 87 | 88 | 89 | // 90 | // Dropdowns 91 | // -------------------------------------------------- 92 | 93 | .dropdown-menu > li > a:hover, 94 | .dropdown-menu > li > a:focus { 95 | @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%)); 96 | background-color: darken($dropdown-link-hover-bg, 5%); 97 | } 98 | .dropdown-menu > .active > a, 99 | .dropdown-menu > .active > a:hover, 100 | .dropdown-menu > .active > a:focus { 101 | @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%)); 102 | background-color: darken($dropdown-link-active-bg, 5%); 103 | } 104 | 105 | 106 | 107 | // 108 | // Navbar 109 | // -------------------------------------------------- 110 | 111 | // Default navbar 112 | .navbar-default { 113 | @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg); 114 | @include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered 115 | border-radius: $navbar-border-radius; 116 | $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075); 117 | @include box-shadow($shadow); 118 | 119 | .navbar-nav > .active > a { 120 | @include gradient-vertical($start-color: darken($navbar-default-bg, 5%), $end-color: darken($navbar-default-bg, 2%)); 121 | @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075)); 122 | } 123 | } 124 | .navbar-brand, 125 | .navbar-nav > li > a { 126 | text-shadow: 0 1px 0 rgba(255,255,255,.25); 127 | } 128 | 129 | // Inverted navbar 130 | .navbar-inverse { 131 | @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg); 132 | @include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered 133 | 134 | .navbar-nav > .active > a { 135 | @include gradient-vertical($start-color: $navbar-inverse-bg, $end-color: lighten($navbar-inverse-bg, 2.5%)); 136 | @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25)); 137 | } 138 | 139 | .navbar-brand, 140 | .navbar-nav > li > a { 141 | text-shadow: 0 -1px 0 rgba(0,0,0,.25); 142 | } 143 | } 144 | 145 | // Undo rounded corners in static and fixed navbars 146 | .navbar-static-top, 147 | .navbar-fixed-top, 148 | .navbar-fixed-bottom { 149 | border-radius: 0; 150 | } 151 | 152 | 153 | 154 | // 155 | // Alerts 156 | // -------------------------------------------------- 157 | 158 | // Common styles 159 | .alert { 160 | text-shadow: 0 1px 0 rgba(255,255,255,.2); 161 | $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05); 162 | @include box-shadow($shadow); 163 | } 164 | 165 | // Mixin for generating new styles 166 | @mixin alert-styles($color) { 167 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%)); 168 | border-color: darken($color, 15%); 169 | } 170 | 171 | // Apply the mixin to the alerts 172 | .alert-success { @include alert-styles($alert-success-bg); } 173 | .alert-info { @include alert-styles($alert-info-bg); } 174 | .alert-warning { @include alert-styles($alert-warning-bg); } 175 | .alert-danger { @include alert-styles($alert-danger-bg); } 176 | 177 | 178 | 179 | // 180 | // Progress bars 181 | // -------------------------------------------------- 182 | 183 | // Give the progress background some depth 184 | .progress { 185 | @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg) 186 | } 187 | 188 | // Mixin for generating new styles 189 | @mixin progress-bar-styles($color) { 190 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%)); 191 | } 192 | 193 | // Apply the mixin to the progress bars 194 | .progress-bar { @include progress-bar-styles($progress-bar-bg); } 195 | .progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); } 196 | .progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); } 197 | .progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); } 198 | .progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); } 199 | 200 | // Reset the striped class because our mixins don't do multiple gradients and 201 | // the above custom styles override the new `.progress-bar-striped` in v3.2.0. 202 | .progress-bar-striped { 203 | @include gradient-striped(); 204 | } 205 | 206 | 207 | // 208 | // List groups 209 | // -------------------------------------------------- 210 | 211 | .list-group { 212 | border-radius: $border-radius-base; 213 | @include box-shadow(0 1px 2px rgba(0,0,0,.075)); 214 | } 215 | .list-group-item.active, 216 | .list-group-item.active:hover, 217 | .list-group-item.active:focus { 218 | text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%); 219 | @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%)); 220 | border-color: darken($list-group-active-border, 7.5%); 221 | } 222 | 223 | 224 | 225 | // 226 | // Panels 227 | // -------------------------------------------------- 228 | 229 | // Common styles 230 | .panel { 231 | @include box-shadow(0 1px 2px rgba(0,0,0,.05)); 232 | } 233 | 234 | // Mixin for generating new styles 235 | @mixin panel-heading-styles($color) { 236 | @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%)); 237 | } 238 | 239 | // Apply the mixin to the panel headings only 240 | .panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); } 241 | .panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); } 242 | .panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); } 243 | .panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); } 244 | .panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); } 245 | .panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); } 246 | 247 | 248 | 249 | // 250 | // Wells 251 | // -------------------------------------------------- 252 | 253 | .well { 254 | @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg); 255 | border-color: darken($well-bg, 10%); 256 | $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1); 257 | @include box-shadow($shadow); 258 | } 259 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_thumbnails.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: $thumbnail-padding; 10 | margin-bottom: $line-height-computed; 11 | line-height: $line-height-base; 12 | background-color: $thumbnail-bg; 13 | border: 1px solid $thumbnail-border; 14 | border-radius: $thumbnail-border-radius; 15 | @include transition(all .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | @include img-responsive(); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active 25 | 26 | // Image captions 27 | .caption { 28 | padding: $thumbnail-caption-padding; 29 | color: $thumbnail-caption-color; 30 | } 31 | } 32 | 33 | // Add a hover state for linked versions only 34 | a.thumbnail:hover, 35 | a.thumbnail:focus, 36 | a.thumbnail.active { 37 | border-color: $link-color; 38 | } 39 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_tooltip.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Tooltips 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .tooltip { 8 | position: absolute; 9 | z-index: $zindex-tooltip; 10 | display: block; 11 | visibility: visible; 12 | font-size: $font-size-small; 13 | line-height: 1.4; 14 | @include opacity(0); 15 | 16 | &.in { @include opacity($tooltip-opacity); } 17 | &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; } 18 | &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; } 19 | &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; } 20 | &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; } 21 | } 22 | 23 | // Wrapper for the tooltip content 24 | .tooltip-inner { 25 | max-width: $tooltip-max-width; 26 | padding: 3px 8px; 27 | color: $tooltip-color; 28 | text-align: center; 29 | text-decoration: none; 30 | background-color: $tooltip-bg; 31 | border-radius: $border-radius-base; 32 | } 33 | 34 | // Arrows 35 | .tooltip-arrow { 36 | position: absolute; 37 | width: 0; 38 | height: 0; 39 | border-color: transparent; 40 | border-style: solid; 41 | } 42 | .tooltip { 43 | &.top .tooltip-arrow { 44 | bottom: 0; 45 | left: 50%; 46 | margin-left: -$tooltip-arrow-width; 47 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0; 48 | border-top-color: $tooltip-arrow-color; 49 | } 50 | &.top-left .tooltip-arrow { 51 | bottom: 0; 52 | left: $tooltip-arrow-width; 53 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0; 54 | border-top-color: $tooltip-arrow-color; 55 | } 56 | &.top-right .tooltip-arrow { 57 | bottom: 0; 58 | right: $tooltip-arrow-width; 59 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0; 60 | border-top-color: $tooltip-arrow-color; 61 | } 62 | &.right .tooltip-arrow { 63 | top: 50%; 64 | left: 0; 65 | margin-top: -$tooltip-arrow-width; 66 | border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0; 67 | border-right-color: $tooltip-arrow-color; 68 | } 69 | &.left .tooltip-arrow { 70 | top: 50%; 71 | right: 0; 72 | margin-top: -$tooltip-arrow-width; 73 | border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width; 74 | border-left-color: $tooltip-arrow-color; 75 | } 76 | &.bottom .tooltip-arrow { 77 | top: 0; 78 | left: 50%; 79 | margin-left: -$tooltip-arrow-width; 80 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; 81 | border-bottom-color: $tooltip-arrow-color; 82 | } 83 | &.bottom-left .tooltip-arrow { 84 | top: 0; 85 | left: $tooltip-arrow-width; 86 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; 87 | border-bottom-color: $tooltip-arrow-color; 88 | } 89 | &.bottom-right .tooltip-arrow { 90 | top: 0; 91 | right: $tooltip-arrow-width; 92 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; 93 | border-bottom-color: $tooltip-arrow-color; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_type.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Typography 3 | // -------------------------------------------------- 4 | 5 | 6 | // Headings 7 | // ------------------------- 8 | 9 | h1, h2, h3, h4, h5, h6, 10 | .h1, .h2, .h3, .h4, .h5, .h6 { 11 | font-family: $headings-font-family; 12 | font-weight: $headings-font-weight; 13 | line-height: $headings-line-height; 14 | color: $headings-color; 15 | 16 | small, 17 | .small { 18 | font-weight: normal; 19 | line-height: 1; 20 | color: $headings-small-color; 21 | } 22 | } 23 | 24 | h1, .h1, 25 | h2, .h2, 26 | h3, .h3 { 27 | margin-top: $line-height-computed; 28 | margin-bottom: ($line-height-computed / 2); 29 | 30 | small, 31 | .small { 32 | font-size: 65%; 33 | } 34 | } 35 | h4, .h4, 36 | h5, .h5, 37 | h6, .h6 { 38 | margin-top: ($line-height-computed / 2); 39 | margin-bottom: ($line-height-computed / 2); 40 | 41 | small, 42 | .small { 43 | font-size: 75%; 44 | } 45 | } 46 | 47 | h1, .h1 { font-size: $font-size-h1; } 48 | h2, .h2 { font-size: $font-size-h2; } 49 | h3, .h3 { font-size: $font-size-h3; } 50 | h4, .h4 { font-size: $font-size-h4; } 51 | h5, .h5 { font-size: $font-size-h5; } 52 | h6, .h6 { font-size: $font-size-h6; } 53 | 54 | 55 | // Body text 56 | // ------------------------- 57 | 58 | p { 59 | margin: 0 0 ($line-height-computed / 2); 60 | } 61 | 62 | .lead { 63 | margin-bottom: $line-height-computed; 64 | font-size: floor(($font-size-base * 1.15)); 65 | font-weight: 300; 66 | line-height: 1.4; 67 | 68 | @media (min-width: $screen-sm-min) { 69 | font-size: ($font-size-base * 1.5); 70 | } 71 | } 72 | 73 | 74 | // Emphasis & misc 75 | // ------------------------- 76 | 77 | // Ex: (12px small font / 14px base font) * 100% = about 85% 78 | small, 79 | .small { 80 | font-size: floor((100% * $font-size-small / $font-size-base)); 81 | } 82 | 83 | // Undo browser default styling 84 | cite { 85 | font-style: normal; 86 | } 87 | 88 | mark, 89 | .mark { 90 | background-color: $state-warning-bg; 91 | padding: .2em; 92 | } 93 | 94 | // Alignment 95 | .text-left { text-align: left; } 96 | .text-right { text-align: right; } 97 | .text-center { text-align: center; } 98 | .text-justify { text-align: justify; } 99 | .text-nowrap { white-space: nowrap; } 100 | 101 | // Transformation 102 | .text-lowercase { text-transform: lowercase; } 103 | .text-uppercase { text-transform: uppercase; } 104 | .text-capitalize { text-transform: capitalize; } 105 | 106 | // Contextual colors 107 | .text-muted { 108 | color: $text-muted; 109 | } 110 | 111 | @include text-emphasis-variant('.text-primary', $brand-primary); 112 | 113 | @include text-emphasis-variant('.text-success', $state-success-text); 114 | 115 | @include text-emphasis-variant('.text-info', $state-info-text); 116 | 117 | @include text-emphasis-variant('.text-warning', $state-warning-text); 118 | 119 | @include text-emphasis-variant('.text-danger', $state-danger-text); 120 | 121 | // Contextual backgrounds 122 | // For now we'll leave these alongside the text classes until v4 when we can 123 | // safely shift things around (per SemVer rules). 124 | .bg-primary { 125 | // Given the contrast here, this is the only class to have its color inverted 126 | // automatically. 127 | color: #fff; 128 | } 129 | @include bg-variant('.bg-primary', $brand-primary); 130 | 131 | @include bg-variant('.bg-success', $state-success-bg); 132 | 133 | @include bg-variant('.bg-info', $state-info-bg); 134 | 135 | @include bg-variant('.bg-warning', $state-warning-bg); 136 | 137 | @include bg-variant('.bg-danger', $state-danger-bg); 138 | 139 | 140 | // Page header 141 | // ------------------------- 142 | 143 | .page-header { 144 | padding-bottom: (($line-height-computed / 2) - 1); 145 | margin: ($line-height-computed * 2) 0 $line-height-computed; 146 | border-bottom: 1px solid $page-header-border-color; 147 | } 148 | 149 | 150 | // Lists 151 | // ------------------------- 152 | 153 | // Unordered and Ordered lists 154 | ul, 155 | ol { 156 | margin-top: 0; 157 | margin-bottom: ($line-height-computed / 2); 158 | ul, 159 | ol { 160 | margin-bottom: 0; 161 | } 162 | } 163 | 164 | // List options 165 | 166 | // Unstyled keeps list items block level, just removes default browser padding and list-style 167 | .list-unstyled { 168 | padding-left: 0; 169 | list-style: none; 170 | } 171 | 172 | // Inline turns list items into inline-block 173 | .list-inline { 174 | @extend .list-unstyled; 175 | margin-left: -5px; 176 | 177 | > li { 178 | display: inline-block; 179 | padding-left: 5px; 180 | padding-right: 5px; 181 | } 182 | } 183 | 184 | // Description Lists 185 | dl { 186 | margin-top: 0; // Remove browser default 187 | margin-bottom: $line-height-computed; 188 | } 189 | dt, 190 | dd { 191 | line-height: $line-height-base; 192 | } 193 | dt { 194 | font-weight: bold; 195 | } 196 | dd { 197 | margin-left: 0; // Undo browser default 198 | } 199 | 200 | // Horizontal description lists 201 | // 202 | // Defaults to being stacked without any of the below styles applied, until the 203 | // grid breakpoint is reached (default of ~768px). 204 | 205 | .dl-horizontal { 206 | dd { 207 | @include clearfix(); // Clear the floated `dt` if an empty `dd` is present 208 | } 209 | 210 | @media (min-width: $grid-float-breakpoint) { 211 | dt { 212 | float: left; 213 | width: ($dl-horizontal-offset - 20); 214 | clear: left; 215 | text-align: right; 216 | @include text-overflow(); 217 | } 218 | dd { 219 | margin-left: $dl-horizontal-offset; 220 | } 221 | } 222 | } 223 | 224 | 225 | // Misc 226 | // ------------------------- 227 | 228 | // Abbreviations and acronyms 229 | abbr[title], 230 | // Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 231 | abbr[data-original-title] { 232 | cursor: help; 233 | border-bottom: 1px dotted $abbr-border-color; 234 | } 235 | .initialism { 236 | font-size: 90%; 237 | text-transform: uppercase; 238 | } 239 | 240 | // Blockquotes 241 | blockquote { 242 | padding: ($line-height-computed / 2) $line-height-computed; 243 | margin: 0 0 $line-height-computed; 244 | font-size: $blockquote-font-size; 245 | border-left: 5px solid $blockquote-border-color; 246 | 247 | p, 248 | ul, 249 | ol { 250 | &:last-child { 251 | margin-bottom: 0; 252 | } 253 | } 254 | 255 | // Note: Deprecated small and .small as of v3.1.0 256 | // Context: https://github.com/twbs/bootstrap/issues/11660 257 | footer, 258 | small, 259 | .small { 260 | display: block; 261 | font-size: 80%; // back to default font-size 262 | line-height: $line-height-base; 263 | color: $blockquote-small-color; 264 | 265 | &:before { 266 | content: '\2014 \00A0'; // em dash, nbsp 267 | } 268 | } 269 | } 270 | 271 | // Opposite alignment of blockquote 272 | // 273 | // Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0. 274 | .blockquote-reverse, 275 | blockquote.pull-right { 276 | padding-right: 15px; 277 | padding-left: 0; 278 | border-right: 5px solid $blockquote-border-color; 279 | border-left: 0; 280 | text-align: right; 281 | 282 | // Account for citation 283 | footer, 284 | small, 285 | .small { 286 | &:before { content: ''; } 287 | &:after { 288 | content: '\00A0 \2014'; // nbsp, em dash 289 | } 290 | } 291 | } 292 | 293 | // Quotes 294 | blockquote:before, 295 | blockquote:after { 296 | content: ""; 297 | } 298 | 299 | // Addresses 300 | address { 301 | margin-bottom: $line-height-computed; 302 | font-style: normal; 303 | line-height: $line-height-base; 304 | } 305 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_utilities.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | @include clearfix(); 11 | } 12 | .center-block { 13 | @include center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | @include text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | visibility: hidden !important; 48 | } 49 | 50 | 51 | // For Affix plugin 52 | // ------------------------- 53 | 54 | .affix { 55 | position: fixed; 56 | @include translate3d(0, 0, 0); 57 | } 58 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/_wells.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: $well-bg; 12 | border: 1px solid $well-border; 13 | border-radius: $border-radius-base; 14 | @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: $border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: $border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/bootstrap.scss: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables"; 3 | @import "mixins"; 4 | 5 | // Reset and dependencies 6 | @import "normalize"; 7 | @import "print"; 8 | @import "glyphicons"; 9 | 10 | // Core CSS 11 | @import "scaffolding"; 12 | @import "type"; 13 | @import "code"; 14 | @import "grid"; 15 | @import "tables"; 16 | @import "forms"; 17 | @import "buttons"; 18 | 19 | // Components 20 | @import "component-animations"; 21 | @import "dropdowns"; 22 | @import "button-groups"; 23 | @import "input-groups"; 24 | @import "navs"; 25 | @import "navbar"; 26 | @import "breadcrumbs"; 27 | @import "pagination"; 28 | @import "pager"; 29 | @import "labels"; 30 | @import "badges"; 31 | @import "jumbotron"; 32 | @import "thumbnails"; 33 | @import "alerts"; 34 | @import "progress-bars"; 35 | @import "media"; 36 | @import "list-group"; 37 | @import "panels"; 38 | @import "responsive-embed"; 39 | @import "wells"; 40 | @import "close"; 41 | 42 | // Components w/ JavaScript 43 | @import "modals"; 44 | @import "tooltip"; 45 | @import "popovers"; 46 | @import "carousel"; 47 | 48 | // Utility classes 49 | @import "utilities"; 50 | @import "responsive-utilities"; 51 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/mixins/_alerts.scss: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | @mixin alert-variant($background, $border, $text-color) { 4 | background-color: $background; 5 | border-color: $border; 6 | color: $text-color; 7 | 8 | hr { 9 | border-top-color: darken($border, 5%); 10 | } 11 | .alert-link { 12 | color: darken($text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | // [converter] $parent hack 4 | @mixin bg-variant($parent, $color) { 5 | #{$parent} { 6 | background-color: $color; 7 | } 8 | a#{$parent}:hover { 9 | background-color: darken($color, 10%); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-top-radius($radius) { 4 | border-top-right-radius: $radius; 5 | border-top-left-radius: $radius; 6 | } 7 | @mixin border-right-radius($radius) { 8 | border-bottom-right-radius: $radius; 9 | border-top-right-radius: $radius; 10 | } 11 | @mixin border-bottom-radius($radius) { 12 | border-bottom-right-radius: $radius; 13 | border-bottom-left-radius: $radius; 14 | } 15 | @mixin border-left-radius($radius) { 16 | border-bottom-left-radius: $radius; 17 | border-top-left-radius: $radius; 18 | } 19 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/mixins/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Button variants 2 | // 3 | // Easily pump out default styles, as well as :hover, :focus, :active, 4 | // and disabled options for all buttons 5 | 6 | @mixin button-variant($color, $background, $border) { 7 | color: $color; 8 | background-color: $background; 9 | border-color: $border; 10 | 11 | &:hover, 12 | &:focus, 13 | &:active, 14 | &.active, 15 | .open > &.dropdown-toggle { 16 | color: $color; 17 | background-color: darken($background, 10%); 18 | border-color: darken($border, 12%); 19 | } 20 | &:active, 21 | &.active, 22 | .open > &.dropdown-toggle { 23 | background-image: none; 24 | } 25 | &.disabled, 26 | &[disabled], 27 | fieldset[disabled] & { 28 | &, 29 | &:hover, 30 | &:focus, 31 | &:active, 32 | &.active { 33 | background-color: $background; 34 | border-color: $border; 35 | } 36 | } 37 | 38 | .badge { 39 | color: $background; 40 | background-color: $color; 41 | } 42 | } 43 | 44 | // Button sizes 45 | @mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { 46 | padding: $padding-vertical $padding-horizontal; 47 | font-size: $font-size; 48 | line-height: $line-height; 49 | border-radius: $border-radius; 50 | } 51 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/mixins/_center-block.scss: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | @mixin center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | @mixin clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /_assets/stylesheets/bootstrap/mixins/_forms.scss: -------------------------------------------------------------------------------- 1 | // Form validation states 2 | // 3 | // Used in forms.less to generate the form validation CSS for warnings, errors, 4 | // and successes. 5 | 6 | @mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) { 7 | // Color the label and help text 8 | .help-block, 9 | .control-label, 10 | .radio, 11 | .checkbox, 12 | .radio-inline, 13 | .checkbox-inline { 14 | color: $text-color; 15 | } 16 | // Set the border and box shadow on specific inputs to match 17 | .form-control { 18 | border-color: $border-color; 19 | @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work 20 | &:focus { 21 | border-color: darken($border-color, 10%); 22 | $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%); 23 | @include box-shadow($shadow); 24 | } 25 | } 26 | // Set validation states also for addons 27 | .input-group-addon { 28 | color: $text-color; 29 | border-color: $border-color; 30 | background-color: $background-color; 31 | } 32 | // Optional feedback icon 33 | .form-control-feedback { 34 | color: $text-color; 35 | } 36 | } 37 | 38 | 39 | // Form control focus state 40 | // 41 | // Generate a customized focus state and for any input with the specified color, 42 | // which defaults to the `$input-border-focus` variable. 43 | // 44 | // We highly encourage you to not customize the default value, but instead use 45 | // this to tweak colors on an as-needed basis. This aesthetic change is based on 46 | // WebKit's default styles, but applicable to a wider range of browsers. Its 47 | // usability and accessibility should be taken into account with any change. 48 | // 49 | // Example usage: change the default blue border and shadow to white for better 50 | // contrast against a dark gray background. 51 | @mixin form-control-focus($color: $input-border-focus) { 52 | $color-rgba: rgba(red($color), green($color), blue($color), .6); 53 | &:focus { 54 | border-color: $color; 55 | outline: 0; 56 | @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba); 57 | } 58 | } 59 | 60 | // Form control sizing 61 | // 62 | // Relative text size, padding, and border-radii changes for form controls. For 63 | // horizontal sizing, wrap controls in the predefined grid classes. `