locomotivecms_wagon 2.0.0.rc2 → 2.0.0.rc3

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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/generators/{bootstrap3 → bootstrap}/Gemfile.tt +0 -0
  4. data/generators/{bootstrap3 → bootstrap}/app/content_types/.empty_directory +0 -0
  5. data/generators/bootstrap/app/views/pages/404.liquid +18 -0
  6. data/generators/bootstrap/app/views/pages/404.liquid.haml +14 -0
  7. data/generators/bootstrap/app/views/pages/index.liquid +31 -0
  8. data/generators/bootstrap/app/views/pages/index.liquid.haml +25 -0
  9. data/generators/bootstrap/app/views/pages/layouts/default.liquid +31 -0
  10. data/generators/bootstrap/app/views/pages/layouts/default.liquid.haml +30 -0
  11. data/generators/bootstrap/app/views/pages/layouts/simple.liquid +36 -0
  12. data/generators/bootstrap/app/views/pages/layouts/simple.liquid.haml +29 -0
  13. data/generators/bootstrap/app/views/snippets/footer.liquid +5 -0
  14. data/generators/bootstrap/app/views/snippets/footer.liquid.haml +3 -0
  15. data/generators/bootstrap/app/views/snippets/nav.liquid +26 -0
  16. data/generators/bootstrap/app/views/snippets/nav.liquid.haml +19 -0
  17. data/generators/{bootstrap3 → bootstrap}/config/deploy.yml +0 -0
  18. data/generators/bootstrap/config/site.yml.tt +1 -6
  19. data/generators/{bootstrap3 → bootstrap}/config/translations.yml +0 -0
  20. data/generators/{bootstrap3 → bootstrap}/data/.empty_directory +0 -0
  21. data/generators/{bootstrap3 → bootstrap}/icon.png +0 -0
  22. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  23. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  24. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  25. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  26. data/generators/bootstrap/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  27. data/generators/{bootstrap3/public/samples → bootstrap/public/images}/favicon.png +0 -0
  28. data/generators/bootstrap/public/javascripts/application.js +2 -0
  29. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/affix.js +60 -35
  30. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/alert.js +15 -9
  31. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/button.js +33 -20
  32. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/carousel.js +79 -47
  33. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/collapse.js +84 -43
  34. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/dropdown.js +64 -46
  35. data/generators/bootstrap/public/javascripts/bootstrap/modal.js +337 -0
  36. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/popover.js +12 -14
  37. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/scrollspy.js +57 -38
  38. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/tab.js +54 -24
  39. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/tooltip.js +202 -87
  40. data/generators/{bootstrap3 → bootstrap}/public/javascripts/bootstrap/transition.js +19 -8
  41. data/generators/bootstrap/public/javascripts/bootstrap.min.js +7 -0
  42. data/generators/bootstrap/public/javascripts/jquery.min.js +5 -0
  43. data/generators/bootstrap/public/stylesheets/application.css +7 -0
  44. data/generators/bootstrap/public/stylesheets/application.scss +7 -0
  45. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_alerts.scss +9 -3
  46. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_badges.scss +26 -13
  47. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_breadcrumbs.scss +3 -1
  48. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_button-groups.scss +32 -14
  49. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_buttons.scss +22 -13
  50. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_carousel.scss +43 -6
  51. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_close.scss +1 -0
  52. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_code.scss +7 -1
  53. data/generators/bootstrap/public/stylesheets/bootstrap/_component-animations.scss +37 -0
  54. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_dropdowns.scss +12 -9
  55. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_forms.scss +240 -65
  56. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_glyphicons.scss +83 -9
  57. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_grid.scss +4 -4
  58. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_input-groups.scss +7 -2
  59. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_jumbotron.scss +12 -4
  60. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_labels.scss +11 -9
  61. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_list-group.scss +32 -12
  62. data/generators/bootstrap/public/stylesheets/bootstrap/_media.scss +66 -0
  63. data/generators/bootstrap/public/stylesheets/bootstrap/_mixins.scss +40 -0
  64. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_modals.scss +18 -7
  65. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_navbar.scss +75 -33
  66. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_navs.scss +4 -4
  67. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_normalize.scss +29 -28
  68. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_pager.scss +2 -3
  69. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_pagination.scss +4 -3
  70. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_panels.scss +40 -10
  71. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_popovers.scss +6 -8
  72. data/generators/bootstrap/public/stylesheets/bootstrap/_print.scss +101 -0
  73. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_progress-bars.scss +13 -6
  74. data/generators/bootstrap/public/stylesheets/bootstrap/_responsive-embed.scss +35 -0
  75. data/generators/bootstrap/public/stylesheets/bootstrap/_responsive-utilities.scss +179 -0
  76. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_scaffolding.scss +31 -4
  77. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_tables.scss +17 -16
  78. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_theme.scss +57 -13
  79. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_thumbnails.scss +2 -2
  80. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_tooltip.scss +13 -7
  81. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_type.scss +38 -24
  82. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_utilities.scss +3 -4
  83. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_variables.scss +86 -47
  84. data/generators/{bootstrap3 → bootstrap}/public/stylesheets/bootstrap/_wells.scss +0 -0
  85. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_alerts.scss +14 -0
  86. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
  87. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  88. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_buttons.scss +68 -0
  89. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  90. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  91. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_forms.scss +88 -0
  92. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_gradients.scss +58 -0
  93. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  94. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  95. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  96. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_image.scss +33 -0
  97. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  98. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_list-group.scss +32 -0
  99. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  100. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  101. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_opacity.scss +8 -0
  102. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  103. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_panels.scss +24 -0
  104. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
  105. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  106. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
  107. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  108. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_responsive-visibility.scss +21 -0
  109. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_size.scss +10 -0
  110. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  111. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  112. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  113. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  114. data/generators/bootstrap/public/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  115. data/generators/bootstrap/public/stylesheets/bootstrap.css +5 -0
  116. data/generators/{bootstrap3/public/stylesheets/bootstrap.css.scss → bootstrap/public/stylesheets/bootstrap.scss} +16 -2
  117. data/lib/locomotive/wagon/cli.rb +3 -3
  118. data/lib/locomotive/wagon/commands/authenticate_command.rb +2 -1
  119. data/lib/locomotive/wagon/commands/concerns/spinner_concern.rb +29 -0
  120. data/lib/locomotive/wagon/commands/pull_command.rb +18 -3
  121. data/lib/locomotive/wagon/commands/push_command.rb +28 -4
  122. data/lib/locomotive/wagon/commands/sync_command.rb +21 -6
  123. data/lib/locomotive/wagon/commands/sync_sub_commands/sync_pages_command.rb +27 -3
  124. data/lib/locomotive/wagon/generators/site/{bootstrap3.rb → bootstrap.rb} +12 -6
  125. data/lib/locomotive/wagon/generators/site.rb +1 -1
  126. data/lib/locomotive/wagon/tools/listen.rb +1 -1
  127. data/lib/locomotive/wagon/version.rb +1 -1
  128. data/lib/locomotive/wagon.rb +2 -2
  129. data/locomotivecms_wagon.gemspec +3 -2
  130. data/spec/unit/decorators/theme_asset_decorator_spec.rb +10 -0
  131. metadata +124 -90
  132. data/generators/bootstrap3/app/views/pages/404.liquid +0 -13
  133. data/generators/bootstrap3/app/views/pages/404.liquid.haml +0 -10
  134. data/generators/bootstrap3/app/views/pages/index.liquid +0 -738
  135. data/generators/bootstrap3/app/views/pages/index.liquid.haml +0 -1018
  136. data/generators/bootstrap3/app/views/snippets/footer.liquid +0 -3
  137. data/generators/bootstrap3/app/views/snippets/footer.liquid.haml +0 -2
  138. data/generators/bootstrap3/config/site.yml.tt +0 -28
  139. data/generators/bootstrap3/public/fonts/glyphicons-halflings-regular.eot +0 -0
  140. data/generators/bootstrap3/public/fonts/glyphicons-halflings-regular.svg +0 -229
  141. data/generators/bootstrap3/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  142. data/generators/bootstrap3/public/fonts/glyphicons-halflings-regular.woff +0 -0
  143. data/generators/bootstrap3/public/images/.empty_directory +0 -1
  144. data/generators/bootstrap3/public/javascripts/bootstrap/modal.js +0 -243
  145. data/generators/bootstrap3/public/javascripts/bootstrap.min.js +0 -12
  146. data/generators/bootstrap3/public/samples/apple-touch-icon-114x114-precomposed.png +0 -0
  147. data/generators/bootstrap3/public/samples/apple-touch-icon-144x144-precomposed.png +0 -0
  148. data/generators/bootstrap3/public/samples/apple-touch-icon-72x72-precomposed.png +0 -0
  149. data/generators/bootstrap3/public/samples/apple-touch-icon-precomposed.png +0 -0
  150. data/generators/bootstrap3/public/stylesheets/application.css +0 -1
  151. data/generators/bootstrap3/public/stylesheets/application.css.scss +0 -8
  152. data/generators/bootstrap3/public/stylesheets/bootstrap/_component-animations.scss +0 -29
  153. data/generators/bootstrap3/public/stylesheets/bootstrap/_media.scss +0 -56
  154. data/generators/bootstrap3/public/stylesheets/bootstrap/_mixins.scss +0 -947
  155. data/generators/bootstrap3/public/stylesheets/bootstrap/_print.scss +0 -101
  156. data/generators/bootstrap3/public/stylesheets/bootstrap/_responsive-utilities.scss +0 -74
  157. data/generators/bootstrap3/public/stylesheets/bootstrap/bootstrap.css.scss +0 -49
  158. data/generators/bootstrap3/public/stylesheets/bootstrap.css +0 -5784
  159. data/lib/locomotive/wagon/generators/site/bootstrap2.rb +0 -34
@@ -11,7 +11,7 @@ fieldset {
11
11
  padding: 0;
12
12
  margin: 0;
13
13
  border: 0;
14
- // Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,
14
+ // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
15
15
  // so we reset that to ensure it behaves more like a standard block element.
16
16
  // See https://github.com/twbs/bootstrap/issues/12359.
17
17
  min-width: 0;
@@ -31,6 +31,7 @@ legend {
31
31
 
32
32
  label {
33
33
  display: inline-block;
34
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
34
35
  margin-bottom: 5px;
35
36
  font-weight: bold;
36
37
  }
@@ -51,11 +52,10 @@ input[type="search"] {
51
52
  input[type="radio"],
52
53
  input[type="checkbox"] {
53
54
  margin: 4px 0 0;
54
- margin-top: 1px \9; /* IE8-9 */
55
+ margin-top: 1px \9; // IE8-9
55
56
  line-height: normal;
56
57
  }
57
58
 
58
- // Set the height of file controls to match text inputs
59
59
  input[type="file"] {
60
60
  display: block;
61
61
  }
@@ -76,7 +76,7 @@ select[size] {
76
76
  input[type="file"]:focus,
77
77
  input[type="radio"]:focus,
78
78
  input[type="checkbox"]:focus {
79
- @include tab-focus();
79
+ @include tab-focus;
80
80
  }
81
81
 
82
82
  // Adjust output element
@@ -122,15 +122,15 @@ output {
122
122
  background-color: $input-bg;
123
123
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
124
124
  border: 1px solid $input-border;
125
- border-radius: $input-border-radius;
125
+ border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
126
126
  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
127
127
  @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
128
128
 
129
129
  // Customize the `:focus` state to imitate native WebKit styles.
130
- @include form-control-focus();
130
+ @include form-control-focus;
131
131
 
132
132
  // Placeholder
133
- @include placeholder();
133
+ @include placeholder;
134
134
 
135
135
  // Disabled and read-only inputs
136
136
  //
@@ -140,9 +140,13 @@ output {
140
140
  &[disabled],
141
141
  &[readonly],
142
142
  fieldset[disabled] & {
143
- cursor: not-allowed;
144
143
  background-color: $input-bg-disabled;
145
- opacity: 1; // iOS fix for unreadable disabled content
144
+ opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
145
+ }
146
+
147
+ &[disabled],
148
+ fieldset[disabled] & {
149
+ cursor: $cursor-disabled;
146
150
  }
147
151
 
148
152
  // [converter] extracted textarea& to textarea.form-control
@@ -166,13 +170,34 @@ input[type="search"] {
166
170
  }
167
171
 
168
172
 
169
- // Special styles for iOS date input
173
+ // Special styles for iOS temporal inputs
170
174
  //
171
- // In Mobile Safari, date inputs require a pixel line-height that matches the
172
- // given height of the input.
175
+ // In Mobile Safari, setting `display: block` on temporal inputs causes the
176
+ // text within the input to become vertically misaligned. As a workaround, we
177
+ // set a pixel line-height that matches the given height of the input, but only
178
+ // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
179
+ //
180
+ // Note that as of 8.3, iOS doesn't support `datetime` or `week`.
181
+
182
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
183
+ input[type="date"],
184
+ input[type="time"],
185
+ input[type="datetime-local"],
186
+ input[type="month"] {
187
+ &.form-control {
188
+ line-height: $input-height-base;
189
+ }
173
190
 
174
- input[type="date"] {
175
- line-height: $input-height-base;
191
+ &.input-sm,
192
+ .input-group-sm & {
193
+ line-height: $input-height-small;
194
+ }
195
+
196
+ &.input-lg,
197
+ .input-group-lg & {
198
+ line-height: $input-height-large;
199
+ }
200
+ }
176
201
  }
177
202
 
178
203
 
@@ -182,7 +207,7 @@ input[type="date"] {
182
207
  // horizontal forms, use the predefined grid classes.
183
208
 
184
209
  .form-group {
185
- margin-bottom: 15px;
210
+ margin-bottom: $form-group-margin-bottom;
186
211
  }
187
212
 
188
213
 
@@ -192,13 +217,15 @@ input[type="date"] {
192
217
 
193
218
  .radio,
194
219
  .checkbox {
220
+ position: relative;
195
221
  display: block;
196
- min-height: $line-height-computed; // clear the floating input if there is no label text
197
222
  margin-top: 10px;
198
223
  margin-bottom: 10px;
199
- padding-left: 20px;
224
+
200
225
  label {
201
- display: inline;
226
+ min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text
227
+ padding-left: 20px;
228
+ margin-bottom: 0;
202
229
  font-weight: normal;
203
230
  cursor: pointer;
204
231
  }
@@ -207,9 +234,11 @@ input[type="date"] {
207
234
  .radio-inline input[type="radio"],
208
235
  .checkbox input[type="checkbox"],
209
236
  .checkbox-inline input[type="checkbox"] {
210
- float: left;
237
+ position: absolute;
211
238
  margin-left: -20px;
239
+ margin-top: 4px \9;
212
240
  }
241
+
213
242
  .radio + .radio,
214
243
  .checkbox + .checkbox {
215
244
  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
@@ -218,6 +247,7 @@ input[type="date"] {
218
247
  // Radios and checkboxes on same line
219
248
  .radio-inline,
220
249
  .checkbox-inline {
250
+ position: relative;
221
251
  display: inline-block;
222
252
  padding-left: 20px;
223
253
  margin-bottom: 0;
@@ -232,17 +262,54 @@ input[type="date"] {
232
262
  }
233
263
 
234
264
  // Apply same disabled cursor tweak as for inputs
265
+ // Some special care is needed because <label>s don't inherit their parent's `cursor`.
235
266
  //
236
267
  // Note: Neither radios nor checkboxes can be readonly.
237
268
  input[type="radio"],
238
- input[type="checkbox"],
239
- .radio,
269
+ input[type="checkbox"] {
270
+ &[disabled],
271
+ &.disabled,
272
+ fieldset[disabled] & {
273
+ cursor: $cursor-disabled;
274
+ }
275
+ }
276
+ // These classes are used directly on <label>s
240
277
  .radio-inline,
241
- .checkbox,
242
278
  .checkbox-inline {
243
- &[disabled],
279
+ &.disabled,
244
280
  fieldset[disabled] & {
245
- cursor: not-allowed;
281
+ cursor: $cursor-disabled;
282
+ }
283
+ }
284
+ // These classes are used on elements with <label> descendants
285
+ .radio,
286
+ .checkbox {
287
+ &.disabled,
288
+ fieldset[disabled] & {
289
+ label {
290
+ cursor: $cursor-disabled;
291
+ }
292
+ }
293
+ }
294
+
295
+
296
+ // Static form control text
297
+ //
298
+ // Apply class to a `p` element to make any string of text align with labels in
299
+ // a horizontal form layout.
300
+
301
+ .form-control-static {
302
+ // Size it appropriately next to real form controls
303
+ padding-top: ($padding-base-vertical + 1);
304
+ padding-bottom: ($padding-base-vertical + 1);
305
+ // Remove default margin from `p`
306
+ margin-bottom: 0;
307
+ min-height: ($line-height-computed + $font-size-base);
308
+
309
+ &.input-lg,
310
+ &.input-sm {
311
+ padding-left: 0;
312
+ padding-right: 0;
246
313
  }
247
314
  }
248
315
 
@@ -251,10 +318,61 @@ input[type="checkbox"],
251
318
  //
252
319
  // Build on `.form-control` with modifier classes to decrease or increase the
253
320
  // height and font-size of form controls.
321
+ //
322
+ // The `.form-group-* form-control` variations are sadly duplicated to avoid the
323
+ // issue documented in https://github.com/twbs/bootstrap/issues/15074.
254
324
 
255
- @include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
325
+ @include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);
326
+ .form-group-sm {
327
+ .form-control {
328
+ height: $input-height-small;
329
+ padding: $padding-small-vertical $padding-small-horizontal;
330
+ font-size: $font-size-small;
331
+ line-height: $line-height-small;
332
+ border-radius: $input-border-radius-small;
333
+ }
334
+ select.form-control {
335
+ height: $input-height-small;
336
+ line-height: $input-height-small;
337
+ }
338
+ textarea.form-control,
339
+ select[multiple].form-control {
340
+ height: auto;
341
+ }
342
+ .form-control-static {
343
+ height: $input-height-small;
344
+ min-height: ($line-height-computed + $font-size-small);
345
+ padding: ($padding-small-vertical + 1) $padding-small-horizontal;
346
+ font-size: $font-size-small;
347
+ line-height: $line-height-small;
348
+ }
349
+ }
256
350
 
257
- @include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
351
+ @include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);
352
+ .form-group-lg {
353
+ .form-control {
354
+ height: $input-height-large;
355
+ padding: $padding-large-vertical $padding-large-horizontal;
356
+ font-size: $font-size-large;
357
+ line-height: $line-height-large;
358
+ border-radius: $input-border-radius-large;
359
+ }
360
+ select.form-control {
361
+ height: $input-height-large;
362
+ line-height: $input-height-large;
363
+ }
364
+ textarea.form-control,
365
+ select[multiple].form-control {
366
+ height: auto;
367
+ }
368
+ .form-control-static {
369
+ height: $input-height-large;
370
+ min-height: ($line-height-computed + $font-size-large);
371
+ padding: ($padding-large-vertical + 1) $padding-large-horizontal;
372
+ font-size: $font-size-large;
373
+ line-height: $line-height-large;
374
+ }
375
+ }
258
376
 
259
377
 
260
378
  // Form control feedback states
@@ -269,18 +387,33 @@ input[type="checkbox"],
269
387
  .form-control {
270
388
  padding-right: ($input-height-base * 1.25);
271
389
  }
272
-
273
- // Feedback icon (requires .glyphicon classes)
274
- .form-control-feedback {
275
- position: absolute;
276
- top: ($line-height-computed + 5); // Height of the `label` and its margin
277
- right: 0;
278
- display: block;
279
- width: $input-height-base;
280
- height: $input-height-base;
281
- line-height: $input-height-base;
282
- text-align: center;
283
- }
390
+ }
391
+ // Feedback icon (requires .glyphicon classes)
392
+ .form-control-feedback {
393
+ position: absolute;
394
+ top: 0;
395
+ right: 0;
396
+ z-index: 2; // Ensure icon is above input groups
397
+ display: block;
398
+ width: $input-height-base;
399
+ height: $input-height-base;
400
+ line-height: $input-height-base;
401
+ text-align: center;
402
+ pointer-events: none;
403
+ }
404
+ .input-lg + .form-control-feedback,
405
+ .input-group-lg + .form-control-feedback,
406
+ .form-group-lg .form-control + .form-control-feedback {
407
+ width: $input-height-large;
408
+ height: $input-height-large;
409
+ line-height: $input-height-large;
410
+ }
411
+ .input-sm + .form-control-feedback,
412
+ .input-group-sm + .form-control-feedback,
413
+ .form-group-sm .form-control + .form-control-feedback {
414
+ width: $input-height-small;
415
+ height: $input-height-small;
416
+ line-height: $input-height-small;
284
417
  }
285
418
 
286
419
  // Feedback states
@@ -294,14 +427,15 @@ input[type="checkbox"],
294
427
  @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
295
428
  }
296
429
 
430
+ // Reposition feedback icon if input has visible label above
431
+ .has-feedback label {
297
432
 
298
- // Static form control text
299
- //
300
- // Apply class to a `p` element to make any string of text align with labels in
301
- // a horizontal form layout.
302
-
303
- .form-control-static {
304
- margin-bottom: 0; // Remove default margin from `p`
433
+ & ~ .form-control-feedback {
434
+ top: ($line-height-computed + 5); // Height of the `label` and its margin
435
+ }
436
+ &.sr-only ~ .form-control-feedback {
437
+ top: 0;
438
+ }
305
439
  }
306
440
 
307
441
 
@@ -318,7 +452,6 @@ input[type="checkbox"],
318
452
  }
319
453
 
320
454
 
321
-
322
455
  // Inline forms
323
456
  //
324
457
  // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
@@ -330,7 +463,8 @@ input[type="checkbox"],
330
463
  //
331
464
  // Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
332
465
 
333
- .form-inline {
466
+ // [converter] extracted from `.form-inline` for libsass compatibility
467
+ @mixin form-inline {
334
468
 
335
469
  // Kick in the inline
336
470
  @media (min-width: $screen-sm-min) {
@@ -347,6 +481,23 @@ input[type="checkbox"],
347
481
  width: auto; // Prevent labels from stacking above inputs in `.form-group`
348
482
  vertical-align: middle;
349
483
  }
484
+
485
+ // Make static controls behave like regular ones
486
+ .form-control-static {
487
+ display: inline-block;
488
+ }
489
+
490
+ .input-group {
491
+ display: inline-table;
492
+ vertical-align: middle;
493
+
494
+ .input-group-addon,
495
+ .input-group-btn,
496
+ .form-control {
497
+ width: auto;
498
+ }
499
+ }
500
+
350
501
  // Input groups need that 100% width though
351
502
  .input-group > .form-control {
352
503
  width: 100%;
@@ -358,31 +509,35 @@ input[type="checkbox"],
358
509
  }
359
510
 
360
511
  // Remove default margin on radios/checkboxes that were used for stacking, and
361
- // then undo the floating of radios and checkboxes to match (which also avoids
362
- // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
512
+ // then undo the floating of radios and checkboxes to match.
363
513
  .radio,
364
514
  .checkbox {
365
515
  display: inline-block;
366
516
  margin-top: 0;
367
517
  margin-bottom: 0;
368
- padding-left: 0;
369
518
  vertical-align: middle;
519
+
520
+ label {
521
+ padding-left: 0;
522
+ }
370
523
  }
371
524
  .radio input[type="radio"],
372
525
  .checkbox input[type="checkbox"] {
373
- float: none;
526
+ position: relative;
374
527
  margin-left: 0;
375
528
  }
376
529
 
377
- // Validation states
378
- //
379
- // Reposition the icon because it's now within a grid column and columns have
380
- // `position: relative;` on them. Also accounts for the grid gutter padding.
530
+ // Re-override the feedback icon.
381
531
  .has-feedback .form-control-feedback {
382
532
  top: 0;
383
533
  }
384
534
  }
385
535
  }
536
+ // [converter] extracted as `@mixin form-inline` for libsass compatibility
537
+ .form-inline {
538
+ @include form-inline;
539
+ }
540
+
386
541
 
387
542
 
388
543
  // Horizontal forms
@@ -392,8 +547,9 @@ input[type="checkbox"],
392
547
 
393
548
  .form-horizontal {
394
549
 
395
- // Consistent vertical alignment of labels, radios, and checkboxes
396
- .control-label,
550
+ // Consistent vertical alignment of radios and checkboxes
551
+ //
552
+ // Labels also get some reset styles, but that is scoped to a media query below.
397
553
  .radio,
398
554
  .checkbox,
399
555
  .radio-inline,
@@ -411,17 +567,16 @@ input[type="checkbox"],
411
567
 
412
568
  // Make form groups behave like rows
413
569
  .form-group {
414
- @include make-row();
415
- }
416
-
417
- .form-control-static {
418
- padding-top: ($padding-base-vertical + 1);
570
+ @include make-row;
419
571
  }
420
572
 
421
- // Only right align form labels here when the columns stop stacking
573
+ // Reset spacing and right align labels, but scope to media queries so that
574
+ // labels on narrow viewports stack the same as a default form example.
422
575
  @media (min-width: $screen-sm-min) {
423
576
  .control-label {
424
577
  text-align: right;
578
+ margin-bottom: 0;
579
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
425
580
  }
426
581
  }
427
582
 
@@ -430,7 +585,27 @@ input[type="checkbox"],
430
585
  // Reposition the icon because it's now within a grid column and columns have
431
586
  // `position: relative;` on them. Also accounts for the grid gutter padding.
432
587
  .has-feedback .form-control-feedback {
433
- top: 0;
434
- right: ($grid-gutter-width / 2);
588
+ right: floor(($grid-gutter-width / 2));
589
+ }
590
+
591
+ // Form group sizes
592
+ //
593
+ // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
594
+ // inputs and labels within a `.form-group`.
595
+ .form-group-lg {
596
+ @media (min-width: $screen-sm-min) {
597
+ .control-label {
598
+ padding-top: (($padding-large-vertical * $line-height-large) + 1);
599
+ font-size: $font-size-large;
600
+ }
601
+ }
602
+ }
603
+ .form-group-sm {
604
+ @media (min-width: $screen-sm-min) {
605
+ .control-label {
606
+ padding-top: ($padding-small-vertical + 1);
607
+ font-size: $font-size-small;
608
+ }
609
+ }
435
610
  }
436
611
  }
@@ -7,14 +7,17 @@
7
7
  //
8
8
  // <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
9
9
 
10
- // Import the fonts
11
- @font-face {
12
- font-family: 'Glyphicons Halflings';
13
- src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
14
- src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
15
- url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
16
- url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
17
- url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
10
+ @at-root {
11
+ // Import the fonts
12
+ @font-face {
13
+ font-family: 'Glyphicons Halflings';
14
+ src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
15
+ src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
16
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'),
17
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
18
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
19
+ url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
20
+ }
18
21
  }
19
22
 
20
23
  // Catchall baseclass
@@ -33,7 +36,8 @@
33
36
  // Individual icons
34
37
  .glyphicon-asterisk { &:before { content: "\2a"; } }
35
38
  .glyphicon-plus { &:before { content: "\2b"; } }
36
- .glyphicon-euro { &:before { content: "\20ac"; } }
39
+ .glyphicon-euro,
40
+ .glyphicon-eur { &:before { content: "\20ac"; } }
37
41
  .glyphicon-minus { &:before { content: "\2212"; } }
38
42
  .glyphicon-cloud { &:before { content: "\2601"; } }
39
43
  .glyphicon-envelope { &:before { content: "\2709"; } }
@@ -231,3 +235,73 @@
231
235
  .glyphicon-cloud-upload { &:before { content: "\e198"; } }
232
236
  .glyphicon-tree-conifer { &:before { content: "\e199"; } }
233
237
  .glyphicon-tree-deciduous { &:before { content: "\e200"; } }
238
+ .glyphicon-cd { &:before { content: "\e201"; } }
239
+ .glyphicon-save-file { &:before { content: "\e202"; } }
240
+ .glyphicon-open-file { &:before { content: "\e203"; } }
241
+ .glyphicon-level-up { &:before { content: "\e204"; } }
242
+ .glyphicon-copy { &:before { content: "\e205"; } }
243
+ .glyphicon-paste { &:before { content: "\e206"; } }
244
+ // The following 2 Glyphicons are omitted for the time being because
245
+ // they currently use Unicode codepoints that are outside the
246
+ // Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle
247
+ // non-BMP codepoints in CSS string escapes, and thus can't display these two icons.
248
+ // Notably, the bug affects some older versions of the Android Browser.
249
+ // More info: https://github.com/twbs/bootstrap/issues/10106
250
+ // .glyphicon-door { &:before { content: "\1f6aa"; } }
251
+ // .glyphicon-key { &:before { content: "\1f511"; } }
252
+ .glyphicon-alert { &:before { content: "\e209"; } }
253
+ .glyphicon-equalizer { &:before { content: "\e210"; } }
254
+ .glyphicon-king { &:before { content: "\e211"; } }
255
+ .glyphicon-queen { &:before { content: "\e212"; } }
256
+ .glyphicon-pawn { &:before { content: "\e213"; } }
257
+ .glyphicon-bishop { &:before { content: "\e214"; } }
258
+ .glyphicon-knight { &:before { content: "\e215"; } }
259
+ .glyphicon-baby-formula { &:before { content: "\e216"; } }
260
+ .glyphicon-tent { &:before { content: "\26fa"; } }
261
+ .glyphicon-blackboard { &:before { content: "\e218"; } }
262
+ .glyphicon-bed { &:before { content: "\e219"; } }
263
+ .glyphicon-apple { &:before { content: "\f8ff"; } }
264
+ .glyphicon-erase { &:before { content: "\e221"; } }
265
+ .glyphicon-hourglass { &:before { content: "\231b"; } }
266
+ .glyphicon-lamp { &:before { content: "\e223"; } }
267
+ .glyphicon-duplicate { &:before { content: "\e224"; } }
268
+ .glyphicon-piggy-bank { &:before { content: "\e225"; } }
269
+ .glyphicon-scissors { &:before { content: "\e226"; } }
270
+ .glyphicon-bitcoin { &:before { content: "\e227"; } }
271
+ .glyphicon-btc { &:before { content: "\e227"; } }
272
+ .glyphicon-xbt { &:before { content: "\e227"; } }
273
+ .glyphicon-yen { &:before { content: "\00a5"; } }
274
+ .glyphicon-jpy { &:before { content: "\00a5"; } }
275
+ .glyphicon-ruble { &:before { content: "\20bd"; } }
276
+ .glyphicon-rub { &:before { content: "\20bd"; } }
277
+ .glyphicon-scale { &:before { content: "\e230"; } }
278
+ .glyphicon-ice-lolly { &:before { content: "\e231"; } }
279
+ .glyphicon-ice-lolly-tasted { &:before { content: "\e232"; } }
280
+ .glyphicon-education { &:before { content: "\e233"; } }
281
+ .glyphicon-option-horizontal { &:before { content: "\e234"; } }
282
+ .glyphicon-option-vertical { &:before { content: "\e235"; } }
283
+ .glyphicon-menu-hamburger { &:before { content: "\e236"; } }
284
+ .glyphicon-modal-window { &:before { content: "\e237"; } }
285
+ .glyphicon-oil { &:before { content: "\e238"; } }
286
+ .glyphicon-grain { &:before { content: "\e239"; } }
287
+ .glyphicon-sunglasses { &:before { content: "\e240"; } }
288
+ .glyphicon-text-size { &:before { content: "\e241"; } }
289
+ .glyphicon-text-color { &:before { content: "\e242"; } }
290
+ .glyphicon-text-background { &:before { content: "\e243"; } }
291
+ .glyphicon-object-align-top { &:before { content: "\e244"; } }
292
+ .glyphicon-object-align-bottom { &:before { content: "\e245"; } }
293
+ .glyphicon-object-align-horizontal{ &:before { content: "\e246"; } }
294
+ .glyphicon-object-align-left { &:before { content: "\e247"; } }
295
+ .glyphicon-object-align-vertical { &:before { content: "\e248"; } }
296
+ .glyphicon-object-align-right { &:before { content: "\e249"; } }
297
+ .glyphicon-triangle-right { &:before { content: "\e250"; } }
298
+ .glyphicon-triangle-left { &:before { content: "\e251"; } }
299
+ .glyphicon-triangle-bottom { &:before { content: "\e252"; } }
300
+ .glyphicon-triangle-top { &:before { content: "\e253"; } }
301
+ .glyphicon-console { &:before { content: "\e254"; } }
302
+ .glyphicon-superscript { &:before { content: "\e255"; } }
303
+ .glyphicon-subscript { &:before { content: "\e256"; } }
304
+ .glyphicon-menu-left { &:before { content: "\e257"; } }
305
+ .glyphicon-menu-right { &:before { content: "\e258"; } }
306
+ .glyphicon-menu-down { &:before { content: "\e259"; } }
307
+ .glyphicon-menu-up { &:before { content: "\e260"; } }
@@ -8,7 +8,7 @@
8
8
  // Set the container width, and override it for fixed navbars in media queries.
9
9
 
10
10
  .container {
11
- @include container-fixed();
11
+ @include container-fixed;
12
12
 
13
13
  @media (min-width: $screen-sm-min) {
14
14
  width: $container-sm;
@@ -28,7 +28,7 @@
28
28
  // width for fluid, full width layouts.
29
29
 
30
30
  .container-fluid {
31
- @include container-fixed();
31
+ @include container-fixed;
32
32
  }
33
33
 
34
34
 
@@ -37,7 +37,7 @@
37
37
  // Rows contain and clear the floats of your columns.
38
38
 
39
39
  .row {
40
- @include make-row();
40
+ @include make-row;
41
41
  }
42
42
 
43
43
 
@@ -45,7 +45,7 @@
45
45
  //
46
46
  // Common styles for small and large grid columns
47
47
 
48
- @include make-grid-columns();
48
+ @include make-grid-columns;
49
49
 
50
50
 
51
51
  // Extra small grid
@@ -39,10 +39,14 @@
39
39
 
40
40
  .input-group-lg > .form-control,
41
41
  .input-group-lg > .input-group-addon,
42
- .input-group-lg > .input-group-btn > .btn { @extend .input-lg; }
42
+ .input-group-lg > .input-group-btn > .btn {
43
+ @extend .input-lg;
44
+ }
43
45
  .input-group-sm > .form-control,
44
46
  .input-group-sm > .input-group-addon,
45
- .input-group-sm > .input-group-btn > .btn { @extend .input-sm; }
47
+ .input-group-sm > .input-group-btn > .btn {
48
+ @extend .input-sm;
49
+ }
46
50
 
47
51
 
48
52
  // Display as table-cell
@@ -156,6 +160,7 @@
156
160
  &:last-child {
157
161
  > .btn,
158
162
  > .btn-group {
163
+ z-index: 2;
159
164
  margin-left: -1px;
160
165
  }
161
166
  }