compass-core 1.0.0.alpha.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +22 -0
  3. data/VERSION +1 -0
  4. data/data/caniuse.json +1 -0
  5. data/data/caniuse_extras/css-placeholder.json +171 -0
  6. data/lib/compass-core.rb +1 -0
  7. data/lib/compass/browser_support.rb +62 -0
  8. data/lib/compass/configuration.rb +168 -0
  9. data/lib/compass/configuration/data.rb +178 -0
  10. data/lib/compass/configuration/defaults.rb +197 -0
  11. data/lib/compass/configuration/inheritance.rb +304 -0
  12. data/lib/compass/configuration/paths.rb +19 -0
  13. data/lib/compass/core.rb +64 -0
  14. data/lib/compass/core/caniuse.rb +282 -0
  15. data/lib/compass/core/sass_extensions.rb +10 -0
  16. data/lib/compass/core/sass_extensions/functions.rb +39 -0
  17. data/lib/compass/core/sass_extensions/functions/colors.rb +67 -0
  18. data/lib/compass/core/sass_extensions/functions/configuration.rb +162 -0
  19. data/lib/compass/core/sass_extensions/functions/constants.rb +74 -0
  20. data/lib/compass/core/sass_extensions/functions/cross_browser_support.rb +269 -0
  21. data/lib/compass/core/sass_extensions/functions/display.rb +32 -0
  22. data/lib/compass/core/sass_extensions/functions/enumerate.rb +7 -0
  23. data/lib/compass/core/sass_extensions/functions/env.rb +60 -0
  24. data/lib/compass/core/sass_extensions/functions/font_files.rb +41 -0
  25. data/lib/compass/core/sass_extensions/functions/gradient_support.rb +616 -0
  26. data/lib/compass/core/sass_extensions/functions/image_size.rb +117 -0
  27. data/lib/compass/core/sass_extensions/functions/inline_image.rb +64 -0
  28. data/lib/compass/core/sass_extensions/functions/lists.rb +101 -0
  29. data/lib/compass/core/sass_extensions/functions/math.rb +92 -0
  30. data/lib/compass/core/sass_extensions/functions/selectors.rb +64 -0
  31. data/lib/compass/core/sass_extensions/functions/urls.rb +297 -0
  32. data/lib/compass/core/sass_extensions/monkey_patches.rb +3 -0
  33. data/lib/compass/core/sass_extensions/monkey_patches/browser_support.rb +118 -0
  34. data/lib/compass/core/sass_extensions/monkey_patches/traversal.rb +23 -0
  35. data/lib/compass/core/version.rb +5 -0
  36. data/lib/compass/error.rb +5 -0
  37. data/stylesheets/_compass.scss +3 -0
  38. data/stylesheets/_lemonade.scss +38 -0
  39. data/stylesheets/compass/_configuration.scss +54 -0
  40. data/stylesheets/compass/_css3.scss +21 -0
  41. data/stylesheets/compass/_layout.scss +3 -0
  42. data/stylesheets/compass/_reset-legacy.scss +3 -0
  43. data/stylesheets/compass/_reset.scss +3 -0
  44. data/stylesheets/compass/_support.scss +441 -0
  45. data/stylesheets/compass/_typography.scss +4 -0
  46. data/stylesheets/compass/_utilities.scss +9 -0
  47. data/stylesheets/compass/css3/_animation.scss +122 -0
  48. data/stylesheets/compass/css3/_appearance.scss +17 -0
  49. data/stylesheets/compass/css3/_background-clip.scss +35 -0
  50. data/stylesheets/compass/css3/_background-origin.scss +37 -0
  51. data/stylesheets/compass/css3/_background-size.scss +19 -0
  52. data/stylesheets/compass/css3/_border-radius.scss +107 -0
  53. data/stylesheets/compass/css3/_box-shadow.scss +88 -0
  54. data/stylesheets/compass/css3/_box-sizing.scss +15 -0
  55. data/stylesheets/compass/css3/_box.scss +85 -0
  56. data/stylesheets/compass/css3/_columns.scss +210 -0
  57. data/stylesheets/compass/css3/_deprecated-support.scss +272 -0
  58. data/stylesheets/compass/css3/_filter.scss +50 -0
  59. data/stylesheets/compass/css3/_flexbox.scss +156 -0
  60. data/stylesheets/compass/css3/_font-face.scss +48 -0
  61. data/stylesheets/compass/css3/_hyphenation.scss +71 -0
  62. data/stylesheets/compass/css3/_images.scss +139 -0
  63. data/stylesheets/compass/css3/_inline-block.scss +31 -0
  64. data/stylesheets/compass/css3/_opacity.scss +23 -0
  65. data/stylesheets/compass/css3/_pie.scss +1 -0
  66. data/stylesheets/compass/css3/_regions.scss +27 -0
  67. data/stylesheets/compass/css3/_selection.scss +59 -0
  68. data/stylesheets/compass/css3/_shared.scss +5 -0
  69. data/stylesheets/compass/css3/_text-shadow.scss +82 -0
  70. data/stylesheets/compass/css3/_transform.scss +590 -0
  71. data/stylesheets/compass/css3/_transition.scss +171 -0
  72. data/stylesheets/compass/css3/_user-interface.scss +71 -0
  73. data/stylesheets/compass/layout/_grid-background.scss +178 -0
  74. data/stylesheets/compass/layout/_sticky-footer.scss +23 -0
  75. data/stylesheets/compass/layout/_stretching.scss +24 -0
  76. data/stylesheets/compass/reset/_utilities-legacy.scss +135 -0
  77. data/stylesheets/compass/reset/_utilities.scss +142 -0
  78. data/stylesheets/compass/typography/_links.scss +3 -0
  79. data/stylesheets/compass/typography/_lists.scss +4 -0
  80. data/stylesheets/compass/typography/_text.scss +4 -0
  81. data/stylesheets/compass/typography/_units.scss +152 -0
  82. data/stylesheets/compass/typography/_vertical_rhythm.scss +300 -0
  83. data/stylesheets/compass/typography/links/_hover-link.scss +5 -0
  84. data/stylesheets/compass/typography/links/_link-colors.scss +28 -0
  85. data/stylesheets/compass/typography/links/_unstyled-link.scss +7 -0
  86. data/stylesheets/compass/typography/lists/_bullets.scss +34 -0
  87. data/stylesheets/compass/typography/lists/_horizontal-list.scss +63 -0
  88. data/stylesheets/compass/typography/lists/_inline-block-list.scss +50 -0
  89. data/stylesheets/compass/typography/lists/_inline-list.scss +47 -0
  90. data/stylesheets/compass/typography/text/_ellipsis.scss +25 -0
  91. data/stylesheets/compass/typography/text/_force-wrap.scss +12 -0
  92. data/stylesheets/compass/typography/text/_nowrap.scss +2 -0
  93. data/stylesheets/compass/typography/text/_replacement.scss +68 -0
  94. data/stylesheets/compass/utilities/_color.scss +1 -0
  95. data/stylesheets/compass/utilities/_general.scss +6 -0
  96. data/stylesheets/compass/utilities/_links.scss +5 -0
  97. data/stylesheets/compass/utilities/_lists.scss +6 -0
  98. data/stylesheets/compass/utilities/_print.scss +17 -0
  99. data/stylesheets/compass/utilities/_sass.scss +2 -0
  100. data/stylesheets/compass/utilities/_sprites.scss +2 -0
  101. data/stylesheets/compass/utilities/_tables.scss +3 -0
  102. data/stylesheets/compass/utilities/_text.scss +5 -0
  103. data/stylesheets/compass/utilities/color/_brightness.scss +12 -0
  104. data/stylesheets/compass/utilities/color/_contrast.scss +52 -0
  105. data/stylesheets/compass/utilities/general/_clearfix.scss +44 -0
  106. data/stylesheets/compass/utilities/general/_float.scss +38 -0
  107. data/stylesheets/compass/utilities/general/_hacks.scss +65 -0
  108. data/stylesheets/compass/utilities/general/_min.scss +16 -0
  109. data/stylesheets/compass/utilities/general/_reset.scss +2 -0
  110. data/stylesheets/compass/utilities/general/_tabs.scss +1 -0
  111. data/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
  112. data/stylesheets/compass/utilities/links/_hover-link.scss +3 -0
  113. data/stylesheets/compass/utilities/links/_link-colors.scss +3 -0
  114. data/stylesheets/compass/utilities/links/_unstyled-link.scss +3 -0
  115. data/stylesheets/compass/utilities/lists/_bullets.scss +3 -0
  116. data/stylesheets/compass/utilities/lists/_horizontal-list.scss +3 -0
  117. data/stylesheets/compass/utilities/lists/_inline-block-list.scss +3 -0
  118. data/stylesheets/compass/utilities/lists/_inline-list.scss +3 -0
  119. data/stylesheets/compass/utilities/sass/_lists.scss +16 -0
  120. data/stylesheets/compass/utilities/sass/_maps.scss +19 -0
  121. data/stylesheets/compass/utilities/sprites/_base.scss +92 -0
  122. data/stylesheets/compass/utilities/sprites/_sprite-img.scss +81 -0
  123. data/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +22 -0
  124. data/stylesheets/compass/utilities/tables/_borders.scss +38 -0
  125. data/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
  126. data/stylesheets/compass/utilities/text/_ellipsis.scss +3 -0
  127. data/stylesheets/compass/utilities/text/_nowrap.scss +3 -0
  128. data/stylesheets/compass/utilities/text/_replacement.scss +3 -0
  129. data/templates/ellipsis/ellipsis.sass +9 -0
  130. data/templates/ellipsis/manifest.rb +27 -0
  131. data/templates/ellipsis/xml/ellipsis.xml +14 -0
  132. data/templates/extension/manifest.rb +26 -0
  133. data/templates/extension/stylesheets/main.sass +1 -0
  134. data/templates/extension/templates/project/manifest.rb +2 -0
  135. data/templates/extension/templates/project/screen.sass +2 -0
  136. data/templates/project/USAGE.markdown +32 -0
  137. data/templates/project/ie.sass +6 -0
  138. data/templates/project/manifest.rb +4 -0
  139. data/templates/project/print.sass +6 -0
  140. data/templates/project/screen.sass +7 -0
  141. metadata +241 -0
@@ -0,0 +1,50 @@
1
+ // Filter
2
+ @import "compass/support";
3
+
4
+ // The prefixed support threshold for css filter effects.
5
+ // Defaults to the $graceful-usage-threshold.
6
+ $filter-support-threshold: $graceful-usage-threshold !default;
7
+
8
+
9
+ // Provides cross-browser support for the upcoming (?) css3 filter property.
10
+ //
11
+ // The filter argument should adhere to the standard css3 syntax
12
+ // for the filter property.
13
+ @mixin filter($filters) {
14
+ @include prefixed-properties(css-filters, $filter-support-threshold,(
15
+ filter: $filters
16
+ ));
17
+ }
18
+
19
+ // @private Apply filter-margins
20
+ @mixin apply-filter-margin($position, $width) {
21
+ @include prefixed-properties(css-filters, $filter-support-threshold,(
22
+ filter-margin-#{$position}: $width
23
+ ));
24
+ }
25
+
26
+ // filter-margin-top
27
+ @mixin filter-margin-top($width) { @include apply-filter-margin(top, $width); }
28
+
29
+ // filter-margin-right
30
+ @mixin filter-margin-right($width) { @include apply-filter-margin(right, $width); }
31
+
32
+ // filter-margin-bottom
33
+ @mixin filter-margin-bottom($width) { @include apply-filter-margin(bottom, $width); }
34
+
35
+ // filter-margin-left
36
+ @mixin filter-margin-left($width) { @include apply-filter-margin(left, $width); }
37
+
38
+ // filter-margin
39
+ @mixin filter-margin($widths) {
40
+ @include prefixed-properties(css-filters, $filter-support-threshold,(
41
+ filter-margin: $widths
42
+ ));
43
+ }
44
+
45
+ // color-interpolation-filters (auto | sRGB | linearRGB )
46
+ @mixin color-interpolation-filters($value) {
47
+ @include prefixed-properties(css-filters, $filter-support-threshold,(
48
+ color-interpolation-filters: $value
49
+ ));
50
+ }
@@ -0,0 +1,156 @@
1
+ // There are two ways to use the flexbox module.
2
+ // If you're using the final version of the spec,
3
+ // you can use the property mixins as elsewhere in
4
+ // the css3 module.
5
+ //
6
+ // You can also use the flexbox prefixing mixin `flexbox`.
7
+ // This mixin takes an optional `$version` argument which
8
+ // allows you to specify which spec version the properties
9
+ // are using so that they will be prefixed correctly.
10
+ //
11
+ // Example:
12
+ //
13
+ // .flex-column {
14
+ // /* For flexbox spec v1 */
15
+ // @include flexbox((
16
+ // display: box,
17
+ // box-orient: vertical,
18
+ // ), $version: 1);
19
+ //
20
+ // /* For flexbox spec v2 */
21
+ // @include flexbox((
22
+ // display: flexbox,
23
+ // flex-direction: column,
24
+ // ), $version: 2);
25
+ //
26
+ // /* Latest Spec */
27
+ // @include flexbox((
28
+ // display: flex,
29
+ // flex-direction: column,
30
+ // ));
31
+ // }
32
+ //
33
+ // Which compiles to:
34
+ //
35
+ // .flex-row {
36
+ // /* For flexbox spec v1 */
37
+ // display: -moz-box;
38
+ // -moz-box-orient: vertical;
39
+ // display: -webkit-box;
40
+ // -webkit-box-orient: vertical;
41
+ //
42
+ // /* For flexbox spec v2 */
43
+ // display: -ms-flexbox;
44
+ // -ms-flex-direction: column;
45
+ //
46
+ // /* Latest Spec */
47
+ // display: -webkit-flex;
48
+ // -webkit-flex-direction: column;
49
+ // display: flex;
50
+ // flex-direction: column;
51
+ // }
52
+
53
+ @import "compass/support";
54
+
55
+ $flexbox-support-threshold: $critical-usage-threshold !default;
56
+
57
+
58
+ // @private
59
+ $flexbox-capability-options: (
60
+ (full-support: true),
61
+ (partial-support: true, spec-versions: 3)
62
+ );
63
+
64
+ // This is the underlying implementation for all the other mixins in this module.
65
+ // It is the only way to access prefix support for older versions of the spec.
66
+ //
67
+ // `$properties`: map of property-value pairs that should be prefixed
68
+
69
+ // `$version1: the version of the spec to use when considering what prefix
70
+ // to appply. Defaults to the most recent (spec version 3). Only the most
71
+ // recent version of the spec outputs an unprefixed version.
72
+ @mixin flexbox($properties, $version: null) {
73
+ $capability-options: $flexbox-capability-options;
74
+ @if $version {
75
+ $capability-options: (partial-support: true, spec-versions: $version);
76
+ }
77
+
78
+ @include with-each-prefix(flexbox, $flexbox-support-threshold, $capability-options) {
79
+ // Don't output unprefixed versions when the spec version is not the final version
80
+ @if $version and $current-prefix or not $version or $version == 3 {
81
+ @each $prop, $value in $properties {
82
+ @if $prop == display {
83
+ display: prefix-identifier($value);
84
+ } @else {
85
+ @include prefix-prop($prop, $value);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+
92
+ // Values for $display are: flex (default), inline-flex
93
+ @mixin display-flex($display: flex) {
94
+ @include flexbox((display: $display));
95
+ }
96
+
97
+ // Values: row | row-reverse | column | column-reverse
98
+ @mixin flex-direction($direction) {
99
+ @include flexbox((flex-direction: $direction));
100
+ }
101
+
102
+ // Values: nowrap | wrap | wrap-reverse
103
+ @mixin flex-wrap($wrap) {
104
+ @include flexbox((flex-wrap: $wrap));
105
+ }
106
+
107
+ // Shorthand for flex-direction and flex-wrap.
108
+ @mixin flex-flow($flow) {
109
+ @include flexbox((flex-flow: $flow));
110
+ }
111
+
112
+ // Accepts an integer
113
+ @mixin order($order) {
114
+ @include flexbox((order: $order));
115
+ }
116
+
117
+ // Shorthand for flex-grow, flex-shrink and optionally flex-basis.
118
+ // Space separated, in that order.
119
+ @mixin flex($flex) {
120
+ @include flexbox((flex: $flex));
121
+ }
122
+
123
+ // Accepts a number.
124
+ @mixin flex-grow($flex-grow) {
125
+ @include flexbox((flex-grow: $flex-grow));
126
+ }
127
+
128
+ // Accepts a number.
129
+ @mixin flex-shrink($flex-shrink) {
130
+ @include flexbox((flex-shrink: $flex-shrink));
131
+ }
132
+
133
+ // Accepts any legal value for the width property.
134
+ @mixin flex-basis($flex-basis) {
135
+ @include flexbox((flex-basis: $flex-basis));
136
+ }
137
+
138
+ // Legal values: flex-start | flex-end | center | space-between | space-around
139
+ @mixin justify-content($justify-content) {
140
+ @include flexbox((justify-content: $justify-content));
141
+ }
142
+
143
+ // Legal values: flex-start | flex-end | center | baseline | stretch
144
+ @mixin align-items($align-items) {
145
+ @include flexbox((align-items: $align-items));
146
+ }
147
+
148
+ // Legal values: auto | flex-start | flex-end | center | baseline | stretch
149
+ @mixin align-self($align-self) {
150
+ @include flexbox((align-self: $align-self));
151
+ }
152
+
153
+ // Legal values: flex-start | flex-end | center | space-between | space-around | stretch
154
+ @mixin align-content($align-content) {
155
+ @include flexbox((align-content: $align-content));
156
+ }
@@ -0,0 +1,48 @@
1
+ @import "compass/support";
2
+
3
+ // Cross-browser support for @font-face. Supports IE, Gecko, Webkit, Opera.
4
+ //
5
+ // * $name is required, arbitrary, and what you will use in font stacks.
6
+ // * $font-files is required using font-files('relative/location', 'format').
7
+ // for best results use this order: woff, opentype/truetype, svg
8
+ // * $eot is required by IE, and is a relative location of the eot file.
9
+ // * $weight shows if the font is bold, defaults to normal
10
+ // * $style defaults to normal, might be also italic
11
+ // * For android 2.2 Compatiblity, please ensure that your web page has
12
+ // a meta viewport tag.
13
+ // * To support iOS < 4.2, an SVG file must be provided
14
+ //
15
+ // If you need to generate other formats check out the Font Squirrel
16
+ // [font generator](http://www.fontsquirrel.com/fontface/generator)
17
+ //
18
+
19
+ // In order to refer to a specific style of the font in your stylesheets as
20
+ // e.g. "font-style: italic;", you may add a couple of @font-face includes
21
+ // containing the respective font files for each style and specying
22
+ // respective the $style parameter.
23
+
24
+ // Order of the includes matters, and it is: normal, bold, italic, bold+italic.
25
+
26
+ @mixin font-face(
27
+ $name,
28
+ $font-files,
29
+ $eot: false,
30
+ $weight: false,
31
+ $style: false
32
+ ) {
33
+ $iefont: unquote("#{$eot}?#iefix");
34
+ @font-face {
35
+ font-family: quote($name);
36
+ @if $eot {
37
+ src: font-url($eot);
38
+ $font-files: font-url($iefont) unquote("format('embedded-opentype')"), $font-files;
39
+ }
40
+ src: $font-files;
41
+ @if $weight {
42
+ font-weight: $weight;
43
+ }
44
+ @if $style {
45
+ font-style: $style;
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,71 @@
1
+ // Mixins to support specific CSS Text Level 3 elements
2
+
3
+ @import "compass/support";
4
+
5
+ // The the user threshold for hyphens support.
6
+ // Defaults to `$graceful-usage-threshold`.
7
+ $hyphens-support-threshold: $graceful-usage-threshold !default;
8
+
9
+
10
+ // Mixin for word-break properties
11
+ // http://www.w3.org/css3-text/#word-break
12
+ // * legal values for $type : normal, keep-all, break-all
13
+ //
14
+ // Example:
15
+ // p.wordBreak {@include word-break(break-all);}
16
+ //
17
+ // Which generates:
18
+ // p.wordBreak {
19
+ // word-break: break-all;
20
+ // word-break: break-word;}
21
+ //
22
+ @mixin word-break($value: normal){
23
+ word-break: $value;
24
+ @if $value == break-all {
25
+ //Webkit handles break-all differently... as break-word
26
+ @include with-prefix(-webkit) {
27
+ word-break: break-word;
28
+ }
29
+ }
30
+ }
31
+
32
+ // Mixin for the hyphens property
33
+ //
34
+ // W3C specification: http://www.w3.org/TR/css3-text/#hyphens
35
+ // * legal values for $type : auto, manual, none
36
+ //
37
+ // Example:
38
+ // p {
39
+ // @include hyphens(auto);}
40
+ // Which generates:
41
+ // p {
42
+ // -moz-hyphens: auto;
43
+ // -webkit-hyphens: auto;
44
+ // hyphens: auto;}
45
+ //
46
+ @mixin hyphens($value: auto){
47
+ @include prefixed-properties(css-hyphens, $hyphens-support-threshold, (
48
+ hyphens: $value
49
+ ));
50
+ }
51
+
52
+ // Mixin for x-browser hyphenation based on @auchenberg's post:
53
+ // Removes the need for the <wbr/> HTML tag
54
+ // http://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/
55
+ //
56
+ // Example:
57
+ // div {@include hyphenation;}
58
+ //
59
+ // Which generates:
60
+ // div {
61
+ // -ms-word-break: break-all;
62
+ // word-break: break-all;
63
+ // word-break: break-word;
64
+ // -moz-hyphens: auto;
65
+ // -webkit-hyphens: auto;
66
+ // hyphens: auto;}
67
+ //
68
+ @mixin hyphenation {
69
+ @include word-break(break-all);
70
+ @include hyphens;
71
+ }
@@ -0,0 +1,139 @@
1
+ @import "compass/support";
2
+ @import "compass/utilities/general/hacks";
3
+
4
+ $gradient-support-threshold: $graceful-usage-threshold !default;
5
+ $svg-gradient-shim-threshold: 10.0 !default;
6
+ $border-image-support-threshold: $graceful-usage-threshold !default;
7
+
8
+ // Compass assumes you will use the official gradient syntax,
9
+ // unless otherwise instructed.
10
+ $use-legacy-gradient-syntax: false !default;
11
+
12
+ // Create a linear gradient using standard official or legacy syntax.
13
+ // This function must be included in one of the following
14
+ // image module mixins to work properly.
15
+ @function linear-gradient($angle, $details...) {
16
+ $legacy-syntax: $use-legacy-gradient-syntax;
17
+
18
+ @if type-of($angle) != 'number' {
19
+ $angle: compact($angle);
20
+ $legacy-syntax: if(index($angle, 'to'), false, true);
21
+ }
22
+
23
+ @if $legacy-syntax {
24
+ @return _linear-gradient_legacy($angle, $details...);
25
+ } @else {
26
+ @return _linear-gradient($angle, $details...);
27
+ }
28
+ }
29
+
30
+ // These browsers support svg but not gradients
31
+ // so we can shim the gradient with an inline svg file.
32
+ $browsers-supporting-svg-but-not-gradients: (ie: "9", opera: "9.5-9.6");
33
+
34
+ @mixin each-gradient-prefix($values) {
35
+ @if prefixed(-svg, $values) {
36
+ @include for-legacy-browsers($browsers-supporting-svg-but-not-gradients,
37
+ $svg-gradient-shim-threshold)
38
+ {
39
+ @include with-prefix(-svg) {
40
+ @content;
41
+ }
42
+ }
43
+ }
44
+ @include with-each-prefix(css-gradients, $gradient-support-threshold) {
45
+ @if $current-prefix {
46
+ @if prefixed($current-prefix, $values) {
47
+ @content;
48
+ } @else if $debug-browser-support {
49
+ /* There is not a value that needs to be prefixed with #{$current-prefix} in: #{$values} */
50
+ }
51
+ } @else {
52
+ @content;
53
+ }
54
+ }
55
+ }
56
+
57
+ @mixin image-property($property, $values...) {
58
+ @include each-gradient-prefix($values) {
59
+ @if $current-prefix {
60
+ #{$property}: prefix($current-prefix, $values);
61
+ } @else {
62
+ #{$property}: $values;
63
+ }
64
+ @content;
65
+ }
66
+ }
67
+
68
+ // Background property support for vendor prefixing within values.
69
+ @mixin background($backgrounds...) {
70
+ @include image-property(background, $backgrounds...);
71
+ }
72
+
73
+ // Set any number of background layers, along with a fallback.
74
+ // The final argument will be output separately, first, as a css2 fallback.
75
+ @mixin background-with-css2-fallback($backgrounds...) {
76
+ @if length($backgrounds) > 1 or prefixed(-css2, $backgrounds) {
77
+ background: -css2(nth($backgrounds, -1));
78
+ }
79
+ @include background($backgrounds...);
80
+ }
81
+
82
+
83
+ // Background image property support for vendor prefixing within values.
84
+ @mixin background-image($images...) {
85
+ @include image-property(background-image, $images...) {
86
+ @if $current-prefix == -svg {
87
+ background-size: 100%;
88
+ }
89
+ }
90
+ }
91
+
92
+ // Emit a IE-Specific filters that renders a simple linear gradient.
93
+ // For use in IE 6 - 8. Best practice would have you apply this via a
94
+ // conditional IE stylesheet, but if you must, you should place this before
95
+ // any background-image properties that you have specified.
96
+ //
97
+ // For the `$orientation` parameter, you can pass `vertical` or `horizontal`.
98
+ @mixin filter-gradient(
99
+ $start-color,
100
+ $end-color,
101
+ $orientation: vertical
102
+ ) {
103
+ @include for-legacy-browsers((ie: "8"), $gradient-support-threshold) {
104
+ @include has-layout;
105
+ $gradient-type: if($orientation == vertical, 0, 1);
106
+ filter: progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}');
107
+ }
108
+ }
109
+
110
+
111
+ // Border image property support for vendor prefixing properties and values.
112
+ @mixin border-image($value) {
113
+ @include with-each-prefix(border-image, $border-image-support-threshold) {
114
+ $border-prefix: $current-prefix;
115
+ @include each-gradient-prefix($value) {
116
+ @if $current-prefix and prefixed($current-prefix, $value) {
117
+ $legacy-value: reject($value, fill);
118
+ @include prefix-prop(border-image, prefix($current-prefix, $legacy-value), $prefix: $border-prefix);
119
+ } @else {
120
+ @include prefix-prop(border-image, $value, $prefix: $border-prefix);
121
+ }
122
+ }
123
+ }
124
+ }
125
+
126
+ // List style image property support for vendor prefixing within values.
127
+ @mixin list-style-image($image) {
128
+ @include image-property(list-style-image, $image);
129
+ }
130
+
131
+ // List style property support for vendor prefixing within values.
132
+ @mixin list-style($value) {
133
+ @include image-property(list-style, $value);
134
+ }
135
+
136
+ // content property support for vendor prefixing within values.
137
+ @mixin content($value) {
138
+ @include image-property(content, $value);
139
+ }