fennec 1.0.0 → 2.0.0

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 (82) hide show
  1. data/lib/fennec/version.rb +1 -1
  2. data/vendor/assets/images/glyphicons-halflings-white.png +0 -0
  3. data/vendor/assets/images/glyphicons-halflings.png +0 -0
  4. data/vendor/assets/javascripts/README.md +106 -0
  5. data/vendor/assets/javascripts/bootstrap-alert.js +91 -0
  6. data/vendor/assets/javascripts/bootstrap-button.js +98 -0
  7. data/vendor/assets/javascripts/bootstrap-carousel.js +154 -0
  8. data/vendor/assets/javascripts/bootstrap-collapse.js +136 -0
  9. data/vendor/assets/javascripts/bootstrap-dropdown.js +92 -0
  10. data/vendor/assets/javascripts/bootstrap-modal.js +210 -0
  11. data/vendor/assets/javascripts/bootstrap-popover.js +95 -0
  12. data/vendor/assets/javascripts/bootstrap-scrollspy.js +125 -0
  13. data/vendor/assets/javascripts/bootstrap-tab.js +130 -0
  14. data/vendor/assets/javascripts/bootstrap-tooltip.js +270 -0
  15. data/vendor/assets/javascripts/bootstrap-transition.js +51 -0
  16. data/vendor/assets/javascripts/bootstrap-typeahead.js +271 -0
  17. data/vendor/assets/javascripts/tests/index.html +49 -0
  18. data/vendor/assets/javascripts/tests/unit/bootstrap-alert.js +41 -0
  19. data/vendor/assets/javascripts/tests/unit/bootstrap-button.js +54 -0
  20. data/vendor/assets/javascripts/tests/unit/bootstrap-collapse.js +25 -0
  21. data/vendor/assets/javascripts/tests/unit/bootstrap-dropdown.js +53 -0
  22. data/vendor/assets/javascripts/tests/unit/bootstrap-modal.js +85 -0
  23. data/vendor/assets/javascripts/tests/unit/bootstrap-popover.js +93 -0
  24. data/vendor/assets/javascripts/tests/unit/bootstrap-scrollspy.js +31 -0
  25. data/vendor/assets/javascripts/tests/unit/bootstrap-tab.js +45 -0
  26. data/vendor/assets/javascripts/tests/unit/bootstrap-tooltip.js +62 -0
  27. data/vendor/assets/javascripts/tests/unit/bootstrap-transition.js +13 -0
  28. data/vendor/assets/javascripts/tests/unit/bootstrap-typeahead.js +128 -0
  29. data/vendor/assets/javascripts/tests/vendor/jquery.js +9252 -0
  30. data/vendor/assets/javascripts/tests/vendor/qunit.css +232 -0
  31. data/vendor/assets/javascripts/tests/vendor/qunit.js +1510 -0
  32. data/vendor/assets/stylesheets/bootstrap/accordion.less +28 -0
  33. data/vendor/assets/stylesheets/bootstrap/alerts.less +70 -0
  34. data/vendor/assets/stylesheets/bootstrap/bootstrap.less +41 -5
  35. data/vendor/assets/stylesheets/bootstrap/breadcrumbs.less +22 -0
  36. data/vendor/assets/stylesheets/bootstrap/button-groups.less +147 -0
  37. data/vendor/assets/stylesheets/bootstrap/buttons.less +165 -0
  38. data/vendor/assets/stylesheets/bootstrap/carousel.less +121 -0
  39. data/vendor/assets/stylesheets/bootstrap/close.less +18 -0
  40. data/vendor/assets/stylesheets/bootstrap/code.less +44 -0
  41. data/vendor/assets/stylesheets/bootstrap/component-animations.less +18 -0
  42. data/vendor/assets/stylesheets/bootstrap/dropdowns.less +131 -0
  43. data/vendor/assets/stylesheets/bootstrap/forms.less +355 -305
  44. data/vendor/assets/stylesheets/bootstrap/grid.less +8 -0
  45. data/vendor/assets/stylesheets/bootstrap/hero-unit.less +20 -0
  46. data/vendor/assets/stylesheets/bootstrap/labels.less +16 -0
  47. data/vendor/assets/stylesheets/bootstrap/layouts.less +17 -0
  48. data/vendor/assets/stylesheets/bootstrap/mixins.less +410 -90
  49. data/vendor/assets/stylesheets/bootstrap/modals.less +72 -0
  50. data/vendor/assets/stylesheets/bootstrap/navbar.less +292 -0
  51. data/vendor/assets/stylesheets/bootstrap/navs.less +344 -0
  52. data/vendor/assets/stylesheets/bootstrap/pager.less +30 -0
  53. data/vendor/assets/stylesheets/bootstrap/pagination.less +55 -0
  54. data/vendor/assets/stylesheets/bootstrap/popovers.less +49 -0
  55. data/vendor/assets/stylesheets/bootstrap/progress-bars.less +95 -0
  56. data/vendor/assets/stylesheets/bootstrap/reset.less +37 -52
  57. data/vendor/assets/stylesheets/bootstrap/responsive.less +323 -0
  58. data/vendor/assets/stylesheets/bootstrap/scaffolding.less +13 -119
  59. data/vendor/assets/stylesheets/bootstrap/sprites.less +156 -0
  60. data/vendor/assets/stylesheets/bootstrap/tables.less +99 -131
  61. data/vendor/assets/stylesheets/bootstrap/thumbnails.less +35 -0
  62. data/vendor/assets/stylesheets/bootstrap/tooltip.less +35 -0
  63. data/vendor/assets/stylesheets/bootstrap/type.less +100 -70
  64. data/vendor/assets/stylesheets/bootstrap/utilities.less +23 -0
  65. data/vendor/assets/stylesheets/bootstrap/variables.less +94 -55
  66. data/vendor/assets/stylesheets/bootstrap/wells.less +17 -0
  67. data/vendor/assets/stylesheets/bootstrap-responsive.css +567 -0
  68. data/vendor/assets/stylesheets/bootstrap.css +3365 -0
  69. data/vendor/assets/stylesheets/docs.css +646 -173
  70. metadata +70 -23
  71. data/vendor/assets/javascripts/bootstrap/alerts.js +0 -104
  72. data/vendor/assets/javascripts/bootstrap/dropdown.js +0 -50
  73. data/vendor/assets/javascripts/bootstrap/jquery.tablesorter.min.js +0 -4
  74. data/vendor/assets/javascripts/bootstrap/modal.js +0 -231
  75. data/vendor/assets/javascripts/bootstrap/popover.js +0 -77
  76. data/vendor/assets/javascripts/bootstrap/scrollspy.js +0 -105
  77. data/vendor/assets/javascripts/bootstrap/tabs.js +0 -62
  78. data/vendor/assets/javascripts/bootstrap/twipsy.js +0 -307
  79. data/vendor/assets/javascripts/bootstrap.config.js +0 -52
  80. data/vendor/assets/stylesheets/bootstrap/patterns.less +0 -1005
  81. data/vendor/assets/stylesheets/bootstrap-1.3.0.css +0 -2362
  82. data/vendor/assets/stylesheets/bootstrap-1.3.0.min.css +0 -330
@@ -0,0 +1,8 @@
1
+ // GRID SYSTEM
2
+ // -----------
3
+
4
+ // Fixed (940px)
5
+ #gridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth);
6
+
7
+ // Fluid (940px)
8
+ #fluidGridSystem > .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth);
@@ -0,0 +1,20 @@
1
+ // HERO UNIT
2
+ // ---------
3
+
4
+ .hero-unit {
5
+ padding: 60px;
6
+ margin-bottom: 30px;
7
+ background-color: #f5f5f5;
8
+ .border-radius(6px);
9
+ h1 {
10
+ margin-bottom: 0;
11
+ font-size: 60px;
12
+ line-height: 1;
13
+ letter-spacing: -1px;
14
+ }
15
+ p {
16
+ font-size: 18px;
17
+ font-weight: 200;
18
+ line-height: @baseLineHeight * 1.5;
19
+ }
20
+ }
@@ -0,0 +1,16 @@
1
+ // LABELS
2
+ // ------
3
+
4
+ .label {
5
+ padding: 1px 3px 2px;
6
+ font-size: @baseFontSize * .75;
7
+ font-weight: bold;
8
+ color: @white;
9
+ text-transform: uppercase;
10
+ background-color: @grayLight;
11
+ .border-radius(3px);
12
+ }
13
+ .label-important { background-color: @errorText; }
14
+ .label-warning { background-color: @orange; }
15
+ .label-success { background-color: @successText; }
16
+ .label-info { background-color: @infoText; }
@@ -0,0 +1,17 @@
1
+ //
2
+ // Layouts
3
+ // Fixed-width and fluid (with sidebar) layouts
4
+ // --------------------------------------------
5
+
6
+
7
+ // Container (centered, fixed-width layouts)
8
+ .container {
9
+ .container-fixed();
10
+ }
11
+
12
+ // Fluid layouts (left aligned, with sidebar, min- & max-width content)
13
+ .container-fluid {
14
+ padding-left: @gridGutterWidth;
15
+ padding-right: @gridGutterWidth;
16
+ .clearfix();
17
+ }
@@ -1,41 +1,86 @@
1
- /* Variables.less
2
- * Snippets of reusable CSS to develop faster and keep code readable
3
- * ----------------------------------------------------------------- */
1
+ // Mixins.less
2
+ // Snippets of reusable CSS to develop faster and keep code readable
3
+ // -----------------------------------------------------------------
4
4
 
5
5
 
6
- // Clearfix for clearing floats like a boss h5bp.com/q
6
+ // UTILITY MIXINS
7
+ // --------------------------------------------------
8
+
9
+ // Clearfix
10
+ // --------
11
+ // For clearing floats like a boss h5bp.com/q
7
12
  .clearfix() {
8
- zoom: 1;
9
- &:before,
13
+ *zoom: 1;
14
+ &:before,
10
15
  &:after {
11
16
  display: table;
12
17
  content: "";
13
- zoom: 1;
14
- *display: inline;
15
- }
16
- &:after {
18
+ }
19
+ &:after {
17
20
  clear: both;
18
- }
21
+ }
22
+ }
23
+
24
+ // Webkit-style focus
25
+ // ------------------
26
+ .tab-focus() {
27
+ // Default
28
+ outline: thin dotted;
29
+ // Webkit
30
+ outline: 5px auto -webkit-focus-ring-color;
31
+ outline-offset: -2px;
19
32
  }
20
33
 
21
34
  // Center-align a block level element
35
+ // ----------------------------------
22
36
  .center-block() {
23
- display: block;
37
+ display: block;
24
38
  margin-left: auto;
25
39
  margin-right: auto;
26
40
  }
27
41
 
42
+ // IE7 inline-block
43
+ // ----------------
44
+ .ie7-inline-block() {
45
+ *display: inline; /* IE7 inline-block hack */
46
+ *zoom: 1;
47
+ }
48
+
49
+ // IE7 likes to collapse whitespace on either side of the inline-block elements.
50
+ // Ems because we're attempting to match the width of a space character. Left
51
+ // version is for form buttons, which typically come after other elements, and
52
+ // right version is for icons, which come before. Applying both is ok, but it will
53
+ // mean that space between those elements will be .6em (~2 space characters) in IE7,
54
+ // instead of the 1 space in other browsers.
55
+ .ie7-restore-left-whitespace() {
56
+ *margin-left: .3em;
57
+
58
+ &:first-child {
59
+ *margin-left: 0;
60
+ }
61
+ }
62
+
63
+ .ie7-restore-right-whitespace() {
64
+ *margin-right: .3em;
65
+
66
+ &:last-child {
67
+ *margin-left: 0;
68
+ }
69
+ }
70
+
28
71
  // Sizing shortcuts
72
+ // -------------------------
29
73
  .size(@height: 5px, @width: 5px) {
30
- height: @height;
31
- width: @width;
74
+ width: @width;
75
+ height: @height;
32
76
  }
33
77
  .square(@size: 5px) {
34
- .size(@size, @size);
78
+ .size(@size, @size);
35
79
  }
36
80
 
37
- // Input placeholder text
38
- .placeholder(@color: @grayLight) {
81
+ // Placeholder text
82
+ // -------------------------
83
+ .placeholder(@color: @placeholderText) {
39
84
  :-moz-placeholder {
40
85
  color: @color;
41
86
  }
@@ -44,58 +89,185 @@
44
89
  }
45
90
  }
46
91
 
47
- // Font Stacks
92
+
93
+
94
+ // FONTS
95
+ // --------------------------------------------------
96
+
48
97
  #font {
49
- .shorthand(@weight: normal, @size: 14px, @lineHeight: 20px) {
50
- font-size: @size;
51
- font-weight: @weight;
52
- line-height: @lineHeight;
98
+ #family {
99
+ .serif() {
100
+ font-family: Georgia, "Times New Roman", Times, serif;
101
+ }
102
+ .sans-serif() {
103
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
104
+ }
105
+ .monospace() {
106
+ font-family: Menlo, Monaco, "Courier New", monospace;
107
+ }
53
108
  }
54
- .sans-serif(@weight: normal, @size: 14px, @lineHeight: 20px) {
55
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
109
+ .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
56
110
  font-size: @size;
57
111
  font-weight: @weight;
58
112
  line-height: @lineHeight;
59
113
  }
60
- .serif(@weight: normal, @size: 14px, @lineHeight: 20px) {
61
- font-family: "Georgia", Times New Roman, Times, serif;
62
- font-size: @size;
63
- font-weight: @weight;
64
- line-height: @lineHeight;
114
+ .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
115
+ #font > #family > .serif;
116
+ #font > .shorthand(@size, @weight, @lineHeight);
65
117
  }
66
- .monospace(@weight: normal, @size: 12px, @lineHeight: 20px) {
67
- font-family: "Monaco", Courier New, monospace;
68
- font-size: @size;
69
- font-weight: @weight;
70
- line-height: @lineHeight;
118
+ .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
119
+ #font > #family > .sans-serif;
120
+ #font > .shorthand(@size, @weight, @lineHeight);
121
+ }
122
+ .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
123
+ #font > #family > .monospace;
124
+ #font > .shorthand(@size, @weight, @lineHeight);
71
125
  }
72
126
  }
73
127
 
74
- // Grid System
75
- .fixed-container() {
76
- width: @siteWidth;
128
+
129
+
130
+ // GRID SYSTEM
131
+ // --------------------------------------------------
132
+
133
+ // Site container
134
+ // -------------------------
135
+ .container-fixed() {
136
+ width: @gridRowWidth;
77
137
  margin-left: auto;
78
138
  margin-right: auto;
79
139
  .clearfix();
80
140
  }
81
- .columns(@columnSpan: 1) {
82
- width: (@gridColumnWidth * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1));
83
- }
84
- .offset(@columnOffset: 1) {
85
- margin-left: (@gridColumnWidth * @columnOffset) + (@gridGutterWidth * (@columnOffset - 1)) + @extraSpace;
141
+
142
+ // Le grid system
143
+ // -------------------------
144
+ #gridSystem {
145
+ // Setup the mixins to be used
146
+ .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) {
147
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
148
+ }
149
+ .offset(@gridColumnWidth, @gridGutterWidth, @columns) {
150
+ margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2);
151
+ }
152
+ .gridColumn(@gridGutterWidth) {
153
+ float: left;
154
+ margin-left: @gridGutterWidth;
155
+ }
156
+ // Take these values and mixins, and make 'em do their thang
157
+ .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) {
158
+ // Row surrounds the columns
159
+ .row {
160
+ margin-left: @gridGutterWidth * -1;
161
+ .clearfix();
162
+ }
163
+ // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
164
+ [class*="span"] {
165
+ #gridSystem > .gridColumn(@gridGutterWidth);
166
+ }
167
+ // Default columns
168
+ .span1 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); }
169
+ .span2 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); }
170
+ .span3 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); }
171
+ .span4 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); }
172
+ .span5 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); }
173
+ .span6 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); }
174
+ .span7 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); }
175
+ .span8 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); }
176
+ .span9 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); }
177
+ .span10 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); }
178
+ .span11 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); }
179
+ .span12,
180
+ .container { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); }
181
+ // Offset column options
182
+ .offset1 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 1); }
183
+ .offset2 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 2); }
184
+ .offset3 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 3); }
185
+ .offset4 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 4); }
186
+ .offset5 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 5); }
187
+ .offset6 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 6); }
188
+ .offset7 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 7); }
189
+ .offset8 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 8); }
190
+ .offset9 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 9); }
191
+ .offset10 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 10); }
192
+ .offset11 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 11); }
193
+ }
86
194
  }
87
- // Necessary grid styles for every column to make them appear next to each other horizontally
88
- .gridColumn() {
89
- display: inline;
90
- float: left;
91
- margin-left: @gridGutterWidth;
195
+
196
+ // Fluid grid system
197
+ // -------------------------
198
+ #fluidGridSystem {
199
+ // Setup the mixins to be used
200
+ .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, @columns) {
201
+ width: 1% * (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
202
+ }
203
+ .gridColumn(@fluidGridGutterWidth) {
204
+ float: left;
205
+ margin-left: @fluidGridGutterWidth;
206
+ }
207
+ // Take these values and mixins, and make 'em do their thang
208
+ .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth) {
209
+ // Row surrounds the columns
210
+ .row-fluid {
211
+ width: 100%;
212
+ .clearfix();
213
+
214
+ // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
215
+ > [class*="span"] {
216
+ #fluidGridSystem > .gridColumn(@fluidGridGutterWidth);
217
+ }
218
+ > [class*="span"]:first-child {
219
+ margin-left: 0;
220
+ }
221
+ // Default columns
222
+ .span1 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 1); }
223
+ .span2 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 2); }
224
+ .span3 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 3); }
225
+ .span4 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 4); }
226
+ .span5 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 5); }
227
+ .span6 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 6); }
228
+ .span7 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 7); }
229
+ .span8 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 8); }
230
+ .span9 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 9); }
231
+ .span10 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 10); }
232
+ .span11 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 11); }
233
+ .span12 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 12); }
234
+ }
235
+ }
92
236
  }
93
- // makeColumn can be used to mark any element (e.g., .content-primary) as a column without changing markup to .span something
94
- .makeColumn(@columnSpan: 1) {
95
- .gridColumn();
96
- .columns(@columnSpan);
237
+
238
+
239
+
240
+ // Input grid system
241
+ // -------------------------
242
+ #inputGridSystem {
243
+ .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) {
244
+ width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 10;
245
+ }
246
+ .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) {
247
+ input,
248
+ textarea,
249
+ .uneditable-input {
250
+ &.span1 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); }
251
+ &.span2 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); }
252
+ &.span3 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); }
253
+ &.span4 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); }
254
+ &.span5 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); }
255
+ &.span6 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); }
256
+ &.span7 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); }
257
+ &.span8 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); }
258
+ &.span9 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); }
259
+ &.span10 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); }
260
+ &.span11 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); }
261
+ &.span12 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); }
262
+ }
263
+ }
97
264
  }
98
265
 
266
+
267
+
268
+ // CSS3 PROPERTIES
269
+ // --------------------------------------------------
270
+
99
271
  // Border Radius
100
272
  .border-radius(@radius: 5px) {
101
273
  -webkit-border-radius: @radius;
@@ -112,76 +284,153 @@
112
284
 
113
285
  // Transitions
114
286
  .transition(@transition) {
115
- -webkit-transition: @transition;
116
- -moz-transition: @transition;
117
- -ms-transition: @transition;
118
- -o-transition: @transition;
119
- transition: @transition;
287
+ -webkit-transition: @transition;
288
+ -moz-transition: @transition;
289
+ -ms-transition: @transition;
290
+ -o-transition: @transition;
291
+ transition: @transition;
292
+ }
293
+
294
+ // Transformations
295
+ .rotate(@degrees) {
296
+ -webkit-transform: rotate(@degrees);
297
+ -moz-transform: rotate(@degrees);
298
+ -ms-transform: rotate(@degrees);
299
+ -o-transform: rotate(@degrees);
300
+ transform: rotate(@degrees);
301
+ }
302
+ .scale(@ratio) {
303
+ -webkit-transform: scale(@ratio);
304
+ -moz-transform: scale(@ratio);
305
+ -ms-transform: scale(@ratio);
306
+ -o-transform: scale(@ratio);
307
+ transform: scale(@ratio);
308
+ }
309
+ .translate(@x: 0, @y: 0) {
310
+ -webkit-transform: translate(@x, @y);
311
+ -moz-transform: translate(@x, @y);
312
+ -ms-transform: translate(@x, @y);
313
+ -o-transform: translate(@x, @y);
314
+ transform: translate(@x, @y);
315
+ }
316
+ .skew(@x: 0, @y: 0) {
317
+ -webkit-transform: translate(@x, @y);
318
+ -moz-transform: translate(@x, @y);
319
+ -ms-transform: translate(@x, @y);
320
+ -o-transform: translate(@x, @y);
321
+ transform: translate(@x, @y);
322
+ }
323
+ .skew(@x: 0, @y: 0) {
324
+ -webkit-transform: skew(@x, @y);
325
+ -moz-transform: skew(@x, @y);
326
+ -ms-transform: skew(@x, @y);
327
+ -o-transform: skew(@x, @y);
328
+ transform: skew(@x, @y);
120
329
  }
121
330
 
122
331
  // Background clipping
332
+ // Heads up: FF 3.6 and under need "padding" instead of "padding-box"
123
333
  .background-clip(@clip) {
124
- -webkit-background-clip: @clip;
125
- -moz-background-clip: @clip;
126
- background-clip: @clip;
334
+ -webkit-background-clip: @clip;
335
+ -moz-background-clip: @clip;
336
+ background-clip: @clip;
337
+ }
338
+
339
+ // Background sizing
340
+ .background-size(@size){
341
+ -webkit-background-size: @size;
342
+ -moz-background-size: @size;
343
+ -o-background-size: @size;
344
+ background-size: @size;
345
+ }
346
+
347
+
348
+ // Box sizing
349
+ .box-sizing(@boxmodel) {
350
+ -webkit-box-sizing: @boxmodel;
351
+ -moz-box-sizing: @boxmodel;
352
+ box-sizing: @boxmodel;
353
+ }
354
+
355
+ // User select
356
+ // For selecting text on the page
357
+ .user-select(@select) {
358
+ -webkit-user-select: @select;
359
+ -moz-user-select: @select;
360
+ -o-user-select: @select;
361
+ user-select: @select;
362
+ }
363
+
364
+ // Resize anything
365
+ .resizable(@direction: both) {
366
+ resize: @direction; // Options: horizontal, vertical, both
367
+ overflow: auto; // Safari fix
127
368
  }
128
369
 
129
370
  // CSS3 Content Columns
130
- .content-columns(@columnCount, @columnGap: 20px) {
131
- -webkit-column-count: @columnCount;
132
- -moz-column-count: @columnCount;
371
+ .content-columns(@columnCount, @columnGap: @gridColumnGutter) {
372
+ -webkit-column-count: @columnCount;
373
+ -moz-column-count: @columnCount;
133
374
  column-count: @columnCount;
134
375
  -webkit-column-gap: @columnGap;
135
- -moz-column-gap: @columnGap;
376
+ -moz-column-gap: @columnGap;
136
377
  column-gap: @columnGap;
137
378
  }
138
379
 
380
+ // Opacity
381
+ .opacity(@opacity: 100) {
382
+ opacity: @opacity / 100;
383
+ filter: e(%("alpha(opacity=%d)", @opacity));
384
+ }
385
+
386
+
387
+
388
+ // BACKGROUNDS
389
+ // --------------------------------------------------
390
+
139
391
  // Add an alphatransparency value to any background or border color (via Elyse Holladay)
140
392
  #translucent {
141
393
  .background(@color: @white, @alpha: 1) {
142
394
  background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
143
- }
144
- .border(@color: @white, @alpha: 1) {
145
- border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
146
- background-clip: padding-box;
147
- }
395
+ }
396
+ .border(@color: @white, @alpha: 1) {
397
+ border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
398
+ .background-clip(padding-box);
399
+ }
148
400
  }
149
401
 
150
- // Gradient Bar Colors for buttons and allerts
402
+ // Gradient Bar Colors for buttons and alerts
151
403
  .gradientBar(@primaryColor, @secondaryColor) {
152
404
  #gradient > .vertical(@primaryColor, @secondaryColor);
153
- text-shadow: 0 -1px 0 rgba(0,0,0,.25);
154
405
  border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
155
406
  border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);
156
407
  }
157
408
 
158
409
  // Gradients
159
410
  #gradient {
160
- .horizontal (@startColor: #555, @endColor: #333) {
411
+ .horizontal(@startColor: #555, @endColor: #333) {
161
412
  background-color: @endColor;
162
- background-repeat: repeat-x;
163
- background-image: -khtml-gradient(linear, left top, right top, from(@startColor), to(@endColor)); // Konqueror
164
413
  background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
165
414
  background-image: -ms-linear-gradient(left, @startColor, @endColor); // IE10
166
- background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+
415
+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
167
416
  background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
168
417
  background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
169
418
  background-image: linear-gradient(left, @startColor, @endColor); // Le standard
419
+ background-repeat: repeat-x;
170
420
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",@startColor,@endColor)); // IE9 and down
171
421
  }
172
- .vertical (@startColor: #555, @endColor: #333) {
173
- background-color: @endColor;
174
- background-repeat: repeat-x;
175
- background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); // Konqueror
422
+ .vertical(@startColor: #555, @endColor: #333) {
423
+ background-color: mix(@startColor, @endColor, 60%);
176
424
  background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
177
425
  background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10
178
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+
426
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
179
427
  background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
180
428
  background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
181
429
  background-image: linear-gradient(top, @startColor, @endColor); // The standard
430
+ background-repeat: repeat-x;
182
431
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down
183
432
  }
184
- .directional (@startColor: #555, @endColor: #333, @deg: 45deg) {
433
+ .directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
185
434
  background-color: @endColor;
186
435
  background-repeat: repeat-x;
187
436
  background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
@@ -191,27 +440,98 @@
191
440
  background-image: linear-gradient(@deg, @startColor, @endColor); // The standard
192
441
  }
193
442
  .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
194
- background-color: @endColor;
195
- background-repeat: no-repeat;
443
+ background-color: mix(@midColor, @endColor, 80%);
196
444
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
197
445
  background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
198
446
  background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
199
447
  background-image: -ms-linear-gradient(@startColor, @midColor @colorStop, @endColor);
200
448
  background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
201
449
  background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
450
+ background-repeat: no-repeat;
202
451
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down, gets no color-stop at all for proper fallback
203
452
  }
453
+ .radial(@innerColor: #555, @outerColor: #333) {
454
+ background-color: @outerColor;
455
+ background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));
456
+ background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
457
+ background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
458
+ background-image: -ms-radial-gradient(circle, @innerColor, @outerColor);
459
+ background-repeat: no-repeat;
460
+ // Opera cannot do radial gradients yet
461
+ }
462
+ .striped(@color, @angle: -45deg) {
463
+ background-color: @color;
464
+ 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));
465
+ 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);
466
+ 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);
467
+ background-image: -ms-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);
468
+ background-image: -o-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);
469
+ background-image: 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);
470
+ }
204
471
  }
205
-
206
472
  // Reset filters for IE
207
473
  .reset-filter() {
208
474
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
209
475
  }
210
476
 
211
- // Opacity
212
- .opacity(@opacity: 100) {
213
- filter: e(%("alpha(opacity=%d)", @opacity));
214
- -khtml-opacity: @opacity / 100;
215
- -moz-opacity: @opacity / 100;
216
- opacity: @opacity / 100;
217
- }
477
+
478
+ // Mixin for generating button backgrounds
479
+ // ---------------------------------------
480
+ .buttonBackground(@startColor, @endColor) {
481
+ // gradientBar will set the background to a pleasing blend of these, to support IE<=9
482
+ .gradientBar(@startColor, @endColor);
483
+ .reset-filter();
484
+
485
+ // in these cases the gradient won't cover the background, so we override
486
+ &:hover, &:active, &.active, &.disabled, &[disabled] {
487
+ background-color: @endColor;
488
+ }
489
+
490
+ // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
491
+ &:active,
492
+ &.active {
493
+ background-color: darken(@endColor, 10%) e("\9");
494
+ }
495
+ }
496
+
497
+
498
+ // COMPONENT MIXINS
499
+ // --------------------------------------------------
500
+
501
+ // POPOVER ARROWS
502
+ // -------------------------
503
+ // For tipsies and popovers
504
+ #popoverArrow {
505
+ .top(@arrowWidth: 5px) {
506
+ bottom: 0;
507
+ left: 50%;
508
+ margin-left: -@arrowWidth;
509
+ border-left: @arrowWidth solid transparent;
510
+ border-right: @arrowWidth solid transparent;
511
+ border-top: @arrowWidth solid @black;
512
+ }
513
+ .left(@arrowWidth: 5px) {
514
+ top: 50%;
515
+ right: 0;
516
+ margin-top: -@arrowWidth;
517
+ border-top: @arrowWidth solid transparent;
518
+ border-bottom: @arrowWidth solid transparent;
519
+ border-left: @arrowWidth solid @black;
520
+ }
521
+ .bottom(@arrowWidth: 5px) {
522
+ top: 0;
523
+ left: 50%;
524
+ margin-left: -@arrowWidth;
525
+ border-left: @arrowWidth solid transparent;
526
+ border-right: @arrowWidth solid transparent;
527
+ border-bottom: @arrowWidth solid @black;
528
+ }
529
+ .right(@arrowWidth: 5px) {
530
+ top: 50%;
531
+ left: 0;
532
+ margin-top: -@arrowWidth;
533
+ border-top: @arrowWidth solid transparent;
534
+ border-bottom: @arrowWidth solid transparent;
535
+ border-right: @arrowWidth solid @black;
536
+ }
537
+ }