less-rails-bootstrap 2.3.3 → 3.0.0.rc1

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 (72) hide show
  1. data/.gitignore +1 -0
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +7 -11
  4. data/lib/less/rails/bootstrap/version.rb +1 -1
  5. data/scripts/update_bootstrap.sh +37 -8
  6. data/test/cases/usage_css_spec.rb +15 -12
  7. data/test/cases/usage_js_spec.rb +4 -4
  8. data/test/dummy_app/app/assets/stylesheets/fonts.css.less +2 -0
  9. data/test/dummy_app/app/assets/stylesheets/framework.css.less +4 -2
  10. data/test/dummy_app/app/assets/stylesheets/individual.css.less +2 -2
  11. data/test/spec_helper.rb +1 -2
  12. data/vendor/assets/javascripts/twitter/bootstrap.js +0 -1
  13. data/vendor/assets/javascripts/twitter/bootstrap/affix.js +58 -49
  14. data/vendor/assets/javascripts/twitter/bootstrap/alert.js +36 -37
  15. data/vendor/assets/javascripts/twitter/bootstrap/button.js +41 -39
  16. data/vendor/assets/javascripts/twitter/bootstrap/carousel.js +131 -125
  17. data/vendor/assets/javascripts/twitter/bootstrap/collapse.js +108 -96
  18. data/vendor/assets/javascripts/twitter/bootstrap/dropdown.js +72 -87
  19. data/vendor/assets/javascripts/twitter/bootstrap/modal.js +149 -155
  20. data/vendor/assets/javascripts/twitter/bootstrap/popover.js +60 -59
  21. data/vendor/assets/javascripts/twitter/bootstrap/scrollspy.js +103 -107
  22. data/vendor/assets/javascripts/twitter/bootstrap/tab.js +73 -82
  23. data/vendor/assets/javascripts/twitter/bootstrap/tooltip.js +258 -255
  24. data/vendor/assets/javascripts/twitter/bootstrap/transition.js +34 -38
  25. data/vendor/frameworks/twitter/bootstrap/accordion.less +9 -12
  26. data/vendor/frameworks/twitter/bootstrap/alerts.less +43 -53
  27. data/vendor/frameworks/twitter/bootstrap/bootstrap.less +21 -21
  28. data/vendor/frameworks/twitter/bootstrap/breadcrumbs.less +7 -8
  29. data/vendor/frameworks/twitter/bootstrap/button-groups.less +93 -151
  30. data/vendor/frameworks/twitter/bootstrap/buttons.less +93 -164
  31. data/vendor/frameworks/twitter/bootstrap/carousel.less +110 -63
  32. data/vendor/frameworks/twitter/bootstrap/close.less +18 -17
  33. data/vendor/frameworks/twitter/bootstrap/code.less +14 -20
  34. data/vendor/frameworks/twitter/bootstrap/component-animations.less +10 -3
  35. data/vendor/frameworks/twitter/bootstrap/dropdowns.less +66 -143
  36. data/vendor/frameworks/twitter/bootstrap/forms.less +281 -548
  37. data/vendor/frameworks/twitter/bootstrap/grid.less +194 -11
  38. data/vendor/frameworks/twitter/bootstrap/media.less +8 -7
  39. data/vendor/frameworks/twitter/bootstrap/mixins.less +290 -446
  40. data/vendor/frameworks/twitter/bootstrap/modals.less +92 -51
  41. data/vendor/frameworks/twitter/bootstrap/navbar.less +285 -402
  42. data/vendor/frameworks/twitter/bootstrap/navs.less +176 -348
  43. data/vendor/frameworks/twitter/bootstrap/pager.less +45 -33
  44. data/vendor/frameworks/twitter/bootstrap/pagination.less +89 -104
  45. data/vendor/frameworks/twitter/bootstrap/popovers.less +53 -51
  46. data/vendor/frameworks/twitter/bootstrap/progress-bars.less +28 -45
  47. data/vendor/frameworks/twitter/bootstrap/responsive-utilities.less +92 -32
  48. data/vendor/frameworks/twitter/bootstrap/scaffolding.less +60 -18
  49. data/vendor/frameworks/twitter/bootstrap/tables.less +131 -164
  50. data/vendor/frameworks/twitter/bootstrap/thumbnails.less +20 -31
  51. data/vendor/frameworks/twitter/bootstrap/tooltip.less +45 -20
  52. data/vendor/frameworks/twitter/bootstrap/type.less +84 -99
  53. data/vendor/frameworks/twitter/bootstrap/utilities.less +17 -5
  54. data/vendor/frameworks/twitter/bootstrap/variables.less +446 -179
  55. data/vendor/frameworks/twitter/bootstrap/wells.less +5 -5
  56. metadata +41 -44
  57. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  58. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  59. data/vendor/assets/javascripts/twitter/bootstrap/typeahead.js +0 -335
  60. data/vendor/assets/stylesheets/twitter/bootstrap-responsive.css.less +0 -1
  61. data/vendor/assets/stylesheets/twitter/bootstrap.css.less +0 -1
  62. data/vendor/frameworks/twitter/bootstrap.less +0 -1
  63. data/vendor/frameworks/twitter/bootstrap/hero-unit.less +0 -25
  64. data/vendor/frameworks/twitter/bootstrap/labels-badges.less +0 -84
  65. data/vendor/frameworks/twitter/bootstrap/layouts.less +0 -16
  66. data/vendor/frameworks/twitter/bootstrap/reset.less +0 -216
  67. data/vendor/frameworks/twitter/bootstrap/responsive-1200px-min.less +0 -28
  68. data/vendor/frameworks/twitter/bootstrap/responsive-767px-max.less +0 -193
  69. data/vendor/frameworks/twitter/bootstrap/responsive-768px-979px.less +0 -19
  70. data/vendor/frameworks/twitter/bootstrap/responsive-navbar.less +0 -189
  71. data/vendor/frameworks/twitter/bootstrap/responsive.less +0 -48
  72. data/vendor/frameworks/twitter/bootstrap/sprites.less +0 -197
@@ -3,407 +3,235 @@
3
3
  // --------------------------------------------------
4
4
 
5
5
 
6
- // BASE CLASS
7
- // ----------
6
+ // Base class
7
+ // --------------------------------------------------
8
8
 
9
9
  .nav {
10
- margin-left: 0;
11
- margin-bottom: @baseLineHeight;
10
+ margin-bottom: 0;
11
+ padding-left: 0; // Override default ul/ol
12
12
  list-style: none;
13
- }
14
-
15
- // Make links block level
16
- .nav > li > a {
17
- display: block;
18
- }
19
- .nav > li > a:hover,
20
- .nav > li > a:focus {
21
- text-decoration: none;
22
- background-color: @grayLighter;
23
- }
24
-
25
- // Prevent IE8 from misplacing imgs
26
- // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
27
- .nav > li > a > img {
28
- max-width: none;
29
- }
30
-
31
- // Redeclare pull classes because of specifity
32
- .nav > .pull-right {
33
- float: right;
34
- }
35
-
36
- // Nav headers (for dropdowns and lists)
37
- .nav-header {
38
- display: block;
39
- padding: 3px 15px;
40
- font-size: 11px;
41
- font-weight: bold;
42
- line-height: @baseLineHeight;
43
- color: @grayLight;
44
- text-shadow: 0 1px 0 rgba(255,255,255,.5);
45
- text-transform: uppercase;
46
- }
47
- // Space them out when they follow another list item (link)
48
- .nav li + .nav-header {
49
- margin-top: 9px;
50
- }
13
+ .clearfix();
51
14
 
15
+ > li {
16
+ position: relative;
17
+ display: block;
18
+
19
+ > a {
20
+ position: relative;
21
+ display: block;
22
+ padding: 10px 15px;
23
+ &:hover,
24
+ &:focus {
25
+ text-decoration: none;
26
+ background-color: @nav-link-hover-bg;
27
+ }
28
+ }
29
+
30
+ // Disabled state sets text to gray and nukes hover/tab effects
31
+ &.disabled > a {
32
+ color: @nav-disabled-link-color;
33
+
34
+ &:hover,
35
+ &:focus {
36
+ color: @nav-disabled-link-hover-color;
37
+ text-decoration: none;
38
+ background-color: transparent;
39
+ cursor: not-allowed;
40
+ }
41
+ }
42
+
43
+ // Space the headers out when they follow another list item (link)
44
+ + .nav-header {
45
+ margin-top: 9px;
46
+ }
47
+ }
52
48
 
49
+ // Open dropdowns
50
+ &.open > a {
51
+ &,
52
+ &:hover,
53
+ &:focus {
54
+ color: @nav-open-link-hover-color;
55
+ background-color: @link-color;
56
+ border-color: @link-color;
57
+ .caret {
58
+ border-top-color: @nav-open-caret-border-color;
59
+ border-bottom-color: @nav-open-caret-border-color;
60
+ }
61
+ }
62
+ }
53
63
 
54
- // NAV LIST
55
- // --------
64
+ // Redeclare pull classes because of specificity
65
+ // Todo: consider making these utilities !important to avoid this bullshit
66
+ > .pull-right {
67
+ float: right;
68
+ }
56
69
 
57
- .nav-list {
58
- padding-left: 15px;
59
- padding-right: 15px;
60
- margin-bottom: 0;
61
- }
62
- .nav-list > li > a,
63
- .nav-list .nav-header {
64
- margin-left: -15px;
65
- margin-right: -15px;
66
- text-shadow: 0 1px 0 rgba(255,255,255,.5);
67
- }
68
- .nav-list > li > a {
69
- padding: 3px 15px;
70
- }
71
- .nav-list > .active > a,
72
- .nav-list > .active > a:hover,
73
- .nav-list > .active > a:focus {
74
- color: @white;
75
- text-shadow: 0 -1px 0 rgba(0,0,0,.2);
76
- background-color: @linkColor;
77
- }
78
- .nav-list [class^="icon-"],
79
- .nav-list [class*=" icon-"] {
80
- margin-right: 2px;
81
- }
82
- // Dividers (basically an hr) within the dropdown
83
- .nav-list .divider {
84
- .nav-divider();
70
+ // Dividers (basically an hr) within the dropdown
71
+ .nav-divider {
72
+ .nav-divider();
73
+ }
85
74
  }
86
75
 
87
76
 
88
77
 
89
- // TABS AND PILLS
90
- // -------------
91
-
92
- // Common styles
93
- .nav-tabs,
94
- .nav-pills {
95
- .clearfix();
96
- }
97
- .nav-tabs > li,
98
- .nav-pills > li {
99
- float: left;
100
- }
101
- .nav-tabs > li > a,
102
- .nav-pills > li > a {
103
- padding-right: 12px;
104
- padding-left: 12px;
105
- margin-right: 2px;
106
- line-height: 14px; // keeps the overall height an even number
107
- }
78
+ // Nav variations
79
+ // --------------------------------------------------
108
80
 
109
- // TABS
110
- // ----
81
+ // Tabs
82
+ // -------------------------
111
83
 
112
84
  // Give the tabs something to sit on
113
85
  .nav-tabs {
114
- border-bottom: 1px solid #ddd;
115
- }
116
- // Make the list-items overlay the bottom border
117
- .nav-tabs > li {
118
- margin-bottom: -1px;
119
- }
120
- // Actual tabs (as links)
121
- .nav-tabs > li > a {
122
- padding-top: 8px;
123
- padding-bottom: 8px;
124
- line-height: @baseLineHeight;
125
- border: 1px solid transparent;
126
- .border-radius(4px 4px 0 0);
127
- &:hover,
128
- &:focus {
129
- border-color: @grayLighter @grayLighter #ddd;
86
+ border-bottom: 1px solid @nav-tabs-border-color;
87
+ > li {
88
+ float: left;
89
+ // Make the list-items overlay the bottom border
90
+ margin-bottom: -1px;
91
+
92
+ // Actual tabs (as links)
93
+ > a {
94
+ margin-right: 2px;
95
+ line-height: @line-height-base;
96
+ border: 1px solid transparent;
97
+ border-radius: @border-radius-base @border-radius-base 0 0;
98
+ &:hover {
99
+ border-color: @nav-tabs-link-hover-border-color;
100
+ }
101
+ }
102
+
103
+ // Active state, and it's :hover to override normal :hover
104
+ &.active > a {
105
+ &,
106
+ &:hover,
107
+ &:focus {
108
+ color: @nav-tabs-active-link-hover-color;
109
+ background-color: @nav-tabs-active-link-hover-bg;
110
+ border: 1px solid @nav-tabs-active-link-hover-border-color;
111
+ border-bottom-color: transparent;
112
+ cursor: default;
113
+ }
114
+ }
115
+ }
116
+ // pulling this in mainly for less shorthand
117
+ &.nav-justified {
118
+ .nav-justified();
119
+ .nav-tabs-justified();
130
120
  }
131
- }
132
- // Active state, and it's :hover/:focus to override normal :hover/:focus
133
- .nav-tabs > .active > a,
134
- .nav-tabs > .active > a:hover,
135
- .nav-tabs > .active > a:focus {
136
- color: @gray;
137
- background-color: @bodyBackground;
138
- border: 1px solid #ddd;
139
- border-bottom-color: transparent;
140
- cursor: default;
141
- }
142
-
143
-
144
- // PILLS
145
- // -----
146
-
147
- // Links rendered as pills
148
- .nav-pills > li > a {
149
- padding-top: 8px;
150
- padding-bottom: 8px;
151
- margin-top: 2px;
152
- margin-bottom: 2px;
153
- .border-radius(5px);
154
- }
155
-
156
- // Active state
157
- .nav-pills > .active > a,
158
- .nav-pills > .active > a:hover,
159
- .nav-pills > .active > a:focus {
160
- color: @white;
161
- background-color: @linkColor;
162
- }
163
-
164
-
165
-
166
- // STACKED NAV
167
- // -----------
168
-
169
- // Stacked tabs and pills
170
- .nav-stacked > li {
171
- float: none;
172
- }
173
- .nav-stacked > li > a {
174
- margin-right: 0; // no need for the gap between nav items
175
121
  }
176
122
 
177
- // Tabs
178
- .nav-tabs.nav-stacked {
179
- border-bottom: 0;
180
- }
181
- .nav-tabs.nav-stacked > li > a {
182
- border: 1px solid #ddd;
183
- .border-radius(0);
184
- }
185
- .nav-tabs.nav-stacked > li:first-child > a {
186
- .border-top-radius(4px);
187
- }
188
- .nav-tabs.nav-stacked > li:last-child > a {
189
- .border-bottom-radius(4px);
190
- }
191
- .nav-tabs.nav-stacked > li > a:hover,
192
- .nav-tabs.nav-stacked > li > a:focus {
193
- border-color: #ddd;
194
- z-index: 2;
195
- }
196
123
 
197
124
  // Pills
198
- .nav-pills.nav-stacked > li > a {
199
- margin-bottom: 3px;
200
- }
201
- .nav-pills.nav-stacked > li:last-child > a {
202
- margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
125
+ // -------------------------
126
+ .nav-pills {
127
+ > li {
128
+ float: left;
129
+
130
+ // Links rendered as pills
131
+ > a {
132
+ border-radius: 5px;
133
+ }
134
+ + li {
135
+ margin-left: 2px;
136
+ }
137
+
138
+ // Active state
139
+ &.active > a {
140
+ &,
141
+ &:hover,
142
+ &:focus {
143
+ color: @nav-pills-active-link-hover-color;
144
+ background-color: @nav-pills-active-link-hover-bg;
145
+ }
146
+ }
147
+ }
203
148
  }
204
149
 
205
150
 
206
-
207
- // DROPDOWNS
208
- // ---------
209
-
210
- .nav-tabs .dropdown-menu {
211
- .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu
212
- }
213
- .nav-pills .dropdown-menu {
214
- .border-radius(6px); // make rounded corners match the pills
151
+ // Stacked pills
152
+ .nav-stacked {
153
+ > li {
154
+ float: none;
155
+ + li {
156
+ > a {
157
+ margin-top: 2px;
158
+ margin-left: 0; // no need for this gap between nav items
159
+ }
160
+ }
161
+ }
215
162
  }
216
163
 
217
- // Default dropdown links
164
+ // Justified nav links
218
165
  // -------------------------
219
- // Make carets use linkColor to start
220
- .nav .dropdown-toggle .caret {
221
- border-top-color: @linkColor;
222
- border-bottom-color: @linkColor;
223
- margin-top: 6px;
224
- }
225
- .nav .dropdown-toggle:hover .caret,
226
- .nav .dropdown-toggle:focus .caret {
227
- border-top-color: @linkColorHover;
228
- border-bottom-color: @linkColorHover;
229
- }
230
- /* move down carets for tabs */
231
- .nav-tabs .dropdown-toggle .caret {
232
- margin-top: 8px;
233
- }
234
166
 
235
- // Active dropdown links
236
- // -------------------------
237
- .nav .active .dropdown-toggle .caret {
238
- border-top-color: #fff;
239
- border-bottom-color: #fff;
240
- }
241
- .nav-tabs .active .dropdown-toggle .caret {
242
- border-top-color: @gray;
243
- border-bottom-color: @gray;
167
+ .nav-justified {
168
+ width: 100%;
169
+ > li {
170
+ float: none;
171
+ display: table-cell;
172
+ width: 1%;
173
+ > a {
174
+ text-align: center;
175
+ }
176
+ }
244
177
  }
245
178
 
246
- // Active:hover/:focus dropdown links
247
- // -------------------------
248
- .nav > .dropdown.active > a:hover,
249
- .nav > .dropdown.active > a:focus {
250
- cursor: pointer;
251
- }
179
+ // Move borders to anchors instead of bottom of list
180
+ .nav-tabs-justified {
181
+ border-bottom: 0;
182
+ > li > a {
183
+ border-bottom: 1px solid @nav-tabs-justified-link-border-color;
252
184
 
253
- // Open dropdowns
254
- // -------------------------
255
- .nav-tabs .open .dropdown-toggle,
256
- .nav-pills .open .dropdown-toggle,
257
- .nav > li.dropdown.open.active > a:hover,
258
- .nav > li.dropdown.open.active > a:focus {
259
- color: @white;
260
- background-color: @grayLight;
261
- border-color: @grayLight;
262
- }
263
- .nav li.dropdown.open .caret,
264
- .nav li.dropdown.open.active .caret,
265
- .nav li.dropdown.open a:hover .caret,
266
- .nav li.dropdown.open a:focus .caret {
267
- border-top-color: @white;
268
- border-bottom-color: @white;
269
- .opacity(100);
270
- }
185
+ // Override margin from .nav-tabs
186
+ margin-right: 0;
187
+ }
188
+ > .active > a {
189
+ border-bottom-color: @nav-tabs-justified-active-link-border-color;
190
+ }
271
191
 
272
- // Dropdowns in stacked tabs
273
- .tabs-stacked .open > a:hover,
274
- .tabs-stacked .open > a:focus {
275
- border-color: @grayLight;
276
192
  }
277
193
 
278
194
 
279
195
 
280
- // TABBABLE
281
- // --------
282
-
283
-
284
- // COMMON STYLES
285
- // -------------
196
+ // Tabbable tabs
197
+ // -------------------------
286
198
 
287
199
  // Clear any floats
288
200
  .tabbable {
289
201
  .clearfix();
290
202
  }
291
- .tab-content {
292
- overflow: auto; // prevent content from running below tabs
293
- }
294
-
295
- // Remove border on bottom, left, right
296
- .tabs-below > .nav-tabs,
297
- .tabs-right > .nav-tabs,
298
- .tabs-left > .nav-tabs {
299
- border-bottom: 0;
300
- }
301
203
 
302
204
  // Show/hide tabbable areas
303
205
  .tab-content > .tab-pane,
304
206
  .pill-content > .pill-pane {
305
207
  display: none;
306
208
  }
307
- .tab-content > .active,
308
- .pill-content > .active {
309
- display: block;
310
- }
311
-
312
-
313
- // BOTTOM
314
- // ------
315
-
316
- .tabs-below > .nav-tabs {
317
- border-top: 1px solid #ddd;
318
- }
319
- .tabs-below > .nav-tabs > li {
320
- margin-top: -1px;
321
- margin-bottom: 0;
322
- }
323
- .tabs-below > .nav-tabs > li > a {
324
- .border-radius(0 0 4px 4px);
325
- &:hover,
326
- &:focus {
327
- border-bottom-color: transparent;
328
- border-top-color: #ddd;
209
+ .tab-content,
210
+ .pill-content {
211
+ > .active {
212
+ display: block;
329
213
  }
330
214
  }
331
- .tabs-below > .nav-tabs > .active > a,
332
- .tabs-below > .nav-tabs > .active > a:hover,
333
- .tabs-below > .nav-tabs > .active > a:focus {
334
- border-color: transparent #ddd #ddd #ddd;
335
- }
336
215
 
337
- // LEFT & RIGHT
338
- // ------------
339
216
 
340
- // Common styles
341
- .tabs-left > .nav-tabs > li,
342
- .tabs-right > .nav-tabs > li {
343
- float: none;
344
- }
345
- .tabs-left > .nav-tabs > li > a,
346
- .tabs-right > .nav-tabs > li > a {
347
- min-width: 74px;
348
- margin-right: 0;
349
- margin-bottom: 3px;
350
- }
351
217
 
352
- // Tabs on the left
353
- .tabs-left > .nav-tabs {
354
- float: left;
355
- margin-right: 19px;
356
- border-right: 1px solid #ddd;
357
- }
358
- .tabs-left > .nav-tabs > li > a {
359
- margin-right: -1px;
360
- .border-radius(4px 0 0 4px);
361
- }
362
- .tabs-left > .nav-tabs > li > a:hover,
363
- .tabs-left > .nav-tabs > li > a:focus {
364
- border-color: @grayLighter #ddd @grayLighter @grayLighter;
365
- }
366
- .tabs-left > .nav-tabs .active > a,
367
- .tabs-left > .nav-tabs .active > a:hover,
368
- .tabs-left > .nav-tabs .active > a:focus {
369
- border-color: #ddd transparent #ddd #ddd;
370
- *border-right-color: @white;
371
- }
218
+ // Dropdowns
219
+ // -------------------------
372
220
 
373
- // Tabs on the right
374
- .tabs-right > .nav-tabs {
375
- float: right;
376
- margin-left: 19px;
377
- border-left: 1px solid #ddd;
378
- }
379
- .tabs-right > .nav-tabs > li > a {
380
- margin-left: -1px;
381
- .border-radius(0 4px 4px 0);
382
- }
383
- .tabs-right > .nav-tabs > li > a:hover,
384
- .tabs-right > .nav-tabs > li > a:focus {
385
- border-color: @grayLighter @grayLighter @grayLighter #ddd;
221
+ // Make dropdown carets use link color in navs
222
+ .nav .caret {
223
+ border-top-color: @link-color;
224
+ border-bottom-color: @link-color;
386
225
  }
387
- .tabs-right > .nav-tabs .active > a,
388
- .tabs-right > .nav-tabs .active > a:hover,
389
- .tabs-right > .nav-tabs .active > a:focus {
390
- border-color: #ddd #ddd #ddd transparent;
391
- *border-left-color: @white;
226
+ .nav a:hover .caret {
227
+ border-top-color: @link-hover-color;
228
+ border-bottom-color: @link-hover-color;
392
229
  }
393
230
 
394
-
395
-
396
- // DISABLED STATES
397
- // ---------------
398
-
399
- // Gray out text
400
- .nav > .disabled > a {
401
- color: @grayLight;
402
- }
403
- // Nuke hover/focus effects
404
- .nav > .disabled > a:hover,
405
- .nav > .disabled > a:focus {
406
- text-decoration: none;
407
- background-color: transparent;
408
- cursor: default;
231
+ // Specific dropdowns
232
+ .nav-tabs .dropdown-menu {
233
+ // make dropdown border overlap tab border
234
+ margin-top: -1px;
235
+ // Remove the top rounded corners here since there is a hard edge above the menu
236
+ .border-top-radius(0);
409
237
  }