compass 0.13.alpha.4 → 0.13.alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. checksums.yaml +7 -0
  2. data/README.markdown +2 -3
  3. data/Rakefile +91 -5
  4. data/VERSION.yml +1 -1
  5. data/examples/compass/images/emblem-a043c4f148.png +0 -0
  6. data/examples/compass/images/flag-03c3b29b35.png +0 -0
  7. data/examples/compass/images/flag-21cfbfbfc8.png +0 -0
  8. data/examples/css3/extensions/fancy-fonts/templates/project/Prociono.otf +0 -0
  9. data/features/command_line.feature +2 -6
  10. data/features/step_definitions/command_line_steps.rb +1 -0
  11. data/frameworks/compass/stylesheets/compass/_css3.scss +0 -1
  12. data/frameworks/compass/stylesheets/compass/_support.scss +353 -35
  13. data/frameworks/compass/stylesheets/compass/css3/_animation.scss +49 -48
  14. data/frameworks/compass/stylesheets/compass/css3/_appearance.scss +4 -8
  15. data/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +15 -19
  16. data/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +17 -19
  17. data/frameworks/compass/stylesheets/compass/css3/_background-size.scss +4 -8
  18. data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +37 -39
  19. data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +45 -20
  20. data/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +6 -8
  21. data/frameworks/compass/stylesheets/compass/css3/_box.scss +12 -13
  22. data/frameworks/compass/stylesheets/compass/css3/_columns.scss +46 -26
  23. data/frameworks/compass/stylesheets/compass/css3/_deprecated-support.scss +272 -0
  24. data/frameworks/compass/stylesheets/compass/css3/_filter.scss +17 -10
  25. data/frameworks/compass/stylesheets/compass/css3/_flexbox.scss +134 -281
  26. data/frameworks/compass/stylesheets/compass/css3/_font-face.scss +5 -5
  27. data/frameworks/compass/stylesheets/compass/css3/_hyphenation.scss +14 -11
  28. data/frameworks/compass/stylesheets/compass/css3/_images.scss +77 -67
  29. data/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +15 -6
  30. data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +6 -2
  31. data/frameworks/compass/stylesheets/compass/css3/_pie.scss +1 -73
  32. data/frameworks/compass/stylesheets/compass/css3/_regions.scss +7 -6
  33. data/frameworks/compass/stylesheets/compass/css3/_selection.scss +45 -17
  34. data/frameworks/compass/stylesheets/compass/css3/_shared.scss +4 -261
  35. data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +1 -1
  36. data/frameworks/compass/stylesheets/compass/css3/_transform.scss +24 -32
  37. data/frameworks/compass/stylesheets/compass/css3/_transition.scss +102 -152
  38. data/frameworks/compass/stylesheets/compass/css3/_user-interface.scss +42 -27
  39. data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +2 -1
  40. data/frameworks/compass/stylesheets/compass/typography/links/_hover-link.scss +1 -1
  41. data/frameworks/compass/stylesheets/compass/typography/lists/_horizontal-list.scss +2 -2
  42. data/frameworks/compass/stylesheets/compass/typography/lists/_inline-list.scss +1 -1
  43. data/frameworks/compass/stylesheets/compass/typography/text/_ellipsis.scss +1 -1
  44. data/frameworks/compass/stylesheets/compass/utilities/_sass.scss +2 -0
  45. data/frameworks/compass/stylesheets/compass/utilities/color/_brightness.scss +12 -0
  46. data/frameworks/compass/stylesheets/compass/utilities/color/_contrast.scss +36 -12
  47. data/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +6 -2
  48. data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +23 -4
  49. data/frameworks/compass/stylesheets/compass/utilities/general/_min.scss +1 -1
  50. data/frameworks/compass/stylesheets/compass/utilities/sass/_lists.scss +16 -0
  51. data/frameworks/compass/stylesheets/compass/utilities/sass/_maps.scss +19 -0
  52. data/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss +25 -18
  53. data/frameworks/compass/stylesheets/compass/utilities/sprites/_sprite-img.scss +3 -1
  54. data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +3 -3
  55. data/lib/compass.rb +1 -1
  56. data/lib/compass/browser_support.rb +1 -1
  57. data/lib/compass/caniuse.rb +247 -0
  58. data/lib/compass/configuration/adapters.rb +7 -1
  59. data/lib/compass/sass_extensions/functions.rb +5 -0
  60. data/lib/compass/sass_extensions/functions/constants.rb +2 -2
  61. data/lib/compass/sass_extensions/functions/cross_browser_support.rb +176 -1
  62. data/lib/compass/sass_extensions/functions/display.rb +24 -19
  63. data/lib/compass/sass_extensions/functions/env.rb +37 -8
  64. data/lib/compass/sass_extensions/functions/gradient_support.rb +10 -13
  65. data/lib/compass/sass_extensions/functions/math.rb +31 -13
  66. data/lib/compass/sass_extensions/functions/sprites.rb +48 -25
  67. data/lib/compass/sass_extensions/monkey_patches/browser_support.rb +42 -13
  68. data/lib/compass/sass_extensions/sprites/image.rb +14 -4
  69. data/lib/compass/sass_extensions/sprites/image_methods.rb +19 -3
  70. data/lib/compass/sprite_importer/content.erb +8 -7
  71. data/lib/compass/watcher/project_watcher.rb +75 -42
  72. data/lib/compass/watcher/watch.rb +35 -17
  73. data/test/fixtures/sprites/public/images/focus/ten-by-ten.png +0 -0
  74. data/test/fixtures/sprites/public/images/focus/ten-by-ten_active.png +0 -0
  75. data/test/fixtures/sprites/public/images/focus/ten-by-ten_focus.png +0 -0
  76. data/test/fixtures/sprites/public/images/focus/ten-by-ten_hover.png +0 -0
  77. data/test/fixtures/sprites/public/images/focus/ten-by-ten_target.png +0 -0
  78. data/test/fixtures/stylesheets/compass/config.rb +1 -0
  79. data/test/fixtures/stylesheets/compass/css/animation-with-legacy-ie.css +1 -9
  80. data/test/fixtures/stylesheets/compass/css/animation.css +1 -9
  81. data/test/fixtures/stylesheets/compass/css/appearance.css +3 -0
  82. data/test/fixtures/stylesheets/compass/css/background-clip.css +4 -8
  83. data/test/fixtures/stylesheets/compass/css/background-origin.css +4 -8
  84. data/test/fixtures/stylesheets/compass/css/background-size.css +3 -10
  85. data/test/fixtures/stylesheets/compass/css/border_radius.css +3 -3
  86. data/test/fixtures/stylesheets/compass/css/{box-sizeing.css → box-sizing.css} +2 -2
  87. data/test/fixtures/stylesheets/compass/css/box_shadow.css +15 -5
  88. data/test/fixtures/stylesheets/compass/css/brightness.css +14 -0
  89. data/test/fixtures/stylesheets/compass/css/browser-support.css +306 -0
  90. data/test/fixtures/stylesheets/compass/css/color.css +18 -0
  91. data/test/fixtures/stylesheets/compass/css/columns.css +27 -18
  92. data/test/fixtures/stylesheets/compass/css/filters.css +6 -6
  93. data/test/fixtures/stylesheets/compass/css/flexbox.css +84 -111
  94. data/test/fixtures/stylesheets/compass/css/fonts.css +1 -1
  95. data/test/fixtures/stylesheets/compass/css/gradients.css +53 -53
  96. data/test/fixtures/stylesheets/compass/css/grid_background.css +11 -11
  97. data/test/fixtures/stylesheets/compass/css/hyphenation.css +2 -4
  98. data/test/fixtures/stylesheets/compass/css/lists.css +6 -12
  99. data/test/fixtures/stylesheets/compass/css/regions.css +2 -2
  100. data/test/fixtures/stylesheets/compass/css/selection.css +41 -4
  101. data/test/fixtures/stylesheets/compass/css/sprites_with_explicit_separator.css +16 -0
  102. data/test/fixtures/stylesheets/compass/css/support.css +62 -0
  103. data/test/fixtures/stylesheets/compass/css/transform.css +64 -136
  104. data/test/fixtures/stylesheets/compass/css/transition.css +27 -45
  105. data/test/fixtures/stylesheets/compass/css/typography/links/hover-link.css +4 -0
  106. data/test/fixtures/stylesheets/compass/css/user-interface.css +34 -7
  107. data/test/fixtures/stylesheets/compass/css/utilities.css +7 -7
  108. data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +6 -9
  109. data/test/fixtures/stylesheets/compass/images/flag_states-sc42d7bf926.png +0 -0
  110. data/test/fixtures/stylesheets/compass/images/flag_states/foo.png +0 -0
  111. data/test/fixtures/stylesheets/compass/images/flag_states/foo_active.png +0 -0
  112. data/test/fixtures/stylesheets/compass/images/flag_states/foo_focus.png +0 -0
  113. data/test/fixtures/stylesheets/compass/images/flag_states/foo_hover.png +0 -0
  114. data/test/fixtures/stylesheets/compass/images/flag_states/foo_target.png +0 -0
  115. data/test/fixtures/stylesheets/compass/sass/animation-with-legacy-ie.scss +1 -3
  116. data/test/fixtures/stylesheets/compass/sass/appearance.scss +5 -0
  117. data/test/fixtures/stylesheets/compass/sass/background-clip.scss +0 -5
  118. data/test/fixtures/stylesheets/compass/sass/background-origin.scss +0 -5
  119. data/test/fixtures/stylesheets/compass/sass/background-size.scss +0 -5
  120. data/test/fixtures/stylesheets/compass/sass/{box-sizeing.scss → box-sizing.scss} +1 -1
  121. data/test/fixtures/stylesheets/compass/sass/box_shadow.scss +2 -0
  122. data/test/fixtures/stylesheets/compass/sass/brightness.scss +12 -0
  123. data/test/fixtures/stylesheets/compass/sass/browser-support.scss +30 -0
  124. data/test/fixtures/stylesheets/compass/sass/color.scss +22 -0
  125. data/test/fixtures/stylesheets/compass/sass/filters.scss +1 -0
  126. data/test/fixtures/stylesheets/compass/sass/flexbox.scss +84 -40
  127. data/test/fixtures/stylesheets/compass/sass/gradients.sass +3 -2
  128. data/test/fixtures/stylesheets/compass/sass/selection.scss +29 -4
  129. data/test/fixtures/stylesheets/compass/sass/sprites_with_explicit_separator.scss +7 -0
  130. data/test/fixtures/stylesheets/compass/sass/support.scss +137 -0
  131. data/test/fixtures/stylesheets/compass/sass/transition.scss +0 -3
  132. data/test/fixtures/stylesheets/compass/sass/typography/links/hover-link.scss +3 -0
  133. data/test/fixtures/stylesheets/compass/sass/user-interface.scss +16 -5
  134. data/test/fixtures/stylesheets/compass/sass/utilities.scss +4 -4
  135. data/test/fixtures/stylesheets/envtest/css/env.css +4 -4
  136. data/test/fixtures/stylesheets/envtest/tmp/env.css +4 -4
  137. data/test/integrations/sprites_test.rb +30 -1
  138. data/test/test_helper.rb +2 -2
  139. data/test/units/caniuse_test.rb +115 -0
  140. data/test/units/command_line_test.rb +1 -0
  141. data/test/units/sass_extensions_test.rb +5 -0
  142. data/test/units/sprites/image_test.rb +12 -0
  143. data/test/units/sprites/sprite_map_test.rb +11 -0
  144. data/test/units/watcher/project_watcher_test.rb +26 -18
  145. metadata +96 -42
  146. data/examples/compass/src/pie.scss +0 -110
  147. data/frameworks/compass/stylesheets/compass/css3/_transform-legacy.scss +0 -87
  148. data/frameworks/compass/templates/pie/LICENSE +0 -12
  149. data/frameworks/compass/templates/pie/LICENSE-APACHE2.txt +0 -13
  150. data/frameworks/compass/templates/pie/LICENSE-GPL2.txt +0 -278
  151. data/frameworks/compass/templates/pie/PIE.htc +0 -96
  152. data/frameworks/compass/templates/pie/manifest.rb +0 -39
  153. data/frameworks/compass/templates/pie/pie.scss +0 -74
  154. data/lib/compass/sass_extensions/functions/utility.rb +0 -10
  155. data/test/fixtures/stylesheets/compass/css/pie.css +0 -23
  156. data/test/fixtures/stylesheets/compass/sass/pie.scss +0 -47
@@ -1,4 +1,4 @@
1
- @import "shared";
1
+ @import "compass/support";
2
2
 
3
3
  // Cross-browser support for @font-face. Supports IE, Gecko, Webkit, Opera.
4
4
  //
@@ -16,7 +16,7 @@
16
16
  // [font generator](http://www.fontsquirrel.com/fontface/generator)
17
17
  //
18
18
 
19
- // In order to refer to a specific style of the font in your stylesheets as
19
+ // In order to refer to a specific style of the font in your stylesheets as
20
20
  // e.g. "font-style: italic;", you may add a couple of @font-face includes
21
21
  // containing the respective font files for each style and specying
22
22
  // respective the $style parameter.
@@ -24,8 +24,8 @@
24
24
  // Order of the includes matters, and it is: normal, bold, italic, bold+italic.
25
25
 
26
26
  @mixin font-face(
27
- $name,
28
- $font-files,
27
+ $name,
28
+ $font-files,
29
29
  $eot: false,
30
30
  $weight: false,
31
31
  $style: false
@@ -35,7 +35,7 @@
35
35
  font-family: quote($name);
36
36
  @if $eot {
37
37
  src: font-url($eot);
38
- $font-files: font-url($iefont) unquote("format('eot')"), $font-files;
38
+ $font-files: font-url($iefont) unquote("format('embedded-opentype')"), $font-files;
39
39
  }
40
40
  src: $font-files;
41
41
  @if $weight {
@@ -1,11 +1,10 @@
1
1
  // Mixins to support specific CSS Text Level 3 elements
2
2
 
3
- @import "shared";
3
+ @import "compass/support";
4
4
 
5
- // @private css3-feature-support variables must always include a list of five boolean values
6
- // representing in order: -moz, -webkit, -ms, -o, -khtml
7
- // - mozilla/webkit legacy support handled seperately below
8
- $hyphens-support: -moz, -webkit, -ms, -o, not -khtml;
5
+ // The the user threshold for hyphens support.
6
+ // Defaults to `$graceful-usage-threshold`.
7
+ $hyphens-support-threshold: $graceful-usage-threshold;
9
8
 
10
9
 
11
10
  // Mixin for word-break properties
@@ -17,15 +16,17 @@ $hyphens-support: -moz, -webkit, -ms, -o, not -khtml;
17
16
  //
18
17
  // Which generates:
19
18
  // p.wordBreak {
20
- // -ms-word-break: break-all;
21
19
  // word-break: break-all;
22
20
  // word-break: break-word;}
23
21
  //
24
22
  @mixin word-break($value: normal){
25
23
  word-break: $value;
26
-
27
- //Webkit handles break-all differently... as break-word
28
- @if $value == break-all { word-break: break-word; }
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
+ }
29
30
  }
30
31
 
31
32
  // Mixin for the hyphens property
@@ -43,7 +44,9 @@ $hyphens-support: -moz, -webkit, -ms, -o, not -khtml;
43
44
  // hyphens: auto;}
44
45
  //
45
46
  @mixin hyphens($value: auto){
46
- @include experimental(hyphens, $value, $hyphens-support);
47
+ @include prefixed-properties(css-hyphens, $hyphens-support-threshold, (
48
+ hyphens: $value
49
+ ));
47
50
  }
48
51
 
49
52
  // Mixin for x-browser hyphenation based on @auchenberg's post:
@@ -62,7 +65,7 @@ $hyphens-support: -moz, -webkit, -ms, -o, not -khtml;
62
65
  // -webkit-hyphens: auto;
63
66
  // hyphens: auto;}
64
67
  //
65
- @mixin hyphenation{
68
+ @mixin hyphenation {
66
69
  @include word-break(break-all);
67
70
  @include hyphens;
68
71
  }
@@ -1,6 +1,10 @@
1
- @import "shared";
1
+ @import "compass/support";
2
2
  @import "compass/utilities/general/hacks";
3
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
+
4
8
  // Compass assumes you will use the official gradient syntax,
5
9
  // unless otherwise instructed.
6
10
  $use-legacy-gradient-syntax: false !default;
@@ -23,44 +27,66 @@ $use-legacy-gradient-syntax: false !default;
23
27
  }
24
28
  }
25
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
+
26
68
  // Background property support for vendor prefixing within values.
27
- @mixin background(
28
- $backgrounds...
29
- ) {
30
- $mult-bgs: -compass-list-size($backgrounds) > 1;
31
- $add-pie-bg: prefixed(-pie, $backgrounds) or $mult-bgs;
32
- @if $experimental-support-for-svg and prefixed(-svg, $backgrounds) { background: -svg($backgrounds); }
33
- @if $experimental-support-for-webkit and prefixed(-webkit, $backgrounds) { background: -webkit($backgrounds); }
34
- @if $experimental-support-for-mozilla and prefixed(-moz, $backgrounds) { background: -moz($backgrounds); }
35
- @if $experimental-support-for-opera and prefixed(-o, $backgrounds) { background: -o($backgrounds); }
36
- @if $experimental-support-for-pie and $add-pie-bg { -pie-background: -pie($backgrounds); }
37
- background: $backgrounds ;
69
+ @mixin background($backgrounds...) {
70
+ @include image-property(background, $backgrounds...);
38
71
  }
39
72
 
40
73
  // Set any number of background layers, along with a fallback.
41
74
  // The final argument will be output separately, first, as a css2 fallback.
42
- @mixin background-with-css2-fallback(
43
- $backgrounds...
44
- ) {
45
- $mult-bgs: -compass-list-size($backgrounds) > 1;
46
- $simple-background: if($mult-bgs or prefixed(-css2, $backgrounds), -css2(-compass-nth($backgrounds, last)), false);
47
- @if not blank($simple-background) { background: $simple-background; }
48
- @include background($backgrounds);
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...);
49
80
  }
50
81
 
51
82
 
52
83
  // Background image property support for vendor prefixing within values.
53
- @mixin background-image(
54
- $images...
55
- ) {
56
- $add-pie-bg: prefixed(-pie, $images) or -compass-list-size($images) > 1;
57
-
58
- @if $experimental-support-for-svg and prefixed(-svg, $images) { background-image: -svg($images); background-size: 100%; }
59
- @if $experimental-support-for-webkit and prefixed(-webkit, $images) { background-image: -webkit($images); }
60
- @if $experimental-support-for-mozilla and prefixed(-moz, $images) { background-image: -moz($images); }
61
- @if $experimental-support-for-opera and prefixed(-o, $images) { background-image: -o($images); }
62
- @if $experimental-support-for-pie and $add-pie-bg { @warn "PIE does not support background-image. Use @include background(#{$images}) instead." }
63
- background-image: $images ;
84
+ @mixin background-image($images...) {
85
+ @include image-property(background-image, $images...) {
86
+ @if $current-prefix == -svg {
87
+ background-size: 100%;
88
+ }
89
+ }
64
90
  }
65
91
 
66
92
  // Emit a IE-Specific filters that renders a simple linear gradient.
@@ -74,56 +100,40 @@ $use-legacy-gradient-syntax: false !default;
74
100
  $end-color,
75
101
  $orientation: vertical
76
102
  ) {
77
- @include has-layout;
78
- $gradient-type: if($orientation == vertical, 0, 1);
79
- @if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
103
+ @include for-legacy-browsers((ie: "8"), $gradient-support-threshold) {
104
+ @include has-layout;
105
+ $gradient-type: if($orientation == vertical, 0, 1);
80
106
  filter: progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}');
81
107
  }
82
108
  }
83
109
 
84
110
 
85
111
  // Border image property support for vendor prefixing properties and values.
86
- @mixin border-image(
87
- $value
88
- ) {
89
- @if $experimental-support-for-mozilla { -moz-border-image: -moz(reject(-compass-list($value), fill)); }
90
- @if $experimental-support-for-webkit { -webkit-border-image: -webkit(reject(-compass-list($value), fill)); }
91
- @if $experimental-support-for-opera { -o-border-image: -o(reject(-compass-list($value), fill)); }
92
- @if $experimental-support-for-svg { border-image: -svg(reject(-compass-list($value), fill)); }
93
- border-image: $value;
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
+ }
94
124
  }
95
125
 
96
126
  // List style image property support for vendor prefixing within values.
97
- @mixin list-style-image(
98
- $image
99
- ) {
100
- @if $experimental-support-for-mozilla and prefixed(-moz, $image) { list-style-image: -moz($image); }
101
- @if $experimental-support-for-webkit and prefixed(-webkit, $image) { list-style-image: -webkit($image); }
102
- @if $experimental-support-for-opera and prefixed(-o, $image) { list-style-image: -o($image); }
103
- @if $experimental-support-for-svg and prefixed(-svg, $image) { list-style-image: -svg($image); }
104
- list-style-image: $image ;
127
+ @mixin list-style-image($image) {
128
+ @include image-property(list-style-image, $image);
105
129
  }
106
130
 
107
131
  // List style property support for vendor prefixing within values.
108
- @mixin list-style(
109
- $value
110
- ) {
111
- $value: -compass-list($value);
112
- @if $experimental-support-for-mozilla and prefixed(-moz, $value) { list-style-image: -moz($value); }
113
- @if $experimental-support-for-webkit and prefixed(-webkit, $value) { list-style-image: -webkit($value); }
114
- @if $experimental-support-for-opera and prefixed(-o, $value) { list-style-image: -o($value); }
115
- @if $experimental-support-for-svg and prefixed(-svg, $value) { list-style-image: -svg($value); }
116
- list-style-image: $value ;
132
+ @mixin list-style($value) {
133
+ @include image-property(list-style, $value);
117
134
  }
118
135
 
119
136
  // content property support for vendor prefixing within values.
120
- @mixin content(
121
- $value
122
- ) {
123
- $value: -compass-list($value);
124
- @if $experimental-support-for-mozilla and prefixed(-moz, $value) { content: -moz($value); }
125
- @if $experimental-support-for-webkit and prefixed(-webkit, $value) { content: -webkit($value); }
126
- @if $experimental-support-for-opera and prefixed(-o, $value) { content: -o($value); }
127
- @if $experimental-support-for-svg and prefixed(-svg, $value) { content: -svg($value); }
128
- content: $value ;
137
+ @mixin content($value) {
138
+ @include image-property(content, $value);
129
139
  }
@@ -1,4 +1,8 @@
1
- @import "shared";
1
+ @import "compass/support";
2
+
3
+ // The legacy support for inline-block.
4
+ // Defaults to the $graceful-usage-threshold.
5
+ $inline-block-support-threshold: $graceful-usage-threshold !default;
2
6
 
3
7
  // Set `$inline-block-alignment` to `none` or `false` to disable the output
4
8
  // of a vertical-align property in the inline-block mixin.
@@ -6,17 +10,22 @@
6
10
  $inline-block-alignment: middle !default;
7
11
 
8
12
  // Provides a cross-browser method to implement `display: inline-block;`
9
- @mixin inline-block($alignment: $inline-block-alignment) {
10
- @if $legacy-support-for-mozilla {
13
+ @mixin inline-block($alignment: $inline-block-alignment, $ie-alignment: auto) {
14
+ // legacy support for VERY old firefox
15
+ @if support-legacy-browser("firefox", "2", $inline-block-support-threshold) {
11
16
  display: -moz-inline-stack;
12
17
  }
18
+ // standard
13
19
  display: inline-block;
14
20
  @if $alignment and $alignment != none {
15
21
  vertical-align: $alignment;
16
22
  }
17
- @if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
18
- *vertical-align: auto;
19
- zoom: 1;
23
+ // legacy IE support
24
+ @if support-legacy-browser("ie", "7", $inline-block-support-threshold) {
25
+ @if $ie-alignment and $ie-alignment != none {
26
+ *vertical-align: $ie-alignment;
27
+ }
28
+ *zoom: 1;
20
29
  *display: inline;
21
30
  }
22
31
  }
@@ -1,4 +1,8 @@
1
- @import "shared";
1
+ @import "compass/support";
2
+
3
+ // The support usage threshold for opacity. Defaults to the global
4
+ // threshold for graceful degradation.
5
+ $opacity-usage-threshold: $graceful-usage-threshold;
2
6
 
3
7
  // Provides cross-browser CSS opacity. Takes a number between 0 and 1 as the argument, e.g. 0.5 for 50% opacity.
4
8
  //
@@ -6,7 +10,7 @@
6
10
  // A number between 0 and 1, where 0 is transparent and 1 is opaque.
7
11
 
8
12
  @mixin opacity($opacity) {
9
- @if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
13
+ @include for-legacy-browser("ie", "8", $opacity-usage-threshold) {
10
14
  filter: unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=#{round($opacity * 100)})");
11
15
  }
12
16
  opacity: $opacity;
@@ -1,73 +1 @@
1
- $experimental-support-for-pie: true;
2
-
3
- // It is recommended that you use Sass's @extend directive to apply the behavior
4
- // to your PIE elements. To assist you, Compass provides this variable.
5
- // When set, it will cause the `@include pie` mixin to extend this class.
6
- // The class name you provide should **not** include the `.`.
7
- $pie-base-class: false !default;
8
-
9
- // The default approach to using PIE.
10
- // Can be one of:
11
- //
12
- // * relative (default)
13
- // * z-index
14
- // * none
15
- $pie-default-approach: relative !default;
16
-
17
- // The location of your PIE behavior file
18
- // This should be root-relative to your web server
19
- // relative assets don't work. It is recommended that
20
- // you set this yourself.
21
- $pie-behavior: stylesheet-url("PIE.htc") !default;
22
-
23
- // When using the z-index approach, the
24
- // first ancestor of the PIE element at
25
- // or before the container's opaque background
26
- // should have a z-index set as well to ensure
27
- // propert z-index stacking.
28
- //
29
- // The `$position` argument must be some non-static
30
- // value (absolute, relative, etc.)
31
- @mixin pie-container($z-index: 0, $position: relative) {
32
- z-index: $z-index;
33
- position: $position;
34
- }
35
-
36
- // PIE elements must have this behavior attached to them.
37
- // IE is broken -- it doesn't think of behavior urls as
38
- // relative to the stylesheet. It considers them relative
39
- // to the webpage. As a result, you cannot reliably use
40
- // compass's relative_assets with PIE.
41
- //
42
- // * `$approach` - one of: relative, z-index, or none
43
- // * `$z-index` - when using the z-index approach, this
44
- // is the z-index that is applied.
45
- @mixin pie-element(
46
- $approach: $pie-default-approach,
47
- $z-index: 0
48
- ) {
49
- behavior: $pie-behavior;
50
- @if $approach == relative {
51
- position: relative;
52
- }
53
- @else if $approach == z-index {
54
- z-index: $z-index;
55
- }
56
- }
57
-
58
- // a smart mixin that knows to extend or include pie-element according
59
- // to your stylesheet's configuration variables.
60
- @mixin pie($base-class: $pie-base-class) {
61
- @if $base-class {
62
- @extend .#{$base-class};
63
- }
64
- @else {
65
- @include pie-element;
66
- }
67
- }
68
-
69
- // Watch `$n` levels of ancestors for changes to their class attribute
70
- // So that cascading styles will work correctly on the PIE element.
71
- @mixin pie-watch-ancestors($n) {
72
- -pie-watch-ancestors: $n;
73
- }
1
+ @warn "Support for CSS3Pie has been removed.";
@@ -1,10 +1,11 @@
1
1
  // Regions
2
2
 
3
- @import "shared";
3
+ @import "compass/support";
4
+
5
+ // The prefixed support threshold for css regions.
6
+ // Defaults to the $graceful-usage-threshold.
7
+ $regions-support-threshold: $graceful-usage-threshold !default;
4
8
 
5
- // @private css3-feature-support variables must always include a list of five boolean values
6
- // representing in order: -moz, -webkit, -ms, -o, -khtml.
7
- $regions-support: not -moz, -webkit, -ms, not -o, not -khtml;
8
9
 
9
10
  // Webkit, IE10 and future support for [CSS Regions](http://dev.w3.org/csswg/css3-regions/)
10
11
  //
@@ -17,10 +18,10 @@ $regions-support: not -moz, -webkit, -ms, not -o, not -khtml;
17
18
 
18
19
  @mixin flow-into($target) {
19
20
  $target: unquote($target);
20
- @include experimental(flow-into, $target, $regions-support...);
21
+ @include prefixed-properties(css-regions, $regions-support-threshold, (flow-into: $target));
21
22
  }
22
23
 
23
24
  @mixin flow-from($target) {
24
25
  $target: unquote($target);
25
- @include experimental(flow-from, $target, $regions-support...);
26
+ @include prefixed-properties(css-regions, $regions-support-threshold, (flow-from: $target));
26
27
  }
@@ -1,30 +1,58 @@
1
- @import "shared";
1
+ @import "compass/support";
2
+ @import "compass/utilities/color";
2
3
 
3
- // Add the selection selector to any element
4
+ // The prefixed support threshold for ::selection.
5
+ // Defaults to the $graceful-usage-threshold.
6
+ $selection-support-threshold: $graceful-usage-threshold !default;
7
+
8
+ // Style selected text.
9
+ //
10
+ // At this time, only two CSS properties are supported in most browsers
11
+ // during selection: color and background-color. Firefox supports the
12
+ // text-shadow property.
13
+ //
14
+ // At the stylesheet root, include the mixin within the * selector.
15
+ //
16
+ // * {
17
+ // @include selection(#fe57a1, #fff)
18
+ // }
4
19
  //
5
- // There are two usage modes: at the stylesheet root, include the mixin with
6
- // styles passed as mixin content. This applies to all elements. For example:
20
+ // If a specific element or selector's selection is being styled
21
+ // you can use that selector instead. For example:
7
22
  //
8
- // @include selection {
9
- // background-color: #fe57a1;
10
- // color: #fff;
23
+ // .hot-pink {
24
+ // @include selection(#fe57a1, #fff)
11
25
  // }
12
26
  //
13
- // If a specific element is being styled, pass "&" as an argument to the mixin
14
- // as well. For example:
27
+ // These properties can be passed as arguments or you can set them via mixin
28
+ // content.
29
+ //
30
+ // For future-forward compatibility with other properties and aesthetic freedom,
31
+ // a mixin content block can be passed to this mixin in addition to or in place of
32
+ // passing arguments.
15
33
  //
16
34
  // .hot-pink {
17
- // @include selection("&") {
18
- // background-color: #fe57a1;
35
+ // @include selection {
36
+ // background: #fe57a1;
19
37
  // color: #fff;
20
38
  // }
21
39
  // }
22
- @mixin selection($selector: "") {
23
- #{$selector}::selection {
24
- @content;
25
- }
26
- @if $experimental-support-for-mozilla {
27
- #{$selector}::-moz-selection {
40
+ //
41
+ // When `$background-color` is specified, but `$color` is not, this mixin
42
+ // styles the foreground color like the [contrasted
43
+ // mixin](/reference/compass/utilities/color/contrast/#mixin-contrasted). To
44
+ // specify only the background-color, you should pass an explicit `null` value
45
+ // for `$color` or use mixin content.
46
+ @mixin selection($background-color: null, $color: contrast-color($background-color)) {
47
+ @include with-each-prefix(css-selection, $selection-support-threshold) {
48
+ $selector: '';
49
+ @if $current-prefix != null {
50
+ $selector: $current-prefix + '-';
51
+ }
52
+ $selector: "&::#{$selector}selection";
53
+ #{$selector} {
54
+ color: $color;
55
+ background-color: $background-color;
28
56
  @content;
29
57
  }
30
58
  }