sass-twitter-bootstrap 2.1.1 → 2.2.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 (54) hide show
  1. data/lib/_media.scss +55 -0
  2. data/lib/sass/twitter/bootstrap/version.rb +1 -1
  3. data/lib/tests/buttons.html +139 -0
  4. data/lib/tests/forms-responsive.html +71 -0
  5. data/lib/tests/navbar-fixed-top.html +104 -0
  6. data/lib/tests/navbar-static-top.html +107 -0
  7. data/vendor/assets/javascripts/twitter/bootstrap-affix.js +4 -2
  8. data/vendor/assets/javascripts/twitter/bootstrap-alert.js +2 -4
  9. data/vendor/assets/javascripts/twitter/bootstrap-button.js +5 -7
  10. data/vendor/assets/javascripts/twitter/bootstrap-carousel.js +12 -12
  11. data/vendor/assets/javascripts/twitter/bootstrap-collapse.js +9 -11
  12. data/vendor/assets/javascripts/twitter/bootstrap-dropdown.js +9 -11
  13. data/vendor/assets/javascripts/twitter/bootstrap-modal.js +20 -25
  14. data/vendor/assets/javascripts/twitter/bootstrap-popover.js +1 -1
  15. data/vendor/assets/javascripts/twitter/bootstrap-scrollspy.js +1 -1
  16. data/vendor/assets/javascripts/twitter/bootstrap-tab.js +5 -7
  17. data/vendor/assets/javascripts/twitter/bootstrap-tooltip.js +12 -11
  18. data/vendor/assets/javascripts/twitter/bootstrap-transition.js +5 -5
  19. data/vendor/assets/javascripts/twitter/bootstrap-typeahead.js +19 -9
  20. data/vendor/assets/javascripts/twitter/bootstrap.js +1 -0
  21. data/vendor/assets/stylesheets/tests/navbar.html +35 -36
  22. data/vendor/assets/stylesheets/twitter/_accordion.scss +1 -1
  23. data/vendor/assets/stylesheets/twitter/_alerts.scss +1 -1
  24. data/vendor/assets/stylesheets/twitter/_breadcrumbs.scss +1 -1
  25. data/vendor/assets/stylesheets/twitter/_button-groups.scss +5 -8
  26. data/vendor/assets/stylesheets/twitter/_buttons.scss +18 -17
  27. data/vendor/assets/stylesheets/twitter/_code.scss +1 -1
  28. data/vendor/assets/stylesheets/twitter/_component-animations.scss +2 -2
  29. data/vendor/assets/stylesheets/twitter/_dropdowns.scss +32 -5
  30. data/vendor/assets/stylesheets/twitter/_forms.scss +46 -14
  31. data/vendor/assets/stylesheets/twitter/_hero-unit.scss +6 -5
  32. data/vendor/assets/stylesheets/twitter/_labels-badges.scss +4 -2
  33. data/vendor/assets/stylesheets/twitter/_mixins.scss +12 -7
  34. data/vendor/assets/stylesheets/twitter/_modals.scss +8 -11
  35. data/vendor/assets/stylesheets/twitter/_navbar.scss +8 -10
  36. data/vendor/assets/stylesheets/twitter/_navs.scss +5 -4
  37. data/vendor/assets/stylesheets/twitter/_pager.scss +10 -9
  38. data/vendor/assets/stylesheets/twitter/_pagination.scss +69 -12
  39. data/vendor/assets/stylesheets/twitter/_popovers.scss +2 -2
  40. data/vendor/assets/stylesheets/twitter/_progress-bars.scss +2 -2
  41. data/vendor/assets/stylesheets/twitter/_reset.scss +6 -4
  42. data/vendor/assets/stylesheets/twitter/_responsive-767px-max.scss +20 -1
  43. data/vendor/assets/stylesheets/twitter/_responsive-navbar.scss +12 -4
  44. data/vendor/assets/stylesheets/twitter/_scaffolding.scss +1 -3
  45. data/vendor/assets/stylesheets/twitter/_sprites.scss +3 -3
  46. data/vendor/assets/stylesheets/twitter/_tables.scss +12 -8
  47. data/vendor/assets/stylesheets/twitter/_thumbnails.scss +1 -1
  48. data/vendor/assets/stylesheets/twitter/_tooltip.scss +1 -1
  49. data/vendor/assets/stylesheets/twitter/_type.scss +30 -24
  50. data/vendor/assets/stylesheets/twitter/_variables.scss +25 -2
  51. data/vendor/assets/stylesheets/twitter/_wells.scss +3 -3
  52. data/vendor/assets/stylesheets/twitter/bootstrap.scss +2 -1
  53. data/vendor/assets/stylesheets/twitter/responsive.scss +1 -1
  54. metadata +7 -2
@@ -10,3 +10,4 @@
10
10
  //= require twitter/bootstrap-collapse
11
11
  //= require twitter/bootstrap-carousel
12
12
  //= require twitter/bootstrap-typeahead
13
+ //= require twitter/bootstrap-affix
@@ -11,9 +11,12 @@
11
11
  <link href="../../docs/assets/css/bootstrap.css" rel="stylesheet">
12
12
  <style>
13
13
  body {
14
- padding-top: 60px;
14
+ padding-top: 0;
15
15
  padding-bottom: 30px;
16
16
  }
17
+ .navbar {
18
+ margin-top: 20px;
19
+ }
17
20
  </style>
18
21
  <link href="../../docs/assets/css/bootstrap-responsive.css" rel="stylesheet">
19
22
 
@@ -32,27 +35,6 @@
32
35
 
33
36
  <body>
34
37
 
35
- <!-- Fixed navbar -->
36
- <div class="navbar navbar-fixed-top">
37
- <div class="navbar-inner">
38
- <div class="container">
39
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
40
- <span class="icon-bar"></span>
41
- <span class="icon-bar"></span>
42
- <span class="icon-bar"></span>
43
- </a>
44
- <a class="brand" href="#">Project name</a>
45
- <div class="nav-collapse">
46
- <ul class="nav">
47
- <li class="active"><a href="#">Home</a></li>
48
- <li><a href="#about">About</a></li>
49
- <li><a href="#contact">Contact</a></li>
50
- </ul>
51
- </div><!--/.nav-collapse -->
52
- </div>
53
- </div>
54
- </div>
55
-
56
38
  <div class="container">
57
39
 
58
40
  <!-- Static navbar -->
@@ -65,11 +47,28 @@
65
47
  <span class="icon-bar"></span>
66
48
  </a>
67
49
  <a class="brand" href="#">Project name</a>
68
- <div class="nav-collapse">
50
+ <div class="nav-collapse collapse">
69
51
  <ul class="nav">
70
52
  <li class="active"><a href="#">Home</a></li>
71
53
  <li><a href="#about">About</a></li>
72
54
  <li><a href="#contact">Contact</a></li>
55
+ <li class="dropdown">
56
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
57
+ <ul class="dropdown-menu">
58
+ <li><a href="#">Action</a></li>
59
+ <li><a href="#">Another action</a></li>
60
+ <li><a href="#">Something else here</a></li>
61
+ <li class="divider"></li>
62
+ <li class="nav-header">Nav header</li>
63
+ <li><a href="#">Separated link</a></li>
64
+ <li><a href="#">One more separated link</a></li>
65
+ </ul>
66
+ </li>
67
+ </ul>
68
+ <ul class="nav pull-right">
69
+ <li class="active"><a href="./navbar.html">Default</a></li>
70
+ <li><a href="./navbar-static-top.html">Static top</a></li>
71
+ <li><a href="./navbar-fixed-top.html">Fixed top</a></li>
73
72
  </ul>
74
73
  </div><!--/.nav-collapse -->
75
74
  </div>
@@ -90,19 +89,19 @@
90
89
  <!-- Le javascript
91
90
  ================================================== -->
92
91
  <!-- Placed at the end of the document so the pages load faster -->
93
- <script src="../assets/js/jquery.js"></script>
94
- <script src="../assets/js/bootstrap-transition.js"></script>
95
- <script src="../assets/js/bootstrap-alert.js"></script>
96
- <script src="../assets/js/bootstrap-modal.js"></script>
97
- <script src="../assets/js/bootstrap-dropdown.js"></script>
98
- <script src="../assets/js/bootstrap-scrollspy.js"></script>
99
- <script src="../assets/js/bootstrap-tab.js"></script>
100
- <script src="../assets/js/bootstrap-tooltip.js"></script>
101
- <script src="../assets/js/bootstrap-popover.js"></script>
102
- <script src="../assets/js/bootstrap-button.js"></script>
103
- <script src="../assets/js/bootstrap-collapse.js"></script>
104
- <script src="../assets/js/bootstrap-carousel.js"></script>
105
- <script src="../assets/js/bootstrap-typeahead.js"></script>
92
+ <script src="../../docs/assets/js/jquery.js"></script>
93
+ <script src="../../docs/assets/js/bootstrap-transition.js"></script>
94
+ <script src="../../docs/assets/js/bootstrap-alert.js"></script>
95
+ <script src="../../docs/assets/js/bootstrap-modal.js"></script>
96
+ <script src="../../docs/assets/js/bootstrap-dropdown.js"></script>
97
+ <script src="../../docs/assets/js/bootstrap-scrollspy.js"></script>
98
+ <script src="../../docs/assets/js/bootstrap-tab.js"></script>
99
+ <script src="../../docs/assets/js/bootstrap-tooltip.js"></script>
100
+ <script src="../../docs/assets/js/bootstrap-popover.js"></script>
101
+ <script src="../../docs/assets/js/bootstrap-button.js"></script>
102
+ <script src="../../docs/assets/js/bootstrap-collapse.js"></script>
103
+ <script src="../../docs/assets/js/bootstrap-carousel.js"></script>
104
+ <script src="../../docs/assets/js/bootstrap-typeahead.js"></script>
106
105
 
107
106
  </body>
108
107
  </html>
@@ -12,7 +12,7 @@
12
12
  .accordion-group {
13
13
  margin-bottom: 2px;
14
14
  border: 1px solid #e5e5e5;
15
- @include border-radius(4px);
15
+ @include border-radius($baseBorderRadius);
16
16
  }
17
17
  .accordion-heading {
18
18
  border-bottom: 0;
@@ -12,7 +12,7 @@
12
12
  text-shadow: 0 1px 0 rgba(255,255,255,.5);
13
13
  background-color: $warningBackground;
14
14
  border: 1px solid $warningBorder;
15
- @include border-radius(4px);
15
+ @include border-radius($baseBorderRadius);
16
16
  color: $warningText;
17
17
  }
18
18
  .alert h4 {
@@ -8,7 +8,7 @@
8
8
  margin: 0 0 $baseLineHeight;
9
9
  list-style: none;
10
10
  background-color: #f5f5f5;
11
- @include border-radius(4px);
11
+ @include border-radius($baseBorderRadius);
12
12
  li {
13
13
  display: inline-block;
14
14
  @include ie7-inline-block();
@@ -6,6 +6,8 @@
6
6
  // Make the div behave like a button
7
7
  .btn-group {
8
8
  position: relative;
9
+ display: inline-block;
10
+ @include ie7-inline-block();
9
11
  font-size: 0; // remove as part 1 of font-size inline-block hack
10
12
  vertical-align: middle; // match .btn alignment given font-size hack above
11
13
  white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
@@ -22,10 +24,6 @@
22
24
  font-size: 0; // Hack to remove whitespace that results from using inline-block
23
25
  margin-top: $baseLineHeight / 2;
24
26
  margin-bottom: $baseLineHeight / 2;
25
- .btn-group {
26
- display: inline-block;
27
- @include ie7-inline-block();
28
- }
29
27
  .btn + .btn,
30
28
  .btn-group + .btn,
31
29
  .btn + .btn-group {
@@ -120,7 +118,7 @@
120
118
  .btn-group > .btn + .dropdown-toggle {
121
119
  padding-left: 8px;
122
120
  padding-right: 8px;
123
- @include box-shadow(#{inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)});
121
+ @include box-shadow(inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05));
124
122
  *padding-top: 5px;
125
123
  *padding-bottom: 5px;
126
124
  }
@@ -147,7 +145,7 @@
147
145
  // Remove the gradient and set the same inset shadow as the :active state
148
146
  .dropdown-toggle {
149
147
  background-image: none;
150
- @include box-shadow(#{inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)});
148
+ @include box-shadow(inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05));
151
149
  }
152
150
 
153
151
  // Keep the hover's background when dropdown is open
@@ -193,8 +191,7 @@
193
191
  }
194
192
  // Upside down carets for .dropup
195
193
  .dropup .btn-large .caret {
196
- border-bottom: 5px solid $black;
197
- border-top: 0;
194
+ border-bottom-width: 5px;
198
195
  }
199
196
 
200
197
 
@@ -10,7 +10,7 @@
10
10
  .btn {
11
11
  display: inline-block;
12
12
  @include ie7-inline-block();
13
- padding: 4px 14px;
13
+ padding: 4px 12px;
14
14
  margin-bottom: 0; // For input.btn
15
15
  font-size: $baseFontSize;
16
16
  line-height: $baseLineHeight;
@@ -22,9 +22,9 @@
22
22
  border: 1px solid $btnBorder;
23
23
  *border: 0; // Remove the border to prevent IE7's black border on input:focus
24
24
  border-bottom-color: darken($btnBorder, 10%);
25
- @include border-radius(4px);
25
+ @include border-radius($baseBorderRadius);
26
26
  @include ie7-restore-left-whitespace(); // Give IE7 some love
27
- @include box-shadow(#{inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)});
27
+ @include box-shadow(inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05));
28
28
 
29
29
  // Hover state
30
30
  &:hover {
@@ -51,7 +51,7 @@
51
51
  background-color: darken($white, 15%) \9;
52
52
  background-image: none;
53
53
  outline: 0;
54
- @include box-shadow(#{inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)});
54
+ @include box-shadow(inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05));
55
55
  }
56
56
 
57
57
  // Disabled state
@@ -73,30 +73,31 @@
73
73
 
74
74
  // Large
75
75
  .btn-large {
76
- padding: 9px 14px;
77
- font-size: $baseFontSize + 2px;
78
- line-height: normal;
79
- @include border-radius(5px);
76
+ padding: $paddingLarge;
77
+ font-size: $fontSizeLarge;
78
+ @include border-radius($borderRadiusLarge);
80
79
  }
81
- .btn-large [class^="icon-"] {
80
+ .btn-large [class^="icon-"],
81
+ .btn-large [class*=" icon-"] {
82
82
  margin-top: 2px;
83
83
  }
84
84
 
85
85
  // Small
86
86
  .btn-small {
87
- padding: 3px 9px;
88
- font-size: $baseFontSize - 2px;
89
- line-height: $baseLineHeight - 2px;
87
+ padding: $paddingSmall;
88
+ font-size: $fontSizeSmall;
89
+ @include border-radius($borderRadiusSmall);
90
90
  }
91
- .btn-small [class^="icon-"] {
92
- margin-top: 0px;
91
+ .btn-small [class^="icon-"],
92
+ .btn-small [class*=" icon-"] {
93
+ margin-top: 0;
93
94
  }
94
95
 
95
96
  // Mini
96
97
  .btn-mini {
97
- padding: 2px 6px;
98
- font-size: $baseFontSize - 3px;
99
- line-height: $baseLineHeight - 3px;
98
+ padding: $paddingMini;
99
+ font-size: $fontSizeMini;
100
+ @include border-radius($borderRadiusSmall);
100
101
  }
101
102
 
102
103
 
@@ -35,7 +35,7 @@ pre {
35
35
  background-color: #f5f5f5;
36
36
  border: 1px solid #ccc; // fallback for IE7-8
37
37
  border: 1px solid rgba(0,0,0,.15);
38
- @include border-radius(4px);
38
+ @include border-radius($baseBorderRadius);
39
39
 
40
40
  // Make prettyprint styles more spaced out for readability
41
41
  &.prettyprint {
@@ -4,10 +4,10 @@
4
4
 
5
5
 
6
6
  .fade {
7
- @include opacity(0);
7
+ opacity: 0;
8
8
  @include transition(opacity .15s linear);
9
9
  &.in {
10
- @include opacity(100);
10
+ opacity: 1;
11
11
  }
12
12
  }
13
13
 
@@ -72,7 +72,7 @@
72
72
  }
73
73
 
74
74
  // Links within the dropdown menu
75
- a {
75
+ li > a {
76
76
  display: block;
77
77
  padding: 3px 20px;
78
78
  clear: both;
@@ -90,7 +90,6 @@
90
90
  .dropdown-submenu:hover > a {
91
91
  text-decoration: none;
92
92
  color: $dropdownLinkColorHover;
93
- background-color: $dropdownLinkBackgroundHover;
94
93
  @include gradient-vertical($dropdownLinkBackgroundHover, darken($dropdownLinkBackgroundHover, 5%));
95
94
  }
96
95
 
@@ -98,10 +97,9 @@
98
97
  // ------------
99
98
  .dropdown-menu .active > a,
100
99
  .dropdown-menu .active > a:hover {
101
- color: $dropdownLinkColorHover;
100
+ color: $dropdownLinkColorActive;
102
101
  text-decoration: none;
103
102
  outline: 0;
104
- background-color: $dropdownLinkBackgroundActive;
105
103
  @include gradient-vertical($dropdownLinkBackgroundActive, darken($dropdownLinkBackgroundActive, 5%));
106
104
  }
107
105
 
@@ -116,6 +114,7 @@
116
114
  .dropdown-menu .disabled > a:hover {
117
115
  text-decoration: none;
118
116
  background-color: transparent;
117
+ background-image: none; // Remove CSS gradient
119
118
  cursor: default;
120
119
  }
121
120
 
@@ -163,6 +162,7 @@
163
162
  .dropdown-submenu {
164
163
  position: relative;
165
164
  }
165
+ // Default dropdowns
166
166
  .dropdown-submenu > .dropdown-menu {
167
167
  top: 0;
168
168
  left: 100%;
@@ -176,6 +176,18 @@
176
176
  display: block;
177
177
  }
178
178
 
179
+ // Dropups
180
+ .dropup .dropdown-submenu > .dropdown-menu {
181
+ top: auto;
182
+ bottom: 0;
183
+ margin-top: 0;
184
+ margin-bottom: -2px;
185
+ -webkit-border-radius: 5px 5px 5px 0;
186
+ -moz-border-radius: 5px 5px 5px 0;
187
+ border-radius: 5px 5px 5px 0;
188
+ }
189
+
190
+ // Caret to indicate there is a submenu
179
191
  .dropdown-submenu > a:after {
180
192
  display: block;
181
193
  content: " ";
@@ -193,6 +205,21 @@
193
205
  border-left-color: $dropdownLinkColorHover;
194
206
  }
195
207
 
208
+ // Left aligned submenus
209
+ .dropdown-submenu.pull-left {
210
+ // Undo the float
211
+ // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.
212
+ float: none;
213
+
214
+ // Positioning the submenu
215
+ > .dropdown-menu {
216
+ left: -100%;
217
+ margin-left: 10px;
218
+ -webkit-border-radius: 6px 0 6px 6px;
219
+ -moz-border-radius: 6px 0 6px 6px;
220
+ border-radius: 6px 0 6px 6px;
221
+ }
222
+ }
196
223
 
197
224
  // Tweak nav headers
198
225
  // -----------------
@@ -206,5 +233,5 @@
206
233
  // ---------
207
234
  .typeahead {
208
235
  margin-top: 2px; // give it some space to breathe
209
- @include border-radius(4px);
236
+ @include border-radius($baseBorderRadius);
210
237
  }
@@ -81,11 +81,12 @@ input[type="color"],
81
81
  display: inline-block;
82
82
  height: $baseLineHeight;
83
83
  padding: 4px 6px;
84
- margin-bottom: 9px;
84
+ margin-bottom: $baseLineHeight / 2;;
85
85
  font-size: $baseFontSize;
86
86
  line-height: $baseLineHeight;
87
87
  color: $gray;
88
88
  @include border-radius($inputBorderRadius);
89
+ vertical-align: middle;
89
90
  }
90
91
 
91
92
  // Reset appearance properties for textual inputs and textarea
@@ -119,14 +120,14 @@ input[type="color"],
119
120
  background-color: $inputBackground;
120
121
  border: 1px solid $inputBorder;
121
122
  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
122
- @include transition(#{border linear .2s, box-shadow linear .2s});
123
+ @include transition(border linear .2s, box-shadow linear .2s);
123
124
 
124
125
  // Focus state
125
126
  &:focus {
126
127
  border-color: rgba(82,168,236,.8);
127
128
  outline: 0;
128
129
  outline: thin dotted \9; /* IE6-9 */
129
- @include box-shadow(#{inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)});
130
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6));
130
131
  }
131
132
  }
132
133
 
@@ -154,9 +155,9 @@ input[type="checkbox"] {
154
155
  // Set the height of select and file controls to match text inputs
155
156
  select,
156
157
  input[type="file"] {
157
- height: 30px; /* In IE7, the height of the select element cannot be changed by height, only font-size */
158
+ height: $inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */
158
159
  *margin-top: 4px; /* For IE7, add top margin to align select with labels */
159
- line-height: 30px;
160
+ line-height: $inputHeight;
160
161
  }
161
162
 
162
163
  // Make select elements obey height by applying a border
@@ -210,7 +211,7 @@ input[type="checkbox"]:focus {
210
211
  // Placeholder
211
212
  // -------------------------
212
213
 
213
- // Placeholder text gets special styles because when browsers invalidate entire lines if it doesnt understand a selector
214
+ // Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
214
215
  input,
215
216
  textarea {
216
217
  @include placeholder();
@@ -223,13 +224,13 @@ textarea {
223
224
  // Indent the labels to position radios/checkboxes as hanging
224
225
  .radio,
225
226
  .checkbox {
226
- min-height: 18px; // clear the floating input if there is no label text
227
- padding-left: 18px;
227
+ min-height: $baseLineHeight; // clear the floating input if there is no label text
228
+ padding-left: 20px;
228
229
  }
229
230
  .radio input[type="radio"],
230
231
  .checkbox input[type="checkbox"] {
231
232
  float: left;
232
- margin-left: -18px;
233
+ margin-left: -20px;
233
234
  }
234
235
 
235
236
  // Move the options list down to align with labels
@@ -304,8 +305,17 @@ textarea[class*="span"],
304
305
  .controls-row {
305
306
  @include clearfix(); // Clear the float from controls
306
307
  }
307
- .controls-row [class*="span"] {
308
- float: left; // Float to collapse white-space for proper grid alignment
308
+
309
+ // Float to collapse white-space for proper grid alignment
310
+ .controls-row [class*="span"],
311
+ // Redeclare the fluid grid collapse since we undo the float for inputs
312
+ .row-fluid .controls-row [class*="span"] {
313
+ float: left;
314
+ }
315
+ // Explicity set top padding on all checkboxes/radios, not just first-child
316
+ .controls-row .checkbox[class*="span"],
317
+ .controls-row .radio[class*="span"] {
318
+ padding-top: 5px;
309
319
  }
310
320
 
311
321
 
@@ -413,16 +423,23 @@ select:focus:required:invalid {
413
423
  .input-append,
414
424
  .input-prepend {
415
425
  margin-bottom: 5px;
416
- font-size: 0;
426
+ font-size: 0; // white space collapse hack
417
427
  white-space: nowrap; // Prevent span and input from separating
418
428
 
429
+ // Reset the white space collapse hack
430
+ input,
431
+ select,
432
+ .uneditable-input,
433
+ .dropdown-menu {
434
+ font-size: $baseFontSize;
435
+ }
436
+
419
437
  input,
420
438
  select,
421
439
  .uneditable-input {
422
440
  position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
423
441
  margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
424
442
  *margin-left: 0;
425
- font-size: $baseFontSize;
426
443
  vertical-align: top;
427
444
  @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
428
445
  // Make input on top when focused so blue border and shadow always show
@@ -454,6 +471,7 @@ select:focus:required:invalid {
454
471
  border-color: $green;
455
472
  }
456
473
  }
474
+
457
475
  .input-prepend {
458
476
  .add-on,
459
477
  .btn {
@@ -461,17 +479,23 @@ select:focus:required:invalid {
461
479
  }
462
480
  .add-on:first-child,
463
481
  .btn:first-child {
482
+ // FYI, `.btn:first-child` accounts for a button group that's prepended
464
483
  @include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
465
484
  }
466
485
  }
486
+
467
487
  .input-append {
468
488
  input,
469
489
  select,
470
490
  .uneditable-input {
471
491
  @include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
492
+ + .btn-group .btn {
493
+ @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
494
+ }
472
495
  }
473
496
  .add-on,
474
- .btn {
497
+ .btn,
498
+ .btn-group {
475
499
  margin-left: -1px;
476
500
  }
477
501
  .add-on:last-child,
@@ -479,12 +503,16 @@ select:focus:required:invalid {
479
503
  @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
480
504
  }
481
505
  }
506
+
482
507
  // Remove all border-radius for inputs with both prepend and append
483
508
  .input-prepend.input-append {
484
509
  input,
485
510
  select,
486
511
  .uneditable-input {
487
512
  @include border-radius(0);
513
+ + .btn-group .btn {
514
+ @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
515
+ }
488
516
  }
489
517
  .add-on:first-child,
490
518
  .btn:first-child {
@@ -496,10 +524,14 @@ select:focus:required:invalid {
496
524
  margin-left: -1px;
497
525
  @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
498
526
  }
527
+ .btn-group:first-child {
528
+ margin-left: 0;
529
+ }
499
530
  }
500
531
 
501
532
 
502
533
 
534
+
503
535
  // SEARCH FORM
504
536
  // -----------
505
537