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

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.
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
- }