padrino-admin 0.11.2 → 0.11.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/lib/padrino-admin/bootstrap-less/accordion.less +6 -9
  2. data/lib/padrino-admin/bootstrap-less/alerts.less +46 -51
  3. data/lib/padrino-admin/bootstrap-less/badges.less +2 -7
  4. data/lib/padrino-admin/bootstrap-less/bootstrap.less +0 -1
  5. data/lib/padrino-admin/bootstrap-less/breadcrumbs.less +3 -3
  6. data/lib/padrino-admin/bootstrap-less/button-groups.less +37 -37
  7. data/lib/padrino-admin/bootstrap-less/buttons.less +52 -67
  8. data/lib/padrino-admin/bootstrap-less/carousel.less +24 -35
  9. data/lib/padrino-admin/bootstrap-less/close.less +14 -13
  10. data/lib/padrino-admin/bootstrap-less/code.less +4 -7
  11. data/lib/padrino-admin/bootstrap-less/component-animations.less +2 -11
  12. data/lib/padrino-admin/bootstrap-less/dropdowns.less +26 -82
  13. data/lib/padrino-admin/bootstrap-less/font-awesome-ie7.less +1895 -292
  14. data/lib/padrino-admin/bootstrap-less/font-awesome.less +26 -530
  15. data/lib/padrino-admin/bootstrap-less/font-awesome/bootstrap.less +84 -0
  16. data/lib/padrino-admin/bootstrap-less/font-awesome/core.less +129 -0
  17. data/lib/padrino-admin/bootstrap-less/font-awesome/extras.less +93 -0
  18. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome-ie7.less +1953 -0
  19. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome.less +33 -0
  20. data/lib/padrino-admin/bootstrap-less/font-awesome/icons.less +381 -0
  21. data/lib/padrino-admin/bootstrap-less/font-awesome/mixins.less +48 -0
  22. data/lib/padrino-admin/bootstrap-less/font-awesome/path.less +14 -0
  23. data/lib/padrino-admin/bootstrap-less/font-awesome/variables.less +735 -0
  24. data/lib/padrino-admin/bootstrap-less/forms.less +123 -227
  25. data/lib/padrino-admin/bootstrap-less/grid.less +174 -19
  26. data/lib/padrino-admin/bootstrap-less/jumbotron.less +4 -4
  27. data/lib/padrino-admin/bootstrap-less/labels.less +52 -28
  28. data/lib/padrino-admin/bootstrap-less/list-group.less +37 -44
  29. data/lib/padrino-admin/bootstrap-less/media.less +1 -1
  30. data/lib/padrino-admin/bootstrap-less/mixins.less +97 -120
  31. data/lib/padrino-admin/bootstrap-less/modals.less +5 -4
  32. data/lib/padrino-admin/bootstrap-less/navbar.less +148 -174
  33. data/lib/padrino-admin/bootstrap-less/navs.less +145 -164
  34. data/lib/padrino-admin/bootstrap-less/padrino-admin.less +2 -2
  35. data/lib/padrino-admin/bootstrap-less/pager.less +45 -33
  36. data/lib/padrino-admin/bootstrap-less/pagination.less +11 -23
  37. data/lib/padrino-admin/bootstrap-less/panels.less +11 -1
  38. data/lib/padrino-admin/bootstrap-less/popovers.less +6 -6
  39. data/lib/padrino-admin/bootstrap-less/print.less +13 -2
  40. data/lib/padrino-admin/bootstrap-less/progress-bars.less +3 -3
  41. data/lib/padrino-admin/bootstrap-less/responsive-utilities.less +92 -32
  42. data/lib/padrino-admin/bootstrap-less/scaffolding.less +9 -18
  43. data/lib/padrino-admin/bootstrap-less/tables.less +70 -67
  44. data/lib/padrino-admin/bootstrap-less/thumbnails.less +6 -6
  45. data/lib/padrino-admin/bootstrap-less/tooltip.less +25 -1
  46. data/lib/padrino-admin/bootstrap-less/type.less +39 -46
  47. data/lib/padrino-admin/bootstrap-less/variables.less +135 -63
  48. data/lib/padrino-admin/generators/admin_app.rb +9 -0
  49. data/lib/padrino-admin/generators/admin_page.rb +9 -0
  50. data/lib/padrino-admin/generators/orm.rb +1 -10
  51. data/lib/padrino-admin/generators/templates/account/activerecord.rb.tt +1 -1
  52. data/lib/padrino-admin/generators/templates/account/datamapper.rb.tt +1 -1
  53. data/lib/padrino-admin/generators/templates/account/minirecord.rb.tt +1 -1
  54. data/lib/padrino-admin/generators/templates/account/mongoid.rb.tt +1 -1
  55. data/lib/padrino-admin/generators/templates/account/mongomapper.rb.tt +1 -1
  56. data/lib/padrino-admin/generators/templates/account/sequel.rb.tt +1 -1
  57. data/lib/padrino-admin/generators/templates/assets/images/font/FontAwesome.otf +0 -0
  58. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.eot +0 -0
  59. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.svg +153 -38
  60. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.ttf +0 -0
  61. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.woff +0 -0
  62. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/affix.js +120 -0
  63. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/{bootstrap-alert.js → alert.js} +32 -35
  64. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap.min.js +1 -1
  65. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/{bootstrap-button.js → button.js} +37 -37
  66. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/carousel.js +210 -0
  67. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/collapse.js +156 -0
  68. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/dropdown.js +155 -0
  69. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/modal.js +243 -0
  70. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/popover.js +111 -0
  71. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/scrollspy.js +156 -0
  72. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tab.js +133 -0
  73. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tooltip.js +356 -0
  74. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/transition.js +47 -0
  75. data/lib/padrino-admin/generators/templates/assets/stylesheets/bootstrap.css +406 -452
  76. data/lib/padrino-admin/generators/templates/erb/app/layouts/application.erb.tt +3 -3
  77. data/lib/padrino-admin/generators/templates/erb/app/sessions/new.erb.tt +1 -1
  78. data/lib/padrino-admin/generators/templates/haml/app/layouts/application.haml.tt +3 -3
  79. data/lib/padrino-admin/generators/templates/haml/app/sessions/new.haml.tt +1 -1
  80. data/lib/padrino-admin/generators/templates/page/controller.rb.tt +1 -1
  81. data/lib/padrino-admin/generators/templates/slim/app/layouts/application.slim.tt +3 -3
  82. data/lib/padrino-admin/generators/templates/slim/app/sessions/new.slim.tt +1 -1
  83. data/lib/padrino-admin/helpers/view_helpers.rb +1 -1
  84. data/test/generators/test_admin_app_generator.rb +9 -0
  85. data/test/generators/test_admin_page_generator.rb +11 -0
  86. metadata +27 -23
  87. data/lib/padrino-admin/bootstrap-less/glyphicons.less +0 -200
  88. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-affix.js +0 -117
  89. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-carousel.js +0 -207
  90. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-collapse.js +0 -167
  91. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-dropdown.js +0 -165
  92. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-modal.js +0 -251
  93. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-popover.js +0 -114
  94. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-scrollspy.js +0 -162
  95. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-tab.js +0 -144
  96. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-tooltip.js +0 -361
  97. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-transition.js +0 -60
  98. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-typeahead.js +0 -335
@@ -20,10 +20,10 @@ legend {
20
20
  display: block;
21
21
  width: 100%;
22
22
  padding: 0;
23
- margin-bottom: @line-height-base;
23
+ margin-bottom: @line-height-computed;
24
24
  font-size: (@font-size-base * 1.5);
25
- line-height: (@line-height-base * 2);
26
- color: @grayDark;
25
+ line-height: inherit;
26
+ color: @gray-dark;
27
27
  border: 0;
28
28
  border-bottom: 1px solid #e5e5e5;
29
29
  }
@@ -54,10 +54,9 @@ input[type="url"],
54
54
  input[type="search"],
55
55
  input[type="tel"],
56
56
  input[type="color"] {
57
- display: inline-block;
57
+ display: block;
58
58
  min-height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
59
- padding: 6px 9px;
60
- // margin-bottom: (@line-height-base / 2);
59
+ padding: @padding-base-vertical @padding-base-horizontal;
61
60
  font-size: @font-size-base;
62
61
  line-height: @line-height-base;
63
62
  color: @gray;
@@ -66,7 +65,24 @@ input[type="color"] {
66
65
  border: 1px solid @input-border;
67
66
  border-radius: @input-border-radius;
68
67
  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
69
- .transition(~"border linear .2s, box-shadow linear .2s");
68
+ .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
69
+
70
+ &:focus {
71
+ border-color: rgba(82,168,236,.8);
72
+ outline: 0;
73
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
74
+ }
75
+
76
+ // Disabled and read-only inputs
77
+ // Note: HTML5 says that inputs under a fieldset > legend:first-child won't be
78
+ // disabled if the fieldset is disabled. Due to implementation difficulty,
79
+ // we don't honor that edge case; we style them as disabled anyway.
80
+ &[disabled],
81
+ &[readonly],
82
+ fieldset[disabled] & {
83
+ cursor: not-allowed;
84
+ background-color: @input-bg-disabled;
85
+ }
70
86
  }
71
87
 
72
88
  // Reset appearance properties for textual inputs and textarea
@@ -88,37 +104,16 @@ input[type="checkbox"] {
88
104
  width: auto; // Override of generic input selector
89
105
  }
90
106
 
107
+ // Override content-box in Normalize (* isn't specific enough)
108
+ input[type="search"] {
109
+ .box-sizing(border-box);
110
+ }
111
+
91
112
  // Reset height since textareas have rows
92
113
  textarea {
93
114
  height: auto;
94
115
  }
95
116
 
96
- // Everything else
97
- textarea,
98
- input[type="text"],
99
- input[type="password"],
100
- input[type="datetime"],
101
- input[type="datetime-local"],
102
- input[type="date"],
103
- input[type="month"],
104
- input[type="time"],
105
- input[type="week"],
106
- input[type="number"],
107
- input[type="email"],
108
- input[type="url"],
109
- input[type="search"],
110
- input[type="tel"],
111
- input[type="color"] {
112
- // Focus state
113
- &:focus {
114
- border-color: rgba(82,168,236,.8);
115
- outline: 0;
116
- outline: thin dotted \9; /* IE6-9 */
117
- //.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
118
- .box-shadow(0 0 8px rgba(82,168,236,.6));
119
- }
120
- }
121
-
122
117
  // Position radios and checkboxes better
123
118
  input[type="radio"],
124
119
  input[type="checkbox"] {
@@ -140,14 +135,30 @@ select[size] {
140
135
  height: auto;
141
136
  }
142
137
 
138
+ // Fix optgroup Firefox bug per https://github.com/twitter/bootstrap/issues/7611
139
+ select optgroup {
140
+ font-size: inherit;
141
+ font-style: inherit;
142
+ font-family: inherit;
143
+ }
144
+
143
145
  // Focus for select, file, radio, and checkbox
144
- select:focus,
145
146
  input[type="file"]:focus,
146
147
  input[type="radio"]:focus,
147
148
  input[type="checkbox"]:focus {
148
149
  .tab-focus();
149
150
  }
150
151
 
152
+ // Fix for Chrome number input
153
+ // Setting certain font-sizes causes the `I` bar to appear on hover of the bottom increment button.
154
+ // See https://github.com/twitter/bootstrap/issues/8350 for more.
155
+ input[type="number"] {
156
+ &::-webkit-outer-spin-button,
157
+ &::-webkit-inner-spin-button {
158
+ height: auto;
159
+ }
160
+ }
161
+
151
162
 
152
163
  // Placeholder
153
164
  // -------------------------
@@ -166,16 +177,18 @@ textarea {
166
177
  .radio,
167
178
  .checkbox {
168
179
  display: block;
169
- min-height: @line-height-base; // clear the floating input if there is no label text
170
- margin-bottom: (@line-height-base / 2);
180
+ min-height: @line-height-computed; // clear the floating input if there is no label text
181
+ margin-top: 10px;
182
+ margin-bottom: 10px;
171
183
  padding-left: 20px;
184
+ vertical-align: middle;
172
185
  label {
173
186
  display: inline;
174
187
  margin-bottom: 0;
175
188
  font-weight: normal;
189
+ cursor: pointer;
176
190
  }
177
191
  }
178
-
179
192
  .radio input[type="radio"],
180
193
  .radio-inline input[type="radio"],
181
194
  .checkbox input[type="checkbox"],
@@ -185,24 +198,27 @@ textarea {
185
198
  }
186
199
  .radio + .radio,
187
200
  .checkbox + .checkbox {
188
- margin-top: ((@line-height-base / 4) * -1);
201
+ margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
189
202
  }
190
203
 
204
+ /*
191
205
  // Move the options list down to align with labels
192
206
  .controls > .radio:first-child,
193
207
  .controls > .checkbox:first-child {
194
- padding-top: 5px; // has to be padding because margin collaspes
208
+ padding-top: 5px; // has to be padding because margin collapses
195
209
  }
210
+ */
196
211
 
197
212
  // Radios and checkboxes on same line
198
213
  .radio-inline,
199
214
  .checkbox-inline {
200
215
  display: inline-block;
201
- padding-top: 5px;
216
+ // padding-top: 5px;
202
217
  padding-left: 20px;
203
218
  margin-bottom: 0;
204
219
  vertical-align: middle;
205
220
  font-weight: normal;
221
+ cursor: pointer;
206
222
  }
207
223
  .radio-inline + .radio-inline,
208
224
  .checkbox-inline + .checkbox-inline {
@@ -232,13 +248,14 @@ input[type="search"],
232
248
  input[type="tel"],
233
249
  input[type="color"] {
234
250
  &.input-large {
235
- padding: @padding-large;
251
+ min-height: @input-height-large;
252
+ padding: @padding-large-vertical @padding-large-horizontal;
236
253
  font-size: @font-size-large;
237
254
  border-radius: @border-radius-large;
238
255
  }
239
256
  &.input-small {
240
257
  min-height: @input-height-small;
241
- padding: @padding-small;
258
+ padding: @padding-small-vertical @padding-small-horizontal;
242
259
  font-size: @font-size-small;
243
260
  border-radius: @border-radius-small;
244
261
  }
@@ -246,125 +263,33 @@ input[type="color"] {
246
263
 
247
264
 
248
265
 
249
- // GRID SIZING FOR INPUTS
250
- // ----------------------
251
-
252
- // Grid style input sizes
253
- input[class*="span"],
254
- select[class*="span"],
255
- textarea[class*="span"] {
256
- float: none;
257
- margin-left: 0;
258
- margin-right: 0;
259
- }
260
-
261
- // Ensure input-prepend/append never wraps
262
- .input-append input[class*="span"],
263
- .input-prepend input[class*="span"] {
264
- display: inline-block;
265
- }
266
-
267
- input[class*="span"],
268
- select[class*="span"],
269
- textarea[class*="span"] {
270
- height: @input-height-base;
271
- }
272
-
273
-
274
-
275
- // DISABLED STATE
276
- // --------------
277
-
278
- // Disabled and read-only inputs
279
- // Note: HTML5 says that inputs under a fieldset > legend:first-child won't be
280
- // disabled if the fieldset is disabled. Due to implementation difficulty,
281
- // we don't honor that edge case; we style them as disabled anyway.
282
- input,
283
- select,
284
- textarea {
285
- &[disabled],
286
- &[readonly],
287
- fieldset[disabled] & {
288
- cursor: not-allowed;
289
- background-color: @input-bg-disabled;
290
- }
291
- }
292
- // Explicitly reset the colors here
293
- input[type="radio"],
294
- input[type="checkbox"] {
295
- &[disabled],
296
- &[readonly],
297
- fieldset[disabled] & {
298
- background-color: transparent;
299
- }
300
- }
301
-
302
-
303
-
304
-
305
266
  // FORM FIELD FEEDBACK STATES
306
267
  // --------------------------
307
268
 
308
269
  // Warning
309
270
  .has-warning {
310
- .formFieldState(@state-warning-text, @state-warning-text, @state-warning-bg);
271
+ .form-field-validation(@state-warning-text, @state-warning-text, @state-warning-bg);
311
272
  }
312
273
  // Error
313
274
  .has-error {
314
- .formFieldState(@state-danger-text, @state-danger-text, @state-danger-bg);
275
+ .form-field-validation(@state-danger-text, @state-danger-text, @state-danger-bg);
315
276
  }
316
277
  // Success
317
278
  .has-success {
318
- .formFieldState(@state-success-text, @state-success-text, @state-success-bg);
319
- }
320
-
321
- // HTML5 invalid states
322
- // Shares styles with the .control-group.error above
323
- input:focus:invalid,
324
- textarea:focus:invalid,
325
- select:focus:invalid {
326
- color: #b94a48;
327
- border-color: #ee5f5b;
328
- &:focus {
329
- border-color: darken(#ee5f5b, 10%);
330
- @shadow: 0 0 6px lighten(#ee5f5b, 20%);
331
- .box-shadow(@shadow);
332
- }
279
+ .form-field-validation(@state-success-text, @state-success-text, @state-success-bg);
333
280
  }
334
281
 
335
282
 
336
283
 
337
- // FORM ACTIONS
338
- // ------------
339
-
340
- .form-actions {
341
- padding: (@line-height-base - 1) 20px @line-height-base;
342
- margin-top: @line-height-base;
343
- margin-bottom: @line-height-base;
344
- background-color: @form-actions-bg;
345
- border-top: 1px solid #e5e5e5;
346
- .clearfix(); // Adding clearfix to allow for .pull-right button containers
347
- }
348
-
349
-
350
284
 
351
285
  // HELP TEXT
352
286
  // ---------
353
287
 
354
- .help-block,
355
- .help-inline {
356
- color: lighten(@text-color, 25%); // lighten the text some for contrast
357
- }
358
-
359
288
  .help-block {
360
289
  display: block; // account for any element using help-block
361
- margin-bottom: (@line-height-base / 2);
362
- }
363
-
364
- .help-inline {
365
- display: inline-block;
366
- vertical-align: middle;
367
- padding-left: 5px;
290
+ margin-top: 5px;
291
+ margin-bottom: 10px;
292
+ color: lighten(@text-color, 25%); // lighten the text some for contrast
368
293
  }
369
294
 
370
295
 
@@ -376,16 +301,19 @@ select:focus:invalid {
376
301
  // -------------------------
377
302
  .input-group {
378
303
  display: table;
304
+ border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
379
305
 
380
306
  // Undo padding and float of grid classes
381
- &[class*="span"] {
307
+ &.col {
382
308
  float: none;
383
- padding: 0;
309
+ padding-left: 0;
310
+ padding-right: 0;
384
311
  }
385
312
 
386
313
  input,
387
314
  select {
388
315
  width: 100%;
316
+ margin-bottom: 0;
389
317
  }
390
318
  }
391
319
 
@@ -395,12 +323,8 @@ select:focus:invalid {
395
323
  .input-group-btn,
396
324
  .input-group input {
397
325
  display: table-cell;
398
- margin: 0;
399
- border-radius: 0;
400
- &.input-small {
401
- border-radius: 0;
402
- }
403
- &.input-large {
326
+
327
+ &:not(:first-child):not(:last-child) {
404
328
  border-radius: 0;
405
329
  }
406
330
  }
@@ -408,6 +332,7 @@ select:focus:invalid {
408
332
  .input-group-addon,
409
333
  .input-group-btn {
410
334
  width: 1%;
335
+ white-space: nowrap;
411
336
  vertical-align: middle; // Match the inputs
412
337
  }
413
338
 
@@ -415,48 +340,45 @@ select:focus:invalid {
415
340
  // -------------------------
416
341
  .input-group-addon {
417
342
  .box-sizing(border-box);
418
- padding: 6px 8px;
343
+ padding: @padding-base-vertical @padding-base-horizontal;
419
344
  font-size: @font-size-base;
420
345
  font-weight: normal;
421
346
  line-height: @line-height-base;
422
347
  text-align: center;
423
348
  text-shadow: 0 1px 0 #fff;
424
- background-color: @grayLighter;
349
+ background-color: @gray-lighter;
425
350
  border: 1px solid #ccc;
351
+ border-radius: @border-radius-base;
426
352
 
427
- &.input-small {
428
- padding: @padding-small;
429
- font-size: @font-size-small;
353
+ &.input-small {
354
+ padding: @padding-small-vertical @padding-small-horizontal;
355
+ font-size: @font-size-small;
356
+ border-radius: @border-radius-small;
357
+ }
358
+ &.input-large {
359
+ padding: @padding-large-vertical @padding-large-horizontal;
360
+ font-size: @font-size-large;
361
+ border-radius: @border-radius-large;
430
362
  }
431
- &.input-large {
432
- padding: @padding-large;
433
- font-size: @font-size-large;
434
- }
435
363
  }
436
364
 
437
365
  // Reset rounded corners
438
366
  .input-group input:first-child,
439
- .input-group-addon:first-child {
440
- .border-left-radius(@border-radius-base);
441
- &.input-small {
442
- .border-left-radius(@border-radius-small);
443
- }
444
- &.input-large {
445
- .border-left-radius(@border-radius-large);
446
- }
367
+ .input-group-addon:first-child,
368
+ .input-group-btn:first-child > .btn,
369
+ .input-group-btn:first-child > .dropdown-toggle,
370
+ .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
371
+ .border-right-radius(0);
447
372
  }
448
373
  .input-group-addon:first-child {
449
374
  border-right: 0;
450
375
  }
451
376
  .input-group input:last-child,
452
- .input-group-addon:last-child {
453
- .border-right-radius(@border-radius-base);
454
- &.input-small {
455
- .border-right-radius(@border-radius-small);
456
- }
457
- &.input-large {
458
- .border-right-radius(@border-radius-large);
459
- }
377
+ .input-group-addon:last-child,
378
+ .input-group-btn:last-child > .btn,
379
+ .input-group-btn:last-child > .dropdown-toggle,
380
+ .input-group-btn:first-child > .btn:not(:first-child) {
381
+ .border-left-radius(0);
460
382
  }
461
383
  .input-group-addon:last-child {
462
384
  border-left: 0;
@@ -471,7 +393,6 @@ select:focus:invalid {
471
393
  .input-group-btn > .btn {
472
394
  position: relative;
473
395
  float: left; // Collapse white-space
474
- border-radius: 0;
475
396
  + .btn {
476
397
  margin-left: -1px;
477
398
  }
@@ -482,67 +403,42 @@ select:focus:invalid {
482
403
  }
483
404
  }
484
405
 
485
- // Prepended buttons
486
- .input-group-btn:first-child {
487
- // Round the left corners only
488
- > .btn:first-child,
489
- > .dropdown-toggle:first-child {
490
- .border-left-radius(@border-radius-base);
491
- &.btn-large { .border-left-radius(@border-radius-large); }
492
- &.btn-small { .border-left-radius(@border-radius-small); }
493
- }
494
- }
495
406
 
496
- // Appended buttons
497
- .input-group-btn:last-child {
498
- // Round the right corners only
499
- > .btn:last-child,
500
- > .dropdown-toggle {
501
- .border-right-radius(@border-radius-base);
502
- &.btn-large { .border-right-radius(@border-radius-large); }
503
- &.btn-small { .border-right-radius(@border-radius-small); }
407
+ // Inline forms
408
+ // --------------------------------------------------
409
+
410
+ .form-inline {
411
+ input,
412
+ select,
413
+ textarea,
414
+ .radio,
415
+ .checkbox {
416
+ display: inline-block;
417
+ }
418
+ .radio,
419
+ .checkbox {
420
+ margin-top: 0;
421
+ margin-bottom: 0;
504
422
  }
505
423
  }
506
424
 
507
425
 
508
-
509
426
  // Horizontal forms
510
427
  // --------------------------------------------------
428
+ // Horizontal forms are built on grid classes.
511
429
 
512
- @media screen and (min-width: 768px) {
513
-
514
- .form-horizontal {
515
-
516
- // Increase spacing between groups
517
- .control-group {
518
- position: relative;
519
- margin-bottom: @line-height-base;
520
- .clearfix();
521
-
522
- input,
523
- select,
524
- textarea {
525
- margin-bottom: 0;
526
- }
527
- }
528
-
529
- // Float the labels left
530
- .control-group > .control-label {
531
- float: left;
532
- width: (@component-offset-horizontal - 20);
533
- padding-top: 6px;
534
- text-align: right;
535
- }
536
-
537
- // Move over all input controls and content over
538
- .control-group > .controls {
539
- margin-left: @component-offset-horizontal;
540
- }
541
-
542
- // Make sure form actions buttons are aligned with controls
543
- .form-actions {
544
- padding-left: @component-offset-horizontal;
545
- }
430
+ .form-horizontal {
431
+ .row + .row {
432
+ margin-top: 15px;
433
+ }
434
+ .control-label {
435
+ padding-top: 6px;
436
+ }
437
+ }
546
438
 
439
+ // Only right align form labels here when the columns stop stacking
440
+ @media (min-width: 768px) {
441
+ .form-horizontal .control-label {
442
+ text-align: right;
547
443
  }
548
444
  }