susy 2.0.0.beta.3 → 2.0.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -29
  3. data/VERSION +1 -1
  4. data/docs/changelog.rst +32 -1
  5. data/sass/susy/_math.scss +1 -0
  6. data/sass/susy/language/_susy.scss +0 -2
  7. data/sass/susy/language/_susyone.scss +0 -4
  8. data/sass/susy/language/susy/_background.scss +31 -25
  9. data/sass/susy/language/susy/_bleed.scss +4 -4
  10. data/sass/susy/language/susy/_box-sizing.scss +1 -1
  11. data/sass/susy/language/susy/_container.scss +1 -1
  12. data/sass/susy/language/susy/_gallery.scss +2 -2
  13. data/sass/susy/language/susy/_gutters.scss +3 -3
  14. data/sass/susy/language/susy/_rows.scss +2 -2
  15. data/sass/susy/language/susy/_settings.scss +68 -116
  16. data/sass/susy/language/susy/_span.scss +2 -2
  17. data/sass/susy/language/susyone/_functions.scss +2 -2
  18. data/sass/susy/language/susyone/_grid.scss +5 -5
  19. data/sass/susy/math/_maps.scss +89 -0
  20. data/sass/susy/math/_settings.scss +51 -0
  21. data/sass/susy/math/_validation.scss +13 -7
  22. data/sass/susy/output/_float.scss +0 -1
  23. data/sass/susy/output/_shared.scss +3 -1
  24. data/sass/susy/output/_support.scss +9 -0
  25. data/sass/susy/output/float/_end.scss +11 -3
  26. data/sass/susy/output/float/_isolate.scss +10 -6
  27. data/sass/susy/output/float/_span.scss +10 -6
  28. data/sass/susy/output/shared/_background.scss +10 -20
  29. data/sass/susy/output/shared/_container.scss +7 -3
  30. data/sass/susy/output/shared/_margins.scss +6 -2
  31. data/sass/susy/output/shared/_output.scss +14 -0
  32. data/sass/susy/output/shared/_padding.scss +6 -2
  33. data/sass/susy/output/support/_background.scss +58 -0
  34. data/sass/susy/output/support/_box-sizing.scss +17 -0
  35. data/sass/susy/output/support/_clearfix.scss +18 -0
  36. data/sass/susy/output/support/_prefix.scss +19 -0
  37. data/sass/susy/output/support/_rem.scss +22 -0
  38. data/sass/susy/output/support/_support.scss +82 -0
  39. metadata +14 -14
  40. data/sass/susy/language/_shared.scss +0 -4
  41. data/sass/susy/language/shared/_maps.scss +0 -85
  42. data/sass/susy/language/susyone/_units.scss +0 -159
  43. data/sass/susy/output/float/_clearfix.scss +0 -15
  44. data/sass/susy/output/shared/_box-sizing.scss +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a8a770621f5c94d8e367a8019a22f9cbf70d4ad
4
- data.tar.gz: 9a1c8cd9a1b701054eac039ac46036db8bb29a32
3
+ metadata.gz: b5655917505fce129931804fc695e1e51625e95b
4
+ data.tar.gz: c81923912ee3fff6b24c1044bf6d60c8456abc48
5
5
  SHA512:
6
- metadata.gz: 0547e1ab69123432985801feacc22c1a7c7e0386874c71940131a0a774d5a60c941c4b0911276ba8878dcc37ad5b814b0a8e7763c816fecafc9c07bf357eb3e3
7
- data.tar.gz: 3bb35def7bf985cf7aba9f78e80dac528bedcb69788a3f0b78ced2d18155ab6e61802d7fd64b7fba69e33ca0af134a349a7ac5862820087be227facf7a18d6ff
6
+ metadata.gz: f6d1cf8d97dd318a0dbc9cc802d71b59347a55b7985c43b5837cb0efa0ce2d3d66c3547a8c8d5deff75c7b2620e7cf2f09cf45ad006bceac2766871058eb5262
7
+ data.tar.gz: aef002701b2ef4cc933923e1ca6ccad8b28abd96fa39950b88a8d0b2ecf132e15deb7e96e45448e6ae6d014d81715d6081e89c155ded4863d9187950f22f3c1b
data/README.md CHANGED
@@ -1,40 +1,40 @@
1
- [![Build Status](https://travis-ci.org/ericam/susy.png?branch=susy-next)](https://travis-ci.org/ericam/susy)
1
+ Power Tools For The Web
2
+ =======================
2
3
 
3
- # Susy [a Compass plugin]
4
+ [![Build Status](https://travis-ci.org/ericam/susy.png?branch=susy-next)](https://travis-ci.org/ericam/susy)
4
5
 
5
- Susy is a semantic CSS grid system with a responsive twist.
6
+ Susy is an agnostic set of tools
7
+ for creating powerful, custom layouts.
8
+ We provide the language,
9
+ but you provide all the opinions.
10
+ Use a grid, don't use a grid,
11
+ or use a combination of grids —
12
+ it's all up to you.
6
13
 
7
- The web is a responsive place,
8
- from your lithe & lively development process
9
- to your end user's super-tablet-multi-magic-lap-phone.
10
- You need grids that are powerful, but custom;
11
- reliable, but responsive.
14
+ We didn't want to build another system,
15
+ we wanted to build power tools
16
+ that you could use in any system.
12
17
 
13
- This isn't another one-size-fits-all grid framework
14
- that will make your sites look identical
15
- and litter your markup with meaningless "col2of5" jargon.
16
- We don't design your site or write your markup,
17
- we just do the math and get out of your way.
18
+ Your markup, your layout | *our math*
18
19
 
19
- We provide a single shared syntax for describing layouts,
20
- and then let you select your favorite output,
21
- or build your own.
20
+ Resources
21
+ ---------
22
22
 
23
- ## Resources
24
- - [Website](http://susy.oddbird.net)
25
- - [Changelog](https://github.com/ericam/susy/blob/master/CHANGELOG.mkdn)
26
- - [Tutorial](http://susy.oddbird.net/guides/getting-started/)
27
- - [Reference](http://susy.oddbird.net/guides/reference/)
23
+ - [Website](http://susy.oddbird.net/)
24
+ - [Documentation](http://susydocs.oddbird.net/)
28
25
  - [Sites using Susy](http://susy.oddbird.net/sites-using-susy/)
29
- - [Twitter @CompassSusy](http://twitter.com/compasssusy/)
26
+ - [Twitter @SassSusy](http://twitter.com/Sasssusy/)
30
27
 
31
- ## Contributing
28
+ Contributing
29
+ ------------
32
30
 
33
31
  We love contributions,
34
32
  both as ideas and pull requests.
35
- The core of Susy is all in the `/sass/` directory.
36
-
37
- Once you make changes,
38
- you can test them by building the gem
39
- and installing it somewhere to test.
40
- We also have unit tests that you can run.
33
+ Susy is written in pure Sass,
34
+ all contained in the `/sass/` directory.
35
+ Everything else is just packaging.
36
+ If you know Sass,
37
+ or are willing to learn,
38
+ you can contribute to Susy.
39
+
40
+ More documentation on contributing to come...
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0.beta.2
1
+ 2.0.0.rc.0
@@ -1,6 +1,36 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 2.0.0.rc.1 — Feb 7 2014
5
+ -----------------------
6
+
7
+ - Add browser support module with settings to ``use-custom`` mixins
8
+ for ``background-image``,
9
+ ``background-options`` (``-size``, ``-clip``, ``-origin``),
10
+ ``box-sizing``, ``clearfix``, and ``rem``.
11
+ If you set to ``false``,
12
+ we'll make sure everything works well on modern browsers.
13
+ If you set to ``true``,
14
+ we'll check for existing mixins (e.g. from Compass or Bourbon)
15
+ to provide more powerful legacy support.
16
+
17
+ .. code-block: scss
18
+
19
+ $susy: (
20
+ use-custom: (
21
+ clearfix: false,
22
+ background-image: true,
23
+ background-options: false,
24
+ box-sizing: true,
25
+ rem: true,
26
+ ),
27
+ );
28
+
29
+ - Fix bugs caused by Sass changes to ``str-index()``,
30
+ ``#{&}``, and ``@at-root``.
31
+ - Fix Bower dependencies, and add support for Sache.
32
+ - Remove legacy Compass polyfils from susyone code.
33
+
4
34
 
5
35
  2.0.0.beta.3 — Jan 10 2014
6
36
  --------------------------
@@ -11,6 +41,7 @@ Changelog
11
41
 
12
42
  + ``@import 'susyone';``
13
43
 
44
+
14
45
  2.0.0.beta.2 — Jan 6 2014
15
46
  -------------------------
16
47
 
@@ -19,7 +50,7 @@ Changelog
19
50
  - Add ``isolate`` function to return isolation offset width.
20
51
  - Fix a bug with ``last`` output for ``split``-gutter layouts.
21
52
  - Fix a bug with split-gutter ``span()``, and ``narrow``/``wider`` keywords.
22
- - Fix a bug with ``bleed`` and ``null``+``inside`` gutters.
53
+ - Fix a bug with ``bleed`` and ``null`` + ``inside`` gutters.
23
54
  - ``bleed`` output uses TRBL shorthand when possible.
24
55
  - Clean up and document the core math functions.
25
56
  - Document upgrade path, core-math, and DIY grids.
@@ -1,6 +1,7 @@
1
1
  // Math
2
2
  // ====
3
3
 
4
+ @import "math/maps";
4
5
  @import "math/settings";
5
6
  @import "math/validation";
6
7
  @import "math/columns";
@@ -1,8 +1,6 @@
1
1
  // Susy Next Syntax
2
2
  // ================
3
3
 
4
- @import "shared";
5
-
6
4
  @import "../math";
7
5
  @import "../output/float";
8
6
 
@@ -1,10 +1,6 @@
1
1
  // ---------------------------------------------------------------------------
2
2
  // Partials
3
3
 
4
- // temporary
5
- @import "susyone/units";
6
-
7
- // permanent
8
4
  @import "susyone/settings";
9
5
  @import "susyone/functions";
10
6
  @import "susyone/grid";
@@ -59,24 +59,44 @@ $susy-overlay-grid-head-exists: false;
59
59
  ) {
60
60
  @if not $susy-overlay-grid-head-exists {
61
61
  @at-root head { @include overlay-head; }
62
+ @at-root head::before { @include overlay-trigger; }
63
+ @at-root head:hover { @include overlay-trigger-hover; }
62
64
  $susy-overlay-grid-head-exists: true !global;
63
65
  }
64
66
 
65
- $selector: #{&};
66
-
67
- @at-root head:hover {
68
- ~ #{$selector},
69
- ~ body #{$selector} {
70
- position: relative;
71
- &::before {
72
- @include grid-overlay-base;
73
- @include background-grid($grid);
74
- }
67
+ head:hover ~ &,
68
+ head:hover ~ body & {
69
+ position: relative;
70
+ &::before {
71
+ @include grid-overlay-base;
72
+ @include background-grid($grid);
75
73
  }
76
74
  }
77
75
  }
78
76
 
79
77
 
78
+ // [Private] Overlay Trigger
79
+ // -------------------------
80
+ @mixin overlay-trigger {
81
+ content: "|||";
82
+ display: block;
83
+ padding: 5px 10px;
84
+ font: {
85
+ family: sans-serif;
86
+ size: 16px;
87
+ weight: bold;
88
+ }
89
+ }
90
+
91
+
92
+ // [Private] Overlay Trigger Hover
93
+ // -------------------------------
94
+ @mixin overlay-trigger-hover {
95
+ background: rgba(white, .5);
96
+ color: red;
97
+ }
98
+
99
+
80
100
  // [Private] Overlay Head
81
101
  // ----------------------
82
102
  // <head> styles to create grid overlay toggle
@@ -97,20 +117,6 @@ $susy-overlay-grid-head-exists: false;
97
117
  z-index: 999;
98
118
  color: #333;
99
119
  background: rgba(white, .25);
100
- &::before {
101
- content: "|||";
102
- display: block;
103
- padding: 5px 10px;
104
- font: {
105
- family: sans-serif;
106
- size: 16px;
107
- weight: bold;
108
- }
109
- }
110
- &:hover {
111
- box-shadow: 0 0 1px rgba(#333,.5);
112
- background: rgba(white, .5);
113
- }
114
120
  }
115
121
 
116
122
 
@@ -337,7 +343,7 @@ $susy-overlay-grid-head-exists: false;
337
343
 
338
344
  $return: map-merge($return, (
339
345
  image: if($image, map-merge($image, $baseline), $baseline),
340
- size: if($size, append($size, $baseline-size, comma), $baseline-size),
346
+ size: if($size, ($size, $baseline-size), $baseline-size),
341
347
  ));
342
348
  }
343
349
 
@@ -10,11 +10,11 @@
10
10
  ) {
11
11
  $output: get-bleed($bleed);
12
12
 
13
- @each $property, $value in $output {
14
- #{$property}: $value;
13
+ @if susy-get(global-box-sizing) != content-box {
14
+ $output: map-merge((box-sizing: content-box), $output);
15
15
  }
16
16
 
17
- @include susy-box-sizing(content-box);
17
+ @include output($output);
18
18
  }
19
19
 
20
20
 
@@ -150,7 +150,7 @@
150
150
  $return: ();
151
151
 
152
152
  @each $key, $value in $bleed {
153
- @if str-index($key, margin) > 0 {
153
+ @if str-index($key, margin) {
154
154
  $margin: map-merge($margin, ($key: $value));
155
155
  } @else if str-index($key, padding) > 0 {
156
156
  $padding: map-merge($padding, ($key: $value));
@@ -8,7 +8,7 @@
8
8
  @mixin global-box-sizing(
9
9
  $box: susy-get(global-box-sizing)
10
10
  ) {
11
- *, *:before, *:after { @include susy-box-sizing($box); }
11
+ *, *::before, *::after { @include output((box-sizing: $box)); }
12
12
  @include update-box-model($box);
13
13
  }
14
14
 
@@ -17,7 +17,7 @@
17
17
  $box : susy-get(box-sizing, $layout);
18
18
 
19
19
  @if $box {
20
- @include susy-box-sizing($box);
20
+ @include output((box-sizing: $box));
21
21
  }
22
22
 
23
23
  @include float-container($width, $justify, $property);
@@ -50,9 +50,9 @@
50
50
 
51
51
  // Collective Output
52
52
  @if $box == border-box or ($inside and not $box and not $global-box) {
53
- @include susy-box-sizing(border-box);
53
+ @include output((box-sizing: border-box));
54
54
  } @else if $box == content-box {
55
- @include susy-box-sizing(content-box);
55
+ @include output((box-sizing: content-box));
56
56
  }
57
57
 
58
58
  @include float-span-output($output...);
@@ -8,9 +8,9 @@
8
8
  @mixin gutters(
9
9
  $span: $susy
10
10
  ) {
11
- $span : parse-gutters($span);
12
- $gutters : get-gutters($span);
13
- $output : (
11
+ $span: parse-gutters($span);
12
+ $gutters: get-gutters($span);
13
+ $output: (
14
14
  before: map-get($gutters, before),
15
15
  after: map-get($gutters, after),
16
16
  flow: susy-get(flow, $span),
@@ -6,7 +6,7 @@
6
6
  // -----
7
7
  // Apply to any element that should force a line break.
8
8
  @mixin break {
9
- clear: both;
9
+ @include output((clear: both));
10
10
  }
11
11
 
12
12
 
@@ -14,7 +14,7 @@
14
14
  // -------
15
15
  // Cancel the break() effect, e.g. when using media queries.
16
16
  @mixin nobreak {
17
- clear: none;
17
+ @include output((clear: none));
18
18
  }
19
19
 
20
20
 
@@ -42,40 +42,33 @@ $susy-keywords: (
42
42
  );
43
43
 
44
44
 
45
- // User Settings
46
- // -------------
47
- // - Define the $susy variable with a map of your own settings.
48
- // - Set EITHER $column-width OR $container
49
- // - Use $column-width for static layouts
50
- $susy: () !default;
51
-
52
-
53
45
  // Parse Susy Keywords and Maps
54
46
  // ----------------------------
55
47
  @function parse-settings(
56
48
  $short: $susy
57
49
  ) {
58
- $return: ();
50
+ $_return: ();
59
51
 
60
52
  @if type-of($short) == map {
61
- $return: $short;
53
+ $_return: $short;
62
54
  } @else {
63
55
  @each $item in $short {
64
56
  // strings
65
57
  @if type-of($item) == string {
66
58
  @each $key, $value in $susy-keywords {
67
59
  @if index($value, $item) {
68
- $return: deep-set($return, $key, $item);
60
+ $_key-value: append($key, $item);
61
+ $_return: _susy-deep-set($_return, $_key-value...);
69
62
  }
70
63
  }
71
64
  // maps
72
65
  } @else if type-of($item) == map {
73
- $return: map-merge($return, $item);
66
+ $_return: map-merge($_return, $item);
74
67
  }
75
68
  }
76
69
  }
77
70
 
78
- @return $return;
71
+ @return $_return;
79
72
  }
80
73
 
81
74
 
@@ -84,30 +77,30 @@ $susy: () !default;
84
77
  @function parse-layout(
85
78
  $short
86
79
  ) {
87
- $return: ();
88
- $columns: ();
89
- $gutters: null;
80
+ $_return: ();
81
+ $_columns: ();
82
+ $_gutters: null;
90
83
 
91
84
  @if not unitless(nth(nth($short, 1), 1)) {
92
- $gutters: nth($short, 1);
85
+ $_gutters: nth($short, 1);
93
86
  } @else {
94
- $columns: (columns: nth($short, 1));
95
- $gutters: if(length($short) > 1, nth($short, 2), $gutters);
87
+ $_columns: (columns: nth($short, 1));
88
+ $_gutters: if(length($short) > 1, nth($short, 2), $_gutters);
96
89
  }
97
90
 
98
- @if type-of($gutters) == list and length($gutters) > 0 {
99
- $gutters: (
100
- gutters: nth($gutters, 2) / nth($gutters, 1),
101
- column-width: nth($gutters, 1),
91
+ @if type-of($_gutters) == list and length($_gutters) > 0 {
92
+ $_gutters: (
93
+ gutters: nth($_gutters, 2) / nth($_gutters, 1),
94
+ column-width: nth($_gutters, 1),
102
95
  );
103
96
  } @else {
104
- $gutters: if($gutters, (gutters: $gutters), ());
97
+ $_gutters: if($_gutters, (gutters: $_gutters), ());
105
98
  }
106
99
 
107
- $return: map-merge($return, $columns);
108
- $return: map-merge($return, $gutters);
100
+ $_return: map-merge($_return, $_columns);
101
+ $_return: map-merge($_return, $_gutters);
109
102
 
110
- @return $return;
103
+ @return $_return;
111
104
  }
112
105
 
113
106
 
@@ -116,27 +109,27 @@ $susy: () !default;
116
109
  @function parse-grid(
117
110
  $short: $susy
118
111
  ) {
119
- $return: parse-settings($short);
120
- $layout: ();
112
+ $_return: parse-settings($short);
113
+ $_layout: ();
121
114
 
122
115
  @if type-of($short) == map {
123
- $return: $short;
116
+ $_return: $short;
124
117
  } @else {
125
118
  @each $item in $short {
126
119
  // number or list
127
120
  @if type-of($item) == number or type-of($item) == list {
128
121
  @if type-of($item) == list or unitless($item) {
129
- $layout: append($layout, $item);
122
+ $_layout: append($_layout, $item);
130
123
  } @else {
131
- $return: map-merge($return, (container: $item));
124
+ $_return: map-merge($_return, (container: $item));
132
125
  }
133
126
  }
134
127
  }
135
128
 
136
- $layout: if(length($layout) > 0, parse-layout($layout), $layout);
129
+ $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout);
137
130
  }
138
131
 
139
- @return map-merge($return, $layout);
132
+ @return map-merge($_return, $_layout);
140
133
  }
141
134
 
142
135
 
@@ -146,47 +139,47 @@ $susy: () !default;
146
139
  $short,
147
140
  $key: span
148
141
  ) {
149
- $return: ();
142
+ $_return: ();
150
143
 
151
144
  @if type-of($short) == map {
152
- $return: $short;
145
+ $_return: $short;
153
146
  } @else {
154
- $at: index($short, at);
155
-
156
- @if $at {
157
- $loci: $at + 1;
158
- $location: nth($short, $loci);
159
- $return: map-merge($return, (location: $location));
160
- $short: set-nth($short, $at, null);
161
- $short: set-nth($short, $loci, null);
147
+ $_at: index($short, at);
148
+
149
+ @if $_at {
150
+ $_loci: $_at + 1;
151
+ $_location: nth($short, $_loci);
152
+ $_return: map-merge($_return, (location: $_location));
153
+ $short: set-nth($short, $_at, null);
154
+ $short: set-nth($short, $_loci, null);
162
155
  }
163
156
 
164
- $i: 1;
165
- $span: ();
157
+ $_i: 1;
158
+ $_span: ();
166
159
 
167
- @while $i <= length($short) {
168
- $this: nth($short, $i);
160
+ @while $_i <= length($short) {
161
+ $_this: nth($short, $_i);
169
162
 
170
- @if type-of($this) == number {
171
- $span: append($span, $this);
172
- $short: set-nth($short, $i, null);
173
- } @else if $this == of {
174
- $short: set-nth($short, $i, null);
175
- $i: length($short) + 1;
163
+ @if type-of($_this) == number {
164
+ $_span: append($_span, $_this);
165
+ $short: set-nth($short, $_i, null);
166
+ } @else if $_this == of {
167
+ $short: set-nth($short, $_i, null);
168
+ $_i: length($short) + 1;
176
169
  }
177
170
 
178
- $i: $i + 1;
171
+ $_i: $_i + 1;
179
172
  }
180
173
 
181
- @if length($span) > 0 {
182
- $span: if(length($span) == 1, nth($span, 1), $span);
183
- $return: map-merge($return, ($key: $span));
174
+ @if length($_span) > 0 {
175
+ $_span: if(length($_span) == 1, nth($_span, 1), $_span);
176
+ $_return: map-merge($_return, ($key: $_span));
184
177
  }
185
178
 
186
- $return: map-merge($return, parse-grid($short));
179
+ $_return: map-merge($_return, parse-grid($short));
187
180
  }
188
181
 
189
- @return $return;
182
+ @return $_return;
190
183
  }
191
184
 
192
185
 
@@ -195,70 +188,29 @@ $susy: () !default;
195
188
  @function parse-gutters(
196
189
  $short: $susy
197
190
  ) {
198
- $gutters: parse-span($short, gutter-override);
199
- $span: susy-get(gutter-override, $gutters);
191
+ $_gutters: parse-span($short, gutter-override);
192
+ $_span: susy-get(gutter-override, $_gutters);
200
193
 
201
- @if $span and not map-get($gutters, columns) {
202
- $context: ();
203
- $new: ();
194
+ @if $_span and not map-get($_gutters, columns) {
195
+ $_context: ();
196
+ $_new: ();
204
197
 
205
- @each $item in $span {
198
+ @each $item in $_span {
206
199
  @if type-of($item) == number and unitless($item) {
207
- $context: append($context, $item);
200
+ $_context: append($_context, $item);
208
201
  } @else {
209
- $new: append($new, $item);
202
+ $_new: append($_new, $item);
210
203
  }
211
204
  }
212
205
 
213
- $context: parse-grid($context);
214
- $new: if(length($new) == 0, null, $new);
215
- $new: if(length($new) == 1, nth($new, 1), $new);
216
- $new: (gutter-override: if($new != $span, $new, $span));
217
-
218
- $gutters: map-merge($gutters, $new);
219
- $gutters: map-merge($gutters, $context);
220
- }
221
-
222
- @return $gutters;
223
- }
224
-
206
+ $_context: parse-grid($_context);
207
+ $_new: if(length($_new) == 0, null, $_new);
208
+ $_new: if(length($_new) == 1, nth($_new, 1), $_new);
209
+ $_new: (gutter-override: if($_new != $_span, $_new, $_span));
225
210
 
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
-
239
- // Susy Get
240
- // --------
241
- // Return one setting from a grid
242
- // - $key : <keyword>
243
- // - $layout : <settings>
244
- @function susy-get(
245
- $key,
246
- $layout: map-merge($susy-defaults, $susy)
247
- ) {
248
- $layout: parse-grid($layout);
249
- $options: $layout $susy $susy-defaults;
250
- $break: false;
251
- $return: null;
252
-
253
- @each $opt in $options {
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
- }
260
- }
211
+ $_gutters: map-merge($_gutters, $_new);
212
+ $_gutters: map-merge($_gutters, $_context);
261
213
  }
262
214
 
263
- @return $return;
215
+ @return $_gutters;
264
216
  }