anjlab-bootstrap-rails 3.0.0.rc1 → 3.0.0.rc2

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -12
  3. data/Rakefile +3 -2
  4. data/app/assets/javascripts/twitter/bootstrap.js +2 -1
  5. data/app/assets/javascripts/twitter/bootstrap/button.js +4 -2
  6. data/app/assets/javascripts/twitter/bootstrap/carousel.js +6 -2
  7. data/app/assets/javascripts/twitter/bootstrap/collapse.js +2 -2
  8. data/app/assets/javascripts/twitter/bootstrap/modal.js +19 -16
  9. data/app/assets/javascripts/twitter/bootstrap/popover.js +7 -5
  10. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +39 -21
  11. data/app/assets/javascripts/twitter/bootstrap/transition.js +2 -2
  12. data/app/assets/stylesheets/twitter/bootstrap/_alerts.scss +21 -19
  13. data/app/assets/stylesheets/twitter/bootstrap/_badges.scss +5 -5
  14. data/app/assets/stylesheets/twitter/bootstrap/_bootstrap.scss +1 -1
  15. data/app/assets/stylesheets/twitter/bootstrap/_button-groups.scss +96 -23
  16. data/app/assets/stylesheets/twitter/bootstrap/_buttons.scss +24 -18
  17. data/app/assets/stylesheets/twitter/bootstrap/_carousel.scss +10 -11
  18. data/app/assets/stylesheets/twitter/bootstrap/_close.scss +1 -1
  19. data/app/assets/stylesheets/twitter/bootstrap/_code.scss +4 -3
  20. data/app/assets/stylesheets/twitter/bootstrap/_dropdowns.scss +23 -18
  21. data/app/assets/stylesheets/twitter/bootstrap/_forms.scss +65 -160
  22. data/app/assets/stylesheets/twitter/bootstrap/_grid.scss +244 -59
  23. data/app/assets/stylesheets/twitter/bootstrap/_input-groups.scss +127 -0
  24. data/app/assets/stylesheets/twitter/bootstrap/_labels.scss +12 -4
  25. data/app/assets/stylesheets/twitter/bootstrap/_list-group.scss +36 -36
  26. data/app/assets/stylesheets/twitter/bootstrap/_mixins.scss +227 -52
  27. data/app/assets/stylesheets/twitter/bootstrap/_modals.scss +6 -9
  28. data/app/assets/stylesheets/twitter/bootstrap/_navbar.scss +268 -82
  29. data/app/assets/stylesheets/twitter/bootstrap/_navs.scss +10 -18
  30. data/app/assets/stylesheets/twitter/bootstrap/_pagination.scss +5 -41
  31. data/app/assets/stylesheets/twitter/bootstrap/_panels.scss +83 -57
  32. data/app/assets/stylesheets/twitter/bootstrap/_popovers.scss +0 -2
  33. data/app/assets/stylesheets/twitter/bootstrap/_progress-bars.scss +2 -8
  34. data/app/assets/stylesheets/twitter/bootstrap/_responsive-utilities.scss +76 -21
  35. data/app/assets/stylesheets/twitter/bootstrap/_scaffolding.scss +18 -2
  36. data/app/assets/stylesheets/twitter/bootstrap/_tables.scss +1 -1
  37. data/app/assets/stylesheets/twitter/bootstrap/_thumbnails.scss +2 -2
  38. data/app/assets/stylesheets/twitter/bootstrap/_tooltip.scss +1 -1
  39. data/app/assets/stylesheets/twitter/bootstrap/_type.scss +19 -13
  40. data/app/assets/stylesheets/twitter/bootstrap/_utilities.scss +3 -2
  41. data/app/assets/stylesheets/twitter/bootstrap/_variables.scss +86 -46
  42. data/app/assets/stylesheets/twitter/bootstrap/_wells.scss +2 -2
  43. data/lib/bootstrap-rails/version.rb +1 -1
  44. data/vendor/assets/javascripts/holder.js +419 -0
  45. metadata +4 -3
  46. data/app/assets/stylesheets/twitter/bootstrap/_accordion.scss +0 -31
@@ -0,0 +1,127 @@
1
+ //
2
+ // Input groups
3
+ // --------------------------------------------------
4
+
5
+ // Base styles
6
+ // -------------------------
7
+ .input-group {
8
+ position: relative; // For dropdowns
9
+ display: table;
10
+ border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
11
+
12
+ // Undo padding and float of grid classes
13
+ &.col {
14
+ float: none;
15
+ padding-left: 0;
16
+ padding-right: 0;
17
+ }
18
+
19
+ .form-control {
20
+ width: 100%;
21
+ margin-bottom: 0;
22
+ }
23
+ }
24
+
25
+ // Sizing options
26
+ //
27
+ // Remix the default form control sizing classes into new ones for easier
28
+ // manipulation.
29
+
30
+ .input-group-lg > .form-control,
31
+ .input-group-lg > .input-group-addon,
32
+ .input-group-lg > .input-group-btn > .btn { @extend .input-lg; }
33
+ .input-group-sm > .form-control,
34
+ .input-group-sm > .input-group-addon,
35
+ .input-group-lg > .input-group-btn > .btn { @extend .input-sm; }
36
+
37
+
38
+ // Display as table-cell
39
+ // -------------------------
40
+ .input-group-addon,
41
+ .input-group-btn,
42
+ .input-group .form-control {
43
+ display: table-cell;
44
+
45
+ &:not(:first-child):not(:last-child) {
46
+ border-radius: 0;
47
+ }
48
+ }
49
+ // Addon and addon wrapper for buttons
50
+ .input-group-addon,
51
+ .input-group-btn {
52
+ width: 1%;
53
+ white-space: nowrap;
54
+ vertical-align: middle; // Match the inputs
55
+ }
56
+
57
+ // Text input groups
58
+ // -------------------------
59
+ .input-group-addon {
60
+ padding: $padding-base-vertical $padding-base-horizontal;
61
+ font-size: $font-size-base;
62
+ font-weight: normal;
63
+ line-height: 1;
64
+ text-align: center;
65
+ background-color: $input-group-addon-bg;
66
+ border: 1px solid $input-group-addon-border-color;
67
+ border-radius: $border-radius-base;
68
+
69
+ // Sizing
70
+ &.input-sm {
71
+ padding: $padding-small-vertical $padding-small-horizontal;
72
+ font-size: $font-size-small;
73
+ border-radius: $border-radius-small;
74
+ }
75
+ &.input-lg {
76
+ padding: $padding-large-vertical $padding-large-horizontal;
77
+ font-size: $font-size-large;
78
+ border-radius: $border-radius-large;
79
+ }
80
+
81
+ // Nuke default margins from checkboxes and radios to vertically center within.
82
+ input[type="radio"],
83
+ input[type="checkbox"] {
84
+ margin-top: 0;
85
+ }
86
+ }
87
+
88
+ // Reset rounded corners
89
+ .input-group .form-control:first-child,
90
+ .input-group-addon:first-child,
91
+ .input-group-btn:first-child > .btn,
92
+ .input-group-btn:first-child > .dropdown-toggle,
93
+ .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
94
+ @include border-right-radius(0);
95
+ }
96
+ .input-group-addon:first-child {
97
+ border-right: 0;
98
+ }
99
+ .input-group .form-control:last-child,
100
+ .input-group-addon:last-child,
101
+ .input-group-btn:last-child > .btn,
102
+ .input-group-btn:last-child > .dropdown-toggle,
103
+ .input-group-btn:first-child > .btn:not(:first-child) {
104
+ @include border-left-radius(0);
105
+ }
106
+ .input-group-addon:last-child {
107
+ border-left: 0;
108
+ }
109
+
110
+ // Button input groups
111
+ // -------------------------
112
+ .input-group-btn {
113
+ position: relative;
114
+ white-space: nowrap;
115
+ }
116
+ .input-group-btn > .btn {
117
+ position: relative;
118
+ // Jankily prevent input button groups from wrapping
119
+ + .btn {
120
+ margin-left: -4px;
121
+ }
122
+ // Bring the "active" button to the front
123
+ &:hover,
124
+ &:active {
125
+ z-index: 2;
126
+ }
127
+ }
@@ -6,13 +6,12 @@
6
6
  display: inline;
7
7
  padding: .25em .6em;
8
8
  font-size: 75%;
9
- font-weight: 500;
9
+ font-weight: bold;
10
10
  line-height: 1;
11
11
  color: $label-color;
12
12
  text-align: center;
13
13
  white-space: nowrap;
14
- vertical-align: middle;
15
- background-color: $gray-light;
14
+ vertical-align: baseline;
16
15
  border-radius: .25em;
17
16
 
18
17
  // Add hover effects, but only for links
@@ -22,13 +21,22 @@
22
21
  color: $label-link-hover-color;
23
22
  text-decoration: none;
24
23
  cursor: pointer;
25
- background-color: darken($gray-light, 10%);
26
24
  }
27
25
  }
26
+
27
+ // Empty labels collapse automatically (not available in IE8)
28
+ &:empty {
29
+ display: none;
30
+ }
28
31
  }
29
32
 
30
33
  // Colors
31
34
  // Contextual variations (linked labels get darker on :hover)
35
+
36
+ .label-default {
37
+ @include label-variant($label-default-bg);
38
+ }
39
+
32
40
  .label-danger {
33
41
  @include label-variant($label-danger-bg);
34
42
  }
@@ -9,7 +9,6 @@
9
9
  // No need to set list-style: none; since .list-group-item is block level
10
10
  margin-bottom: 20px;
11
11
  padding-left: 0; // reset padding because ul and ol
12
- background-color: $list-group-bg;
13
12
  }
14
13
 
15
14
  // Individual list items
@@ -18,51 +17,56 @@
18
17
  .list-group-item {
19
18
  position: relative;
20
19
  display: block;
21
- padding: 10px 30px 10px 15px;
20
+ padding: 10px 15px;
22
21
  // Place the border on the list items and negative margin up for better styling
23
22
  margin-bottom: -1px;
23
+ background-color: $list-group-bg;
24
24
  border: 1px solid $list-group-border;
25
25
 
26
26
  // Round the first and last items
27
27
  &:first-child {
28
- @include border-top-radius($border-radius-base);
28
+ @include border-top-radius($list-group-border-radius);
29
29
  }
30
30
  &:last-child {
31
31
  margin-bottom: 0;
32
- @include border-bottom-radius($border-radius-base);
32
+ @include border-bottom-radius($list-group-border-radius);
33
33
  }
34
34
 
35
35
  // Align badges within list items
36
36
  > .badge {
37
37
  float: right;
38
- margin-right: -15px;
39
38
  }
40
- }
39
+ > .badge + .badge {
40
+ margin-right: 5px;
41
+ }
41
42
 
42
- // Custom content options
43
- // -------------------------
44
43
 
45
- .list-group-item-heading {
46
- margin-top: 0;
47
- margin-bottom: 5px;
48
- }
49
- .list-group-item-text {
50
- margin-bottom: 0;
51
- line-height: 1.3;
44
+ // Active class on item itself, not parent
45
+ &.active,
46
+ &.active:hover,
47
+ &.active:focus {
48
+ z-index: 2; // Place active items above their siblings for proper border styling
49
+ color: $list-group-active-color;
50
+ background-color: $list-group-active-bg;
51
+ border-color: $list-group-active-border;
52
+
53
+ // Force color to inherit for custom content
54
+ .list-group-item-heading {
55
+ color: inherit;
56
+ }
57
+ .list-group-item-text {
58
+ color: lighten($list-group-active-bg, 40%);
59
+ }
60
+ }
52
61
  }
53
62
 
54
63
  // Linked list items
55
- // -------------------------
56
-
57
- // Custom content within linked items
58
64
  a.list-group-item {
59
- // Colorize content accordingly
65
+ color: $list-group-link-color;
66
+
60
67
  .list-group-item-heading {
61
68
  color: $list-group-link-heading-color;
62
69
  }
63
- .list-group-item-text {
64
- color: $list-group-link-color;
65
- }
66
70
 
67
71
  // Hover state
68
72
  &:hover,
@@ -70,20 +74,16 @@ a.list-group-item {
70
74
  text-decoration: none;
71
75
  background-color: $list-group-hover-bg;
72
76
  }
77
+ }
73
78
 
74
- // Active class on item itself, not parent
75
- &.active {
76
- z-index: 2; // Place active items above their siblings for proper border styling
77
- color: $list-group-active-color;
78
- background-color: $list-group-active-bg;
79
- border-color: $list-group-active-border;
79
+ // Custom content options
80
+ // -------------------------
80
81
 
81
- // Force color to inherit for custom content
82
- .list-group-item-heading {
83
- color: inherit;
84
- }
85
- .list-group-item-text {
86
- color: lighten($list-group-active-bg, 40%);
87
- }
88
- }
82
+ .list-group-item-heading {
83
+ margin-top: 0;
84
+ margin-bottom: 5px;
85
+ }
86
+ .list-group-item-text {
87
+ margin-bottom: 0;
88
+ line-height: 1.3;
89
89
  }
@@ -129,22 +129,22 @@
129
129
  // Transformations
130
130
  @mixin rotate($degrees) {
131
131
  -webkit-transform: rotate($degrees);
132
- -ms-transform: rotate($degrees);
132
+ -ms-transform: rotate($degrees); // IE9+
133
133
  transform: rotate($degrees);
134
134
  }
135
135
  @mixin scale($ratio) {
136
136
  -webkit-transform: scale($ratio);
137
- -ms-transform: scale($ratio);
137
+ -ms-transform: scale($ratio); // IE9+
138
138
  transform: scale($ratio);
139
139
  }
140
140
  @mixin translate($x, $y) {
141
141
  -webkit-transform: translate($x, $y);
142
- -ms-transform: translate($x, $y);
142
+ -ms-transform: translate($x, $y); // IE9+
143
143
  transform: translate($x, $y);
144
144
  }
145
145
  @mixin skew($x, $y) {
146
146
  -webkit-transform: skew($x, $y);
147
- -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885
147
+ -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
148
148
  transform: skew($x, $y);
149
149
  }
150
150
  @mixin translate3d($x, $y, $z) {
@@ -157,19 +157,9 @@
157
157
  // Default value is `visible`, but can be changed to `hidden`
158
158
  // See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
159
159
  @mixin backface-visibility($visibility){
160
- -webkit-backface-visibility: $visibility;
161
- -moz-backface-visibility: $visibility;
162
- backface-visibility: $visibility;
163
- }
164
-
165
- // Background clipping
166
- @mixin background-clip($clip) {
167
- background-clip: $clip;
168
- }
169
-
170
- // Background sizing
171
- @mixin background-size($size) {
172
- background-size: $size;
160
+ -webkit-backface-visibility: $visibility;
161
+ -moz-backface-visibility: $visibility;
162
+ backface-visibility: $visibility;
173
163
  }
174
164
 
175
165
  // Box sizing
@@ -184,7 +174,7 @@
184
174
  @mixin user-select($select) {
185
175
  -webkit-user-select: $select;
186
176
  -moz-user-select: $select;
187
- -ms-user-select: $select;
177
+ -ms-user-select: $select; // IE10+
188
178
  -o-user-select: $select;
189
179
  user-select: $select;
190
180
  }
@@ -210,7 +200,7 @@
210
200
  word-wrap: break-word;
211
201
  -webkit-hyphens: $mode;
212
202
  -moz-hyphens: $mode;
213
- -ms-hyphens: $mode;
203
+ -ms-hyphens: $mode; // IE10+
214
204
  -o-hyphens: $mode;
215
205
  hyphens: $mode;
216
206
  }
@@ -232,8 +222,7 @@
232
222
  //
233
223
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
234
224
  // Color stops are not available in IE9 and below.
235
- @mixin gradient-horizontal($start-color: #555, $start-percent: 0%, $end-color: #333, $end-percent: 100%) {
236
- background-color: $end-color;
225
+ @mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
237
226
  background-image: -webkit-gradient(linear, $start-percent top, $end-percent top, from($start-color), to($end-color)); // Safari 4+, Chrome 2+
238
227
  background-image: -webkit-linear-gradient(left, color-stop($start-color $start-percent), color-stop($end-color $end-percent)); // Safari 5.1+, Chrome 10+
239
228
  background-image: -moz-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // FF 3.6+
@@ -246,8 +235,7 @@
246
235
  //
247
236
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
248
237
  // Color stops are not available in IE9 and below.
249
- @mixin gradient-vertical($start-color: #555, $start-percent: 0%, $end-color: #333, $end-percent: 100%) {
250
- background-color: $end-color;
238
+ @mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
251
239
  background-image: -webkit-gradient(linear, left $start-percent, left $end-percent, from($start-color), to($end-color)); // Safari 4+, Chrome 2+
252
240
  background-image: -webkit-linear-gradient(top, $start-color, $start-percent, $end-color, $end-percent); // Safari 5.1+, Chrome 10+
253
241
  background-image: -moz-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // FF 3.6+
@@ -257,7 +245,6 @@
257
245
  }
258
246
 
259
247
  @mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
260
- background-color: $end-color;
261
248
  background-repeat: repeat-x;
262
249
  background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1+, Chrome 10+
263
250
  background-image: -moz-linear-gradient($deg, $start-color, $end-color); // FF 3.6+
@@ -265,7 +252,6 @@
265
252
  }
266
253
 
267
254
  @mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
268
- background-color: mix($mid-color, $end-color, 80%);
269
255
  background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from($start-color), color-stop($color-stop, $mid-color), to($end-color));
270
256
  background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
271
257
  background-image: -moz-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
@@ -275,7 +261,6 @@
275
261
  }
276
262
 
277
263
  @mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
278
- background-color: mix($mid-color, $end-color, 80%);
279
264
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from($start-color), color-stop($color-stop, $mid-color), to($end-color));
280
265
  background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
281
266
  background-image: -moz-linear-gradient(top, $start-color, $mid-color $color-stop, $end-color);
@@ -284,7 +269,6 @@
284
269
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
285
270
  }
286
271
  @mixin gradient-radial($inner-color: #555, $outer-color: #333) {
287
- background-color: $outer-color;
288
272
  background-image: -webkit-gradient(radial, center center, 0, center center, 460, from($inner-color), to($outer-color));
289
273
  background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
290
274
  background-image: -moz-radial-gradient(circle, $inner-color, $outer-color);
@@ -292,7 +276,6 @@
292
276
  background-repeat: no-repeat;
293
277
  }
294
278
  @mixin gradient-striped($color: #555, $angle: 45deg) {
295
- background-color: $color;
296
279
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
297
280
  background-image: -webkit-linear-gradient($angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
298
281
  background-image: -moz-linear-gradient($angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
@@ -342,6 +325,25 @@
342
325
  background-color: $color;
343
326
  }
344
327
 
328
+ // Panels
329
+ // -------------------------
330
+ @mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
331
+ border-color: $border;
332
+ .panel-heading {
333
+ color: $heading-text-color;
334
+ background-color: $heading-bg-color;
335
+ border-color: $heading-border;
336
+ + .panel-collapse .panel-body {
337
+ border-top-color: $border;
338
+ }
339
+ }
340
+ .panel-footer {
341
+ + .panel-collapse .panel-body {
342
+ border-bottom-color: $border;
343
+ }
344
+ }
345
+ }
346
+
345
347
  // Alerts
346
348
  // -------------------------
347
349
  @mixin alert-variant($background, $border, $text-color) {
@@ -356,11 +358,11 @@
356
358
  }
357
359
  }
358
360
 
359
- // Button pseudo states
361
+ // Button variants
360
362
  // -------------------------
361
363
  // Easily pump out default styles, as well as :hover, :focus, :active,
362
364
  // and disabled options for all buttons
363
- @mixin btn-pseudo-states($color, $background, $border) {
365
+ @mixin button-variant($color, $background, $border) {
364
366
  color: $color;
365
367
  background-color: $background;
366
368
  border-color: $border;
@@ -369,8 +371,9 @@
369
371
  &:focus,
370
372
  &:active,
371
373
  &.active {
372
- background-color: darken($background, 5%);
373
- border-color: darken($border, 10%);
374
+ color: $color;
375
+ background-color: darken($background, 8%);
376
+ border-color: darken($border, 12%);
374
377
  }
375
378
 
376
379
  &.disabled,
@@ -387,6 +390,39 @@
387
390
  }
388
391
  }
389
392
 
393
+ // Button sizes
394
+ // -------------------------
395
+ @mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
396
+ padding: $padding-vertical $padding-horizontal;
397
+ font-size: $font-size;
398
+ line-height: $line-height;
399
+ border-radius: $border-radius;
400
+ }
401
+
402
+ // Pagination
403
+ // -------------------------
404
+ @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $border-radius) {
405
+ > li {
406
+ > a,
407
+ > span {
408
+ padding: $padding-vertical $padding-horizontal;
409
+ font-size: $font-size;
410
+ }
411
+ &:first-child {
412
+ > a,
413
+ > span {
414
+ @include border-left-radius($border-radius);
415
+ }
416
+ }
417
+ &:last-child {
418
+ > a,
419
+ > span {
420
+ @include border-right-radius($border-radius);
421
+ }
422
+ }
423
+ }
424
+ }
425
+
390
426
  // Labels
391
427
  // -------------------------
392
428
  @mixin label-variant($color) {
@@ -402,7 +438,7 @@
402
438
  // Navbar vertical align
403
439
  // -------------------------
404
440
  // Vertically center elements in the navbar.
405
- // Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
441
+ // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
406
442
  @mixin navbar-vertical-align($element-height) {
407
443
  margin-top: (($navbar-height - $element-height) / 2);
408
444
  margin-bottom: (($navbar-height - $element-height) / 2);
@@ -450,51 +486,136 @@
450
486
  }
451
487
 
452
488
  // Creates a wrapper for a series of columns
453
- @mixin make-row() {
489
+ @mixin make-row($gutter: $grid-gutter-width) {
454
490
  // Then clear the floated columns
455
491
  @include clearfix();
456
492
 
457
- @media (min-width: $screen-small) {
458
- margin-left: ($grid-gutter-width / -2);
459
- margin-right: ($grid-gutter-width / -2);
493
+ .container & {
494
+ @media (min-width: $screen-small) {
495
+ margin-left: ($gutter / -2);
496
+ margin-right: ($gutter / -2);
497
+ }
460
498
  }
461
499
 
462
500
  // Negative margin nested rows out to align the content of columns
463
501
  .row {
464
- margin-left: ($grid-gutter-width / -2);
465
- margin-right: ($grid-gutter-width / -2);
502
+ margin-left: ($gutter / -2);
503
+ margin-right: ($gutter / -2);
466
504
  }
467
505
  }
468
506
 
469
- // Generate the columns
470
- @mixin make-column($columns) {
507
+ // Generate the extra small columns
508
+ @mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
471
509
  position: relative;
510
+ float: left;
472
511
  // Prevent columns from collapsing when empty
473
512
  min-height: 1px;
474
513
  // Inner gutter via padding
475
- padding-left: ($grid-gutter-width / 2);
476
- padding-right: ($grid-gutter-width / 2);
514
+ padding-left: ($gutter / 2);
515
+ padding-right: ($gutter / 2);
516
+ $max-width: ($screen-small - 1);
477
517
 
478
518
  // Calculate width based on number of columns available
479
- @media (min-width: $grid-float-breakpoint) {
519
+ @media (max-width: $max-width) {
520
+ width: percentage(($columns / $grid-columns));
521
+ }
522
+ }
523
+
524
+ // Generate the small columns
525
+ @mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
526
+ position: relative;
527
+ // Prevent columns from collapsing when empty
528
+ min-height: 1px;
529
+ // Inner gutter via padding
530
+ padding-left: ($gutter / 2);
531
+ padding-right: ($gutter / 2);
532
+
533
+ // Calculate width based on number of columns available
534
+ @media (min-width: $screen-small) {
480
535
  float: left;
481
536
  width: percentage(($columns / $grid-columns));
482
537
  }
483
538
  }
484
539
 
485
- // Generate the column offsets
486
- @mixin make-column-offset($columns) {
487
- @media (min-width: $grid-float-breakpoint) {
540
+ // Generate the small column offsets
541
+ @mixin make-sm-column-offset($columns) {
542
+ @media (min-width: $screen-small) {
488
543
  margin-left: percentage(($columns / $grid-columns));
489
544
  }
490
545
  }
491
- @mixin make-column-push($columns) {
492
- @media (min-width: $grid-float-breakpoint) {
546
+ @mixin make-sm-column-push($columns) {
547
+ @media (min-width: $screen-small) {
493
548
  left: percentage(($columns / $grid-columns));
494
549
  }
495
550
  }
496
- @mixin make-column-pull($columns) {
497
- @media (min-width: $grid-float-breakpoint) {
551
+ @mixin make-sm-column-pull($columns) {
552
+ @media (min-width: $screen-small) {
553
+ right: percentage(($columns / $grid-columns));
554
+ }
555
+ }
556
+
557
+ // Generate the medium columns
558
+ @mixin make-md-column($columns, $gutter: $grid-gutter-width) {
559
+ position: relative;
560
+ // Prevent columns from collapsing when empty
561
+ min-height: 1px;
562
+ // Inner gutter via padding
563
+ padding-left: ($gutter / 2);
564
+ padding-right: ($gutter / 2);
565
+
566
+ // Calculate width based on number of columns available
567
+ @media (min-width: $screen-medium) {
568
+ float: left;
569
+ width: percentage(($columns / $grid-columns));
570
+ }
571
+ }
572
+
573
+ // Generate the large column offsets
574
+ @mixin make-md-column-offset($columns) {
575
+ @media (min-width: $screen-medium) {
576
+ margin-left: percentage(($columns / $grid-columns));
577
+ }
578
+ }
579
+ @mixin make-md-column-push($columns) {
580
+ @media (min-width: $screen-medium) {
581
+ left: percentage(($columns / $grid-columns));
582
+ }
583
+ }
584
+ @mixin make-md-column-pull($columns) {
585
+ @media (min-width: $screen-medium) {
586
+ right: percentage(($columns / $grid-columns));
587
+ }
588
+ }
589
+
590
+ // Generate the large columns
591
+ @mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
592
+ position: relative;
593
+ // Prevent columns from collapsing when empty
594
+ min-height: 1px;
595
+ // Inner gutter via padding
596
+ padding-left: ($gutter / 2);
597
+ padding-right: ($gutter / 2);
598
+
599
+ // Calculate width based on number of columns available
600
+ @media (min-width: $screen-large) {
601
+ float: left;
602
+ width: percentage(($columns / $grid-columns));
603
+ }
604
+ }
605
+
606
+ // Generate the large column offsets
607
+ @mixin make-lg-column-offset($columns) {
608
+ @media (min-width: $screen-large) {
609
+ margin-left: percentage(($columns / $grid-columns));
610
+ }
611
+ }
612
+ @mixin make-lg-column-push($columns) {
613
+ @media (min-width: $screen-large) {
614
+ left: percentage(($columns / $grid-columns));
615
+ }
616
+ }
617
+ @mixin make-lg-column-pull($columns) {
618
+ @media (min-width: $screen-large) {
498
619
  right: percentage(($columns / $grid-columns));
499
620
  }
500
621
  }
@@ -513,7 +634,6 @@
513
634
  }
514
635
  // Set the border and box shadow on specific inputs to match
515
636
  .form-control {
516
- padding-right: 32px; // to account for the feedback icon
517
637
  border-color: $border-color;
518
638
  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
519
639
  &:focus {
@@ -529,3 +649,58 @@
529
649
  background-color: $background-color;
530
650
  }
531
651
  }
652
+
653
+ // Form control focus state
654
+ //
655
+ // Generate a customized focus state and for any input with the specified color,
656
+ // which defaults to the `@input-focus-border` variable.
657
+ //
658
+ // We highly encourage you to not customize the default value, but instead use
659
+ // this to tweak colors on an as-needed basis. This aesthetic change is based on
660
+ // WebKit's default styles, but applicable to a wider range of browsers. Its
661
+ // usability and accessibility should be taken into account with any change.
662
+ //
663
+ // Example usage: change the default blue border and shadow to white for better
664
+ // contrast against a dark gray background.
665
+
666
+ @mixin form-control-focus($color: $input-border-focus) {
667
+ $color-rgba: rgba(red($color), green($color), blue($color), .6);
668
+ &:focus {
669
+ border-color: $color;
670
+ outline: 0;
671
+ @include box-shadow((inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba));
672
+ }
673
+ }
674
+
675
+ // Form control sizing
676
+ //
677
+ // Relative text size, padding, and border-radii changes for form controls. For
678
+ // horizontal sizing, wrap controls in the predefined grid classes. `<select>`
679
+ // element gets special love because it's special, and that's a fact!
680
+
681
+ @mixin input-size($selector, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
682
+ #{$selector} {
683
+ height: $input-height;
684
+ padding: $padding-vertical $padding-horizontal;
685
+ font-size: $font-size;
686
+ line-height: $line-height;
687
+ border-radius: $border-radius;
688
+ }
689
+
690
+ select#{$selector} {
691
+ height: $input-height;
692
+ line-height: $input-height;
693
+ }
694
+
695
+ textarea#{$selector} {
696
+ height: auto;
697
+ }
698
+ }
699
+
700
+ @mixin pull-right {
701
+ float: right !important;
702
+ }
703
+
704
+ @mixin pull-left {
705
+ float: left !important;
706
+ }