flint-gs 1.12.0 → 2.0.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +71 -207
- data/lib/flint.rb +8 -8
- data/stylesheets/_flint.scss +3 -2
- data/stylesheets/flint/config/_config.scss +37 -68
- data/stylesheets/flint/functions/_functions.scss +15 -7
- data/stylesheets/flint/functions/helpers/_helpers.scss +115 -117
- data/stylesheets/flint/functions/lib/_calc-breakpoint.scss +23 -32
- data/stylesheets/flint/functions/lib/_calc-width.scss +40 -26
- data/stylesheets/flint/functions/lib/_exists.scss +8 -7
- data/stylesheets/flint/functions/lib/_fluid-width.scss +8 -7
- data/stylesheets/flint/functions/lib/_get-index.scss +12 -10
- data/stylesheets/flint/functions/lib/_get-instance-value.scss +10 -16
- data/stylesheets/flint/functions/lib/_get-value.scss +9 -13
- data/stylesheets/flint/functions/lib/_has-family-instance.scss +21 -20
- data/stylesheets/flint/functions/lib/_instance.scss +19 -22
- data/stylesheets/flint/functions/lib/_last.scss +7 -6
- data/stylesheets/flint/functions/lib/_list-to-string.scss +11 -9
- data/stylesheets/flint/functions/lib/_map-fetch.scss +13 -19
- data/stylesheets/flint/functions/lib/_next-index.scss +9 -14
- data/stylesheets/flint/functions/lib/_purge.scss +9 -8
- data/stylesheets/flint/functions/lib/_remove.scss +11 -10
- data/stylesheets/flint/functions/lib/_replace-substring.scss +9 -8
- data/stylesheets/flint/functions/lib/_replace.scss +11 -10
- data/stylesheets/flint/functions/lib/_steal-key.scss +24 -13
- data/stylesheets/flint/functions/lib/_steal-values.scss +9 -12
- data/stylesheets/flint/functions/lib/_string-to-list.scss +11 -10
- data/stylesheets/flint/functions/lib/_support-syntax-bem.scss +10 -9
- data/stylesheets/flint/functions/lib/_support-syntax.scss +14 -12
- data/stylesheets/flint/functions/lib/_types-in-list.scss +9 -8
- data/stylesheets/flint/functions/lib/_use-syntax.scss +12 -8
- data/stylesheets/flint/globals/_globals.scss +35 -21
- data/stylesheets/flint/mixins/_mixins.scss +3 -2
- data/stylesheets/flint/mixins/lib/_box-sizing.scss +7 -7
- data/stylesheets/flint/mixins/lib/_calculate.scss +112 -583
- data/stylesheets/flint/mixins/lib/_clearfix.scss +7 -7
- data/stylesheets/flint/mixins/lib/_container.scss +6 -12
- data/stylesheets/flint/mixins/lib/_main.scss +271 -202
- data/stylesheets/flint/mixins/lib/_new-instance.scss +12 -15
- data/stylesheets/flint/mixins/lib/_print-instance.scss +16 -20
- metadata +3 -4
- data/stylesheets/flint/functions/lib/_calc-margin.scss +0 -57
@@ -1,25 +1,30 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
/*
|
2
|
+
* Helpers
|
3
|
+
*/
|
3
4
|
@import "helpers/helpers";
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
/*
|
7
|
+
* Functions
|
8
|
+
*/
|
7
9
|
@import "lib/exists";
|
10
|
+
|
8
11
|
// Getters
|
9
12
|
@import "lib/map-fetch";
|
10
13
|
@import "lib/get-value";
|
11
14
|
@import "lib/get-index";
|
12
15
|
@import "lib/steal-key";
|
13
16
|
@import "lib/steal-values";
|
17
|
+
|
14
18
|
// Calculations
|
15
19
|
@import "lib/fluid-width";
|
16
20
|
@import "lib/calc-width";
|
17
|
-
@import "lib/calc-margin";
|
18
21
|
@import "lib/calc-breakpoint";
|
22
|
+
|
19
23
|
// Instance functions
|
20
24
|
@import "lib/instance";
|
21
25
|
@import "lib/has-family-instance";
|
22
26
|
@import "lib/get-instance-value";
|
27
|
+
|
23
28
|
// List functions
|
24
29
|
@import "lib/list-to-string";
|
25
30
|
@import "lib/types-in-list";
|
@@ -28,13 +33,16 @@
|
|
28
33
|
@import "lib/replace";
|
29
34
|
@import "lib/remove";
|
30
35
|
@import "lib/last";
|
36
|
+
|
31
37
|
// String functions
|
32
38
|
@import "lib/replace-substring";
|
33
39
|
@import "lib/string-to-list";
|
34
40
|
|
35
|
-
|
36
|
-
|
41
|
+
/*
|
42
|
+
* Support syntax
|
43
|
+
*/
|
37
44
|
@import "lib/use-syntax";
|
38
45
|
@import "lib/support-syntax";
|
46
|
+
|
39
47
|
// Syntaxes
|
40
48
|
@import "lib/support-syntax-bem"
|
@@ -1,181 +1,179 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
/**
|
2
|
+
* Returns truthiness of a value
|
3
|
+
*
|
4
|
+
* @param {*} $value
|
5
|
+
*
|
6
|
+
* @return {Bool}
|
7
|
+
*/
|
7
8
|
@function flint-is-true($value) {
|
8
9
|
@return if($value == null, false, $value and $value != null and $value != "" and $value != ());
|
9
10
|
}
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
/**
|
13
|
+
* Checks if item is map
|
14
|
+
*
|
15
|
+
* @param {Map} $n
|
16
|
+
*
|
17
|
+
* @return {Bool}
|
18
|
+
*/
|
17
19
|
@function flint-is-map($n) {
|
18
20
|
@return type-of($n) == "map";
|
19
21
|
}
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
/**
|
24
|
+
* Checks if item is list
|
25
|
+
*
|
26
|
+
* @param {List} $n
|
27
|
+
*
|
28
|
+
* @return {Bool}
|
29
|
+
*/
|
27
30
|
@function flint-is-list($n) {
|
28
31
|
@return type-of($n) == "list";
|
29
32
|
}
|
30
33
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
/**
|
35
|
+
* Checks if item is number
|
36
|
+
*
|
37
|
+
* @param {Number} $n
|
38
|
+
*
|
39
|
+
* @return {Bool}
|
40
|
+
*/
|
37
41
|
@function flint-is-number($n) {
|
38
42
|
@return type-of($n) == "number";
|
39
43
|
}
|
40
44
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
45
|
+
/**
|
46
|
+
* Checks if item is string
|
47
|
+
*
|
48
|
+
* @param {String} $n
|
49
|
+
*
|
50
|
+
* @return {Bool}
|
51
|
+
*/
|
47
52
|
@function flint-is-string($n) {
|
48
53
|
@return type-of($n) == "string";
|
49
54
|
}
|
50
55
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
56
|
+
/**
|
57
|
+
* Checks if item is not string
|
58
|
+
*
|
59
|
+
* @param {String} $n
|
60
|
+
*
|
61
|
+
* @return {Bool}
|
62
|
+
*/
|
57
63
|
@function flint-is-not-string($n) {
|
58
64
|
@return type-of($n) != "string";
|
59
65
|
}
|
60
66
|
|
61
|
-
|
62
|
-
|
63
|
-
|
67
|
+
/**
|
68
|
+
* Get gutter value from config map
|
69
|
+
*
|
70
|
+
* @return {Number}
|
71
|
+
*/
|
72
|
+
@function flint-get-gutter() {
|
73
|
+
@return flint-get-value("settings", "gutter");
|
74
|
+
}
|
64
75
|
|
76
|
+
/**
|
77
|
+
* Gets list of each breakpoint's key
|
78
|
+
*
|
79
|
+
* @return {List}
|
80
|
+
*/
|
65
81
|
@function flint-get-all-keys() {
|
66
|
-
|
67
|
-
|
68
|
-
@for $i from 1 through (length(flint-map-fetch($flint, "config")) - 1) {
|
69
|
-
$key: flint-steal-key($i);
|
70
|
-
$all-keys: append($all-keys, $key, "comma");
|
71
|
-
}
|
72
|
-
|
73
|
-
@return $all-keys;
|
82
|
+
@return map-keys(flint-get-value("breakpoints"));
|
74
83
|
}
|
75
84
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
85
|
+
/**
|
86
|
+
* Gets list of all breakpoints
|
87
|
+
*
|
88
|
+
* @return {List}
|
89
|
+
*/
|
80
90
|
@function flint-get-all-breakpoints() {
|
91
|
+
$all-keys: flint-get-all-keys();
|
81
92
|
$all-breakpoints: ();
|
82
93
|
|
83
|
-
@each $
|
84
|
-
|
85
|
-
@if $key == "breakpoint" {
|
86
|
-
$all-breakpoints: append($all-breakpoints, $value, "comma");
|
87
|
-
}
|
88
|
-
}
|
94
|
+
@each $key in $all-keys {
|
95
|
+
$all-breakpoints: append($all-breakpoints, flint-get-value("breakpoints", $key, "breakpoint"), "comma");
|
89
96
|
}
|
90
97
|
|
91
98
|
@return $all-breakpoints;
|
92
99
|
}
|
93
100
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
101
|
+
/**
|
102
|
+
* Checks if passed $key is the highest breakpoint
|
103
|
+
*
|
104
|
+
* @param {String} $key - alias of breakpoint
|
105
|
+
*
|
106
|
+
* @return {Bool}
|
107
|
+
*/
|
100
108
|
@function flint-is-highest-breakpoint($key) {
|
101
|
-
@
|
102
|
-
@return true;
|
103
|
-
} @else {
|
104
|
-
@return false;
|
105
|
-
}
|
109
|
+
@return flint-get-value("breakpoints", $key, "breakpoint") == max(flint-get-all-breakpoints()...);
|
106
110
|
}
|
107
111
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
112
|
+
/**
|
113
|
+
* Checks if passed $key is the lowest breakpoint
|
114
|
+
*
|
115
|
+
* @param {String} $key - alias of breakpoint
|
116
|
+
*
|
117
|
+
* @return {Bool}
|
118
|
+
*/
|
114
119
|
@function flint-is-lowest-breakpoint($key) {
|
115
|
-
@
|
116
|
-
@return true;
|
117
|
-
} @else {
|
118
|
-
@return false;
|
119
|
-
}
|
120
|
+
@return flint-get-value("breakpoints", $key, "breakpoint") == min(flint-get-all-breakpoints()...);
|
120
121
|
}
|
121
122
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
123
|
+
/**
|
124
|
+
* Checks if $key is grid default
|
125
|
+
*
|
126
|
+
* @param {String} $key - alias of breakpoint
|
127
|
+
*
|
128
|
+
* @return {Bool}
|
129
|
+
*/
|
128
130
|
@function flint-is-default($key) {
|
129
|
-
@
|
130
|
-
@return true;
|
131
|
-
} @else {
|
132
|
-
@return false;
|
133
|
-
}
|
131
|
+
@return $key == flint-get-value("settings", "default");
|
134
132
|
}
|
135
133
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
134
|
+
/**
|
135
|
+
* Gets all breakpoint column values
|
136
|
+
*
|
137
|
+
* @return {List}
|
138
|
+
*/
|
140
139
|
@function flint-get-all-columns() {
|
140
|
+
$all-keys: flint-get-all-keys();
|
141
141
|
$all-columns: ();
|
142
142
|
|
143
|
-
@each $
|
144
|
-
|
145
|
-
@if $key == "columns" {
|
146
|
-
$all-columns: append($all-columns, $value, "comma");
|
147
|
-
}
|
148
|
-
}
|
143
|
+
@each $key in $all-keys {
|
144
|
+
$all-columns: append($all-columns, flint-get-value("breakpoints", $key, "columns"), "comma");
|
149
145
|
}
|
150
146
|
|
151
147
|
@return $all-columns;
|
152
148
|
}
|
153
149
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
150
|
+
/**
|
151
|
+
* Returns the unit used in config
|
152
|
+
*
|
153
|
+
* @return {*}
|
154
|
+
*/
|
158
155
|
@function flint-get-config-unit() {
|
159
156
|
@return unit(flint-get-value("settings", "gutter"));
|
160
157
|
}
|
161
158
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
159
|
+
/**
|
160
|
+
* Convert pixel value to em
|
161
|
+
*
|
162
|
+
* @param {Number} $target - pixel value
|
163
|
+
* @param {Number} $context - context to divide by
|
164
|
+
*
|
165
|
+
* @return em value of target relative to context
|
166
|
+
*/
|
170
167
|
@function flint-to-em($target, $context: $flint__base-font-size) {
|
171
168
|
@return ($target / $context) * 1em;
|
172
169
|
}
|
173
170
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
171
|
+
/**
|
172
|
+
* Use Ruby functions in place of Sass functions where possible
|
173
|
+
* to speed up performance, especially with string functions
|
174
|
+
*
|
175
|
+
* @return {Bool}
|
176
|
+
*/
|
179
177
|
@function flint-use-ruby-functions() {
|
180
178
|
@return flint_use_ruby() == true;
|
181
179
|
}
|
@@ -1,52 +1,43 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
1
|
+
/**
|
2
|
+
* Calculate breakpoint query
|
3
|
+
*
|
4
|
+
* @param {String} $type - type of query to get
|
5
|
+
* @param {String} $key - key of breakpoint
|
6
|
+
* @param {Number} $i - index of current breakpoint
|
7
|
+
*
|
8
|
+
* @return {Number} - breakpoint value
|
9
|
+
*/
|
10
|
+
@function flint-calc-breakpoint($type, $key, $i) {
|
11
|
+
|
12
|
+
@if $type == "alias" {
|
11
13
|
|
12
14
|
@if flint-get-value("settings", "grid") == "fixed" {
|
13
|
-
|
14
15
|
@if flint-is-lowest-breakpoint($key) {
|
15
|
-
|
16
16
|
@return 0;
|
17
|
-
|
18
17
|
} @else {
|
19
|
-
|
20
|
-
@return flint-get-value($key, "breakpoint");
|
21
|
-
|
18
|
+
@return flint-get-value("breakpoints", $key, "breakpoint");
|
22
19
|
}
|
23
20
|
} @else if flint-get-value("settings", "grid") == "fluid" {
|
24
|
-
|
25
|
-
@return flint-get-value($key, "breakpoint");
|
26
|
-
|
21
|
+
@return flint-get-value("breakpoints", $key, "breakpoint");
|
27
22
|
}
|
28
|
-
} @else if $n == "next" {
|
29
23
|
|
30
|
-
|
24
|
+
} @else if $type == "next" {
|
31
25
|
|
26
|
+
@if flint-is-lowest-breakpoint($key) {
|
32
27
|
@return 0;
|
33
|
-
|
34
28
|
} @else {
|
35
|
-
|
36
|
-
@return flint-get-value(flint-steal-key(($i + 1)), "breakpoint");
|
37
|
-
|
29
|
+
@return flint-get-value("breakpoints", flint-steal-key(($i + 1)), "breakpoint");
|
38
30
|
}
|
39
31
|
|
40
|
-
} @else if $
|
32
|
+
} @else if $type == "prev" {
|
41
33
|
|
42
34
|
@if flint-is-highest-breakpoint($key) {
|
43
|
-
|
44
|
-
@return flint-get-value($key, "breakpoint");
|
45
|
-
|
35
|
+
@return flint-get-value("breakpoints", $key, "breakpoint");
|
46
36
|
} @else {
|
47
|
-
|
48
|
-
@return flint-get-value(flint-steal-key(($i - 1)), "breakpoint");
|
49
|
-
|
37
|
+
@return flint-get-value("breakpoints", flint-steal-key(($i - 1)), "breakpoint");
|
50
38
|
}
|
39
|
+
|
51
40
|
}
|
41
|
+
|
42
|
+
@return false;
|
52
43
|
}
|
@@ -1,45 +1,59 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
@
|
10
|
-
|
1
|
+
/**
|
2
|
+
* Calculate width
|
3
|
+
*
|
4
|
+
* @param {String} $key - key of breakpoint
|
5
|
+
* @param {Number} $span - span value of element
|
6
|
+
* @param {Number | String} $context (null) - context value of element
|
7
|
+
* @param {Number} $deduct (null) - subtract value out of final width
|
8
|
+
*
|
9
|
+
* @return {Map | False} - map of target and context result
|
10
|
+
*/
|
11
|
+
@function flint-calc-width($key, $span, $context: null, $deduct: null) {
|
12
|
+
$result: ();
|
11
13
|
|
12
14
|
// Check to see if value has been cached
|
13
15
|
@if map-has-key($flint__cached-values, "#{$key, $span, $context}::width") and $context != "auto" {
|
14
16
|
@return map-get($flint__cached-values, "#{$key, $span, $context}::width");
|
15
17
|
}
|
16
18
|
|
17
|
-
@if
|
18
|
-
|
19
|
-
@if $key == "container" or $span == "container" {
|
19
|
+
@if $span == "container" {
|
20
20
|
|
21
|
-
|
21
|
+
$result: flint-get-value("breakpoints", $key, "breakpoint");
|
22
22
|
|
23
|
-
|
23
|
+
} @else if $context == "auto" {
|
24
24
|
|
25
|
-
|
25
|
+
/*
|
26
|
+
* Check if instance maps are enabled
|
27
|
+
*/
|
28
|
+
@if not flint-get-value("settings", "instance-maps") {
|
29
|
+
@if not $flint__development-mode {
|
30
|
+
@error "Instance maps are disabled. Automatic context is not available. Enable `instance-maps` in the config to continue.";
|
31
|
+
} @else {
|
32
|
+
@warn "Instance maps are disabled. Automatic context is not available. Enable `instance-maps` in the config to continue.";
|
33
|
+
}
|
34
|
+
}
|
26
35
|
|
36
|
+
@if flint-has-family-instance($key) {
|
37
|
+
$result: map-merge($result, ("target": ((flint-get-instance-value($key, "internal", "width") / flint-get-instance-value($key, "span") * $span) - if($deduct, $deduct, 0))));
|
38
|
+
$result: map-merge($result, ("context": flint-get-instance-value($key, "internal", "width")));
|
27
39
|
} @else {
|
28
|
-
|
29
|
-
|
30
|
-
|
40
|
+
@if not $flint__development-mode {
|
41
|
+
@error "You set context to `#{$context}`, but a parent instance could not be found for `#{nth(&, 1) + '::' + $key}`";
|
42
|
+
} @else {
|
43
|
+
@return false;
|
44
|
+
}
|
31
45
|
}
|
32
|
-
} @if flint-get-value("settings", "grid") == "fixed" {
|
33
|
-
|
34
|
-
@if $key == "container" or $span == "container" {
|
35
46
|
|
36
|
-
|
47
|
+
} @else {
|
37
48
|
|
38
|
-
|
39
|
-
|
40
|
-
$result: flint-get-value($key, "breakpoint") / flint-get-value($key, "columns") * $span;
|
49
|
+
$result: map-merge($result, ("target": ((flint-get-value("breakpoints", $key, "breakpoint") / flint-get-value("breakpoints", $key, "columns") * $span) - if($deduct, $deduct, 0))));
|
41
50
|
|
51
|
+
@if $context {
|
52
|
+
$result: map-merge($result, ("context": flint-get-value("breakpoints", $key, "breakpoint") / flint-get-value("breakpoints", $key, "columns") * $context));
|
53
|
+
} @else {
|
54
|
+
$result: map-merge($result, ("context": flint-get-value("breakpoints", $key, "breakpoint")));
|
42
55
|
}
|
56
|
+
|
43
57
|
}
|
44
58
|
|
45
59
|
// Save result to cache
|