padrino-admin 0.12.2 → 0.12.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/lib/padrino-admin.rb +9 -17
  3. data/lib/padrino-admin/access_control.rb +1 -0
  4. data/lib/padrino-admin/bootstrap-less/alerts.less +1 -1
  5. data/lib/padrino-admin/bootstrap-less/badges.less +10 -6
  6. data/lib/padrino-admin/bootstrap-less/bootstrap.less +0 -10
  7. data/lib/padrino-admin/bootstrap-less/breadcrumbs.less +6 -3
  8. data/lib/padrino-admin/bootstrap-less/button-groups.less +22 -44
  9. data/lib/padrino-admin/bootstrap-less/buttons.less +12 -17
  10. data/lib/padrino-admin/bootstrap-less/carousel.less +33 -10
  11. data/lib/padrino-admin/bootstrap-less/code.less +15 -8
  12. data/lib/padrino-admin/bootstrap-less/dropdowns.less +31 -11
  13. data/lib/padrino-admin/bootstrap-less/font-awesome/bordered-pulled.less +16 -0
  14. data/lib/padrino-admin/bootstrap-less/font-awesome/core.less +9 -126
  15. data/lib/padrino-admin/bootstrap-less/font-awesome/fixed-width.less +6 -0
  16. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome.less +14 -30
  17. data/lib/padrino-admin/bootstrap-less/font-awesome/icons.less +409 -378
  18. data/lib/padrino-admin/bootstrap-less/font-awesome/larger.less +13 -0
  19. data/lib/padrino-admin/bootstrap-less/font-awesome/list.less +19 -0
  20. data/lib/padrino-admin/bootstrap-less/font-awesome/mixins.less +14 -42
  21. data/lib/padrino-admin/bootstrap-less/font-awesome/path.less +6 -6
  22. data/lib/padrino-admin/bootstrap-less/font-awesome/rotated-flipped.less +9 -0
  23. data/lib/padrino-admin/bootstrap-less/font-awesome/spinning.less +30 -0
  24. data/lib/padrino-admin/bootstrap-less/font-awesome/stacked.less +20 -0
  25. data/lib/padrino-admin/bootstrap-less/font-awesome/variables.less +377 -731
  26. data/lib/padrino-admin/bootstrap-less/forms.less +105 -39
  27. data/lib/padrino-admin/bootstrap-less/glyphicons.less +16 -15
  28. data/lib/padrino-admin/bootstrap-less/grid.less +59 -305
  29. data/lib/padrino-admin/bootstrap-less/input-groups.less +43 -13
  30. data/lib/padrino-admin/bootstrap-less/jumbotron.less +12 -8
  31. data/lib/padrino-admin/bootstrap-less/labels.less +6 -0
  32. data/lib/padrino-admin/bootstrap-less/list-group.less +37 -15
  33. data/lib/padrino-admin/bootstrap-less/mixins.less +283 -80
  34. data/lib/padrino-admin/bootstrap-less/modals.less +19 -22
  35. data/lib/padrino-admin/bootstrap-less/navbar.less +73 -78
  36. data/lib/padrino-admin/bootstrap-less/navs.less +45 -32
  37. data/lib/padrino-admin/bootstrap-less/normalize.less +148 -121
  38. data/lib/padrino-admin/bootstrap-less/padrino-admin.less +3 -1
  39. data/lib/padrino-admin/bootstrap-less/pager.less +5 -5
  40. data/lib/padrino-admin/bootstrap-less/pagination.less +8 -3
  41. data/lib/padrino-admin/bootstrap-less/panels.less +102 -20
  42. data/lib/padrino-admin/bootstrap-less/print.less +6 -5
  43. data/lib/padrino-admin/bootstrap-less/progress-bars.less +4 -19
  44. data/lib/padrino-admin/bootstrap-less/responsive-utilities.less +32 -159
  45. data/lib/padrino-admin/bootstrap-less/scaffolding.less +18 -14
  46. data/lib/padrino-admin/bootstrap-less/tables.less +47 -50
  47. data/lib/padrino-admin/bootstrap-less/theme.less +33 -18
  48. data/lib/padrino-admin/bootstrap-less/thumbnails.less +23 -18
  49. data/lib/padrino-admin/bootstrap-less/tooltip.less +9 -9
  50. data/lib/padrino-admin/bootstrap-less/type.less +139 -81
  51. data/lib/padrino-admin/bootstrap-less/utilities.less +15 -1
  52. data/lib/padrino-admin/bootstrap-less/variables.less +398 -191
  53. data/lib/padrino-admin/bootstrap-less/wells.less +1 -1
  54. data/lib/padrino-admin/generators/admin_app.rb +1 -1
  55. data/lib/padrino-admin/generators/templates/account/minirecord.rb.tt +1 -1
  56. data/lib/padrino-admin/generators/templates/assets/images/font/FontAwesome.otf +0 -0
  57. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.eot +0 -0
  58. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.svg +23 -8
  59. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.ttf +0 -0
  60. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.woff +0 -0
  61. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/affix.js +36 -25
  62. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/alert.js +7 -17
  63. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap.min.js +6 -6
  64. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/button.js +26 -28
  65. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/carousel.js +22 -34
  66. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/collapse.js +9 -18
  67. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/dropdown.js +25 -32
  68. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/modal.js +27 -30
  69. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/popover.js +16 -23
  70. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/scrollspy.js +19 -24
  71. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tab.js +10 -20
  72. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tooltip.js +54 -41
  73. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/transition.js +13 -21
  74. data/lib/padrino-admin/generators/templates/assets/javascripts/jquery-1.11.0.min.js +4 -0
  75. data/lib/padrino-admin/generators/templates/assets/stylesheets/bootstrap.css +4 -1238
  76. data/lib/padrino-admin/generators/templates/assets/stylesheets/fonts/FontAwesome.otf +0 -0
  77. data/lib/padrino-admin/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.eot +0 -0
  78. data/lib/padrino-admin/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.svg +414 -0
  79. data/lib/padrino-admin/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.ttf +0 -0
  80. data/lib/padrino-admin/generators/templates/assets/stylesheets/fonts/fontawesome-webfont.woff +0 -0
  81. data/lib/padrino-admin/generators/templates/erb/app/base/index.erb.tt +5 -5
  82. data/lib/padrino-admin/generators/templates/erb/app/errors/403.erb.tt +1 -1
  83. data/lib/padrino-admin/generators/templates/erb/app/errors/404.erb.tt +1 -1
  84. data/lib/padrino-admin/generators/templates/erb/app/errors/500.erb.tt +1 -1
  85. data/lib/padrino-admin/generators/templates/erb/app/layouts/application.erb.tt +2 -2
  86. data/lib/padrino-admin/generators/templates/erb/app/sessions/new.erb.tt +1 -1
  87. data/lib/padrino-admin/generators/templates/erb/page/index.erb.tt +5 -5
  88. data/lib/padrino-admin/generators/templates/haml/app/base/index.haml.tt +5 -5
  89. data/lib/padrino-admin/generators/templates/haml/app/errors/403.haml.tt +1 -1
  90. data/lib/padrino-admin/generators/templates/haml/app/errors/404.haml.tt +1 -1
  91. data/lib/padrino-admin/generators/templates/haml/app/errors/500.haml.tt +1 -1
  92. data/lib/padrino-admin/generators/templates/haml/app/layouts/application.haml.tt +2 -2
  93. data/lib/padrino-admin/generators/templates/haml/app/sessions/new.haml.tt +2 -1
  94. data/lib/padrino-admin/generators/templates/haml/page/index.haml.tt +4 -4
  95. data/lib/padrino-admin/generators/templates/slim/app/base/index.slim.tt +5 -5
  96. data/lib/padrino-admin/generators/templates/slim/app/errors/403.slim.tt +1 -1
  97. data/lib/padrino-admin/generators/templates/slim/app/errors/404.slim.tt +1 -1
  98. data/lib/padrino-admin/generators/templates/slim/app/errors/500.slim.tt +1 -1
  99. data/lib/padrino-admin/generators/templates/slim/app/layouts/application.slim.tt +2 -2
  100. data/lib/padrino-admin/generators/templates/slim/app/sessions/new.slim.tt +1 -1
  101. data/lib/padrino-admin/generators/templates/slim/page/index.slim.tt +4 -4
  102. data/lib/padrino-admin/helpers/view_helpers.rb +1 -1
  103. data/lib/padrino-admin/locale/admin/zh_tw.yml +22 -22
  104. data/lib/padrino-admin/locale/orm/cs.yml +0 -25
  105. data/lib/padrino-admin/locale/orm/da.yml +0 -25
  106. data/lib/padrino-admin/locale/orm/de.yml +0 -25
  107. data/lib/padrino-admin/locale/orm/en.yml +0 -25
  108. data/lib/padrino-admin/locale/orm/es.yml +0 -25
  109. data/lib/padrino-admin/locale/orm/fr.yml +0 -25
  110. data/lib/padrino-admin/locale/orm/hu.yml +0 -25
  111. data/lib/padrino-admin/locale/orm/it.yml +0 -25
  112. data/lib/padrino-admin/locale/orm/ja.yml +0 -25
  113. data/lib/padrino-admin/locale/orm/lv.yml +0 -25
  114. data/lib/padrino-admin/locale/orm/nl.yml +0 -25
  115. data/lib/padrino-admin/locale/orm/no.yml +1 -26
  116. data/lib/padrino-admin/locale/orm/pt_br.yml +0 -25
  117. data/lib/padrino-admin/locale/orm/ro.yml +0 -25
  118. data/lib/padrino-admin/locale/orm/ru.yml +0 -25
  119. data/lib/padrino-admin/locale/orm/sv.yml +0 -25
  120. data/lib/padrino-admin/locale/orm/tr.yml +0 -25
  121. data/lib/padrino-admin/locale/orm/uk.yml +0 -25
  122. data/lib/padrino-admin/locale/orm/zh_cn.yml +0 -25
  123. data/lib/padrino-admin/locale/orm/zh_tw.yml +0 -25
  124. data/test/fixtures/data_mapper.rb +0 -41
  125. data/test/generators/test_admin_app_generator.rb +3 -6
  126. data/test/test_locale.rb +0 -33
  127. metadata +19 -14
  128. data/lib/padrino-admin/bootstrap-less/accordion.less +0 -31
  129. data/lib/padrino-admin/bootstrap-less/font-awesome-ie7.less +0 -1953
  130. data/lib/padrino-admin/bootstrap-less/font-awesome.less +0 -33
  131. data/lib/padrino-admin/bootstrap-less/font-awesome/bootstrap.less +0 -84
  132. data/lib/padrino-admin/bootstrap-less/font-awesome/extras.less +0 -93
  133. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome-ie7.less +0 -1953
  134. data/lib/padrino-admin/generators/templates/assets/javascripts/jquery-1.9.0.min.js +0 -4
  135. data/lib/padrino-admin/utils/crypt.rb +0 -41
@@ -10,13 +10,18 @@
10
10
  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
11
11
 
12
12
  // Undo padding and float of grid classes
13
- &.col {
13
+ &[class*="col-"] {
14
14
  float: none;
15
15
  padding-left: 0;
16
16
  padding-right: 0;
17
17
  }
18
18
 
19
19
  .form-control {
20
+ // IE9 fubars the placeholder attribute in text inputs and the arrows on
21
+ // select elements in input groups. To fix it, we float the input. Details:
22
+ // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
23
+ float: left;
24
+
20
25
  width: 100%;
21
26
  margin-bottom: 0;
22
27
  }
@@ -61,6 +66,7 @@
61
66
  font-size: @font-size-base;
62
67
  font-weight: normal;
63
68
  line-height: 1;
69
+ color: @input-color;
64
70
  text-align: center;
65
71
  background-color: @input-group-addon-bg;
66
72
  border: 1px solid @input-group-addon-border-color;
@@ -89,8 +95,10 @@
89
95
  .input-group .form-control:first-child,
90
96
  .input-group-addon:first-child,
91
97
  .input-group-btn:first-child > .btn,
98
+ .input-group-btn:first-child > .btn-group > .btn,
92
99
  .input-group-btn:first-child > .dropdown-toggle,
93
- .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
100
+ .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
101
+ .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
94
102
  .border-right-radius(0);
95
103
  }
96
104
  .input-group-addon:first-child {
@@ -99,8 +107,10 @@
99
107
  .input-group .form-control:last-child,
100
108
  .input-group-addon:last-child,
101
109
  .input-group-btn:last-child > .btn,
110
+ .input-group-btn:last-child > .btn-group > .btn,
102
111
  .input-group-btn:last-child > .dropdown-toggle,
103
- .input-group-btn:first-child > .btn:not(:first-child) {
112
+ .input-group-btn:first-child > .btn:not(:first-child),
113
+ .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
104
114
  .border-left-radius(0);
105
115
  }
106
116
  .input-group-addon:last-child {
@@ -111,17 +121,37 @@
111
121
  // -------------------------
112
122
  .input-group-btn {
113
123
  position: relative;
124
+ // Jankily prevent input button groups from wrapping with `white-space` and
125
+ // `font-size` in combination with `inline-block` on buttons.
126
+ font-size: 0;
114
127
  white-space: nowrap;
115
- }
116
- .input-group-btn > .btn {
117
- position: relative;
118
- // Jankily prevent input button groups from wrapping
119
- + .btn {
120
- margin-left: -4px;
128
+
129
+ // Negative margin for spacing, position for bringing hovered/focused/actived
130
+ // element above the siblings.
131
+ > .btn {
132
+ position: relative;
133
+ + .btn {
134
+ margin-left: -1px;
135
+ }
136
+ // Bring the "active" button to the front
137
+ &:hover,
138
+ &:focus,
139
+ &:active {
140
+ z-index: 2;
141
+ }
142
+ }
143
+
144
+ // Negative margin to only have a 1px border between the two
145
+ &:first-child {
146
+ > .btn,
147
+ > .btn-group {
148
+ margin-right: -1px;
149
+ }
121
150
  }
122
- // Bring the "active" button to the front
123
- &:hover,
124
- &:active {
125
- z-index: 2;
151
+ &:last-child {
152
+ > .btn,
153
+ > .btn-group {
154
+ margin-left: -1px;
155
+ }
126
156
  }
127
157
  }
@@ -6,25 +6,28 @@
6
6
  .jumbotron {
7
7
  padding: @jumbotron-padding;
8
8
  margin-bottom: @jumbotron-padding;
9
- font-size: (@font-size-base * 1.5);
10
- font-weight: 200;
11
- line-height: (@line-height-base * 1.5);
12
9
  color: @jumbotron-color;
13
10
  background-color: @jumbotron-bg;
14
11
 
15
- h1 {
16
- line-height: 1;
12
+ h1,
13
+ .h1 {
17
14
  color: @jumbotron-heading-color;
18
15
  }
19
16
  p {
20
- line-height: 1.4;
17
+ margin-bottom: (@jumbotron-padding / 2);
18
+ font-size: @jumbotron-font-size;
19
+ font-weight: 200;
21
20
  }
22
21
 
23
22
  .container & {
24
23
  border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
25
24
  }
26
25
 
27
- @media screen and (min-width: @screen-tablet) {
26
+ .container {
27
+ max-width: 100%;
28
+ }
29
+
30
+ @media screen and (min-width: @screen-sm-min) {
28
31
  padding-top: (@jumbotron-padding * 1.6);
29
32
  padding-bottom: (@jumbotron-padding * 1.6);
30
33
 
@@ -33,7 +36,8 @@
33
36
  padding-right: (@jumbotron-padding * 2);
34
37
  }
35
38
 
36
- h1 {
39
+ h1,
40
+ .h1 {
37
41
  font-size: (@font-size-base * 4.5);
38
42
  }
39
43
  }
@@ -28,6 +28,12 @@
28
28
  &:empty {
29
29
  display: none;
30
30
  }
31
+
32
+ // Quick fix for labels in buttons
33
+ .btn & {
34
+ position: relative;
35
+ top: -1px;
36
+ }
31
37
  }
32
38
 
33
39
  // Colors
@@ -2,17 +2,21 @@
2
2
  // List groups
3
3
  // --------------------------------------------------
4
4
 
5
+
5
6
  // Base class
6
7
  //
7
8
  // Easily usable on <ul>, <ol>, or <div>.
9
+
8
10
  .list-group {
9
11
  // No need to set list-style: none; since .list-group-item is block level
10
12
  margin-bottom: 20px;
11
13
  padding-left: 0; // reset padding because ul and ol
12
14
  }
13
15
 
16
+
14
17
  // Individual list items
15
- // -------------------------
18
+ //
19
+ // Use on `li`s or `div`s within the `.list-group` parent.
16
20
 
17
21
  .list-group-item {
18
22
  position: relative;
@@ -39,21 +43,26 @@
39
43
  > .badge + .badge {
40
44
  margin-right: 5px;
41
45
  }
46
+ }
42
47
 
43
- // Linked list items
44
- a& {
45
- color: @list-group-link-color;
46
48
 
47
- .list-group-item-heading {
48
- color: @list-group-link-heading-color;
49
- }
49
+ // Linked list items
50
+ //
51
+ // Use anchor elements instead of `li`s or `div`s to create linked list items.
52
+ // Includes an extra `.active` modifier class for showing selected items.
50
53
 
51
- // Hover state
52
- &:hover,
53
- &:focus {
54
- text-decoration: none;
55
- background-color: @list-group-hover-bg;
56
- }
54
+ a.list-group-item {
55
+ color: @list-group-link-color;
56
+
57
+ .list-group-item-heading {
58
+ color: @list-group-link-heading-color;
59
+ }
60
+
61
+ // Hover state
62
+ &:hover,
63
+ &:focus {
64
+ text-decoration: none;
65
+ background-color: @list-group-hover-bg;
57
66
  }
58
67
 
59
68
  // Active class on item itself, not parent
@@ -70,13 +79,26 @@
70
79
  color: inherit;
71
80
  }
72
81
  .list-group-item-text {
73
- color: lighten(@list-group-active-bg, 40%);
82
+ color: @list-group-active-text-color;
74
83
  }
75
84
  }
76
85
  }
77
86
 
87
+
88
+ // Contextual variants
89
+ //
90
+ // Add modifier classes to change text and background color on individual items.
91
+ // Organizationally, this must come after the `:hover` states.
92
+
93
+ .list-group-item-variant(success; @state-success-bg; @state-success-text);
94
+ .list-group-item-variant(info; @state-info-bg; @state-info-text);
95
+ .list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
96
+ .list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
97
+
98
+
78
99
  // Custom content options
79
- // -------------------------
100
+ //
101
+ // Extra classes for creating well-formatted content within `.list-group-item`s.
80
102
 
81
103
  .list-group-item-heading {
82
104
  margin-top: 0;
@@ -19,19 +19,19 @@
19
19
  .clearfix() {
20
20
  &:before,
21
21
  &:after {
22
- content: " "; /* 1 */
23
- display: table; /* 2 */
22
+ content: " "; // 1
23
+ display: table; // 2
24
24
  }
25
25
  &:after {
26
26
  clear: both;
27
27
  }
28
28
  }
29
29
 
30
- // Webkit-style focus
30
+ // WebKit-style focus
31
31
  .tab-focus() {
32
32
  // Default
33
- outline: thin dotted #333;
34
- // Webkit
33
+ outline: thin dotted;
34
+ // WebKit
35
35
  outline: 5px auto -webkit-focus-ring-color;
36
36
  outline-offset: -2px;
37
37
  }
@@ -55,7 +55,8 @@
55
55
  // Placeholder text
56
56
  .placeholder(@color: @input-color-placeholder) {
57
57
  &:-moz-placeholder { color: @color; } // Firefox 4-18
58
- &::-moz-placeholder { color: @color; } // Firefox 19+
58
+ &::-moz-placeholder { color: @color; // Firefox 19+
59
+ opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
59
60
  &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
60
61
  &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
61
62
  }
@@ -69,7 +70,15 @@
69
70
  }
70
71
 
71
72
  // CSS image replacement
73
+ //
74
+ // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
75
+ // mixins being reused as classes with the same name, this doesn't hold up. As
76
+ // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note
77
+ // that we cannot chain the mixins together in Less, so they are repeated.
78
+ //
72
79
  // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
80
+
81
+ // Deprecated as of v3.0.1 (will be removed in v4)
73
82
  .hide-text() {
74
83
  font: ~"0/0" a;
75
84
  color: transparent;
@@ -77,6 +86,10 @@
77
86
  background-color: transparent;
78
87
  border: 0;
79
88
  }
89
+ // New mixin to use as of v3.0.1
90
+ .text-hide() {
91
+ .hide-text();
92
+ }
80
93
 
81
94
 
82
95
 
@@ -102,6 +115,10 @@
102
115
  }
103
116
 
104
117
  // Drop shadows
118
+ //
119
+ // Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
120
+ // supported browsers that have box shadow capabilities now support the
121
+ // standard `box-shadow` property.
105
122
  .box-shadow(@shadow) {
106
123
  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
107
124
  box-shadow: @shadow;
@@ -112,6 +129,10 @@
112
129
  -webkit-transition: @transition;
113
130
  transition: @transition;
114
131
  }
132
+ .transition-property(@transition-property) {
133
+ -webkit-transition-property: @transition-property;
134
+ transition-property: @transition-property;
135
+ }
115
136
  .transition-delay(@transition-delay) {
116
137
  -webkit-transition-delay: @transition-delay;
117
138
  transition-delay: @transition-delay;
@@ -130,17 +151,17 @@
130
151
  // Transformations
131
152
  .rotate(@degrees) {
132
153
  -webkit-transform: rotate(@degrees);
133
- -ms-transform: rotate(@degrees); // IE9+
154
+ -ms-transform: rotate(@degrees); // IE9 only
134
155
  transform: rotate(@degrees);
135
156
  }
136
- .scale(@ratio) {
137
- -webkit-transform: scale(@ratio);
138
- -ms-transform: scale(@ratio); // IE9+
139
- transform: scale(@ratio);
157
+ .scale(@ratio; @ratio-y...) {
158
+ -webkit-transform: scale(@ratio, @ratio-y);
159
+ -ms-transform: scale(@ratio, @ratio-y); // IE9 only
160
+ transform: scale(@ratio, @ratio-y);
140
161
  }
141
162
  .translate(@x; @y) {
142
163
  -webkit-transform: translate(@x, @y);
143
- -ms-transform: translate(@x, @y); // IE9+
164
+ -ms-transform: translate(@x, @y); // IE9 only
144
165
  transform: translate(@x, @y);
145
166
  }
146
167
  .skew(@x; @y) {
@@ -153,10 +174,66 @@
153
174
  transform: translate3d(@x, @y, @z);
154
175
  }
155
176
 
177
+ .rotateX(@degrees) {
178
+ -webkit-transform: rotateX(@degrees);
179
+ -ms-transform: rotateX(@degrees); // IE9 only
180
+ transform: rotateX(@degrees);
181
+ }
182
+ .rotateY(@degrees) {
183
+ -webkit-transform: rotateY(@degrees);
184
+ -ms-transform: rotateY(@degrees); // IE9 only
185
+ transform: rotateY(@degrees);
186
+ }
187
+ .perspective(@perspective) {
188
+ -webkit-perspective: @perspective;
189
+ -moz-perspective: @perspective;
190
+ perspective: @perspective;
191
+ }
192
+ .perspective-origin(@perspective) {
193
+ -webkit-perspective-origin: @perspective;
194
+ -moz-perspective-origin: @perspective;
195
+ perspective-origin: @perspective;
196
+ }
197
+ .transform-origin(@origin) {
198
+ -webkit-transform-origin: @origin;
199
+ -moz-transform-origin: @origin;
200
+ -ms-transform-origin: @origin; // IE9 only
201
+ transform-origin: @origin;
202
+ }
203
+
204
+ // Animations
205
+ .animation(@animation) {
206
+ -webkit-animation: @animation;
207
+ animation: @animation;
208
+ }
209
+ .animation-name(@name) {
210
+ -webkit-animation-name: @name;
211
+ animation-name: @name;
212
+ }
213
+ .animation-duration(@duration) {
214
+ -webkit-animation-duration: @duration;
215
+ animation-duration: @duration;
216
+ }
217
+ .animation-timing-function(@timing-function) {
218
+ -webkit-animation-timing-function: @timing-function;
219
+ animation-timing-function: @timing-function;
220
+ }
221
+ .animation-delay(@delay) {
222
+ -webkit-animation-delay: @delay;
223
+ animation-delay: @delay;
224
+ }
225
+ .animation-iteration-count(@iteration-count) {
226
+ -webkit-animation-iteration-count: @iteration-count;
227
+ animation-iteration-count: @iteration-count;
228
+ }
229
+ .animation-direction(@direction) {
230
+ -webkit-animation-direction: @direction;
231
+ animation-direction: @direction;
232
+ }
233
+
156
234
  // Backface visibility
157
235
  // Prevent browsers from flickering when using CSS 3D transforms.
158
236
  // Default value is `visible`, but can be changed to `hidden`
159
- // See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
160
237
  .backface-visibility(@visibility){
161
238
  -webkit-backface-visibility: @visibility;
162
239
  -moz-backface-visibility: @visibility;
@@ -226,10 +303,8 @@
226
303
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
227
304
  // Color stops are not available in IE9 and below.
228
305
  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
229
- background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
230
- background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+
231
- background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
232
- background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
306
+ background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+
307
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
233
308
  background-repeat: repeat-x;
234
309
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
235
310
  }
@@ -239,48 +314,37 @@
239
314
  // Creates two color stops, start and end, by specifying a color and position for each color stop.
240
315
  // Color stops are not available in IE9 and below.
241
316
  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
242
- background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
243
- background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+
244
- background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
245
- background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
317
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
318
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
246
319
  background-repeat: repeat-x;
247
320
  filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
248
321
  }
249
322
 
250
323
  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
251
324
  background-repeat: repeat-x;
252
- background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+
253
- background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+
254
- background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10
325
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
326
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
255
327
  }
256
328
  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
257
- background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
258
329
  background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
259
- background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
260
330
  background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
261
331
  background-repeat: no-repeat;
262
332
  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
263
333
  }
264
334
  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
265
- background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
266
335
  background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
267
- background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color);
268
336
  background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
269
337
  background-repeat: no-repeat;
270
338
  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
271
339
  }
272
340
  .radial(@inner-color: #555; @outer-color: #333) {
273
- background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color));
274
341
  background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
275
- background-image: -moz-radial-gradient(circle, @inner-color, @outer-color);
276
342
  background-image: radial-gradient(circle, @inner-color, @outer-color);
277
343
  background-repeat: no-repeat;
278
344
  }
279
- .striped(@color: #555; @angle: 45deg) {
280
- 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));
281
- 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);
282
- 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);
283
- 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);
345
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
346
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
347
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
284
348
  }
285
349
  }
286
350
 
@@ -318,7 +382,7 @@
318
382
  //
319
383
  // Keep images from scaling beyond the width of their parents.
320
384
 
321
- .img-responsive(@display: block;) {
385
+ .img-responsive(@display: block) {
322
386
  display: @display;
323
387
  max-width: 100%; // Part 1: Set a maximum relative to the parent
324
388
  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
@@ -340,12 +404,14 @@
340
404
 
341
405
  // Panels
342
406
  // -------------------------
343
- .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border;) {
407
+ .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
344
408
  border-color: @border;
409
+
345
410
  & > .panel-heading {
346
411
  color: @heading-text-color;
347
412
  background-color: @heading-bg-color;
348
413
  border-color: @heading-border;
414
+
349
415
  + .panel-collapse .panel-body {
350
416
  border-top-color: @border;
351
417
  }
@@ -363,6 +429,7 @@
363
429
  background-color: @background;
364
430
  border-color: @border;
365
431
  color: @text-color;
432
+
366
433
  hr {
367
434
  border-top-color: darken(@border, 5%);
368
435
  }
@@ -373,7 +440,7 @@
373
440
 
374
441
  // Tables
375
442
  // -------------------------
376
- .table-row-variant(@state; @background; @border) {
443
+ .table-row-variant(@state; @background) {
377
444
  // Exact selectors below required to override `.table-striped` and prevent
378
445
  // inheritance to nested tables.
379
446
  .table > thead > tr,
@@ -384,7 +451,6 @@
384
451
  &.@{state} > td,
385
452
  &.@{state} > th {
386
453
  background-color: @background;
387
- border-color: @border;
388
454
  }
389
455
  }
390
456
 
@@ -393,9 +459,37 @@
393
459
  .table-hover > tbody > tr {
394
460
  > td.@{state}:hover,
395
461
  > th.@{state}:hover,
396
- &.@{state}:hover > td {
462
+ &.@{state}:hover > td,
463
+ &.@{state}:hover > th {
397
464
  background-color: darken(@background, 5%);
398
- border-color: darken(@border, 5%);
465
+ }
466
+ }
467
+ }
468
+
469
+ // List Groups
470
+ // -------------------------
471
+ .list-group-item-variant(@state; @background; @color) {
472
+ .list-group-item-@{state} {
473
+ color: @color;
474
+ background-color: @background;
475
+
476
+ a& {
477
+ color: @color;
478
+
479
+ .list-group-item-heading { color: inherit; }
480
+
481
+ &:hover,
482
+ &:focus {
483
+ color: @color;
484
+ background-color: darken(@background, 5%);
485
+ }
486
+ &.active,
487
+ &.active:hover,
488
+ &.active:focus {
489
+ color: #fff;
490
+ background-color: @color;
491
+ border-color: @color;
492
+ }
399
493
  }
400
494
  }
401
495
  }
@@ -432,9 +526,14 @@
432
526
  &:active,
433
527
  &.active {
434
528
  background-color: @background;
435
- border-color: @border
529
+ border-color: @border;
436
530
  }
437
531
  }
532
+
533
+ .badge {
534
+ color: @background;
535
+ background-color: @color;
536
+ }
438
537
  }
439
538
 
440
539
  // Button sizes
@@ -482,6 +581,24 @@
482
581
  }
483
582
  }
484
583
 
584
+ // Contextual backgrounds
585
+ // -------------------------
586
+ .bg-variant(@color) {
587
+ background-color: @color;
588
+ a&:hover {
589
+ background-color: darken(@color, 10%);
590
+ }
591
+ }
592
+
593
+ // Typography
594
+ // -------------------------
595
+ .text-emphasis-variant(@color) {
596
+ color: @color;
597
+ a&:hover {
598
+ color: darken(@color, 10%);
599
+ }
600
+ }
601
+
485
602
  // Navbar vertical align
486
603
  // -------------------------
487
604
  // Vertically center elements in the navbar.
@@ -496,7 +613,7 @@
496
613
  .progress-bar-variant(@color) {
497
614
  background-color: @color;
498
615
  .progress-striped & {
499
- #gradient > .striped(@color);
616
+ #gradient > .striped();
500
617
  }
501
618
  }
502
619
 
@@ -505,18 +622,20 @@
505
622
  // More easily include all the states for responsive-utilities.less.
506
623
  .responsive-visibility() {
507
624
  display: block !important;
508
- tr& { display: table-row !important; }
625
+ table& { display: table; }
626
+ tr& { display: table-row !important; }
509
627
  th&,
510
- td& { display: table-cell !important; }
628
+ td& { display: table-cell !important; }
511
629
  }
512
630
 
513
631
  .responsive-invisibility() {
514
- display: none !important;
515
- tr& { display: none !important; }
632
+ &,
633
+ tr&,
516
634
  th&,
517
635
  td& { display: none !important; }
518
636
  }
519
637
 
638
+
520
639
  // Grid System
521
640
  // -----------
522
641
 
@@ -526,14 +645,14 @@
526
645
  margin-left: auto;
527
646
  padding-left: (@grid-gutter-width / 2);
528
647
  padding-right: (@grid-gutter-width / 2);
529
- .clearfix();
648
+ &:extend(.clearfix all);
530
649
  }
531
650
 
532
651
  // Creates a wrapper for a series of columns
533
652
  .make-row(@gutter: @grid-gutter-width) {
534
653
  margin-left: (@gutter / -2);
535
654
  margin-right: (@gutter / -2);
536
- .clearfix();
655
+ &:extend(.clearfix all);
537
656
  }
538
657
 
539
658
  // Generate the extra small columns
@@ -541,113 +660,188 @@
541
660
  position: relative;
542
661
  float: left;
543
662
  width: percentage((@columns / @grid-columns));
544
- // Prevent columns from collapsing when empty
545
663
  min-height: 1px;
546
- // Inner gutter via padding
547
664
  padding-left: (@gutter / 2);
548
665
  padding-right: (@gutter / 2);
549
666
  }
667
+ .make-xs-column-offset(@columns) {
668
+ @media (min-width: @screen-xs-min) {
669
+ margin-left: percentage((@columns / @grid-columns));
670
+ }
671
+ }
672
+ .make-xs-column-push(@columns) {
673
+ @media (min-width: @screen-xs-min) {
674
+ left: percentage((@columns / @grid-columns));
675
+ }
676
+ }
677
+ .make-xs-column-pull(@columns) {
678
+ @media (min-width: @screen-xs-min) {
679
+ right: percentage((@columns / @grid-columns));
680
+ }
681
+ }
682
+
550
683
 
551
684
  // Generate the small columns
552
685
  .make-sm-column(@columns; @gutter: @grid-gutter-width) {
553
686
  position: relative;
554
- // Prevent columns from collapsing when empty
555
687
  min-height: 1px;
556
- // Inner gutter via padding
557
688
  padding-left: (@gutter / 2);
558
689
  padding-right: (@gutter / 2);
559
690
 
560
- // Calculate width based on number of columns available
561
- @media (min-width: @screen-sm) {
691
+ @media (min-width: @screen-sm-min) {
562
692
  float: left;
563
693
  width: percentage((@columns / @grid-columns));
564
694
  }
565
695
  }
566
-
567
- // Generate the small column offsets
568
696
  .make-sm-column-offset(@columns) {
569
- @media (min-width: @screen-sm) {
697
+ @media (min-width: @screen-sm-min) {
570
698
  margin-left: percentage((@columns / @grid-columns));
571
699
  }
572
700
  }
573
701
  .make-sm-column-push(@columns) {
574
- @media (min-width: @screen-sm) {
702
+ @media (min-width: @screen-sm-min) {
575
703
  left: percentage((@columns / @grid-columns));
576
704
  }
577
705
  }
578
706
  .make-sm-column-pull(@columns) {
579
- @media (min-width: @screen-sm) {
707
+ @media (min-width: @screen-sm-min) {
580
708
  right: percentage((@columns / @grid-columns));
581
709
  }
582
710
  }
583
711
 
712
+
584
713
  // Generate the medium columns
585
714
  .make-md-column(@columns; @gutter: @grid-gutter-width) {
586
715
  position: relative;
587
- // Prevent columns from collapsing when empty
588
716
  min-height: 1px;
589
- // Inner gutter via padding
590
717
  padding-left: (@gutter / 2);
591
718
  padding-right: (@gutter / 2);
592
719
 
593
- // Calculate width based on number of columns available
594
- @media (min-width: @screen-md) {
720
+ @media (min-width: @screen-md-min) {
595
721
  float: left;
596
722
  width: percentage((@columns / @grid-columns));
597
723
  }
598
724
  }
599
-
600
- // Generate the large column offsets
601
725
  .make-md-column-offset(@columns) {
602
- @media (min-width: @screen-md) {
726
+ @media (min-width: @screen-md-min) {
603
727
  margin-left: percentage((@columns / @grid-columns));
604
728
  }
605
729
  }
606
730
  .make-md-column-push(@columns) {
607
- @media (min-width: @screen-md) {
731
+ @media (min-width: @screen-md-min) {
608
732
  left: percentage((@columns / @grid-columns));
609
733
  }
610
734
  }
611
735
  .make-md-column-pull(@columns) {
612
- @media (min-width: @screen-md) {
736
+ @media (min-width: @screen-md-min) {
613
737
  right: percentage((@columns / @grid-columns));
614
738
  }
615
739
  }
616
740
 
741
+
617
742
  // Generate the large columns
618
743
  .make-lg-column(@columns; @gutter: @grid-gutter-width) {
619
744
  position: relative;
620
- // Prevent columns from collapsing when empty
621
745
  min-height: 1px;
622
- // Inner gutter via padding
623
746
  padding-left: (@gutter / 2);
624
747
  padding-right: (@gutter / 2);
625
748
 
626
- // Calculate width based on number of columns available
627
- @media (min-width: @screen-lg) {
749
+ @media (min-width: @screen-lg-min) {
628
750
  float: left;
629
751
  width: percentage((@columns / @grid-columns));
630
752
  }
631
753
  }
632
-
633
- // Generate the large column offsets
634
754
  .make-lg-column-offset(@columns) {
635
- @media (min-width: @screen-lg) {
755
+ @media (min-width: @screen-lg-min) {
636
756
  margin-left: percentage((@columns / @grid-columns));
637
757
  }
638
758
  }
639
759
  .make-lg-column-push(@columns) {
640
- @media (min-width: @screen-lg) {
760
+ @media (min-width: @screen-lg-min) {
641
761
  left: percentage((@columns / @grid-columns));
642
762
  }
643
763
  }
644
764
  .make-lg-column-pull(@columns) {
645
- @media (min-width: @screen-lg) {
765
+ @media (min-width: @screen-lg-min) {
646
766
  right: percentage((@columns / @grid-columns));
647
767
  }
648
768
  }
649
769
 
650
770
 
771
+ // Framework grid generation
772
+ //
773
+ // Used only by Bootstrap to generate the correct number of grid classes given
774
+ // any value of `@grid-columns`.
775
+
776
+ .make-grid-columns() {
777
+ // Common styles for all sizes of grid columns, widths 1-12
778
+ .col(@index) when (@index = 1) { // initial
779
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
780
+ .col((@index + 1), @item);
781
+ }
782
+ .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
783
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
784
+ .col((@index + 1), ~"@{list}, @{item}");
785
+ }
786
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
787
+ @{list} {
788
+ position: relative;
789
+ // Prevent columns from collapsing when empty
790
+ min-height: 1px;
791
+ // Inner gutter via padding
792
+ padding-left: (@grid-gutter-width / 2);
793
+ padding-right: (@grid-gutter-width / 2);
794
+ }
795
+ }
796
+ .col(1); // kickstart it
797
+ }
798
+
799
+ .make-grid-columns-float(@class) {
800
+ .col(@index) when (@index = 1) { // initial
801
+ @item: ~".col-@{class}-@{index}";
802
+ .col((@index + 1), @item);
803
+ }
804
+ .col(@index, @list) when (@index =< @grid-columns) { // general
805
+ @item: ~".col-@{class}-@{index}";
806
+ .col((@index + 1), ~"@{list}, @{item}");
807
+ }
808
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
809
+ @{list} {
810
+ float: left;
811
+ }
812
+ }
813
+ .col(1); // kickstart it
814
+ }
815
+
816
+ .calc-grid(@index, @class, @type) when (@type = width) and (@index > 0) {
817
+ .col-@{class}-@{index} {
818
+ width: percentage((@index / @grid-columns));
819
+ }
820
+ }
821
+ .calc-grid(@index, @class, @type) when (@type = push) {
822
+ .col-@{class}-push-@{index} {
823
+ left: percentage((@index / @grid-columns));
824
+ }
825
+ }
826
+ .calc-grid(@index, @class, @type) when (@type = pull) {
827
+ .col-@{class}-pull-@{index} {
828
+ right: percentage((@index / @grid-columns));
829
+ }
830
+ }
831
+ .calc-grid(@index, @class, @type) when (@type = offset) {
832
+ .col-@{class}-offset-@{index} {
833
+ margin-left: percentage((@index / @grid-columns));
834
+ }
835
+ }
836
+
837
+ // Basic looping in LESS
838
+ .make-grid(@index, @class, @type) when (@index >= 0) {
839
+ .calc-grid(@index, @class, @type);
840
+ // next iteration
841
+ .make-grid((@index - 1), @class, @type);
842
+ }
843
+
844
+
651
845
  // Form validation states
652
846
  //
653
847
  // Used in forms.less to generate the form validation CSS for warnings, errors,
@@ -656,7 +850,11 @@
656
850
  .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
657
851
  // Color the label and help text
658
852
  .help-block,
659
- .control-label {
853
+ .control-label,
854
+ .radio,
855
+ .checkbox,
856
+ .radio-inline,
857
+ .checkbox-inline {
660
858
  color: @text-color;
661
859
  }
662
860
  // Set the border and box shadow on specific inputs to match
@@ -675,6 +873,10 @@
675
873
  border-color: @border-color;
676
874
  background-color: @background-color;
677
875
  }
876
+ // Optional feedback icon
877
+ .form-control-feedback {
878
+ color: @text-color;
879
+ }
678
880
  }
679
881
 
680
882
  // Form control focus state
@@ -717,7 +919,8 @@
717
919
  line-height: @input-height;
718
920
  }
719
921
 
720
- textarea& {
922
+ textarea&,
923
+ select[multiple]& {
721
924
  height: auto;
722
925
  }
723
926
  }