bootstrap-sass 3.3.7 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +4 -10
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile +1 -4
  5. data/README.md +26 -58
  6. data/Rakefile +12 -8
  7. data/assets/javascripts/bootstrap-sprockets.js +3 -3
  8. data/assets/javascripts/bootstrap.js +300 -97
  9. data/assets/javascripts/bootstrap.min.js +3 -4
  10. data/assets/javascripts/bootstrap/affix.js +7 -5
  11. data/assets/javascripts/bootstrap/alert.js +6 -5
  12. data/assets/javascripts/bootstrap/button.js +4 -4
  13. data/assets/javascripts/bootstrap/carousel.js +16 -7
  14. data/assets/javascripts/bootstrap/collapse.js +6 -6
  15. data/assets/javascripts/bootstrap/dropdown.js +5 -5
  16. data/assets/javascripts/bootstrap/modal.js +43 -24
  17. data/assets/javascripts/bootstrap/popover.js +25 -10
  18. data/assets/javascripts/bootstrap/scrollspy.js +4 -4
  19. data/assets/javascripts/bootstrap/tab.js +10 -10
  20. data/assets/javascripts/bootstrap/tooltip.js +167 -10
  21. data/assets/javascripts/bootstrap/transition.js +5 -5
  22. data/assets/stylesheets/_bootstrap.scss +2 -2
  23. data/assets/stylesheets/bootstrap/_alerts.scss +3 -3
  24. data/assets/stylesheets/bootstrap/_badges.scss +3 -3
  25. data/assets/stylesheets/bootstrap/_breadcrumbs.scss +2 -2
  26. data/assets/stylesheets/bootstrap/_button-groups.scss +5 -5
  27. data/assets/stylesheets/bootstrap/_buttons.scss +4 -4
  28. data/assets/stylesheets/bootstrap/_carousel.scss +26 -25
  29. data/assets/stylesheets/bootstrap/_close.scss +1 -0
  30. data/assets/stylesheets/bootstrap/_code.scss +3 -3
  31. data/assets/stylesheets/bootstrap/_component-animations.scss +1 -0
  32. data/assets/stylesheets/bootstrap/_dropdowns.scss +20 -23
  33. data/assets/stylesheets/bootstrap/_forms.scss +47 -57
  34. data/assets/stylesheets/bootstrap/_glyphicons.scss +9 -9
  35. data/assets/stylesheets/bootstrap/_grid.scss +10 -0
  36. data/assets/stylesheets/bootstrap/_input-groups.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_jumbotron.scss +5 -5
  38. data/assets/stylesheets/bootstrap/_labels.scss +1 -1
  39. data/assets/stylesheets/bootstrap/_list-group.scss +30 -32
  40. data/assets/stylesheets/bootstrap/_media.scss +1 -1
  41. data/assets/stylesheets/bootstrap/_modals.scss +7 -7
  42. data/assets/stylesheets/bootstrap/_navbar.scss +75 -81
  43. data/assets/stylesheets/bootstrap/_navs.scss +4 -4
  44. data/assets/stylesheets/bootstrap/_normalize.scss +5 -2
  45. data/assets/stylesheets/bootstrap/_pager.scss +2 -2
  46. data/assets/stylesheets/bootstrap/_pagination.scss +12 -15
  47. data/assets/stylesheets/bootstrap/_panels.scss +4 -4
  48. data/assets/stylesheets/bootstrap/_popovers.scss +47 -52
  49. data/assets/stylesheets/bootstrap/_print.scss +90 -92
  50. data/assets/stylesheets/bootstrap/_progress-bars.scss +3 -3
  51. data/assets/stylesheets/bootstrap/_responsive-embed.scss +2 -2
  52. data/assets/stylesheets/bootstrap/_responsive-utilities.scss +3 -3
  53. data/assets/stylesheets/bootstrap/_scaffolding.scss +7 -7
  54. data/assets/stylesheets/bootstrap/_tables.scss +23 -23
  55. data/assets/stylesheets/bootstrap/_theme.scss +21 -17
  56. data/assets/stylesheets/bootstrap/_thumbnails.scss +1 -1
  57. data/assets/stylesheets/bootstrap/_tooltip.scss +38 -27
  58. data/assets/stylesheets/bootstrap/_type.scss +10 -10
  59. data/assets/stylesheets/bootstrap/_variables.scss +6 -6
  60. data/assets/stylesheets/bootstrap/_wells.scss +2 -2
  61. data/assets/stylesheets/bootstrap/mixins/_alerts.scss +2 -1
  62. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +4 -4
  63. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +6 -10
  64. data/assets/stylesheets/bootstrap/mixins/_center-block.scss +1 -1
  65. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +1 -1
  66. data/assets/stylesheets/bootstrap/mixins/_forms.scss +4 -4
  67. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +6 -8
  68. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +1 -1
  69. data/assets/stylesheets/bootstrap/mixins/_grid.scss +7 -7
  70. data/assets/stylesheets/bootstrap/mixins/_image.scss +5 -10
  71. data/assets/stylesheets/bootstrap/mixins/_opacity.scss +2 -3
  72. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +4 -4
  73. data/assets/stylesheets/bootstrap/mixins/_resize.scss +1 -1
  74. data/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +0 -4
  75. data/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +1 -1
  76. data/bootstrap-sass.gemspec +5 -4
  77. data/bower.json +1 -1
  78. data/composer.json +1 -1
  79. data/lib/bootstrap-sass.rb +13 -16
  80. data/lib/bootstrap-sass/version.rb +2 -2
  81. data/package-lock.json +1611 -0
  82. data/package.json +3 -3
  83. data/tasks/converter/less_conversion.rb +7 -8
  84. data/tasks/converter/network.rb +2 -2
  85. data/templates/project/_bootstrap-variables.sass +7 -7
  86. data/test/compilation_test.rb +24 -12
  87. data/test/dummy_rails/config/application.rb +1 -0
  88. data/test/dummy_rails/config/boot.rb +1 -1
  89. data/test/dummy_sass_only/Gemfile +1 -1
  90. data/test/dummy_sass_only/compile.rb +14 -7
  91. data/test/dummy_sass_only/import_all.scss +2 -0
  92. data/test/gemfiles/default.gemfile +3 -0
  93. data/test/node_sass_compile_test.sh +4 -3
  94. data/test/sass_test.rb +10 -7
  95. data/test/sprockets_rails_test.rb +12 -8
  96. data/test/test_helper.rb +2 -1
  97. metadata +33 -26
  98. data/test/compass_test.rb +0 -9
  99. data/test/dummy_sass_only/import_all.sass +0 -2
  100. data/test/gemfiles/rails_head.gemfile +0 -17
  101. data/test/gemfiles/sass_3_3.gemfile +0 -9
  102. data/test/gemfiles/sass_3_4.gemfile +0 -7
  103. data/test/gemfiles/sass_head.gemfile +0 -6
@@ -1,16 +1,146 @@
1
1
  /* ========================================================================
2
- * Bootstrap: tooltip.js v3.3.7
3
- * http://getbootstrap.com/javascript/#tooltip
2
+ * Bootstrap: tooltip.js v3.4.1
3
+ * https://getbootstrap.com/docs/3.4/javascript/#tooltip
4
4
  * Inspired by the original jQuery.tipsy by Jason Frame
5
5
  * ========================================================================
6
- * Copyright 2011-2016 Twitter, Inc.
6
+ * Copyright 2011-2019 Twitter, Inc.
7
7
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
8
8
  * ======================================================================== */
9
9
 
10
-
11
10
  +function ($) {
12
11
  'use strict';
13
12
 
13
+ var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']
14
+
15
+ var uriAttrs = [
16
+ 'background',
17
+ 'cite',
18
+ 'href',
19
+ 'itemtype',
20
+ 'longdesc',
21
+ 'poster',
22
+ 'src',
23
+ 'xlink:href'
24
+ ]
25
+
26
+ var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
27
+
28
+ var DefaultWhitelist = {
29
+ // Global attributes allowed on any supplied element below.
30
+ '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
31
+ a: ['target', 'href', 'title', 'rel'],
32
+ area: [],
33
+ b: [],
34
+ br: [],
35
+ col: [],
36
+ code: [],
37
+ div: [],
38
+ em: [],
39
+ hr: [],
40
+ h1: [],
41
+ h2: [],
42
+ h3: [],
43
+ h4: [],
44
+ h5: [],
45
+ h6: [],
46
+ i: [],
47
+ img: ['src', 'alt', 'title', 'width', 'height'],
48
+ li: [],
49
+ ol: [],
50
+ p: [],
51
+ pre: [],
52
+ s: [],
53
+ small: [],
54
+ span: [],
55
+ sub: [],
56
+ sup: [],
57
+ strong: [],
58
+ u: [],
59
+ ul: []
60
+ }
61
+
62
+ /**
63
+ * A pattern that recognizes a commonly useful subset of URLs that are safe.
64
+ *
65
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
66
+ */
67
+ var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi
68
+
69
+ /**
70
+ * A pattern that matches safe data URLs. Only matches image, video and audio types.
71
+ *
72
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
73
+ */
74
+ var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i
75
+
76
+ function allowedAttribute(attr, allowedAttributeList) {
77
+ var attrName = attr.nodeName.toLowerCase()
78
+
79
+ if ($.inArray(attrName, allowedAttributeList) !== -1) {
80
+ if ($.inArray(attrName, uriAttrs) !== -1) {
81
+ return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))
82
+ }
83
+
84
+ return true
85
+ }
86
+
87
+ var regExp = $(allowedAttributeList).filter(function (index, value) {
88
+ return value instanceof RegExp
89
+ })
90
+
91
+ // Check if a regular expression validates the attribute.
92
+ for (var i = 0, l = regExp.length; i < l; i++) {
93
+ if (attrName.match(regExp[i])) {
94
+ return true
95
+ }
96
+ }
97
+
98
+ return false
99
+ }
100
+
101
+ function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
102
+ if (unsafeHtml.length === 0) {
103
+ return unsafeHtml
104
+ }
105
+
106
+ if (sanitizeFn && typeof sanitizeFn === 'function') {
107
+ return sanitizeFn(unsafeHtml)
108
+ }
109
+
110
+ // IE 8 and below don't support createHTMLDocument
111
+ if (!document.implementation || !document.implementation.createHTMLDocument) {
112
+ return unsafeHtml
113
+ }
114
+
115
+ var createdDocument = document.implementation.createHTMLDocument('sanitization')
116
+ createdDocument.body.innerHTML = unsafeHtml
117
+
118
+ var whitelistKeys = $.map(whiteList, function (el, i) { return i })
119
+ var elements = $(createdDocument.body).find('*')
120
+
121
+ for (var i = 0, len = elements.length; i < len; i++) {
122
+ var el = elements[i]
123
+ var elName = el.nodeName.toLowerCase()
124
+
125
+ if ($.inArray(elName, whitelistKeys) === -1) {
126
+ el.parentNode.removeChild(el)
127
+
128
+ continue
129
+ }
130
+
131
+ var attributeList = $.map(el.attributes, function (el) { return el })
132
+ var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])
133
+
134
+ for (var j = 0, len2 = attributeList.length; j < len2; j++) {
135
+ if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {
136
+ el.removeAttribute(attributeList[j].nodeName)
137
+ }
138
+ }
139
+ }
140
+
141
+ return createdDocument.body.innerHTML
142
+ }
143
+
14
144
  // TOOLTIP PUBLIC CLASS DEFINITION
15
145
  // ===============================
16
146
 
@@ -26,7 +156,7 @@
26
156
  this.init('tooltip', element, options)
27
157
  }
28
158
 
29
- Tooltip.VERSION = '3.3.7'
159
+ Tooltip.VERSION = '3.4.1'
30
160
 
31
161
  Tooltip.TRANSITION_DURATION = 150
32
162
 
@@ -43,7 +173,10 @@
43
173
  viewport: {
44
174
  selector: 'body',
45
175
  padding: 0
46
- }
176
+ },
177
+ sanitize : true,
178
+ sanitizeFn : null,
179
+ whiteList : DefaultWhitelist
47
180
  }
48
181
 
49
182
  Tooltip.prototype.init = function (type, element, options) {
@@ -51,7 +184,7 @@
51
184
  this.type = type
52
185
  this.$element = $(element)
53
186
  this.options = this.getOptions(options)
54
- this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
187
+ this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
55
188
  this.inState = { click: false, hover: false, focus: false }
56
189
 
57
190
  if (this.$element[0] instanceof document.constructor && !this.options.selector) {
@@ -84,7 +217,15 @@
84
217
  }
85
218
 
86
219
  Tooltip.prototype.getOptions = function (options) {
87
- options = $.extend({}, this.getDefaults(), this.$element.data(), options)
220
+ var dataAttributes = this.$element.data()
221
+
222
+ for (var dataAttr in dataAttributes) {
223
+ if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {
224
+ delete dataAttributes[dataAttr]
225
+ }
226
+ }
227
+
228
+ options = $.extend({}, this.getDefaults(), dataAttributes, options)
88
229
 
89
230
  if (options.delay && typeof options.delay == 'number') {
90
231
  options.delay = {
@@ -93,6 +234,10 @@
93
234
  }
94
235
  }
95
236
 
237
+ if (options.sanitize) {
238
+ options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)
239
+ }
240
+
96
241
  return options
97
242
  }
98
243
 
@@ -204,7 +349,7 @@
204
349
  .addClass(placement)
205
350
  .data('bs.' + this.type, this)
206
351
 
207
- this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
352
+ this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)
208
353
  this.$element.trigger('inserted.bs.' + this.type)
209
354
 
210
355
  var pos = this.getPosition()
@@ -306,7 +451,16 @@
306
451
  var $tip = this.tip()
307
452
  var title = this.getTitle()
308
453
 
309
- $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
454
+ if (this.options.html) {
455
+ if (this.options.sanitize) {
456
+ title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)
457
+ }
458
+
459
+ $tip.find('.tooltip-inner').html(title)
460
+ } else {
461
+ $tip.find('.tooltip-inner').text(title)
462
+ }
463
+
310
464
  $tip.removeClass('fade in top bottom left right')
311
465
  }
312
466
 
@@ -487,6 +641,9 @@
487
641
  })
488
642
  }
489
643
 
644
+ Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {
645
+ return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)
646
+ }
490
647
 
491
648
  // TOOLTIP PLUGIN DEFINITION
492
649
  // =========================
@@ -1,8 +1,8 @@
1
1
  /* ========================================================================
2
- * Bootstrap: transition.js v3.3.7
3
- * http://getbootstrap.com/javascript/#transitions
2
+ * Bootstrap: transition.js v3.4.1
3
+ * https://getbootstrap.com/docs/3.4/javascript/#transitions
4
4
  * ========================================================================
5
- * Copyright 2011-2016 Twitter, Inc.
5
+ * Copyright 2011-2019 Twitter, Inc.
6
6
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
7
  * ======================================================================== */
8
8
 
@@ -10,7 +10,7 @@
10
10
  +function ($) {
11
11
  'use strict';
12
12
 
13
- // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
13
+ // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)
14
14
  // ============================================================
15
15
 
16
16
  function transitionEnd() {
@@ -32,7 +32,7 @@
32
32
  return false // explicit for ie8 ( ._.)
33
33
  }
34
34
 
35
- // http://blog.alexmaccaw.com/css-transitions
35
+ // https://blog.alexmaccaw.com/css-transitions
36
36
  $.fn.emulateTransitionEnd = function (duration) {
37
37
  var called = false
38
38
  var $el = this
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap v3.3.7 (http://getbootstrap.com)
3
- * Copyright 2011-2016 Twitter, Inc.
2
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2019 Twitter, Inc.
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
 
@@ -15,8 +15,7 @@
15
15
  // Headings for larger alerts
16
16
  h4 {
17
17
  margin-top: 0;
18
- // Specified for the h4 to prevent conflicts of changing $headings-color
19
- color: inherit;
18
+ color: inherit; // Specified for the h4 to prevent conflicts of changing $headings-color
20
19
  }
21
20
 
22
21
  // Provide class for links that match alerts
@@ -39,7 +38,8 @@
39
38
  //
40
39
  // Expand the right padding and account for the close button's positioning.
41
40
 
42
- .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
41
+ // The misspelled .alert-dismissable was deprecated in 3.2.0.
42
+ .alert-dismissable,
43
43
  .alert-dismissible {
44
44
  padding-right: ($alert-padding + 20);
45
45
 
@@ -10,11 +10,11 @@
10
10
  padding: 3px 7px;
11
11
  font-size: $font-size-small;
12
12
  font-weight: $badge-font-weight;
13
- color: $badge-color;
14
13
  line-height: $badge-line-height;
15
- vertical-align: middle;
16
- white-space: nowrap;
14
+ color: $badge-color;
17
15
  text-align: center;
16
+ white-space: nowrap;
17
+ vertical-align: middle;
18
18
  background-color: $badge-bg;
19
19
  border-radius: $badge-border-radius;
20
20
 
@@ -14,11 +14,11 @@
14
14
  display: inline-block;
15
15
 
16
16
  + li:before {
17
+ padding: 0 5px;
18
+ color: $breadcrumb-color;
17
19
  // [converter] Workaround for https://github.com/sass/libsass/issues/1115
18
20
  $nbsp: "\00a0";
19
21
  content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space
20
- padding: 0 5px;
21
- color: $breadcrumb-color;
22
22
  }
23
23
  }
24
24
 
@@ -103,18 +103,18 @@
103
103
 
104
104
  // Give the line between buttons some depth
105
105
  .btn-group > .btn + .dropdown-toggle {
106
- padding-left: 8px;
107
106
  padding-right: 8px;
107
+ padding-left: 8px;
108
108
  }
109
109
  .btn-group > .btn-lg + .dropdown-toggle {
110
- padding-left: 12px;
111
110
  padding-right: 12px;
111
+ padding-left: 12px;
112
112
  }
113
113
 
114
114
  // The clickable button for toggling the menu
115
115
  // Remove the gradient and set the same inset shadow as the :active state
116
116
  .btn-group.open .dropdown-toggle {
117
- @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
117
+ @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));
118
118
 
119
119
  // Show no shadow for `.btn-link` since it has no other button styles.
120
120
  &.btn-link {
@@ -205,8 +205,8 @@
205
205
  border-collapse: separate;
206
206
  > .btn,
207
207
  > .btn-group {
208
- float: none;
209
208
  display: table-cell;
209
+ float: none;
210
210
  width: 1%;
211
211
  }
212
212
  > .btn-group .btn {
@@ -237,7 +237,7 @@
237
237
  input[type="radio"],
238
238
  input[type="checkbox"] {
239
239
  position: absolute;
240
- clip: rect(0,0,0,0);
240
+ clip: rect(0, 0, 0, 0);
241
241
  pointer-events: none;
242
242
  }
243
243
  }
@@ -11,12 +11,12 @@
11
11
  margin-bottom: 0; // For input.btn
12
12
  font-weight: $btn-font-weight;
13
13
  text-align: center;
14
+ white-space: nowrap;
14
15
  vertical-align: middle;
15
16
  touch-action: manipulation;
16
17
  cursor: pointer;
17
18
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
18
19
  border: 1px solid transparent;
19
- white-space: nowrap;
20
20
  @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base);
21
21
  @include user-select(none);
22
22
 
@@ -38,9 +38,9 @@
38
38
 
39
39
  &:active,
40
40
  &.active {
41
- outline: 0;
42
41
  background-image: none;
43
- @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
42
+ outline: 0;
43
+ @include box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));
44
44
  }
45
45
 
46
46
  &.disabled,
@@ -94,8 +94,8 @@ a.btn {
94
94
 
95
95
  // Make a button look and behave like a link
96
96
  .btn-link {
97
+ font-weight: 400;
97
98
  color: $link-color;
98
- font-weight: normal;
99
99
  border-radius: 0;
100
100
 
101
101
  &,
@@ -10,12 +10,12 @@
10
10
 
11
11
  .carousel-inner {
12
12
  position: relative;
13
- overflow: hidden;
14
13
  width: 100%;
14
+ overflow: hidden;
15
15
 
16
16
  > .item {
17
- display: none;
18
17
  position: relative;
18
+ display: none;
19
19
  @include transition(.6s ease-in-out left);
20
20
 
21
21
  // Account for jankitude on images
@@ -93,34 +93,34 @@
93
93
  .carousel-control {
94
94
  position: absolute;
95
95
  top: 0;
96
- left: 0;
97
96
  bottom: 0;
97
+ left: 0;
98
98
  width: $carousel-control-width;
99
- @include opacity($carousel-control-opacity);
100
99
  font-size: $carousel-control-font-size;
101
100
  color: $carousel-control-color;
102
101
  text-align: center;
103
102
  text-shadow: $carousel-text-shadow;
104
103
  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
104
+ @include opacity($carousel-control-opacity);
105
105
  // We can't have this transition here because WebKit cancels the carousel
106
106
  // animation if you trip this while in the middle of another animation.
107
107
 
108
108
  // Set gradients for backgrounds
109
109
  &.left {
110
- @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
110
+ @include gradient-horizontal($start-color: rgba(0, 0, 0, .5), $end-color: rgba(0, 0, 0, .0001));
111
111
  }
112
112
  &.right {
113
- left: auto;
114
113
  right: 0;
115
- @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
114
+ left: auto;
115
+ @include gradient-horizontal($start-color: rgba(0, 0, 0, .0001), $end-color: rgba(0, 0, 0, .5));
116
116
  }
117
117
 
118
118
  // Hover/focus state
119
119
  &:hover,
120
120
  &:focus {
121
- outline: 0;
122
121
  color: $carousel-control-color;
123
122
  text-decoration: none;
123
+ outline: 0;
124
124
  @include opacity(.9);
125
125
  }
126
126
 
@@ -131,9 +131,9 @@
131
131
  .glyphicon-chevron-right {
132
132
  position: absolute;
133
133
  top: 50%;
134
- margin-top: -10px;
135
134
  z-index: 5;
136
135
  display: inline-block;
136
+ margin-top: -10px;
137
137
  }
138
138
  .icon-prev,
139
139
  .glyphicon-chevron-left {
@@ -147,21 +147,20 @@
147
147
  }
148
148
  .icon-prev,
149
149
  .icon-next {
150
- width: 20px;
150
+ width: 20px;
151
151
  height: 20px;
152
- line-height: 1;
153
152
  font-family: serif;
153
+ line-height: 1;
154
154
  }
155
155
 
156
-
157
156
  .icon-prev {
158
157
  &:before {
159
- content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
158
+ content: "\2039";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
160
159
  }
161
160
  }
162
161
  .icon-next {
163
162
  &:before {
164
- content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
163
+ content: "\203a";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
165
164
  }
166
165
  }
167
166
  }
@@ -177,21 +176,18 @@
177
176
  left: 50%;
178
177
  z-index: 15;
179
178
  width: 60%;
180
- margin-left: -30%;
181
179
  padding-left: 0;
182
- list-style: none;
180
+ margin-left: -30%;
183
181
  text-align: center;
182
+ list-style: none;
184
183
 
185
184
  li {
186
185
  display: inline-block;
187
- width: 10px;
186
+ width: 10px;
188
187
  height: 10px;
189
188
  margin: 1px;
190
189
  text-indent: -999px;
191
- border: 1px solid $carousel-indicator-border-color;
192
- border-radius: 10px;
193
190
  cursor: pointer;
194
-
195
191
  // IE8-9 hack for event handling
196
192
  //
197
193
  // Internet Explorer 8-9 does not support clicks on elements without a set
@@ -202,12 +198,16 @@
202
198
  // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
203
199
  // set alpha transparency for the best results possible.
204
200
  background-color: #000 \9; // IE8
205
- background-color: rgba(0,0,0,0); // IE9
201
+ background-color: rgba(0, 0, 0, 0); // IE9
202
+
203
+ border: 1px solid $carousel-indicator-border-color;
204
+ border-radius: 10px;
206
205
  }
206
+
207
207
  .active {
208
- margin: 0;
209
- width: 12px;
208
+ width: 12px;
210
209
  height: 12px;
210
+ margin: 0;
211
211
  background-color: $carousel-indicator-active-bg;
212
212
  }
213
213
  }
@@ -217,15 +217,16 @@
217
217
  // Hidden by default for smaller viewports
218
218
  .carousel-caption {
219
219
  position: absolute;
220
- left: 15%;
221
220
  right: 15%;
222
221
  bottom: 20px;
222
+ left: 15%;
223
223
  z-index: 10;
224
224
  padding-top: 20px;
225
225
  padding-bottom: 20px;
226
226
  color: $carousel-caption-color;
227
227
  text-align: center;
228
228
  text-shadow: $carousel-text-shadow;
229
+
229
230
  & .btn {
230
231
  text-shadow: none; // No shadow for button elements in carousel-caption
231
232
  }
@@ -258,8 +259,8 @@
258
259
 
259
260
  // Show and left align the captions
260
261
  .carousel-caption {
261
- left: 20%;
262
262
  right: 20%;
263
+ left: 20%;
263
264
  padding-bottom: 30px;
264
265
  }
265
266