jekyll-theme-basically-basic 1.1.3 → 1.2.0

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -12
  3. data/LICENSE.md +33 -21
  4. data/README.md +33 -17
  5. data/_includes/contact-list.html +1 -1
  6. data/_includes/head.html +2 -2
  7. data/_includes/navigation.html +2 -2
  8. data/_layouts/default.html +2 -2
  9. data/_layouts/home.html +1 -1
  10. data/_sass/basically-basic.scss +7 -9
  11. data/_sass/basically-basic/_entries.scss +152 -155
  12. data/_sass/basically-basic/_functions.scss +2 -0
  13. data/_sass/basically-basic/_layout.scss +7 -15
  14. data/_sass/basically-basic/_mixins.scss +5 -7
  15. data/_sass/basically-basic/_sidebar.scss +3 -2
  16. data/_sass/basically-basic/_syntax-highlighting.scss +314 -127
  17. data/_sass/basically-basic/_variables.scss +104 -84
  18. data/_sass/basically-basic/{mixins → functions}/_color.scss +0 -0
  19. data/_sass/basically-basic/{mixins → functions}/_fluid-type.scss +0 -0
  20. data/_sass/basically-basic/themes/_soft.scss +30 -12
  21. data/_sass/basically-basic/themes/_steel.scss +30 -12
  22. data/_sass/basically-basic/vendor/{_breakpoint.scss → breakpoint/_breakpoint.scss} +7 -7
  23. data/_sass/basically-basic/vendor/susy/_su.scss +1 -4
  24. data/_sass/basically-basic/vendor/susy/_susy-prefix.scss +13 -0
  25. data/_sass/basically-basic/vendor/susy/_susy.scss +5 -0
  26. data/_sass/basically-basic/vendor/susy/plugins/_svg-grid.scss +5 -0
  27. data/_sass/basically-basic/vendor/susy/plugins/svg-grid/_prefix.scss +7 -0
  28. data/_sass/basically-basic/vendor/susy/plugins/svg-grid/_svg-api.scss +114 -0
  29. data/_sass/basically-basic/vendor/susy/plugins/svg-grid/_svg-grid-math.scss +67 -0
  30. data/_sass/basically-basic/vendor/susy/plugins/svg-grid/_svg-settings.scss +14 -0
  31. data/_sass/basically-basic/vendor/susy/plugins/svg-grid/_svg-unprefix.scss +18 -0
  32. data/_sass/basically-basic/vendor/susy/plugins/svg-grid/_svg-utilities.scss +133 -0
  33. data/_sass/basically-basic/vendor/susy/susy/_api.scss +318 -0
  34. data/_sass/basically-basic/vendor/susy/susy/_normalize.scss +261 -0
  35. data/_sass/basically-basic/vendor/susy/susy/_parse.scss +163 -0
  36. data/_sass/basically-basic/vendor/susy/susy/_settings.scss +329 -0
  37. data/_sass/basically-basic/vendor/susy/susy/_su-math.scss +441 -0
  38. data/_sass/basically-basic/vendor/susy/susy/_su-validate.scss +213 -0
  39. data/_sass/basically-basic/vendor/susy/susy/_syntax-helpers.scss +191 -0
  40. data/_sass/basically-basic/vendor/susy/susy/_unprefix.scss +56 -0
  41. data/_sass/basically-basic/vendor/susy/susy/_utilities.scss +167 -0
  42. data/assets/javascripts/main.js +2 -2
  43. metadata +25 -59
  44. data/_sass/basically-basic/vendor/_su.scss +0 -4
  45. data/_sass/basically-basic/vendor/_susy.scss +0 -4
  46. data/_sass/basically-basic/vendor/_susyone.scss +0 -4
  47. data/_sass/basically-basic/vendor/susy/language/_susy.scss +0 -24
  48. data/_sass/basically-basic/vendor/susy/language/_susyone.scss +0 -13
  49. data/_sass/basically-basic/vendor/susy/language/susy/_background.scss +0 -385
  50. data/_sass/basically-basic/vendor/susy/language/susy/_bleed.scss +0 -200
  51. data/_sass/basically-basic/vendor/susy/language/susy/_box-sizing.scss +0 -47
  52. data/_sass/basically-basic/vendor/susy/language/susy/_breakpoint-plugin.scss +0 -185
  53. data/_sass/basically-basic/vendor/susy/language/susy/_container.scss +0 -81
  54. data/_sass/basically-basic/vendor/susy/language/susy/_context.scss +0 -36
  55. data/_sass/basically-basic/vendor/susy/language/susy/_gallery.scss +0 -94
  56. data/_sass/basically-basic/vendor/susy/language/susy/_grids.scss +0 -64
  57. data/_sass/basically-basic/vendor/susy/language/susy/_gutters.scss +0 -154
  58. data/_sass/basically-basic/vendor/susy/language/susy/_isolate.scss +0 -77
  59. data/_sass/basically-basic/vendor/susy/language/susy/_margins.scss +0 -94
  60. data/_sass/basically-basic/vendor/susy/language/susy/_padding.scss +0 -74
  61. data/_sass/basically-basic/vendor/susy/language/susy/_rows.scss +0 -138
  62. data/_sass/basically-basic/vendor/susy/language/susy/_settings.scss +0 -216
  63. data/_sass/basically-basic/vendor/susy/language/susy/_span.scss +0 -163
  64. data/_sass/basically-basic/vendor/susy/language/susy/_validation.scss +0 -16
  65. data/_sass/basically-basic/vendor/susy/language/susyone/_background.scss +0 -18
  66. data/_sass/basically-basic/vendor/susy/language/susyone/_functions.scss +0 -377
  67. data/_sass/basically-basic/vendor/susy/language/susyone/_grid.scss +0 -312
  68. data/_sass/basically-basic/vendor/susy/language/susyone/_isolation.scss +0 -51
  69. data/_sass/basically-basic/vendor/susy/language/susyone/_margin.scss +0 -93
  70. data/_sass/basically-basic/vendor/susy/language/susyone/_media.scss +0 -105
  71. data/_sass/basically-basic/vendor/susy/language/susyone/_padding.scss +0 -92
  72. data/_sass/basically-basic/vendor/susy/language/susyone/_settings.scss +0 -60
  73. data/_sass/basically-basic/vendor/susy/output/_float.scss +0 -9
  74. data/_sass/basically-basic/vendor/susy/output/_shared.scss +0 -15
  75. data/_sass/basically-basic/vendor/susy/output/_support.scss +0 -9
  76. data/_sass/basically-basic/vendor/susy/output/float/_container.scss +0 -16
  77. data/_sass/basically-basic/vendor/susy/output/float/_end.scss +0 -40
  78. data/_sass/basically-basic/vendor/susy/output/float/_isolate.scss +0 -22
  79. data/_sass/basically-basic/vendor/susy/output/float/_span.scss +0 -35
  80. data/_sass/basically-basic/vendor/susy/output/shared/_background.scss +0 -26
  81. data/_sass/basically-basic/vendor/susy/output/shared/_container.scss +0 -21
  82. data/_sass/basically-basic/vendor/susy/output/shared/_direction.scss +0 -42
  83. data/_sass/basically-basic/vendor/susy/output/shared/_inspect.scss +0 -25
  84. data/_sass/basically-basic/vendor/susy/output/shared/_margins.scss +0 -23
  85. data/_sass/basically-basic/vendor/susy/output/shared/_output.scss +0 -14
  86. data/_sass/basically-basic/vendor/susy/output/shared/_padding.scss +0 -23
  87. data/_sass/basically-basic/vendor/susy/output/support/_background.scss +0 -58
  88. data/_sass/basically-basic/vendor/susy/output/support/_box-sizing.scss +0 -19
  89. data/_sass/basically-basic/vendor/susy/output/support/_clearfix.scss +0 -18
  90. data/_sass/basically-basic/vendor/susy/output/support/_prefix.scss +0 -19
  91. data/_sass/basically-basic/vendor/susy/output/support/_rem.scss +0 -22
  92. data/_sass/basically-basic/vendor/susy/output/support/_support.scss +0 -85
  93. data/_sass/basically-basic/vendor/susy/su/_grid.scss +0 -103
  94. data/_sass/basically-basic/vendor/susy/su/_settings.scss +0 -73
  95. data/_sass/basically-basic/vendor/susy/su/_utilities.scss +0 -111
  96. data/_sass/basically-basic/vendor/susy/su/_validation.scss +0 -57
@@ -1,4 +0,0 @@
1
- // Su
2
- // ==
3
-
4
- @import 'susy/su';
@@ -1,4 +0,0 @@
1
- // Susy
2
- // ====
3
-
4
- @import 'susy/language/susy';
@@ -1,4 +0,0 @@
1
- // Susy
2
- // ====
3
-
4
- @import 'susy/language/susyone';
@@ -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
- }
@@ -1,200 +0,0 @@
1
- // Bleed Syntax
2
- // ============
3
-
4
- // Bleed
5
- // -----
6
- // Add negative margins, and equal positive padding to create bleed.
7
- // - $bleed : <span>
8
- @mixin bleed(
9
- $bleed: 0 gutter()
10
- ) {
11
- $inspect : $bleed;
12
- $output : get-bleed($bleed);
13
-
14
- @if susy-get(global-box-sizing) != content-box {
15
- $output: map-merge((box-sizing: content-box), $output);
16
- }
17
-
18
- @include susy-inspect(bleed, $inspect);
19
- @include output($output);
20
- }
21
-
22
-
23
- // Bleed-x
24
- // -------
25
- // Shortcut for horizontal bleed.
26
- // - $bleed : <span>
27
- @mixin bleed-x(
28
- $bleed: gutter()
29
- ) {
30
- $bleed : parse-span($bleed);
31
- $trbl : susy-get(span, $bleed);
32
-
33
- @if length($trbl) == 1 {
34
- $bleed: map-merge($bleed, (span: 0 nth($trbl, 1)));
35
- } @else if length($trbl) == 2 {
36
- $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1)));
37
- } @else {
38
- @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.';
39
- }
40
-
41
- @include bleed($bleed);
42
- }
43
-
44
-
45
- // Bleed-y
46
- // -------
47
- // Shortcut for vertical bleed.
48
- // - $bleed : <span>
49
- @mixin bleed-y(
50
- $bleed: if(function-exists(rhythm), rhythm(1), 1em)
51
- ) {
52
- $bleed : parse-span($bleed);
53
- $trbl : susy-get(span, $bleed);
54
-
55
- @if length($trbl) == 1 {
56
- $bleed: map-merge($bleed, (span: nth($trbl, 1) 0));
57
- } @else if length($trbl) == 2 {
58
- $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0));
59
- } @else {
60
- @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.';
61
- }
62
-
63
- @include bleed($bleed);
64
- }
65
-
66
-
67
- // Get Bleed
68
- // ---------
69
- // Return bleed output values
70
- // - $bleed: <span>
71
- @function get-bleed(
72
- $bleed
73
- ) {
74
- $bleed : map-merge((spread: wide), parse-span($bleed));
75
- $trbl : susy-get(span, $bleed);
76
- $short : null;
77
- $output : ();
78
-
79
- @for $i from 1 through length($trbl) {
80
- $this: nth($trbl, $i);
81
- $new: ();
82
- $margin: null;
83
- $padding: null;
84
- $padding-x: null;
85
-
86
- @if $this > 0 {
87
- $this: map-merge($bleed, (span: $this));
88
- $margin: span($this);
89
- $padding: $margin;
90
- $padding-x: $padding;
91
- }
92
-
93
- @if $margin and $margin > 0 {
94
- $margin: - $margin;
95
-
96
- @if is-inside($this) {
97
- $gutter: gutter($this);
98
- $join: if($gutter and comparable($padding, $gutter), true, false);
99
- $padding-x: if($join and $padding > 0, $padding + $gutter, $padding);
100
- }
101
- }
102
-
103
- @if $i == 1 {
104
- $new: (
105
- margin-top: $margin,
106
- padding-top: $padding,
107
- margin-right: $margin,
108
- padding-right: $padding-x,
109
- margin-bottom: $margin,
110
- padding-bottom: $padding,
111
- margin-left: $margin,
112
- padding-left: $padding-x,
113
- );
114
- } @else if $i == 2 {
115
- $new: (
116
- margin-right: $margin,
117
- padding-right: $padding-x,
118
- margin-left: $margin,
119
- padding-left: $padding-x,
120
- );
121
- } @else if $i == 3 {
122
- $new: (
123
- margin-bottom: $margin,
124
- padding-bottom: $padding,
125
- );
126
- } @else if $i == 4 {
127
- $new: (
128
- margin-left: $margin,
129
- padding-left: $padding-x,
130
- );
131
- }
132
-
133
- $output: map-merge($output, $new);
134
- }
135
-
136
- @each $prop, $value in $output {
137
- $output: if($value == 0, map-merge($output, ($prop: null)), $output);
138
- }
139
-
140
- @return bleed-shorthand($output);
141
- }
142
-
143
- // Bleed Shorthand
144
- // ---------------
145
- // Convert bleed output into shorthand when possible.
146
- // - $bleed: <output map>
147
- @function bleed-shorthand(
148
- $bleed
149
- ) {
150
- $margin: ();
151
- $padding: ();
152
- $return: ();
153
-
154
- @each $key, $value in $bleed {
155
- @if str-index($key, margin) {
156
- $margin: map-merge($margin, ($key: $value));
157
- } @else if str-index($key, padding) > 0 {
158
- $padding: map-merge($padding, ($key: $value));
159
- }
160
- }
161
-
162
- $props: (
163
- margin: $margin,
164
- padding: $padding,
165
- );
166
-
167
- @each $name, $map in $props {
168
- $four: if(length(map-keys($map)) == 4, true, false);
169
- $null: if(index(map-values($map), null), true, false);
170
-
171
- @if $four and not($null) {
172
- $top: map-get($map, '#{$name}-top');
173
- $right: map-get($map, '#{$name}-right');
174
- $bottom: map-get($map, '#{$name}-bottom');
175
- $left: map-get($map, '#{$name}-left');
176
-
177
- $tb: if($top == $bottom, $top, null);
178
- $rl: if($right == $left, $right, null);
179
- $all: if($tb == $rl, $tb, null);
180
-
181
- $new: if($all, $all, null);
182
-
183
- @if not($new) {
184
- @if $tb and $rl {
185
- $new: $tb $rl;
186
- } @else if $rl {
187
- $new: $top $rl $bottom;
188
- } @else {
189
- $new: $top $right $bottom $left;
190
- }
191
- }
192
-
193
- $return: map-merge($return, ($name: $new));
194
- } @else {
195
- $return: map-merge($return, $map);
196
- }
197
- }
198
-
199
- @return $return;
200
- }