twitter-bootstrap-rails 2.2.8 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of twitter-bootstrap-rails might be problematic. Click here for more details.

Files changed (181) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +82 -119
  3. data/Rakefile +4 -6
  4. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  5. data/app/assets/fonts/fontawesome-webfont.svg +471 -366
  6. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  7. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  8. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  9. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  10. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  11. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  12. data/app/assets/javascripts/twitter/bootstrap.js +12 -13
  13. data/app/assets/javascripts/twitter/bootstrap/affix.js +137 -0
  14. data/app/assets/javascripts/twitter/bootstrap/alert.js +88 -0
  15. data/app/assets/javascripts/twitter/bootstrap/button.js +107 -0
  16. data/app/assets/javascripts/twitter/bootstrap/carousel.js +205 -0
  17. data/app/assets/javascripts/twitter/bootstrap/collapse.js +170 -0
  18. data/app/assets/javascripts/twitter/bootstrap/dropdown.js +147 -0
  19. data/app/assets/javascripts/twitter/bootstrap/modal.js +243 -0
  20. data/app/assets/javascripts/twitter/bootstrap/popover.js +110 -0
  21. data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +153 -0
  22. data/app/assets/javascripts/twitter/bootstrap/tab.js +125 -0
  23. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +399 -0
  24. data/app/assets/javascripts/twitter/bootstrap/transition.js +48 -0
  25. data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -890
  26. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +4 -787
  27. data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -146
  28. data/app/helpers/bootstrap_flash_helper.rb +7 -5
  29. data/app/helpers/form_errors_helper.rb +22 -0
  30. data/app/helpers/glyph_helper.rb +8 -6
  31. data/app/helpers/modal_helper.rb +29 -21
  32. data/app/helpers/navbar_helper.rb +42 -30
  33. data/app/helpers/twitter_breadcrumbs_helper.rb +3 -2
  34. data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +4 -4
  35. data/lib/generators/bootstrap/install/install_generator.rb +3 -2
  36. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +7 -8
  37. data/lib/generators/bootstrap/install/templates/en.bootstrap.yml +5 -0
  38. data/lib/generators/bootstrap/layout/layout_generator.rb +1 -4
  39. data/lib/generators/bootstrap/layout/templates/layout.html.erb +22 -43
  40. data/lib/generators/bootstrap/layout/templates/layout.html.haml +16 -31
  41. data/lib/generators/bootstrap/layout/templates/layout.html.slim +10 -25
  42. data/lib/generators/bootstrap/partial/templates/_login.html.erb +2 -3
  43. data/lib/generators/bootstrap/themed/templates/_form.html.erb +25 -8
  44. data/lib/generators/bootstrap/themed/templates/_form.html.haml +7 -7
  45. data/lib/generators/bootstrap/themed/templates/_form.html.slim +7 -7
  46. data/lib/generators/bootstrap/themed/templates/index.html.erb +2 -2
  47. data/lib/generators/bootstrap/themed/templates/index.html.haml +2 -2
  48. data/lib/generators/bootstrap/themed/templates/index.html.slim +2 -2
  49. data/lib/generators/bootstrap/themed/templates/show.html.erb +5 -7
  50. data/lib/generators/bootstrap/themed/templates/show.html.haml +4 -4
  51. data/lib/generators/bootstrap/themed/templates/show.html.slim +5 -6
  52. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.erb +5 -5
  53. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +3 -3
  54. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.slim +4 -4
  55. data/lib/generators/bootstrap/themed/themed_generator.rb +2 -2
  56. data/lib/twitter/bootstrap/rails/{twitter-bootstrap-breadcrumbs.rb → breadcrumbs.rb} +24 -8
  57. data/lib/twitter/bootstrap/rails/engine.rb +5 -2
  58. data/lib/twitter/bootstrap/rails/version.rb +2 -2
  59. data/spec/lib/breadcrumbs_spec.rb +74 -0
  60. data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +4 -2
  61. data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +15 -15
  62. data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +157 -173
  63. data/spec/lib/twitter_bootstrap_rails/uri_state_spec.rb +18 -16
  64. data/spec/spec_helper.rb +7 -1
  65. data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +5797 -0
  66. data/vendor/static-source/bootstrap.less +0 -1
  67. data/vendor/static-source/fontawesome.less +0 -1
  68. data/vendor/static-source/sprites.less +1 -1
  69. data/vendor/toolkit/fontawesome/bordered-pulled.less +16 -0
  70. data/vendor/toolkit/fontawesome/core.less +9 -126
  71. data/vendor/toolkit/fontawesome/fixed-width.less +6 -0
  72. data/vendor/toolkit/fontawesome/font-awesome.less +9 -25
  73. data/vendor/toolkit/fontawesome/icons.less +503 -378
  74. data/vendor/toolkit/fontawesome/larger.less +13 -0
  75. data/vendor/toolkit/fontawesome/list.less +19 -0
  76. data/vendor/toolkit/fontawesome/mixins.less +14 -42
  77. data/vendor/toolkit/fontawesome/path.less +1 -1
  78. data/vendor/toolkit/fontawesome/rotated-flipped.less +9 -0
  79. data/vendor/toolkit/fontawesome/spinning.less +32 -0
  80. data/vendor/toolkit/fontawesome/stacked.less +20 -0
  81. data/vendor/toolkit/fontawesome/variables.less +511 -731
  82. data/vendor/toolkit/twitter/bootstrap/alerts.less +47 -58
  83. data/vendor/toolkit/twitter/bootstrap/badges.less +55 -0
  84. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +27 -39
  85. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +11 -9
  86. data/vendor/toolkit/twitter/bootstrap/button-groups.less +168 -152
  87. data/vendor/toolkit/twitter/bootstrap/buttons.less +101 -170
  88. data/vendor/toolkit/twitter/bootstrap/carousel.less +150 -65
  89. data/vendor/toolkit/twitter/bootstrap/close.less +20 -19
  90. data/vendor/toolkit/twitter/bootstrap/code.less +38 -30
  91. data/vendor/toolkit/twitter/bootstrap/component-animations.less +12 -3
  92. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +115 -148
  93. data/vendor/toolkit/twitter/bootstrap/forms.less +401 -547
  94. data/vendor/toolkit/twitter/bootstrap/glyphicons.less +233 -0
  95. data/vendor/toolkit/twitter/bootstrap/grid.less +74 -11
  96. data/vendor/toolkit/twitter/bootstrap/input-groups.less +166 -0
  97. data/vendor/toolkit/twitter/bootstrap/jumbotron.less +48 -0
  98. data/vendor/toolkit/twitter/bootstrap/labels.less +64 -0
  99. data/vendor/toolkit/twitter/bootstrap/list-group.less +132 -0
  100. data/vendor/toolkit/twitter/bootstrap/media.less +8 -7
  101. data/vendor/toolkit/twitter/bootstrap/mixins.less +36 -699
  102. data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +14 -0
  103. data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +8 -0
  104. data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +18 -0
  105. data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +52 -0
  106. data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +7 -0
  107. data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +22 -0
  108. data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +85 -0
  109. data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +59 -0
  110. data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +91 -0
  111. data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +122 -0
  112. data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +21 -0
  113. data/vendor/toolkit/twitter/bootstrap/mixins/image.less +33 -0
  114. data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +12 -0
  115. data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +29 -0
  116. data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +10 -0
  117. data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +9 -0
  118. data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +8 -0
  119. data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +23 -0
  120. data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +24 -0
  121. data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +10 -0
  122. data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +8 -0
  123. data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +6 -0
  124. data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +15 -0
  125. data/vendor/toolkit/twitter/bootstrap/mixins/size.less +10 -0
  126. data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +9 -0
  127. data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +28 -0
  128. data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +8 -0
  129. data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +8 -0
  130. data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +224 -0
  131. data/vendor/toolkit/twitter/bootstrap/modals.less +109 -54
  132. data/vendor/toolkit/twitter/bootstrap/navbar.less +542 -384
  133. data/vendor/toolkit/twitter/bootstrap/navs.less +192 -359
  134. data/vendor/toolkit/twitter/bootstrap/normalize.less +425 -0
  135. data/vendor/toolkit/twitter/bootstrap/pager.less +46 -34
  136. data/vendor/toolkit/twitter/bootstrap/pagination.less +70 -105
  137. data/vendor/toolkit/twitter/bootstrap/panels.less +248 -0
  138. data/vendor/toolkit/twitter/bootstrap/popovers.less +61 -61
  139. data/vendor/toolkit/twitter/bootstrap/print.less +101 -0
  140. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +51 -73
  141. data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +34 -0
  142. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +177 -42
  143. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +120 -23
  144. data/vendor/toolkit/twitter/bootstrap/tables.less +171 -182
  145. data/vendor/toolkit/twitter/bootstrap/theme.less +260 -0
  146. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +26 -43
  147. data/vendor/toolkit/twitter/bootstrap/tooltip.less +49 -24
  148. data/vendor/toolkit/twitter/bootstrap/type.less +208 -147
  149. data/vendor/toolkit/twitter/bootstrap/utilities.less +33 -7
  150. data/vendor/toolkit/twitter/bootstrap/variables.less +761 -215
  151. data/vendor/toolkit/twitter/bootstrap/wells.less +7 -7
  152. metadata +128 -138
  153. data/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +0 -117
  154. data/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +0 -99
  155. data/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js +0 -105
  156. data/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +0 -207
  157. data/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +0 -167
  158. data/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +0 -169
  159. data/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +0 -247
  160. data/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +0 -114
  161. data/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +0 -162
  162. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +0 -144
  163. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +0 -361
  164. data/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +0 -60
  165. data/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +0 -335
  166. data/test/lib/breadcrumbs_test.rb +0 -75
  167. data/test/test_helper.rb +0 -11
  168. data/vendor/toolkit/fontawesome/bootstrap.less +0 -84
  169. data/vendor/toolkit/fontawesome/extras.less +0 -93
  170. data/vendor/toolkit/fontawesome/font-awesome-ie7.less +0 -1953
  171. data/vendor/toolkit/twitter/bootstrap/accordion.less +0 -34
  172. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +0 -25
  173. data/vendor/toolkit/twitter/bootstrap/labels-badges.less +0 -84
  174. data/vendor/toolkit/twitter/bootstrap/layouts.less +0 -16
  175. data/vendor/toolkit/twitter/bootstrap/reset.less +0 -216
  176. data/vendor/toolkit/twitter/bootstrap/responsive-1200px-min.less +0 -28
  177. data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +0 -193
  178. data/vendor/toolkit/twitter/bootstrap/responsive-768px-979px.less +0 -19
  179. data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +0 -189
  180. data/vendor/toolkit/twitter/bootstrap/responsive.less +0 -48
  181. data/vendor/toolkit/twitter/bootstrap/sprites.less +0 -197
@@ -0,0 +1,14 @@
1
+ // Alerts
2
+
3
+ .alert-variant(@background; @border; @text-color) {
4
+ background-color: @background;
5
+ border-color: @border;
6
+ color: @text-color;
7
+
8
+ hr {
9
+ border-top-color: darken(@border, 5%);
10
+ }
11
+ .alert-link {
12
+ color: darken(@text-color, 10%);
13
+ }
14
+ }
@@ -0,0 +1,8 @@
1
+ // Contextual backgrounds
2
+
3
+ .bg-variant(@color) {
4
+ background-color: @color;
5
+ a&:hover {
6
+ background-color: darken(@color, 10%);
7
+ }
8
+ }
@@ -0,0 +1,18 @@
1
+ // Single side border-radius
2
+
3
+ .border-top-radius(@radius) {
4
+ border-top-right-radius: @radius;
5
+ border-top-left-radius: @radius;
6
+ }
7
+ .border-right-radius(@radius) {
8
+ border-bottom-right-radius: @radius;
9
+ border-top-right-radius: @radius;
10
+ }
11
+ .border-bottom-radius(@radius) {
12
+ border-bottom-right-radius: @radius;
13
+ border-bottom-left-radius: @radius;
14
+ }
15
+ .border-left-radius(@radius) {
16
+ border-bottom-left-radius: @radius;
17
+ border-top-left-radius: @radius;
18
+ }
@@ -0,0 +1,52 @@
1
+ // Button variants
2
+ //
3
+ // Easily pump out default styles, as well as :hover, :focus, :active,
4
+ // and disabled options for all buttons
5
+
6
+ .button-variant(@color; @background; @border) {
7
+ color: @color;
8
+ background-color: @background;
9
+ border-color: @border;
10
+
11
+ &:hover,
12
+ &:focus,
13
+ &.focus,
14
+ &:active,
15
+ &.active,
16
+ .open > .dropdown-toggle& {
17
+ color: @color;
18
+ background-color: darken(@background, 10%);
19
+ border-color: darken(@border, 12%);
20
+ }
21
+ &:active,
22
+ &.active,
23
+ .open > .dropdown-toggle& {
24
+ background-image: none;
25
+ }
26
+ &.disabled,
27
+ &[disabled],
28
+ fieldset[disabled] & {
29
+ &,
30
+ &:hover,
31
+ &:focus,
32
+ &.focus,
33
+ &:active,
34
+ &.active {
35
+ background-color: @background;
36
+ border-color: @border;
37
+ }
38
+ }
39
+
40
+ .badge {
41
+ color: @background;
42
+ background-color: @color;
43
+ }
44
+ }
45
+
46
+ // Button sizes
47
+ .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
48
+ padding: @padding-vertical @padding-horizontal;
49
+ font-size: @font-size;
50
+ line-height: @line-height;
51
+ border-radius: @border-radius;
52
+ }
@@ -0,0 +1,7 @@
1
+ // Center-align a block level element
2
+
3
+ .center-block() {
4
+ display: block;
5
+ margin-left: auto;
6
+ margin-right: auto;
7
+ }
@@ -0,0 +1,22 @@
1
+ // Clearfix
2
+ //
3
+ // For modern browsers
4
+ // 1. The space content is one way to avoid an Opera bug when the
5
+ // contenteditable attribute is included anywhere else in the document.
6
+ // Otherwise it causes space to appear at the top and bottom of elements
7
+ // that are clearfixed.
8
+ // 2. The use of `table` rather than `block` is only necessary if using
9
+ // `:before` to contain the top-margins of child elements.
10
+ //
11
+ // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12
+
13
+ .clearfix() {
14
+ &:before,
15
+ &:after {
16
+ content: " "; // 1
17
+ display: table; // 2
18
+ }
19
+ &:after {
20
+ clear: both;
21
+ }
22
+ }
@@ -0,0 +1,85 @@
1
+ // Form validation states
2
+ //
3
+ // Used in forms.less to generate the form validation CSS for warnings, errors,
4
+ // and successes.
5
+
6
+ .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
7
+ // Color the label and help text
8
+ .help-block,
9
+ .control-label,
10
+ .radio,
11
+ .checkbox,
12
+ .radio-inline,
13
+ .checkbox-inline,
14
+ &.radio label,
15
+ &.checkbox label,
16
+ &.radio-inline label,
17
+ &.checkbox-inline label {
18
+ color: @text-color;
19
+ }
20
+ // Set the border and box shadow on specific inputs to match
21
+ .form-control {
22
+ border-color: @border-color;
23
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
24
+ &:focus {
25
+ border-color: darken(@border-color, 10%);
26
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
27
+ .box-shadow(@shadow);
28
+ }
29
+ }
30
+ // Set validation states also for addons
31
+ .input-group-addon {
32
+ color: @text-color;
33
+ border-color: @border-color;
34
+ background-color: @background-color;
35
+ }
36
+ // Optional feedback icon
37
+ .form-control-feedback {
38
+ color: @text-color;
39
+ }
40
+ }
41
+
42
+
43
+ // Form control focus state
44
+ //
45
+ // Generate a customized focus state and for any input with the specified color,
46
+ // which defaults to the `@input-border-focus` variable.
47
+ //
48
+ // We highly encourage you to not customize the default value, but instead use
49
+ // this to tweak colors on an as-needed basis. This aesthetic change is based on
50
+ // WebKit's default styles, but applicable to a wider range of browsers. Its
51
+ // usability and accessibility should be taken into account with any change.
52
+ //
53
+ // Example usage: change the default blue border and shadow to white for better
54
+ // contrast against a dark gray background.
55
+ .form-control-focus(@color: @input-border-focus) {
56
+ @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
57
+ &:focus {
58
+ border-color: @color;
59
+ outline: 0;
60
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
61
+ }
62
+ }
63
+
64
+ // Form control sizing
65
+ //
66
+ // Relative text size, padding, and border-radii changes for form controls. For
67
+ // horizontal sizing, wrap controls in the predefined grid classes. `<select>`
68
+ // element gets special love because it's special, and that's a fact!
69
+ .input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
70
+ height: @input-height;
71
+ padding: @padding-vertical @padding-horizontal;
72
+ font-size: @font-size;
73
+ line-height: @line-height;
74
+ border-radius: @border-radius;
75
+
76
+ select& {
77
+ height: @input-height;
78
+ line-height: @input-height;
79
+ }
80
+
81
+ textarea&,
82
+ select[multiple]& {
83
+ height: auto;
84
+ }
85
+ }
@@ -0,0 +1,59 @@
1
+ // Gradients
2
+
3
+ #gradient {
4
+
5
+ // Horizontal gradient, from left to right
6
+ //
7
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
8
+ // Color stops are not available in IE9 and below.
9
+ .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
10
+ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
11
+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
12
+ 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+
13
+ background-repeat: repeat-x;
14
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
15
+ }
16
+
17
+ // Vertical gradient, from top to bottom
18
+ //
19
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
20
+ // Color stops are not available in IE9 and below.
21
+ .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
22
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
23
+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
24
+ 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+
25
+ background-repeat: repeat-x;
26
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
27
+ }
28
+
29
+ .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
30
+ background-repeat: repeat-x;
31
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
32
+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
33
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
34
+ }
35
+ .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
36
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
37
+ background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
38
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
39
+ background-repeat: no-repeat;
40
+ 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
41
+ }
42
+ .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
43
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
44
+ background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
45
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
46
+ background-repeat: no-repeat;
47
+ 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
48
+ }
49
+ .radial(@inner-color: #555; @outer-color: #333) {
50
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
51
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
52
+ background-repeat: no-repeat;
53
+ }
54
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
55
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
56
+ background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
57
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
58
+ }
59
+ }
@@ -0,0 +1,91 @@
1
+ // Framework grid generation
2
+ //
3
+ // Used only by Bootstrap to generate the correct number of grid classes given
4
+ // any value of `@grid-columns`.
5
+
6
+ .make-grid-columns() {
7
+ // Common styles for all sizes of grid columns, widths 1-12
8
+ .col(@index) when (@index = 1) { // initial
9
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
10
+ .col((@index + 1), @item);
11
+ }
12
+ .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
13
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
14
+ .col((@index + 1), ~"@{list}, @{item}");
15
+ }
16
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
17
+ @{list} {
18
+ position: relative;
19
+ // Prevent columns from collapsing when empty
20
+ min-height: 1px;
21
+ // Inner gutter via padding
22
+ padding-left: (@grid-gutter-width / 2);
23
+ padding-right: (@grid-gutter-width / 2);
24
+ }
25
+ }
26
+ .col(1); // kickstart it
27
+ }
28
+
29
+ .float-grid-columns(@class) {
30
+ .col(@index) when (@index = 1) { // initial
31
+ @item: ~".col-@{class}-@{index}";
32
+ .col((@index + 1), @item);
33
+ }
34
+ .col(@index, @list) when (@index =< @grid-columns) { // general
35
+ @item: ~".col-@{class}-@{index}";
36
+ .col((@index + 1), ~"@{list}, @{item}");
37
+ }
38
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
39
+ @{list} {
40
+ float: left;
41
+ }
42
+ }
43
+ .col(1); // kickstart it
44
+ }
45
+
46
+ .calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
47
+ .col-@{class}-@{index} {
48
+ width: percentage((@index / @grid-columns));
49
+ }
50
+ }
51
+ .calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
52
+ .col-@{class}-push-@{index} {
53
+ left: percentage((@index / @grid-columns));
54
+ }
55
+ }
56
+ .calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
57
+ .col-@{class}-push-0 {
58
+ left: auto;
59
+ }
60
+ }
61
+ .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
62
+ .col-@{class}-pull-@{index} {
63
+ right: percentage((@index / @grid-columns));
64
+ }
65
+ }
66
+ .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
67
+ .col-@{class}-pull-0 {
68
+ right: auto;
69
+ }
70
+ }
71
+ .calc-grid-column(@index, @class, @type) when (@type = offset) {
72
+ .col-@{class}-offset-@{index} {
73
+ margin-left: percentage((@index / @grid-columns));
74
+ }
75
+ }
76
+
77
+ // Basic looping in LESS
78
+ .loop-grid-columns(@index, @class, @type) when (@index >= 0) {
79
+ .calc-grid-column(@index, @class, @type);
80
+ // next iteration
81
+ .loop-grid-columns((@index - 1), @class, @type);
82
+ }
83
+
84
+ // Create grid for specific class
85
+ .make-grid(@class) {
86
+ .float-grid-columns(@class);
87
+ .loop-grid-columns(@grid-columns, @class, width);
88
+ .loop-grid-columns(@grid-columns, @class, pull);
89
+ .loop-grid-columns(@grid-columns, @class, push);
90
+ .loop-grid-columns(@grid-columns, @class, offset);
91
+ }
@@ -0,0 +1,122 @@
1
+ // Grid system
2
+ //
3
+ // Generate semantic grid columns with these mixins.
4
+
5
+ // Centered container element
6
+ .container-fixed(@gutter: @grid-gutter-width) {
7
+ margin-right: auto;
8
+ margin-left: auto;
9
+ padding-left: (@gutter / 2);
10
+ padding-right: (@gutter / 2);
11
+ &:extend(.clearfix all);
12
+ }
13
+
14
+ // Creates a wrapper for a series of columns
15
+ .make-row(@gutter: @grid-gutter-width) {
16
+ margin-left: (@gutter / -2);
17
+ margin-right: (@gutter / -2);
18
+ &:extend(.clearfix all);
19
+ }
20
+
21
+ // Generate the extra small columns
22
+ .make-xs-column(@columns; @gutter: @grid-gutter-width) {
23
+ position: relative;
24
+ float: left;
25
+ width: percentage((@columns / @grid-columns));
26
+ min-height: 1px;
27
+ padding-left: (@gutter / 2);
28
+ padding-right: (@gutter / 2);
29
+ }
30
+ .make-xs-column-offset(@columns) {
31
+ margin-left: percentage((@columns / @grid-columns));
32
+ }
33
+ .make-xs-column-push(@columns) {
34
+ left: percentage((@columns / @grid-columns));
35
+ }
36
+ .make-xs-column-pull(@columns) {
37
+ right: percentage((@columns / @grid-columns));
38
+ }
39
+
40
+ // Generate the small columns
41
+ .make-sm-column(@columns; @gutter: @grid-gutter-width) {
42
+ position: relative;
43
+ min-height: 1px;
44
+ padding-left: (@gutter / 2);
45
+ padding-right: (@gutter / 2);
46
+
47
+ @media (min-width: @screen-sm-min) {
48
+ float: left;
49
+ width: percentage((@columns / @grid-columns));
50
+ }
51
+ }
52
+ .make-sm-column-offset(@columns) {
53
+ @media (min-width: @screen-sm-min) {
54
+ margin-left: percentage((@columns / @grid-columns));
55
+ }
56
+ }
57
+ .make-sm-column-push(@columns) {
58
+ @media (min-width: @screen-sm-min) {
59
+ left: percentage((@columns / @grid-columns));
60
+ }
61
+ }
62
+ .make-sm-column-pull(@columns) {
63
+ @media (min-width: @screen-sm-min) {
64
+ right: percentage((@columns / @grid-columns));
65
+ }
66
+ }
67
+
68
+ // Generate the medium columns
69
+ .make-md-column(@columns; @gutter: @grid-gutter-width) {
70
+ position: relative;
71
+ min-height: 1px;
72
+ padding-left: (@gutter / 2);
73
+ padding-right: (@gutter / 2);
74
+
75
+ @media (min-width: @screen-md-min) {
76
+ float: left;
77
+ width: percentage((@columns / @grid-columns));
78
+ }
79
+ }
80
+ .make-md-column-offset(@columns) {
81
+ @media (min-width: @screen-md-min) {
82
+ margin-left: percentage((@columns / @grid-columns));
83
+ }
84
+ }
85
+ .make-md-column-push(@columns) {
86
+ @media (min-width: @screen-md-min) {
87
+ left: percentage((@columns / @grid-columns));
88
+ }
89
+ }
90
+ .make-md-column-pull(@columns) {
91
+ @media (min-width: @screen-md-min) {
92
+ right: percentage((@columns / @grid-columns));
93
+ }
94
+ }
95
+
96
+ // Generate the large columns
97
+ .make-lg-column(@columns; @gutter: @grid-gutter-width) {
98
+ position: relative;
99
+ min-height: 1px;
100
+ padding-left: (@gutter / 2);
101
+ padding-right: (@gutter / 2);
102
+
103
+ @media (min-width: @screen-lg-min) {
104
+ float: left;
105
+ width: percentage((@columns / @grid-columns));
106
+ }
107
+ }
108
+ .make-lg-column-offset(@columns) {
109
+ @media (min-width: @screen-lg-min) {
110
+ margin-left: percentage((@columns / @grid-columns));
111
+ }
112
+ }
113
+ .make-lg-column-push(@columns) {
114
+ @media (min-width: @screen-lg-min) {
115
+ left: percentage((@columns / @grid-columns));
116
+ }
117
+ }
118
+ .make-lg-column-pull(@columns) {
119
+ @media (min-width: @screen-lg-min) {
120
+ right: percentage((@columns / @grid-columns));
121
+ }
122
+ }