flint-gs 1.7.0 → 1.7.1
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.
- data/LICENSE +21 -21
- data/README.md +906 -906
- data/lib/flint.rb +77 -77
- 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 +181 -187
- data/stylesheets/flint/functions/lib/_calc-breakpoint.scss +33 -33
- data/stylesheets/flint/functions/lib/_calc-margin.scss +57 -57
- data/stylesheets/flint/functions/lib/_calc-width.scss +50 -50
- data/stylesheets/flint/functions/lib/_exists.scss +22 -22
- data/stylesheets/flint/functions/lib/_fluid-width.scss +10 -10
- data/stylesheets/flint/functions/lib/_get-index.scss +13 -13
- data/stylesheets/flint/functions/lib/_get-instance-value.scss +17 -17
- data/stylesheets/flint/functions/lib/_get-value.scss +14 -14
- data/stylesheets/flint/functions/lib/_has-family-instance.scss +74 -74
- data/stylesheets/flint/functions/lib/_instance.scss +46 -46
- data/stylesheets/flint/functions/lib/_last.scss +9 -9
- data/stylesheets/flint/functions/lib/_list-to-string.scss +25 -25
- data/stylesheets/flint/functions/lib/_map-fetch.scss +30 -30
- data/stylesheets/flint/functions/lib/_next-index.scss +15 -15
- data/stylesheets/flint/functions/lib/_purge.scss +19 -19
- data/stylesheets/flint/functions/lib/_remove.scss +13 -13
- data/stylesheets/flint/functions/lib/_replace-substring.scss +34 -34
- data/stylesheets/flint/functions/lib/_replace.scss +25 -25
- data/stylesheets/flint/functions/lib/_steal-key.scss +13 -13
- data/stylesheets/flint/functions/lib/_steal-values.scss +14 -14
- data/stylesheets/flint/functions/lib/_string-to-list.scss +90 -90
- data/stylesheets/flint/functions/lib/_string-to-number.scss +77 -77
- data/stylesheets/flint/functions/lib/_support-syntax-bem.scss +31 -31
- data/stylesheets/flint/functions/lib/_support-syntax.scss +28 -28
- data/stylesheets/flint/functions/lib/_types-in-list.scss +119 -120
- data/stylesheets/flint/functions/lib/_use-syntax.scss +14 -14
- data/stylesheets/flint/globals/_globals.scss +38 -38
- data/stylesheets/flint/mixins/_mixins.scss +7 -7
- data/stylesheets/flint/mixins/lib/_calculate.scss +571 -571
- data/stylesheets/flint/mixins/lib/_clearfix.scss +19 -19
- data/stylesheets/flint/mixins/lib/_main.scss +935 -935
- data/stylesheets/flint/mixins/lib/_new-instance.scss +27 -27
- data/stylesheets/flint/mixins/lib/_print-instance.scss +42 -42
- metadata +22 -16
- checksums.yaml +0 -7
@@ -1,14 +1,14 @@
|
|
1
|
-
// Steal value based on index number
|
2
|
-
// -------------------------------------------------------------------------------
|
3
|
-
// @param $index [number] : index of breakpoint key in config
|
4
|
-
// @param $value [number] : value
|
5
|
-
// -------------------------------------------------------------------------------
|
6
|
-
// @return [number]
|
7
|
-
|
8
|
-
@function flint-steal-values($index, $value) {
|
9
|
-
@for $n from 1 through (length(flint-map-fetch($flint, config)) - 1) {
|
10
|
-
@each $key in nth(map-get($flint, config), $index) {
|
11
|
-
@return flint-get-value($key, $value);
|
12
|
-
}
|
13
|
-
}
|
14
|
-
}
|
1
|
+
// Steal value based on index number
|
2
|
+
// -------------------------------------------------------------------------------
|
3
|
+
// @param $index [number] : index of breakpoint key in config
|
4
|
+
// @param $value [number] : value
|
5
|
+
// -------------------------------------------------------------------------------
|
6
|
+
// @return [number]
|
7
|
+
|
8
|
+
@function flint-steal-values($index, $value) {
|
9
|
+
@for $n from 1 through (length(flint-map-fetch($flint, config)) - 1) {
|
10
|
+
@each $key in nth(map-get($flint, config), $index) {
|
11
|
+
@return flint-get-value($key, $value);
|
12
|
+
}
|
13
|
+
}
|
14
|
+
}
|
@@ -1,90 +1,90 @@
|
|
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 flint-string-to-list($string, $find: " ", $ignore: ",") {
|
10
|
-
@if flint-is-string($string) {
|
11
|
-
|
12
|
-
// Use Ruby function if available
|
13
|
-
@if $flint__use-ruby-functions {
|
14
|
-
@return string_to_list($string, $find, $ignore);
|
15
|
-
} @else {
|
16
|
-
$string-list: ();
|
17
|
-
$space-indexes: ();
|
18
|
-
$ignore-remainder: ();
|
19
|
-
$length: str-length($string);
|
20
|
-
|
21
|
-
// Find ignore separator, and flint-remove remainder of string beyond that point
|
22
|
-
@for $i from 1 through $length {
|
23
|
-
$slice: str-slice($string, $i, $i);
|
24
|
-
@if $slice == $ignore {
|
25
|
-
$ignore-remainder: append($ignore-remainder, $i - 1, "comma");
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
// Redefine string and length
|
30
|
-
@if length($ignore-remainder) >= 1 {
|
31
|
-
$string: str-slice($string, 1, nth($ignore-remainder, 1));
|
32
|
-
$length: str-length($string);
|
33
|
-
}
|
34
|
-
|
35
|
-
// Find all spaces and their indices by looking over each character in string
|
36
|
-
@for $i from 1 through $length {
|
37
|
-
$slice: str-slice($string, $i, $i);
|
38
|
-
@if $slice == $find {
|
39
|
-
$space-indexes: append($space-indexes, $i, "comma");
|
40
|
-
}
|
41
|
-
}
|
42
|
-
|
43
|
-
// Check if there are any spaces
|
44
|
-
@if length($space-indexes) >= 1 {
|
45
|
-
|
46
|
-
// Keep a count of number of spaces
|
47
|
-
$count: 1;
|
48
|
-
|
49
|
-
// Loop through each space
|
50
|
-
@each $space in $space-indexes {
|
51
|
-
|
52
|
-
// If is initial count, grab first substring and store in list
|
53
|
-
@if $count == 1 {
|
54
|
-
$matched-string: str-slice($string, 0, ($space - 1));
|
55
|
-
|
56
|
-
@if $matched-string != "" {
|
57
|
-
$string-list: append($string-list, $matched-string, "comma");
|
58
|
-
}
|
59
|
-
// Else, add a little math to make up for the spaces to do the same
|
60
|
-
} @else {
|
61
|
-
$matched-string: str-slice($string, (nth($space-indexes, ($count - 1)) + 1), ($space - 1));
|
62
|
-
|
63
|
-
@if $matched-string != "" {
|
64
|
-
$string-list: append($string-list, $matched-string, "comma");
|
65
|
-
}
|
66
|
-
}
|
67
|
-
|
68
|
-
// Increase count
|
69
|
-
$count: $count + 1;
|
70
|
-
}
|
71
|
-
|
72
|
-
// Now grab that last selector
|
73
|
-
$flint-last-space: nth($space-indexes, length($space-indexes));
|
74
|
-
$matched-string: str-slice($string, ($flint-last-space + 1), $length);
|
75
|
-
$string-list: append($string-list, $matched-string, "comma");
|
76
|
-
|
77
|
-
// Finally, return comma separated list of selectors
|
78
|
-
@return $string-list;
|
79
|
-
} @else {
|
80
|
-
|
81
|
-
// Else, just return the string as a single item list
|
82
|
-
$string-list: append($string-list, $string);
|
83
|
-
|
84
|
-
@return $string-list;
|
85
|
-
}
|
86
|
-
} @else {
|
87
|
-
@return "You did not input a valid string: #{$string}";
|
88
|
-
}
|
89
|
-
}
|
90
|
-
}
|
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 flint-string-to-list($string, $find: " ", $ignore: ",") {
|
10
|
+
@if flint-is-string($string) {
|
11
|
+
|
12
|
+
// Use Ruby function if available
|
13
|
+
@if $flint__use-ruby-functions {
|
14
|
+
@return string_to_list($string, $find, $ignore);
|
15
|
+
} @else {
|
16
|
+
$string-list: ();
|
17
|
+
$space-indexes: ();
|
18
|
+
$ignore-remainder: ();
|
19
|
+
$length: str-length($string);
|
20
|
+
|
21
|
+
// Find ignore separator, and flint-remove remainder of string beyond that point
|
22
|
+
@for $i from 1 through $length {
|
23
|
+
$slice: str-slice($string, $i, $i);
|
24
|
+
@if $slice == $ignore {
|
25
|
+
$ignore-remainder: append($ignore-remainder, $i - 1, "comma");
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
// Redefine string and length
|
30
|
+
@if length($ignore-remainder) >= 1 {
|
31
|
+
$string: str-slice($string, 1, nth($ignore-remainder, 1));
|
32
|
+
$length: str-length($string);
|
33
|
+
}
|
34
|
+
|
35
|
+
// Find all spaces and their indices by looking over each character in string
|
36
|
+
@for $i from 1 through $length {
|
37
|
+
$slice: str-slice($string, $i, $i);
|
38
|
+
@if $slice == $find {
|
39
|
+
$space-indexes: append($space-indexes, $i, "comma");
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
// Check if there are any spaces
|
44
|
+
@if length($space-indexes) >= 1 {
|
45
|
+
|
46
|
+
// Keep a count of number of spaces
|
47
|
+
$count: 1;
|
48
|
+
|
49
|
+
// Loop through each space
|
50
|
+
@each $space in $space-indexes {
|
51
|
+
|
52
|
+
// If is initial count, grab first substring and store in list
|
53
|
+
@if $count == 1 {
|
54
|
+
$matched-string: str-slice($string, 0, ($space - 1));
|
55
|
+
|
56
|
+
@if $matched-string != "" {
|
57
|
+
$string-list: append($string-list, $matched-string, "comma");
|
58
|
+
}
|
59
|
+
// Else, add a little math to make up for the spaces to do the same
|
60
|
+
} @else {
|
61
|
+
$matched-string: str-slice($string, (nth($space-indexes, ($count - 1)) + 1), ($space - 1));
|
62
|
+
|
63
|
+
@if $matched-string != "" {
|
64
|
+
$string-list: append($string-list, $matched-string, "comma");
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
// Increase count
|
69
|
+
$count: $count + 1;
|
70
|
+
}
|
71
|
+
|
72
|
+
// Now grab that last selector
|
73
|
+
$flint-last-space: nth($space-indexes, length($space-indexes));
|
74
|
+
$matched-string: str-slice($string, ($flint-last-space + 1), $length);
|
75
|
+
$string-list: append($string-list, $matched-string, "comma");
|
76
|
+
|
77
|
+
// Finally, return comma separated list of selectors
|
78
|
+
@return $string-list;
|
79
|
+
} @else {
|
80
|
+
|
81
|
+
// Else, just return the string as a single item list
|
82
|
+
$string-list: append($string-list, $string);
|
83
|
+
|
84
|
+
@return $string-list;
|
85
|
+
}
|
86
|
+
} @else {
|
87
|
+
@return "You did not input a valid string: #{$string}";
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
@@ -1,77 +1,77 @@
|
|
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 flint-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 string to number
|
24
|
-
// -------------------------------------------------------------------------------
|
25
|
-
// @documentation http://hugogiraudel.com/2014/01/15/sass-string-to-number/
|
26
|
-
// -------------------------------------------------------------------------------
|
27
|
-
// @param $string [string] : string
|
28
|
-
// -------------------------------------------------------------------------------
|
29
|
-
// @return [number]
|
30
|
-
|
31
|
-
@function flint-to-number($string) {
|
32
|
-
// Use Ruby function if available
|
33
|
-
@if $flint__use-ruby-functions {
|
34
|
-
@return string_to_number($string);
|
35
|
-
} @else {
|
36
|
-
// Matrices
|
37
|
-
$strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9';
|
38
|
-
$numbers: 0 1 2 3 4 5 6 7 8 9;
|
39
|
-
|
40
|
-
// Result
|
41
|
-
$result: 0;
|
42
|
-
$divider: 0;
|
43
|
-
$minus: false;
|
44
|
-
|
45
|
-
// Looping through all characters
|
46
|
-
@for $i from 1 through str-length($string) {
|
47
|
-
$character: str-slice($string, $i, $i);
|
48
|
-
$index: index($strings, $character);
|
49
|
-
|
50
|
-
@if $character == '-' {
|
51
|
-
$minus: true;
|
52
|
-
} @else if $character == '.' {
|
53
|
-
$divider: 1;
|
54
|
-
} @else {
|
55
|
-
|
56
|
-
@if not $index {
|
57
|
-
$result: if($minus, $result * -1, $result);
|
58
|
-
@return flint-num-length($result, str-slice($string, $i));
|
59
|
-
}
|
60
|
-
|
61
|
-
$number: nth($numbers, $index);
|
62
|
-
|
63
|
-
@if $divider == 0 {
|
64
|
-
$result: $result * 10;
|
65
|
-
} @else {
|
66
|
-
// Move the decimal dot to the left
|
67
|
-
$divider: $divider * 10;
|
68
|
-
$number: $number / $divider;
|
69
|
-
}
|
70
|
-
|
71
|
-
$result: $result + $number;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
@return if($minus, $result * -1, $result);
|
76
|
-
}
|
77
|
-
}
|
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 flint-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 string to number
|
24
|
+
// -------------------------------------------------------------------------------
|
25
|
+
// @documentation http://hugogiraudel.com/2014/01/15/sass-string-to-number/
|
26
|
+
// -------------------------------------------------------------------------------
|
27
|
+
// @param $string [string] : string
|
28
|
+
// -------------------------------------------------------------------------------
|
29
|
+
// @return [number]
|
30
|
+
|
31
|
+
@function flint-to-number($string) {
|
32
|
+
// Use Ruby function if available
|
33
|
+
@if $flint__use-ruby-functions {
|
34
|
+
@return string_to_number($string);
|
35
|
+
} @else {
|
36
|
+
// Matrices
|
37
|
+
$strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9';
|
38
|
+
$numbers: 0 1 2 3 4 5 6 7 8 9;
|
39
|
+
|
40
|
+
// Result
|
41
|
+
$result: 0;
|
42
|
+
$divider: 0;
|
43
|
+
$minus: false;
|
44
|
+
|
45
|
+
// Looping through all characters
|
46
|
+
@for $i from 1 through str-length($string) {
|
47
|
+
$character: str-slice($string, $i, $i);
|
48
|
+
$index: index($strings, $character);
|
49
|
+
|
50
|
+
@if $character == '-' {
|
51
|
+
$minus: true;
|
52
|
+
} @else if $character == '.' {
|
53
|
+
$divider: 1;
|
54
|
+
} @else {
|
55
|
+
|
56
|
+
@if not $index {
|
57
|
+
$result: if($minus, $result * -1, $result);
|
58
|
+
@return flint-num-length($result, str-slice($string, $i));
|
59
|
+
}
|
60
|
+
|
61
|
+
$number: nth($numbers, $index);
|
62
|
+
|
63
|
+
@if $divider == 0 {
|
64
|
+
$result: $result * 10;
|
65
|
+
} @else {
|
66
|
+
// Move the decimal dot to the left
|
67
|
+
$divider: $divider * 10;
|
68
|
+
$number: $number / $divider;
|
69
|
+
}
|
70
|
+
|
71
|
+
$result: $result + $number;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
@return if($minus, $result * -1, $result);
|
76
|
+
}
|
77
|
+
}
|
@@ -1,31 +1,31 @@
|
|
1
|
-
// Support BEM syntax
|
2
|
-
// -------------------------------------------------------------------------------
|
3
|
-
// @param $selectors [string] : string of selectors to parse
|
4
|
-
// -------------------------------------------------------------------------------
|
5
|
-
// @return [list] : parsed list of selectors according to syntax
|
6
|
-
|
7
|
-
@function flint-support-syntax-bem($selectors) {
|
8
|
-
// Clean up selector, remove double underscores for spaces
|
9
|
-
// add psudeo character to differentiate selectors
|
10
|
-
$selectors: flint-replace-substring($selectors, "__", "/");
|
11
|
-
// Parse string to list
|
12
|
-
$selectors: flint-string-to-list($selectors, "/");
|
13
|
-
// Define top-most parent of selector
|
14
|
-
$parent: nth($selectors, 1);
|
15
|
-
// Create new list of parsed selectors
|
16
|
-
$selector-list: ($parent);
|
17
|
-
|
18
|
-
// Loop over each selector and build list of selectors
|
19
|
-
@each $selector in $selectors {
|
20
|
-
// Make sure current selector is not the parent
|
21
|
-
@if $selector != $parent {
|
22
|
-
// Save to selector list
|
23
|
-
$selector-list: append($selector-list, ($parent + "__" + $selector), "comma");
|
24
|
-
// Define new parent
|
25
|
-
$parent: $parent + "__" + $selector;
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
// Return the list of parsed selectors
|
30
|
-
@return $selector-list;
|
31
|
-
}
|
1
|
+
// Support BEM syntax
|
2
|
+
// -------------------------------------------------------------------------------
|
3
|
+
// @param $selectors [string] : string of selectors to parse
|
4
|
+
// -------------------------------------------------------------------------------
|
5
|
+
// @return [list] : parsed list of selectors according to syntax
|
6
|
+
|
7
|
+
@function flint-support-syntax-bem($selectors) {
|
8
|
+
// Clean up selector, remove double underscores for spaces
|
9
|
+
// add psudeo character to differentiate selectors
|
10
|
+
$selectors: flint-replace-substring($selectors, "__", "/");
|
11
|
+
// Parse string to list
|
12
|
+
$selectors: flint-string-to-list($selectors, "/");
|
13
|
+
// Define top-most parent of selector
|
14
|
+
$parent: nth($selectors, 1);
|
15
|
+
// Create new list of parsed selectors
|
16
|
+
$selector-list: ($parent);
|
17
|
+
|
18
|
+
// Loop over each selector and build list of selectors
|
19
|
+
@each $selector in $selectors {
|
20
|
+
// Make sure current selector is not the parent
|
21
|
+
@if $selector != $parent {
|
22
|
+
// Save to selector list
|
23
|
+
$selector-list: append($selector-list, ($parent + "__" + $selector), "comma");
|
24
|
+
// Define new parent
|
25
|
+
$parent: $parent + "__" + $selector;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
// Return the list of parsed selectors
|
30
|
+
@return $selector-list;
|
31
|
+
}
|
@@ -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 flint-support-syntax($syntax, $selectors) {
|
9
|
-
$syntax: to-lower-case($syntax);
|
10
|
-
|
11
|
-
// Make sure syntax is supported
|
12
|
-
// ----
|
13
|
-
@if function-exists("flint-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("flint-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 `flint-support-syntax`: #{$syntax}. Either specify a custom `flint-support-syntax-<syntax>` function to call, or use one of the offically supported syntaxes. For more info, please visit the docs.";
|
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 flint-support-syntax($syntax, $selectors) {
|
9
|
+
$syntax: to-lower-case($syntax);
|
10
|
+
|
11
|
+
// Make sure syntax is supported
|
12
|
+
// ----
|
13
|
+
@if function-exists("flint-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("flint-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 `flint-support-syntax`: #{$syntax}. Either specify a custom `flint-support-syntax-<syntax>` function to call, or use one of the offically supported syntaxes. For more info, please visit the docs.";
|
25
|
+
@return null;
|
26
|
+
|
27
|
+
}
|
28
|
+
}
|