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

Sign up to get free protection for your applications and to get access to all the features.
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
  }