less-rails-bootstrap 2.3.3 → 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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
  }