compass 0.13.alpha.7 → 0.13.alpha.8
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.
- checksums.yaml +4 -4
- data/VERSION.yml +1 -1
- data/frameworks/compass/stylesheets/compass/_support.scss +136 -62
- data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +1 -1
- data/frameworks/compass/stylesheets/compass/css3/_flexbox.scss +11 -2
- data/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +2 -2
- data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +1 -1
- data/frameworks/compass/stylesheets/compass/css3/_user-interface.scss +1 -1
- data/frameworks/compass/stylesheets/compass/typography/lists/_horizontal-list.scss +2 -2
- data/frameworks/compass/stylesheets/compass/typography/lists/_inline-list.scss +1 -1
- data/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +3 -3
- data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +6 -6
- data/lib/compass/browser_support.rb +2 -2
- data/lib/compass/caniuse.rb +55 -19
- data/lib/compass/sass_extensions/functions/cross_browser_support.rb +34 -10
- data/test/fixtures/stylesheets/compass/css/animation-with-legacy-ie.css +0 -3
- data/test/fixtures/stylesheets/compass/css/animation.css +0 -3
- data/test/fixtures/stylesheets/compass/css/filters.css +30 -6
- data/test/fixtures/stylesheets/compass/css/gradients.css +7 -2
- data/test/fixtures/stylesheets/compass/css/support.css +23 -16
- data/test/fixtures/stylesheets/compass/sass/support.scss +45 -8
- data/test/fixtures/stylesheets/envtest/tmp/env.css +3 -3
- data/test/units/caniuse_test.rb +29 -10
- metadata +3 -91
- data/test/fixtures/stylesheets/compass/tmp/animation-with-legacy-ie.css +0 -22
- data/test/fixtures/stylesheets/compass/tmp/animation.css +0 -22
- data/test/fixtures/stylesheets/compass/tmp/appearance.css +0 -3
- data/test/fixtures/stylesheets/compass/tmp/background-clip.css +0 -11
- data/test/fixtures/stylesheets/compass/tmp/background-origin.css +0 -11
- data/test/fixtures/stylesheets/compass/tmp/background-size.css +0 -17
- data/test/fixtures/stylesheets/compass/tmp/border_radius.css +0 -14
- data/test/fixtures/stylesheets/compass/tmp/box-sizing.css +0 -9
- data/test/fixtures/stylesheets/compass/tmp/box.css +0 -103
- data/test/fixtures/stylesheets/compass/tmp/box_shadow.css +0 -24
- data/test/fixtures/stylesheets/compass/tmp/brightness.css +0 -14
- data/test/fixtures/stylesheets/compass/tmp/browser-support.css +0 -306
- data/test/fixtures/stylesheets/compass/tmp/color.css +0 -18
- data/test/fixtures/stylesheets/compass/tmp/columns.css +0 -134
- data/test/fixtures/stylesheets/compass/tmp/filters.css +0 -29
- data/test/fixtures/stylesheets/compass/tmp/flexbox.css +0 -94
- data/test/fixtures/stylesheets/compass/tmp/fonts.css +0 -4
- data/test/fixtures/stylesheets/compass/tmp/force-wrap.css +0 -9
- data/test/fixtures/stylesheets/compass/tmp/gradients.css +0 -230
- data/test/fixtures/stylesheets/compass/tmp/grid_background.css +0 -64
- data/test/fixtures/stylesheets/compass/tmp/hyphenation.css +0 -16
- data/test/fixtures/stylesheets/compass/tmp/image_size.css +0 -15
- data/test/fixtures/stylesheets/compass/tmp/images.css +0 -8
- data/test/fixtures/stylesheets/compass/tmp/layout.css +0 -16
- data/test/fixtures/stylesheets/compass/tmp/legacy_clearfix.css +0 -26
- data/test/fixtures/stylesheets/compass/tmp/lists.css +0 -145
- data/test/fixtures/stylesheets/compass/tmp/opacity.css +0 -3
- data/test/fixtures/stylesheets/compass/tmp/print.css +0 -11
- data/test/fixtures/stylesheets/compass/tmp/regions.css +0 -9
- data/test/fixtures/stylesheets/compass/tmp/replacement.css +0 -59
- data/test/fixtures/stylesheets/compass/tmp/reset.css +0 -59
- data/test/fixtures/stylesheets/compass/tmp/selection.css +0 -50
- data/test/fixtures/stylesheets/compass/tmp/sprites.css +0 -1263
- data/test/fixtures/stylesheets/compass/tmp/sprites_with_explicit_separator.css +0 -16
- data/test/fixtures/stylesheets/compass/tmp/stretching.css +0 -66
- data/test/fixtures/stylesheets/compass/tmp/support.css +0 -59
- data/test/fixtures/stylesheets/compass/tmp/text_shadow.css +0 -29
- data/test/fixtures/stylesheets/compass/tmp/transform.css +0 -369
- data/test/fixtures/stylesheets/compass/tmp/transition.css +0 -116
- data/test/fixtures/stylesheets/compass/tmp/typography/links/hover-link.css +0 -4
- data/test/fixtures/stylesheets/compass/tmp/units.css +0 -30
- data/test/fixtures/stylesheets/compass/tmp/user-interface.css +0 -52
- data/test/fixtures/stylesheets/compass/tmp/utilities.css +0 -71
- data/test/fixtures/stylesheets/compass/tmp/vertical_rhythm.css +0 -211
@@ -5,8 +5,8 @@ module Compass
|
|
5
5
|
ASPECTS = %w(webkit moz o ms svg css2)
|
6
6
|
|
7
7
|
SIMPLE_FUNCTIONS = {
|
8
|
-
"image" => %w(),
|
9
|
-
"cross-fade" => %w()
|
8
|
+
"image" => %w(webkit),
|
9
|
+
"cross-fade" => %w(webkit)
|
10
10
|
}
|
11
11
|
|
12
12
|
# Adds support for one or more aspects for the given simple function
|
data/lib/compass/caniuse.rb
CHANGED
@@ -76,34 +76,58 @@ class Compass::CanIUse
|
|
76
76
|
result
|
77
77
|
end
|
78
78
|
|
79
|
-
def
|
79
|
+
def browser_ranges(capability, prefix = nil, include_unprefixed_versions = true)
|
80
80
|
assert_valid_capability capability
|
81
81
|
browsers = prefix.nil? ? browsers() : browsers_with_prefix(prefix)
|
82
82
|
browsers.inject({}) do |m, browser|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
83
|
+
browser_versions = versions(browser)
|
84
|
+
min_version = find_first_prefixed_version(browser, browser_versions, capability, prefix)
|
85
|
+
if min_version
|
86
|
+
max_version = if include_unprefixed_versions
|
87
|
+
browser_versions.last
|
88
|
+
else
|
89
|
+
find_first_prefixed_version(browser, browser_versions.reverse, capability, prefix)
|
90
|
+
end
|
91
|
+
m.update(browser => [min_version, max_version])
|
92
|
+
end
|
93
93
|
m
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
97
|
+
def find_first_prefixed_version(browser, versions, capability, prefix)
|
98
|
+
versions.find do |version|
|
99
|
+
support = browser_support(browser, version, capability)
|
100
|
+
if prefix.nil?
|
101
|
+
support !~ /\bn\b/ && support !~ /\bx\b/
|
102
|
+
else
|
103
|
+
actual_prefix = prefix(browser, version)
|
104
|
+
support !~ /\bn\b/ && support =~ /\bx\b/ && prefix == actual_prefix
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# @overload omitted_usage(browser, min_supported_version)
|
110
|
+
# How many users would be omitted if support for the given browser starts
|
111
|
+
# with the given version.
|
112
|
+
#
|
113
|
+
# @overload omitted_usage(browser, min_unsupported_version, max_unsupported_version)
|
114
|
+
# How many users would be omitted if the browsers with version
|
115
|
+
def omitted_usage(browser, min_version, max_version = nil)
|
116
|
+
versions = versions(browser)
|
117
|
+
if max_version.nil?
|
118
|
+
assert_valid_version browser, min_version
|
119
|
+
else
|
120
|
+
assert_valid_version browser, min_version, max_version
|
121
|
+
end
|
101
122
|
usage = 0
|
102
|
-
|
103
|
-
|
104
|
-
|
123
|
+
in_range = max_version.nil?
|
124
|
+
versions.each do |version|
|
125
|
+
break if max_version.nil? && version == min_version
|
126
|
+
in_range = true if (!max_version.nil? && version == min_version)
|
127
|
+
usage += usage(browser, version) if in_range
|
128
|
+
break if !max_version.nil? && version == max_version
|
105
129
|
end
|
106
|
-
|
130
|
+
return usage
|
107
131
|
end
|
108
132
|
|
109
133
|
# returns the list of browsers that use the given prefix
|
@@ -150,6 +174,18 @@ class Compass::CanIUse
|
|
150
174
|
usage
|
151
175
|
end
|
152
176
|
|
177
|
+
def next_version(browser, version)
|
178
|
+
versions = versions(browser)
|
179
|
+
index = versions.index(version)
|
180
|
+
index < versions.length - 1 ? versions[index + 1] : nil
|
181
|
+
end
|
182
|
+
|
183
|
+
def previous_version(browser, version)
|
184
|
+
versions = versions(browser)
|
185
|
+
index = versions.index(version)
|
186
|
+
index > 0 ? versions[index - 1] : nil
|
187
|
+
end
|
188
|
+
|
153
189
|
# Returns whether the given minimum version of a browser
|
154
190
|
# requires the use of a prefix for the stated capability.
|
155
191
|
def requires_prefix(browser, min_version, capability, capability_options_list)
|
@@ -139,12 +139,34 @@ module Compass::SassExtensions::Functions::CrossBrowserSupport
|
|
139
139
|
|
140
140
|
# The percent of users that are omitted by setting the min_version of browser
|
141
141
|
# as specified.
|
142
|
-
def omitted_usage(browser, min_version)
|
142
|
+
def omitted_usage(browser, min_version, max_version = nil)
|
143
143
|
assert_type browser, :String
|
144
|
-
assert_type min_version, :String
|
145
|
-
|
144
|
+
assert_type min_version, :String, :min_version
|
145
|
+
assert_type(max_version, :String, :max_version) if max_version
|
146
|
+
versions = [min_version.value]
|
147
|
+
versions << max_version.value if max_version
|
148
|
+
number(Compass::CanIUse.instance.omitted_usage(browser.value, *versions))
|
146
149
|
end
|
147
150
|
Sass::Script::Functions.declare(:omitted_usage, [:browser, :min_version])
|
151
|
+
Sass::Script::Functions.declare(:omitted_usage, [:browser, :min_version, :max_version])
|
152
|
+
|
153
|
+
# The version before the version for the browser specified
|
154
|
+
def previous_version(browser, version)
|
155
|
+
assert_type browser, :String
|
156
|
+
assert_type version, :String
|
157
|
+
previous = Compass::CanIUse.instance.previous_version(browser.value, version.value)
|
158
|
+
previous.nil? ? null() : quoted_string(previous)
|
159
|
+
end
|
160
|
+
Sass::Script::Functions.declare(:previous_version, [:browser, :version])
|
161
|
+
|
162
|
+
# The version before the version for the browser specified
|
163
|
+
def next_version(browser, version)
|
164
|
+
assert_type browser, :String
|
165
|
+
assert_type version, :String
|
166
|
+
next_version = Compass::CanIUse.instance.next_version(browser.value, version.value)
|
167
|
+
next_version.nil? ? null() : quoted_string(next_version)
|
168
|
+
end
|
169
|
+
Sass::Script::Functions.declare(:next_version, [:browser, :version])
|
148
170
|
|
149
171
|
# The percent of users relying on a particular prefix
|
150
172
|
def prefix_usage(prefix, capability, capability_options)
|
@@ -164,9 +186,9 @@ module Compass::SassExtensions::Functions::CrossBrowserSupport
|
|
164
186
|
# * <0 if the first version is less than the second
|
165
187
|
# * >0 if the first version is more than the second
|
166
188
|
def compare_browser_versions(browser, version1, version2)
|
167
|
-
assert_type browser, :String
|
168
|
-
assert_type version1, :String
|
169
|
-
assert_type version2, :String
|
189
|
+
assert_type browser, :String, :browser
|
190
|
+
assert_type version1, :String, :version1
|
191
|
+
assert_type version2, :String, :version2
|
170
192
|
index1 = index2 = nil
|
171
193
|
Compass::CanIUse.instance.versions(browser.value).each_with_index do |v, i|
|
172
194
|
index1 = i if v == version1.value
|
@@ -191,12 +213,14 @@ module Compass::SassExtensions::Functions::CrossBrowserSupport
|
|
191
213
|
# without a prefix.
|
192
214
|
#
|
193
215
|
# If a browser does not have the capability, it will not included in the map.
|
194
|
-
def
|
216
|
+
def browser_ranges(capability, prefix = null(), include_unprefixed_versions = bool(true))
|
195
217
|
assert_type capability, :String
|
196
218
|
assert_type(prefix, :String) unless prefix == null()
|
197
|
-
mins = Compass::CanIUse.instance.
|
198
|
-
|
199
|
-
|
219
|
+
mins = Compass::CanIUse.instance.browser_ranges(capability.value,
|
220
|
+
prefix.value,
|
221
|
+
include_unprefixed_versions.to_bool)
|
222
|
+
Sass::Script::Value::Map.new(mins.inject({}) do |m, (h, range)|
|
223
|
+
m[identifier(h)] = list(range.map{|version| quoted_string(version)}, :space)
|
200
224
|
m
|
201
225
|
end)
|
202
226
|
end
|
@@ -4,21 +4,18 @@
|
|
4
4
|
|
5
5
|
50% {
|
6
6
|
opacity: 0; } }
|
7
|
-
|
8
7
|
@-webkit-keyframes test {
|
9
8
|
0%, 100% {
|
10
9
|
opacity: 1; }
|
11
10
|
|
12
11
|
50% {
|
13
12
|
opacity: 0; } }
|
14
|
-
|
15
13
|
@keyframes test {
|
16
14
|
0%, 100% {
|
17
15
|
opacity: 1; }
|
18
16
|
|
19
17
|
50% {
|
20
18
|
opacity: 0; } }
|
21
|
-
|
22
19
|
.animation {
|
23
20
|
-moz-animation: test;
|
24
21
|
-webkit-animation: test;
|
@@ -4,21 +4,18 @@
|
|
4
4
|
|
5
5
|
50% {
|
6
6
|
background-color: blue; } }
|
7
|
-
|
8
7
|
@-webkit-keyframes test {
|
9
8
|
0%, 100% {
|
10
9
|
background-color: red; }
|
11
10
|
|
12
11
|
50% {
|
13
12
|
background-color: blue; } }
|
14
|
-
|
15
13
|
@keyframes test {
|
16
14
|
0%, 100% {
|
17
15
|
background-color: red; }
|
18
16
|
|
19
17
|
50% {
|
20
18
|
background-color: blue; } }
|
21
|
-
|
22
19
|
.animation {
|
23
20
|
-moz-animation: test;
|
24
21
|
-webkit-animation: test;
|
@@ -1,29 +1,53 @@
|
|
1
1
|
.blur {
|
2
|
-
/* Capability css-filters is prefixed with -
|
2
|
+
/* Capability css-filters is not prefixed with -moz because 0% of users are affected which is less than the threshold of 0.1. */
|
3
|
+
/* Capability css-filters is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
4
|
+
/* Capability css-filters is not prefixed with -o because 0% of users are affected which is less than the threshold of 0.1. */
|
5
|
+
/* Capability css-filters is prefixed with -webkit because 42.57254% of users need it which is more than the threshold of 0.1%. */
|
6
|
+
/* Creating new -webkit context. */
|
3
7
|
-webkit-filter: blur(5px);
|
4
8
|
filter: blur(5px); }
|
5
9
|
|
6
10
|
.brightness {
|
7
|
-
/* Capability css-filters is prefixed with -
|
11
|
+
/* Capability css-filters is not prefixed with -moz because 0% of users are affected which is less than the threshold of 0.1. */
|
12
|
+
/* Capability css-filters is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
13
|
+
/* Capability css-filters is not prefixed with -o because 0% of users are affected which is less than the threshold of 0.1. */
|
14
|
+
/* Capability css-filters is prefixed with -webkit because 42.57254% of users need it which is more than the threshold of 0.1%. */
|
15
|
+
/* Creating new -webkit context. */
|
8
16
|
-webkit-filter: brightness(0.2);
|
9
17
|
filter: brightness(0.2); }
|
10
18
|
|
11
19
|
.hue-rotate {
|
12
|
-
/* Capability css-filters is prefixed with -
|
20
|
+
/* Capability css-filters is not prefixed with -moz because 0% of users are affected which is less than the threshold of 0.1. */
|
21
|
+
/* Capability css-filters is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
22
|
+
/* Capability css-filters is not prefixed with -o because 0% of users are affected which is less than the threshold of 0.1. */
|
23
|
+
/* Capability css-filters is prefixed with -webkit because 42.57254% of users need it which is more than the threshold of 0.1%. */
|
24
|
+
/* Creating new -webkit context. */
|
13
25
|
-webkit-filter: hue-rotate(20deg);
|
14
26
|
filter: hue-rotate(20deg); }
|
15
27
|
|
16
28
|
.contrast {
|
17
|
-
/* Capability css-filters is prefixed with -
|
29
|
+
/* Capability css-filters is not prefixed with -moz because 0% of users are affected which is less than the threshold of 0.1. */
|
30
|
+
/* Capability css-filters is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
31
|
+
/* Capability css-filters is not prefixed with -o because 0% of users are affected which is less than the threshold of 0.1. */
|
32
|
+
/* Capability css-filters is prefixed with -webkit because 42.57254% of users need it which is more than the threshold of 0.1%. */
|
33
|
+
/* Creating new -webkit context. */
|
18
34
|
-webkit-filter: contrast(150%);
|
19
35
|
filter: contrast(150%); }
|
20
36
|
|
21
37
|
.grayscale {
|
22
|
-
/* Capability css-filters is prefixed with -
|
38
|
+
/* Capability css-filters is not prefixed with -moz because 0% of users are affected which is less than the threshold of 0.1. */
|
39
|
+
/* Capability css-filters is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
40
|
+
/* Capability css-filters is not prefixed with -o because 0% of users are affected which is less than the threshold of 0.1. */
|
41
|
+
/* Capability css-filters is prefixed with -webkit because 42.57254% of users need it which is more than the threshold of 0.1%. */
|
42
|
+
/* Creating new -webkit context. */
|
23
43
|
-webkit-filter: grayscale(150%);
|
24
44
|
filter: grayscale(150%); }
|
25
45
|
|
26
46
|
.sepia {
|
27
|
-
/* Capability css-filters is prefixed with -
|
47
|
+
/* Capability css-filters is not prefixed with -moz because 0% of users are affected which is less than the threshold of 0.1. */
|
48
|
+
/* Capability css-filters is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
49
|
+
/* Capability css-filters is not prefixed with -o because 0% of users are affected which is less than the threshold of 0.1. */
|
50
|
+
/* Capability css-filters is prefixed with -webkit because 42.57254% of users need it which is more than the threshold of 0.1%. */
|
51
|
+
/* Creating new -webkit context. */
|
28
52
|
-webkit-filter: sepia(150%);
|
29
53
|
filter: sepia(150%); }
|
@@ -128,9 +128,14 @@
|
|
128
128
|
|
129
129
|
.border-image-gradient {
|
130
130
|
-moz-border-image: -moz-radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
131
|
+
-moz-border-image: radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
131
132
|
-o-border-image: -o-radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
133
|
+
-o-border-image: radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
132
134
|
-webkit-border-image: -webkit-radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
135
|
+
-webkit-border-image: radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
136
|
+
border-image: -moz-radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
133
137
|
border-image: -o-radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
138
|
+
border-image: -webkit-radial-gradient(#00ff00, #ff0000 100px) 100 stretch;
|
134
139
|
border-image: radial-gradient(#00ff00, #ff0000 100px) 100 stretch; }
|
135
140
|
|
136
141
|
.direct-list-image-plain {
|
@@ -178,13 +183,13 @@
|
|
178
183
|
.image-fallback {
|
179
184
|
background-image: image(-moz-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'), #cc0000);
|
180
185
|
background-image: image(-o-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'), #cc0000);
|
181
|
-
background-image: image(-webkit-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'), #cc0000);
|
186
|
+
background-image: -webkit-image(-webkit-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'), #cc0000);
|
182
187
|
background-image: image(radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'), #cc0000); }
|
183
188
|
|
184
189
|
.cross-fade {
|
185
190
|
background-image: cross-fade(-moz-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'));
|
186
191
|
background-image: cross-fade(-o-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'));
|
187
|
-
background-image: cross-fade(-webkit-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'));
|
192
|
+
background-image: -webkit-cross-fade(-webkit-radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true'));
|
188
193
|
background-image: cross-fade(radial-gradient(#dddddd, #aaaaaa 100px), url('/images/4x6.png?busted=true')); }
|
189
194
|
|
190
195
|
.unknown-function-wrapper {
|
@@ -8,55 +8,62 @@
|
|
8
8
|
/* - [function] support-legacy-browser() from threshold (2 assertions, 2 passed, 0 failed) */
|
9
9
|
/* - [function] support-legacy-browser() from minimums (2 assertions, 2 passed, 0 failed) */
|
10
10
|
/* - [function] browser-out-of-scope() with no scope (2 assertions, 2 passed, 0 failed) */
|
11
|
+
/* - prefix context tracking (9 assertions, 9 passed, 0 failed) */
|
11
12
|
/* - [function] browser-out-of-scope() with a scope (2 assertions, 2 passed, 0 failed) */
|
12
13
|
/* - [function] browser-out-of-scope() with version (3 assertions, 3 passed, 0 failed) */
|
13
14
|
/* - [mixin] with-prefix() (4 assertions, 4 passed, 0 failed) */
|
14
15
|
/* - [mixin] with-each-prefix() (1 assertions, 1 passed, 0 failed) */
|
15
16
|
/* - [mixin] with-each-prefix() respects $supported-browsers (1 assertions, 1 passed, 0 failed) */
|
16
|
-
/* - [mixin] with-each-prefix() respects $current-prefix (
|
17
|
+
/* - [mixin] with-each-prefix() respects $current-prefix (3 assertions, 3 passed, 0 failed) */
|
18
|
+
/* - [fuction] has-browser-subset() (5 assertions, 5 passed, 0 failed) */
|
17
19
|
/*
|
18
20
|
Summary:
|
19
|
-
-
|
20
|
-
-
|
21
|
+
- 15 Tests
|
22
|
+
- 15 Passed
|
21
23
|
- 0 Failed */
|
22
|
-
/* Capability css-animation is prefixed with -moz because
|
24
|
+
/* Capability css-animation is prefixed with -moz because 1.03559% of users need it which is more than the threshold of 0.1%. */
|
25
|
+
/* Creating new -moz context. */
|
23
26
|
@-moz-keyframes foo {
|
24
27
|
0% {
|
25
28
|
/* Content for ie 8 omitted.
|
26
|
-
Not allowed in the current scope:
|
29
|
+
Not allowed in the current scope: ie 8 is incompatible with -moz. */
|
27
30
|
opacity: 0; }
|
28
31
|
|
29
32
|
100% {
|
30
33
|
/* Content for ie 8 omitted.
|
31
|
-
Not allowed in the current scope:
|
34
|
+
Not allowed in the current scope: ie 8 is incompatible with -moz. */
|
32
35
|
opacity: 1; } }
|
33
|
-
|
34
|
-
/* Capability css-animation is prefixed with -
|
36
|
+
/* Capability css-animation is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
37
|
+
/* Capability css-animation is not prefixed with -o because 0.04931% of users are affected which is less than the threshold of 0.1. */
|
38
|
+
/* Capability css-animation is prefixed with -webkit because 51.42143% of users need it which is more than the threshold of 0.1%. */
|
39
|
+
/* Creating new -webkit context. */
|
35
40
|
@-webkit-keyframes foo {
|
36
41
|
0% {
|
37
42
|
/* Content for ie 8 omitted.
|
38
|
-
Not allowed in the current scope:
|
43
|
+
Not allowed in the current scope: ie 8 is incompatible with -webkit. */
|
39
44
|
opacity: 0; }
|
40
45
|
|
41
46
|
100% {
|
42
47
|
/* Content for ie 8 omitted.
|
43
|
-
Not allowed in the current scope:
|
48
|
+
Not allowed in the current scope: ie 8 is incompatible with -webkit. */
|
44
49
|
opacity: 1; } }
|
45
|
-
|
46
50
|
@keyframes foo {
|
47
51
|
0% {
|
48
52
|
/* Content for ie 8 omitted.
|
49
|
-
Not allowed in the current scope: The current scope only works with ie 10
|
53
|
+
Not allowed in the current scope: The current scope only works with ie 10 - 11. */
|
50
54
|
opacity: 0; }
|
51
55
|
|
52
56
|
100% {
|
53
57
|
/* Content for ie 8 omitted.
|
54
|
-
Not allowed in the current scope: The current scope only works with ie 10
|
58
|
+
Not allowed in the current scope: The current scope only works with ie 10 - 11. */
|
55
59
|
opacity: 1; } }
|
56
|
-
|
57
60
|
.foo {
|
58
|
-
/* Capability css-animation is prefixed with -moz because
|
61
|
+
/* Capability css-animation is prefixed with -moz because 1.03559% of users need it which is more than the threshold of 0.1%. */
|
62
|
+
/* Creating new -moz context. */
|
59
63
|
-moz-animation: foo 1s;
|
60
|
-
/* Capability css-animation is prefixed with -
|
64
|
+
/* Capability css-animation is not prefixed with -ms because 0% of users are affected which is less than the threshold of 0.1. */
|
65
|
+
/* Capability css-animation is not prefixed with -o because 0.04931% of users are affected which is less than the threshold of 0.1. */
|
66
|
+
/* Capability css-animation is prefixed with -webkit because 51.42143% of users need it which is more than the threshold of 0.1%. */
|
67
|
+
/* Creating new -webkit context. */
|
61
68
|
-webkit-animation: foo 1s;
|
62
69
|
animation: foo 1s; }
|
@@ -44,17 +44,17 @@ $some-default-value: some default value;
|
|
44
44
|
}
|
45
45
|
|
46
46
|
@include test('[function] support-legacy-browser() from threshold') {
|
47
|
-
@include assert-true(support-legacy-browser('ie', '6', 0.00000001),
|
47
|
+
@include assert-true(support-legacy-browser('ie', '6', $threshold: 0.00000001),
|
48
48
|
"should be supported because of user support threshold.");
|
49
|
-
@include assert-false(support-legacy-browser('ie', '6', 10.000),
|
49
|
+
@include assert-false(support-legacy-browser('ie', '6', $threshold: 10.000),
|
50
50
|
"should not be supported because of support threshold.");
|
51
51
|
}
|
52
52
|
|
53
53
|
@include test('[function] support-legacy-browser() from minimums') {
|
54
54
|
@include with-declared-minimums(('ie': '7')) {
|
55
|
-
@include assert-true(support-legacy-browser('ie', '7', 10.00),
|
55
|
+
@include assert-true(support-legacy-browser('ie', '7', $threshold: 10.00),
|
56
56
|
"should be supported because of minimum version.");
|
57
|
-
@include assert-false(support-legacy-browser('ie', '6', 10.000),
|
57
|
+
@include assert-false(support-legacy-browser('ie', '6', $threshold: 10.000),
|
58
58
|
"should not be supported because of minimum version.");
|
59
59
|
}
|
60
60
|
}
|
@@ -64,6 +64,30 @@ $some-default-value: some default value;
|
|
64
64
|
@include assert-true(not browser-out-of-scope('chrome'), "should be in scope.");
|
65
65
|
}
|
66
66
|
|
67
|
+
@include test('prefix context tracking') {
|
68
|
+
$outer-prefix-invoked: false;
|
69
|
+
$inner-prefix-invoked: false;
|
70
|
+
$mismatched-prefix-invoked: false;
|
71
|
+
@include with-prefix(-webkit) {
|
72
|
+
$outer-prefix-invoked: true;
|
73
|
+
@include assert-equal(-webkit, $current-prefix, "should be equal.");
|
74
|
+
@include assert-equal(-webkit, $prefix-context, "should be equal.");
|
75
|
+
@include with-prefix(null) {
|
76
|
+
$inner-prefix-invoked: true;
|
77
|
+
@include assert-equal(null, $current-prefix, "should be equal.");
|
78
|
+
@include assert-equal(-webkit, $prefix-context, "should be equal.");
|
79
|
+
}
|
80
|
+
@include with-prefix(-ms) {
|
81
|
+
$mismatched-prefix-invoked: true;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
@include assert-true($inner-prefix-invoked, "should have been invoked");
|
85
|
+
@include assert-true($outer-prefix-invoked, "should have been invoked");
|
86
|
+
@include assert-false($mismatched-prefix-invoked, "should not have been invoked");
|
87
|
+
@include assert-equal(null, $prefix-context, "should be null");
|
88
|
+
@include assert-equal(null, $current-prefix, "should be null");
|
89
|
+
}
|
90
|
+
|
67
91
|
@include test('[function] browser-out-of-scope() with a scope') {
|
68
92
|
@include with-prefix(browser-prefix('chrome')) {
|
69
93
|
@include assert-true(not browser-out-of-scope('chrome'), "should be in scope.");
|
@@ -72,7 +96,7 @@ $some-default-value: some default value;
|
|
72
96
|
}
|
73
97
|
|
74
98
|
@include test('[function] browser-out-of-scope() with version') {
|
75
|
-
@include with-browser-
|
99
|
+
@include with-browser-ranges((ie: '8' '8')) {
|
76
100
|
@include assert-true(not browser-out-of-scope('ie', '10'), "should be in scope.");
|
77
101
|
@include assert-true(not browser-out-of-scope('ie', '8'), "should be in scope.");
|
78
102
|
@include assert-false(not browser-out-of-scope('ie', '7'), "should not be in scope.");
|
@@ -115,14 +139,27 @@ $some-default-value: some default value;
|
|
115
139
|
}
|
116
140
|
|
117
141
|
@include test('[mixin] with-each-prefix() respects $current-prefix') {
|
142
|
+
$contexts: ();
|
143
|
+
$prefixes: ();
|
118
144
|
@include with-prefix(-webkit) {
|
119
|
-
$prefixes: ();
|
145
|
+
$prefixes: append($prefixes, $current-prefix);
|
146
|
+
$contexts: append($contexts, $prefix-context);
|
120
147
|
@include with-each-prefix(css-regions, 0.0001) {
|
121
148
|
$prefixes: append($prefixes, $current-prefix);
|
149
|
+
$contexts: append($contexts, $prefix-context);
|
122
150
|
}
|
123
|
-
@include assert-equal(false, index($prefixes, null), "Not not have a null");
|
124
|
-
@include assert-equal("-webkit", #{$prefixes}, "Not equal");
|
125
151
|
}
|
152
|
+
@include assert-true(index($prefixes, null), "Must have a null");
|
153
|
+
@include assert-equal((-webkit -webkit null), $prefixes, "Not equal");
|
154
|
+
@include assert-equal((-webkit -webkit -webkit), $contexts, "Not equal");
|
155
|
+
}
|
156
|
+
|
157
|
+
@include test('[fuction] has-browser-subset()') {
|
158
|
+
@include assert-true(has-browser-subset((firefox: "16" "25"), (firefox: "2" "25")), "Should detect version overlap");
|
159
|
+
@include assert-true(not has-browser-subset((firefox: "16" "25"), (firefox: "2" "15")), "Should not detect version overlap");
|
160
|
+
@include assert-true(not has-browser-subset((firefox: "2" "15"), (firefox: "16" "25")), "Should not detect version overlap");
|
161
|
+
@include assert-true(has-browser-subset((firefox: "16" "24"), (firefox: "2" "25")), "Should detect version overlap");
|
162
|
+
@include assert-true(has-browser-subset((firefox: "2" "25"), (firefox: "16" "24")), "Should detect version overlap");
|
126
163
|
}
|
127
164
|
}
|
128
165
|
|