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
@@ -1,66 +1,51 @@
1
- /* Forms.less
2
- * Base styles for various input types, form layouts, and states
3
- * ------------------------------------------------------------- */
1
+ // Forms.less
2
+ // Base styles for various input types, form layouts, and states
3
+ // -------------------------------------------------------------
4
4
 
5
5
 
6
- // FORM STYLES
7
- // -----------
6
+ // GENERAL STYLES
7
+ // --------------
8
8
 
9
+ // Make all forms have space below them
9
10
  form {
10
- margin-bottom: @baseline;
11
+ margin: 0 0 @baseLineHeight;
11
12
  }
12
13
 
13
- // Groups of fields with labels on top (legends)
14
14
  fieldset {
15
- margin-bottom: @baseline;
16
- padding-top: @baseline;
17
- legend {
18
- display: block;
19
- padding-left: 150px;
20
- font-size: @basefont * 1.5;
21
- line-height: 1;
22
- color: @grayDark;
23
- *padding: 0 0 5px 145px; /* IE6-7 */
24
- *line-height: 1.5; /* IE6-7 */
25
- }
15
+ padding: 0;
16
+ margin: 0;
17
+ border: 0;
26
18
  }
27
19
 
28
- // Parent element that clears floats and wraps labels and fields together
29
- form .clearfix {
30
- margin-bottom: @baseline;
31
- .clearfix()
20
+ // Groups of fields with labels on top (legends)
21
+ legend {
22
+ display: block;
23
+ width: 100%;
24
+ padding: 0;
25
+ margin-bottom: @baseLineHeight * 1.5;
26
+ font-size: @baseFontSize * 1.5;
27
+ line-height: @baseLineHeight * 2;
28
+ color: @grayDark;
29
+ border: 0;
30
+ border-bottom: 1px solid #eee;
32
31
  }
33
32
 
34
33
  // Set font for forms
35
34
  label,
36
35
  input,
36
+ button,
37
37
  select,
38
38
  textarea {
39
- #font > .sans-serif(normal,13px,normal);
39
+ #font > .sans-serif(@baseFontSize,normal,@baseLineHeight);
40
40
  }
41
41
 
42
- // Float labels left
42
+ // Identify controls by their labels
43
43
  label {
44
- padding-top: 6px;
45
- font-size: @basefont;
46
- line-height: @baseline;
47
- float: left;
48
- width: 130px;
49
- text-align: right;
44
+ display: block;
45
+ margin-bottom: 5px;
50
46
  color: @grayDark;
51
47
  }
52
48
 
53
- // Shift over the inside div to align all label's relevant content
54
- form .input {
55
- margin-left: 150px;
56
- }
57
-
58
- // Checkboxs and radio buttons
59
- input[type=checkbox],
60
- input[type=radio] {
61
- cursor: pointer;
62
- }
63
-
64
49
  // Inputs, Textareas, Selects
65
50
  input,
66
51
  textarea,
@@ -68,198 +53,194 @@ select,
68
53
  .uneditable-input {
69
54
  display: inline-block;
70
55
  width: 210px;
71
- height: @baseline;
56
+ height: @baseLineHeight;
72
57
  padding: 4px;
73
- font-size: @basefont;
74
- line-height: @baseline;
58
+ margin-bottom: 9px;
59
+ font-size: @baseFontSize;
60
+ line-height: @baseLineHeight;
75
61
  color: @gray;
76
62
  border: 1px solid #ccc;
77
63
  .border-radius(3px);
78
64
  }
65
+ .uneditable-textarea {
66
+ width: auto;
67
+ height: auto;
68
+ }
69
+
70
+ // Inputs within a label
71
+ label input,
72
+ label textarea,
73
+ label select {
74
+ display: block;
75
+ }
79
76
 
80
- /* mini reset for non-html5 file types */
81
- input[type=checkbox],
82
- input[type=radio] {
77
+ // Mini reset for unique input types
78
+ input[type="image"],
79
+ input[type="checkbox"],
80
+ input[type="radio"] {
83
81
  width: auto;
84
82
  height: auto;
85
83
  padding: 0;
86
84
  margin: 3px 0;
87
- *margin-top: 0; /* IE6-7 */
85
+ *margin-top: 0; /* IE7 */
88
86
  line-height: normal;
89
- border: none;
87
+ border: 0;
88
+ cursor: pointer;
89
+ .border-radius(0);
90
90
  }
91
91
 
92
- input[type=file] {
93
- background-color: @white;
92
+ // Reset the file input to browser defaults
93
+ input[type="file"] {
94
94
  padding: initial;
95
- border: initial;
96
95
  line-height: initial;
96
+ border: initial;
97
+ background-color: @white;
98
+ background-color: initial;
97
99
  .box-shadow(none);
98
100
  }
99
101
 
100
- input[type=button],
101
- input[type=reset],
102
- input[type=submit] {
102
+ // Help out input buttons
103
+ input[type="button"],
104
+ input[type="reset"],
105
+ input[type="submit"] {
103
106
  width: auto;
104
107
  height: auto;
105
108
  }
106
109
 
110
+ // Set the height of select and file controls to match text inputs
107
111
  select,
108
- input[type=file] {
109
- height: @baseline * 1.5; // In IE7, the height of the select element cannot be changed by height, only font-size
110
- line-height: @baseline * 1.5;
112
+ input[type="file"] {
113
+ height: 28px; /* In IE7, the height of the select element cannot be changed by height, only font-size */
111
114
  *margin-top: 4px; /* For IE7, add top margin to align select with labels */
115
+ line-height: 28px;
116
+ }
117
+
118
+ // Chrome on Linux and Mobile Safari need background-color
119
+ select {
120
+ width: 220px; // default input width + 10px of padding that doesn't get applied
121
+ background-color: @white;
112
122
  }
113
123
 
114
124
  // Make multiple select elements height not fixed
115
- select[multiple] {
116
- height: inherit;
125
+ select[multiple],
126
+ select[size] {
127
+ height: auto;
128
+ }
129
+
130
+ // Remove shadow from image inputs
131
+ input[type="image"] {
132
+ .box-shadow(none);
117
133
  }
118
134
 
135
+ // Make textarea height behave
119
136
  textarea {
120
137
  height: auto;
121
138
  }
122
139
 
123
- // For text that needs to appear as an input but should not be an input
124
- .uneditable-input {
125
- background-color: @white;
126
- display: block;
127
- border-color: #eee;
128
- .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
129
- cursor: not-allowed;
140
+ // Hidden inputs
141
+ input[type="hidden"] {
142
+ display: none;
130
143
  }
131
144
 
132
- // Placeholder text gets special styles; can't be bundled together though for some reason
133
- :-moz-placeholder {
134
- color: @grayLight;
145
+
146
+
147
+ // CHECKBOXES & RADIOS
148
+ // -------------------
149
+
150
+ // Indent the labels to position radios/checkboxes as hanging
151
+ .radio,
152
+ .checkbox {
153
+ padding-left: 18px;
135
154
  }
136
- ::-webkit-input-placeholder {
137
- color: @grayLight;
155
+ .radio input[type="radio"],
156
+ .checkbox input[type="checkbox"] {
157
+ float: left;
158
+ margin-left: -18px;
159
+ }
160
+
161
+ // Move the options list down to align with labels
162
+ .controls > .radio:first-child,
163
+ .controls > .checkbox:first-child {
164
+ padding-top: 5px; // has to be padding because margin collaspes
165
+ }
166
+
167
+ // Radios and checkboxes on same line
168
+ .radio.inline,
169
+ .checkbox.inline {
170
+ display: inline-block;
171
+ margin-bottom: 0;
172
+ vertical-align: middle;
138
173
  }
174
+ .radio.inline + .radio.inline,
175
+ .checkbox.inline + .checkbox.inline {
176
+ margin-left: 10px; // space out consecutive inline controls
177
+ }
178
+ // But don't forget to remove their padding on first-child
179
+ .controls > .radio.inline:first-child,
180
+ .controls > .checkbox.inline:first-child {
181
+ padding-top: 0;
182
+ }
183
+
184
+
185
+
186
+ // FOCUS STATE
187
+ // -----------
139
188
 
140
- // Focus states
141
189
  input,
142
190
  textarea {
191
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
143
192
  @transition: border linear .2s, box-shadow linear .2s;
144
193
  .transition(@transition);
145
- .box-shadow(inset 0 1px 3px rgba(0,0,0,.1));
146
194
  }
147
195
  input:focus,
148
196
  textarea:focus {
149
- outline: 0;
150
197
  border-color: rgba(82,168,236,.8);
151
- @shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6);
198
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
152
199
  .box-shadow(@shadow);
200
+ outline: 0;
201
+ outline: thin dotted \9; /* IE6-8 */
153
202
  }
154
- input[type=file]:focus,
155
- input[type=checkbox]:focus,
203
+ input[type="file"]:focus,
204
+ input[type="checkbox"]:focus,
156
205
  select:focus {
157
206
  .box-shadow(none); // override for file inputs
158
- outline: 1px dotted #666; // Selet elements don't get box-shadow styles, so instead we do outline
207
+ .tab-focus();
159
208
  }
160
209
 
161
- // Error styles
162
- form div.clearfix.error {
163
- background: lighten(@red, 57%);
164
- padding: 10px 0;
165
- margin: -10px 0 10px;
166
- .border-radius(4px);
167
- @error-text: desaturate(lighten(@red, 25%), 25%);
168
- > label,
169
- span.help-inline,
170
- span.help-block {
171
- color: @red;
172
- }
173
- input,
174
- textarea {
175
- border-color: @error-text;
176
- .box-shadow(0 0 3px rgba(171,41,32,.25));
177
- &:focus {
178
- border-color: darken(@error-text, 10%);
179
- .box-shadow(0 0 6px rgba(171,41,32,.5));
180
- }
181
- }
182
- .input-prepend,
183
- .input-append {
184
- span.add-on {
185
- background: lighten(@red, 50%);
186
- border-color: @error-text;
187
- color: darken(@error-text, 10%);
188
- }
189
- }
190
- }
191
210
 
192
- // Form element sizes
193
- // TODO v2: remove duplication here and just stick to .input-[size] in light of adding .spanN sizes
194
- .input-mini,
195
- input.mini,
196
- textarea.mini,
197
- select.mini {
198
- width: 60px;
199
- }
200
- .input-small,
201
- input.small,
202
- textarea.small,
203
- select.small {
204
- width: 90px;
205
- }
206
- .input-medium,
207
- input.medium,
208
- textarea.medium,
209
- select.medium {
210
- width: 150px;
211
- }
212
- .input-large,
213
- input.large,
214
- textarea.large,
215
- select.large {
216
- width: 210px;
217
- }
218
- .input-xlarge,
219
- input.xlarge,
220
- textarea.xlarge,
221
- select.xlarge {
222
- width: 270px;
223
- }
224
- .input-xxlarge,
225
- input.xxlarge,
226
- textarea.xxlarge,
227
- select.xxlarge {
228
- width: 530px;
229
- }
230
- textarea.xxlarge {
231
- overflow-y: auto;
232
- }
211
+
212
+ // INPUT SIZES
213
+ // -----------
214
+
215
+ // General classes for quick sizes
216
+ .input-mini { width: 60px; }
217
+ .input-small { width: 90px; }
218
+ .input-medium { width: 150px; }
219
+ .input-large { width: 210px; }
220
+ .input-xlarge { width: 270px; }
221
+ .input-xxlarge { width: 530px; }
233
222
 
234
223
  // Grid style input sizes
235
- // This is a duplication of the main grid .columns() mixin, but subtracts 10px to account for input padding and border
236
- .formColumns(@columnSpan: 1) {
237
- display: inline-block;
224
+ input[class*="span"],
225
+ select[class*="span"],
226
+ textarea[class*="span"],
227
+ .uneditable-input {
238
228
  float: none;
239
- width: ((@gridColumnWidth - 10) * @columnSpan) + ((@gridColumnWidth - 10) * (@columnSpan - 1));
240
229
  margin-left: 0;
241
230
  }
242
- input,
243
- textarea,
244
- select {
245
- // Default columns
246
- &.span1 { .formColumns(1); }
247
- &.span2 { .formColumns(2); }
248
- &.span3 { .formColumns(3); }
249
- &.span4 { .formColumns(4); }
250
- &.span5 { .formColumns(5); }
251
- &.span6 { .formColumns(6); }
252
- &.span7 { .formColumns(7); }
253
- &.span8 { .formColumns(8); }
254
- &.span9 { .formColumns(9); }
255
- &.span10 { .formColumns(10); }
256
- &.span11 { .formColumns(11); }
257
- &.span12 { .formColumns(12); }
258
- &.span13 { .formColumns(13); }
259
- &.span14 { .formColumns(14); }
260
- &.span15 { .formColumns(15); }
261
- &.span16 { .formColumns(16); }
262
- }
231
+
232
+
233
+
234
+ // GRID SIZING FOR INPUTS
235
+ // ----------------------
236
+
237
+ #inputGridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth);
238
+
239
+
240
+
241
+
242
+ // DISABLED STATE
243
+ // --------------
263
244
 
264
245
  // Disabled and read-only inputs
265
246
  input[disabled],
@@ -273,88 +254,149 @@ textarea[readonly] {
273
254
  cursor: not-allowed;
274
255
  }
275
256
 
276
- // Actions (the buttons)
277
- .actions {
278
- background: #f5f5f5;
279
- margin-top: @baseline;
280
- margin-bottom: @baseline;
281
- padding: (@baseline - 1) 20px @baseline 150px;
282
- border-top: 1px solid #ddd;
283
- .border-radius(0 0 3px 3px);
284
- .secondary-action {
285
- float: right;
286
- a {
287
- line-height: 30px;
288
- &:hover {
289
- text-decoration: underline;
290
- }
257
+
258
+
259
+
260
+ // FORM FIELD FEEDBACK STATES
261
+ // --------------------------
262
+
263
+ // Mixin for form field states
264
+ .formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
265
+ // Set the text color
266
+ > label,
267
+ .help-block,
268
+ .help-inline {
269
+ color: @textColor;
270
+ }
271
+ // Style inputs accordingly
272
+ input,
273
+ select,
274
+ textarea {
275
+ color: @textColor;
276
+ border-color: @borderColor;
277
+ &:focus {
278
+ border-color: darken(@borderColor, 10%);
279
+ .box-shadow(0 0 6px lighten(@borderColor, 20%));
291
280
  }
292
281
  }
282
+ // Give a small background color for input-prepend/-append
283
+ .input-prepend .add-on,
284
+ .input-append .add-on {
285
+ color: @textColor;
286
+ background-color: @backgroundColor;
287
+ border-color: @textColor;
288
+ }
289
+ }
290
+ // Warning
291
+ .control-group.warning {
292
+ .formFieldState(@warningText, @warningText, @warningBackground);
293
+ }
294
+ // Error
295
+ .control-group.error {
296
+ .formFieldState(@errorText, @errorText, @errorBackground);
297
+ }
298
+ // Success
299
+ .control-group.success {
300
+ .formFieldState(@successText, @successText, @successBackground);
293
301
  }
294
302
 
295
- // Help Text
296
- .help-inline,
303
+ // HTML5 invalid states
304
+ // Shares styles with the .control-group.error above
305
+ input:focus:required:invalid,
306
+ textarea:focus:required:invalid,
307
+ select:focus:required:invalid {
308
+ color: #b94a48;
309
+ border-color: #ee5f5b;
310
+ &:focus {
311
+ border-color: darken(#ee5f5b, 10%);
312
+ .box-shadow(0 0 6px lighten(#ee5f5b, 20%));
313
+ }
314
+ }
315
+
316
+
317
+
318
+ // FORM ACTIONS
319
+ // ------------
320
+
321
+ .form-actions {
322
+ padding: (@baseLineHeight - 1) 20px @baseLineHeight;
323
+ margin-top: @baseLineHeight;
324
+ margin-bottom: @baseLineHeight;
325
+ background-color: #f5f5f5;
326
+ border-top: 1px solid #ddd;
327
+ }
328
+
329
+ // For text that needs to appear as an input but should not be an input
330
+ .uneditable-input {
331
+ display: block;
332
+ background-color: @white;
333
+ border-color: #eee;
334
+ .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
335
+ cursor: not-allowed;
336
+ }
337
+
338
+ // Placeholder text gets special styles; can't be bundled together though for some reason
339
+ .placeholder(@grayLight);
340
+
341
+
342
+
343
+ // HELP TEXT
344
+ // ---------
345
+
297
346
  .help-block {
298
- font-size: @basefont - 2;
299
- line-height: @baseline;
347
+ margin-top: 5px;
348
+ margin-bottom: 0;
300
349
  color: @grayLight;
301
350
  }
351
+
302
352
  .help-inline {
353
+ display: inline-block;
354
+ .ie7-inline-block();
355
+ margin-bottom: 9px;
356
+ vertical-align: middle;
303
357
  padding-left: 5px;
304
- *position: relative; /* IE6-7 */
305
- *top: -5px; /* IE6-7 */
306
358
  }
307
359
 
308
- // Big blocks of help text
309
- .help-block {
310
- display: block;
311
- max-width: 600px;
312
- }
313
360
 
314
- // Inline Fields (input fields that appear as inline objects
315
- .inline-inputs {
316
- color: @gray;
317
- span, input {
318
- display: inline-block;
319
- }
320
- input.mini {
321
- width: 60px;
322
- }
323
- input.small {
324
- width: 90px;
325
- }
326
- span {
327
- padding: 0 2px 0 1px;
328
- }
329
- }
361
+
362
+ // INPUT GROUPS
363
+ // ------------
330
364
 
331
365
  // Allow us to put symbols and text within the input field for a cleaner look
332
366
  .input-prepend,
333
367
  .input-append {
334
- input {
368
+ margin-bottom: 5px;
369
+ .clearfix(); // Clear the float to prevent wrapping
370
+ input,
371
+ .uneditable-input {
335
372
  .border-radius(0 3px 3px 0);
373
+ &:focus {
374
+ position: relative;
375
+ z-index: 2;
376
+ }
377
+ }
378
+ .uneditable-input {
379
+ border-left-color: #ccc;
336
380
  }
337
381
  .add-on {
338
- position: relative;
339
- background: #f5f5f5;
340
- border: 1px solid #ccc;
341
- z-index: 2;
342
382
  float: left;
343
383
  display: block;
344
384
  width: auto;
345
385
  min-width: 16px;
346
- height: 18px;
347
- padding: 4px 4px 4px 5px;
386
+ height: @baseLineHeight;
348
387
  margin-right: -1px;
388
+ padding: 4px 5px;
349
389
  font-weight: normal;
350
- line-height: 18px;
390
+ line-height: @baseLineHeight;
351
391
  color: @grayLight;
352
392
  text-align: center;
353
393
  text-shadow: 0 1px 0 @white;
394
+ background-color: #f5f5f5;
395
+ border: 1px solid #ccc;
354
396
  .border-radius(3px 0 0 3px);
355
397
  }
356
398
  .active {
357
- background: lighten(@green, 30);
399
+ background-color: lighten(@green, 30);
358
400
  border-color: @green;
359
401
  }
360
402
  }
@@ -364,102 +406,110 @@ textarea[readonly] {
364
406
  }
365
407
  }
366
408
  .input-append {
367
- input {
409
+ input,
410
+ .uneditable-input {
368
411
  float: left;
369
412
  .border-radius(3px 0 0 3px);
370
413
  }
414
+ .uneditable-input {
415
+ border-right-color: #ccc;
416
+ }
371
417
  .add-on {
372
- .border-radius(0 3px 3px 0);
373
418
  margin-right: 0;
374
419
  margin-left: -1px;
420
+ .border-radius(0 3px 3px 0);
375
421
  }
376
- }
422
+ input:first-child {
423
+ // In IE7, having a hasLayout container (from clearfix's zoom:1) can make the first input
424
+ // inherit the sum of its ancestors' margins.
425
+ *margin-left: -160px;
377
426
 
378
- // Stacked options for forms (radio buttons or checkboxes)
379
- .inputs-list {
380
- margin: 0 0 5px;
381
- width: 100%;
382
- li {
383
- display: block;
384
- padding: 0;
385
- width: 100%;
386
- }
387
- label {
388
- display: block;
389
- float: none;
390
- width: auto;
391
- padding: 0;
392
- line-height: @baseline;
393
- text-align: left;
394
- white-space: normal;
395
- strong {
396
- color: @gray;
397
- }
398
- small {
399
- font-size: @basefont - 2;
400
- font-weight: normal;
427
+ &+.add-on {
428
+ *margin-left: -21px;
401
429
  }
402
430
  }
403
- .inputs-list {
404
- margin-left: 25px;
405
- margin-bottom: 10px;
406
- padding-top: 0;
407
- }
408
- &:first-child {
409
- padding-top: 6px;
410
- }
411
- li + li {
412
- padding-top: 2px;
413
- }
414
- input[type=radio],
415
- input[type=checkbox] {
431
+ }
432
+
433
+
434
+
435
+ // SEARCH FORM
436
+ // -----------
437
+
438
+ .search-query {
439
+ padding-left: 14px;
440
+ padding-right: 14px;
441
+ margin-bottom: 0; // remove the default margin on all inputs
442
+ .border-radius(14px);
443
+ }
444
+
445
+
446
+
447
+ // HORIZONTAL & VERTICAL FORMS
448
+ // ---------------------------
449
+
450
+ // Common properties
451
+ // -----------------
452
+
453
+ .form-search,
454
+ .form-inline,
455
+ .form-horizontal {
456
+ input,
457
+ textarea,
458
+ select,
459
+ .help-inline,
460
+ .uneditable-input {
461
+ display: inline-block;
416
462
  margin-bottom: 0;
417
463
  }
418
464
  }
465
+ .form-search label,
466
+ .form-inline label,
467
+ .form-search .input-append,
468
+ .form-inline .input-append,
469
+ .form-search .input-prepend,
470
+ .form-inline .input-prepend {
471
+ display: inline-block;
472
+ }
473
+ // Make the prepend and append add-on vertical-align: middle;
474
+ .form-search .input-append .add-on,
475
+ .form-inline .input-prepend .add-on,
476
+ .form-search .input-append .add-on,
477
+ .form-inline .input-prepend .add-on {
478
+ vertical-align: middle;
479
+ }
419
480
 
420
- // Stacked forms
421
- .form-stacked {
422
- padding-left: 20px;
423
- fieldset {
424
- padding-top: @baseline / 2;
425
- }
426
- legend {
427
- padding-left: 0;
428
- }
429
- label {
430
- display: block;
431
- float: none;
432
- width: auto;
433
- font-weight: bold;
434
- text-align: left;
435
- line-height: 20px;
436
- padding-top: 0;
481
+ // Margin to space out fieldsets
482
+ .control-group {
483
+ margin-bottom: @baseLineHeight / 2;
484
+ }
485
+
486
+ // Horizontal-specific styles
487
+ // --------------------------
488
+
489
+ .form-horizontal {
490
+ // Legend collapses margin, so we're relegated to padding
491
+ legend + .control-group {
492
+ margin-top: @baseLineHeight;
493
+ -webkit-margin-top-collapse: separate;
437
494
  }
438
- .clearfix {
439
- margin-bottom: @baseline / 2;
440
- div.input {
441
- margin-left: 0;
442
- }
495
+ // Increase spacing between groups
496
+ .control-group {
497
+ margin-bottom: @baseLineHeight;
498
+ .clearfix();
443
499
  }
444
- .inputs-list {
445
- margin-bottom: 0;
446
- li {
447
- padding-top: 0;
448
- label {
449
- font-weight: normal;
450
- padding-top: 0;
451
- }
452
- }
500
+ // Float the labels left
501
+ .control-group > label {
502
+ float: left;
503
+ width: 140px;
504
+ padding-top: 5px;
505
+ text-align: right;
453
506
  }
454
- div.clearfix.error {
455
- padding-top: 10px;
456
- padding-bottom: 10px;
457
- padding-left: 10px;
458
- margin-top: 0;
459
- margin-left: -10px;
507
+ // Move over all input controls and content
508
+ .controls {
509
+ margin-left: 160px;
460
510
  }
461
- .actions {
462
- margin-left: -20px;
463
- padding-left: 20px;
511
+ // Move over buttons in .form-actions to align with .controls
512
+ .form-actions {
513
+ padding-left: 160px;
464
514
  }
465
515
  }