susy 2.2.14 → 3.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
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
- }