susy 2.0.0.beta.1 → 2.0.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/docs/changelog.rst +42 -1
  4. data/sass/susy/_math.scss +0 -1
  5. data/sass/susy/language/_shared.scss +4 -0
  6. data/sass/susy/language/_susy.scss +3 -1
  7. data/sass/susy/language/shared/_maps.scss +85 -0
  8. data/sass/susy/language/susy/_background.scss +59 -45
  9. data/sass/susy/language/susy/_bleed.scss +150 -29
  10. data/sass/susy/language/susy/_breakpoint-plugin.scss +1 -1
  11. data/sass/susy/language/susy/_container.scss +21 -21
  12. data/sass/susy/language/susy/_context.scss +5 -5
  13. data/sass/susy/language/susy/_gallery.scss +20 -20
  14. data/sass/susy/language/susy/_grids.scss +15 -25
  15. data/sass/susy/language/susy/_gutters.scss +14 -14
  16. data/sass/susy/language/susy/_isolate.scss +31 -9
  17. data/sass/susy/language/susy/_margins.scss +14 -4
  18. data/sass/susy/language/susy/_padding.scss +14 -4
  19. data/sass/susy/language/susy/_rows.scss +19 -16
  20. data/sass/susy/language/susy/_settings.scss +40 -14
  21. data/sass/susy/language/susy/_span.scss +5 -2
  22. data/sass/susy/math/_columns.scss +8 -8
  23. data/sass/susy/math/_settings.scss +1 -2
  24. data/sass/susy/math/_validation.scss +0 -16
  25. data/sass/susy/{api → output}/_float.scss +0 -0
  26. data/sass/susy/{api → output}/_shared.scss +0 -0
  27. data/sass/susy/{api → output}/float/_clearfix.scss +0 -0
  28. data/sass/susy/{api → output}/float/_container.scss +0 -0
  29. data/sass/susy/{api → output}/float/_end.scss +0 -0
  30. data/sass/susy/{api → output}/float/_isolate.scss +0 -0
  31. data/sass/susy/{api → output}/float/_span.scss +0 -0
  32. data/sass/susy/{api → output}/shared/_background.scss +0 -0
  33. data/sass/susy/{api → output}/shared/_box-sizing.scss +0 -0
  34. data/sass/susy/{api → output}/shared/_container.scss +0 -0
  35. data/sass/susy/{api → output}/shared/_direction.scss +0 -0
  36. data/sass/susy/{api → output}/shared/_margins.scss +0 -0
  37. data/sass/susy/{api → output}/shared/_padding.scss +0 -0
  38. metadata +16 -16
  39. data/sass/susy/_helpers.scss +0 -6
  40. data/sass/susy/math/_container.scss +0 -20
@@ -10,11 +10,15 @@
10
10
  output: float,
11
11
  container-position: center,
12
12
  gutter-position: after,
13
- show-grids: hide,
14
13
  global-box-sizing: content-box,
14
+ debug: (
15
+ image: hide,
16
+ color: rgba(#66f, .25),
17
+ output: background,
18
+ toggle: top right,
19
+ ),
15
20
  ));
16
21
 
17
- $nullable: gutters container-position;
18
22
 
19
23
  // Valid Keyword Values
20
24
  // --------------------
@@ -25,7 +29,6 @@ $susy-keywords: (
25
29
  output: isolate float,
26
30
  container-position: left center right,
27
31
  flow: ltr rtl,
28
- show-grids: show hide show-columns show-baseline,
29
32
  gutter-position: before after split inside inside-static,
30
33
  box-sizing: border-box content-box,
31
34
  span: full,
@@ -34,8 +37,11 @@ $susy-keywords: (
34
37
  gutter-override: no-gutters no-gutter,
35
38
  role: nest,
36
39
  clear: break nobreak,
40
+ debug image: show hide show-columns show-baseline,
41
+ debug output: background overlay,
37
42
  );
38
43
 
44
+
39
45
  // User Settings
40
46
  // -------------
41
47
  // - Define the $susy variable with a map of your own settings.
@@ -43,6 +49,7 @@ $susy-keywords: (
43
49
  // - Use $column-width for static layouts
44
50
  $susy: () !default;
45
51
 
52
+
46
53
  // Parse Susy Keywords and Maps
47
54
  // ----------------------------
48
55
  @function parse-settings(
@@ -58,7 +65,7 @@ $susy: () !default;
58
65
  @if type-of($item) == string {
59
66
  @each $key, $value in $susy-keywords {
60
67
  @if index($value, $item) {
61
- $return: map-merge($return, ($key: $item));
68
+ $return: deep-set($return, $key, $item);
62
69
  }
63
70
  }
64
71
  // maps
@@ -71,6 +78,7 @@ $susy: () !default;
71
78
  @return $return;
72
79
  }
73
80
 
81
+
74
82
  // Parse Columns & Gutters
75
83
  // -----------------------
76
84
  @function parse-layout(
@@ -102,6 +110,7 @@ $susy: () !default;
102
110
  @return $return;
103
111
  }
104
112
 
113
+
105
114
  // Parse Grid/Context
106
115
  // ------------------
107
116
  @function parse-grid(
@@ -130,6 +139,7 @@ $susy: () !default;
130
139
  @return map-merge($return, $layout);
131
140
  }
132
141
 
142
+
133
143
  // Parse Span
134
144
  // ----------
135
145
  @function parse-span(
@@ -179,6 +189,7 @@ $susy: () !default;
179
189
  @return $return;
180
190
  }
181
191
 
192
+
182
193
  // Parse Gutters
183
194
  // -------------
184
195
  @function parse-gutters(
@@ -211,26 +222,41 @@ $susy: () !default;
211
222
  @return $gutters;
212
223
  }
213
224
 
225
+
226
+ // Susy Set
227
+ // --------
228
+ // Change one setting
229
+ // - $key : setting name
230
+ // - $value : setting value
231
+ @mixin susy-set(
232
+ $key,
233
+ $value
234
+ ) {
235
+ $susy: deep-set($susy, $key, $value) !global;
236
+ }
237
+
238
+
214
239
  // Susy Get
215
240
  // --------
216
241
  // Return one setting from a grid
217
- // - $key : <keyword>
218
- // - $grid : <settings>
242
+ // - $key : <keyword>
243
+ // - $layout : <settings>
219
244
  @function susy-get(
220
245
  $key,
221
- $grid: map-merge($susy-defaults, $susy)
246
+ $layout: map-merge($susy-defaults, $susy)
222
247
  ) {
223
- $grid: parse-grid($grid);
224
- $options: $grid $susy $susy-defaults;
225
- $nullish: index($nullable, $key);
248
+ $layout: parse-grid($layout);
249
+ $options: $layout $susy $susy-defaults;
226
250
  $break: false;
227
251
  $return: null;
228
252
 
229
253
  @each $opt in $options {
230
- $keyset: index(map-keys($opt), $key);
231
- @if not $break {
232
- $return: map-get($opt, $key);
233
- $break: $return or if($keyset and $nullish, true, false);
254
+ @if type-of($opt) == map and not $break {
255
+ $keyset: deep-has-key($opt, $key...);
256
+ @if $keyset {
257
+ $return: deep-get($opt, $key...);
258
+ $break: true;
259
+ }
234
260
  }
235
261
  }
236
262
 
@@ -132,9 +132,12 @@
132
132
  $n: if($pos == split and $role != nest, column-count($columns), 100%);
133
133
  }
134
134
 
135
- @if unitless($n) {
135
+ @if type-of($n) != number {
136
+ @warn "(#{type-of($n)}) #{$n} is not a valid span.";
137
+ } @else if unitless($n) {
136
138
  $context: column-sum($columns, $gutters, if(is-split($span), wide, narrow));
137
- $span-sum: get-column-span-sum($n, $location, $columns, $gutters, if(is-inside($span), wide, $spread));
139
+ $spread: if(is-inside($span), $spread or wide, $spread);
140
+ $span-sum: column-span-sum($n, $location, $columns, $gutters, $spread);
138
141
 
139
142
  @if susy-get(math, $span) == static {
140
143
  $width: $span-sum * susy-get(column-width, $span);
@@ -50,13 +50,13 @@
50
50
  @return $column-sum + $gutter-sum;
51
51
  }
52
52
 
53
- // Get Columns
53
+ // Column Span
54
54
  // -----------
55
55
  // Return a subset of columns at a given location.
56
56
  // - $span : <number>
57
57
  // - $location : <number>
58
58
  // - [$columns] : <number> | <list>
59
- @function get-columns(
59
+ @function column-span(
60
60
  $span,
61
61
  $location,
62
62
  $columns: map-get($susy-defaults, columns)
@@ -75,15 +75,15 @@
75
75
  @return $sub-columns;
76
76
  }
77
77
 
78
- // Get Column Span Sum
79
- // -------------------
78
+ // Column Span Sum
79
+ // ---------------
80
80
  // Find the sum of a column-span.
81
81
  // - $span : <number>
82
- // - $location : first | last | <number>
82
+ // - $location : <number>
83
83
  // - [$columns] : <number> | <list>
84
84
  // - [$gutters] : <ratio>
85
- // - [$spread] : <boolean>
86
- @function get-column-span-sum(
85
+ // - [$spread] : false/narrow | wide | wider
86
+ @function column-span-sum(
87
87
  $span,
88
88
  $location : false,
89
89
  $columns : map-get($susy-defaults, columns),
@@ -92,7 +92,7 @@
92
92
  ) {
93
93
  $columns: valid-columns($columns);
94
94
  $gutters: valid-gutters($gutters);
95
- $span: get-columns($span, $location, $columns);
95
+ $span: column-span($span, $location, $columns);
96
96
 
97
97
  @return column-sum($span, $gutters, $spread);
98
98
  }
@@ -10,8 +10,7 @@ $susy-version: 2.0;
10
10
  // PRIVATE: The basic settings
11
11
  $susy-defaults: (
12
12
  columns: 4,
13
- gutters: .25,
14
- column-width: false,
13
+ gutters: 1/4,
15
14
  );
16
15
 
17
16
  // Susy Defaults
@@ -44,19 +44,3 @@
44
44
  @warn $warn + ' Current value [#{$type}]: #{$gutters}';
45
45
  }
46
46
  }
47
-
48
- // Valid Column-Width
49
- // ------------------
50
- // Check that a column-width setting is valid.
51
- @function valid-column-width(
52
- $column-width
53
- ) {
54
- $type: type-of($column-width);
55
-
56
- @if ($type == number and unit($column-width)) or not $column-width {
57
- @return $column-width;
58
- } @else {
59
- $warn: '$column-width must be a length (number with units), or false.';
60
- @warn $warn + ' Current value [#{$type}]: #{$column-width}';
61
- }
62
- }
File without changes
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: susy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta.1
4
+ version: 2.0.0.beta.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Meyer
@@ -53,22 +53,10 @@ files:
53
53
  - lib/compass-susy.rb
54
54
  - lib/susy.rb
55
55
  - sass/_susy.scss
56
- - sass/susy/_helpers.scss
57
56
  - sass/susy/_math.scss
58
- - sass/susy/api/_float.scss
59
- - sass/susy/api/_shared.scss
60
- - sass/susy/api/float/_clearfix.scss
61
- - sass/susy/api/float/_container.scss
62
- - sass/susy/api/float/_end.scss
63
- - sass/susy/api/float/_isolate.scss
64
- - sass/susy/api/float/_span.scss
65
- - sass/susy/api/shared/_background.scss
66
- - sass/susy/api/shared/_box-sizing.scss
67
- - sass/susy/api/shared/_container.scss
68
- - sass/susy/api/shared/_direction.scss
69
- - sass/susy/api/shared/_margins.scss
70
- - sass/susy/api/shared/_padding.scss
57
+ - sass/susy/language/_shared.scss
71
58
  - sass/susy/language/_susy.scss
59
+ - sass/susy/language/shared/_maps.scss
72
60
  - sass/susy/language/susy/_background.scss
73
61
  - sass/susy/language/susy/_bleed.scss
74
62
  - sass/susy/language/susy/_box-sizing.scss
@@ -85,9 +73,21 @@ files:
85
73
  - sass/susy/language/susy/_settings.scss
86
74
  - sass/susy/language/susy/_span.scss
87
75
  - sass/susy/math/_columns.scss
88
- - sass/susy/math/_container.scss
89
76
  - sass/susy/math/_settings.scss
90
77
  - sass/susy/math/_validation.scss
78
+ - sass/susy/output/_float.scss
79
+ - sass/susy/output/_shared.scss
80
+ - sass/susy/output/float/_clearfix.scss
81
+ - sass/susy/output/float/_container.scss
82
+ - sass/susy/output/float/_end.scss
83
+ - sass/susy/output/float/_isolate.scss
84
+ - sass/susy/output/float/_span.scss
85
+ - sass/susy/output/shared/_background.scss
86
+ - sass/susy/output/shared/_box-sizing.scss
87
+ - sass/susy/output/shared/_container.scss
88
+ - sass/susy/output/shared/_direction.scss
89
+ - sass/susy/output/shared/_margins.scss
90
+ - sass/susy/output/shared/_padding.scss
91
91
  - templates/project/_base.scss
92
92
  - templates/project/manifest.rb
93
93
  - templates/project/screen.scss
@@ -1,6 +0,0 @@
1
- // Helpers
2
- // =======
3
-
4
- @import "helpers/clearfix";
5
- @import "helpers/box-sizing";
6
- @import "helpers/direction";
@@ -1,20 +0,0 @@
1
- // Container math
2
- // ==============
3
-
4
- // Calculate Container Width
5
- // -------------------------
6
- // Calculate the width of a container based on columns and gutters.
7
- // - [$columns] : <number> | <list>
8
- // - [$gutters] : <ratio>
9
- // - [$column-width] : <length>
10
- // - [$spread] : <boolean>
11
- @function calculate-container-width(
12
- $columns : map-get($susy-defaults, columns),
13
- $gutters : map-get($susy-defaults, gutters),
14
- $column-width : map-get($susy-defaults, column-width),
15
- $spread : false
16
- ) {
17
- $sum: column-sum($columns, $gutters, $spread);
18
- $column-width: valid-column-width($column-width);
19
- @return $sum * $column-width;
20
- }