susy 2.2.14 → 3.0.0.alpha.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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/{docs/changelog.rst → CHANGELOG.md} +0 -34
  3. data/README.md +135 -10
  4. data/VERSION +1 -1
  5. data/sass/_prefix.scss +10 -0
  6. data/sass/_susy.scss +4 -3
  7. data/sass/susy/_api.scss +134 -0
  8. data/sass/susy/_grids.scss +192 -0
  9. data/sass/susy/_parser.scss +284 -0
  10. data/sass/susy/_settings.scss +120 -0
  11. data/sass/susy/_unprefix.scss +53 -0
  12. data/sass/susy/_validation.scss +132 -0
  13. metadata +26 -75
  14. data/sass/_su.scss +0 -4
  15. data/sass/_susyone.scss +0 -4
  16. data/sass/susy/_su.scss +0 -7
  17. data/sass/susy/language/_susy.scss +0 -24
  18. data/sass/susy/language/_susyone.scss +0 -13
  19. data/sass/susy/language/susy/_background.scss +0 -385
  20. data/sass/susy/language/susy/_bleed.scss +0 -200
  21. data/sass/susy/language/susy/_box-sizing.scss +0 -47
  22. data/sass/susy/language/susy/_breakpoint-plugin.scss +0 -185
  23. data/sass/susy/language/susy/_container.scss +0 -81
  24. data/sass/susy/language/susy/_context.scss +0 -36
  25. data/sass/susy/language/susy/_gallery.scss +0 -94
  26. data/sass/susy/language/susy/_grids.scss +0 -64
  27. data/sass/susy/language/susy/_gutters.scss +0 -154
  28. data/sass/susy/language/susy/_isolate.scss +0 -77
  29. data/sass/susy/language/susy/_margins.scss +0 -94
  30. data/sass/susy/language/susy/_padding.scss +0 -74
  31. data/sass/susy/language/susy/_rows.scss +0 -138
  32. data/sass/susy/language/susy/_settings.scss +0 -216
  33. data/sass/susy/language/susy/_span.scss +0 -163
  34. data/sass/susy/language/susy/_validation.scss +0 -16
  35. data/sass/susy/language/susyone/_background.scss +0 -18
  36. data/sass/susy/language/susyone/_functions.scss +0 -377
  37. data/sass/susy/language/susyone/_grid.scss +0 -312
  38. data/sass/susy/language/susyone/_isolation.scss +0 -51
  39. data/sass/susy/language/susyone/_margin.scss +0 -93
  40. data/sass/susy/language/susyone/_media.scss +0 -105
  41. data/sass/susy/language/susyone/_padding.scss +0 -92
  42. data/sass/susy/language/susyone/_settings.scss +0 -60
  43. data/sass/susy/output/_float.scss +0 -9
  44. data/sass/susy/output/_shared.scss +0 -15
  45. data/sass/susy/output/_support.scss +0 -9
  46. data/sass/susy/output/float/_container.scss +0 -16
  47. data/sass/susy/output/float/_end.scss +0 -40
  48. data/sass/susy/output/float/_isolate.scss +0 -22
  49. data/sass/susy/output/float/_span.scss +0 -35
  50. data/sass/susy/output/shared/_background.scss +0 -26
  51. data/sass/susy/output/shared/_container.scss +0 -21
  52. data/sass/susy/output/shared/_direction.scss +0 -42
  53. data/sass/susy/output/shared/_inspect.scss +0 -25
  54. data/sass/susy/output/shared/_margins.scss +0 -23
  55. data/sass/susy/output/shared/_output.scss +0 -14
  56. data/sass/susy/output/shared/_padding.scss +0 -23
  57. data/sass/susy/output/support/_background.scss +0 -58
  58. data/sass/susy/output/support/_box-sizing.scss +0 -19
  59. data/sass/susy/output/support/_clearfix.scss +0 -18
  60. data/sass/susy/output/support/_prefix.scss +0 -19
  61. data/sass/susy/output/support/_rem.scss +0 -22
  62. data/sass/susy/output/support/_support.scss +0 -95
  63. data/sass/susy/su/_grid.scss +0 -103
  64. data/sass/susy/su/_settings.scss +0 -73
  65. data/sass/susy/su/_utilities.scss +0 -111
  66. data/sass/susy/su/_validation.scss +0 -57
  67. data/templates/project/_grids.scss +0 -9
  68. data/templates/project/manifest.rb +0 -15
  69. data/templates/project/style.scss +0 -4
@@ -0,0 +1,132 @@
1
+ // Validation
2
+ // ==========
3
+ // - su-valid-columns [function]
4
+ // - su-valid-gutters [function]
5
+ // - su-valid-spread [function]
6
+ // - su-valid-location [function]
7
+
8
+
9
+ // Valid Columns
10
+ // -------------
11
+ /// Check that the `columns` argument is a valid
12
+ /// list of comparable column-lengths
13
+ ///
14
+ /// @access private
15
+ ///
16
+ /// @param {List} $columns -
17
+ /// List of column-lengths using comparable units
18
+ ///
19
+ /// @return {List} -
20
+ /// Validated `$columns` list
21
+ @function su-valid-columns(
22
+ $columns
23
+ ) {
24
+ $first: nth($columns, 1);
25
+
26
+ @each $col in $columns {
27
+ @if (type-of($col) != 'number') or (not comparable($col, $first)) {
28
+ $actual: '[#{type-of($columns)}] `#{inspect($columns)}`';
29
+ @error '#{$actual} is not a value for $columns.';
30
+ }
31
+ }
32
+
33
+ @return $columns;
34
+ }
35
+
36
+
37
+ // Valid Gutters
38
+ // -------------
39
+ /// Check that the `gutters` argument is a valid number
40
+ ///
41
+ /// @access private
42
+ ///
43
+ /// @param {Number} $gutters -
44
+ /// Width of a gutter
45
+ /// @param {List} $columns -
46
+ /// Valid list of column-lengths using comparable units
47
+ ///
48
+ /// @return {Number} -
49
+ /// Validated `$gutters` number
50
+ @function su-valid-gutters(
51
+ $gutters,
52
+ $columns
53
+ ) {
54
+ $type: type-of($gutters);
55
+
56
+ @if ($type == 'number') {
57
+ @if unitless($gutters) and (not unitless(nth($columns, 1))) {
58
+ @error 'Gutters must have units for a static grid.';
59
+ }
60
+
61
+ @return $gutters;
62
+ }
63
+
64
+ $actual: '[#{$type}] `#{inspect($gutters)}`';
65
+ @error '#{$actual} is not a value for $gutters.';
66
+ }
67
+
68
+
69
+ // Valid Spread
70
+ // ------------
71
+ /// Check that the `spread` argument is a valid
72
+ /// intiger between `-1` and `1`
73
+ ///
74
+ /// @access private
75
+ ///
76
+ /// @param {0 | 1 | -1} $spread -
77
+ /// Number of gutters to include in a span,
78
+ /// relative to the number columns
79
+ ///
80
+ /// @return {0 | 1 | -1} -
81
+ /// Validated `$spread` number
82
+ @function su-valid-spread(
83
+ $spread
84
+ ) {
85
+ @if index(0 1 -1, $spread) {
86
+ @return $spread;
87
+ }
88
+
89
+ $actual: '[#{type-of($spread)}] `#{inspect($spread)}`';
90
+ @error '#{$actual} is not a value for $spread.';
91
+ }
92
+
93
+
94
+ // Valid Location
95
+ // --------------
96
+ /// Check that the `location` argument is a valid number,
97
+ /// within the scope of available columns
98
+ ///
99
+ /// @access private
100
+ ///
101
+ /// @param {Number} $span -
102
+ /// Number of grid-columns to be spanned
103
+ /// @param {Integer | String} $location -
104
+ /// Starting (1-indexed) column-position of that span
105
+ /// @param {List} $columns -
106
+ /// List of available columns in the grid
107
+ ///
108
+ /// @return {Integer} -
109
+ /// Validated `$location` intiger
110
+ @function su-valid-location(
111
+ $span,
112
+ $location,
113
+ $columns
114
+ ) {
115
+ $count: length($columns);
116
+
117
+ @if $location {
118
+ @if (type-of($location) != 'number') or (not unitless($location)) {
119
+ $actual: '[#{type-of($location)}] `#{$location}`';
120
+ @error '#{$actual} is not a value for $location.';
121
+ } @else if (round($location) != $location) {
122
+ @error 'Location (`#{$location}`) must be a 1-indexed intiger position.';
123
+ } @else if ($location > $count) {
124
+ @error 'Position `#{$location}` does not exist in grid `#{$columns}`.';
125
+ } @else if ($location + $span - 1 > $count) {
126
+ $details: 'grid `#{$columns}` for span `#{$span}` at `#{$location}`';
127
+ @error 'There are not enough columns in #{$details}';
128
+ }
129
+ }
130
+
131
+ @return $location;
132
+ }
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: susy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.14
4
+ version: 3.0.0.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miriam Eric Suzanne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-01 00:00:00.000000000 Z
11
+ date: 2014-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.3.0
20
- - - "<"
20
+ - - <
21
21
  - !ruby/object:Gem::Version
22
22
  version: '3.5'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">="
27
+ - - '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.3.0
30
- - - "<"
30
+ - - <
31
31
  - !ruby/object:Gem::Version
32
32
  version: '3.5'
33
33
  description: Susy is a toolkit for building layouts of all types with a simple, natural
@@ -37,101 +37,52 @@ email:
37
37
  executables: []
38
38
  extensions: []
39
39
  extra_rdoc_files:
40
- - docs/changelog.rst
40
+ - CHANGELOG.md
41
41
  - LICENSE.txt
42
42
  - README.md
43
43
  - lib/susy.rb
44
44
  files:
45
- - LICENSE.txt
46
- - README.md
47
- - VERSION
48
- - docs/changelog.rst
49
45
  - lib/compass-susy.rb
50
46
  - lib/susy.rb
51
- - sass/_su.scss
47
+ - sass/_prefix.scss
52
48
  - sass/_susy.scss
53
- - sass/_susyone.scss
54
- - sass/susy/_su.scss
55
- - sass/susy/language/_susy.scss
56
- - sass/susy/language/_susyone.scss
57
- - sass/susy/language/susy/_background.scss
58
- - sass/susy/language/susy/_bleed.scss
59
- - sass/susy/language/susy/_box-sizing.scss
60
- - sass/susy/language/susy/_breakpoint-plugin.scss
61
- - sass/susy/language/susy/_container.scss
62
- - sass/susy/language/susy/_context.scss
63
- - sass/susy/language/susy/_gallery.scss
64
- - sass/susy/language/susy/_grids.scss
65
- - sass/susy/language/susy/_gutters.scss
66
- - sass/susy/language/susy/_isolate.scss
67
- - sass/susy/language/susy/_margins.scss
68
- - sass/susy/language/susy/_padding.scss
69
- - sass/susy/language/susy/_rows.scss
70
- - sass/susy/language/susy/_settings.scss
71
- - sass/susy/language/susy/_span.scss
72
- - sass/susy/language/susy/_validation.scss
73
- - sass/susy/language/susyone/_background.scss
74
- - sass/susy/language/susyone/_functions.scss
75
- - sass/susy/language/susyone/_grid.scss
76
- - sass/susy/language/susyone/_isolation.scss
77
- - sass/susy/language/susyone/_margin.scss
78
- - sass/susy/language/susyone/_media.scss
79
- - sass/susy/language/susyone/_padding.scss
80
- - sass/susy/language/susyone/_settings.scss
81
- - sass/susy/output/_float.scss
82
- - sass/susy/output/_shared.scss
83
- - sass/susy/output/_support.scss
84
- - sass/susy/output/float/_container.scss
85
- - sass/susy/output/float/_end.scss
86
- - sass/susy/output/float/_isolate.scss
87
- - sass/susy/output/float/_span.scss
88
- - sass/susy/output/shared/_background.scss
89
- - sass/susy/output/shared/_container.scss
90
- - sass/susy/output/shared/_direction.scss
91
- - sass/susy/output/shared/_inspect.scss
92
- - sass/susy/output/shared/_margins.scss
93
- - sass/susy/output/shared/_output.scss
94
- - sass/susy/output/shared/_padding.scss
95
- - sass/susy/output/support/_background.scss
96
- - sass/susy/output/support/_box-sizing.scss
97
- - sass/susy/output/support/_clearfix.scss
98
- - sass/susy/output/support/_prefix.scss
99
- - sass/susy/output/support/_rem.scss
100
- - sass/susy/output/support/_support.scss
101
- - sass/susy/su/_grid.scss
102
- - sass/susy/su/_settings.scss
103
- - sass/susy/su/_utilities.scss
104
- - sass/susy/su/_validation.scss
105
- - templates/project/_grids.scss
106
- - templates/project/manifest.rb
107
- - templates/project/style.scss
49
+ - sass/susy/_api.scss
50
+ - sass/susy/_grids.scss
51
+ - sass/susy/_parser.scss
52
+ - sass/susy/_settings.scss
53
+ - sass/susy/_unprefix.scss
54
+ - sass/susy/_validation.scss
55
+ - CHANGELOG.md
56
+ - LICENSE.txt
57
+ - README.md
58
+ - VERSION
108
59
  homepage: http://susy.oddbird.net/
109
60
  licenses:
110
61
  - BSD-3-Clause
111
62
  metadata: {}
112
63
  post_install_message:
113
64
  rdoc_options:
114
- - "--line-numbers"
115
- - "--inline-source"
116
- - "--title"
65
+ - --line-numbers
66
+ - --inline-source
67
+ - --title
117
68
  - Susy
118
- - "--main"
69
+ - --main
119
70
  - README.md
120
71
  require_paths:
121
72
  - lib
122
73
  required_ruby_version: !ruby/object:Gem::Requirement
123
74
  requirements:
124
- - - ">="
75
+ - - '>='
125
76
  - !ruby/object:Gem::Version
126
77
  version: '0'
127
78
  required_rubygems_version: !ruby/object:Gem::Requirement
128
79
  requirements:
129
- - - ">="
80
+ - - '>'
130
81
  - !ruby/object:Gem::Version
131
- version: '1.2'
82
+ version: 1.3.1
132
83
  requirements: []
133
84
  rubyforge_project: susy
134
- rubygems_version: 2.6.12
85
+ rubygems_version: 2.1.10
135
86
  signing_key:
136
87
  specification_version: 3
137
88
  summary: Responsive layout toolkit for Sass.
@@ -1,4 +0,0 @@
1
- // Su
2
- // ==
3
-
4
- @import 'susy/su';
@@ -1,4 +0,0 @@
1
- // Susy
2
- // ====
3
-
4
- @import 'susy/language/susyone';
@@ -1,7 +0,0 @@
1
- // Su
2
- // ==
3
-
4
- @import "su/utilities";
5
- @import "su/settings";
6
- @import "su/validation";
7
- @import "su/grid";
@@ -1,24 +0,0 @@
1
- // Susy Next Syntax
2
- // ================
3
-
4
- $susy-version: 2.1;
5
-
6
- @import "../su";
7
- @import "../output/float";
8
-
9
- @import "susy/settings";
10
- @import "susy/validation";
11
- @import "susy/grids";
12
- @import "susy/box-sizing";
13
- @import "susy/context";
14
- @import "susy/background";
15
- @import "susy/container";
16
- @import "susy/span";
17
- @import "susy/gutters";
18
- @import "susy/isolate";
19
- @import "susy/gallery";
20
- @import "susy/rows";
21
- @import "susy/margins";
22
- @import "susy/padding";
23
- @import "susy/bleed";
24
- @import "susy/breakpoint-plugin";
@@ -1,13 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // Partials
3
-
4
- $susy-version: 1.5;
5
-
6
- @import "susyone/settings";
7
- @import "susyone/functions";
8
- @import "susyone/grid";
9
- @import "susyone/isolation";
10
- @import "susyone/padding";
11
- @import "susyone/margin";
12
- @import "susyone/media";
13
- @import "susyone/background";
@@ -1,385 +0,0 @@
1
- // Background Grid Syntax
2
- // ======================
3
-
4
- $susy-overlay-grid-head-exists: false;
5
-
6
-
7
- // Show Grid/s
8
- // -----------
9
- // Show grid on any element using either background or overlay.
10
- // - [$grid] : <settings>
11
- @mixin show-grid(
12
- $grid: $susy
13
- ) {
14
- $inspect: $grid;
15
- $_output: debug-get(output, $grid);
16
-
17
- @include susy-inspect(show-grid, $inspect);
18
- @if $_output == overlay and susy-get(debug image, $grid) != hide {
19
- @include overlay-grid($grid);
20
- } @else {
21
- @include background-grid($grid);
22
- }
23
- }
24
-
25
- @mixin show-grids(
26
- $grid: $susy
27
- ) {
28
- @include show-grid($grid);
29
- }
30
-
31
- // Background Grid
32
- // ---------------
33
- // Show a grid background on any element.
34
- // - [$grid] : <settings>
35
- @mixin background-grid(
36
- $grid: $susy
37
- ) {
38
- $inspect : $grid;
39
- $_output : get-background($grid);
40
-
41
- @if length($_output) > 0 {
42
- $_flow: susy-get(flow, $grid);
43
-
44
- $_image: ();
45
- @each $name, $layer in map-get($_output, image) {
46
- $_direction: if($name == baseline, to bottom, to to($_flow));
47
- $_image: append($_image, linear-gradient($_direction, $layer), comma);
48
- }
49
- $_output: map-merge($_output, (image: $_image));
50
-
51
- @include background-grid-output($_output...);
52
- @include susy-inspect(background-grid, $inspect);
53
- }
54
- }
55
-
56
-
57
- // Overlay Grid
58
- // ------------
59
- // Generate an icon to trigger grid-overlays on any given elements.
60
- // $grids... : <selector> [<settings>] [, <selector>]*
61
- @mixin overlay-grid (
62
- $grid: $susy
63
- ) {
64
- @if not($susy-overlay-grid-head-exists) {
65
- @at-root head { @include overlay-head($grid); }
66
- @at-root head:before { @include overlay-trigger; }
67
- @at-root head:hover { @include overlay-trigger-hover; }
68
- $susy-overlay-grid-head-exists: true !global;
69
- }
70
-
71
- head:hover ~ &,
72
- head:hover ~ body & {
73
- position: relative;
74
- &:before {
75
- @include grid-overlay-base;
76
- @include background-grid($grid);
77
- }
78
- }
79
- }
80
-
81
-
82
- // [Private] Overlay Trigger
83
- // -------------------------
84
- @mixin overlay-trigger {
85
- content: "|||";
86
- display: block;
87
- padding: 5px 10px;
88
- font: {
89
- family: sans-serif;
90
- size: 16px;
91
- weight: bold;
92
- }
93
- }
94
-
95
-
96
- // [Private] Overlay Trigger Hover
97
- // -------------------------------
98
- @mixin overlay-trigger-hover {
99
- background: rgba(white, .5);
100
- color: red;
101
- }
102
-
103
-
104
- // [Private] Overlay Head
105
- // ----------------------
106
- // <head> styles to create grid overlay toggle
107
- @mixin overlay-head (
108
- $grid: $susy
109
- ) {
110
- $_toggle: debug-get(toggle, $grid);
111
- $_horz: null;
112
- $_vert: null;
113
-
114
- @each $side in $_toggle {
115
- $_horz: if($side == left or $side == right, $side, $_horz);
116
- $_vert: if($side == top or $side == bottom, $side, $_vert);
117
- }
118
-
119
- display: block;
120
- position: fixed;
121
- #{$_horz}: 10px;
122
- #{$_vert}: 10px;
123
- z-index: 999;
124
- color: #333;
125
- background: rgba(white, .25);
126
- }
127
-
128
-
129
- // [Private] Grid Overlay Base
130
- // ---------------------------
131
- // Base styles for generating a grid overlay
132
- @mixin grid-overlay-base() {
133
- position: absolute;
134
- top: 0;
135
- left: 0;
136
- bottom: 0;
137
- right: 0;
138
- content: " ";
139
- z-index: 998;
140
- }
141
-
142
-
143
- // Get Symmetrical Background
144
- // --------------------------
145
- // - $grid: <map>
146
- @function get-background-sym(
147
- $grid
148
- ) {
149
- $grid : parse-grid($grid);
150
- $_gutters : susy-get(gutters, $grid);
151
- $_column-width : susy-get(column-width, $grid);
152
- $_math : susy-get(math, $grid);
153
-
154
- $_color : debug-get(color);
155
- $_trans : transparent;
156
- $_light : lighten($_color, 15%);
157
-
158
- $_end : 1 + $_gutters;
159
- $_after : percentage(1/$_end);
160
- $_stops : ();
161
- $_size : span(1 $grid wide);
162
-
163
- @if is-inside($grid) {
164
- $_stops: $_color, $_light;
165
- } @else if is-split($grid) {
166
- $_split: $_gutters/2;
167
- $_before: percentage($_split/$_end);
168
- $_after: percentage((1 + $_split)/$_end);
169
- $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after;
170
- } @else {
171
- $_stops: $_color, $_light $_after, $_trans $_after;
172
- }
173
-
174
- @if $_math == static {
175
- $_size: valid-column-math($_math, $_column-width) * $_end;
176
- }
177
-
178
- $_output: (
179
- image: (columns: $_stops),
180
- size: $_size,
181
- );
182
-
183
- @return $_output;
184
- }
185
-
186
-
187
- // Get Asymmetrical Inside
188
- // -----------------------
189
- // - $grid: <settings>
190
- @function get-asym-inside(
191
- $grid
192
- ) {
193
- $grid : parse-grid($grid);
194
- $_columns : susy-get(columns, $grid);
195
-
196
- $_color : debug-get(color);
197
- $_light : lighten($_color, 15%);
198
- $_stops : ();
199
-
200
- @for $location from 1 through susy-count($_columns) {
201
- $this-stop: ();
202
-
203
- @if $location == 1 {
204
- $this-stop: append($this-stop, $_color, comma);
205
- } @else {
206
- $start: parse-span(1 at $location $grid);
207
- $start: get-isolation($start);
208
- $this-stop: append($this-stop, $_color $start, comma);
209
- }
210
-
211
- @if $location == susy-count($_columns) {
212
- $this-stop: append($this-stop, $_light, comma);
213
- } @else {
214
- $_end: parse-span(1 at ($location + 1) $grid);
215
- $_end: get-isolation($_end);
216
- $this-stop: append($this-stop, $_light $_end, comma);
217
- }
218
-
219
- $_stops: join($_stops, $this-stop, comma);
220
- }
221
-
222
- @return $_stops;
223
- }
224
-
225
-
226
- // Get Asymmetrical Split
227
- // ----------------------
228
- // - $grid: <settings>
229
- @function get-asym-split(
230
- $grid
231
- ) {
232
- $grid : parse-grid($grid);
233
- $_columns : susy-get(columns, $grid);
234
-
235
- $_color : debug-get(color);
236
- $_light : lighten($_color, 15%);
237
- $_stops : ();
238
-
239
- @for $location from 1 through susy-count($_columns) {
240
- $this-stop: ();
241
-
242
- $start: parse-span(1 at $location $grid);
243
- $start: get-isolation($start);
244
- $this-stop: append($this-stop, transparent $start, comma);
245
- $this-stop: append($this-stop, $_color $start, comma);
246
-
247
- $_end: $start + span(1 at $location $grid);
248
- $this-stop: append($this-stop, $_light $_end, comma);
249
- $this-stop: append($this-stop, transparent $_end, comma);
250
-
251
- $_stops: join($_stops, $this-stop, comma);
252
- }
253
-
254
- @return $_stops;
255
- }
256
-
257
-
258
- // Get Asymmetrical Outside
259
- // ------------------------
260
- // - $grid: <settings>
261
- @function get-asym-outside(
262
- $grid
263
- ) {
264
- $grid : parse-grid($grid);
265
- $_columns : susy-get(columns, $grid);
266
-
267
- $_color : debug-get(color);
268
- $_light : lighten($_color, 15%);
269
- $_trans : transparent;
270
- $_stops : ();
271
-
272
- @for $location from 1 through susy-count($_columns) {
273
- $this-stop: ();
274
-
275
- @if $location == 1 {
276
- $this-stop: append($this-stop, $_color, comma);
277
- } @else {
278
- $start: parse-span(1 at $location $grid);
279
- $start: get-isolation($start);
280
- $this-stop: append($this-stop, $_color $start, comma);
281
- }
282
-
283
- @if $location == susy-count($_columns) {
284
- $this-stop: append($this-stop, $_light, comma);
285
- } @else {
286
- $gutter: get-span-width(first $location $grid);
287
-
288
- $_end: parse-span(1 at ($location + 1) $grid);
289
- $_end: get-isolation($_end);
290
-
291
- $gutter: $_light $gutter, $_trans $gutter, $_trans $_end;
292
- $this-stop: join($this-stop, $gutter, comma);
293
- }
294
-
295
- $_stops: join($_stops, $this-stop, comma);
296
- }
297
-
298
- @return $_stops;
299
- }
300
-
301
-
302
- // Get Asymmetrical Background
303
- // ---------------------------
304
- // - $grid: <settings>
305
- @function get-background-asym(
306
- $grid
307
- ) {
308
- $_stops: ();
309
-
310
- @if is-inside($grid) {
311
- $_stops: get-asym-inside($grid);
312
- } @else if is-split($grid) {
313
- $_stops: get-asym-split($grid);
314
- } @else {
315
- $_stops: get-asym-outside($grid);
316
- }
317
-
318
- @return (image: (columns: $_stops));
319
- }
320
-
321
-
322
- // Get Background
323
- // --------------
324
- // - $grid: <settings>
325
- @function get-background(
326
- $grid
327
- ) {
328
- $grid : parse-grid($grid);
329
- $_show : susy-get(debug image, $grid);
330
- $_return : ();
331
-
332
- @if $_show and $_show != 'hide' {
333
- $_columns: susy-get(columns, $grid);
334
-
335
- @if $_show != 'show-baseline' {
336
- $_sym: is-symmetrical($_columns);
337
- $_return: if($_sym, get-background-sym($grid), get-background-asym($grid));
338
- $_return: map-merge($_return, (clip: content-box));
339
- }
340
-
341
- @if $_show != 'show-columns'
342
- and global-variable-exists(base-line-height)
343
- and type-of($base-line-height) == 'number'
344
- and not unitless($base-line-height) {
345
- $_color: variable-exists('grid-background-baseline-color');
346
- $_color: if($_color, $grid-background-baseline-color, #000);
347
-
348
- $_image: map-get($_return, image);
349
- $_size: map-get($_return, size);
350
- $_baseline: (baseline: ($_color 1px, transparent 1px));
351
- $_baseline-size: 100% $base-line-height;
352
-
353
- $_return: map-merge($_return, (
354
- image: if($_image, map-merge($_image, $_baseline), $_baseline),
355
- size: if($_size, ($_size, $_baseline-size), $_baseline-size),
356
- ));
357
-
358
- @if $_show == 'show' {
359
- $_clip: map-get($_return, clip);
360
- $_return: map-merge($_return, (clip: join($_clip, border-box, comma)));
361
- }
362
- } @else if $_show == 'show-baseline' {
363
- @warn 'Please provide a $base-line-height with the desired height and units';
364
- }
365
- }
366
-
367
- @if map-get($_return, image) {
368
- $_return: map-merge($_return, (flow: susy-get(flow, $grid)));
369
- }
370
-
371
- @return $_return;
372
- }
373
-
374
-
375
- // Get Debug
376
- // ---------
377
- // Return the value of a debug setting
378
- // - $key: <setting>
379
- @function debug-get(
380
- $key,
381
- $grid: $susy
382
- ) {
383
- $key: join(debug, $key, space);
384
- @return susy-get($key, $grid);
385
- }