twitter-bootstrap-rails 2.0.6 → 2.0.7
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of twitter-bootstrap-rails might be problematic. Click here for more details.
- data/README.md +40 -22
- data/app/helpers/flash_block_helper.rb +17 -0
- data/app/helpers/twitter_breadcrumbs_helper.rb +5 -0
- data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +14 -0
- data/lib/generators/bootstrap/layout/templates/layout.html.erb +1 -5
- data/lib/generators/bootstrap/layout/templates/layout.html.haml +1 -5
- data/lib/generators/bootstrap/layout/templates/layout.html.slim +1 -5
- data/lib/generators/bootstrap/themed/templates/show.html.erb +4 -4
- data/lib/twitter/bootstrap/rails/engine.rb +1 -1
- data/lib/twitter/bootstrap/rails/version.rb +1 -1
- data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
- data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +28 -32
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-button.js +29 -33
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +27 -19
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +45 -26
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +18 -10
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +25 -17
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +13 -10
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +43 -17
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +12 -7
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +40 -35
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +30 -20
- data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +25 -11
- data/vendor/toolkit/twitter/bootstrap/accordion.less +5 -0
- data/vendor/toolkit/twitter/bootstrap/bootstrap.less +2 -3
- data/vendor/toolkit/twitter/bootstrap/button-groups.less +55 -36
- data/vendor/toolkit/twitter/bootstrap/buttons.less +15 -11
- data/vendor/toolkit/twitter/bootstrap/close.less +12 -1
- data/vendor/toolkit/twitter/bootstrap/code.less +4 -4
- data/vendor/toolkit/twitter/bootstrap/component-animations.less +5 -5
- data/vendor/toolkit/twitter/bootstrap/dropdowns.less +15 -20
- data/vendor/toolkit/twitter/bootstrap/forms.less +58 -29
- data/vendor/toolkit/twitter/bootstrap/labels-badges.less +55 -0
- data/vendor/toolkit/twitter/bootstrap/layouts.less +1 -1
- data/vendor/toolkit/twitter/bootstrap/mixins.less +53 -36
- data/vendor/toolkit/twitter/bootstrap/modals.less +1 -1
- data/vendor/toolkit/twitter/bootstrap/navbar.less +64 -41
- data/vendor/toolkit/twitter/bootstrap/navs.less +36 -36
- data/vendor/toolkit/twitter/bootstrap/progress-bars.less +14 -6
- data/vendor/toolkit/twitter/bootstrap/reset.less +3 -3
- data/vendor/toolkit/twitter/bootstrap/responsive-1200px-min.less +26 -0
- data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +149 -0
- data/vendor/toolkit/twitter/bootstrap/responsive-768px-979px.less +17 -0
- data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +146 -0
- data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +41 -0
- data/vendor/toolkit/twitter/bootstrap/responsive.less +14 -337
- data/vendor/toolkit/twitter/bootstrap/sprites.less +39 -6
- data/vendor/toolkit/twitter/bootstrap/tables.less +22 -5
- data/vendor/toolkit/twitter/bootstrap/thumbnails.less +14 -2
- data/vendor/toolkit/twitter/bootstrap/type.less +7 -6
- data/vendor/toolkit/twitter/bootstrap/variables.less +10 -6
- metadata +31 -11
@@ -21,6 +21,11 @@
|
|
21
21
|
background-color: @grayLighter;
|
22
22
|
}
|
23
23
|
|
24
|
+
// Redeclare pull classes because of specifity
|
25
|
+
.nav > .pull-right {
|
26
|
+
float: right;
|
27
|
+
}
|
28
|
+
|
24
29
|
// Nav headers (for dropdowns and lists)
|
25
30
|
.nav .nav-header {
|
26
31
|
display: block;
|
@@ -98,12 +103,10 @@
|
|
98
103
|
.nav-tabs {
|
99
104
|
border-bottom: 1px solid #ddd;
|
100
105
|
}
|
101
|
-
|
102
106
|
// Make the list-items overlay the bottom border
|
103
107
|
.nav-tabs > li {
|
104
108
|
margin-bottom: -1px;
|
105
109
|
}
|
106
|
-
|
107
110
|
// Actual tabs (as links)
|
108
111
|
.nav-tabs > li > a {
|
109
112
|
padding-top: 8px;
|
@@ -125,6 +128,7 @@
|
|
125
128
|
cursor: default;
|
126
129
|
}
|
127
130
|
|
131
|
+
|
128
132
|
// PILLS
|
129
133
|
// -----
|
130
134
|
|
@@ -189,14 +193,11 @@
|
|
189
193
|
// DROPDOWNS
|
190
194
|
// ---------
|
191
195
|
|
192
|
-
|
193
|
-
.
|
194
|
-
.nav-pills .dropdown-menu {
|
195
|
-
margin-top: 1px;
|
196
|
-
border-width: 1px;
|
196
|
+
.nav-tabs .dropdown-menu {
|
197
|
+
.border-radius(0 0 5px 5px); // remove the top rounded corners here since there is a hard edge above the menu
|
197
198
|
}
|
198
199
|
.nav-pills .dropdown-menu {
|
199
|
-
.border-radius(4px);
|
200
|
+
.border-radius(4px); // make rounded corners match the pills
|
200
201
|
}
|
201
202
|
|
202
203
|
// Default dropdown links
|
@@ -233,14 +234,14 @@
|
|
233
234
|
// -------------------------
|
234
235
|
.nav-tabs .open .dropdown-toggle,
|
235
236
|
.nav-pills .open .dropdown-toggle,
|
236
|
-
.nav > .open.active > a:hover {
|
237
|
+
.nav > li.dropdown.open.active > a:hover {
|
237
238
|
color: @white;
|
238
239
|
background-color: @grayLight;
|
239
240
|
border-color: @grayLight;
|
240
241
|
}
|
241
|
-
.nav .open .caret,
|
242
|
-
.nav .open.active .caret,
|
243
|
-
.nav .open a:hover .caret {
|
242
|
+
.nav li.dropdown.open .caret,
|
243
|
+
.nav li.dropdown.open.active .caret,
|
244
|
+
.nav li.dropdown.open a:hover .caret {
|
244
245
|
border-top-color: @white;
|
245
246
|
border-bottom-color: @white;
|
246
247
|
.opacity(100);
|
@@ -265,14 +266,13 @@
|
|
265
266
|
.clearfix();
|
266
267
|
}
|
267
268
|
.tab-content {
|
268
|
-
|
269
|
-
width: 100%;
|
269
|
+
overflow: auto; // prevent content from running below tabs
|
270
270
|
}
|
271
271
|
|
272
272
|
// Remove border on bottom, left, right
|
273
|
-
.tabs-below .nav-tabs,
|
274
|
-
.tabs-right .nav-tabs,
|
275
|
-
.tabs-left .nav-tabs {
|
273
|
+
.tabs-below > .nav-tabs,
|
274
|
+
.tabs-right > .nav-tabs,
|
275
|
+
.tabs-left > .nav-tabs {
|
276
276
|
border-bottom: 0;
|
277
277
|
}
|
278
278
|
|
@@ -290,22 +290,22 @@
|
|
290
290
|
// BOTTOM
|
291
291
|
// ------
|
292
292
|
|
293
|
-
.tabs-below .nav-tabs {
|
293
|
+
.tabs-below > .nav-tabs {
|
294
294
|
border-top: 1px solid #ddd;
|
295
295
|
}
|
296
|
-
.tabs-below .nav-tabs > li {
|
296
|
+
.tabs-below > .nav-tabs > li {
|
297
297
|
margin-top: -1px;
|
298
298
|
margin-bottom: 0;
|
299
299
|
}
|
300
|
-
.tabs-below .nav-tabs > li > a {
|
300
|
+
.tabs-below > .nav-tabs > li > a {
|
301
301
|
.border-radius(0 0 4px 4px);
|
302
302
|
&:hover {
|
303
303
|
border-bottom-color: transparent;
|
304
304
|
border-top-color: #ddd;
|
305
305
|
}
|
306
306
|
}
|
307
|
-
.tabs-below .nav-tabs .active > a,
|
308
|
-
.tabs-below .nav-tabs .active > a:hover {
|
307
|
+
.tabs-below > .nav-tabs > .active > a,
|
308
|
+
.tabs-below > .nav-tabs > .active > a:hover {
|
309
309
|
border-color: transparent #ddd #ddd #ddd;
|
310
310
|
}
|
311
311
|
|
@@ -313,51 +313,51 @@
|
|
313
313
|
// ------------
|
314
314
|
|
315
315
|
// Common styles
|
316
|
-
.tabs-left .nav-tabs > li,
|
317
|
-
.tabs-right .nav-tabs > li {
|
316
|
+
.tabs-left > .nav-tabs > li,
|
317
|
+
.tabs-right > .nav-tabs > li {
|
318
318
|
float: none;
|
319
319
|
}
|
320
|
-
.tabs-left .nav-tabs > li > a,
|
321
|
-
.tabs-right .nav-tabs > li > a {
|
320
|
+
.tabs-left > .nav-tabs > li > a,
|
321
|
+
.tabs-right > .nav-tabs > li > a {
|
322
322
|
min-width: 74px;
|
323
323
|
margin-right: 0;
|
324
324
|
margin-bottom: 3px;
|
325
325
|
}
|
326
326
|
|
327
327
|
// Tabs on the left
|
328
|
-
.tabs-left .nav-tabs {
|
328
|
+
.tabs-left > .nav-tabs {
|
329
329
|
float: left;
|
330
330
|
margin-right: 19px;
|
331
331
|
border-right: 1px solid #ddd;
|
332
332
|
}
|
333
|
-
.tabs-left .nav-tabs > li > a {
|
333
|
+
.tabs-left > .nav-tabs > li > a {
|
334
334
|
margin-right: -1px;
|
335
335
|
.border-radius(4px 0 0 4px);
|
336
336
|
}
|
337
|
-
.tabs-left .nav-tabs > li > a:hover {
|
337
|
+
.tabs-left > .nav-tabs > li > a:hover {
|
338
338
|
border-color: @grayLighter #ddd @grayLighter @grayLighter;
|
339
339
|
}
|
340
|
-
.tabs-left .nav-tabs .active > a,
|
341
|
-
.tabs-left .nav-tabs .active > a:hover {
|
340
|
+
.tabs-left > .nav-tabs .active > a,
|
341
|
+
.tabs-left > .nav-tabs .active > a:hover {
|
342
342
|
border-color: #ddd transparent #ddd #ddd;
|
343
343
|
*border-right-color: @white;
|
344
344
|
}
|
345
345
|
|
346
346
|
// Tabs on the right
|
347
|
-
.tabs-right .nav-tabs {
|
347
|
+
.tabs-right > .nav-tabs {
|
348
348
|
float: right;
|
349
349
|
margin-left: 19px;
|
350
350
|
border-left: 1px solid #ddd;
|
351
351
|
}
|
352
|
-
.tabs-right .nav-tabs > li > a {
|
352
|
+
.tabs-right > .nav-tabs > li > a {
|
353
353
|
margin-left: -1px;
|
354
354
|
.border-radius(0 4px 4px 0);
|
355
355
|
}
|
356
|
-
.tabs-right .nav-tabs > li > a:hover {
|
356
|
+
.tabs-right > .nav-tabs > li > a:hover {
|
357
357
|
border-color: @grayLighter @grayLighter @grayLighter #ddd;
|
358
358
|
}
|
359
|
-
.tabs-right .nav-tabs .active > a,
|
360
|
-
.tabs-right .nav-tabs .active > a:hover {
|
359
|
+
.tabs-right > .nav-tabs .active > a,
|
360
|
+
.tabs-right > .nav-tabs .active > a:hover {
|
361
361
|
border-color: #ddd #ddd #ddd transparent;
|
362
362
|
*border-left-color: @white;
|
363
363
|
}
|
@@ -7,26 +7,32 @@
|
|
7
7
|
|
8
8
|
// Webkit
|
9
9
|
@-webkit-keyframes progress-bar-stripes {
|
10
|
-
from { background-position:
|
11
|
-
to { background-position:
|
10
|
+
from { background-position: 40px 0; }
|
11
|
+
to { background-position: 0 0; }
|
12
12
|
}
|
13
13
|
|
14
14
|
// Firefox
|
15
15
|
@-moz-keyframes progress-bar-stripes {
|
16
|
-
from { background-position:
|
17
|
-
to { background-position:
|
16
|
+
from { background-position: 40px 0; }
|
17
|
+
to { background-position: 0 0; }
|
18
18
|
}
|
19
19
|
|
20
20
|
// IE9
|
21
21
|
@-ms-keyframes progress-bar-stripes {
|
22
|
+
from { background-position: 40px 0; }
|
23
|
+
to { background-position: 0 0; }
|
24
|
+
}
|
25
|
+
|
26
|
+
// Opera
|
27
|
+
@-o-keyframes progress-bar-stripes {
|
22
28
|
from { background-position: 0 0; }
|
23
29
|
to { background-position: 40px 0; }
|
24
30
|
}
|
25
31
|
|
26
32
|
// Spec
|
27
33
|
@keyframes progress-bar-stripes {
|
28
|
-
from { background-position:
|
29
|
-
to { background-position:
|
34
|
+
from { background-position: 40px 0; }
|
35
|
+
to { background-position: 0 0; }
|
30
36
|
}
|
31
37
|
|
32
38
|
|
@@ -68,6 +74,8 @@
|
|
68
74
|
.progress.active .bar {
|
69
75
|
-webkit-animation: progress-bar-stripes 2s linear infinite;
|
70
76
|
-moz-animation: progress-bar-stripes 2s linear infinite;
|
77
|
+
-ms-animation: progress-bar-stripes 2s linear infinite;
|
78
|
+
-o-animation: progress-bar-stripes 2s linear infinite;
|
71
79
|
animation: progress-bar-stripes 2s linear infinite;
|
72
80
|
}
|
73
81
|
|
@@ -75,10 +75,10 @@ sub {
|
|
75
75
|
// -------------------------
|
76
76
|
|
77
77
|
img {
|
78
|
-
|
78
|
+
max-width: 100%; // Make images inherently responsive
|
79
|
+
vertical-align: middle;
|
79
80
|
border: 0;
|
80
81
|
-ms-interpolation-mode: bicubic;
|
81
|
-
vertical-align: middle;
|
82
82
|
}
|
83
83
|
|
84
84
|
// Forms
|
@@ -111,10 +111,10 @@ input[type="submit"] {
|
|
111
111
|
-webkit-appearance: button; // Style clickable inputs in iOS
|
112
112
|
}
|
113
113
|
input[type="search"] { // Appearance in Safari/Chrome
|
114
|
-
-webkit-appearance: textfield;
|
115
114
|
-webkit-box-sizing: content-box;
|
116
115
|
-moz-box-sizing: content-box;
|
117
116
|
box-sizing: content-box;
|
117
|
+
-webkit-appearance: textfield;
|
118
118
|
}
|
119
119
|
input[type="search"]::-webkit-search-decoration,
|
120
120
|
input[type="search"]::-webkit-search-cancel-button {
|
@@ -0,0 +1,26 @@
|
|
1
|
+
// LARGE DESKTOP & UP
|
2
|
+
// ------------------
|
3
|
+
|
4
|
+
@media (min-width: 1200px) {
|
5
|
+
|
6
|
+
// Fixed grid
|
7
|
+
#grid > .core(70px, 30px);
|
8
|
+
|
9
|
+
// Fluid grid
|
10
|
+
#grid > .fluid(5.982905983%, 2.564102564%);
|
11
|
+
|
12
|
+
// Input grid
|
13
|
+
#grid > .input(70px, 30px);
|
14
|
+
|
15
|
+
// Thumbnails
|
16
|
+
.thumbnails {
|
17
|
+
margin-left: -30px;
|
18
|
+
}
|
19
|
+
.thumbnails > li {
|
20
|
+
margin-left: 30px;
|
21
|
+
}
|
22
|
+
.row-fluid .thumbnails {
|
23
|
+
margin-left: 0;
|
24
|
+
}
|
25
|
+
|
26
|
+
}
|
@@ -0,0 +1,149 @@
|
|
1
|
+
// UP TO LANDSCAPE PHONE
|
2
|
+
// ---------------------
|
3
|
+
|
4
|
+
@media (max-width: 480px) {
|
5
|
+
|
6
|
+
// Smooth out the collapsing/expanding nav
|
7
|
+
.nav-collapse {
|
8
|
+
-webkit-transform: translate3d(0, 0, 0); // activate the GPU
|
9
|
+
}
|
10
|
+
|
11
|
+
// Block level the page header small tag for readability
|
12
|
+
.page-header h1 small {
|
13
|
+
display: block;
|
14
|
+
line-height: @baseLineHeight;
|
15
|
+
}
|
16
|
+
|
17
|
+
// Update checkboxes for iOS
|
18
|
+
input[type="checkbox"],
|
19
|
+
input[type="radio"] {
|
20
|
+
border: 1px solid #ccc;
|
21
|
+
}
|
22
|
+
|
23
|
+
// Remove the horizontal form styles
|
24
|
+
.form-horizontal .control-group > label {
|
25
|
+
float: none;
|
26
|
+
width: auto;
|
27
|
+
padding-top: 0;
|
28
|
+
text-align: left;
|
29
|
+
}
|
30
|
+
// Move over all input controls and content
|
31
|
+
.form-horizontal .controls {
|
32
|
+
margin-left: 0;
|
33
|
+
}
|
34
|
+
// Move the options list down to align with labels
|
35
|
+
.form-horizontal .control-list {
|
36
|
+
padding-top: 0; // has to be padding because margin collaspes
|
37
|
+
}
|
38
|
+
// Move over buttons in .form-actions to align with .controls
|
39
|
+
.form-horizontal .form-actions {
|
40
|
+
padding-left: 10px;
|
41
|
+
padding-right: 10px;
|
42
|
+
}
|
43
|
+
|
44
|
+
// Modals
|
45
|
+
.modal {
|
46
|
+
position: absolute;
|
47
|
+
top: 10px;
|
48
|
+
left: 10px;
|
49
|
+
right: 10px;
|
50
|
+
width: auto;
|
51
|
+
margin: 0;
|
52
|
+
&.fade.in { top: auto; }
|
53
|
+
}
|
54
|
+
.modal-header .close {
|
55
|
+
padding: 10px;
|
56
|
+
margin: -10px;
|
57
|
+
}
|
58
|
+
|
59
|
+
// Carousel
|
60
|
+
.carousel-caption {
|
61
|
+
position: static;
|
62
|
+
}
|
63
|
+
|
64
|
+
}
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
|
69
|
+
// --------------------------------------------------
|
70
|
+
|
71
|
+
@media (max-width: 767px) {
|
72
|
+
|
73
|
+
// Padding to set content in a bit
|
74
|
+
body {
|
75
|
+
padding-left: 20px;
|
76
|
+
padding-right: 20px;
|
77
|
+
}
|
78
|
+
// Negative indent the now static "fixed" navbar
|
79
|
+
.navbar-fixed-top,
|
80
|
+
.navbar-fixed-bottom {
|
81
|
+
margin-left: -20px;
|
82
|
+
margin-right: -20px;
|
83
|
+
}
|
84
|
+
// Remove padding on container given explicit padding set on body
|
85
|
+
.container-fluid {
|
86
|
+
padding: 0;
|
87
|
+
}
|
88
|
+
|
89
|
+
// TYPOGRAPHY
|
90
|
+
// ----------
|
91
|
+
// Reset horizontal dl
|
92
|
+
.dl-horizontal {
|
93
|
+
dt {
|
94
|
+
float: none;
|
95
|
+
clear: none;
|
96
|
+
width: auto;
|
97
|
+
text-align: left;
|
98
|
+
}
|
99
|
+
dd {
|
100
|
+
margin-left: 0;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
// GRID & CONTAINERS
|
105
|
+
// -----------------
|
106
|
+
// Remove width from containers
|
107
|
+
.container {
|
108
|
+
width: auto;
|
109
|
+
}
|
110
|
+
// Fluid rows
|
111
|
+
.row-fluid {
|
112
|
+
width: 100%;
|
113
|
+
}
|
114
|
+
// Undo negative margin on rows and thumbnails
|
115
|
+
.row,
|
116
|
+
.thumbnails {
|
117
|
+
margin-left: 0;
|
118
|
+
}
|
119
|
+
// Make all grid-sized elements block level again
|
120
|
+
[class*="span"],
|
121
|
+
.row-fluid [class*="span"] {
|
122
|
+
float: none;
|
123
|
+
display: block;
|
124
|
+
width: auto;
|
125
|
+
margin-left: 0;
|
126
|
+
}
|
127
|
+
|
128
|
+
// FORM FIELDS
|
129
|
+
// -----------
|
130
|
+
// Make span* classes full width
|
131
|
+
.input-large,
|
132
|
+
.input-xlarge,
|
133
|
+
.input-xxlarge,
|
134
|
+
input[class*="span"],
|
135
|
+
select[class*="span"],
|
136
|
+
textarea[class*="span"],
|
137
|
+
.uneditable-input {
|
138
|
+
.input-block-level();
|
139
|
+
}
|
140
|
+
// But don't let it screw up prepend/append inputs
|
141
|
+
.input-prepend input,
|
142
|
+
.input-append input,
|
143
|
+
.input-prepend input[class*="span"],
|
144
|
+
.input-append input[class*="span"] {
|
145
|
+
display: inline-block; // redeclare so they don't wrap to new lines
|
146
|
+
width: auto;
|
147
|
+
}
|
148
|
+
|
149
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// PORTRAIT TABLET TO DEFAULT DESKTOP
|
2
|
+
// ----------------------------------
|
3
|
+
|
4
|
+
@media (min-width: 768px) and (max-width: 979px) {
|
5
|
+
|
6
|
+
// Fixed grid
|
7
|
+
#grid > .core(42px, 20px);
|
8
|
+
|
9
|
+
// Fluid grid
|
10
|
+
#grid > .fluid(5.801104972%, 2.762430939%);
|
11
|
+
|
12
|
+
// Input grid
|
13
|
+
#grid > .input(42px, 20px);
|
14
|
+
|
15
|
+
// No need to reset .thumbnails here since it's the same @gridGutterWidth
|
16
|
+
|
17
|
+
}
|