Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/JohnAlbin/normalize-scss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/sass
diff options
context:
space:
mode:
authorJohnAlbin <virtually.johnalbin@gmail.com>2016-03-20 10:23:02 +0300
committerJohnAlbin <virtually.johnalbin@gmail.com>2016-04-23 18:28:55 +0300
commit55d5719de0b498f140d43958843a45c4224d7ea3 (patch)
tree169e639021b4c14d607aa17e6135896c1db1c810 /sass
parent5981153954e950ffd3eba3d0cafc14ff2b739e5a (diff)
Un-fork support-for module. #15
Diffstat (limited to 'sass')
-rw-r--r--sass/_support-for.scss64
1 files changed, 64 insertions, 0 deletions
diff --git a/sass/_support-for.scss b/sass/_support-for.scss
new file mode 100644
index 0000000..affdf0c
--- /dev/null
+++ b/sass/_support-for.scss
@@ -0,0 +1,64 @@
+// Support the last 4 versions of all browsers except IE.
+$support-for: (
+ chrome: -4,
+ edge: -4,
+ firefox: -4,
+ ie: 9,
+ opera: -4,
+ safari: -4,
+ '*': -4,
+) !default;
+
+// Set the current version number for all browsers. As of: 2016-03-19
+$support-for-current-browser-version: (
+ chrome: 46, // https://en.wikipedia.org/wiki/Google_Chrome_release_history
+ edge: 25, // https://en.wikipedia.org/wiki/Microsoft_Edge
+ firefox: 45, // https://en.wikipedia.org/wiki/Firefox_release_history
+ ie: 11, // https://en.wikipedia.org/wiki/Internet_Explorer_versions
+ opera: 36, // https://en.wikipedia.org/wiki/Opera_(web_browser)
+ safari: 9, // https://en.wikipedia.org/wiki/Safari_version_history
+) !default;
+
+
+// support-for()
+//
+// Determines if the project has declared a minimum supported version number for
+// the specified browser.
+//
+// If configured, this is a wrapper function that uses Compass'
+// support-legacy-browser().
+// @see http://compass-style.org/reference/compass/support/#function-support-legacy-browser
+//
+@function support-for($browser, $version) {
+ // Ensure $version is an integer (or null).
+ @if not (type-of($version) == "null" or type-of($version) == "number" and round($version) == $version) {
+ @error "The $version parameter of support-for() must be an integer; #{type-of($version)} given.";
+ }
+
+ // Check against declared minimums.
+ $min-version: null;
+ @if map-has-key($support-for, $browser) {
+ $min-version: map-get($support-for, $browser);
+ }
+ @else if map-has-key($support-for, '*') {
+ $min-version: map-get($support-for, '*');
+ }
+
+ // Ensure $min-version is an integer (or null).
+ @if type-of($min-version) != "null" and type-of($min-version) != "number" {
+ @error "$support-for: (#{$browser}: #{$min-version}) must be set to an integer (or null); #{$min-version} is a #{type-of($min-version)}.";
+ }
+ @elseif type-of($min-version) == "number" and round($min-version) != $min-version {
+ @error "$support-for: (#{$browser}: #{$min-version}) must be set to an integer (or null); #{$min-version} is not an integer.";
+ }
+
+ // Negative $min-version means "X most recent versions".
+ @if type-of($min-version) == "number" and $min-version < 0 {
+ @if not map-has-key($support-for-current-browser-version, $browser) {
+ @error "#{$browser} not found in $support-for-current-browser-version map; it must be set to an integer.";
+ }
+ $min-version: map-get($support-for-current-browser-version, $browser) + $min-version + 1;
+ }
+
+ @return if(($min-version and ($version >= $min-version)), true, false);
+}