compass 0.13.alpha.7 → 0.13.alpha.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|