flint-gs 1.6.0 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +21 -21
- data/README.md +900 -900
- data/lib/flint.rb +17 -17
- data/stylesheets/_flint.scss +6 -6
- data/stylesheets/flint/config/_config.scss +83 -83
- data/stylesheets/flint/functions/_functions.scss +41 -41
- data/stylesheets/flint/functions/helpers/_helpers.scss +178 -178
- data/stylesheets/flint/functions/lib/_calc-breakpoint.scss +38 -38
- data/stylesheets/flint/functions/lib/_calc-margin.scss +31 -31
- data/stylesheets/flint/functions/lib/_calc-width.scss +44 -44
- data/stylesheets/flint/functions/lib/_exists.scss +21 -21
- data/stylesheets/flint/functions/lib/_fluid-width.scss +9 -9
- data/stylesheets/flint/functions/lib/_get-family-instance.scss +59 -59
- data/stylesheets/flint/functions/lib/_get-index.scss +14 -14
- data/stylesheets/flint/functions/lib/_get-instance-value.scss +19 -19
- data/stylesheets/flint/functions/lib/_get-substring.scss +23 -23
- data/stylesheets/flint/functions/lib/_get-value.scss +16 -16
- data/stylesheets/flint/functions/lib/_instance.scss +43 -43
- data/stylesheets/flint/functions/lib/_last.scss +8 -8
- data/stylesheets/flint/functions/lib/_list-to-string.scss +24 -24
- data/stylesheets/flint/functions/lib/_map-fetch.scss +33 -33
- data/stylesheets/flint/functions/lib/_next-index.scss +14 -14
- data/stylesheets/flint/functions/lib/_purge.scss +20 -20
- data/stylesheets/flint/functions/lib/_remove.scss +14 -14
- data/stylesheets/flint/functions/lib/_replace.scss +24 -24
- data/stylesheets/flint/functions/lib/_steal-key.scss +12 -12
- data/stylesheets/flint/functions/lib/_steal-values.scss +16 -16
- data/stylesheets/flint/functions/lib/_string-to-list.scss +84 -84
- data/stylesheets/flint/functions/lib/_string-to-number.scss +72 -72
- data/stylesheets/flint/functions/lib/_support-syntax-bem.scss +25 -25
- data/stylesheets/flint/functions/lib/_support-syntax.scss +28 -28
- data/stylesheets/flint/functions/lib/_types-in-list.scss +120 -120
- data/stylesheets/flint/functions/lib/_use-syntax.scss +11 -11
- data/stylesheets/flint/globals/_globals.scss +22 -22
- data/stylesheets/flint/mixins/_mixins.scss +7 -7
- data/stylesheets/flint/mixins/lib/_calculate.scss +765 -765
- data/stylesheets/flint/mixins/lib/_clearfix.scss +18 -18
- data/stylesheets/flint/mixins/lib/_main.scss +910 -911
- data/stylesheets/flint/mixins/lib/_new-instance.scss +26 -26
- data/stylesheets/flint/mixins/lib/_print-instance.scss +41 -41
- metadata +21 -15
- checksums.yaml +0 -7
@@ -1,13 +1,13 @@
|
|
1
|
-
// Steal key based on index number
|
2
|
-
//--------------------------------------------------------------------------------
|
3
|
-
// @param $index [number] : index of key
|
4
|
-
// -------------------------------------------------------------------------------
|
5
|
-
// @return [string]
|
6
|
-
|
7
|
-
@function steal-key($index) {
|
8
|
-
@for $n from 1 through (length(map-fetch($flint, "config")) - 1) {
|
9
|
-
@each $key in nth(map-get($flint, "config"), $index) {
|
10
|
-
@return $key;
|
11
|
-
}
|
12
|
-
}
|
1
|
+
// Steal key based on index number
|
2
|
+
//--------------------------------------------------------------------------------
|
3
|
+
// @param $index [number] : index of key
|
4
|
+
// -------------------------------------------------------------------------------
|
5
|
+
// @return [string]
|
6
|
+
|
7
|
+
@function steal-key($index) {
|
8
|
+
@for $n from 1 through (length(map-fetch($flint, "config")) - 1) {
|
9
|
+
@each $key in nth(map-get($flint, "config"), $index) {
|
10
|
+
@return $key;
|
11
|
+
}
|
12
|
+
}
|
13
13
|
}
|
@@ -1,17 +1,17 @@
|
|
1
|
-
// Steal value based on index number
|
2
|
-
// -------------------------------------------------------------------------------
|
3
|
-
// @dependence `map-fetch()`
|
4
|
-
// @dependence `get-value()`
|
5
|
-
// -------------------------------------------------------------------------------
|
6
|
-
// @param $index [number] : index of breakpoint key in config
|
7
|
-
// @param $value [number] : value
|
8
|
-
// -------------------------------------------------------------------------------
|
9
|
-
// @return [number]
|
10
|
-
|
11
|
-
@function steal-values($index, $value) {
|
12
|
-
@for $n from 1 through (length(map-fetch($flint, config)) - 1) {
|
13
|
-
@each $key in nth(map-get($flint, config), $index) {
|
14
|
-
@return get-value($key, $value);
|
15
|
-
}
|
16
|
-
}
|
1
|
+
// Steal value based on index number
|
2
|
+
// -------------------------------------------------------------------------------
|
3
|
+
// @dependence `map-fetch()`
|
4
|
+
// @dependence `get-value()`
|
5
|
+
// -------------------------------------------------------------------------------
|
6
|
+
// @param $index [number] : index of breakpoint key in config
|
7
|
+
// @param $value [number] : value
|
8
|
+
// -------------------------------------------------------------------------------
|
9
|
+
// @return [number]
|
10
|
+
|
11
|
+
@function steal-values($index, $value) {
|
12
|
+
@for $n from 1 through (length(map-fetch($flint, config)) - 1) {
|
13
|
+
@each $key in nth(map-get($flint, config), $index) {
|
14
|
+
@return get-value($key, $value);
|
15
|
+
}
|
16
|
+
}
|
17
17
|
}
|
@@ -1,84 +1,84 @@
|
|
1
|
-
// Turns string into a flat list
|
2
|
-
// -------------------------------------------------------------------------------
|
3
|
-
// @param $string [string] : string
|
4
|
-
// @param $find [string] : item to find which separates substrings (default is single space [" "])
|
5
|
-
// @param $ignore [string] : removes remaining string beyond item (default is comma [","])
|
6
|
-
// -------------------------------------------------------------------------------
|
7
|
-
// @return [list] | error
|
8
|
-
|
9
|
-
@function string-to-list($string, $find: " ", $ignore: ",") {
|
10
|
-
@if is-string($string) {
|
11
|
-
$string-list: ();
|
12
|
-
$space-indexes: ();
|
13
|
-
$ignore-remainder: ();
|
14
|
-
$length: str-length($string);
|
15
|
-
|
16
|
-
// Find ignore separator, and remove remainder of string beyond that point
|
17
|
-
@for $i from 1 through $length {
|
18
|
-
$slice: str-slice($string, $i, $i);
|
19
|
-
@if $slice == $ignore {
|
20
|
-
$ignore-remainder: append($ignore-remainder, $i - 1, "comma");
|
21
|
-
}
|
22
|
-
}
|
23
|
-
|
24
|
-
// Redefine string and length
|
25
|
-
@if length($ignore-remainder) >= 1 {
|
26
|
-
$string: str-slice($string, 1, nth($ignore-remainder, 1));
|
27
|
-
$length: str-length($string);
|
28
|
-
}
|
29
|
-
|
30
|
-
// Find all spaces and their indices by looking over each character in string
|
31
|
-
@for $i from 1 through $length {
|
32
|
-
$slice: str-slice($string, $i, $i);
|
33
|
-
@if $slice == $find {
|
34
|
-
$space-indexes: append($space-indexes, $i, "comma");
|
35
|
-
}
|
36
|
-
}
|
37
|
-
|
38
|
-
// Check if there are any spaces
|
39
|
-
@if length($space-indexes) >= 1 {
|
40
|
-
|
41
|
-
// Keep a count of number of spaces
|
42
|
-
$count: 1;
|
43
|
-
|
44
|
-
// Loop through each space
|
45
|
-
@each $space in $space-indexes {
|
46
|
-
|
47
|
-
// If is initial count, grab first substring and store in list
|
48
|
-
@if $count == 1 {
|
49
|
-
$matched-string: str-slice($string, 0, ($space - 1));
|
50
|
-
|
51
|
-
@if $matched-string != "" {
|
52
|
-
$string-list: append($string-list, $matched-string, "comma");
|
53
|
-
}
|
54
|
-
// Else, add a little math to make up for the spaces to do the same
|
55
|
-
} @else {
|
56
|
-
$matched-string: str-slice($string, (nth($space-indexes, ($count - 1)) + 1), ($space - 1));
|
57
|
-
|
58
|
-
@if $matched-string != "" {
|
59
|
-
$string-list: append($string-list, $matched-string, "comma");
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
// Increase count
|
64
|
-
$count: $count + 1;
|
65
|
-
}
|
66
|
-
|
67
|
-
// Now grab that last selector
|
68
|
-
$last-space: nth($space-indexes, length($space-indexes));
|
69
|
-
$matched-string: str-slice($string, ($last-space + 1), $length);
|
70
|
-
$string-list: append($string-list, $matched-string, "comma");
|
71
|
-
|
72
|
-
// Finally, return comma separated list of selectors
|
73
|
-
@return $string-list;
|
74
|
-
} @else {
|
75
|
-
|
76
|
-
// Else, just return the string as a single item list
|
77
|
-
$string-list: append($string-list, $string);
|
78
|
-
|
79
|
-
@return $string-list;
|
80
|
-
}
|
81
|
-
} @else {
|
82
|
-
@return "You did not input a valid string: #{$string}";
|
83
|
-
}
|
84
|
-
}
|
1
|
+
// Turns string into a flat list
|
2
|
+
// -------------------------------------------------------------------------------
|
3
|
+
// @param $string [string] : string
|
4
|
+
// @param $find [string] : item to find which separates substrings (default is single space [" "])
|
5
|
+
// @param $ignore [string] : removes remaining string beyond item (default is comma [","])
|
6
|
+
// -------------------------------------------------------------------------------
|
7
|
+
// @return [list] | error
|
8
|
+
|
9
|
+
@function string-to-list($string, $find: " ", $ignore: ",") {
|
10
|
+
@if is-string($string) {
|
11
|
+
$string-list: ();
|
12
|
+
$space-indexes: ();
|
13
|
+
$ignore-remainder: ();
|
14
|
+
$length: str-length($string);
|
15
|
+
|
16
|
+
// Find ignore separator, and remove remainder of string beyond that point
|
17
|
+
@for $i from 1 through $length {
|
18
|
+
$slice: str-slice($string, $i, $i);
|
19
|
+
@if $slice == $ignore {
|
20
|
+
$ignore-remainder: append($ignore-remainder, $i - 1, "comma");
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
// Redefine string and length
|
25
|
+
@if length($ignore-remainder) >= 1 {
|
26
|
+
$string: str-slice($string, 1, nth($ignore-remainder, 1));
|
27
|
+
$length: str-length($string);
|
28
|
+
}
|
29
|
+
|
30
|
+
// Find all spaces and their indices by looking over each character in string
|
31
|
+
@for $i from 1 through $length {
|
32
|
+
$slice: str-slice($string, $i, $i);
|
33
|
+
@if $slice == $find {
|
34
|
+
$space-indexes: append($space-indexes, $i, "comma");
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
// Check if there are any spaces
|
39
|
+
@if length($space-indexes) >= 1 {
|
40
|
+
|
41
|
+
// Keep a count of number of spaces
|
42
|
+
$count: 1;
|
43
|
+
|
44
|
+
// Loop through each space
|
45
|
+
@each $space in $space-indexes {
|
46
|
+
|
47
|
+
// If is initial count, grab first substring and store in list
|
48
|
+
@if $count == 1 {
|
49
|
+
$matched-string: str-slice($string, 0, ($space - 1));
|
50
|
+
|
51
|
+
@if $matched-string != "" {
|
52
|
+
$string-list: append($string-list, $matched-string, "comma");
|
53
|
+
}
|
54
|
+
// Else, add a little math to make up for the spaces to do the same
|
55
|
+
} @else {
|
56
|
+
$matched-string: str-slice($string, (nth($space-indexes, ($count - 1)) + 1), ($space - 1));
|
57
|
+
|
58
|
+
@if $matched-string != "" {
|
59
|
+
$string-list: append($string-list, $matched-string, "comma");
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
// Increase count
|
64
|
+
$count: $count + 1;
|
65
|
+
}
|
66
|
+
|
67
|
+
// Now grab that last selector
|
68
|
+
$last-space: nth($space-indexes, length($space-indexes));
|
69
|
+
$matched-string: str-slice($string, ($last-space + 1), $length);
|
70
|
+
$string-list: append($string-list, $matched-string, "comma");
|
71
|
+
|
72
|
+
// Finally, return comma separated list of selectors
|
73
|
+
@return $string-list;
|
74
|
+
} @else {
|
75
|
+
|
76
|
+
// Else, just return the string as a single item list
|
77
|
+
$string-list: append($string-list, $string);
|
78
|
+
|
79
|
+
@return $string-list;
|
80
|
+
}
|
81
|
+
} @else {
|
82
|
+
@return "You did not input a valid string: #{$string}";
|
83
|
+
}
|
84
|
+
}
|
@@ -1,73 +1,73 @@
|
|
1
|
-
// Converts number[unit] string into value
|
2
|
-
// -------------------------------------------------------------------------------
|
3
|
-
// @documentation http://hugogiraudel.com/2014/01/15/sass-string-to-number/
|
4
|
-
// -------------------------------------------------------------------------------
|
5
|
-
// @param $number [string] : number
|
6
|
-
// @param $unit [string] : unit
|
7
|
-
// -------------------------------------------------------------------------------
|
8
|
-
// @return [number]
|
9
|
-
|
10
|
-
@function num-length($number, $unit) {
|
11
|
-
$strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax';
|
12
|
-
$units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax;
|
13
|
-
$index: index($strings, $unit);
|
14
|
-
|
15
|
-
@if not $index {
|
16
|
-
@warn "Unknown unit `#{$unit}`.";
|
17
|
-
@return false;
|
18
|
-
}
|
19
|
-
|
20
|
-
@return $number * nth($units, $index);
|
21
|
-
}
|
22
|
-
|
23
|
-
// Converts number to string
|
24
|
-
// -------------------------------------------------------------------------------
|
25
|
-
// @documentation http://hugogiraudel.com/2014/01/15/sass-string-to-number/
|
26
|
-
// -------------------------------------------------------------------------------
|
27
|
-
// @dependence `num-length()`
|
28
|
-
// -------------------------------------------------------------------------------
|
29
|
-
// @param $string [String] : string
|
30
|
-
// -------------------------------------------------------------------------------
|
31
|
-
// @return [Value]
|
32
|
-
|
33
|
-
@function to-number($string) {
|
34
|
-
// Matrices
|
35
|
-
$strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9';
|
36
|
-
$numbers: 0 1 2 3 4 5 6 7 8 9;
|
37
|
-
|
38
|
-
// Result
|
39
|
-
$result: 0;
|
40
|
-
$divider: 0;
|
41
|
-
$minus: false;
|
42
|
-
|
43
|
-
// Looping through all characters
|
44
|
-
@for $i from 1 through str-length($string) {
|
45
|
-
$character: str-slice($string, $i, $i);
|
46
|
-
$index: index($strings, $character);
|
47
|
-
|
48
|
-
@if $character == '-' {
|
49
|
-
$minus: true;
|
50
|
-
} @else if $character == '.' {
|
51
|
-
$divider: 1;
|
52
|
-
} @else {
|
53
|
-
|
54
|
-
@if not $index {
|
55
|
-
$result: if($minus, $result * -1, $result);
|
56
|
-
@return num-length($result, str-slice($string, $i));
|
57
|
-
}
|
58
|
-
|
59
|
-
$number: nth($numbers, $index);
|
60
|
-
|
61
|
-
@if $divider == 0 {
|
62
|
-
$result: $result * 10;
|
63
|
-
} @else {
|
64
|
-
// Move the decimal dot to the left
|
65
|
-
$divider: $divider * 10;
|
66
|
-
$number: $number / $divider;
|
67
|
-
}
|
68
|
-
$result: $result + $number;
|
69
|
-
}
|
70
|
-
}
|
71
|
-
|
72
|
-
@return if($minus, $result * -1, $result);
|
1
|
+
// Converts number[unit] string into value
|
2
|
+
// -------------------------------------------------------------------------------
|
3
|
+
// @documentation http://hugogiraudel.com/2014/01/15/sass-string-to-number/
|
4
|
+
// -------------------------------------------------------------------------------
|
5
|
+
// @param $number [string] : number
|
6
|
+
// @param $unit [string] : unit
|
7
|
+
// -------------------------------------------------------------------------------
|
8
|
+
// @return [number]
|
9
|
+
|
10
|
+
@function num-length($number, $unit) {
|
11
|
+
$strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax';
|
12
|
+
$units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax;
|
13
|
+
$index: index($strings, $unit);
|
14
|
+
|
15
|
+
@if not $index {
|
16
|
+
@warn "Unknown unit `#{$unit}`.";
|
17
|
+
@return false;
|
18
|
+
}
|
19
|
+
|
20
|
+
@return $number * nth($units, $index);
|
21
|
+
}
|
22
|
+
|
23
|
+
// Converts number to string
|
24
|
+
// -------------------------------------------------------------------------------
|
25
|
+
// @documentation http://hugogiraudel.com/2014/01/15/sass-string-to-number/
|
26
|
+
// -------------------------------------------------------------------------------
|
27
|
+
// @dependence `num-length()`
|
28
|
+
// -------------------------------------------------------------------------------
|
29
|
+
// @param $string [String] : string
|
30
|
+
// -------------------------------------------------------------------------------
|
31
|
+
// @return [Value]
|
32
|
+
|
33
|
+
@function to-number($string) {
|
34
|
+
// Matrices
|
35
|
+
$strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9';
|
36
|
+
$numbers: 0 1 2 3 4 5 6 7 8 9;
|
37
|
+
|
38
|
+
// Result
|
39
|
+
$result: 0;
|
40
|
+
$divider: 0;
|
41
|
+
$minus: false;
|
42
|
+
|
43
|
+
// Looping through all characters
|
44
|
+
@for $i from 1 through str-length($string) {
|
45
|
+
$character: str-slice($string, $i, $i);
|
46
|
+
$index: index($strings, $character);
|
47
|
+
|
48
|
+
@if $character == '-' {
|
49
|
+
$minus: true;
|
50
|
+
} @else if $character == '.' {
|
51
|
+
$divider: 1;
|
52
|
+
} @else {
|
53
|
+
|
54
|
+
@if not $index {
|
55
|
+
$result: if($minus, $result * -1, $result);
|
56
|
+
@return num-length($result, str-slice($string, $i));
|
57
|
+
}
|
58
|
+
|
59
|
+
$number: nth($numbers, $index);
|
60
|
+
|
61
|
+
@if $divider == 0 {
|
62
|
+
$result: $result * 10;
|
63
|
+
} @else {
|
64
|
+
// Move the decimal dot to the left
|
65
|
+
$divider: $divider * 10;
|
66
|
+
$number: $number / $divider;
|
67
|
+
}
|
68
|
+
$result: $result + $number;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
@return if($minus, $result * -1, $result);
|
73
73
|
}
|
@@ -1,25 +1,25 @@
|
|
1
|
-
// Support BEM syntax
|
2
|
-
// -------------------------------------------------------------------------------
|
3
|
-
// @param $selectors [string] : string of selectors to parse
|
4
|
-
// -------------------------------------------------------------------------------
|
5
|
-
// @return [string] : parsed list of selectors according to syntax
|
6
|
-
|
7
|
-
@function support-syntax-bem($selectors) {
|
8
|
-
$selectors: string-to-list($selectors, "_");
|
9
|
-
$parent: nth($selectors, 1);
|
10
|
-
$selector-list: ($parent);
|
11
|
-
|
12
|
-
// Loop over each selector and build list of selectors
|
13
|
-
@each $selector in $selectors {
|
14
|
-
// Make sure current selector is not the parent
|
15
|
-
@if $selector != $parent {
|
16
|
-
// Save to selector list
|
17
|
-
$selector-list: append($selector-list, ($parent + "__" + $selector), "comma");
|
18
|
-
// Define new parent
|
19
|
-
$parent: $parent + "__" + $selector;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
// Return the list of transformed selectors
|
24
|
-
@return $selector-list;
|
25
|
-
}
|
1
|
+
// Support BEM syntax
|
2
|
+
// -------------------------------------------------------------------------------
|
3
|
+
// @param $selectors [string] : string of selectors to parse
|
4
|
+
// -------------------------------------------------------------------------------
|
5
|
+
// @return [string] : parsed list of selectors according to syntax
|
6
|
+
|
7
|
+
@function support-syntax-bem($selectors) {
|
8
|
+
$selectors: string-to-list($selectors, "_");
|
9
|
+
$parent: nth($selectors, 1);
|
10
|
+
$selector-list: ($parent);
|
11
|
+
|
12
|
+
// Loop over each selector and build list of selectors
|
13
|
+
@each $selector in $selectors {
|
14
|
+
// Make sure current selector is not the parent
|
15
|
+
@if $selector != $parent {
|
16
|
+
// Save to selector list
|
17
|
+
$selector-list: append($selector-list, ($parent + "__" + $selector), "comma");
|
18
|
+
// Define new parent
|
19
|
+
$parent: $parent + "__" + $selector;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
// Return the list of transformed selectors
|
24
|
+
@return $selector-list;
|
25
|
+
}
|
@@ -1,28 +1,28 @@
|
|
1
|
-
// Support syntax
|
2
|
-
// -------------------------------------------------------------------------------
|
3
|
-
// @param $syntax [string] : alias of syntax to support
|
4
|
-
// @param $selectors [string] : string of selectors to parse
|
5
|
-
// -------------------------------------------------------------------------------
|
6
|
-
// @return [list] : list of parsed selectors according to syntax
|
7
|
-
|
8
|
-
@function support-syntax($syntax, $selectors) {
|
9
|
-
$syntax: to-lower-case($syntax);
|
10
|
-
|
11
|
-
// Make sure syntax is supported
|
12
|
-
// ----
|
13
|
-
@if function-exists(support-syntax-#{$syntax}) {
|
14
|
-
|
15
|
-
// Support syntax
|
16
|
-
// ----
|
17
|
-
// @warning : be sure you have created a custom function to support an unknown syntax
|
18
|
-
// ----
|
19
|
-
@return call("support-syntax-#{$syntax}", $selectors);
|
20
|
-
|
21
|
-
} @else {
|
22
|
-
|
23
|
-
// Throw error if the syntax does not exist and a function to call cannot be found
|
24
|
-
@warn "You did not pass a valid syntax to `support-syntax`: #{$syntax}. Either specify a custom `support-syntax-<syntax>` function to call, or use one of the offically supported syntaxes.";
|
25
|
-
@return null;
|
26
|
-
|
27
|
-
}
|
28
|
-
}
|
1
|
+
// Support syntax
|
2
|
+
// -------------------------------------------------------------------------------
|
3
|
+
// @param $syntax [string] : alias of syntax to support
|
4
|
+
// @param $selectors [string] : string of selectors to parse
|
5
|
+
// -------------------------------------------------------------------------------
|
6
|
+
// @return [list] : list of parsed selectors according to syntax
|
7
|
+
|
8
|
+
@function support-syntax($syntax, $selectors) {
|
9
|
+
$syntax: to-lower-case($syntax);
|
10
|
+
|
11
|
+
// Make sure syntax is supported
|
12
|
+
// ----
|
13
|
+
@if function-exists(support-syntax-#{$syntax}) {
|
14
|
+
|
15
|
+
// Support syntax
|
16
|
+
// ----
|
17
|
+
// @warning : be sure you have created a custom function to support an unknown syntax
|
18
|
+
// ----
|
19
|
+
@return call("support-syntax-#{$syntax}", $selectors);
|
20
|
+
|
21
|
+
} @else {
|
22
|
+
|
23
|
+
// Throw error if the syntax does not exist and a function to call cannot be found
|
24
|
+
@warn "You did not pass a valid syntax to `support-syntax`: #{$syntax}. Either specify a custom `support-syntax-<syntax>` function to call, or use one of the offically supported syntaxes.";
|
25
|
+
@return null;
|
26
|
+
|
27
|
+
}
|
28
|
+
}
|