bootstrap3-wip-rails 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +54 -0
  6. data/Rakefile +1 -0
  7. data/bootstrap3-wip-rails.gemspec +25 -0
  8. data/lib/assets/javascripts/bootstrap.js +14 -0
  9. data/lib/bootstrap3/wip/rails.rb +10 -0
  10. data/lib/bootstrap3/wip/rails/version.rb +7 -0
  11. data/vendor/assets/images/glyphiconshalflings-regular.eot +0 -0
  12. data/vendor/assets/images/glyphiconshalflings-regular.otf +0 -0
  13. data/vendor/assets/images/glyphiconshalflings-regular.svg +175 -0
  14. data/vendor/assets/images/glyphiconshalflings-regular.ttf +0 -0
  15. data/vendor/assets/images/glyphiconshalflings-regular.woff +0 -0
  16. data/vendor/assets/javascripts/bootstrap-affix.js +117 -0
  17. data/vendor/assets/javascripts/bootstrap-alert.js +99 -0
  18. data/vendor/assets/javascripts/bootstrap-button.js +105 -0
  19. data/vendor/assets/javascripts/bootstrap-carousel.js +207 -0
  20. data/vendor/assets/javascripts/bootstrap-collapse.js +167 -0
  21. data/vendor/assets/javascripts/bootstrap-dropdown.js +165 -0
  22. data/vendor/assets/javascripts/bootstrap-modal.js +251 -0
  23. data/vendor/assets/javascripts/bootstrap-popover.js +114 -0
  24. data/vendor/assets/javascripts/bootstrap-scrollspy.js +162 -0
  25. data/vendor/assets/javascripts/bootstrap-tab.js +144 -0
  26. data/vendor/assets/javascripts/bootstrap-tooltip.js +361 -0
  27. data/vendor/assets/javascripts/bootstrap-transition.js +60 -0
  28. data/vendor/assets/javascripts/bootstrap-typeahead.js +335 -0
  29. data/vendor/assets/stylesheets/accordion.less +34 -0
  30. data/vendor/assets/stylesheets/alerts.less +97 -0
  31. data/vendor/assets/stylesheets/badges.less +58 -0
  32. data/vendor/assets/stylesheets/bootstrap.less +64 -0
  33. data/vendor/assets/stylesheets/breadcrumbs.less +28 -0
  34. data/vendor/assets/stylesheets/button-groups.less +166 -0
  35. data/vendor/assets/stylesheets/buttons.less +175 -0
  36. data/vendor/assets/stylesheets/carousel.less +191 -0
  37. data/vendor/assets/stylesheets/close.less +33 -0
  38. data/vendor/assets/stylesheets/code.less +61 -0
  39. data/vendor/assets/stylesheets/component-animations.less +32 -0
  40. data/vendor/assets/stylesheets/dropdowns.less +223 -0
  41. data/vendor/assets/stylesheets/forms.less +553 -0
  42. data/vendor/assets/stylesheets/glyphicons.less +200 -0
  43. data/vendor/assets/stylesheets/grid.less +57 -0
  44. data/vendor/assets/stylesheets/jumbotron.less +32 -0
  45. data/vendor/assets/stylesheets/labels.less +46 -0
  46. data/vendor/assets/stylesheets/list-group.less +96 -0
  47. data/vendor/assets/stylesheets/media.less +54 -0
  48. data/vendor/assets/stylesheets/mixins.less +551 -0
  49. data/vendor/assets/stylesheets/modals.less +137 -0
  50. data/vendor/assets/stylesheets/navbar.less +389 -0
  51. data/vendor/assets/stylesheets/navs.less +283 -0
  52. data/vendor/assets/stylesheets/normalize.less +396 -0
  53. data/vendor/assets/stylesheets/pager.less +54 -0
  54. data/vendor/assets/stylesheets/pagination.less +100 -0
  55. data/vendor/assets/stylesheets/panels.less +86 -0
  56. data/vendor/assets/stylesheets/popovers.less +133 -0
  57. data/vendor/assets/stylesheets/print.less +74 -0
  58. data/vendor/assets/stylesheets/progress-bars.less +118 -0
  59. data/vendor/assets/stylesheets/responsive-utilities.less +59 -0
  60. data/vendor/assets/stylesheets/scaffolding.less +91 -0
  61. data/vendor/assets/stylesheets/tables.less +241 -0
  62. data/vendor/assets/stylesheets/thumbnails.less +42 -0
  63. data/vendor/assets/stylesheets/tooltip.less +71 -0
  64. data/vendor/assets/stylesheets/type.less +253 -0
  65. data/vendor/assets/stylesheets/utilities.less +42 -0
  66. data/vendor/assets/stylesheets/variables.less +354 -0
  67. data/vendor/assets/stylesheets/wells.less +29 -0
  68. metadata +166 -0
@@ -0,0 +1,553 @@
1
+ //
2
+ // Forms
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Non-controls
7
+ // -------------------------
8
+
9
+ form {
10
+ margin: 0;
11
+ }
12
+
13
+ fieldset {
14
+ padding: 0;
15
+ margin: 0;
16
+ border: 0;
17
+ }
18
+
19
+ legend {
20
+ display: block;
21
+ width: 100%;
22
+ padding: 0;
23
+ margin-bottom: @line-height-base;
24
+ font-size: (@font-size-base * 1.5);
25
+ line-height: (@line-height-base * 2);
26
+ color: @grayDark;
27
+ border: 0;
28
+ border-bottom: 1px solid #e5e5e5;
29
+ }
30
+
31
+ label {
32
+ display: inline-block;
33
+ margin-bottom: 5px;
34
+ font-weight: bold;
35
+ }
36
+
37
+ // Form controls
38
+ // -------------------------
39
+
40
+ // Shared size and type resets
41
+ select,
42
+ textarea,
43
+ input[type="text"],
44
+ input[type="password"],
45
+ input[type="datetime"],
46
+ input[type="datetime-local"],
47
+ input[type="date"],
48
+ input[type="month"],
49
+ input[type="time"],
50
+ input[type="week"],
51
+ input[type="number"],
52
+ input[type="email"],
53
+ input[type="url"],
54
+ input[type="search"],
55
+ input[type="tel"],
56
+ input[type="color"] {
57
+ display: inline-block;
58
+ min-height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
59
+ padding: 6px 9px;
60
+ // margin-bottom: (@line-height-base / 2);
61
+ font-size: @font-size-base;
62
+ line-height: @line-height-base;
63
+ color: @gray;
64
+ vertical-align: middle;
65
+ background-color: @input-bg;
66
+ border: 1px solid @input-border;
67
+ border-radius: @input-border-radius;
68
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
69
+ .transition(~"border linear .2s, box-shadow linear .2s");
70
+ }
71
+
72
+ // Reset appearance properties for textual inputs and textarea
73
+ // Can't be on input[type=*] selectors or it's too specific
74
+ input,
75
+ select,
76
+ textarea {
77
+ width: 100%;
78
+ }
79
+
80
+ // Reset width of input images, buttons, radios, checkboxes
81
+ input[type="file"],
82
+ input[type="image"],
83
+ input[type="submit"],
84
+ input[type="reset"],
85
+ input[type="button"],
86
+ input[type="radio"],
87
+ input[type="checkbox"] {
88
+ width: auto; // Override of generic input selector
89
+ }
90
+
91
+ // Override content-box in Normalize (* isn't specific enough)
92
+ input[type="search"] {
93
+ .box-sizing(border-box);
94
+ }
95
+
96
+ // Reset height since textareas have rows
97
+ textarea {
98
+ height: auto;
99
+ }
100
+
101
+ // Everything else
102
+ textarea,
103
+ input[type="text"],
104
+ input[type="password"],
105
+ input[type="datetime"],
106
+ input[type="datetime-local"],
107
+ input[type="date"],
108
+ input[type="month"],
109
+ input[type="time"],
110
+ input[type="week"],
111
+ input[type="number"],
112
+ input[type="email"],
113
+ input[type="url"],
114
+ input[type="search"],
115
+ input[type="tel"],
116
+ input[type="color"] {
117
+ // Focus state
118
+ &:focus {
119
+ border-color: rgba(82,168,236,.8);
120
+ outline: 0;
121
+ outline: thin dotted \9; /* IE6-9 */
122
+ //.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
123
+ .box-shadow(0 0 8px rgba(82,168,236,.6));
124
+ }
125
+ }
126
+
127
+ // Position radios and checkboxes better
128
+ input[type="radio"],
129
+ input[type="checkbox"] {
130
+ margin: 4px 0 0;
131
+ margin-top: 1px \9; /* IE8-9 */
132
+ line-height: normal;
133
+ }
134
+
135
+ // Set the height of select and file controls to match text inputs
136
+ select,
137
+ input[type="file"] {
138
+ height: @input-height-base; /* In IE7, the height of the select element cannot be changed by height, only font-size. TODO: Check if this is still needed when dropping IE7 support */
139
+ line-height: @input-height-base;
140
+ }
141
+
142
+ // Make multiple select elements height not fixed
143
+ select[multiple],
144
+ select[size] {
145
+ height: auto;
146
+ }
147
+
148
+ // Focus for select, file, radio, and checkbox
149
+ select:focus,
150
+ input[type="file"]:focus,
151
+ input[type="radio"]:focus,
152
+ input[type="checkbox"]:focus {
153
+ .tab-focus();
154
+ }
155
+
156
+
157
+ // Placeholder
158
+ // -------------------------
159
+
160
+ // Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
161
+ input,
162
+ textarea {
163
+ .placeholder();
164
+ }
165
+
166
+
167
+ // CHECKBOXES & RADIOS
168
+ // -------------------
169
+
170
+ // Indent the labels to position radios/checkboxes as hanging
171
+ .radio,
172
+ .checkbox {
173
+ display: block;
174
+ min-height: @line-height-base; // clear the floating input if there is no label text
175
+ margin-bottom: (@line-height-base / 2);
176
+ padding-left: 20px;
177
+ label {
178
+ display: inline;
179
+ margin-bottom: 0;
180
+ font-weight: normal;
181
+ }
182
+ }
183
+
184
+ .radio input[type="radio"],
185
+ .radio-inline input[type="radio"],
186
+ .checkbox input[type="checkbox"],
187
+ .checkbox-inline input[type="checkbox"] {
188
+ float: left;
189
+ margin-left: -20px;
190
+ }
191
+ .radio + .radio,
192
+ .checkbox + .checkbox {
193
+ margin-top: ((@line-height-base / 4) * -1);
194
+ }
195
+
196
+ // Move the options list down to align with labels
197
+ .controls > .radio:first-child,
198
+ .controls > .checkbox:first-child {
199
+ padding-top: 5px; // has to be padding because margin collaspes
200
+ }
201
+
202
+ // Radios and checkboxes on same line
203
+ .radio-inline,
204
+ .checkbox-inline {
205
+ display: inline-block;
206
+ padding-top: 5px;
207
+ padding-left: 20px;
208
+ margin-bottom: 0;
209
+ vertical-align: middle;
210
+ font-weight: normal;
211
+ }
212
+ .radio-inline + .radio-inline,
213
+ .checkbox-inline + .checkbox-inline {
214
+ margin-top: 0;
215
+ margin-left: 10px; // space out consecutive inline controls
216
+ }
217
+
218
+
219
+
220
+ // INPUT SIZES
221
+ // -----------
222
+
223
+ select,
224
+ textarea,
225
+ input[type="text"],
226
+ input[type="password"],
227
+ input[type="datetime"],
228
+ input[type="datetime-local"],
229
+ input[type="date"],
230
+ input[type="month"],
231
+ input[type="time"],
232
+ input[type="week"],
233
+ input[type="number"],
234
+ input[type="email"],
235
+ input[type="url"],
236
+ input[type="search"],
237
+ input[type="tel"],
238
+ input[type="color"] {
239
+ &.input-large {
240
+ padding: @padding-large;
241
+ font-size: @font-size-large;
242
+ border-radius: @border-radius-large;
243
+ }
244
+ &.input-small {
245
+ min-height: @input-height-small;
246
+ padding: @padding-small;
247
+ font-size: @font-size-small;
248
+ border-radius: @border-radius-small;
249
+ }
250
+ }
251
+
252
+
253
+
254
+ // GRID SIZING FOR INPUTS
255
+ // ----------------------
256
+
257
+ // Grid style input sizes
258
+ input[class*="span"],
259
+ select[class*="span"],
260
+ textarea[class*="span"] {
261
+ float: none;
262
+ margin-left: 0;
263
+ margin-right: 0;
264
+ }
265
+
266
+ // Ensure input-prepend/append never wraps
267
+ .input-append input[class*="span"],
268
+ .input-prepend input[class*="span"] {
269
+ display: inline-block;
270
+ }
271
+
272
+ input[class*="span"],
273
+ select[class*="span"],
274
+ textarea[class*="span"] {
275
+ height: @input-height-base;
276
+ }
277
+
278
+
279
+
280
+ // DISABLED STATE
281
+ // --------------
282
+
283
+ // Disabled and read-only inputs
284
+ // Note: HTML5 says that inputs under a fieldset > legend:first-child won't be
285
+ // disabled if the fieldset is disabled. Due to implementation difficulty,
286
+ // we don't honor that edge case; we style them as disabled anyway.
287
+ input,
288
+ select,
289
+ textarea {
290
+ &[disabled],
291
+ &[readonly],
292
+ fieldset[disabled] & {
293
+ cursor: not-allowed;
294
+ background-color: @input-bg-disabled;
295
+ }
296
+ }
297
+ // Explicitly reset the colors here
298
+ input[type="radio"],
299
+ input[type="checkbox"] {
300
+ &[disabled],
301
+ &[readonly],
302
+ fieldset[disabled] & {
303
+ background-color: transparent;
304
+ }
305
+ }
306
+
307
+
308
+
309
+
310
+ // FORM FIELD FEEDBACK STATES
311
+ // --------------------------
312
+
313
+ // Warning
314
+ .has-warning {
315
+ .formFieldState(@state-warning-text, @state-warning-text, @state-warning-bg);
316
+ }
317
+ // Error
318
+ .has-error {
319
+ .formFieldState(@state-danger-text, @state-danger-text, @state-danger-bg);
320
+ }
321
+ // Success
322
+ .has-success {
323
+ .formFieldState(@state-success-text, @state-success-text, @state-success-bg);
324
+ }
325
+
326
+ // HTML5 invalid states
327
+ // Shares styles with the .control-group.error above
328
+ input:focus:invalid,
329
+ textarea:focus:invalid,
330
+ select:focus:invalid {
331
+ color: #b94a48;
332
+ border-color: #ee5f5b;
333
+ &:focus {
334
+ border-color: darken(#ee5f5b, 10%);
335
+ @shadow: 0 0 6px lighten(#ee5f5b, 20%);
336
+ .box-shadow(@shadow);
337
+ }
338
+ }
339
+
340
+
341
+
342
+ // FORM ACTIONS
343
+ // ------------
344
+
345
+ .form-actions {
346
+ padding: (@line-height-base - 1) 20px @line-height-base;
347
+ margin-top: @line-height-base;
348
+ margin-bottom: @line-height-base;
349
+ background-color: @form-actions-bg;
350
+ border-top: 1px solid #e5e5e5;
351
+ .clearfix(); // Adding clearfix to allow for .pull-right button containers
352
+ }
353
+
354
+
355
+
356
+ // HELP TEXT
357
+ // ---------
358
+
359
+ .help-block,
360
+ .help-inline {
361
+ color: lighten(@text-color, 25%); // lighten the text some for contrast
362
+ }
363
+
364
+ .help-block {
365
+ display: block; // account for any element using help-block
366
+ margin-bottom: (@line-height-base / 2);
367
+ }
368
+
369
+ .help-inline {
370
+ display: inline-block;
371
+ vertical-align: middle;
372
+ padding-left: 5px;
373
+ }
374
+
375
+
376
+
377
+ // Input groups
378
+ // --------------------------------------------------
379
+
380
+ // Base styles
381
+ // -------------------------
382
+ .input-group {
383
+ display: table;
384
+
385
+ // Undo padding and float of grid classes
386
+ &[class*="span"] {
387
+ float: none;
388
+ padding: 0;
389
+ }
390
+
391
+ input,
392
+ select {
393
+ width: 100%;
394
+ }
395
+ }
396
+
397
+ // Display as table-cell
398
+ // -------------------------
399
+ .input-group-addon,
400
+ .input-group-btn,
401
+ .input-group input {
402
+ display: table-cell;
403
+ margin: 0;
404
+ border-radius: 0;
405
+ &.input-small {
406
+ border-radius: 0;
407
+ }
408
+ &.input-large {
409
+ border-radius: 0;
410
+ }
411
+ }
412
+ // Addon and addon wrapper for buttons
413
+ .input-group-addon,
414
+ .input-group-btn {
415
+ width: 1%;
416
+ vertical-align: middle; // Match the inputs
417
+ }
418
+
419
+ // Text input groups
420
+ // -------------------------
421
+ .input-group-addon {
422
+ .box-sizing(border-box);
423
+ padding: 6px 8px;
424
+ font-size: @font-size-base;
425
+ font-weight: normal;
426
+ line-height: @line-height-base;
427
+ text-align: center;
428
+ text-shadow: 0 1px 0 #fff;
429
+ background-color: @grayLighter;
430
+ border: 1px solid #ccc;
431
+
432
+ &.input-small {
433
+ padding: @padding-small;
434
+ font-size: @font-size-small;
435
+ }
436
+ &.input-large {
437
+ padding: @padding-large;
438
+ font-size: @font-size-large;
439
+ }
440
+ }
441
+
442
+ // Reset rounded corners
443
+ .input-group input:first-child,
444
+ .input-group-addon:first-child {
445
+ .border-left-radius(@border-radius-base);
446
+ &.input-small {
447
+ .border-left-radius(@border-radius-small);
448
+ }
449
+ &.input-large {
450
+ .border-left-radius(@border-radius-large);
451
+ }
452
+ }
453
+ .input-group-addon:first-child {
454
+ border-right: 0;
455
+ }
456
+ .input-group input:last-child,
457
+ .input-group-addon:last-child {
458
+ .border-right-radius(@border-radius-base);
459
+ &.input-small {
460
+ .border-right-radius(@border-radius-small);
461
+ }
462
+ &.input-large {
463
+ .border-right-radius(@border-radius-large);
464
+ }
465
+ }
466
+ .input-group-addon:last-child {
467
+ border-left: 0;
468
+ }
469
+
470
+ // Button input groups
471
+ // -------------------------
472
+ .input-group-btn {
473
+ position: relative;
474
+ white-space: nowrap;
475
+ }
476
+ .input-group-btn > .btn {
477
+ position: relative;
478
+ float: left; // Collapse white-space
479
+ border-radius: 0;
480
+ + .btn {
481
+ margin-left: -1px;
482
+ }
483
+ // Bring the "active" button to the front
484
+ &:hover,
485
+ &:active {
486
+ z-index: 2;
487
+ }
488
+ }
489
+
490
+ // Prepended buttons
491
+ .input-group-btn:first-child {
492
+ // Round the left corners only
493
+ > .btn:first-child,
494
+ > .dropdown-toggle:first-child {
495
+ .border-left-radius(@border-radius-base);
496
+ &.btn-large { .border-left-radius(@border-radius-large); }
497
+ &.btn-small { .border-left-radius(@border-radius-small); }
498
+ }
499
+ }
500
+
501
+ // Appended buttons
502
+ .input-group-btn:last-child {
503
+ // Round the right corners only
504
+ > .btn:last-child,
505
+ > .dropdown-toggle {
506
+ .border-right-radius(@border-radius-base);
507
+ &.btn-large { .border-right-radius(@border-radius-large); }
508
+ &.btn-small { .border-right-radius(@border-radius-small); }
509
+ }
510
+ }
511
+
512
+
513
+
514
+ // Horizontal forms
515
+ // --------------------------------------------------
516
+
517
+ @media screen and (min-width: 768px) {
518
+
519
+ .form-horizontal {
520
+
521
+ // Increase spacing between groups
522
+ .control-group {
523
+ position: relative;
524
+ margin-bottom: @line-height-base;
525
+ .clearfix();
526
+
527
+ input,
528
+ select,
529
+ textarea {
530
+ margin-bottom: 0;
531
+ }
532
+ }
533
+
534
+ // Float the labels left
535
+ .control-group > .control-label {
536
+ float: left;
537
+ width: (@component-offset-horizontal - 20);
538
+ padding-top: 6px;
539
+ text-align: right;
540
+ }
541
+
542
+ // Move over all input controls and content over
543
+ .control-group > .controls {
544
+ margin-left: @component-offset-horizontal;
545
+ }
546
+
547
+ // Make sure form actions buttons are aligned with controls
548
+ .form-actions {
549
+ padding-left: @component-offset-horizontal;
550
+ }
551
+
552
+ }
553
+ }