├── .gitignore ├── README.html ├── README.md ├── css └── style.css ├── fonts └── bootstrap │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── images └── .keep ├── index.html ├── javascripts ├── bootstrap-sprockets.js ├── bootstrap.js ├── bootstrap.min.js └── bootstrap │ ├── affix.js │ ├── alert.js │ ├── button.js │ ├── carousel.js │ ├── collapse.js │ ├── dropdown.js │ ├── modal.js │ ├── popover.js │ ├── scrollspy.js │ ├── tab.js │ ├── tooltip.js │ └── transition.js └── stylesheets ├── .sass-cache ├── a1f2fb2ba2621f57b0f49a158adad1dc34d4df59 │ ├── _bootstrap.scssc │ └── style.scssc ├── b26d6fe3ff017d52164dfca0cc1611c932117287 │ ├── _alerts.scssc │ ├── _background-variant.scssc │ ├── _border-radius.scssc │ ├── _buttons.scssc │ ├── _center-block.scssc │ ├── _clearfix.scssc │ ├── _forms.scssc │ ├── _gradients.scssc │ ├── _grid-framework.scssc │ ├── _grid.scssc │ ├── _hide-text.scssc │ ├── _image.scssc │ ├── _labels.scssc │ ├── _list-group.scssc │ ├── _nav-divider.scssc │ ├── _nav-vertical-align.scssc │ ├── _opacity.scssc │ ├── _pagination.scssc │ ├── _panels.scssc │ ├── _progress-bar.scssc │ ├── _reset-filter.scssc │ ├── _reset-text.scssc │ ├── _resize.scssc │ ├── _responsive-visibility.scssc │ ├── _size.scssc │ ├── _tab-focus.scssc │ ├── _table-row.scssc │ ├── _text-emphasis.scssc │ ├── _text-overflow.scssc │ └── _vendor-prefixes.scssc └── faa100a7c4bec625f96d40f87b6bba79981481e5 │ ├── _alerts.scssc │ ├── _badges.scssc │ ├── _breadcrumbs.scssc │ ├── _button-groups.scssc │ ├── _buttons.scssc │ ├── _carousel.scssc │ ├── _close.scssc │ ├── _code.scssc │ ├── _component-animations.scssc │ ├── _dropdowns.scssc │ ├── _forms.scssc │ ├── _glyphicons.scssc │ ├── _grid.scssc │ ├── _input-groups.scssc │ ├── _jumbotron.scssc │ ├── _labels.scssc │ ├── _list-group.scssc │ ├── _media.scssc │ ├── _mixins.scssc │ ├── _modals.scssc │ ├── _navbar.scssc │ ├── _navs.scssc │ ├── _normalize.scssc │ ├── _pager.scssc │ ├── _pagination.scssc │ ├── _panels.scssc │ ├── _popovers.scssc │ ├── _print.scssc │ ├── _progress-bars.scssc │ ├── _responsive-embed.scssc │ ├── _responsive-utilities.scssc │ ├── _scaffolding.scssc │ ├── _tables.scssc │ ├── _thumbnails.scssc │ ├── _tooltip.scssc │ ├── _type.scssc │ ├── _utilities.scssc │ ├── _variables.scssc │ └── _wells.scssc ├── _bootstrap-compass.scss ├── _bootstrap-mincer.scss ├── _bootstrap-sprockets.scss ├── _bootstrap.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 └── 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 │ ├── _reset-text.scss │ ├── _resize.scss │ ├── _responsive-visibility.scss │ ├── _size.scss │ ├── _tab-focus.scss │ ├── _table-row.scss │ ├── _text-emphasis.scss │ ├── _text-overflow.scss │ └── _vendor-prefixes.scss └── style.scss /.gitignore: -------------------------------------------------------------------------------- 1 | config.codekit -------------------------------------------------------------------------------- /README.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

Bootstrap Test

8 | 9 |

A simple tempate with every Bootstrap element present for quick and easy theme building

10 | 11 |

Why?

12 | 13 |

I created this as a tool for myself to quickly be able to test color themes and edits to the standard Bootstrap theme wihtout having to deal with version control within my own apps. Every element is present in a condensed manner so you can see how all items look next to each other. This is not intended to be a starter template, just a template for theme building.

14 | 15 |

To use:

16 | 17 |

You’ll need a Sass compiler of some kind (I recommend using CodeKit if you have a Mac), but that’s it. The initial compile has been run already and is linked as css/style.css in the header. A link to a jQuery CDN and the Bootstap javascript file are also already in there. Simply set up your Sass compiler of choice, navigate to the index.html file, and you’re ready to go!

18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Bootstrap Test 2 | ### A simple tempate with every Bootstrap element present for quick and easy theme building 3 | 4 | ## Why? 5 | 6 | I created this as a tool for myself to quickly be able to test color themes and edits to the standard Bootstrap theme wihtout having to deal with version control within my own apps. Every element is present in a condensed manner so you can see how all items look next to each other. This is not intended to be a starter template, just a template for theme building. 7 | 8 | ## To use: 9 | 10 | You'll need a Sass compiler of some kind (I recommend using [CodeKit](https://incident57.com/codekit/) if you have a Mac), but that's it. The initial compile has been run already and is linked as `css/style.css` in the header. A link to a jQuery CDN and the Bootstap javascript file are also already in there. Simply set up your Sass compiler of choice, navigate to the index.html file, and you're ready to go! -------------------------------------------------------------------------------- /fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/images/.keep -------------------------------------------------------------------------------- /javascripts/bootstrap-sprockets.js: -------------------------------------------------------------------------------- 1 | //= require ./bootstrap/transition 2 | //= require ./bootstrap/alert 3 | //= require ./bootstrap/button 4 | //= require ./bootstrap/carousel 5 | //= require ./bootstrap/collapse 6 | //= require ./bootstrap/dropdown 7 | //= require ./bootstrap/modal 8 | //= require ./bootstrap/tab 9 | //= require ./bootstrap/affix 10 | //= require ./bootstrap/scrollspy 11 | //= require ./bootstrap/tooltip 12 | //= require ./bootstrap/popover 13 | -------------------------------------------------------------------------------- /javascripts/bootstrap/affix.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: affix.js v3.3.7 3 | * http://getbootstrap.com/javascript/#affix 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // AFFIX CLASS DEFINITION 14 | // ====================== 15 | 16 | var Affix = function (element, options) { 17 | this.options = $.extend({}, Affix.DEFAULTS, options) 18 | 19 | this.$target = $(this.options.target) 20 | .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) 21 | .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) 22 | 23 | this.$element = $(element) 24 | this.affixed = null 25 | this.unpin = null 26 | this.pinnedOffset = null 27 | 28 | this.checkPosition() 29 | } 30 | 31 | Affix.VERSION = '3.3.7' 32 | 33 | Affix.RESET = 'affix affix-top affix-bottom' 34 | 35 | Affix.DEFAULTS = { 36 | offset: 0, 37 | target: window 38 | } 39 | 40 | Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { 41 | var scrollTop = this.$target.scrollTop() 42 | var position = this.$element.offset() 43 | var targetHeight = this.$target.height() 44 | 45 | if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false 46 | 47 | if (this.affixed == 'bottom') { 48 | if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' 49 | return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' 50 | } 51 | 52 | var initializing = this.affixed == null 53 | var colliderTop = initializing ? scrollTop : position.top 54 | var colliderHeight = initializing ? targetHeight : height 55 | 56 | if (offsetTop != null && scrollTop <= offsetTop) return 'top' 57 | if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' 58 | 59 | return false 60 | } 61 | 62 | Affix.prototype.getPinnedOffset = function () { 63 | if (this.pinnedOffset) return this.pinnedOffset 64 | this.$element.removeClass(Affix.RESET).addClass('affix') 65 | var scrollTop = this.$target.scrollTop() 66 | var position = this.$element.offset() 67 | return (this.pinnedOffset = position.top - scrollTop) 68 | } 69 | 70 | Affix.prototype.checkPositionWithEventLoop = function () { 71 | setTimeout($.proxy(this.checkPosition, this), 1) 72 | } 73 | 74 | Affix.prototype.checkPosition = function () { 75 | if (!this.$element.is(':visible')) return 76 | 77 | var height = this.$element.height() 78 | var offset = this.options.offset 79 | var offsetTop = offset.top 80 | var offsetBottom = offset.bottom 81 | var scrollHeight = Math.max($(document).height(), $(document.body).height()) 82 | 83 | if (typeof offset != 'object') offsetBottom = offsetTop = offset 84 | if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) 85 | if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) 86 | 87 | var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) 88 | 89 | if (this.affixed != affix) { 90 | if (this.unpin != null) this.$element.css('top', '') 91 | 92 | var affixType = 'affix' + (affix ? '-' + affix : '') 93 | var e = $.Event(affixType + '.bs.affix') 94 | 95 | this.$element.trigger(e) 96 | 97 | if (e.isDefaultPrevented()) return 98 | 99 | this.affixed = affix 100 | this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null 101 | 102 | this.$element 103 | .removeClass(Affix.RESET) 104 | .addClass(affixType) 105 | .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') 106 | } 107 | 108 | if (affix == 'bottom') { 109 | this.$element.offset({ 110 | top: scrollHeight - height - offsetBottom 111 | }) 112 | } 113 | } 114 | 115 | 116 | // AFFIX PLUGIN DEFINITION 117 | // ======================= 118 | 119 | function Plugin(option) { 120 | return this.each(function () { 121 | var $this = $(this) 122 | var data = $this.data('bs.affix') 123 | var options = typeof option == 'object' && option 124 | 125 | if (!data) $this.data('bs.affix', (data = new Affix(this, options))) 126 | if (typeof option == 'string') data[option]() 127 | }) 128 | } 129 | 130 | var old = $.fn.affix 131 | 132 | $.fn.affix = Plugin 133 | $.fn.affix.Constructor = Affix 134 | 135 | 136 | // AFFIX NO CONFLICT 137 | // ================= 138 | 139 | $.fn.affix.noConflict = function () { 140 | $.fn.affix = old 141 | return this 142 | } 143 | 144 | 145 | // AFFIX DATA-API 146 | // ============== 147 | 148 | $(window).on('load', function () { 149 | $('[data-spy="affix"]').each(function () { 150 | var $spy = $(this) 151 | var data = $spy.data() 152 | 153 | data.offset = data.offset || {} 154 | 155 | if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom 156 | if (data.offsetTop != null) data.offset.top = data.offsetTop 157 | 158 | Plugin.call($spy, data) 159 | }) 160 | }) 161 | 162 | }(jQuery); 163 | -------------------------------------------------------------------------------- /javascripts/bootstrap/alert.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: alert.js v3.3.7 3 | * http://getbootstrap.com/javascript/#alerts 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // ALERT CLASS DEFINITION 14 | // ====================== 15 | 16 | var dismiss = '[data-dismiss="alert"]' 17 | var Alert = function (el) { 18 | $(el).on('click', dismiss, this.close) 19 | } 20 | 21 | Alert.VERSION = '3.3.7' 22 | 23 | Alert.TRANSITION_DURATION = 150 24 | 25 | Alert.prototype.close = function (e) { 26 | var $this = $(this) 27 | var selector = $this.attr('data-target') 28 | 29 | if (!selector) { 30 | selector = $this.attr('href') 31 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 32 | } 33 | 34 | var $parent = $(selector === '#' ? [] : selector) 35 | 36 | if (e) e.preventDefault() 37 | 38 | if (!$parent.length) { 39 | $parent = $this.closest('.alert') 40 | } 41 | 42 | $parent.trigger(e = $.Event('close.bs.alert')) 43 | 44 | if (e.isDefaultPrevented()) return 45 | 46 | $parent.removeClass('in') 47 | 48 | function removeElement() { 49 | // detach from parent, fire event then clean up data 50 | $parent.detach().trigger('closed.bs.alert').remove() 51 | } 52 | 53 | $.support.transition && $parent.hasClass('fade') ? 54 | $parent 55 | .one('bsTransitionEnd', removeElement) 56 | .emulateTransitionEnd(Alert.TRANSITION_DURATION) : 57 | removeElement() 58 | } 59 | 60 | 61 | // ALERT PLUGIN DEFINITION 62 | // ======================= 63 | 64 | function Plugin(option) { 65 | return this.each(function () { 66 | var $this = $(this) 67 | var data = $this.data('bs.alert') 68 | 69 | if (!data) $this.data('bs.alert', (data = new Alert(this))) 70 | if (typeof option == 'string') data[option].call($this) 71 | }) 72 | } 73 | 74 | var old = $.fn.alert 75 | 76 | $.fn.alert = Plugin 77 | $.fn.alert.Constructor = Alert 78 | 79 | 80 | // ALERT NO CONFLICT 81 | // ================= 82 | 83 | $.fn.alert.noConflict = function () { 84 | $.fn.alert = old 85 | return this 86 | } 87 | 88 | 89 | // ALERT DATA-API 90 | // ============== 91 | 92 | $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) 93 | 94 | }(jQuery); 95 | -------------------------------------------------------------------------------- /javascripts/bootstrap/button.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: button.js v3.3.7 3 | * http://getbootstrap.com/javascript/#buttons 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // BUTTON PUBLIC CLASS DEFINITION 14 | // ============================== 15 | 16 | var Button = function (element, options) { 17 | this.$element = $(element) 18 | this.options = $.extend({}, Button.DEFAULTS, options) 19 | this.isLoading = false 20 | } 21 | 22 | Button.VERSION = '3.3.7' 23 | 24 | Button.DEFAULTS = { 25 | loadingText: 'loading...' 26 | } 27 | 28 | Button.prototype.setState = function (state) { 29 | var d = 'disabled' 30 | var $el = this.$element 31 | var val = $el.is('input') ? 'val' : 'html' 32 | var data = $el.data() 33 | 34 | state += 'Text' 35 | 36 | if (data.resetText == null) $el.data('resetText', $el[val]()) 37 | 38 | // push to event loop to allow forms to submit 39 | setTimeout($.proxy(function () { 40 | $el[val](data[state] == null ? this.options[state] : data[state]) 41 | 42 | if (state == 'loadingText') { 43 | this.isLoading = true 44 | $el.addClass(d).attr(d, d).prop(d, true) 45 | } else if (this.isLoading) { 46 | this.isLoading = false 47 | $el.removeClass(d).removeAttr(d).prop(d, false) 48 | } 49 | }, this), 0) 50 | } 51 | 52 | Button.prototype.toggle = function () { 53 | var changed = true 54 | var $parent = this.$element.closest('[data-toggle="buttons"]') 55 | 56 | if ($parent.length) { 57 | var $input = this.$element.find('input') 58 | if ($input.prop('type') == 'radio') { 59 | if ($input.prop('checked')) changed = false 60 | $parent.find('.active').removeClass('active') 61 | this.$element.addClass('active') 62 | } else if ($input.prop('type') == 'checkbox') { 63 | if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false 64 | this.$element.toggleClass('active') 65 | } 66 | $input.prop('checked', this.$element.hasClass('active')) 67 | if (changed) $input.trigger('change') 68 | } else { 69 | this.$element.attr('aria-pressed', !this.$element.hasClass('active')) 70 | this.$element.toggleClass('active') 71 | } 72 | } 73 | 74 | 75 | // BUTTON PLUGIN DEFINITION 76 | // ======================== 77 | 78 | function Plugin(option) { 79 | return this.each(function () { 80 | var $this = $(this) 81 | var data = $this.data('bs.button') 82 | var options = typeof option == 'object' && option 83 | 84 | if (!data) $this.data('bs.button', (data = new Button(this, options))) 85 | 86 | if (option == 'toggle') data.toggle() 87 | else if (option) data.setState(option) 88 | }) 89 | } 90 | 91 | var old = $.fn.button 92 | 93 | $.fn.button = Plugin 94 | $.fn.button.Constructor = Button 95 | 96 | 97 | // BUTTON NO CONFLICT 98 | // ================== 99 | 100 | $.fn.button.noConflict = function () { 101 | $.fn.button = old 102 | return this 103 | } 104 | 105 | 106 | // BUTTON DATA-API 107 | // =============== 108 | 109 | $(document) 110 | .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { 111 | var $btn = $(e.target).closest('.btn') 112 | Plugin.call($btn, 'toggle') 113 | if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { 114 | // Prevent double click on radios, and the double selections (so cancellation) on checkboxes 115 | e.preventDefault() 116 | // The target component still receive the focus 117 | if ($btn.is('input,button')) $btn.trigger('focus') 118 | else $btn.find('input:visible,button:visible').first().trigger('focus') 119 | } 120 | }) 121 | .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { 122 | $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) 123 | }) 124 | 125 | }(jQuery); 126 | -------------------------------------------------------------------------------- /javascripts/bootstrap/collapse.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: collapse.js v3.3.7 3 | * http://getbootstrap.com/javascript/#collapse 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | /* jshint latedef: false */ 10 | 11 | +function ($) { 12 | 'use strict'; 13 | 14 | // COLLAPSE PUBLIC CLASS DEFINITION 15 | // ================================ 16 | 17 | var Collapse = function (element, options) { 18 | this.$element = $(element) 19 | this.options = $.extend({}, Collapse.DEFAULTS, options) 20 | this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + 21 | '[data-toggle="collapse"][data-target="#' + element.id + '"]') 22 | this.transitioning = null 23 | 24 | if (this.options.parent) { 25 | this.$parent = this.getParent() 26 | } else { 27 | this.addAriaAndCollapsedClass(this.$element, this.$trigger) 28 | } 29 | 30 | if (this.options.toggle) this.toggle() 31 | } 32 | 33 | Collapse.VERSION = '3.3.7' 34 | 35 | Collapse.TRANSITION_DURATION = 350 36 | 37 | Collapse.DEFAULTS = { 38 | toggle: true 39 | } 40 | 41 | Collapse.prototype.dimension = function () { 42 | var hasWidth = this.$element.hasClass('width') 43 | return hasWidth ? 'width' : 'height' 44 | } 45 | 46 | Collapse.prototype.show = function () { 47 | if (this.transitioning || this.$element.hasClass('in')) return 48 | 49 | var activesData 50 | var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') 51 | 52 | if (actives && actives.length) { 53 | activesData = actives.data('bs.collapse') 54 | if (activesData && activesData.transitioning) return 55 | } 56 | 57 | var startEvent = $.Event('show.bs.collapse') 58 | this.$element.trigger(startEvent) 59 | if (startEvent.isDefaultPrevented()) return 60 | 61 | if (actives && actives.length) { 62 | Plugin.call(actives, 'hide') 63 | activesData || actives.data('bs.collapse', null) 64 | } 65 | 66 | var dimension = this.dimension() 67 | 68 | this.$element 69 | .removeClass('collapse') 70 | .addClass('collapsing')[dimension](0) 71 | .attr('aria-expanded', true) 72 | 73 | this.$trigger 74 | .removeClass('collapsed') 75 | .attr('aria-expanded', true) 76 | 77 | this.transitioning = 1 78 | 79 | var complete = function () { 80 | this.$element 81 | .removeClass('collapsing') 82 | .addClass('collapse in')[dimension]('') 83 | this.transitioning = 0 84 | this.$element 85 | .trigger('shown.bs.collapse') 86 | } 87 | 88 | if (!$.support.transition) return complete.call(this) 89 | 90 | var scrollSize = $.camelCase(['scroll', dimension].join('-')) 91 | 92 | this.$element 93 | .one('bsTransitionEnd', $.proxy(complete, this)) 94 | .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) 95 | } 96 | 97 | Collapse.prototype.hide = function () { 98 | if (this.transitioning || !this.$element.hasClass('in')) return 99 | 100 | var startEvent = $.Event('hide.bs.collapse') 101 | this.$element.trigger(startEvent) 102 | if (startEvent.isDefaultPrevented()) return 103 | 104 | var dimension = this.dimension() 105 | 106 | this.$element[dimension](this.$element[dimension]())[0].offsetHeight 107 | 108 | this.$element 109 | .addClass('collapsing') 110 | .removeClass('collapse in') 111 | .attr('aria-expanded', false) 112 | 113 | this.$trigger 114 | .addClass('collapsed') 115 | .attr('aria-expanded', false) 116 | 117 | this.transitioning = 1 118 | 119 | var complete = function () { 120 | this.transitioning = 0 121 | this.$element 122 | .removeClass('collapsing') 123 | .addClass('collapse') 124 | .trigger('hidden.bs.collapse') 125 | } 126 | 127 | if (!$.support.transition) return complete.call(this) 128 | 129 | this.$element 130 | [dimension](0) 131 | .one('bsTransitionEnd', $.proxy(complete, this)) 132 | .emulateTransitionEnd(Collapse.TRANSITION_DURATION) 133 | } 134 | 135 | Collapse.prototype.toggle = function () { 136 | this[this.$element.hasClass('in') ? 'hide' : 'show']() 137 | } 138 | 139 | Collapse.prototype.getParent = function () { 140 | return $(this.options.parent) 141 | .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') 142 | .each($.proxy(function (i, element) { 143 | var $element = $(element) 144 | this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) 145 | }, this)) 146 | .end() 147 | } 148 | 149 | Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { 150 | var isOpen = $element.hasClass('in') 151 | 152 | $element.attr('aria-expanded', isOpen) 153 | $trigger 154 | .toggleClass('collapsed', !isOpen) 155 | .attr('aria-expanded', isOpen) 156 | } 157 | 158 | function getTargetFromTrigger($trigger) { 159 | var href 160 | var target = $trigger.attr('data-target') 161 | || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 162 | 163 | return $(target) 164 | } 165 | 166 | 167 | // COLLAPSE PLUGIN DEFINITION 168 | // ========================== 169 | 170 | function Plugin(option) { 171 | return this.each(function () { 172 | var $this = $(this) 173 | var data = $this.data('bs.collapse') 174 | var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) 175 | 176 | if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false 177 | if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) 178 | if (typeof option == 'string') data[option]() 179 | }) 180 | } 181 | 182 | var old = $.fn.collapse 183 | 184 | $.fn.collapse = Plugin 185 | $.fn.collapse.Constructor = Collapse 186 | 187 | 188 | // COLLAPSE NO CONFLICT 189 | // ==================== 190 | 191 | $.fn.collapse.noConflict = function () { 192 | $.fn.collapse = old 193 | return this 194 | } 195 | 196 | 197 | // COLLAPSE DATA-API 198 | // ================= 199 | 200 | $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { 201 | var $this = $(this) 202 | 203 | if (!$this.attr('data-target')) e.preventDefault() 204 | 205 | var $target = getTargetFromTrigger($this) 206 | var data = $target.data('bs.collapse') 207 | var option = data ? 'toggle' : $this.data() 208 | 209 | Plugin.call($target, option) 210 | }) 211 | 212 | }(jQuery); 213 | -------------------------------------------------------------------------------- /javascripts/bootstrap/dropdown.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: dropdown.js v3.3.7 3 | * http://getbootstrap.com/javascript/#dropdowns 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // DROPDOWN CLASS DEFINITION 14 | // ========================= 15 | 16 | var backdrop = '.dropdown-backdrop' 17 | var toggle = '[data-toggle="dropdown"]' 18 | var Dropdown = function (element) { 19 | $(element).on('click.bs.dropdown', this.toggle) 20 | } 21 | 22 | Dropdown.VERSION = '3.3.7' 23 | 24 | function getParent($this) { 25 | var selector = $this.attr('data-target') 26 | 27 | if (!selector) { 28 | selector = $this.attr('href') 29 | selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 30 | } 31 | 32 | var $parent = selector && $(selector) 33 | 34 | return $parent && $parent.length ? $parent : $this.parent() 35 | } 36 | 37 | function clearMenus(e) { 38 | if (e && e.which === 3) return 39 | $(backdrop).remove() 40 | $(toggle).each(function () { 41 | var $this = $(this) 42 | var $parent = getParent($this) 43 | var relatedTarget = { relatedTarget: this } 44 | 45 | if (!$parent.hasClass('open')) return 46 | 47 | if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return 48 | 49 | $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) 50 | 51 | if (e.isDefaultPrevented()) return 52 | 53 | $this.attr('aria-expanded', 'false') 54 | $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) 55 | }) 56 | } 57 | 58 | Dropdown.prototype.toggle = function (e) { 59 | var $this = $(this) 60 | 61 | if ($this.is('.disabled, :disabled')) return 62 | 63 | var $parent = getParent($this) 64 | var isActive = $parent.hasClass('open') 65 | 66 | clearMenus() 67 | 68 | if (!isActive) { 69 | if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { 70 | // if mobile we use a backdrop because click events don't delegate 71 | $(document.createElement('div')) 72 | .addClass('dropdown-backdrop') 73 | .insertAfter($(this)) 74 | .on('click', clearMenus) 75 | } 76 | 77 | var relatedTarget = { relatedTarget: this } 78 | $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) 79 | 80 | if (e.isDefaultPrevented()) return 81 | 82 | $this 83 | .trigger('focus') 84 | .attr('aria-expanded', 'true') 85 | 86 | $parent 87 | .toggleClass('open') 88 | .trigger($.Event('shown.bs.dropdown', relatedTarget)) 89 | } 90 | 91 | return false 92 | } 93 | 94 | Dropdown.prototype.keydown = function (e) { 95 | if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return 96 | 97 | var $this = $(this) 98 | 99 | e.preventDefault() 100 | e.stopPropagation() 101 | 102 | if ($this.is('.disabled, :disabled')) return 103 | 104 | var $parent = getParent($this) 105 | var isActive = $parent.hasClass('open') 106 | 107 | if (!isActive && e.which != 27 || isActive && e.which == 27) { 108 | if (e.which == 27) $parent.find(toggle).trigger('focus') 109 | return $this.trigger('click') 110 | } 111 | 112 | var desc = ' li:not(.disabled):visible a' 113 | var $items = $parent.find('.dropdown-menu' + desc) 114 | 115 | if (!$items.length) return 116 | 117 | var index = $items.index(e.target) 118 | 119 | if (e.which == 38 && index > 0) index-- // up 120 | if (e.which == 40 && index < $items.length - 1) index++ // down 121 | if (!~index) index = 0 122 | 123 | $items.eq(index).trigger('focus') 124 | } 125 | 126 | 127 | // DROPDOWN PLUGIN DEFINITION 128 | // ========================== 129 | 130 | function Plugin(option) { 131 | return this.each(function () { 132 | var $this = $(this) 133 | var data = $this.data('bs.dropdown') 134 | 135 | if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) 136 | if (typeof option == 'string') data[option].call($this) 137 | }) 138 | } 139 | 140 | var old = $.fn.dropdown 141 | 142 | $.fn.dropdown = Plugin 143 | $.fn.dropdown.Constructor = Dropdown 144 | 145 | 146 | // DROPDOWN NO CONFLICT 147 | // ==================== 148 | 149 | $.fn.dropdown.noConflict = function () { 150 | $.fn.dropdown = old 151 | return this 152 | } 153 | 154 | 155 | // APPLY TO STANDARD DROPDOWN ELEMENTS 156 | // =================================== 157 | 158 | $(document) 159 | .on('click.bs.dropdown.data-api', clearMenus) 160 | .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) 161 | .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) 162 | .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) 163 | .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) 164 | 165 | }(jQuery); 166 | -------------------------------------------------------------------------------- /javascripts/bootstrap/popover.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: popover.js v3.3.7 3 | * http://getbootstrap.com/javascript/#popovers 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // POPOVER PUBLIC CLASS DEFINITION 14 | // =============================== 15 | 16 | var Popover = function (element, options) { 17 | this.init('popover', element, options) 18 | } 19 | 20 | if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') 21 | 22 | Popover.VERSION = '3.3.7' 23 | 24 | Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { 25 | placement: 'right', 26 | trigger: 'click', 27 | content: '', 28 | template: '' 29 | }) 30 | 31 | 32 | // NOTE: POPOVER EXTENDS tooltip.js 33 | // ================================ 34 | 35 | Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) 36 | 37 | Popover.prototype.constructor = Popover 38 | 39 | Popover.prototype.getDefaults = function () { 40 | return Popover.DEFAULTS 41 | } 42 | 43 | Popover.prototype.setContent = function () { 44 | var $tip = this.tip() 45 | var title = this.getTitle() 46 | var content = this.getContent() 47 | 48 | $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) 49 | $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events 50 | this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' 51 | ](content) 52 | 53 | $tip.removeClass('fade top bottom left right in') 54 | 55 | // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do 56 | // this manually by checking the contents. 57 | if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() 58 | } 59 | 60 | Popover.prototype.hasContent = function () { 61 | return this.getTitle() || this.getContent() 62 | } 63 | 64 | Popover.prototype.getContent = function () { 65 | var $e = this.$element 66 | var o = this.options 67 | 68 | return $e.attr('data-content') 69 | || (typeof o.content == 'function' ? 70 | o.content.call($e[0]) : 71 | o.content) 72 | } 73 | 74 | Popover.prototype.arrow = function () { 75 | return (this.$arrow = this.$arrow || this.tip().find('.arrow')) 76 | } 77 | 78 | 79 | // POPOVER PLUGIN DEFINITION 80 | // ========================= 81 | 82 | function Plugin(option) { 83 | return this.each(function () { 84 | var $this = $(this) 85 | var data = $this.data('bs.popover') 86 | var options = typeof option == 'object' && option 87 | 88 | if (!data && /destroy|hide/.test(option)) return 89 | if (!data) $this.data('bs.popover', (data = new Popover(this, options))) 90 | if (typeof option == 'string') data[option]() 91 | }) 92 | } 93 | 94 | var old = $.fn.popover 95 | 96 | $.fn.popover = Plugin 97 | $.fn.popover.Constructor = Popover 98 | 99 | 100 | // POPOVER NO CONFLICT 101 | // =================== 102 | 103 | $.fn.popover.noConflict = function () { 104 | $.fn.popover = old 105 | return this 106 | } 107 | 108 | }(jQuery); 109 | -------------------------------------------------------------------------------- /javascripts/bootstrap/scrollspy.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: scrollspy.js v3.3.7 3 | * http://getbootstrap.com/javascript/#scrollspy 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // SCROLLSPY CLASS DEFINITION 14 | // ========================== 15 | 16 | function ScrollSpy(element, options) { 17 | this.$body = $(document.body) 18 | this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) 19 | this.options = $.extend({}, ScrollSpy.DEFAULTS, options) 20 | this.selector = (this.options.target || '') + ' .nav li > a' 21 | this.offsets = [] 22 | this.targets = [] 23 | this.activeTarget = null 24 | this.scrollHeight = 0 25 | 26 | this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) 27 | this.refresh() 28 | this.process() 29 | } 30 | 31 | ScrollSpy.VERSION = '3.3.7' 32 | 33 | ScrollSpy.DEFAULTS = { 34 | offset: 10 35 | } 36 | 37 | ScrollSpy.prototype.getScrollHeight = function () { 38 | return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) 39 | } 40 | 41 | ScrollSpy.prototype.refresh = function () { 42 | var that = this 43 | var offsetMethod = 'offset' 44 | var offsetBase = 0 45 | 46 | this.offsets = [] 47 | this.targets = [] 48 | this.scrollHeight = this.getScrollHeight() 49 | 50 | if (!$.isWindow(this.$scrollElement[0])) { 51 | offsetMethod = 'position' 52 | offsetBase = this.$scrollElement.scrollTop() 53 | } 54 | 55 | this.$body 56 | .find(this.selector) 57 | .map(function () { 58 | var $el = $(this) 59 | var href = $el.data('target') || $el.attr('href') 60 | var $href = /^#./.test(href) && $(href) 61 | 62 | return ($href 63 | && $href.length 64 | && $href.is(':visible') 65 | && [[$href[offsetMethod]().top + offsetBase, href]]) || null 66 | }) 67 | .sort(function (a, b) { return a[0] - b[0] }) 68 | .each(function () { 69 | that.offsets.push(this[0]) 70 | that.targets.push(this[1]) 71 | }) 72 | } 73 | 74 | ScrollSpy.prototype.process = function () { 75 | var scrollTop = this.$scrollElement.scrollTop() + this.options.offset 76 | var scrollHeight = this.getScrollHeight() 77 | var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() 78 | var offsets = this.offsets 79 | var targets = this.targets 80 | var activeTarget = this.activeTarget 81 | var i 82 | 83 | if (this.scrollHeight != scrollHeight) { 84 | this.refresh() 85 | } 86 | 87 | if (scrollTop >= maxScroll) { 88 | return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) 89 | } 90 | 91 | if (activeTarget && scrollTop < offsets[0]) { 92 | this.activeTarget = null 93 | return this.clear() 94 | } 95 | 96 | for (i = offsets.length; i--;) { 97 | activeTarget != targets[i] 98 | && scrollTop >= offsets[i] 99 | && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) 100 | && this.activate(targets[i]) 101 | } 102 | } 103 | 104 | ScrollSpy.prototype.activate = function (target) { 105 | this.activeTarget = target 106 | 107 | this.clear() 108 | 109 | var selector = this.selector + 110 | '[data-target="' + target + '"],' + 111 | this.selector + '[href="' + target + '"]' 112 | 113 | var active = $(selector) 114 | .parents('li') 115 | .addClass('active') 116 | 117 | if (active.parent('.dropdown-menu').length) { 118 | active = active 119 | .closest('li.dropdown') 120 | .addClass('active') 121 | } 122 | 123 | active.trigger('activate.bs.scrollspy') 124 | } 125 | 126 | ScrollSpy.prototype.clear = function () { 127 | $(this.selector) 128 | .parentsUntil(this.options.target, '.active') 129 | .removeClass('active') 130 | } 131 | 132 | 133 | // SCROLLSPY PLUGIN DEFINITION 134 | // =========================== 135 | 136 | function Plugin(option) { 137 | return this.each(function () { 138 | var $this = $(this) 139 | var data = $this.data('bs.scrollspy') 140 | var options = typeof option == 'object' && option 141 | 142 | if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) 143 | if (typeof option == 'string') data[option]() 144 | }) 145 | } 146 | 147 | var old = $.fn.scrollspy 148 | 149 | $.fn.scrollspy = Plugin 150 | $.fn.scrollspy.Constructor = ScrollSpy 151 | 152 | 153 | // SCROLLSPY NO CONFLICT 154 | // ===================== 155 | 156 | $.fn.scrollspy.noConflict = function () { 157 | $.fn.scrollspy = old 158 | return this 159 | } 160 | 161 | 162 | // SCROLLSPY DATA-API 163 | // ================== 164 | 165 | $(window).on('load.bs.scrollspy.data-api', function () { 166 | $('[data-spy="scroll"]').each(function () { 167 | var $spy = $(this) 168 | Plugin.call($spy, $spy.data()) 169 | }) 170 | }) 171 | 172 | }(jQuery); 173 | -------------------------------------------------------------------------------- /javascripts/bootstrap/tab.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: tab.js v3.3.7 3 | * http://getbootstrap.com/javascript/#tabs 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // TAB CLASS DEFINITION 14 | // ==================== 15 | 16 | var Tab = function (element) { 17 | // jscs:disable requireDollarBeforejQueryAssignment 18 | this.element = $(element) 19 | // jscs:enable requireDollarBeforejQueryAssignment 20 | } 21 | 22 | Tab.VERSION = '3.3.7' 23 | 24 | Tab.TRANSITION_DURATION = 150 25 | 26 | Tab.prototype.show = function () { 27 | var $this = this.element 28 | var $ul = $this.closest('ul:not(.dropdown-menu)') 29 | var selector = $this.data('target') 30 | 31 | if (!selector) { 32 | selector = $this.attr('href') 33 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 34 | } 35 | 36 | if ($this.parent('li').hasClass('active')) return 37 | 38 | var $previous = $ul.find('.active:last a') 39 | var hideEvent = $.Event('hide.bs.tab', { 40 | relatedTarget: $this[0] 41 | }) 42 | var showEvent = $.Event('show.bs.tab', { 43 | relatedTarget: $previous[0] 44 | }) 45 | 46 | $previous.trigger(hideEvent) 47 | $this.trigger(showEvent) 48 | 49 | if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return 50 | 51 | var $target = $(selector) 52 | 53 | this.activate($this.closest('li'), $ul) 54 | this.activate($target, $target.parent(), function () { 55 | $previous.trigger({ 56 | type: 'hidden.bs.tab', 57 | relatedTarget: $this[0] 58 | }) 59 | $this.trigger({ 60 | type: 'shown.bs.tab', 61 | relatedTarget: $previous[0] 62 | }) 63 | }) 64 | } 65 | 66 | Tab.prototype.activate = function (element, container, callback) { 67 | var $active = container.find('> .active') 68 | var transition = callback 69 | && $.support.transition 70 | && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) 71 | 72 | function next() { 73 | $active 74 | .removeClass('active') 75 | .find('> .dropdown-menu > .active') 76 | .removeClass('active') 77 | .end() 78 | .find('[data-toggle="tab"]') 79 | .attr('aria-expanded', false) 80 | 81 | element 82 | .addClass('active') 83 | .find('[data-toggle="tab"]') 84 | .attr('aria-expanded', true) 85 | 86 | if (transition) { 87 | element[0].offsetWidth // reflow for transition 88 | element.addClass('in') 89 | } else { 90 | element.removeClass('fade') 91 | } 92 | 93 | if (element.parent('.dropdown-menu').length) { 94 | element 95 | .closest('li.dropdown') 96 | .addClass('active') 97 | .end() 98 | .find('[data-toggle="tab"]') 99 | .attr('aria-expanded', true) 100 | } 101 | 102 | callback && callback() 103 | } 104 | 105 | $active.length && transition ? 106 | $active 107 | .one('bsTransitionEnd', next) 108 | .emulateTransitionEnd(Tab.TRANSITION_DURATION) : 109 | next() 110 | 111 | $active.removeClass('in') 112 | } 113 | 114 | 115 | // TAB PLUGIN DEFINITION 116 | // ===================== 117 | 118 | function Plugin(option) { 119 | return this.each(function () { 120 | var $this = $(this) 121 | var data = $this.data('bs.tab') 122 | 123 | if (!data) $this.data('bs.tab', (data = new Tab(this))) 124 | if (typeof option == 'string') data[option]() 125 | }) 126 | } 127 | 128 | var old = $.fn.tab 129 | 130 | $.fn.tab = Plugin 131 | $.fn.tab.Constructor = Tab 132 | 133 | 134 | // TAB NO CONFLICT 135 | // =============== 136 | 137 | $.fn.tab.noConflict = function () { 138 | $.fn.tab = old 139 | return this 140 | } 141 | 142 | 143 | // TAB DATA-API 144 | // ============ 145 | 146 | var clickHandler = function (e) { 147 | e.preventDefault() 148 | Plugin.call($(this), 'show') 149 | } 150 | 151 | $(document) 152 | .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) 153 | .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) 154 | 155 | }(jQuery); 156 | -------------------------------------------------------------------------------- /javascripts/bootstrap/transition.js: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | * Bootstrap: transition.js v3.3.7 3 | * http://getbootstrap.com/javascript/#transitions 4 | * ======================================================================== 5 | * Copyright 2011-2016 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | * ======================================================================== */ 8 | 9 | 10 | +function ($) { 11 | 'use strict'; 12 | 13 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) 14 | // ============================================================ 15 | 16 | function transitionEnd() { 17 | var el = document.createElement('bootstrap') 18 | 19 | var transEndEventNames = { 20 | WebkitTransition : 'webkitTransitionEnd', 21 | MozTransition : 'transitionend', 22 | OTransition : 'oTransitionEnd otransitionend', 23 | transition : 'transitionend' 24 | } 25 | 26 | for (var name in transEndEventNames) { 27 | if (el.style[name] !== undefined) { 28 | return { end: transEndEventNames[name] } 29 | } 30 | } 31 | 32 | return false // explicit for ie8 ( ._.) 33 | } 34 | 35 | // http://blog.alexmaccaw.com/css-transitions 36 | $.fn.emulateTransitionEnd = function (duration) { 37 | var called = false 38 | var $el = this 39 | $(this).one('bsTransitionEnd', function () { called = true }) 40 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) } 41 | setTimeout(callback, duration) 42 | return this 43 | } 44 | 45 | $(function () { 46 | $.support.transition = transitionEnd() 47 | 48 | if (!$.support.transition) return 49 | 50 | $.event.special.bsTransitionEnd = { 51 | bindType: $.support.transition.end, 52 | delegateType: $.support.transition.end, 53 | handle: function (e) { 54 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) 55 | } 56 | } 57 | }) 58 | 59 | }(jQuery); 60 | -------------------------------------------------------------------------------- /stylesheets/.sass-cache/a1f2fb2ba2621f57b0f49a158adad1dc34d4df59/_bootstrap.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/a1f2fb2ba2621f57b0f49a158adad1dc34d4df59/_bootstrap.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/a1f2fb2ba2621f57b0f49a158adad1dc34d4df59/style.scssc: -------------------------------------------------------------------------------- 1 | 3.4.21 (Selective Steve) 2 | e7142cb80ec1fe7ce14d0ecf7dfa6caa0d74232e 3 | o:Sass::Tree::RootNode :@children[o:Sass::Tree::ImportNode :@imported_filenameI"bootstrap:ET;[:@template0: 4 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position; i: @offseti: @end_poso;; i;i: 5 | @fileI"E/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets/style.scss; T:@importero: Sass::Importers::Filesystem: 6 | @rootI":/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets; T:@real_rootI":/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets; T:@same_name_warningso:Set: 7 | @hash{: @options{:@imported_file0o:Sass::Tree::RuleNode: 8 | @rule[I".main-container; T:@parsed_ruleso:"Sass::Selector::CommaSequence: @members[o:Sass::Selector::Sequence; [o:#Sass::Selector::SimpleSequence ; [o:Sass::Selector::Class: 9 | @nameI"main-container; T; i:@filename0: @subject0: @sourceso;;{; o; ;o;; i;i;o;; i;i;0;0; i;%0; i; i;%0:@selector_source_rangeo; ;o;; i;i;o;; i;i;@ ;@: 10 | @tabsi;[o:Sass::Tree::PropNode;$[I"margin-top; T: @valueo: Sass::Script::Tree::Literal;+o: Sass::Script::Value::String ;+I" 80px; T: 11 | @type:identifier:"@deprecated_interp_equivalent0;@; i ; o; ;o;; i ;i;o;; i ;i;@ ;@;)i:@prop_syntax:new;[; i ; o; ;o;; i ;i;o;; i ;i;@ ;@:@name_source_rangeo; ;@3;o;; i ;i;@ ;@:@value_source_rangeo; ;o;; i ;i;@4;@ ;@;@; i; o; ;@%;o;; i;i;@ ;@:@has_childrenT;@o;;[I".row-padded; T;o;; [o;!; [o;" ; [o;#;$I"row-padded; T; i ;%0;&0;'o;;{; o; ;o;; i;i;o;; i;i;0;0; i ;%0; i ; i ;%0;(o; ;o;; i ;i;o;; i ;i;@ ;@;)i;[o;*;$[I"padding-top; T;+o;,;+o;- ;+I" 10px; T;.;/;00;@; i ; o; ;o;; i ;i;o;; i ;i;@ ;@;)i;1;2;[; i ; o; ;o;; i ;i;o;; i ;i;@ ;@;3o; ;@Z;o;; i ;i;@ ;@;4o; ;o;; i ;i;@[;@ ;@;@o;*;$[I"padding-bottom; T;+o;,;+o;- ;+I" 10px; T;.;/;00;@; i; o; ;o;; i;i;o;; i;i;@ ;@;)i;1;2;[; i; o; ;o;; i;i;o;; i;i;@ ;@;3o; ;@k;o;; i;i;@ ;@;4o; ;o;; i;i;@l;@ ;@;@; i ; o; ;@L;o;; i ;i;@ ;@;5T;@; 12 | I"z@import 'bootstrap'; 13 | 14 | .main-container { 15 | margin-top:80px; 16 | } 17 | 18 | .row-padded { 19 | padding-top:10px; 20 | padding-bottom:10px; 21 | }; T; i; o; ;o;; i;i;o;; i;i;@ ;@;5T;@ -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_alerts.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_alerts.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_background-variant.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_background-variant.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_border-radius.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_border-radius.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_buttons.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_buttons.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_center-block.scssc: -------------------------------------------------------------------------------- 1 | 3.4.21 (Selective Steve) 2 | 3191b9bbbc299c1a57b6df1fada51f5840cbd54f 3 | o:Sass::Tree::RootNode :@children[o:Sass::Tree::CommentNode : @value[I"-/* Center-align a block level element */:ET: 4 | @type: silent;[: 5 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position; i: @offseti: @end_poso;; i;i+: 6 | @fileI"^/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets/bootstrap/mixins/_center-block.scss; T:@importero: Sass::Importers::Filesystem: 7 | @rootI":/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets; T:@real_rootI":/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets; T:@same_name_warningso:Set: 8 | @hash{: @options{o:Sass::Tree::MixinDefNode : 9 | @nameI"center-block; T: 10 | @args[: @splat0;[o:Sass::Tree::PropNode;[I" display; T;o: Sass::Script::Tree::Literal;o: Sass::Script::Value::String ;I" 11 | block; T; 12 | :identifier:"@deprecated_interp_equivalent0;@; i ; o; ;o;; i ;i;o;; i ;i;@;@: 13 | @tabsi:@prop_syntax:new;[; i ; o; ;o;; i ;i;o;; i ;i;@;@:@name_source_rangeo; ;@$;o;; i ;i;@;@:@value_source_rangeo; ;o;; i ;i;@%;@;@;@o; ;[I"margin-left; T;o;!;o;" ;I" auto; T; 14 | ;#;$0;@; i 15 | ; o; ;o;; i 16 | ;i;o;; i 17 | ;i;@;@;%i;&;';[; i 18 | ; o; ;o;; i 19 | ;i;o;; i 20 | ;i;@;@;(o; ;@5;o;; i 21 | ;i;@;@;)o; ;o;; i 22 | ;i;@6;@;@;@o; ;[I"margin-right; T;o;!;o;" ;I" auto; T; 23 | ;#;$0;@; i ; o; ;o;; i ;i;o;; i ;i;@;@;%i;&;';[; i ; o; ;o;; i ;i;o;; i ;i;@;@;(o; ;@F;o;; i ;i;@;@;)o; ;o;; i ;i;@G;@;@;@; i; o; ;o;; i;i;o;; i;i;@;@:@has_childrenT;@:@templateI"~// Center-align a block level element 24 | 25 | @mixin center-block() { 26 | display: block; 27 | margin-left: auto; 28 | margin-right: auto; 29 | } 30 | ; T; i; o; ;o;; i;i;o;; i;i;@;@;*T;@ -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_clearfix.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_clearfix.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_forms.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_forms.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_gradients.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_gradients.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_grid-framework.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_grid-framework.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_grid.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_grid.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_hide-text.scssc: -------------------------------------------------------------------------------- 1 | 3.4.21 (Selective Steve) 2 | b78a47275192f9014b615247bcee894ad35f6e7f 3 | o:Sass::Tree::RootNode :@children[ 4 | o:Sass::Tree::CommentNode : @value[I"M/* CSS image replacement 5 | * 6 | * Heads up! v3 launched with only `.hide-text()`, but per our pattern for 7 | * mixins being reused as classes with the same name, this doesn't hold up. As 8 | * of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 9 | * 10 | * Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 */:ET: 11 | @type: silent;[: 12 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position; i: @offseti: @end_poso;; i ;iN: 13 | @fileI"[/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets/bootstrap/mixins/_hide-text.scss; T:@importero: Sass::Importers::Filesystem: 14 | @rootI":/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets; T:@real_rootI":/Users/Bartboy0111/Desktop/bootstrap-test/stylesheets; T:@same_name_warningso:Set: 15 | @hash{: @options{o; ;[I";/* Deprecated as of v3.0.1 (has been removed in v4) */; T; 16 | ; ;[; i; o; ;o;; i;i;o;; i;i9;@;@;@o:Sass::Tree::MixinDefNode : 17 | @nameI"hide-text; T: 18 | @args[: @splat0;[ 19 | o:Sass::Tree::PropNode;[I" font; T;o: Sass::Script::Tree::Literal;o: Sass::Script::Value::String ;I" 20 | 0/0 a; T; 21 | :identifier:"@deprecated_interp_equivalent0;@; i; o; ;o;; i;i;o;; i;i;@;@: 22 | @tabsi:@prop_syntax:new;[; i; o; ;o;; i;i;o;; i;i;@;@:@name_source_rangeo; ;@+;o;; i;i ;@;@:@value_source_rangeo; ;o;; i;i;@,;@;@;@o; ;[I" 23 | color; T;o;!;o;" ;I"transparent; T; 24 | ;#;$0;@; i; o; ;o;; i;i;o;; i;i;@;@;%i;&;';[; i; o; ;o;; i;i;o;; i;i;@;@;(o; ;@<;o;; i;i ;@;@;)o; ;o;; i;i;@=;@;@;@o; ;[I"text-shadow; T;o;!;o;" ;I" none; T; 25 | ;#;$0;@; i; o; ;o;; i;i;o;; i;i;@;@;%i;&;';[; i; o; ;o;; i;i;o;; i;i;@;@;(o; ;@M;o;; i;i;@;@;)o; ;o;; i;i;@N;@;@;@o; ;[I"background-color; T;o;!;o;" ;I"transparent; T; 26 | ;#;$0;@; i; o; ;o;; i;i;o;; i;i%;@;@;%i;&;';[; i; o; ;o;; i;i;o;; i;i%;@;@;(o; ;@^;o;; i;i;@;@;)o; ;o;; i;i;@_;@;@;@o; ;[I" border; T;o;!;o;" ;I"0; T; 27 | ;#;$0;@; i; o; ;o;; i;i;o;; i;i;@;@;%i;&;';[; i; o; ;o;; i;i;o;; i;i;@;@;(o; ;@o;o;; i;i;@;@;)o; ;o;; i;i;@p;@;@;@; i; o; ;o;; i;i;o;; i;i;@;@:@has_childrenT;@o; ;[I"(/* New mixin to use as of v3.0.1 */; T; 28 | ; ;[; i; o; ;o;; i;i;o;; i;i&;@;@;@o; ;I"text-hide; T;[;0;[o:Sass::Tree::MixinNode;I"hide-text; T;[:@keywords{;0:@kwarg_splat0;[; i; o; ;o;; i;i;o;; i;i;@;@;@; i; o; ;o;; i;i;o;; i;i;@;@;*T;@:@templateI"N// CSS image replacement 29 | // 30 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 31 | // mixins being reused as classes with the same name, this doesn't hold up. As 32 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 33 | // 34 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 35 | 36 | // Deprecated as of v3.0.1 (has been removed in v4) 37 | @mixin hide-text() { 38 | font: 0/0 a; 39 | color: transparent; 40 | text-shadow: none; 41 | background-color: transparent; 42 | border: 0; 43 | } 44 | 45 | // New mixin to use as of v3.0.1 46 | @mixin text-hide() { 47 | @include hide-text; 48 | } 49 | ; T; i; o; ;o;; i;i;o;; i;i;@;@;*T;@ -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_image.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_image.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_labels.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_labels.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_list-group.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_list-group.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_nav-divider.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_nav-divider.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_nav-vertical-align.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_nav-vertical-align.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_opacity.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_opacity.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_pagination.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_pagination.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_panels.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_panels.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_progress-bar.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_progress-bar.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_reset-filter.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_reset-filter.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_reset-text.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_reset-text.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_resize.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_resize.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_responsive-visibility.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_responsive-visibility.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_size.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_size.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_tab-focus.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_tab-focus.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_table-row.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_table-row.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_text-emphasis.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_text-emphasis.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_text-overflow.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_text-overflow.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_vendor-prefixes.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/b26d6fe3ff017d52164dfca0cc1611c932117287/_vendor-prefixes.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_alerts.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_alerts.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_badges.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_badges.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_breadcrumbs.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_breadcrumbs.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_button-groups.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_button-groups.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_buttons.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_buttons.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_carousel.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_carousel.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_close.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_close.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_code.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_code.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_component-animations.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_component-animations.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_dropdowns.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_dropdowns.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_forms.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_forms.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_glyphicons.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_glyphicons.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_grid.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_grid.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_input-groups.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_input-groups.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_jumbotron.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_jumbotron.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_labels.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_labels.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_list-group.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_list-group.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_media.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_media.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_mixins.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_mixins.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_modals.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_modals.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_navbar.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_navbar.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_navs.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_navs.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_normalize.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_normalize.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_pager.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_pager.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_pagination.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_pagination.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_panels.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_panels.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_popovers.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_popovers.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_print.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_print.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_progress-bars.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_progress-bars.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_responsive-embed.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_responsive-embed.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_responsive-utilities.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_responsive-utilities.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_scaffolding.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_scaffolding.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_tables.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_tables.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_thumbnails.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_thumbnails.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_tooltip.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_tooltip.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_type.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_type.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_utilities.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_utilities.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_variables.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_variables.scssc -------------------------------------------------------------------------------- /stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_wells.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartboy011/bootstrap-test/7be64cb899a8b07e9ce9654b180d59cd587ab737/stylesheets/.sass-cache/faa100a7c4bec625f96d40f87b6bba79981481e5/_wells.scssc -------------------------------------------------------------------------------- /stylesheets/_bootstrap-compass.scss: -------------------------------------------------------------------------------- 1 | @function twbs-font-path($path) { 2 | @return font-url($path, true); 3 | } 4 | 5 | @function twbs-image-path($path) { 6 | @return image-url($path, true); 7 | } 8 | 9 | $bootstrap-sass-asset-helper: true; 10 | -------------------------------------------------------------------------------- /stylesheets/_bootstrap-mincer.scss: -------------------------------------------------------------------------------- 1 | // Mincer asset helper functions 2 | // 3 | // This must be imported into a .css.ejs.scss file. 4 | // Then, <% %>-interpolations will be parsed as strings by Sass, and evaluated by EJS after Sass compilation. 5 | 6 | 7 | @function twbs-font-path($path) { 8 | // do something like following 9 | // from "path/to/font.ext#suffix" to "<%- asset_path(path/to/font.ext)) + #suffix %>" 10 | // from "path/to/font.ext?#suffix" to "<%- asset_path(path/to/font.ext)) + ?#suffix %>" 11 | // or from "path/to/font.ext" just "<%- asset_path(path/to/font.ext)) %>" 12 | @return "<%- asset_path("#{$path}".replace(/[#?].*$/, '')) + "#{$path}".replace(/(^[^#?]*)([#?]?.*$)/, '$2') %>"; 13 | } 14 | 15 | @function twbs-image-path($file) { 16 | @return "<%- asset_path("#{$file}") %>"; 17 | } 18 | 19 | $bootstrap-sass-asset-helper: true; 20 | -------------------------------------------------------------------------------- /stylesheets/_bootstrap-sprockets.scss: -------------------------------------------------------------------------------- 1 | @function twbs-font-path($path) { 2 | @return font-path($path); 3 | } 4 | 5 | @function twbs-image-path($path) { 6 | @return image-path($path); 7 | } 8 | 9 | $bootstrap-sass-asset-helper: true; 10 | -------------------------------------------------------------------------------- /stylesheets/_bootstrap.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2016 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | 7 | // Core variables and mixins 8 | @import "bootstrap/variables"; 9 | @import "bootstrap/mixins"; 10 | 11 | // Reset and dependencies 12 | @import "bootstrap/normalize"; 13 | @import "bootstrap/print"; 14 | @import "bootstrap/glyphicons"; 15 | 16 | // Core CSS 17 | @import "bootstrap/scaffolding"; 18 | @import "bootstrap/type"; 19 | @import "bootstrap/code"; 20 | @import "bootstrap/grid"; 21 | @import "bootstrap/tables"; 22 | @import "bootstrap/forms"; 23 | @import "bootstrap/buttons"; 24 | 25 | // Components 26 | @import "bootstrap/component-animations"; 27 | @import "bootstrap/dropdowns"; 28 | @import "bootstrap/button-groups"; 29 | @import "bootstrap/input-groups"; 30 | @import "bootstrap/navs"; 31 | @import "bootstrap/navbar"; 32 | @import "bootstrap/breadcrumbs"; 33 | @import "bootstrap/pagination"; 34 | @import "bootstrap/pager"; 35 | @import "bootstrap/labels"; 36 | @import "bootstrap/badges"; 37 | @import "bootstrap/jumbotron"; 38 | @import "bootstrap/thumbnails"; 39 | @import "bootstrap/alerts"; 40 | @import "bootstrap/progress-bars"; 41 | @import "bootstrap/media"; 42 | @import "bootstrap/list-group"; 43 | @import "bootstrap/panels"; 44 | @import "bootstrap/responsive-embed"; 45 | @import "bootstrap/wells"; 46 | @import "bootstrap/close"; 47 | 48 | // Components w/ JavaScript 49 | @import "bootstrap/modals"; 50 | @import "bootstrap/tooltip"; 51 | @import "bootstrap/popovers"; 52 | @import "bootstrap/carousel"; 53 | 54 | // Utility classes 55 | @import "bootstrap/utilities"; 56 | @import "bootstrap/responsive-utilities"; 57 | -------------------------------------------------------------------------------- /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 | 22 | // Provide class for links that match alerts 23 | .alert-link { 24 | font-weight: $alert-link-font-weight; 25 | } 26 | 27 | // Improve alignment and spacing of inner content 28 | > p, 29 | > ul { 30 | margin-bottom: 0; 31 | } 32 | 33 | > p + p { 34 | margin-top: 5px; 35 | } 36 | } 37 | 38 | // Dismissible alerts 39 | // 40 | // Expand the right padding and account for the close button's positioning. 41 | 42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. 43 | .alert-dismissible { 44 | padding-right: ($alert-padding + 20); 45 | 46 | // Adjust close link position 47 | .close { 48 | position: relative; 49 | top: -2px; 50 | right: -21px; 51 | color: inherit; 52 | } 53 | } 54 | 55 | // Alternate styles 56 | // 57 | // Generate contextual modifier classes for colorizing the alert. 58 | 59 | .alert-success { 60 | @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); 61 | } 62 | 63 | .alert-info { 64 | @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); 65 | } 66 | 67 | .alert-warning { 68 | @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); 69 | } 70 | 71 | .alert-danger { 72 | @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); 73 | } 74 | -------------------------------------------------------------------------------- /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: middle; 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 | 32 | .btn-xs &, 33 | .btn-group-xs > .btn & { 34 | top: 0; 35 | padding: 1px 5px; 36 | } 37 | 38 | // [converter] extracted a& to a.badge 39 | 40 | // Account for badges in navs 41 | .list-group-item.active > &, 42 | .nav-pills > .active > a > & { 43 | color: $badge-active-color; 44 | background-color: $badge-active-bg; 45 | } 46 | 47 | .list-group-item > & { 48 | float: right; 49 | } 50 | 51 | .list-group-item > & + & { 52 | margin-right: 5px; 53 | } 54 | 55 | .nav-pills > li > a > & { 56 | margin-left: 3px; 57 | } 58 | } 59 | 60 | // Hover state, but only for links 61 | a.badge { 62 | &:hover, 63 | &:focus { 64 | color: $badge-link-hover-color; 65 | text-decoration: none; 66 | cursor: pointer; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /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 | // [converter] Workaround for https://github.com/sass/libsass/issues/1115 18 | $nbsp: "\00a0"; 19 | content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space 20 | padding: 0 5px; 21 | color: $breadcrumb-color; 22 | } 23 | } 24 | 25 | > .active { 26 | color: $breadcrumb-active-color; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /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 | } 22 | } 23 | 24 | // Prevent double borders when buttons are next to each other 25 | .btn-group { 26 | .btn + .btn, 27 | .btn + .btn-group, 28 | .btn-group + .btn, 29 | .btn-group + .btn-group { 30 | margin-left: -1px; 31 | } 32 | } 33 | 34 | // Optional: Group multiple button groups together for a toolbar 35 | .btn-toolbar { 36 | margin-left: -5px; // Offset the first child's margin 37 | @include clearfix; 38 | 39 | .btn, 40 | .btn-group, 41 | .input-group { 42 | float: left; 43 | } 44 | > .btn, 45 | > .btn-group, 46 | > .input-group { 47 | margin-left: 5px; 48 | } 49 | } 50 | 51 | .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { 52 | border-radius: 0; 53 | } 54 | 55 | // 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 56 | .btn-group > .btn:first-child { 57 | margin-left: 0; 58 | &:not(:last-child):not(.dropdown-toggle) { 59 | @include border-right-radius(0); 60 | } 61 | } 62 | // Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it 63 | .btn-group > .btn:last-child:not(:first-child), 64 | .btn-group > .dropdown-toggle:not(:first-child) { 65 | @include border-left-radius(0); 66 | } 67 | 68 | // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) 69 | .btn-group > .btn-group { 70 | float: left; 71 | } 72 | .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { 73 | border-radius: 0; 74 | } 75 | .btn-group > .btn-group:first-child:not(:last-child) { 76 | > .btn:last-child, 77 | > .dropdown-toggle { 78 | @include border-right-radius(0); 79 | } 80 | } 81 | .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { 82 | @include border-left-radius(0); 83 | } 84 | 85 | // On active and open, don't show outline 86 | .btn-group .dropdown-toggle:active, 87 | .btn-group.open .dropdown-toggle { 88 | outline: 0; 89 | } 90 | 91 | 92 | // Sizing 93 | // 94 | // Remix the default button sizing classes into new ones for easier manipulation. 95 | 96 | .btn-group-xs > .btn { @extend .btn-xs; } 97 | .btn-group-sm > .btn { @extend .btn-sm; } 98 | .btn-group-lg > .btn { @extend .btn-lg; } 99 | 100 | 101 | // Split button dropdowns 102 | // ---------------------- 103 | 104 | // Give the line between buttons some depth 105 | .btn-group > .btn + .dropdown-toggle { 106 | padding-left: 8px; 107 | padding-right: 8px; 108 | } 109 | .btn-group > .btn-lg + .dropdown-toggle { 110 | padding-left: 12px; 111 | padding-right: 12px; 112 | } 113 | 114 | // The clickable button for toggling the menu 115 | // Remove the gradient and set the same inset shadow as the :active state 116 | .btn-group.open .dropdown-toggle { 117 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 118 | 119 | // Show no shadow for `.btn-link` since it has no other button styles. 120 | &.btn-link { 121 | @include box-shadow(none); 122 | } 123 | } 124 | 125 | 126 | // Reposition the caret 127 | .btn .caret { 128 | margin-left: 0; 129 | } 130 | // Carets in other button sizes 131 | .btn-lg .caret { 132 | border-width: $caret-width-large $caret-width-large 0; 133 | border-bottom-width: 0; 134 | } 135 | // Upside down carets for .dropup 136 | .dropup .btn-lg .caret { 137 | border-width: 0 $caret-width-large $caret-width-large; 138 | } 139 | 140 | 141 | // Vertical button groups 142 | // ---------------------- 143 | 144 | .btn-group-vertical { 145 | > .btn, 146 | > .btn-group, 147 | > .btn-group > .btn { 148 | display: block; 149 | float: none; 150 | width: 100%; 151 | max-width: 100%; 152 | } 153 | 154 | // Clear floats so dropdown menus can be properly placed 155 | > .btn-group { 156 | @include clearfix; 157 | > .btn { 158 | float: none; 159 | } 160 | } 161 | 162 | > .btn + .btn, 163 | > .btn + .btn-group, 164 | > .btn-group + .btn, 165 | > .btn-group + .btn-group { 166 | margin-top: -1px; 167 | margin-left: 0; 168 | } 169 | } 170 | 171 | .btn-group-vertical > .btn { 172 | &:not(:first-child):not(:last-child) { 173 | border-radius: 0; 174 | } 175 | &:first-child:not(:last-child) { 176 | @include border-top-radius($btn-border-radius-base); 177 | @include border-bottom-radius(0); 178 | } 179 | &:last-child:not(:first-child) { 180 | @include border-top-radius(0); 181 | @include border-bottom-radius($btn-border-radius-base); 182 | } 183 | } 184 | .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { 185 | border-radius: 0; 186 | } 187 | .btn-group-vertical > .btn-group:first-child:not(:last-child) { 188 | > .btn:last-child, 189 | > .dropdown-toggle { 190 | @include border-bottom-radius(0); 191 | } 192 | } 193 | .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { 194 | @include border-top-radius(0); 195 | } 196 | 197 | 198 | // Justified button groups 199 | // ---------------------- 200 | 201 | .btn-group-justified { 202 | display: table; 203 | width: 100%; 204 | table-layout: fixed; 205 | border-collapse: separate; 206 | > .btn, 207 | > .btn-group { 208 | float: none; 209 | display: table-cell; 210 | width: 1%; 211 | } 212 | > .btn-group .btn { 213 | width: 100%; 214 | } 215 | 216 | > .btn-group .dropdown-menu { 217 | left: auto; 218 | } 219 | } 220 | 221 | 222 | // Checkbox and radio options 223 | // 224 | // In order to support the browser's form validation feedback, powered by the 225 | // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use 226 | // `display: none;` or `visibility: hidden;` as that also hides the popover. 227 | // Simply visually hiding the inputs via `opacity` would leave them clickable in 228 | // certain cases which is prevented by using `clip` and `pointer-events`. 229 | // This way, we ensure a DOM element is visible to position the popover from. 230 | // 231 | // See https://github.com/twbs/bootstrap/pull/12794 and 232 | // https://github.com/twbs/bootstrap/pull/14559 for more information. 233 | 234 | [data-toggle="buttons"] { 235 | > .btn, 236 | > .btn-group > .btn { 237 | input[type="radio"], 238 | input[type="checkbox"] { 239 | position: absolute; 240 | clip: rect(0,0,0,0); 241 | pointer-events: none; 242 | } 243 | } 244 | } 245 | -------------------------------------------------------------------------------- /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 | touch-action: manipulation; 16 | cursor: pointer; 17 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 18 | border: 1px solid transparent; 19 | white-space: nowrap; 20 | @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base); 21 | @include user-select(none); 22 | 23 | &, 24 | &:active, 25 | &.active { 26 | &:focus, 27 | &.focus { 28 | @include tab-focus; 29 | } 30 | } 31 | 32 | &:hover, 33 | &:focus, 34 | &.focus { 35 | color: $btn-default-color; 36 | text-decoration: none; 37 | } 38 | 39 | &:active, 40 | &.active { 41 | outline: 0; 42 | background-image: none; 43 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); 44 | } 45 | 46 | &.disabled, 47 | &[disabled], 48 | fieldset[disabled] & { 49 | cursor: $cursor-disabled; 50 | @include opacity(.65); 51 | @include box-shadow(none); 52 | } 53 | 54 | // [converter] extracted a& to a.btn 55 | } 56 | 57 | a.btn { 58 | &.disabled, 59 | fieldset[disabled] & { 60 | pointer-events: none; // Future-proof disabling of clicks on `` elements 61 | } 62 | } 63 | 64 | 65 | // Alternate buttons 66 | // -------------------------------------------------- 67 | 68 | .btn-default { 69 | @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); 70 | } 71 | .btn-primary { 72 | @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); 73 | } 74 | // Success appears as green 75 | .btn-success { 76 | @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); 77 | } 78 | // Info appears as blue-green 79 | .btn-info { 80 | @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); 81 | } 82 | // Warning appears as orange 83 | .btn-warning { 84 | @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); 85 | } 86 | // Danger and error appear as red 87 | .btn-danger { 88 | @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); 89 | } 90 | 91 | 92 | // Link buttons 93 | // ------------------------- 94 | 95 | // Make a button look and behave like a link 96 | .btn-link { 97 | color: $link-color; 98 | font-weight: normal; 99 | border-radius: 0; 100 | 101 | &, 102 | &:active, 103 | &.active, 104 | &[disabled], 105 | fieldset[disabled] & { 106 | background-color: transparent; 107 | @include box-shadow(none); 108 | } 109 | &, 110 | &:hover, 111 | &:focus, 112 | &:active { 113 | border-color: transparent; 114 | } 115 | &:hover, 116 | &:focus { 117 | color: $link-hover-color; 118 | text-decoration: $link-hover-decoration; 119 | background-color: transparent; 120 | } 121 | &[disabled], 122 | fieldset[disabled] & { 123 | &:hover, 124 | &:focus { 125 | color: $btn-link-disabled-color; 126 | text-decoration: none; 127 | } 128 | } 129 | } 130 | 131 | 132 | // Button Sizes 133 | // -------------------------------------------------- 134 | 135 | .btn-lg { 136 | // line-height: ensure even-numbered height of button next to large input 137 | @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large); 138 | } 139 | .btn-sm { 140 | // line-height: ensure proper height of button next to small input 141 | @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); 142 | } 143 | .btn-xs { 144 | @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); 145 | } 146 | 147 | 148 | // Block button 149 | // -------------------------------------------------- 150 | 151 | .btn-block { 152 | display: block; 153 | width: 100%; 154 | } 155 | 156 | // Vertically space out multiple block buttons 157 | .btn-block + .btn-block { 158 | margin-top: 5px; 159 | } 160 | 161 | // Specificity overrides 162 | input[type="submit"], 163 | input[type="reset"], 164 | input[type="button"] { 165 | &.btn-block { 166 | width: 100%; 167 | } 168 | } 169 | -------------------------------------------------------------------------------- /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 | // WebKit CSS3 transforms for supported devices 29 | @media all and (transform-3d), (-webkit-transform-3d) { 30 | @include transition-transform(0.6s ease-in-out); 31 | @include backface-visibility(hidden); 32 | @include perspective(1000px); 33 | 34 | &.next, 35 | &.active.right { 36 | @include translate3d(100%, 0, 0); 37 | left: 0; 38 | } 39 | &.prev, 40 | &.active.left { 41 | @include translate3d(-100%, 0, 0); 42 | left: 0; 43 | } 44 | &.next.left, 45 | &.prev.right, 46 | &.active { 47 | @include translate3d(0, 0, 0); 48 | left: 0; 49 | } 50 | } 51 | } 52 | 53 | > .active, 54 | > .next, 55 | > .prev { 56 | display: block; 57 | } 58 | 59 | > .active { 60 | left: 0; 61 | } 62 | 63 | > .next, 64 | > .prev { 65 | position: absolute; 66 | top: 0; 67 | width: 100%; 68 | } 69 | 70 | > .next { 71 | left: 100%; 72 | } 73 | > .prev { 74 | left: -100%; 75 | } 76 | > .next.left, 77 | > .prev.right { 78 | left: 0; 79 | } 80 | 81 | > .active.left { 82 | left: -100%; 83 | } 84 | > .active.right { 85 | left: 100%; 86 | } 87 | 88 | } 89 | 90 | // Left/right controls for nav 91 | // --------------------------- 92 | 93 | .carousel-control { 94 | position: absolute; 95 | top: 0; 96 | left: 0; 97 | bottom: 0; 98 | width: $carousel-control-width; 99 | @include opacity($carousel-control-opacity); 100 | font-size: $carousel-control-font-size; 101 | color: $carousel-control-color; 102 | text-align: center; 103 | text-shadow: $carousel-text-shadow; 104 | background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug 105 | // We can't have this transition here because WebKit cancels the carousel 106 | // animation if you trip this while in the middle of another animation. 107 | 108 | // Set gradients for backgrounds 109 | &.left { 110 | @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001)); 111 | } 112 | &.right { 113 | left: auto; 114 | right: 0; 115 | @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5)); 116 | } 117 | 118 | // Hover/focus state 119 | &:hover, 120 | &:focus { 121 | outline: 0; 122 | color: $carousel-control-color; 123 | text-decoration: none; 124 | @include opacity(.9); 125 | } 126 | 127 | // Toggles 128 | .icon-prev, 129 | .icon-next, 130 | .glyphicon-chevron-left, 131 | .glyphicon-chevron-right { 132 | position: absolute; 133 | top: 50%; 134 | margin-top: -10px; 135 | z-index: 5; 136 | display: inline-block; 137 | } 138 | .icon-prev, 139 | .glyphicon-chevron-left { 140 | left: 50%; 141 | margin-left: -10px; 142 | } 143 | .icon-next, 144 | .glyphicon-chevron-right { 145 | right: 50%; 146 | margin-right: -10px; 147 | } 148 | .icon-prev, 149 | .icon-next { 150 | width: 20px; 151 | height: 20px; 152 | line-height: 1; 153 | font-family: serif; 154 | } 155 | 156 | 157 | .icon-prev { 158 | &:before { 159 | content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) 160 | } 161 | } 162 | .icon-next { 163 | &:before { 164 | content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) 165 | } 166 | } 167 | } 168 | 169 | // Optional indicator pips 170 | // 171 | // Add an unordered list with the following class and add a list item for each 172 | // slide your carousel holds. 173 | 174 | .carousel-indicators { 175 | position: absolute; 176 | bottom: 10px; 177 | left: 50%; 178 | z-index: 15; 179 | width: 60%; 180 | margin-left: -30%; 181 | padding-left: 0; 182 | list-style: none; 183 | text-align: center; 184 | 185 | li { 186 | display: inline-block; 187 | width: 10px; 188 | height: 10px; 189 | margin: 1px; 190 | text-indent: -999px; 191 | border: 1px solid $carousel-indicator-border-color; 192 | border-radius: 10px; 193 | cursor: pointer; 194 | 195 | // IE8-9 hack for event handling 196 | // 197 | // Internet Explorer 8-9 does not support clicks on elements without a set 198 | // `background-color`. We cannot use `filter` since that's not viewed as a 199 | // background color by the browser. Thus, a hack is needed. 200 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer 201 | // 202 | // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we 203 | // set alpha transparency for the best results possible. 204 | background-color: #000 \9; // IE8 205 | background-color: rgba(0,0,0,0); // IE9 206 | } 207 | .active { 208 | margin: 0; 209 | width: 12px; 210 | height: 12px; 211 | background-color: $carousel-indicator-active-bg; 212 | } 213 | } 214 | 215 | // Optional captions 216 | // ----------------------------- 217 | // Hidden by default for smaller viewports 218 | .carousel-caption { 219 | position: absolute; 220 | left: 15%; 221 | right: 15%; 222 | bottom: 20px; 223 | z-index: 10; 224 | padding-top: 20px; 225 | padding-bottom: 20px; 226 | color: $carousel-caption-color; 227 | text-align: center; 228 | text-shadow: $carousel-text-shadow; 229 | & .btn { 230 | text-shadow: none; // No shadow for button elements in carousel-caption 231 | } 232 | } 233 | 234 | 235 | // Scale up controls for tablets and up 236 | @media screen and (min-width: $screen-sm-min) { 237 | 238 | // Scale up the controls a smidge 239 | .carousel-control { 240 | .glyphicon-chevron-left, 241 | .glyphicon-chevron-right, 242 | .icon-prev, 243 | .icon-next { 244 | width: ($carousel-control-font-size * 1.5); 245 | height: ($carousel-control-font-size * 1.5); 246 | margin-top: ($carousel-control-font-size / -2); 247 | font-size: ($carousel-control-font-size * 1.5); 248 | } 249 | .glyphicon-chevron-left, 250 | .icon-prev { 251 | margin-left: ($carousel-control-font-size / -2); 252 | } 253 | .glyphicon-chevron-right, 254 | .icon-next { 255 | margin-right: ($carousel-control-font-size / -2); 256 | } 257 | } 258 | 259 | // Show and left align the captions 260 | .carousel-caption { 261 | left: 20%; 262 | right: 20%; 263 | padding-bottom: 30px; 264 | } 265 | 266 | // Move up the indicators 267 | .carousel-indicators { 268 | bottom: 20px; 269 | } 270 | } 271 | -------------------------------------------------------------------------------- /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 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 30 | button.close { 31 | padding: 0; 32 | cursor: pointer; 33 | background: transparent; 34 | border: 0; 35 | -webkit-appearance: none; 36 | } 37 | -------------------------------------------------------------------------------- /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 | font-weight: bold; 36 | box-shadow: none; 37 | } 38 | } 39 | 40 | // Blocks of code 41 | pre { 42 | display: block; 43 | padding: (($line-height-computed - 1) / 2); 44 | margin: 0 0 ($line-height-computed / 2); 45 | font-size: ($font-size-base - 1); // 14px to 13px 46 | line-height: $line-height-base; 47 | word-break: break-all; 48 | word-wrap: break-word; 49 | color: $pre-color; 50 | background-color: $pre-bg; 51 | border: 1px solid $pre-border-color; 52 | border-radius: $border-radius-base; 53 | 54 | // Account for some code outputs that place code tags in pre tags 55 | code { 56 | padding: 0; 57 | font-size: inherit; 58 | color: inherit; 59 | white-space: pre-wrap; 60 | background-color: transparent; 61 | border-radius: 0; 62 | } 63 | } 64 | 65 | // Enable scrollable blocks of code 66 | .pre-scrollable { 67 | max-height: $pre-scrollable-max-height; 68 | overflow-y: scroll; 69 | } 70 | -------------------------------------------------------------------------------- /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-property(height, visibility); 35 | @include transition-duration(.35s); 36 | @include transition-timing-function(ease); 37 | } 38 | -------------------------------------------------------------------------------- /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 dashed; 14 | border-top: $caret-width-base solid \9; // IE8 15 | border-right: $caret-width-base solid transparent; 16 | border-left: $caret-width-base solid transparent; 17 | } 18 | 19 | // The dropdown wrapper (div) 20 | .dropup, 21 | .dropdown { 22 | position: relative; 23 | } 24 | 25 | // Prevent the focus on the dropdown toggle when closing dropdowns 26 | .dropdown-toggle:focus { 27 | outline: 0; 28 | } 29 | 30 | // The dropdown menu (ul) 31 | .dropdown-menu { 32 | position: absolute; 33 | top: 100%; 34 | left: 0; 35 | z-index: $zindex-dropdown; 36 | display: none; // none by default, but block on "open" of the menu 37 | float: left; 38 | min-width: 160px; 39 | padding: 5px 0; 40 | margin: 2px 0 0; // override default ul 41 | list-style: none; 42 | font-size: $font-size-base; 43 | text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) 44 | background-color: $dropdown-bg; 45 | border: 1px solid $dropdown-fallback-border; // IE8 fallback 46 | border: 1px solid $dropdown-border; 47 | border-radius: $border-radius-base; 48 | @include box-shadow(0 6px 12px rgba(0,0,0,.175)); 49 | background-clip: padding-box; 50 | 51 | // Aligns the dropdown menu to right 52 | // 53 | // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` 54 | &.pull-right { 55 | right: 0; 56 | left: auto; 57 | } 58 | 59 | // Dividers (basically an hr) within the dropdown 60 | .divider { 61 | @include nav-divider($dropdown-divider-bg); 62 | } 63 | 64 | // Links within the dropdown menu 65 | > li > a { 66 | display: block; 67 | padding: 3px 20px; 68 | clear: both; 69 | font-weight: normal; 70 | line-height: $line-height-base; 71 | color: $dropdown-link-color; 72 | white-space: nowrap; // prevent links from randomly breaking onto new lines 73 | } 74 | } 75 | 76 | // Hover/Focus state 77 | .dropdown-menu > li > a { 78 | &:hover, 79 | &:focus { 80 | text-decoration: none; 81 | color: $dropdown-link-hover-color; 82 | background-color: $dropdown-link-hover-bg; 83 | } 84 | } 85 | 86 | // Active state 87 | .dropdown-menu > .active > a { 88 | &, 89 | &:hover, 90 | &:focus { 91 | color: $dropdown-link-active-color; 92 | text-decoration: none; 93 | outline: 0; 94 | background-color: $dropdown-link-active-bg; 95 | } 96 | } 97 | 98 | // Disabled state 99 | // 100 | // Gray out text and ensure the hover/focus state remains gray 101 | 102 | .dropdown-menu > .disabled > a { 103 | &, 104 | &:hover, 105 | &:focus { 106 | color: $dropdown-link-disabled-color; 107 | } 108 | 109 | // Nuke hover/focus effects 110 | &:hover, 111 | &:focus { 112 | text-decoration: none; 113 | background-color: transparent; 114 | background-image: none; // Remove CSS gradient 115 | @include reset-filter; 116 | cursor: $cursor-disabled; 117 | } 118 | } 119 | 120 | // Open state for the dropdown 121 | .open { 122 | // Show the menu 123 | > .dropdown-menu { 124 | display: block; 125 | } 126 | 127 | // Remove the outline when :focus is triggered 128 | > a { 129 | outline: 0; 130 | } 131 | } 132 | 133 | // Menu positioning 134 | // 135 | // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown 136 | // menu with the parent. 137 | .dropdown-menu-right { 138 | left: auto; // Reset the default from `.dropdown-menu` 139 | right: 0; 140 | } 141 | // With v3, we enabled auto-flipping if you have a dropdown within a right 142 | // aligned nav component. To enable the undoing of that, we provide an override 143 | // to restore the default dropdown menu alignment. 144 | // 145 | // This is only for left-aligning a dropdown menu within a `.navbar-right` or 146 | // `.pull-right` nav component. 147 | .dropdown-menu-left { 148 | left: 0; 149 | right: auto; 150 | } 151 | 152 | // Dropdown section headers 153 | .dropdown-header { 154 | display: block; 155 | padding: 3px 20px; 156 | font-size: $font-size-small; 157 | line-height: $line-height-base; 158 | color: $dropdown-header-color; 159 | white-space: nowrap; // as with > li > a 160 | } 161 | 162 | // Backdrop to catch body clicks on mobile, etc. 163 | .dropdown-backdrop { 164 | position: fixed; 165 | left: 0; 166 | right: 0; 167 | bottom: 0; 168 | top: 0; 169 | z-index: ($zindex-dropdown - 10); 170 | } 171 | 172 | // Right aligned dropdowns 173 | .pull-right > .dropdown-menu { 174 | right: 0; 175 | left: auto; 176 | } 177 | 178 | // Allow for dropdowns to go bottom up (aka, dropup-menu) 179 | // 180 | // Just add .dropup after the standard .dropdown class and you're set, bro. 181 | // TODO: abstract this so that the navbar fixed styles are not placed here? 182 | 183 | .dropup, 184 | .navbar-fixed-bottom .dropdown { 185 | // Reverse the caret 186 | .caret { 187 | border-top: 0; 188 | border-bottom: $caret-width-base dashed; 189 | border-bottom: $caret-width-base solid \9; // IE8 190 | content: ""; 191 | } 192 | // Different positioning for bottom up menu 193 | .dropdown-menu { 194 | top: auto; 195 | bottom: 100%; 196 | margin-bottom: 2px; 197 | } 198 | } 199 | 200 | 201 | // Component alignment 202 | // 203 | // Reiterate per navbar.less and the modified component alignment there. 204 | 205 | @media (min-width: $grid-float-breakpoint) { 206 | .navbar-right { 207 | .dropdown-menu { 208 | right: 0; left: auto; 209 | } 210 | // Necessary for overrides of the default right aligned menu. 211 | // Will remove come v4 in all likelihood. 212 | .dropdown-menu-left { 213 | left: 0; right: auto; 214 | } 215 | } 216 | } 217 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | &:focus { 34 | z-index: 3; 35 | } 36 | } 37 | } 38 | 39 | // Sizing options 40 | // 41 | // Remix the default form control sizing classes into new ones for easier 42 | // manipulation. 43 | 44 | .input-group-lg > .form-control, 45 | .input-group-lg > .input-group-addon, 46 | .input-group-lg > .input-group-btn > .btn { 47 | @extend .input-lg; 48 | } 49 | .input-group-sm > .form-control, 50 | .input-group-sm > .input-group-addon, 51 | .input-group-sm > .input-group-btn > .btn { 52 | @extend .input-sm; 53 | } 54 | 55 | 56 | // Display as table-cell 57 | // ------------------------- 58 | .input-group-addon, 59 | .input-group-btn, 60 | .input-group .form-control { 61 | display: table-cell; 62 | 63 | &:not(:first-child):not(:last-child) { 64 | border-radius: 0; 65 | } 66 | } 67 | // Addon and addon wrapper for buttons 68 | .input-group-addon, 69 | .input-group-btn { 70 | width: 1%; 71 | white-space: nowrap; 72 | vertical-align: middle; // Match the inputs 73 | } 74 | 75 | // Text input groups 76 | // ------------------------- 77 | .input-group-addon { 78 | padding: $padding-base-vertical $padding-base-horizontal; 79 | font-size: $font-size-base; 80 | font-weight: normal; 81 | line-height: 1; 82 | color: $input-color; 83 | text-align: center; 84 | background-color: $input-group-addon-bg; 85 | border: 1px solid $input-group-addon-border-color; 86 | border-radius: $input-border-radius; 87 | 88 | // Sizing 89 | &.input-sm { 90 | padding: $padding-small-vertical $padding-small-horizontal; 91 | font-size: $font-size-small; 92 | border-radius: $input-border-radius-small; 93 | } 94 | &.input-lg { 95 | padding: $padding-large-vertical $padding-large-horizontal; 96 | font-size: $font-size-large; 97 | border-radius: $input-border-radius-large; 98 | } 99 | 100 | // Nuke default margins from checkboxes and radios to vertically center within. 101 | input[type="radio"], 102 | input[type="checkbox"] { 103 | margin-top: 0; 104 | } 105 | } 106 | 107 | // Reset rounded corners 108 | .input-group .form-control:first-child, 109 | .input-group-addon:first-child, 110 | .input-group-btn:first-child > .btn, 111 | .input-group-btn:first-child > .btn-group > .btn, 112 | .input-group-btn:first-child > .dropdown-toggle, 113 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), 114 | .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { 115 | @include border-right-radius(0); 116 | } 117 | .input-group-addon:first-child { 118 | border-right: 0; 119 | } 120 | .input-group .form-control:last-child, 121 | .input-group-addon:last-child, 122 | .input-group-btn:last-child > .btn, 123 | .input-group-btn:last-child > .btn-group > .btn, 124 | .input-group-btn:last-child > .dropdown-toggle, 125 | .input-group-btn:first-child > .btn:not(:first-child), 126 | .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { 127 | @include border-left-radius(0); 128 | } 129 | .input-group-addon:last-child { 130 | border-left: 0; 131 | } 132 | 133 | // Button input groups 134 | // ------------------------- 135 | .input-group-btn { 136 | position: relative; 137 | // Jankily prevent input button groups from wrapping with `white-space` and 138 | // `font-size` in combination with `inline-block` on buttons. 139 | font-size: 0; 140 | white-space: nowrap; 141 | 142 | // Negative margin for spacing, position for bringing hovered/focused/actived 143 | // element above the siblings. 144 | > .btn { 145 | position: relative; 146 | + .btn { 147 | margin-left: -1px; 148 | } 149 | // Bring the "active" button to the front 150 | &:hover, 151 | &:focus, 152 | &:active { 153 | z-index: 2; 154 | } 155 | } 156 | 157 | // Negative margin to only have a 1px border between the two 158 | &:first-child { 159 | > .btn, 160 | > .btn-group { 161 | margin-right: -1px; 162 | } 163 | } 164 | &:last-child { 165 | > .btn, 166 | > .btn-group { 167 | z-index: 2; 168 | margin-left: -1px; 169 | } 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /stylesheets/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding-top: $jumbotron-padding; 8 | padding-bottom: $jumbotron-padding; 9 | margin-bottom: $jumbotron-padding; 10 | color: $jumbotron-color; 11 | background-color: $jumbotron-bg; 12 | 13 | h1, 14 | .h1 { 15 | color: $jumbotron-heading-color; 16 | } 17 | 18 | p { 19 | margin-bottom: ($jumbotron-padding / 2); 20 | font-size: $jumbotron-font-size; 21 | font-weight: 200; 22 | } 23 | 24 | > hr { 25 | border-top-color: darken($jumbotron-bg, 10%); 26 | } 27 | 28 | .container &, 29 | .container-fluid & { 30 | border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container 31 | padding-left: ($grid-gutter-width / 2); 32 | padding-right: ($grid-gutter-width / 2); 33 | } 34 | 35 | .container { 36 | max-width: 100%; 37 | } 38 | 39 | @media screen and (min-width: $screen-sm-min) { 40 | padding-top: ($jumbotron-padding * 1.6); 41 | padding-bottom: ($jumbotron-padding * 1.6); 42 | 43 | .container &, 44 | .container-fluid & { 45 | padding-left: ($jumbotron-padding * 2); 46 | padding-right: ($jumbotron-padding * 2); 47 | } 48 | 49 | h1, 50 | .h1 { 51 | font-size: $jumbotron-heading-font-size; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /stylesheets/bootstrap/_list-group.scss: -------------------------------------------------------------------------------- 1 | // 2 | // List groups 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | // 8 | // Easily usable on