padrino-admin 0.11.2 → 0.11.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/lib/padrino-admin/bootstrap-less/accordion.less +6 -9
  2. data/lib/padrino-admin/bootstrap-less/alerts.less +46 -51
  3. data/lib/padrino-admin/bootstrap-less/badges.less +2 -7
  4. data/lib/padrino-admin/bootstrap-less/bootstrap.less +0 -1
  5. data/lib/padrino-admin/bootstrap-less/breadcrumbs.less +3 -3
  6. data/lib/padrino-admin/bootstrap-less/button-groups.less +37 -37
  7. data/lib/padrino-admin/bootstrap-less/buttons.less +52 -67
  8. data/lib/padrino-admin/bootstrap-less/carousel.less +24 -35
  9. data/lib/padrino-admin/bootstrap-less/close.less +14 -13
  10. data/lib/padrino-admin/bootstrap-less/code.less +4 -7
  11. data/lib/padrino-admin/bootstrap-less/component-animations.less +2 -11
  12. data/lib/padrino-admin/bootstrap-less/dropdowns.less +26 -82
  13. data/lib/padrino-admin/bootstrap-less/font-awesome-ie7.less +1895 -292
  14. data/lib/padrino-admin/bootstrap-less/font-awesome.less +26 -530
  15. data/lib/padrino-admin/bootstrap-less/font-awesome/bootstrap.less +84 -0
  16. data/lib/padrino-admin/bootstrap-less/font-awesome/core.less +129 -0
  17. data/lib/padrino-admin/bootstrap-less/font-awesome/extras.less +93 -0
  18. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome-ie7.less +1953 -0
  19. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome.less +33 -0
  20. data/lib/padrino-admin/bootstrap-less/font-awesome/icons.less +381 -0
  21. data/lib/padrino-admin/bootstrap-less/font-awesome/mixins.less +48 -0
  22. data/lib/padrino-admin/bootstrap-less/font-awesome/path.less +14 -0
  23. data/lib/padrino-admin/bootstrap-less/font-awesome/variables.less +735 -0
  24. data/lib/padrino-admin/bootstrap-less/forms.less +123 -227
  25. data/lib/padrino-admin/bootstrap-less/grid.less +174 -19
  26. data/lib/padrino-admin/bootstrap-less/jumbotron.less +4 -4
  27. data/lib/padrino-admin/bootstrap-less/labels.less +52 -28
  28. data/lib/padrino-admin/bootstrap-less/list-group.less +37 -44
  29. data/lib/padrino-admin/bootstrap-less/media.less +1 -1
  30. data/lib/padrino-admin/bootstrap-less/mixins.less +97 -120
  31. data/lib/padrino-admin/bootstrap-less/modals.less +5 -4
  32. data/lib/padrino-admin/bootstrap-less/navbar.less +148 -174
  33. data/lib/padrino-admin/bootstrap-less/navs.less +145 -164
  34. data/lib/padrino-admin/bootstrap-less/padrino-admin.less +2 -2
  35. data/lib/padrino-admin/bootstrap-less/pager.less +45 -33
  36. data/lib/padrino-admin/bootstrap-less/pagination.less +11 -23
  37. data/lib/padrino-admin/bootstrap-less/panels.less +11 -1
  38. data/lib/padrino-admin/bootstrap-less/popovers.less +6 -6
  39. data/lib/padrino-admin/bootstrap-less/print.less +13 -2
  40. data/lib/padrino-admin/bootstrap-less/progress-bars.less +3 -3
  41. data/lib/padrino-admin/bootstrap-less/responsive-utilities.less +92 -32
  42. data/lib/padrino-admin/bootstrap-less/scaffolding.less +9 -18
  43. data/lib/padrino-admin/bootstrap-less/tables.less +70 -67
  44. data/lib/padrino-admin/bootstrap-less/thumbnails.less +6 -6
  45. data/lib/padrino-admin/bootstrap-less/tooltip.less +25 -1
  46. data/lib/padrino-admin/bootstrap-less/type.less +39 -46
  47. data/lib/padrino-admin/bootstrap-less/variables.less +135 -63
  48. data/lib/padrino-admin/generators/admin_app.rb +9 -0
  49. data/lib/padrino-admin/generators/admin_page.rb +9 -0
  50. data/lib/padrino-admin/generators/orm.rb +1 -10
  51. data/lib/padrino-admin/generators/templates/account/activerecord.rb.tt +1 -1
  52. data/lib/padrino-admin/generators/templates/account/datamapper.rb.tt +1 -1
  53. data/lib/padrino-admin/generators/templates/account/minirecord.rb.tt +1 -1
  54. data/lib/padrino-admin/generators/templates/account/mongoid.rb.tt +1 -1
  55. data/lib/padrino-admin/generators/templates/account/mongomapper.rb.tt +1 -1
  56. data/lib/padrino-admin/generators/templates/account/sequel.rb.tt +1 -1
  57. data/lib/padrino-admin/generators/templates/assets/images/font/FontAwesome.otf +0 -0
  58. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.eot +0 -0
  59. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.svg +153 -38
  60. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.ttf +0 -0
  61. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.woff +0 -0
  62. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/affix.js +120 -0
  63. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/{bootstrap-alert.js → alert.js} +32 -35
  64. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap.min.js +1 -1
  65. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/{bootstrap-button.js → button.js} +37 -37
  66. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/carousel.js +210 -0
  67. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/collapse.js +156 -0
  68. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/dropdown.js +155 -0
  69. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/modal.js +243 -0
  70. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/popover.js +111 -0
  71. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/scrollspy.js +156 -0
  72. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tab.js +133 -0
  73. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tooltip.js +356 -0
  74. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/transition.js +47 -0
  75. data/lib/padrino-admin/generators/templates/assets/stylesheets/bootstrap.css +406 -452
  76. data/lib/padrino-admin/generators/templates/erb/app/layouts/application.erb.tt +3 -3
  77. data/lib/padrino-admin/generators/templates/erb/app/sessions/new.erb.tt +1 -1
  78. data/lib/padrino-admin/generators/templates/haml/app/layouts/application.haml.tt +3 -3
  79. data/lib/padrino-admin/generators/templates/haml/app/sessions/new.haml.tt +1 -1
  80. data/lib/padrino-admin/generators/templates/page/controller.rb.tt +1 -1
  81. data/lib/padrino-admin/generators/templates/slim/app/layouts/application.slim.tt +3 -3
  82. data/lib/padrino-admin/generators/templates/slim/app/sessions/new.slim.tt +1 -1
  83. data/lib/padrino-admin/helpers/view_helpers.rb +1 -1
  84. data/test/generators/test_admin_app_generator.rb +9 -0
  85. data/test/generators/test_admin_page_generator.rb +11 -0
  86. metadata +27 -23
  87. data/lib/padrino-admin/bootstrap-less/glyphicons.less +0 -200
  88. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-affix.js +0 -117
  89. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-carousel.js +0 -207
  90. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-collapse.js +0 -167
  91. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-dropdown.js +0 -165
  92. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-modal.js +0 -251
  93. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-popover.js +0 -114
  94. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-scrollspy.js +0 -162
  95. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-tab.js +0 -144
  96. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-tooltip.js +0 -361
  97. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-transition.js +0 -60
  98. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-typeahead.js +0 -335
@@ -49,6 +49,6 @@
49
49
 
50
50
  // Undo default ul/ol styles
51
51
  .media-list {
52
- margin-left: 0;
52
+ padding-left: 0;
53
53
  list-style: none;
54
54
  }
@@ -71,7 +71,7 @@
71
71
  // CSS image replacement
72
72
  // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
73
73
  .hide-text() {
74
- font: 0/0 a;
74
+ font: ~"0/0" a;
75
75
  color: transparent;
76
76
  text-shadow: none;
77
77
  background-color: transparent;
@@ -155,7 +155,6 @@
155
155
  -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885
156
156
  -o-transform: skew(@x, @y);
157
157
  transform: skew(@x, @y);
158
- -webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319
159
158
  }
160
159
  .translate3d(@x, @y, @z) {
161
160
  -webkit-transform: translate3d(@x, @y, @z);
@@ -242,66 +241,71 @@
242
241
 
243
242
 
244
243
 
245
- // BACKGROUNDS
244
+ // GRADIENTS
246
245
  // --------------------------------------------------
247
246
 
248
- // Gradients
249
247
  #gradient {
250
- .horizontal(@startColor: #555, @endColor: #333) {
251
- background-color: @endColor;
252
- background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
253
- background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
254
- background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
255
- background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
256
- background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10
248
+
249
+ // Horizontal gradient, from left to right
250
+ //
251
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
252
+ // Color stops are not available in IE9 and below.
253
+ .horizontal(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) {
254
+ background-color: @end-color;
255
+ background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
256
+ background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+
257
+ background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
258
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
257
259
  background-repeat: repeat-x;
258
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down
260
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
259
261
  }
260
- .vertical(@startColor: #555, @endColor: #333) {
261
- background-color: @endColor;
262
- background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
263
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
264
- background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
265
- background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
266
- background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10
262
+
263
+ // Vertical gradient, from top to bottom
264
+ //
265
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
266
+ // Color stops are not available in IE9 and below.
267
+ .vertical(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) {
268
+ background-color: @end-color;
269
+ background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
270
+ background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+
271
+ background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
272
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
267
273
  background-repeat: repeat-x;
268
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down
274
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
269
275
  }
270
- .directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
271
- background-color: @endColor;
276
+
277
+ .directional(@start-color: #555, @end-color: #333, @deg: 45deg) {
278
+ background-color: @end-color;
272
279
  background-repeat: repeat-x;
273
- background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
274
- background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
275
- background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
276
- background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10
280
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+
281
+ background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+
282
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10
277
283
  }
278
- .horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
279
- background-color: mix(@midColor, @endColor, 80%);
280
- background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
281
- background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
282
- background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
283
- background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
284
- background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor);
284
+ .horizontal-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) {
285
+ background-color: mix(@mid-color, @end-color, 80%);
286
+ background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
287
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
288
+ background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
289
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
285
290
  background-repeat: no-repeat;
286
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
291
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
287
292
  }
288
293
 
289
- .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
290
- background-color: mix(@midColor, @endColor, 80%);
291
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
292
- background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
293
- background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
294
- background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
295
- background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
294
+ .vertical-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) {
295
+ background-color: mix(@mid-color, @end-color, 80%);
296
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
297
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
298
+ background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color);
299
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
296
300
  background-repeat: no-repeat;
297
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
301
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
298
302
  }
299
- .radial(@innerColor: #555, @outerColor: #333) {
300
- background-color: @outerColor;
301
- background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));
302
- background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
303
- background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
304
- background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
303
+ .radial(@inner-color: #555, @outer-color: #333) {
304
+ background-color: @outer-color;
305
+ background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color));
306
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
307
+ background-image: -moz-radial-gradient(circle, @inner-color, @outer-color);
308
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
305
309
  background-repeat: no-repeat;
306
310
  }
307
311
  .striped(@color: #555, @angle: 45deg) {
@@ -309,16 +313,20 @@
309
313
  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));
310
314
  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);
311
315
  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);
312
- 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);
313
316
  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);
314
317
  }
315
318
  }
319
+
316
320
  // Reset filters for IE
321
+ //
322
+ // When you need to remove a gradient background, don't forget to use this to reset
323
+ // the IE filter for IE9 and below.
317
324
  .reset-filter() {
318
325
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
319
326
  }
320
327
 
321
328
 
329
+
322
330
  // RETINA IMAGE SUPPORT
323
331
  // --------------------------------------------------
324
332
 
@@ -347,7 +355,7 @@
347
355
  // Dividers (basically an hr) within dropdowns and nav lists
348
356
  .nav-divider(@top: #e5e5e5, @bottom: #fff) {
349
357
  height: 2px; // 1px for background, one for border
350
- margin: ((@line-height-base / 2) - 1) 0;
358
+ margin: ((@line-height-computed / 2) - 1) 0;
351
359
  overflow: hidden;
352
360
  background-color: @top;
353
361
  border-bottom: 1px solid @bottom;
@@ -357,7 +365,8 @@
357
365
  // -------------------------
358
366
  // Easily pump out default styles, as well as :hover, :focus, :active,
359
367
  // and disabled options for all buttons
360
- .btn-pseudo-states(@background, @border) {
368
+ .btn-pseudo-states(@color, @background, @border) {
369
+ color: @color;
361
370
  background-color: @background;
362
371
  border-color: @border;
363
372
 
@@ -372,6 +381,7 @@
372
381
  &.disabled,
373
382
  &[disabled],
374
383
  fieldset[disabled] & {
384
+ &,
375
385
  &:hover,
376
386
  &:focus,
377
387
  &:active,
@@ -391,7 +401,22 @@
391
401
  margin-bottom: ((@navbar-height - @element-height) / 2);
392
402
  }
393
403
 
404
+ // Responsive utilities
405
+ // -------------------------
406
+ // More easily include all the states for responsive-utilities.less.
407
+ .responsive-visibility() {
408
+ display: block !important;
409
+ tr& { display: table-row !important; }
410
+ th&,
411
+ td& { display: table-cell !important; }
412
+ }
394
413
 
414
+ .responsive-invisibility() {
415
+ display: none !important;
416
+ tr& { display: none !important; }
417
+ th&,
418
+ td& { display: none !important; }
419
+ }
395
420
 
396
421
  // Grid System
397
422
  // -----------
@@ -410,6 +435,11 @@
410
435
  // Then clear the floated columns
411
436
  .clearfix();
412
437
 
438
+ @media (min-width: @screen-small) {
439
+ margin-left: (@grid-gutter-width / -2);
440
+ margin-right: (@grid-gutter-width / -2);
441
+ }
442
+
413
443
  // Negative margin nested rows out to align the content of columns
414
444
  .row {
415
445
  margin-left: (@grid-gutter-width / -2);
@@ -418,16 +448,18 @@
418
448
  }
419
449
  // Generate the columns
420
450
  .make-column(@columns) {
421
- @media (min-width: @grid-float-breakpoint) {
422
- float: left;
423
- // Calculate width based on number of columns available
424
- width: percentage(@columns / @grid-columns);
425
- }
451
+ position: relative;
426
452
  // Prevent columns from collapsing when empty
427
453
  min-height: 1px;
428
- // Set inner padding as gutters instead of margin
454
+ // Inner gutter via padding
429
455
  padding-left: (@grid-gutter-width / 2);
430
456
  padding-right: (@grid-gutter-width / 2);
457
+
458
+ // Calculate width based on number of columns available
459
+ @media (min-width: @grid-float-breakpoint) {
460
+ float: left;
461
+ width: percentage((@columns / @grid-columns));
462
+ }
431
463
  }
432
464
  // Generate the column offsets
433
465
  .make-column-offset(@columns) {
@@ -448,74 +480,13 @@
448
480
 
449
481
 
450
482
 
451
- // The Grid
452
- .generate-grid-columns(@grid-columns) {
453
-
454
- // Default columns
455
- .col-span-X (@index) when (@index > 0) {
456
- .col-span-@{index} { .col-span-(@index); }
457
- .col-span-X((@index - 1));
458
- }
459
- .col-span-X(0) {}
460
-
461
- // Offsets (gaps between columns)
462
- .col-offset-X (@index) when (@index > 0) {
463
- .col-offset-@{index} { .col-offset-(@index); }
464
- .col-offset-X((@index - 1));
465
- }
466
- .col-offset-X (0) {}
467
-
468
- // Source ordering
469
- .col-push-X (@index) when (@index > 0) {
470
- .col-push-@{index} { .col-push-(@index); }
471
- .col-push-X((@index - 1));
472
- }
473
- .col-push-X (0) {}
474
-
475
- // Source ordering
476
- .col-pull-X (@index) when (@index > 0) {
477
- .col-pull-@{index} { .col-pull-(@index); }
478
- .col-pull-X((@index - 1));
479
- }
480
- .col-pull-X (0) {}
481
-
482
- // Apply the styles
483
- .col-span-(@columns) {
484
- width: percentage((@columns / @grid-columns));
485
- }
486
- .col-offset-(@columns) {
487
- margin-left: percentage((@columns / @grid-columns));
488
- }
489
- .col-push-(@columns) {
490
- left: percentage((@columns / @grid-columns));
491
- }
492
- .col-pull-(@columns) {
493
- right: percentage((@columns / @grid-columns));
494
- }
495
-
496
- // Generate .spanX and .offsetX
497
- .col-span-X(@grid-columns);
498
- .col-offset-X(@grid-columns);
499
- .col-push-X(@grid-columns);
500
- .col-pull-X(@grid-columns);
501
- }
502
-
503
-
504
-
505
483
  // Framework mixins
506
484
  // --------------------------------------------------
507
485
 
508
- // Generate rem font-sizes with pixel fallbacks
509
- // By default uses `@font-size-base` with an initial value of 14 (1.4rem or 14px)
510
- .font-size(@font-size: @font-size-base) {
511
- @rem-size: (@font-size / 10);
512
- font-size: ~"@{font-size}px";
513
- font-size: ~"@{rem-size}rem";
514
- }
515
-
516
486
  // Generate form validation states
517
- .formFieldState(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) {
487
+ .form-field-validation(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) {
518
488
  // Color the label text
489
+ .help-block,
519
490
  .control-label {
520
491
  color: @text-color;
521
492
  }
@@ -530,4 +501,10 @@
530
501
  .box-shadow(@shadow);
531
502
  }
532
503
  }
504
+ // Set validation states also for addons
505
+ .input-group-addon {
506
+ color: @text-color;
507
+ border-color: @border-color;
508
+ background-color: @background-color;
509
+ }
533
510
  }
@@ -74,18 +74,19 @@
74
74
  // Modal header
75
75
  // Top section of the modal w/ title and dismiss
76
76
  .modal-header {
77
- padding: 9px 15px;
77
+ padding: @modal-title-padding;
78
78
  border-bottom: 1px solid #e5e5e5;
79
+ min-height: (@modal-title-padding + @modal-title-line-height);
79
80
  }
80
81
  // Close icon
81
82
  .modal-header .close {
82
- margin-top: 2px;
83
+ margin-top: -2px;
83
84
  }
84
85
 
85
86
  // Title text within header
86
87
  .modal-title {
87
88
  margin: 0;
88
- line-height: 30px; // effectively set a min-height for the header
89
+ line-height: @modal-title-line-height;
89
90
  }
90
91
 
91
92
  // Modal body
@@ -119,7 +120,7 @@
119
120
  }
120
121
 
121
122
  // Scale up the modal
122
- @media screen and (min-width: 768px) {
123
+ @media screen and (min-width: @screen-tablet) {
123
124
 
124
125
  .modal-dialog {
125
126
  left: 50%;
@@ -5,9 +5,12 @@
5
5
  // Wrapper and base class
6
6
  .navbar {
7
7
  position: relative;
8
- padding: 10px 15px;
8
+ margin-bottom: 20px;
9
+ padding-left: @navbar-padding;
10
+ padding-right: @navbar-padding;
9
11
  background-color: @navbar-bg;
10
12
  border-radius: @border-radius-base;
13
+
11
14
  // Prevent floats from breaking the navbar
12
15
  .clearfix();
13
16
  }
@@ -15,34 +18,42 @@
15
18
  // Navbar nav links
16
19
  // -------------------------
17
20
 
18
- .navbar {
19
- .nav {
20
- // space out from .navbar .brand and .btn-navbar
21
- margin-top: 15px;
22
- }
23
- .nav > li > a {
24
- padding-top: ((@navbar-height - @line-height-base) / 2);
25
- padding-bottom: ((@navbar-height - @line-height-base) / 2);
21
+ .navbar-nav {
22
+ // Space out from .navbar .brand and .btn-navbar when stacked in mobile views
23
+ // and outdent nav links so text lines up with logo.
24
+ margin-top: 10px;
25
+ margin-bottom: 15px;
26
+
27
+ > li > a {
28
+ padding-top: ((@navbar-height - @line-height-computed) / 2);
29
+ padding-bottom: ((@navbar-height - @line-height-computed) / 2);
26
30
  color: @navbar-link-color;
27
31
  line-height: 20px;
32
+ border-radius: @border-radius-base;
28
33
  }
29
- .nav > li > a:hover,
30
- .nav > li > a:focus {
34
+ > li > a:hover,
35
+ > li > a:focus {
31
36
  color: @navbar-link-hover-color;
32
37
  background-color: @navbar-link-hover-bg;
33
38
  }
34
- .nav > .active > a,
35
- .nav > .active > a:hover,
36
- .nav > .active > a:focus {
39
+ > .active > a,
40
+ > .active > a:hover,
41
+ > .active > a:focus {
37
42
  color: @navbar-link-active-color;
38
43
  background-color: @navbar-link-active-bg;
39
44
  }
40
- .nav > .disabled > a,
41
- .nav > .disabled > a:hover,
42
- .nav > .disabled > a:focus {
45
+ > .disabled > a,
46
+ > .disabled > a:hover,
47
+ > .disabled > a:focus {
43
48
  color: @navbar-link-disabled-color;
44
49
  background-color: @navbar-link-disabled-bg;
45
50
  }
51
+
52
+ // Right aligned contents
53
+ // Make them full width first so that they align properly on mobile
54
+ &.pull-right {
55
+ width: 100%;
56
+ }
46
57
  }
47
58
 
48
59
 
@@ -65,8 +76,13 @@
65
76
  z-index: @zindex-navbar-fixed;
66
77
  border-radius: 0;
67
78
  }
68
- .navbar-fixed-top { top: 0; }
69
- .navbar-fixed-bottom { bottom: 0; }
79
+ .navbar-fixed-top {
80
+ top: 0;
81
+ }
82
+ .navbar-fixed-bottom {
83
+ bottom: 0;
84
+ margin-bottom: 0; // override .navbar defaults
85
+ }
70
86
 
71
87
 
72
88
 
@@ -80,10 +96,10 @@
80
96
  max-width: 200px;
81
97
  margin-left: auto;
82
98
  margin-right: auto;
83
- padding: 7px 15px;
84
- font-size: 18px;
99
+ padding: @navbar-padding;
100
+ font-size: @font-size-large;
85
101
  font-weight: 500;
86
- line-height: @line-height-base;
102
+ line-height: @line-height-computed;
87
103
  color: @navbar-brand-color;
88
104
  text-align: center;
89
105
  &:hover,
@@ -122,61 +138,57 @@
122
138
  }
123
139
  }
124
140
 
125
- // Dividers in navbar
126
- .navbar .nav > .divider {
127
- .nav-divider(darken(@navbar-bg, 5%), lighten(@navbar-bg, 5%));
128
- }
129
-
130
141
  // Navbar form
131
142
  .navbar-form {
132
- .navbar-vertical-align(34px); // Vertically center in navbar
143
+ .form-inline();
144
+ .navbar-vertical-align(@input-height-base); // Vertically center in navbar
133
145
  }
134
146
 
135
147
  // Dropdown menus
136
148
 
137
149
  // Menu position and menu carets
138
- .navbar .nav > li > .dropdown-menu {
150
+ .navbar-nav > li > .dropdown-menu {
139
151
  margin-top: 0;
140
152
  border-top-left-radius: 0;
141
153
  border-top-right-radius: 0;
142
154
  }
143
155
  // Menu position and menu caret support for dropups via extra dropup class
144
- .navbar-fixed-bottom .nav > li > .dropdown-menu {
156
+ .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
145
157
  border-bottom-left-radius: 0;
146
158
  border-bottom-right-radius: 0;
147
159
  }
148
160
 
149
161
  // Dropdown menu items and carets
150
- .navbar .nav {
162
+ .navbar-nav {
151
163
  // Caret should match text color on hover
152
- li.dropdown > a:hover .caret,
153
- li.dropdown > a:focus .caret {
164
+ > .dropdown > a:hover .caret,
165
+ > .dropdown > a:focus .caret {
154
166
  border-top-color: @navbar-link-hover-color;
155
167
  border-bottom-color: @navbar-link-hover-color;
156
168
  }
157
169
 
158
170
  // Remove background color from open dropdown
159
- li.dropdown.open > .dropdown-toggle,
160
- li.dropdown.active > .dropdown-toggle,
161
- li.dropdown.open.active > .dropdown-toggle {
171
+ > .open > a,
172
+ > .open > a:hover,
173
+ > .open > a:focus {
162
174
  background-color: @navbar-link-active-bg;
163
175
  color: @navbar-link-active-color;
164
176
  }
165
- li.dropdown > .dropdown-toggle .caret {
177
+ > .dropdown > a .caret {
166
178
  border-top-color: @navbar-link-color;
167
179
  border-bottom-color: @navbar-link-color;
168
180
  }
169
- li.dropdown.open > .dropdown-toggle .caret,
170
- li.dropdown.active > .dropdown-toggle .caret,
171
- li.dropdown.open.active > .dropdown-toggle .caret {
181
+ > .open > a .caret,
182
+ > .open > a:hover .caret,
183
+ > .open > a:focus .caret {
172
184
  border-top-color: @navbar-link-active-color;
173
185
  border-bottom-color: @navbar-link-active-color;
174
186
  }
175
187
  }
176
188
 
177
189
  // Right aligned menus need alt position
178
- .navbar .pull-right > li > .dropdown-menu,
179
- .navbar .nav > li > .dropdown-menu.pull-right {
190
+ .navbar-nav.pull-right > li > .dropdown-menu,
191
+ .navbar-nav > li > .dropdown-menu.pull-right {
180
192
  left: auto;
181
193
  right: 0;
182
194
  }
@@ -193,34 +205,36 @@
193
205
  color: @navbar-inverse-brand-color;
194
206
  &:hover,
195
207
  &:focus {
196
- color: @navbar-inverse-brand-color-hover;
197
- background-color: @navbar-inverse-brand-bg-hover;
208
+ color: @navbar-inverse-brand-hover-color;
209
+ background-color: @navbar-inverse-brand-hover-bg;
198
210
  }
199
211
  }
200
212
 
201
213
  .navbar-text {
202
- color: @navbar-inverse-text;
214
+ color: @navbar-inverse-color;
203
215
  }
204
216
 
205
- .nav > li > a {
206
- color: @navbar-inverse-link-color;
207
- }
208
- .nav > li > a:hover,
209
- .nav > li > a:focus {
210
- color: @navbar-inverse-link-hover-color;
211
- background-color: @navbar-inverse-link-hover-bg;
212
- }
213
- .nav > .active > a,
214
- .nav > .active > a:hover,
215
- .nav > .active > a:focus {
216
- color: @navbar-inverse-link-active-color;
217
- background-color: @navbar-inverse-link-active-bg;
218
- }
219
- .nav > .disabled > a,
220
- .nav > .disabled > a:hover,
221
- .nav > .disabled > a:focus {
222
- color: @navbar-inverse-link-disabled-color;
223
- background-color: @navbar-inverse-link-disabled-bg;
217
+ .navbar-nav {
218
+ > li > a {
219
+ color: @navbar-inverse-link-color;
220
+ }
221
+ > li > a:hover,
222
+ > li > a:focus {
223
+ color: @navbar-inverse-link-hover-color;
224
+ background-color: @navbar-inverse-link-hover-bg;
225
+ }
226
+ > .active > a,
227
+ > .active > a:hover,
228
+ > .active > a:focus {
229
+ color: @navbar-inverse-link-active-color;
230
+ background-color: @navbar-inverse-link-active-bg;
231
+ }
232
+ > .disabled > a,
233
+ > .disabled > a:hover,
234
+ > .disabled > a:focus {
235
+ color: @navbar-inverse-link-disabled-color;
236
+ background-color: @navbar-inverse-link-disabled-bg;
237
+ }
224
238
  }
225
239
 
226
240
  // Darken the responsive nav toggle
@@ -235,87 +249,62 @@
235
249
  }
236
250
  }
237
251
 
238
- // Darken dividers
239
- .nav > .divider {
240
- background-color: darken(@navbar-inverse-bg, 5%);
241
- border-bottom-color: lighten(@navbar-inverse-bg, 5%);
242
- }
243
-
244
252
  // Dropdowns
245
- .nav li.dropdown.open > .dropdown-toggle,
246
- .nav li.dropdown.active > .dropdown-toggle,
247
- .nav li.dropdown.open.active > .dropdown-toggle {
248
- background-color: @navbar-inverse-link-active-bg;
249
- color: @navbar-inverse-link-active-color;
250
- }
251
- .nav li.dropdown > a:hover .caret {
252
- border-top-color: @navbar-inverse-link-hover-color;
253
- border-bottom-color: @navbar-inverse-link-hover-color;
254
- }
255
- .nav li.dropdown > .dropdown-toggle .caret {
256
- border-top-color: @navbar-inverse-link-color;
257
- border-bottom-color: @navbar-inverse-link-color;
258
- }
259
- .nav li.dropdown.open > .dropdown-toggle .caret,
260
- .nav li.dropdown.active > .dropdown-toggle .caret,
261
- .nav li.dropdown.open.active > .dropdown-toggle .caret {
262
- border-top-color: @navbar-inverse-link-active-color;
263
- border-bottom-color: @navbar-inverse-link-active-color;
253
+ .navbar-nav {
254
+ > .open > a,
255
+ > .open > a:hover,
256
+ > .open > a:focus {
257
+ background-color: @navbar-inverse-link-active-bg;
258
+ color: @navbar-inverse-link-active-color;
259
+ }
260
+ > .dropdown > a:hover .caret {
261
+ border-top-color: @navbar-inverse-link-hover-color;
262
+ border-bottom-color: @navbar-inverse-link-hover-color;
263
+ }
264
+ > .dropdown > a .caret {
265
+ border-top-color: @navbar-inverse-link-color;
266
+ border-bottom-color: @navbar-inverse-link-color;
267
+ }
268
+ > .open > a .caret,
269
+ > .open > a:hover .caret,
270
+ > .open > a:focus .caret {
271
+ border-top-color: @navbar-inverse-link-active-color;
272
+ border-bottom-color: @navbar-inverse-link-active-color;
273
+ }
274
+
264
275
  }
265
276
  }
266
277
 
267
278
 
268
279
 
269
- // Inverse navbar
280
+ // Responsive navbar
270
281
  // --------------------------------------------------
271
282
 
272
- @media screen and (min-width: 768px) {
273
- .navbar {
274
- padding-top: 0;
275
- padding-bottom: 0;
276
- }
283
+ @media screen and (min-width: @grid-float-breakpoint) {
284
+
277
285
  .navbar-brand {
278
286
  float: left;
279
- padding-top: ((@navbar-height - @line-height-base) / 2);
280
- padding-bottom: ((@navbar-height - @line-height-base) / 2);
281
- margin-left: -10px;
287
+ margin-left: -(@navbar-padding);
288
+ margin-right: 5px;
282
289
  }
283
- .navbar .nav {
290
+ .navbar-nav {
284
291
  float: left;
285
- margin-top: 0; // undo top margin to make nav extend full height of navbar
286
- .clearfix();
292
+ // undo margin to make nav extend full height of navbar
293
+ margin-top: 0;
294
+ margin-bottom: 0;
295
+
296
+ > li {
297
+ float: left;
298
+ > a {
299
+ border-radius: 0;
300
+ }
301
+ }
287
302
 
288
303
  &.pull-right {
289
304
  float: right;
305
+ width: auto;
290
306
  }
291
307
  }
292
- .navbar .nav > li {
293
- float: left;
294
- }
295
-
296
- // Dividers go vertical
297
- // Change the height and height, disable bottom border, then add right border
298
- .navbar .nav > .divider {
299
- width: 1px;
300
- height: (@navbar-height * .6);
301
- margin: (@navbar-height * .2) 9px;
302
- border-bottom: 0;
303
- border-right: 1px solid lighten(@navbar-bg, 5%);
304
- }
305
- // Since we override the border, we need to specify it again for inverted navbars
306
- .navbar-inverse .nav > .divider {
307
- border-right-color: lighten(@navbar-inverse-bg, 5%);
308
- }
309
-
310
- .navbar-fixed-left {
311
- padding-left: 0;
312
- padding-right: 0;
313
- }
314
- .navbar-fixed-left .navbar-brand,
315
- .navbar-fixed-left .nav,
316
- .navbar-fixed-left .nav > li {
317
- float: none;
318
- }
319
308
 
320
309
  // Required to make the collapsing navbar work on regular desktops
321
310
  .navbar-toggle {
@@ -331,10 +320,33 @@
331
320
 
332
321
  }
333
322
 
334
- /*
335
323
 
336
- // Janky solution for now to account for links outside the .nav
337
- // -------------------------
324
+
325
+ // Buttons in navbars
326
+ //
327
+ // Vertically center a button within a navbar (when *not* in a form).
328
+
329
+ .navbar-btn {
330
+ margin-top: ((@navbar-height - @input-height-base) / 2);
331
+ }
332
+
333
+
334
+
335
+ // Text in navbars
336
+ //
337
+ // Add a class to make any element properly align itself vertically within the navbars.
338
+
339
+ .navbar-text {
340
+ .navbar-vertical-align(@line-height-computed);
341
+ }
342
+
343
+
344
+
345
+ // Links in navbars
346
+ //
347
+ // Add a class to ensure links outside the navbar nav are colored correctly.
348
+
349
+ // Default navbar variables
338
350
  .navbar-link {
339
351
  color: @navbar-link-color;
340
352
  &:hover {
@@ -342,48 +354,10 @@
342
354
  }
343
355
  }
344
356
 
345
- // Buttons in navbar
346
- // -------------------------
347
- .navbar .btn,
348
- .navbar .btn-group {
349
- .navbarVerticalAlign(30px); // Vertically center in navbar
350
- }
351
- .navbar .btn-group .btn,
352
- .navbar .input-prepend .btn,
353
- .navbar .input-append .btn {
354
- margin-top: 0; // then undo the margin here so we don't accidentally double it
355
- }
356
-
357
- // Navbar forms
358
- // -------------------------
359
- .navbar-form {
360
- margin-bottom: 0; // remove default bottom margin
361
- .clearfix();
362
- input,
363
- select,
364
- .radio,
365
- .checkbox {
366
- .navbarVerticalAlign(30px); // Vertically center in navbar
367
- }
368
- input,
369
- select,
370
- .btn {
371
- display: inline-block;
372
- margin-bottom: 0;
373
- }
374
- input[type="image"],
375
- input[type="checkbox"],
376
- input[type="radio"] {
377
- margin-top: 3px;
378
- }
379
- .input-append,
380
- .input-prepend {
381
- margin-top: 5px;
382
- white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
383
- input {
384
- margin-top: 0; // remove the margin on top since it's on the parent
385
- }
357
+ // Use the inverse navbar variables
358
+ .navbar-inverse .navbar-link {
359
+ color: @navbar-inverse-link-color;
360
+ &:hover {
361
+ color: @navbar-inverse-link-hover-color;
386
362
  }
387
363
  }
388
-
389
- */