Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap-rubygem.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Mazovetskiy <glex.spb@gmail.com>2013-08-19 01:00:27 +0400
committerGleb Mazovetskiy <glex.spb@gmail.com>2013-08-19 01:00:27 +0400
commit089174049c83b698b92f483aef146d0fd54efb9f (patch)
tree44022584f844d9edda25f3673646bdfcd0777359
parent07f9d01b559327c0587ec52784170e7ab3b147b5 (diff)
converter: cache files, understand in-file mixin definitinos
-rw-r--r--.gitignore1
-rw-r--r--lib/bootstrap-sass/version.rb2
-rw-r--r--tasks/converter.rb96
-rw-r--r--test/compilation_test.rb2
-rw-r--r--vendor/assets/javascripts/bootstrap/dropdown.js6
-rw-r--r--vendor/assets/javascripts/bootstrap/modal.js8
-rw-r--r--vendor/assets/javascripts/bootstrap/tooltip.js14
-rw-r--r--vendor/assets/javascripts/bootstrap/transition.js2
-rw-r--r--vendor/assets/stylesheets/bootstrap/_button-groups.scss23
-rw-r--r--vendor/assets/stylesheets/bootstrap/_buttons.scss3
-rw-r--r--vendor/assets/stylesheets/bootstrap/_dropdowns.scss7
-rw-r--r--vendor/assets/stylesheets/bootstrap/_forms.scss12
-rw-r--r--vendor/assets/stylesheets/bootstrap/_glyphicons.scss233
-rw-r--r--vendor/assets/stylesheets/bootstrap/_grid.scss10
-rw-r--r--vendor/assets/stylesheets/bootstrap/_jumbotron.scss15
-rw-r--r--vendor/assets/stylesheets/bootstrap/_labels.scss12
-rw-r--r--vendor/assets/stylesheets/bootstrap/_mixins.scss60
-rw-r--r--vendor/assets/stylesheets/bootstrap/_navbar.scss82
-rw-r--r--vendor/assets/stylesheets/bootstrap/_navs.scss25
-rw-r--r--vendor/assets/stylesheets/bootstrap/_pager.scss2
-rw-r--r--vendor/assets/stylesheets/bootstrap/_pagination.scss29
-rw-r--r--vendor/assets/stylesheets/bootstrap/_panels.scss25
-rw-r--r--vendor/assets/stylesheets/bootstrap/_progress-bars.scss16
-rw-r--r--vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss49
-rw-r--r--vendor/assets/stylesheets/bootstrap/_tables.scss9
-rw-r--r--vendor/assets/stylesheets/bootstrap/_theme.scss232
-rw-r--r--vendor/assets/stylesheets/bootstrap/_thumbnails.scss6
-rw-r--r--vendor/assets/stylesheets/bootstrap/_variables.scss48
-rw-r--r--vendor/assets/stylesheets/bootstrap/bootstrap.scss38
29 files changed, 839 insertions, 228 deletions
diff --git a/.gitignore b/.gitignore
index b6d4a35..697cc81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@ Gemfile.lock
/.bundle
/vendor/cache
/vendor/bundle
+tmp/
diff --git a/lib/bootstrap-sass/version.rb b/lib/bootstrap-sass/version.rb
index fa8ff5a..9dfd38d 100644
--- a/lib/bootstrap-sass/version.rb
+++ b/lib/bootstrap-sass/version.rb
@@ -1,4 +1,4 @@
module Bootstrap
VERSION = '3.0.0.0'
- BOOTSTRAP_SHA = 'fee3f1e733e80bd128736e1b9b403f49b701a6a9'
+ BOOTSTRAP_SHA = '518488cb4069b4181435873380d0738e8b63bc81'
end
diff --git a/tasks/converter.rb b/tasks/converter.rb
index 48d8ff6..5054725 100644
--- a/tasks/converter.rb
+++ b/tasks/converter.rb
@@ -46,11 +46,24 @@ class Converter
store_version
end
+ NESTED_MIXINS = {'#gradient' => 'gradient'}
VARARG_MIXINS = %w(transition transition-transform box-shadow)
def process_stylesheet_assets
log_status "Processing stylesheets..."
files = read_files('less', bootstrap_less_files)
- @mixins = get_mixin_names files['mixins.less']
+
+ # read common mixin definitions from mixins.less
+ mixins_file = files['mixins.less']
+ @mixins = get_mixin_names(mixins_file)
+ NESTED_MIXINS.each do |selector, prefix|
+ replace_rules(mixins_file, selector) { |rule|
+ @mixins += get_mixin_names(unwrap_rule_block rule).map { |name| "#{prefix}-#{name}" }
+ rule
+ }
+ end
+ puts "*** MIXINS #{@mixins}"
+
+ # convert each file
files.each do |name, file|
log_processing name
case name
@@ -61,7 +74,9 @@ class Converter
file = replace_escaping(file)
file = replace_mixin_definitions(file)
file = replace_mixins(file)
- file = flatten_mixins(file, '#gradient', 'gradient')
+ NESTED_MIXINS.each do |selector, prefix|
+ file = flatten_mixins(file, selector, prefix)
+ end
file = varargify_mixin_definitions(file, *VARARG_MIXINS)
file = deinterpolate_vararg_mixins(file)
file = parameterize_mixin_parent_selector file, 'responsive-(in)?visibility'
@@ -214,7 +229,7 @@ class Converter
def get_mixin_names(file)
mixins = []
- file.scan(/\.([\w-]+)\(.*\)\s?{?/) do |mixin|
+ get_css_selectors(file).join("\n" * 2).scan(/\.([\w-]+)\(.*\)\s?\{?/) do |mixin|
mixins << mixin.first
end
mixins
@@ -246,7 +261,9 @@ class Converter
def replace_all(file, regex, replacement = nil, &block)
log_transform regex, replacement
- file.gsub(regex, replacement, &block)
+ new_file = file.gsub(regex, replacement, &block)
+ raise "replace_all #{regex}, #{replacement} NO MATCH" if file == new_file
+ new_file
end
# @mixin a() { tr& { color:white } }
@@ -318,8 +335,9 @@ class Converter
# Replaces the following:
# .mixin() -> @include mixin()
# #scope > .mixin() -> @include scope-mixin()
- def replace_mixins(less)
+ def replace_mixins(less, mixins = @mixins + get_mixin_names(less))
mixin_pattern = /(\s+)(([#|\.][\w-]+\s*>\s*)*)\.([\w-]+\(.*\))/
+
less.gsub(mixin_pattern) do |match|
matches = match.scan(mixin_pattern).flatten
scope = matches[1] || ''
@@ -327,8 +345,7 @@ class Converter
scope = scope.scan(/[\w-]+/).join('-') + '-'
end
mixin_name = match.scan(/\.([\w-]+)\(.*\)\s?\{?/).first
-
- if mixin_name && @mixins.include?(mixin_name.first)
+ if mixin_name && mixins.include?("#{scope}#{mixin_name.first}")
"#{matches.first}@include #{scope}#{matches.last}".gsub(/; \$/, ", $")
else
"#{matches.first}@extend .#{scope}#{matches.last.gsub(/\(\)/, '')}"
@@ -473,12 +490,27 @@ class Converter
end
while (rule_start = scan_next(s, rule_start_re))
- rule_pos = (s.pos - rule_start.length..close_brace_pos(less, s.pos - 1))
+ pos = byte_to_str_pos less, s.pos
+ rule_pos = (pos - rule_start.length..close_brace_pos(less, pos - 1))
less[rule_pos] = yield(less[rule_pos], rule_pos)
end
less
end
+ # Get a list of all top-level selectors with bodies {}
+ def get_css_selectors(css)
+ s = StringScanner.new(css)
+ selectors = []
+ while (brace = scan_next(s, RULE_OPEN_BRACE_RE))
+ pos = byte_to_str_pos(css, s.pos)
+ def_pos = css_def_pos(css, pos, -1)
+ sel = css[def_pos.begin..pos - 1]
+ selectors << sel.dup.strip
+ s.pos = str_to_byte_pos(css, close_brace_pos(css, pos - 1) + 1)
+ end
+ selectors
+ end
+
# replace in the top-level selector
# replace_in_selector('a {a: {a: a} } a {}', /a/, 'b') => 'b {a: {a: a} } b {}'
def replace_in_selector(css, pattern, sub)
@@ -486,10 +518,11 @@ class Converter
s = StringScanner.new(css)
prev_pos = 0
sel_pos = []
- while (brace = scan_next(s, /#{RULE_OPEN_BRACE_RE}/))
- sel_pos << (prev_pos .. s.pos - 1)
- s.pos = close_brace_pos(css, s.pos - 1) + 1
- prev_pos = s.pos
+ while (brace = scan_next(s, RULE_OPEN_BRACE_RE))
+ pos = byte_to_str_pos css, s.pos
+ sel_pos << (prev_pos .. pos - 1)
+ s.pos = str_to_byte_pos(s.string, close_brace_pos(css, s.pos - 1) + 1)
+ prev_pos = pos
end
replace_substrings_at(css, sel_pos) { |s| s.gsub(pattern, sub) }
end
@@ -498,10 +531,10 @@ class Converter
sel_chars = '\[\]$\w\-{}#,.:&>@'
SELECTOR_RE = /[#{sel_chars}]+[#{sel_chars}\s]*/
COMMENT_RE = %r((?:^[ \t]*//[^\n]*\n))
- RULE_OPEN_BRACE_RE = /(?<!#)\{/
- RULE_OPEN_BRACE_RE_REVERSE = /\{(?!#)/
- RULE_CLOSE_BRACE_RE = /(?<!\w)\}/
- RULE_CLOSE_BRACE_RE_REVERSE = /\}(?!\w)/
+ RULE_OPEN_BRACE_RE = /(?<![@#\$])\{/
+ RULE_OPEN_BRACE_RE_REVERSE = /\{(?![@#\$])/
+ RULE_CLOSE_BRACE_RE = /(?<!\w)\}(?![.'"])/
+ RULE_CLOSE_BRACE_RE_REVERSE = /(?<![.'"])\}(?!\w)/
BRACE_RE = /#{RULE_OPEN_BRACE_RE}|#{RULE_CLOSE_BRACE_RE}/m
BRACE_RE_REVERSE = /#{RULE_OPEN_BRACE_RE_REVERSE}|#{RULE_CLOSE_BRACE_RE_REVERSE}/m
SCSS_MIXIN_DEF_ARGS_RE = /[\w\-,\s$:]*/
@@ -515,12 +548,13 @@ class Converter
depth = 0
pos = []
while (b = scan_next(s, /#{SELECTOR_RE}#{RULE_OPEN_BRACE_RE}|#{RULE_CLOSE_BRACE_RE}/m))
+ s_pos = byte_to_str_pos(s.string, s.pos)
depth += (b == '}' ? -1 : +1)
if depth == 1
if b == '}'
- prev_pos = s.pos
+ prev_pos = s_pos
else
- pos << (prev_pos .. s.pos - b.length - 1)
+ pos << (prev_pos .. s_pos - b.length - 1)
end
end
end
@@ -530,7 +564,7 @@ class Converter
# immediate selector of css at pos
def selector_for_pos(css, pos, depth = -1)
- css[css_def_pos(css, pos, depth)].strip
+ css[css_def_pos(css, pos, depth)].dup.strip
end
# get the pos of css def at pos (search backwards)
@@ -549,7 +583,7 @@ class Converter
break if depth.zero?
end
raise "match not found for {" unless depth.zero?
- from + s.pos - 1
+ from + byte_to_str_pos(s.string, s.pos) - 1
end
# opening brace position from +from+ (search backwards)
@@ -560,14 +594,21 @@ class Converter
break if depth.zero?
end
raise "matching { brace not found" unless depth.zero?
- from - s.pos + 1
+ from - byte_to_str_pos(s.string, s.pos) + 1
end
# advance scanner to pos after the next match of pattern and return the match
def scan_next(scanner, pattern)
- return unless scanner.skip_until(pattern)
- scanner.pos -= scanner.matched_size
- scanner.scan pattern
+ return unless scanner.scan_until(pattern)
+ scanner.matched
+ end
+
+ def byte_to_str_pos(str, pos)
+ str.byteslice(0, pos).length
+ end
+
+ def str_to_byte_pos(str, pos)
+ str.slice(0, pos).bytesize
end
# insert substitutions into text at positions (Range or Fixnum)
@@ -620,7 +661,12 @@ class Converter
end
def log_downloading(files, from, cached = false)
- puts dark cyan " #{' CACHED ' if cached}GET #{files.length} files from #{from} #{files * ' '}..."
+ s = " #{' CACHED ' if cached}GET #{files.length} files from #{from} #{files * ' '}..."
+ if cached
+ puts dark green s
+ else
+ puts dark cyan s
+ end
end
def log_processing(name)
diff --git a/test/compilation_test.rb b/test/compilation_test.rb
index 67f905c..c26cf6a 100644
--- a/test/compilation_test.rb
+++ b/test/compilation_test.rb
@@ -3,7 +3,7 @@ require 'test_helper'
class CompilationTest < Test::Unit::TestCase
def test_compilation
path = 'vendor/assets/stylesheets'
- %w(bootstrap).each do |file|
+ %w(bootstrap bootstrap/_theme).each do |file|
engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
assert_nothing_raised do
engine.render
diff --git a/vendor/assets/javascripts/bootstrap/dropdown.js b/vendor/assets/javascripts/bootstrap/dropdown.js
index 69bbd80..6093f11 100644
--- a/vendor/assets/javascripts/bootstrap/dropdown.js
+++ b/vendor/assets/javascripts/bootstrap/dropdown.js
@@ -40,7 +40,7 @@
clearMenus()
if (!isActive) {
- if ('ontouchstart' in document.documentElement) {
+ if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
// if mobile we we use a backdrop because click events don't delegate
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
}
@@ -52,9 +52,9 @@
$parent
.toggleClass('open')
.trigger('shown.bs.dropdown')
- }
- $this.focus()
+ $this.focus()
+ }
return false
}
diff --git a/vendor/assets/javascripts/bootstrap/modal.js b/vendor/assets/javascripts/bootstrap/modal.js
index e0f8b7a..65eba48 100644
--- a/vendor/assets/javascripts/bootstrap/modal.js
+++ b/vendor/assets/javascripts/bootstrap/modal.js
@@ -25,7 +25,7 @@
var Modal = function (element, options) {
this.options = options
- this.$element = $(element).on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+ this.$element = $(element)
this.$backdrop =
this.isShown = null
@@ -54,6 +54,8 @@
this.escape()
+ this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
@@ -76,7 +78,7 @@
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
- that.$element
+ that.$element.find('.modal-dialog') // wait for modal to slide in
.one($.support.transition.end, function () {
that.$element.focus().trigger(e)
})
@@ -238,7 +240,7 @@
})
$(document)
- .on('shown.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
+ .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
}(window.jQuery);
diff --git a/vendor/assets/javascripts/bootstrap/tooltip.js b/vendor/assets/javascripts/bootstrap/tooltip.js
index e0732a5..8980228 100644
--- a/vendor/assets/javascripts/bootstrap/tooltip.js
+++ b/vendor/assets/javascripts/bootstrap/tooltip.js
@@ -108,10 +108,11 @@
clearTimeout(self.timeout)
+ self.hoverState = 'in'
+
if (!self.options.delay || !self.options.delay.show) return self.show()
- self.hoverState = 'in'
- self.timeout = setTimeout(function () {
+ self.timeout = setTimeout(function () {
if (self.hoverState == 'in') self.show()
}, self.options.delay.show)
}
@@ -122,10 +123,11 @@
clearTimeout(self.timeout)
+ self.hoverState = 'out'
+
if (!self.options.delay || !self.options.delay.hide) return self.hide()
- self.hoverState = 'out'
- self.timeout = setTimeout(function () {
+ self.timeout = setTimeout(function () {
if (self.hoverState == 'out') self.hide()
}, self.options.delay.hide)
}
@@ -258,7 +260,9 @@
var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type)
- function complete() { $tip.detach() }
+ function complete() {
+ if (that.hoverState != 'in') $tip.detach()
+ }
this.$element.trigger(e)
diff --git a/vendor/assets/javascripts/bootstrap/transition.js b/vendor/assets/javascripts/bootstrap/transition.js
index 0cdcf9e..e8f318b 100644
--- a/vendor/assets/javascripts/bootstrap/transition.js
+++ b/vendor/assets/javascripts/bootstrap/transition.js
@@ -42,7 +42,7 @@
// http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) {
- var called = false, $el = this
+ var called = false, $el = this
$(this).one($.support.transition.end, function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration)
diff --git a/vendor/assets/stylesheets/bootstrap/_button-groups.scss b/vendor/assets/stylesheets/bootstrap/_button-groups.scss
index 07dcd53..e8c3666 100644
--- a/vendor/assets/stylesheets/bootstrap/_button-groups.scss
+++ b/vendor/assets/stylesheets/bootstrap/_button-groups.scss
@@ -18,16 +18,18 @@
border-top-color: #fff;
}
}
-.dropup .caret {
- .btn-default & {
+.dropup {
+ & .btn-default .caret {
border-bottom-color: $btn-default-color;
}
- .btn-primary &,
- .btn-success &,
- .btn-warning &,
- .btn-danger &,
- .btn-info & {
- border-bottom-color: #fff;
+ & .btn-primary,
+ & .btn-success,
+ & .btn-warning,
+ & .btn-danger,
+ & .btn-info {
+ .caret {
+ border-bottom-color: #fff;
+ }
}
}
@@ -157,11 +159,12 @@
}
// Carets in other button sizes
.btn-lg .caret {
- border-width: $caret-width-large;
+ border-width: $caret-width-large $caret-width-large 0;
+ border-bottom-width: 0;
}
// Upside down carets for .dropup
.dropup .btn-lg .caret {
- border-bottom-width: $caret-width-large;
+ border-width: 0 $caret-width-large $caret-width-large;
}
diff --git a/vendor/assets/stylesheets/bootstrap/_buttons.scss b/vendor/assets/stylesheets/bootstrap/_buttons.scss
index 5447c78..564b28c 100644
--- a/vendor/assets/stylesheets/bootstrap/_buttons.scss
+++ b/vendor/assets/stylesheets/bootstrap/_buttons.scss
@@ -35,6 +35,7 @@
&:active,
&.active {
outline: 0;
+ background-image: none;
@include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
}
@@ -130,7 +131,7 @@
@include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
}
.btn-xs {
- padding: 3px 5px;
+ padding: 1px 5px;
}
diff --git a/vendor/assets/stylesheets/bootstrap/_dropdowns.scss b/vendor/assets/stylesheets/bootstrap/_dropdowns.scss
index 14172f9..0f999c3 100644
--- a/vendor/assets/stylesheets/bootstrap/_dropdowns.scss
+++ b/vendor/assets/stylesheets/bootstrap/_dropdowns.scss
@@ -13,6 +13,9 @@
border-top: $caret-width-base solid $dropdown-caret-color;
border-right: $caret-width-base solid transparent;
border-left: $caret-width-base solid transparent;
+ // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed,
+ // we can just straight up remove this.
+ border-bottom: 0 dotted;
content: "";
}
@@ -161,7 +164,9 @@
.navbar-fixed-bottom .dropdown {
// Reverse the caret
.caret {
- border-top: 0;
+ // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this
+ // gets fixed, restore `border-top: 0;`.
+ border-top: 0 dotted;
border-bottom: 4px solid $dropdown-caret-color;
content: "";
}
diff --git a/vendor/assets/stylesheets/bootstrap/_forms.scss b/vendor/assets/stylesheets/bootstrap/_forms.scss
index ee24a27..3c6d863 100644
--- a/vendor/assets/stylesheets/bootstrap/_forms.scss
+++ b/vendor/assets/stylesheets/bootstrap/_forms.scss
@@ -133,9 +133,9 @@ input[type="number"] {
@include form-control-focus();
// Disabled and read-only inputs
- // Note: HTML5 says that controls under a fieldset > legend:first-child won't be
- // disabled if the fieldset is disabled. Due to implementation difficulty,
- // we don't honor that edge case; we style them as disabled anyway.
+ // Note: HTML5 says that controls under a fieldset > legend:first-child won't
+ // be disabled if the fieldset is disabled. Due to implementation difficulty,
+ // we don't honor that edge case; we style them as disabled anyway.
&[disabled],
&[readonly],
fieldset[disabled] & {
@@ -210,10 +210,10 @@ textarea.form-control {
}
// Apply same disabled cursor tweak as for inputs
-// Note: HTML5 says that controls under a fieldset > legend:first-child won't be
-// disabled if the fieldset is disabled. Due to implementation difficulty,
-// we don't honor that edge case; we style them as disabled anyway.
+//
// Note: Neither radios nor checkboxes can be readonly.
+input[type="radio"],
+input[type="checkbox"],
.radio,
.radio-inline,
.checkbox,
diff --git a/vendor/assets/stylesheets/bootstrap/_glyphicons.scss b/vendor/assets/stylesheets/bootstrap/_glyphicons.scss
new file mode 100644
index 0000000..af789d7
--- /dev/null
+++ b/vendor/assets/stylesheets/bootstrap/_glyphicons.scss
@@ -0,0 +1,233 @@
+//
+// Glyphicons for Bootstrap
+//
+// Since icons are fonts, they can be placed anywhere text is placed and are
+// thus automatically sized to match the surrounding child. To use, create an
+// inline element with the appropriate classes, like so:
+//
+// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
+
+// Import the fonts
+@font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url('$icon-font-path$icon-font-name.eot');
+ src: url('$icon-font-path$icon-font-name.eot?#iefix') format('embedded-opentype'),
+ url('$icon-font-path$icon-font-name.woff') format('woff'),
+ url('$icon-font-path$icon-font-name.ttf') format('truetype'),
+ url('$icon-font-path$icon-font-name.svg#glyphicons-halflingsregular') format('svg');
+}
+
+// Catchall baseclass
+.glyphicon {
+ position: relative;
+ top: 2px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+}
+
+// Individual icons
+.glyphicon-glass { &:before { content: "\e001"; } }
+.glyphicon-music { &:before { content: "\e002"; } }
+.glyphicon-search { &:before { content: "\e003"; } }
+.glyphicon-envelope { &:before { content: "\2709"; } }
+.glyphicon-heart { &:before { content: "\e005"; } }
+.glyphicon-star { &:before { content: "\e006"; } }
+.glyphicon-star-empty { &:before { content: "\e007"; } }
+.glyphicon-user { &:before { content: "\e008"; } }
+.glyphicon-film { &:before { content: "\e009"; } }
+.glyphicon-th-large { &:before { content: "\e010"; } }
+.glyphicon-th { &:before { content: "\e011"; } }
+.glyphicon-th-list { &:before { content: "\e012"; } }
+.glyphicon-ok { &:before { content: "\e013"; } }
+.glyphicon-remove { &:before { content: "\e014"; } }
+.glyphicon-zoom-in { &:before { content: "\e015"; } }
+.glyphicon-zoom-out { &:before { content: "\e016"; } }
+.glyphicon-off { &:before { content: "\e017"; } }
+.glyphicon-signal { &:before { content: "\e018"; } }
+.glyphicon-cog { &:before { content: "\e019"; } }
+.glyphicon-trash { &:before { content: "\e020"; } }
+.glyphicon-home { &:before { content: "\e021"; } }
+.glyphicon-file { &:before { content: "\e022"; } }
+.glyphicon-time { &:before { content: "\e023"; } }
+.glyphicon-road { &:before { content: "\e024"; } }
+.glyphicon-download-alt { &:before { content: "\e025"; } }
+.glyphicon-download { &:before { content: "\e026"; } }
+.glyphicon-upload { &:before { content: "\e027"; } }
+.glyphicon-inbox { &:before { content: "\e028"; } }
+.glyphicon-play-circle { &:before { content: "\e029"; } }
+.glyphicon-repeat { &:before { content: "\e030"; } }
+.glyphicon-refresh { &:before { content: "\e031"; } }
+.glyphicon-list-alt { &:before { content: "\e032"; } }
+.glyphicon-lock { &:before { content: "\e033"; } }
+.glyphicon-flag { &:before { content: "\e034"; } }
+.glyphicon-headphones { &:before { content: "\e035"; } }
+.glyphicon-volume-off { &:before { content: "\e036"; } }
+.glyphicon-volume-down { &:before { content: "\e037"; } }
+.glyphicon-volume-up { &:before { content: "\e038"; } }
+.glyphicon-qrcode { &:before { content: "\e039"; } }
+.glyphicon-barcode { &:before { content: "\e040"; } }
+.glyphicon-tag { &:before { content: "\e041"; } }
+.glyphicon-tags { &:before { content: "\e042"; } }
+.glyphicon-book { &:before { content: "\e043"; } }
+.glyphicon-bookmark { &:before { content: "\e044"; } }
+.glyphicon-print { &:before { content: "\e045"; } }
+.glyphicon-camera { &:before { content: "\e046"; } }
+.glyphicon-font { &:before { content: "\e047"; } }
+.glyphicon-bold { &:before { content: "\e048"; } }
+.glyphicon-italic { &:before { content: "\e049"; } }
+.glyphicon-text-height { &:before { content: "\e050"; } }
+.glyphicon-text-width { &:before { content: "\e051"; } }
+.glyphicon-align-left { &:before { content: "\e052"; } }
+.glyphicon-align-center { &:before { content: "\e053"; } }
+.glyphicon-align-right { &:before { content: "\e054"; } }
+.glyphicon-align-justify { &:before { content: "\e055"; } }
+.glyphicon-list { &:before { content: "\e056"; } }
+.glyphicon-indent-left { &:before { content: "\e057"; } }
+.glyphicon-indent-right { &:before { content: "\e058"; } }
+.glyphicon-facetime-video { &:before { content: "\e059"; } }
+.glyphicon-picture { &:before { content: "\e060"; } }
+.glyphicon-pencil { &:before { content: "\270f"; } }
+.glyphicon-map-marker { &:before { content: "\e062"; } }
+.glyphicon-adjust { &:before { content: "\e063"; } }
+.glyphicon-tint { &:before { content: "\e064"; } }
+.glyphicon-edit { &:before { content: "\e065"; } }
+.glyphicon-share { &:before { content: "\e066"; } }
+.glyphicon-check { &:before { content: "\e067"; } }
+.glyphicon-move { &:before { content: "\e068"; } }
+.glyphicon-step-backward { &:before { content: "\e069"; } }
+.glyphicon-fast-backward { &:before { content: "\e070"; } }
+.glyphicon-backward { &:before { content: "\e071"; } }
+.glyphicon-play { &:before { content: "\e072"; } }
+.glyphicon-pause { &:before { content: "\e073"; } }
+.glyphicon-stop { &:before { content: "\e074"; } }
+.glyphicon-forward { &:before { content: "\e075"; } }
+.glyphicon-fast-forward { &:before { content: "\e076"; } }
+.glyphicon-step-forward { &:before { content: "\e077"; } }
+.glyphicon-eject { &:before { content: "\e078"; } }
+.glyphicon-chevron-left { &:before { content: "\e079"; } }
+.glyphicon-chevron-right { &:before { content: "\e080"; } }
+.glyphicon-plus-sign { &:before { content: "\e081"; } }
+.glyphicon-minus-sign { &:before { content: "\e082"; } }
+.glyphicon-remove-sign { &:before { content: "\e083"; } }
+.glyphicon-ok-sign { &:before { content: "\e084"; } }
+.glyphicon-question-sign { &:before { content: "\e085"; } }
+.glyphicon-info-sign { &:before { content: "\e086"; } }
+.glyphicon-screenshot { &:before { content: "\e087"; } }
+.glyphicon-remove-circle { &:before { content: "\e088"; } }
+.glyphicon-ok-circle { &:before { content: "\e089"; } }
+.glyphicon-ban-circle { &:before { content: "\e090"; } }
+.glyphicon-arrow-left { &:before { content: "\e091"; } }
+.glyphicon-arrow-right { &:before { content: "\e092"; } }
+.glyphicon-arrow-up { &:before { content: "\e093"; } }
+.glyphicon-arrow-down { &:before { content: "\e094"; } }
+.glyphicon-share-alt { &:before { content: "\e095"; } }
+.glyphicon-resize-full { &:before { content: "\e096"; } }
+.glyphicon-resize-small { &:before { content: "\e097"; } }
+.glyphicon-plus { &:before { content: "\002b"; } }
+.glyphicon-minus { &:before { content: "\2212"; } }
+.glyphicon-asterisk { &:before { content: "\002a"; } }
+.glyphicon-exclamation-sign { &:before { content: "\e101"; } }
+.glyphicon-gift { &:before { content: "\e102"; } }
+.glyphicon-leaf { &:before { content: "\e103"; } }
+.glyphicon-fire { &:before { content: "\e104"; } }
+.glyphicon-eye-open { &:before { content: "\e105"; } }
+.glyphicon-eye-close { &:before { content: "\e106"; } }
+.glyphicon-warning-sign { &:before { content: "\e107"; } }
+.glyphicon-plane { &:before { content: "\e108"; } }
+.glyphicon-calendar { &:before { content: "\e109"; } }
+.glyphicon-random { &:before { content: "\e110"; } }
+.glyphicon-comment { &:before { content: "\e111"; } }
+.glyphicon-magnet { &:before { content: "\e112"; } }
+.glyphicon-chevron-up { &:before { content: "\e113"; } }
+.glyphicon-chevron-down { &:before { content: "\e114"; } }
+.glyphicon-retweet { &:before { content: "\e115"; } }
+.glyphicon-shopping-cart { &:before { content: "\e116"; } }
+.glyphicon-folder-close { &:before { content: "\e117"; } }
+.glyphicon-folder-open { &:before { content: "\e118"; } }
+.glyphicon-resize-vertical { &:before { content: "\e119"; } }
+.glyphicon-resize-horizontal { &:before { content: "\e120"; } }
+.glyphicon-hdd { &:before { content: "\e121"; } }
+.glyphicon-bullhorn { &:before { content: "\e122"; } }
+.glyphicon-bell { &:before { content: "\e123"; } }
+.glyphicon-certificate { &:before { content: "\e124"; } }
+.glyphicon-thumbs-up { &:before { content: "\e125"; } }
+.glyphicon-thumbs-down { &:before { content: "\e126"; } }
+.glyphicon-hand-right { &:before { content: "\e127"; } }
+.glyphicon-hand-left { &:before { content: "\e128"; } }
+.glyphicon-hand-up { &:before { content: "\e129"; } }
+.glyphicon-hand-down { &:before { content: "\e130"; } }
+.glyphicon-circle-arrow-right { &:before { content: "\e131"; } }
+.glyphicon-circle-arrow-left { &:before { content: "\e132"; } }
+.glyphicon-circle-arrow-up { &:before { content: "\e133"; } }
+.glyphicon-circle-arrow-down { &:before { content: "\e134"; } }
+.glyphicon-globe { &:before { content: "\e135"; } }
+.glyphicon-wrench { &:before { content: "\e136"; } }
+.glyphicon-tasks { &:before { content: "\e137"; } }
+.glyphicon-filter { &:before { content: "\e138"; } }
+.glyphicon-briefcase { &:before { content: "\e139"; } }
+.glyphicon-fullscreen { &:before { content: "\e140"; } }
+.glyphicon-dashboard { &:before { content: "\e141"; } }
+.glyphicon-paperclip { &:before { content: "\e142"; } }
+.glyphicon-heart-empty { &:before { content: "\e143"; } }
+.glyphicon-link { &:before { content: "\e144"; } }
+.glyphicon-phone { &:before { content: "\e145"; } }
+.glyphicon-pushpin { &:before { content: "\e146"; } }
+.glyphicon-euro { &:before { content: "\20ac"; } }
+.glyphicon-usd { &:before { content: "\e148"; } }
+.glyphicon-gbp { &:before { content: "\e149"; } }
+.glyphicon-sort { &:before { content: "\e150"; } }
+.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } }
+.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } }
+.glyphicon-sort-by-order { &:before { content: "\e153"; } }
+.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } }
+.glyphicon-sort-by-attributes { &:before { content: "\e155"; } }
+.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
+.glyphicon-unchecked { &:before { content: "\e157"; } }
+.glyphicon-expand { &:before { content: "\e158"; } }
+.glyphicon-collapse { &:before { content: "\e159"; } }
+.glyphicon-collapse-top { &:before { content: "\e160"; } }
+
+.glyphicon-log-in { &:before{ content: "\e161"; } }
+.glyphicon-flash { &:before{ content: "\e162"; } }
+.glyphicon-log-out { &:before{ content: "\e163"; } }
+.glyphicon-new-window { &:before{ content: "\e164"; } }
+.glyphicon-record { &:before{ content: "\e165"; } }
+.glyphicon-save { &:before{ content: "\e166"; } }
+.glyphicon-open { &:before{ content: "\e167"; } }
+.glyphicon-saved { &:before{ content: "\e168"; } }
+.glyphicon-import { &:before{ content: "\e169"; } }
+.glyphicon-export { &:before{ content: "\e170"; } }
+.glyphicon-send { &:before{ content: "\e171"; } }
+.glyphicon-floppy-disk { &:before{ content: "\e172"; } }
+.glyphicon-floppy-saved { &:before{ content: "\e173"; } }
+.glyphicon-floppy-remove { &:before{ content: "\e174"; } }
+.glyphicon-floppy-save { &:before{ content: "\e175"; } }
+.glyphicon-floppy-open { &:before{ content: "\e176"; } }
+.glyphicon-credit-card { &:before{ content: "\e177"; } }
+.glyphicon-transfer { &:before{ content: "\e178"; } }
+.glyphicon-cutlery { &:before{ content: "\e179"; } }
+.glyphicon-header { &:before{ content: "\e180"; } }
+.glyphicon-compressed { &:before{ content: "\e181"; } }
+.glyphicon-earphone { &:before{ content: "\e182"; } }
+.glyphicon-phone-alt { &:before{ content: "\e183"; } }
+.glyphicon-tower { &:before{ content: "\e184"; } }
+.glyphicon-stats { &:before{ content: "\e185"; } }
+.glyphicon-sd-video { &:before{ content: "\e186"; } }
+.glyphicon-hd-video { &:before{ content: "\e187"; } }
+.glyphicon-subtitles { &:before{ content: "\e188"; } }
+.glyphicon-sound-stereo { &:before{ content: "\e189"; } }
+.glyphicon-sound-dolby { &:before{ content: "\e190"; } }
+.glyphicon-sound-5-1 { &:before{ content: "\e191"; } }
+.glyphicon-sound-6-1 { &:before{ content: "\e192"; } }
+.glyphicon-sound-7-1 { &:before{ content: "\e193"; } }
+.glyphicon-copyright-mark { &:before{ content: "\e194"; } }
+.glyphicon-registration-mark { &:before{ content: "\e195"; } }
+.glyphicon-cloud { &:before{ content: "\2601"; } }
+.glyphicon-cloud-download { &:before{ content: "\e197"; } }
+.glyphicon-cloud-upload { &:before{ content: "\e198"; } }
+.glyphicon-tree-conifer { &:before{ content: "\e199"; } }
+.glyphicon-tree-deciduous { &:before{ content: "\e200"; } }
diff --git a/vendor/assets/stylesheets/bootstrap/_grid.scss b/vendor/assets/stylesheets/bootstrap/_grid.scss
index 782f7fa..f79a609 100644
--- a/vendor/assets/stylesheets/bootstrap/_grid.scss
+++ b/vendor/assets/stylesheets/bootstrap/_grid.scss
@@ -223,6 +223,7 @@
.col-md-12 { width: 100%; }
// Push and pull columns for source order changes
+ .col-md-push-0 { left: auto; }
.col-md-push-1 { left: percentage((1 / $grid-columns)); }
.col-md-push-2 { left: percentage((2 / $grid-columns)); }
.col-md-push-3 { left: percentage((3 / $grid-columns)); }
@@ -235,6 +236,7 @@
.col-md-push-10 { left: percentage((10/ $grid-columns)); }
.col-md-push-11 { left: percentage((11/ $grid-columns)); }
+ .col-md-pull-0 { right: auto; }
.col-md-pull-1 { right: percentage((1 / $grid-columns)); }
.col-md-pull-2 { right: percentage((2 / $grid-columns)); }
.col-md-pull-3 { right: percentage((3 / $grid-columns)); }
@@ -248,6 +250,7 @@
.col-md-pull-11 { right: percentage((11/ $grid-columns)); }
// Offsets
+ .col-md-offset-0 { margin-left: 0; }
.col-md-offset-1 { margin-left: percentage((1 / $grid-columns)); }
.col-md-offset-2 { margin-left: percentage((2 / $grid-columns)); }
.col-md-offset-3 { margin-left: percentage((3 / $grid-columns)); }
@@ -269,9 +272,9 @@
// Note that `.col-lg-12` doesn't get floated on purpose—there's no need since
// it's full-width.
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg-desktop) {
.container {
- max-width: $container-large-desktop;
+ max-width: $container-lg-desktop;
}
.col-lg-1,
@@ -301,6 +304,7 @@
.col-lg-12 { width: 100%; }
// Push and pull columns for source order changes
+ .col-lg-push-0 { left: auto; }
.col-lg-push-1 { left: percentage((1 / $grid-columns)); }
.col-lg-push-2 { left: percentage((2 / $grid-columns)); }
.col-lg-push-3 { left: percentage((3 / $grid-columns)); }
@@ -313,6 +317,7 @@
.col-lg-push-10 { left: percentage((10/ $grid-columns)); }
.col-lg-push-11 { left: percentage((11/ $grid-columns)); }
+ .col-lg-pull-0 { right: auto; }
.col-lg-pull-1 { right: percentage((1 / $grid-columns)); }
.col-lg-pull-2 { right: percentage((2 / $grid-columns)); }
.col-lg-pull-3 { right: percentage((3 / $grid-columns)); }
@@ -326,6 +331,7 @@
.col-lg-pull-11 { right: percentage((11/ $grid-columns)); }
// Offsets
+ .col-lg-offset-0 { margin-left: 0; }
.col-lg-offset-1 { margin-left: percentage((1 / $grid-columns)); }
.col-lg-offset-2 { margin-left: percentage((2 / $grid-columns)); }
.col-lg-offset-3 { margin-left: percentage((3 / $grid-columns)); }
diff --git a/vendor/assets/stylesheets/bootstrap/_jumbotron.scss b/vendor/assets/stylesheets/bootstrap/_jumbotron.scss
index 5672112..c19d79d 100644
--- a/vendor/assets/stylesheets/bootstrap/_jumbotron.scss
+++ b/vendor/assets/stylesheets/bootstrap/_jumbotron.scss
@@ -11,6 +11,7 @@
line-height: ($line-height-base * 1.5);
color: $jumbotron-lead-color;
background-color: $jumbotron-bg;
+
h1 {
line-height: 1;
color: $jumbotron-heading-color;
@@ -19,9 +20,19 @@
line-height: 1.4;
}
+ .container & {
+ border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
+ }
+
@media screen and (min-width: $screen-tablet) {
- padding: 50px 60px;
- border-radius: $border-radius-large; // Only round corners at higher resolutions
+ padding-top: 50px;
+ padding-bottom: 50px;
+
+ .container & {
+ padding-left: 60px;
+ padding-right: 60px;
+ }
+
h1 {
font-size: ($font-size-base * 4.5);
}
diff --git a/vendor/assets/stylesheets/bootstrap/_labels.scss b/vendor/assets/stylesheets/bootstrap/_labels.scss
index ae38050..611c4e8 100644
--- a/vendor/assets/stylesheets/bootstrap/_labels.scss
+++ b/vendor/assets/stylesheets/bootstrap/_labels.scss
@@ -37,18 +37,22 @@
@include label-variant($label-default-bg);
}
-.label-danger {
- @include label-variant($label-danger-bg);
+.label-primary {
+ @include label-variant($label-primary-bg);
}
.label-success {
@include label-variant($label-success-bg);
}
+.label-info {
+ @include label-variant($label-info-bg);
+}
+
.label-warning {
@include label-variant($label-warning-bg);
}
-.label-info {
- @include label-variant($label-info-bg);
+.label-danger {
+ @include label-variant($label-danger-bg);
}
diff --git a/vendor/assets/stylesheets/bootstrap/_mixins.scss b/vendor/assets/stylesheets/bootstrap/_mixins.scss
index 4898a1b..ff8cb92 100644
--- a/vendor/assets/stylesheets/bootstrap/_mixins.scss
+++ b/vendor/assets/stylesheets/bootstrap/_mixins.scss
@@ -286,7 +286,7 @@
// Reset filters for IE
//
-// When you need to remove a gradient background, don't forget to use this to reset
+// When you need to remove a gradient background, do not forget to use this to reset
// the IE filter for IE9 and below.
@mixin reset-filter() {
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -412,12 +412,17 @@
&:hover,
&:focus,
&:active,
- &.active {
+ &.active,
+ .open .dropdown-toggle& {
color: $color;
background-color: darken($background, 8%);
border-color: darken($border, 12%);
}
-
+ &:active,
+ &.active,
+ .open .dropdown-toggle& {
+ background-image: none;
+ }
&.disabled,
&[disabled],
fieldset[disabled] & {
@@ -521,43 +526,28 @@
@mixin container-fixed() {
margin-right: auto;
margin-left: auto;
+ padding-left: ($grid-gutter-width / 2);
+ padding-right: ($grid-gutter-width / 2);
@include clearfix();
}
// Creates a wrapper for a series of columns
@mixin make-row($gutter: $grid-gutter-width) {
- // Then clear the floated columns
+ margin-left: ($gutter / -2);
+ margin-right: ($gutter / -2);
@include clearfix();
-
- .container & {
- @media (min-width: $screen-small) {
- margin-left: ($gutter / -2);
- margin-right: ($gutter / -2);
- }
- }
-
- // Negative margin nested rows out to align the content of columns
- .row {
- margin-left: ($gutter / -2);
- margin-right: ($gutter / -2);
- }
}
// Generate the extra small columns
@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
position: relative;
float: left;
+ width: percentage(($columns / $grid-columns));
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: ($gutter / 2);
padding-right: ($gutter / 2);
- $max-width: ($screen-small - 1);
-
- // Calculate width based on number of columns available
- @media (max-width: $max-width) {
- width: percentage(($columns / $grid-columns));
- }
}
// Generate the small columns
@@ -570,7 +560,7 @@
padding-right: ($gutter / 2);
// Calculate width based on number of columns available
- @media (min-width: $screen-small) {
+ @media (min-width: $screen-sm) {
float: left;
width: percentage(($columns / $grid-columns));
}
@@ -578,17 +568,17 @@
// Generate the small column offsets
@mixin make-sm-column-offset($columns) {
- @media (min-width: $screen-small) {
+ @media (min-width: $screen-sm) {
margin-left: percentage(($columns / $grid-columns));
}
}
@mixin make-sm-column-push($columns) {
- @media (min-width: $screen-small) {
+ @media (min-width: $screen-sm) {
left: percentage(($columns / $grid-columns));
}
}
@mixin make-sm-column-pull($columns) {
- @media (min-width: $screen-small) {
+ @media (min-width: $screen-sm) {
right: percentage(($columns / $grid-columns));
}
}
@@ -603,7 +593,7 @@
padding-right: ($gutter / 2);
// Calculate width based on number of columns available
- @media (min-width: $screen-medium) {
+ @media (min-width: $screen-md) {
float: left;
width: percentage(($columns / $grid-columns));
}
@@ -611,17 +601,17 @@
// Generate the large column offsets
@mixin make-md-column-offset($columns) {
- @media (min-width: $screen-medium) {
+ @media (min-width: $screen-md) {
margin-left: percentage(($columns / $grid-columns));
}
}
@mixin make-md-column-push($columns) {
- @media (min-width: $screen-medium) {
+ @media (min-width: $screen-md) {
left: percentage(($columns / $grid-columns));
}
}
@mixin make-md-column-pull($columns) {
- @media (min-width: $screen-medium) {
+ @media (min-width: $screen-md) {
right: percentage(($columns / $grid-columns));
}
}
@@ -636,7 +626,7 @@
padding-right: ($gutter / 2);
// Calculate width based on number of columns available
- @media (min-width: $screen-large) {
+ @media (min-width: $screen-lg) {
float: left;
width: percentage(($columns / $grid-columns));
}
@@ -644,17 +634,17 @@
// Generate the large column offsets
@mixin make-lg-column-offset($columns) {
- @media (min-width: $screen-large) {
+ @media (min-width: $screen-lg) {
margin-left: percentage(($columns / $grid-columns));
}
}
@mixin make-lg-column-push($columns) {
- @media (min-width: $screen-large) {
+ @media (min-width: $screen-lg) {
left: percentage(($columns / $grid-columns));
}
}
@mixin make-lg-column-pull($columns) {
- @media (min-width: $screen-large) {
+ @media (min-width: $screen-lg) {
right: percentage(($columns / $grid-columns));
}
}
diff --git a/vendor/assets/stylesheets/bootstrap/_navbar.scss b/vendor/assets/stylesheets/bootstrap/_navbar.scss
index 239b02a..60a8171 100644
--- a/vendor/assets/stylesheets/bootstrap/_navbar.scss
+++ b/vendor/assets/stylesheets/bootstrap/_navbar.scss
@@ -30,8 +30,6 @@
// styling of responsive aspects.
.navbar-header {
- padding-left: $navbar-padding-horizontal;
- padding-right: $navbar-padding-horizontal;
@include clearfix();
@media (min-width: $grid-float-breakpoint) {
@@ -51,24 +49,21 @@
// content for the user's viewport.
.navbar-collapse {
+ max-height: 340px;
+ overflow-x: visible;
padding-right: $navbar-padding-horizontal;
padding-left: $navbar-padding-horizontal;
border-top: 1px solid darken($navbar-bg, 7%);
box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
- // Clear floated elements and prevent collapsing of padding
@include clearfix();
-
- // This is not automatically added to the `.navbar-fixed-top` because it causes
- // z-index bugs in iOS7 (possibly earlier).
- max-height: 340px;
- overflow-x: visible;
- overflow-y: auto;
-webkit-overflow-scrolling: touch;
+ &.in {
+ overflow-y: auto;
+ }
+
@media (min-width: $grid-float-breakpoint) {
width: auto;
- padding-right: 0;
- padding-left: 0;
border-top: 0;
box-shadow: none;
@@ -78,6 +73,30 @@
padding-bottom: 0; // Override default setting
overflow: visible !important;
}
+
+ &.in {
+ overflow-y: visible;
+ }
+
+ .navbar-nav.navbar-right:last-child {
+ margin-right: -$navbar-padding-horizontal;
+ }
+ }
+}
+
+
+// Both navbar header and collapse
+//
+// When a container is present, change the behavior of the header and collapse.
+
+.container > .navbar-header,
+.container > .navbar-collapse {
+ margin-right: -$navbar-padding-horizontal;
+ margin-left: -$navbar-padding-horizontal;
+
+ @media (min-width: $grid-float-breakpoint) {
+ margin-right: 0;
+ margin-left: 0;
}
}
@@ -90,8 +109,8 @@
// Static top (unfixed, but 100% wide) navbar
.navbar-static-top {
+ border-width: 0 0 1px;
@media (min-width: $grid-float-breakpoint) {
- border-width: 0 0 1px;
border-radius: 0;
}
}
@@ -123,8 +142,7 @@
.navbar-brand {
float: left;
- padding-top: $navbar-padding-vertical;
- padding-bottom: $navbar-padding-vertical;
+ padding: $navbar-padding-vertical $navbar-padding-horizontal;
font-size: $font-size-large;
line-height: $line-height-computed;
color: $navbar-brand-color;
@@ -134,6 +152,12 @@
text-decoration: none;
background-color: $navbar-brand-hover-bg;
}
+
+ @media (min-width: $grid-float-breakpoint) {
+ .navbar > .container & {
+ margin-left: -$navbar-padding-horizontal;
+ }
+ }
}
@@ -145,6 +169,7 @@
.navbar-toggle {
position: relative;
float: right;
+ margin-right: $navbar-padding-horizontal;
padding: 9px 10px;
@include navbar-vertical-align(34px);
background-color: transparent;
@@ -169,9 +194,6 @@
}
@media (min-width: $grid-float-breakpoint) {
- position: relative;
- top: auto;
- left: auto;
display: none;
}
}
@@ -183,10 +205,7 @@
// the nav the full height of the horizontal nav (above 768px).
.navbar-nav {
- padding-top: ($navbar-padding-vertical / 2);
- padding-bottom: ($navbar-padding-vertical / 2);
- margin-left: -$navbar-padding-horizontal;
- margin-right: -$navbar-padding-horizontal;
+ margin: ($navbar-padding-vertical / 2) -$navbar-padding-horizontal;
> li > a {
padding-top: 10px;
@@ -216,7 +235,7 @@
}
}
- @media (max-width: $screen-phone-max) {
+ @media (max-width: $screen-xs-max) {
// Dropdowns get custom display when collapsed
.open .dropdown-menu {
position: static;
@@ -263,8 +282,6 @@
@media (min-width: $grid-float-breakpoint) {
float: left;
margin: 0;
- padding-top: 0;
- padding-bottom: 0;
> li {
float: left;
@@ -309,12 +326,14 @@
padding: 10px $navbar-padding-horizontal;
border-top: 1px solid darken($navbar-bg, 7%);
border-bottom: 1px solid darken($navbar-bg, 7%);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
+ @include box-shadow($shadow);
// Mixin behavior for optimum display
@extend .form-inline;
.form-group {
- @media (max-width: $screen-phone-max) {
+ @media (max-width: $screen-xs-max) {
margin-bottom: 5px;
}
}
@@ -330,6 +349,7 @@
margin-right: 0;
padding-top: 0;
padding-bottom: 0;
+ @include box-shadow(none);
}
}
@@ -399,6 +419,11 @@
float: left;
color: $navbar-color;
@include navbar-vertical-align($line-height-computed);
+
+ @media (min-width: $grid-float-breakpoint) {
+ margin-left: $navbar-padding-horizontal;
+ margin-right: $navbar-padding-horizontal;
+ }
}
@@ -475,8 +500,9 @@
}
}
- .navbar-collapse {
- border-top-color: darken($navbar-inverse-bg, 7%);
+ .navbar-collapse,
+ .navbar-form {
+ border-color: darken($navbar-inverse-bg, 7%);
}
// Dropdowns
@@ -508,7 +534,7 @@
}
}
- @media (max-width: $screen-phone-max) {
+ @media (max-width: $screen-xs-max) {
// Dropdowns get custom display
.open .dropdown-menu {
> .dropdown-header {
diff --git a/vendor/assets/stylesheets/bootstrap/_navs.scss b/vendor/assets/stylesheets/bootstrap/_navs.scss
index 40a7741..5141ced 100644
--- a/vendor/assets/stylesheets/bootstrap/_navs.scss
+++ b/vendor/assets/stylesheets/bootstrap/_navs.scss
@@ -19,7 +19,7 @@
> a {
position: relative;
display: block;
- padding: 10px 15px;
+ padding: $nav-link-padding;
&:hover,
&:focus {
text-decoration: none;
@@ -42,17 +42,12 @@
}
// Open dropdowns
- &.open > a {
+ .open > a {
&,
&:hover,
&:focus {
- color: $nav-open-link-hover-color;
- background-color: $link-color;
+ background-color: $nav-link-hover-bg;
border-color: $link-color;
- .caret {
- border-top-color: $nav-open-caret-border-color;
- border-bottom-color: $nav-open-caret-border-color;
- }
}
}
@@ -87,7 +82,7 @@
border: 1px solid transparent;
border-radius: $border-radius-base $border-radius-base 0 0;
&:hover {
- border-color: $nav-tabs-link-hover-border-color;
+ border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
}
}
@@ -159,14 +154,20 @@
.nav-justified {
width: 100%;
+
> li {
float: none;
- display: table-cell;
- width: 1%;
- > a {
+ > a {
text-align: center;
}
}
+
+ @media (min-width: $screen-sm) {
+ > li {
+ display: table-cell;
+ width: 1%;
+ }
+ }
}
// Move borders to anchors instead of bottom of list
diff --git a/vendor/assets/stylesheets/bootstrap/_pager.scss b/vendor/assets/stylesheets/bootstrap/_pager.scss
index 3ad7ccf..e067a3d 100644
--- a/vendor/assets/stylesheets/bootstrap/_pager.scss
+++ b/vendor/assets/stylesheets/bootstrap/_pager.scss
@@ -23,7 +23,7 @@
> a:hover,
> a:focus {
text-decoration: none;
- background-color: $pagination-active-bg;
+ background-color: $pagination-hover-bg;
}
}
diff --git a/vendor/assets/stylesheets/bootstrap/_pagination.scss b/vendor/assets/stylesheets/bootstrap/_pagination.scss
index f7c4a87..10ebb62 100644
--- a/vendor/assets/stylesheets/bootstrap/_pagination.scss
+++ b/vendor/assets/stylesheets/bootstrap/_pagination.scss
@@ -11,18 +11,19 @@
display: inline; // Remove list-style and block-level defaults
> a,
> span {
+ position: relative;
float: left; // Collapse white-space
padding: $padding-base-vertical $padding-base-horizontal;
line-height: $line-height-base;
text-decoration: none;
background-color: $pagination-bg;
border: 1px solid $pagination-border;
- border-left-width: 0;
+ margin-left: -1px;
}
&:first-child {
> a,
> span {
- border-left-width: 1px;
+ margin-left: 0;
@include border-left-radius($border-radius-base);
}
}
@@ -34,16 +35,25 @@
}
}
- > li > a:hover,
- > li > a:focus,
- > .active > a,
- > .active > span {
- background-color: $pagination-active-bg;
+ > li > a,
+ > li > span {
+ &:hover,
+ &:focus {
+ background-color: $pagination-hover-bg;
+ }
}
+
> .active > a,
> .active > span {
- color: $pagination-active-color;
- cursor: default;
+ &,
+ &:hover,
+ &:focus {
+ z-index: 2;
+ color: $pagination-active-color;
+ background-color: $pagination-active-bg;
+ border-color: $pagination-active-bg;
+ cursor: default;
+ }
}
> .disabled {
@@ -53,6 +63,7 @@
> a:focus {
color: $pagination-disabled-color;
background-color: $pagination-bg;
+ border-color: $pagination-border;
cursor: not-allowed;
}
}
diff --git a/vendor/assets/stylesheets/bootstrap/_panels.scss b/vendor/assets/stylesheets/bootstrap/_panels.scss
index b6c423a..3341ddf 100644
--- a/vendor/assets/stylesheets/bootstrap/_panels.scss
+++ b/vendor/assets/stylesheets/bootstrap/_panels.scss
@@ -15,15 +15,20 @@
// Panel contents
.panel-body {
padding: 15px;
+ @include clearfix();
}
+
// List groups in panels
//
// By default, space out list group content from panel headings to account for
// any kind of custom content between the two.
.panel {
- .list-group {
+ > .table {
+ margin-bottom: 0;
+ }
+ > .list-group {
margin-bottom: 0;
.list-group-item {
@@ -47,6 +52,22 @@
}
}
+
+// Tables in panels
+//
+// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
+// watch it go full width.
+
+.panel {
+ > .table {
+ margin-bottom: 0;
+ }
+ > .panel-body + .table {
+ border-top: 1px solid $table-border-color;
+ }
+}
+
+
// Optional heading
.panel-heading {
padding: 10px 15px;
@@ -59,7 +80,7 @@
.panel-title {
margin-top: 0;
margin-bottom: 0;
- font-size: ($font-size-base * 1.25);
+ font-size: ceil(($font-size-base * 1.125));
> a {
color: inherit;
}
diff --git a/vendor/assets/stylesheets/bootstrap/_progress-bars.scss b/vendor/assets/stylesheets/bootstrap/_progress-bars.scss
index 55a2853..237a251 100644
--- a/vendor/assets/stylesheets/bootstrap/_progress-bars.scss
+++ b/vendor/assets/stylesheets/bootstrap/_progress-bars.scss
@@ -78,22 +78,18 @@
// Variations
// -------------------------
-// Danger (red)
-.progress-bar-danger {
- @include progress-bar-variant($progress-bar-danger-bg);
-}
-
-// Success (green)
.progress-bar-success {
@include progress-bar-variant($progress-bar-success-bg);
}
-// Warning (orange)
+.progress-bar-info {
+ @include progress-bar-variant($progress-bar-info-bg);
+}
+
.progress-bar-warning {
@include progress-bar-variant($progress-bar-warning-bg);
}
-// Info (teal)
-.progress-bar-info {
- @include progress-bar-variant($progress-bar-info-bg);
+.progress-bar-danger {
+ @include progress-bar-variant($progress-bar-danger-bg);
}
diff --git a/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss b/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss
index d72160c..0160a1d 100644
--- a/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss
+++ b/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss
@@ -36,90 +36,89 @@
// Visibility utilities
@include responsive-visibility('.visible-xs');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-invisibility('.visible-xs');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-invisibility('.visible-xs');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-invisibility('.visible-xs');
}
@include responsive-invisibility('.visible-sm');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-visibility('.visible-sm');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-invisibility('.visible-sm');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-invisibility('.visible-sm');
}
@include responsive-invisibility('.visible-md');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-invisibility('.visible-md');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-visibility('.visible-md');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-invisibility('.visible-md');
}
@include responsive-invisibility('.visible-lg');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-invisibility('.visible-lg');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-invisibility('.visible-lg');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-visibility('.visible-lg');
}
@include responsive-invisibility('.hidden-xs');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-visibility('.hidden-xs');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-visibility('.hidden-xs');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-visibility('.hidden-xs');
}
@include responsive-visibility('.hidden-sm');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-invisibility('.hidden-sm');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-visibility('.hidden-sm');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-visibility('.hidden-sm');
}
@include responsive-visibility('.hidden-md');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-visibility('.hidden-md');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-invisibility('.hidden-md');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-visibility('.hidden-md');
}
@include responsive-visibility('.hidden-lg');
-@media (min-width: $screen-tablet) and (max-width: $screen-tablet-max) {
+@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@include responsive-visibility('.hidden-lg');
}
-@media (min-width: $screen-desktop) and (max-width: $screen-desktop-max) {
+@media (min-width: $screen-md) and (max-width: $screen-md-max) {
@include responsive-visibility('.hidden-lg');
}
-@media (min-width: $screen-large-desktop) {
+@media (min-width: $screen-lg) {
@include responsive-invisibility('.hidden-lg');
}
// Print utilities
@include responsive-invisibility('.visible-print');
-.hidden-print { }
@media print {
@include responsive-visibility('.visible-print');
diff --git a/vendor/assets/stylesheets/bootstrap/_tables.scss b/vendor/assets/stylesheets/bootstrap/_tables.scss
index 8c1fc42..c495542 100644
--- a/vendor/assets/stylesheets/bootstrap/_tables.scss
+++ b/vendor/assets/stylesheets/bootstrap/_tables.scss
@@ -35,6 +35,7 @@ th {
// Bottom align for column headings
thead > tr > th {
vertical-align: bottom;
+ border-bottom: 2px solid $table-border-color;
}
// Remove top border from thead by default
caption + thead,
@@ -92,6 +93,14 @@ th {
}
}
}
+ > thead {
+ > tr {
+ > th,
+ > td {
+ border-bottom-width: 2px;
+ }
+ }
+ }
}
diff --git a/vendor/assets/stylesheets/bootstrap/_theme.scss b/vendor/assets/stylesheets/bootstrap/_theme.scss
new file mode 100644
index 0000000..47223af
--- /dev/null
+++ b/vendor/assets/stylesheets/bootstrap/_theme.scss
@@ -0,0 +1,232 @@
+
+//
+// Load core variables and mixins
+// --------------------------------------------------
+
+@import "bootstrap/variables";
+@import "bootstrap/mixins";
+
+
+
+//
+// Buttons
+// --------------------------------------------------
+
+// Common styles
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
+ @include box-shadow($shadow);
+
+ // Reset the shadow
+ &:active,
+ &.active {
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ }
+}
+
+// Mixin for generating new styles
+@include btn-styles($btn-color: #555;) {
+ @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 10%));
+ border-color: darken($btn-color, 12%);
+
+ &:active,
+ &.active {
+ background-color: darken($btn-color, 10%);
+ border-color: darken($btn-color, 12%);
+ }
+}
+
+// Common styles
+.btn {
+ // Remove the gradient for the pressed/active state
+ &:active,
+ &.active {
+ background-image: none;
+ }
+}
+
+// Apply the mixin to the buttons
+.btn-default { @include btn-styles($btn-default-bg;); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
+.btn-primary { @include btn-styles($btn-primary-bg); }
+.btn-success { @include btn-styles($btn-success-bg); }
+.btn-warning { @include btn-styles($btn-warning-bg); }
+.btn-danger { @include btn-styles($btn-danger-bg); }
+.btn-info { @include btn-styles($btn-info-bg); }
+
+
+
+//
+// Images
+// --------------------------------------------------
+
+.thumbnail,
+.img-thumbnail {
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+
+
+
+//
+// Dropdowns
+// --------------------------------------------------
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus,
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
+ background-color: darken($dropdown-link-hover-bg, 5%);
+}
+
+
+
+//
+// Navbar
+// --------------------------------------------------
+
+// Basic navbar
+.navbar {
+ @include gradient-vertical($start-color: lighten($navbar-bg, 10%), $end-color: $navbar-bg;);
+ border-radius: $navbar-border-radius;
+ $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
+ @include box-shadow($shadow);
+
+ .navbar-nav > .active > a {
+ background-color: $navbar-bg;
+ }
+}
+.navbar-brand,
+.navbar-nav > li > a {
+ text-shadow: 0 1px 0 rgba(255,255,255,.25);
+}
+
+// Inverted navbar
+.navbar-inverse {
+ @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg;);
+
+ .navbar-nav > .active > a {
+ background-color: $navbar-inverse-bg;
+ }
+
+ .navbar-brand,
+ .navbar-nav > li > a {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+}
+
+// Undo rounded corners in static and fixed navbars
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+}
+
+
+
+//
+// Alerts
+// --------------------------------------------------
+
+// Common styles
+.alert {
+ text-shadow: 0 1px 0 rgba(255,255,255,.2);
+ $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
+ @include box-shadow($shadow);
+}
+
+// Mixin for generating new styles
+@include alert-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
+ border-color: darken($color, 15%);
+}
+
+// Apply the mixin to the alerts
+.alert { @include alert-styles($alert-bg); }
+.alert-success { @include alert-styles($alert-success-bg); }
+.alert-info { @include alert-styles($alert-info-bg); }
+.alert-danger { @include alert-styles($alert-danger-bg); }
+
+
+
+//
+// Progress bars
+// --------------------------------------------------
+
+// Give the progress background some depth
+.progress {
+ @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg;)
+}
+
+// Mixin for generating new styles
+@include progress-bar-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
+}
+
+// Apply the mixin to the progress bars
+.progress-bar { @include progress-bar-styles($progress-bar-bg); }
+.progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
+.progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
+.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
+.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
+
+
+
+//
+// List groups
+// --------------------------------------------------
+
+.list-group {
+ border-radius: $border-radius-base;
+ @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
+ @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
+ border-color: darken($list-group-active-border, 7.5%);
+}
+
+
+
+//
+// Panels
+// --------------------------------------------------
+
+// Common styles
+.panel {
+ @include box-shadow(0 1px 2px rgba(0,0,0,.05));
+}
+
+// Mixin for generating new styles
+@include panel-heading-styles($color) {
+ @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
+}
+
+// Apply the mixin to the panel headings only
+.panel-heading { @include panel-heading-styles($panel-heading-bg); }
+.panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
+.panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
+.panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
+.panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
+.panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
+
+
+
+//
+// Wells
+// --------------------------------------------------
+
+.well {
+ @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg;);
+ border-color: darken($well-bg, 10%);
+ $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
+ @include box-shadow($shadow);
+}
diff --git a/vendor/assets/stylesheets/bootstrap/_thumbnails.scss b/vendor/assets/stylesheets/bootstrap/_thumbnails.scss
index bc589e5..0493994 100644
--- a/vendor/assets/stylesheets/bootstrap/_thumbnails.scss
+++ b/vendor/assets/stylesheets/bootstrap/_thumbnails.scss
@@ -20,10 +20,12 @@
.thumbnail {
display: block;
}
-.thumbnail > img,
-.img-thumbnail {
+.thumbnail > img {
@include img-responsive();
}
+.img-thumbnail {
+ @include img-responsive(inline-block);
+}
// Add a hover state for linked versions only
a.thumbnail:hover,
diff --git a/vendor/assets/stylesheets/bootstrap/_variables.scss b/vendor/assets/stylesheets/bootstrap/_variables.scss
index 26f8f5a..f8b4d6f 100644
--- a/vendor/assets/stylesheets/bootstrap/_variables.scss
+++ b/vendor/assets/stylesheets/bootstrap/_variables.scss
@@ -55,6 +55,12 @@ $headings-font-family: $font-family-base !default;
$headings-font-weight: 500 !default;
$headings-line-height: 1.1 !default;
+// Iconography
+// -------------------------
+
+$icon-font-path: "../fonts/" !default;
+$icon-font-name: "glyphicons-halflings-regular" !default;
+
// Components
// -------------------------
@@ -98,7 +104,7 @@ $table-border-color: #ddd !default; // table and cell border
// Buttons
// -------------------------
-$btn-font-weight: bold !default;
+$btn-font-weight: normal !default;
$btn-default-color: #333 !default;
$btn-default-bg: #fff !default;
@@ -193,26 +199,25 @@ $zindex-modal: 1050 !default;
// --------------------------------------------------
// Extra small screen / phone
-$screen-xsmall: 480px !default;
-$screen-phone: $screen-xsmall !default;
+$screen-xs: 480px !default;
+$screen-phone: $screen-xs !default;
// Small screen / tablet
-$screen-small: 768px !default;
-$screen-tablet: $screen-small !default;
+$screen-sm: 768px !default;
+$screen-tablet: $screen-sm !default;
// Medium screen / desktop
-$screen-medium: 992px !default;
-$screen-desktop: $screen-medium !default;
+$screen-md: 992px !default;
+$screen-desktop: $screen-md !default;
// Large screen / wide desktop
-$screen-large: 1200px !default;
-$screen-large-desktop: $screen-large !default;
+$screen-lg: 1200px !default;
+$screen-lg-desktop: $screen-lg !default;
// So media queries don't overlap when required, provide a maximum
-$screen-phone-max: ($screen-small - 1) !default;
-$screen-small-max: ($screen-medium - 1) !default;
-$screen-tablet-max: ($screen-desktop - 1) !default;
-$screen-desktop-max: ($screen-large-desktop - 1) !default;
+$screen-xs-max: ($screen-sm - 1) !default;
+$screen-sm-max: ($screen-md - 1) !default;
+$screen-md-max: ($screen-lg - 1) !default;
// Grid system
@@ -296,6 +301,7 @@ $navbar-inverse-toggle-border-color: #333 !default;
// Navs
// -------------------------
+$nav-link-padding: 10px 15px !default;
$nav-link-hover-bg: $gray-lighter !default;
$nav-disabled-link-color: $gray-light !default;
@@ -326,10 +332,15 @@ $nav-pills-active-link-hover-color: #fff !default;
$pagination-bg: #fff !default;
$pagination-border: #ddd !default;
-$pagination-active-bg: #f5f5f5 !default;
-$pagination-active-color: $gray-light !default;
+
+$pagination-hover-bg: $gray-lighter !default;
+
+$pagination-active-bg: $brand-primary !default;
+$pagination-active-color: #fff !default;
+
$pagination-disabled-color: $gray-light !default;
+
// Pager
// -------------------------
@@ -396,6 +407,7 @@ $popover-arrow-outer-fallback-color: #999 !default;
// -------------------------
$label-default-bg: $gray-light !default;
+$label-primary-bg: $brand-primary !default;
$label-success-bg: $brand-success !default;
$label-info-bg: $brand-info !default;
$label-warning-bg: $brand-warning !default;
@@ -593,10 +605,10 @@ $component-offset-horizontal: 180px !default;
// --------------------------------------------------
// Small screen / tablet
-$container-tablet: 720px !default;
+$container-tablet: ((720px + $grid-gutter-width)) !default;
// Medium screen / desktop
-$container-desktop: 940px !default;
+$container-desktop: ((940px + $grid-gutter-width)) !default;
// Large screen / wide desktop
-$container-large-desktop: 1140px !default;
+$container-lg-desktop: ((1140px + $grid-gutter-width)) !default;
diff --git a/vendor/assets/stylesheets/bootstrap/bootstrap.scss b/vendor/assets/stylesheets/bootstrap/bootstrap.scss
index e94ddf4..5e7b6bb 100644
--- a/vendor/assets/stylesheets/bootstrap/bootstrap.scss
+++ b/vendor/assets/stylesheets/bootstrap/bootstrap.scss
@@ -21,43 +21,39 @@
@import "bootstrap/type";
@import "bootstrap/code";
@import "bootstrap/grid";
-
@import "bootstrap/tables";
@import "bootstrap/forms";
@import "bootstrap/buttons";
-// Components: common
+// Components
@import "bootstrap/component-animations";
-@import "bootstrap/input-groups";
+@import "bootstrap/glyphicons";
@import "bootstrap/dropdowns";
-@import "bootstrap/list-group";
-@import "bootstrap/panels";
-@import "bootstrap/wells";
-@import "bootstrap/close";
-
-// Components: Nav
+@import "bootstrap/button-groups";
+@import "bootstrap/input-groups";
@import "bootstrap/navs";
@import "bootstrap/navbar";
-@import "bootstrap/button-groups";
@import "bootstrap/breadcrumbs";
@import "bootstrap/pagination";
@import "bootstrap/pager";
+@import "bootstrap/labels";
+@import "bootstrap/badges";
+@import "bootstrap/jumbotron";
+@import "bootstrap/thumbnails";
+@import "bootstrap/alerts";
+@import "bootstrap/progress-bars";
+@import "bootstrap/media";
+@import "bootstrap/list-group";
+@import "bootstrap/panels";
+@import "bootstrap/wells";
+@import "bootstrap/close";
-// Components: Popovers
+// Components w/ JavaScript
@import "bootstrap/modals";
@import "bootstrap/tooltip";
@import "bootstrap/popovers";
-
-// Components: Misc
-@import "bootstrap/alerts";
-@import "bootstrap/thumbnails";
-@import "bootstrap/media";
-@import "bootstrap/labels";
-@import "bootstrap/badges";
-@import "bootstrap/progress-bars";
@import "bootstrap/carousel";
-@import "bootstrap/jumbotron";
// Utility classes
-@import "bootstrap/utilities"; // Has to be last to override when necessary
+@import "bootstrap/utilities";
@import "bootstrap/responsive-utilities";