susy 1.0.9 → 2.2.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +1 -1
- data/README.md +20 -115
- data/VERSION +1 -1
- data/docs/changelog.rst +783 -0
- data/lib/compass-susy.rb +1 -0
- data/lib/susy.rb +14 -4
- data/sass/_su.scss +4 -0
- data/sass/_susy.scss +3 -15
- data/sass/_susyone.scss +4 -0
- data/sass/susy/_su.scss +7 -0
- data/sass/susy/language/_susy.scss +24 -0
- data/sass/susy/language/_susyone.scss +13 -0
- data/sass/susy/language/susy/_background.scss +385 -0
- data/sass/susy/language/susy/_bleed.scss +200 -0
- data/sass/susy/language/susy/_box-sizing.scss +47 -0
- data/sass/susy/language/susy/_breakpoint-plugin.scss +185 -0
- data/sass/susy/language/susy/_container.scss +81 -0
- data/sass/susy/language/susy/_context.scss +36 -0
- data/sass/susy/language/susy/_gallery.scss +94 -0
- data/sass/susy/language/susy/_grids.scss +64 -0
- data/sass/susy/language/susy/_gutters.scss +154 -0
- data/sass/susy/language/susy/_isolate.scss +77 -0
- data/sass/susy/language/susy/_margins.scss +94 -0
- data/sass/susy/language/susy/_padding.scss +74 -0
- data/sass/susy/language/susy/_rows.scss +138 -0
- data/sass/susy/language/susy/_settings.scss +216 -0
- data/sass/susy/language/susy/_span.scss +163 -0
- data/sass/susy/language/susy/_validation.scss +16 -0
- data/sass/susy/{_background.scss → language/susyone/_background.scss} +0 -0
- data/sass/susy/{_functions.scss → language/susyone/_functions.scss} +23 -22
- data/sass/susy/{_grid.scss → language/susyone/_grid.scss} +76 -50
- data/sass/susy/{_isolation.scss → language/susyone/_isolation.scss} +0 -0
- data/sass/susy/{_margin.scss → language/susyone/_margin.scss} +0 -0
- data/sass/susy/{_media.scss → language/susyone/_media.scss} +26 -33
- data/sass/susy/{_padding.scss → language/susyone/_padding.scss} +0 -0
- data/sass/susy/{_settings.scss → language/susyone/_settings.scss} +4 -0
- data/sass/susy/output/_float.scss +9 -0
- data/sass/susy/output/_shared.scss +15 -0
- data/sass/susy/output/_support.scss +9 -0
- data/sass/susy/output/float/_container.scss +16 -0
- data/sass/susy/output/float/_end.scss +40 -0
- data/sass/susy/output/float/_isolate.scss +22 -0
- data/sass/susy/output/float/_span.scss +35 -0
- data/sass/susy/output/shared/_background.scss +26 -0
- data/sass/susy/output/shared/_container.scss +21 -0
- data/sass/susy/output/shared/_direction.scss +42 -0
- data/sass/susy/output/shared/_inspect.scss +25 -0
- data/sass/susy/output/shared/_margins.scss +23 -0
- data/sass/susy/output/shared/_output.scss +14 -0
- data/sass/susy/output/shared/_padding.scss +23 -0
- data/sass/susy/output/support/_background.scss +58 -0
- data/sass/susy/output/support/_box-sizing.scss +19 -0
- data/sass/susy/output/support/_clearfix.scss +18 -0
- data/sass/susy/output/support/_prefix.scss +19 -0
- data/sass/susy/output/support/_rem.scss +22 -0
- data/sass/susy/output/support/_support.scss +95 -0
- data/sass/susy/su/_grid.scss +103 -0
- data/sass/susy/su/_settings.scss +73 -0
- data/sass/susy/su/_utilities.scss +111 -0
- data/sass/susy/su/_validation.scss +57 -0
- data/templates/project/_grids.scss +9 -0
- data/templates/project/manifest.rb +6 -10
- data/templates/project/style.scss +4 -0
- metadata +106 -111
- data/CHANGELOG.mkdn +0 -296
- data/Manifest +0 -39
- data/Rakefile +0 -19
- data/sass/susy/_support.scss +0 -198
- data/sass/susy/_units.scss +0 -159
- data/susy.gemspec +0 -35
- data/templates/project/_base.scss +0 -14
- data/templates/project/screen.scss +0 -12
- data/test/config.rb +0 -10
- data/test/css/background.css +0 -16
- data/test/css/bleed.css +0 -20
- data/test/css/functions.css +0 -7
- data/test/css/grid.css +0 -134
- data/test/css/isolation.css +0 -46
- data/test/css/margin.css +0 -20
- data/test/css/media.css +0 -101
- data/test/css/padding.css +0 -12
- data/test/scss/background.scss +0 -11
- data/test/scss/bleed.scss +0 -19
- data/test/scss/functions.scss +0 -15
- data/test/scss/grid.scss +0 -77
- data/test/scss/isolation.scss +0 -19
- data/test/scss/margin.scss +0 -27
- data/test/scss/media.scss +0 -50
- data/test/scss/padding.scss +0 -19
@@ -0,0 +1,36 @@
|
|
1
|
+
// Context Syntax
|
2
|
+
// ==============
|
3
|
+
|
4
|
+
// Nested [function]
|
5
|
+
// -----------------
|
6
|
+
// Return a subset grid for nested context.
|
7
|
+
// - $context : <span>
|
8
|
+
@function nested(
|
9
|
+
$context
|
10
|
+
) {
|
11
|
+
$context : parse-span($context);
|
12
|
+
$span : susy-get(span, $context);
|
13
|
+
$location : get-location($context);
|
14
|
+
$columns : susy-get(columns, $context);
|
15
|
+
|
16
|
+
@return susy-slice($span, $location, $columns);
|
17
|
+
}
|
18
|
+
|
19
|
+
// Nested [mixin]
|
20
|
+
// --------------
|
21
|
+
// Use a subset grid for a nested context
|
22
|
+
// - $context : <span>
|
23
|
+
// - @content : <content>
|
24
|
+
@mixin nested(
|
25
|
+
$context
|
26
|
+
) {
|
27
|
+
$inspect : $context;
|
28
|
+
$context : parse-span($context);
|
29
|
+
$old : susy-get(columns);
|
30
|
+
$susy : map-merge($susy, (columns: nested($context))) !global;
|
31
|
+
|
32
|
+
@include susy-inspect(nested, $inspect);
|
33
|
+
@content;
|
34
|
+
|
35
|
+
$susy : map-merge($susy, (columns: $old)) !global;
|
36
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
// Gallery Syntax
|
2
|
+
// ==============
|
3
|
+
|
4
|
+
// Gallery
|
5
|
+
// -------
|
6
|
+
// Create an isolated gallery
|
7
|
+
// - $span : <span>
|
8
|
+
// - [$selector] : child | of-type
|
9
|
+
@mixin gallery(
|
10
|
+
$span,
|
11
|
+
$selector: child
|
12
|
+
) {
|
13
|
+
$inspect : $span;
|
14
|
+
$span : parse-span($span);
|
15
|
+
$span : map-merge($span, (location: 1));
|
16
|
+
|
17
|
+
$n : susy-get(span, $span);
|
18
|
+
$columns : susy-get(columns, $span);
|
19
|
+
$context : susy-count($columns);
|
20
|
+
$flow : susy-get(flow, $span);
|
21
|
+
|
22
|
+
$inside : is-inside($span);
|
23
|
+
$from : from($flow);
|
24
|
+
$line : floor($context / $n);
|
25
|
+
$symmetrical : is-symmetrical($columns);
|
26
|
+
|
27
|
+
$output: (
|
28
|
+
width : null,
|
29
|
+
float : from,
|
30
|
+
margin-before : null,
|
31
|
+
margin-after : null,
|
32
|
+
padding-before : null,
|
33
|
+
padding-after : null,
|
34
|
+
flow : $flow,
|
35
|
+
);
|
36
|
+
|
37
|
+
@if $inside {
|
38
|
+
$gutters: get-gutters($span);
|
39
|
+
$output: map-merge($output, (
|
40
|
+
padding-before: map-get($gutters, before),
|
41
|
+
padding-after: map-get($gutters, after),
|
42
|
+
));
|
43
|
+
}
|
44
|
+
|
45
|
+
@if $symmetrical {
|
46
|
+
$output: map-merge($output, (width: get-span-width($span)));
|
47
|
+
}
|
48
|
+
|
49
|
+
$box : susy-get(box-sizing, $span);
|
50
|
+
$global-box : if(susy-get(global-box-sizing) == 'border-box', true, false);
|
51
|
+
|
52
|
+
@include susy-inspect(gallery, $inspect);
|
53
|
+
|
54
|
+
// Collective Output
|
55
|
+
@if $box == border-box or ($inside and not($box) and not($global-box)) {
|
56
|
+
@include output((box-sizing: border-box));
|
57
|
+
} @else if $box == content-box {
|
58
|
+
@include output((box-sizing: content-box));
|
59
|
+
}
|
60
|
+
|
61
|
+
@include float-span-output($output...);
|
62
|
+
|
63
|
+
// Individual Loop
|
64
|
+
@for $item from 1 through $line {
|
65
|
+
$nth: '#{$line}n + #{$item}';
|
66
|
+
&:nth-#{$selector}(#{$nth}) {
|
67
|
+
// Individual Prep
|
68
|
+
$output: (
|
69
|
+
width : if($symmetrical, null, get-span-width($span)),
|
70
|
+
float : null,
|
71
|
+
margin-before : get-isolation($span),
|
72
|
+
margin-after : -100%,
|
73
|
+
padding-before : null,
|
74
|
+
padding-after : null,
|
75
|
+
flow : $flow,
|
76
|
+
);
|
77
|
+
|
78
|
+
// Individual Output
|
79
|
+
@include float-span-output($output...);
|
80
|
+
|
81
|
+
@if get-edge($span) == first {
|
82
|
+
@include break;
|
83
|
+
@include first($span);
|
84
|
+
} @else {
|
85
|
+
@include nobreak;
|
86
|
+
}
|
87
|
+
|
88
|
+
// Individual Location Increment
|
89
|
+
$location: get-location($span) + $n;
|
90
|
+
$location: if($location > $context, 1, $location);
|
91
|
+
$span: map-merge($span, (location: $location));
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
// Grid Syntax
|
2
|
+
// ===========
|
3
|
+
|
4
|
+
|
5
|
+
// Layout
|
6
|
+
// ------
|
7
|
+
// Set a new layout using a shorthand
|
8
|
+
// - $layout: <settings>
|
9
|
+
// - $clean: boolean
|
10
|
+
@mixin layout(
|
11
|
+
$layout,
|
12
|
+
$clean: false
|
13
|
+
) {
|
14
|
+
$inspect : $layout;
|
15
|
+
$susy : _get-layout($layout, $clean) !global;
|
16
|
+
|
17
|
+
@include susy-inspect(layout, $inspect);
|
18
|
+
}
|
19
|
+
|
20
|
+
|
21
|
+
// Use Grid
|
22
|
+
// --------
|
23
|
+
// Use an arbitrary layout for a section of code
|
24
|
+
// - $layout: <settings>
|
25
|
+
// - $clean: boolean
|
26
|
+
@mixin with-layout(
|
27
|
+
$layout,
|
28
|
+
$clean: false
|
29
|
+
) {
|
30
|
+
$inspect : $layout;
|
31
|
+
$old : $susy;
|
32
|
+
$susy : _get-layout($layout, $clean) !global;
|
33
|
+
|
34
|
+
@include susy-inspect(with-layout, $inspect);
|
35
|
+
|
36
|
+
@content;
|
37
|
+
|
38
|
+
$susy: $old !global;
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
// Layout
|
43
|
+
// ------
|
44
|
+
// Return a parsed layout map based on shorthand syntax
|
45
|
+
// - $layout: <settings>
|
46
|
+
@function layout(
|
47
|
+
$layout: $susy
|
48
|
+
) {
|
49
|
+
@return parse-grid($layout);
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
// Get Layout
|
54
|
+
// ----------
|
55
|
+
// Return a new layout based on current and given settings
|
56
|
+
// - $layout: <settings>
|
57
|
+
// - $clean: boolean
|
58
|
+
@function _get-layout(
|
59
|
+
$layout,
|
60
|
+
$clean: false
|
61
|
+
) {
|
62
|
+
$layout: layout($layout);
|
63
|
+
@return if($clean, $layout, _susy-deep-merge($susy, $layout));
|
64
|
+
}
|
@@ -0,0 +1,154 @@
|
|
1
|
+
// Gutter Syntax
|
2
|
+
// =============
|
3
|
+
|
4
|
+
|
5
|
+
// Gutters
|
6
|
+
// -------
|
7
|
+
// Set gutters on an element.
|
8
|
+
// - [$span] : <settings>
|
9
|
+
@mixin gutters(
|
10
|
+
$span: $susy
|
11
|
+
) {
|
12
|
+
$inspect : $span;
|
13
|
+
$span : parse-gutters($span);
|
14
|
+
$_gutters : get-gutters($span);
|
15
|
+
|
16
|
+
$_output: (
|
17
|
+
before: map-get($_gutters, before),
|
18
|
+
after: map-get($_gutters, after),
|
19
|
+
flow: susy-get(flow, $span),
|
20
|
+
);
|
21
|
+
|
22
|
+
@include susy-inspect(gutters, $inspect);
|
23
|
+
|
24
|
+
@if is-inside($span) {
|
25
|
+
@include padding-output($_output...);
|
26
|
+
} @else {
|
27
|
+
@include margin-output($_output...);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
@mixin gutter(
|
32
|
+
$span: $susy
|
33
|
+
) {
|
34
|
+
@include gutters($span);
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
// Gutter
|
39
|
+
// ------
|
40
|
+
// Return the width of a gutter.
|
41
|
+
// - [$span] : <settings>
|
42
|
+
@function gutter(
|
43
|
+
$span: $susy
|
44
|
+
) {
|
45
|
+
$span: parse-gutters($span);
|
46
|
+
|
47
|
+
$_gutters: get-gutters($span);
|
48
|
+
$_gutters: map-get($_gutters, before) or map-get($_gutters, after);
|
49
|
+
|
50
|
+
@return $_gutters;
|
51
|
+
}
|
52
|
+
|
53
|
+
@function gutters(
|
54
|
+
$span: $susy
|
55
|
+
) {
|
56
|
+
@return gutter($span);
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
// Get Gutter Width
|
61
|
+
// ----------------
|
62
|
+
// Return gutter width.
|
63
|
+
// - [$context]: <context>
|
64
|
+
@function get-gutter-width(
|
65
|
+
$context: $susy
|
66
|
+
) {
|
67
|
+
$context : parse-gutters($context);
|
68
|
+
|
69
|
+
$_gutters : susy-get(gutters, $context);
|
70
|
+
$_gutter : susy-get(gutter-override, $context);
|
71
|
+
|
72
|
+
@if $_gutters and ($_gutters > 0) and not($_gutter) {
|
73
|
+
$_column-width: susy-get(column-width, $context);
|
74
|
+
$_math: gutter-math($context);
|
75
|
+
@if $_math == static {
|
76
|
+
$_gutter: $_gutters * valid-column-math($_math, $_column-width);
|
77
|
+
} @else {
|
78
|
+
$_columns : susy-get(columns, $context);
|
79
|
+
$_spread : if(is-split($context), wide, susy-get(spread, $context));
|
80
|
+
$_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread));
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
$_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter);
|
85
|
+
|
86
|
+
@return $_gutter;
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
// Get Gutters
|
91
|
+
// -----------
|
92
|
+
// Return before and after gutter values.
|
93
|
+
// - [$context]: <context>
|
94
|
+
@function get-gutters(
|
95
|
+
$context: $susy
|
96
|
+
) {
|
97
|
+
$context : parse-gutters($context);
|
98
|
+
|
99
|
+
$_gutter-position : susy-get(gutter-position, $context);
|
100
|
+
$_gutter : get-gutter-width($context);
|
101
|
+
|
102
|
+
$_return : (before: null, after: null);
|
103
|
+
|
104
|
+
@if is-split($context) and $_gutter {
|
105
|
+
$_gutter: $_gutter / 2;
|
106
|
+
$_return: map-merge($_return, (before: $_gutter, after: $_gutter));
|
107
|
+
} @else {
|
108
|
+
$_return: map-merge($_return, ($_gutter-position: $_gutter));
|
109
|
+
}
|
110
|
+
|
111
|
+
@return $_return;
|
112
|
+
}
|
113
|
+
|
114
|
+
|
115
|
+
// Is Inside
|
116
|
+
// ---------
|
117
|
+
// Returns true if gutters are inside.
|
118
|
+
// $context: <context>
|
119
|
+
@function is-inside(
|
120
|
+
$context
|
121
|
+
) {
|
122
|
+
$_inside: inside inside-static;
|
123
|
+
$_gutter-position: susy-get(gutter-position, $context);
|
124
|
+
|
125
|
+
@return if(index($_inside, $_gutter-position), true, false);
|
126
|
+
}
|
127
|
+
|
128
|
+
|
129
|
+
// Is Split
|
130
|
+
// --------
|
131
|
+
// Returns true if gutters are split.
|
132
|
+
// $context: <context>
|
133
|
+
@function is-split(
|
134
|
+
$context
|
135
|
+
) {
|
136
|
+
$_split: split inside inside-static;
|
137
|
+
$_gutter-position: susy-get(gutter-position, $context);
|
138
|
+
|
139
|
+
@return if(index($_split, $_gutter-position), true, false);
|
140
|
+
}
|
141
|
+
|
142
|
+
|
143
|
+
// Gutter Math
|
144
|
+
// -----------
|
145
|
+
// Return the math to use for gutter calculations
|
146
|
+
// $context: <context>
|
147
|
+
@function gutter-math(
|
148
|
+
$context: $susy
|
149
|
+
) {
|
150
|
+
$_return : susy-get(math, $context);
|
151
|
+
$_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return);
|
152
|
+
|
153
|
+
@return $_return;
|
154
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
// Isolation Syntax
|
2
|
+
// ================
|
3
|
+
|
4
|
+
|
5
|
+
// Isolate [Mixin]
|
6
|
+
// ---------------
|
7
|
+
// Set isolation as an override.
|
8
|
+
// - $location: <span>
|
9
|
+
@mixin isolate(
|
10
|
+
$isolate: 1
|
11
|
+
) {
|
12
|
+
$inspect: $isolate;
|
13
|
+
|
14
|
+
$output: (
|
15
|
+
push: isolate($isolate),
|
16
|
+
flow: susy-get(flow, $isolate),
|
17
|
+
);
|
18
|
+
|
19
|
+
@include susy-inspect(isolate, $inspect);
|
20
|
+
@include isolate-output($output...);
|
21
|
+
}
|
22
|
+
|
23
|
+
|
24
|
+
// Isolate [function]
|
25
|
+
// ------------------
|
26
|
+
// Return an isolation offset width.
|
27
|
+
// - $location: <span>
|
28
|
+
@function isolate(
|
29
|
+
$isolate: 1
|
30
|
+
) {
|
31
|
+
$isolate: parse-span($isolate);
|
32
|
+
$isolation: susy-get(span, $isolate);
|
33
|
+
|
34
|
+
@if $isolation and not(get-location($isolate)) {
|
35
|
+
$new: (
|
36
|
+
span: null,
|
37
|
+
location: $isolation,
|
38
|
+
);
|
39
|
+
$isolate: map-merge($isolate, $new);
|
40
|
+
}
|
41
|
+
|
42
|
+
@return get-isolation($isolate);
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
// Get Isolation
|
47
|
+
// -------------
|
48
|
+
// Return the isolation offset width
|
49
|
+
// - $input: <map>
|
50
|
+
@function get-isolation(
|
51
|
+
$input
|
52
|
+
) {
|
53
|
+
$location : get-location($input);
|
54
|
+
$columns : susy-get(columns, $input);
|
55
|
+
$width : null;
|
56
|
+
|
57
|
+
@if type-of($location) == number and not(unitless($location)) {
|
58
|
+
$width: $location;
|
59
|
+
} @else if $location {
|
60
|
+
$push: $location - 1;
|
61
|
+
@if $push > 0 {
|
62
|
+
$push: map-merge($input, (
|
63
|
+
span: $push,
|
64
|
+
location: 1,
|
65
|
+
spread: wide,
|
66
|
+
));
|
67
|
+
$width: get-span-width($push);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
@if susy-get(gutter-position, $input) == split
|
72
|
+
and susy-get(gutters, $input) > 0 {
|
73
|
+
$width: if($width == null, gutters($input), $width + gutters($input));
|
74
|
+
}
|
75
|
+
|
76
|
+
@return $width or 0;
|
77
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
// Margin Syntax
|
2
|
+
// =============
|
3
|
+
|
4
|
+
// Pre
|
5
|
+
// ---
|
6
|
+
// Add spanning-margins before an element.
|
7
|
+
// - $span : <span>
|
8
|
+
@mixin pre(
|
9
|
+
$span
|
10
|
+
) {
|
11
|
+
$inspect: $span;
|
12
|
+
$span : map-merge((spread: wide), parse-span($span));
|
13
|
+
$flow : susy-get(flow, $span);
|
14
|
+
$split : if(susy-get(gutter-position, $span) == split, true, false);
|
15
|
+
$gutter : gutter($span);
|
16
|
+
$span : span($span);
|
17
|
+
$width : if($split and $gutter, $span + $gutter, $span);
|
18
|
+
|
19
|
+
@include susy-inspect(pre, $inspect);
|
20
|
+
@include margin-output($width, null, $flow);
|
21
|
+
}
|
22
|
+
|
23
|
+
// Post
|
24
|
+
// ----
|
25
|
+
// Add spanning-margins after an element.
|
26
|
+
// - $span : <span>
|
27
|
+
@mixin post(
|
28
|
+
$span
|
29
|
+
) {
|
30
|
+
$inspect : $span;
|
31
|
+
$span : map-merge((spread: wide), parse-span($span));
|
32
|
+
$flow : susy-get(flow, $span);
|
33
|
+
$split : if(susy-get(gutter-position, $span) == split, true, false);
|
34
|
+
$width : if($split, span($span) + gutter($span), span($span));
|
35
|
+
|
36
|
+
@include susy-inspect(post, $inspect);
|
37
|
+
@include margin-output(null, $width, $flow);
|
38
|
+
}
|
39
|
+
|
40
|
+
// Push
|
41
|
+
// ----
|
42
|
+
// Simple synonymn for pre.
|
43
|
+
// - $span : <span>
|
44
|
+
@mixin push(
|
45
|
+
$span
|
46
|
+
) {
|
47
|
+
@include pre($span);
|
48
|
+
}
|
49
|
+
|
50
|
+
// Pull
|
51
|
+
// ----
|
52
|
+
// Add negative spanning-margins before an element.
|
53
|
+
// - $span : <span>
|
54
|
+
@mixin pull(
|
55
|
+
$span
|
56
|
+
) {
|
57
|
+
$inspect : $span;
|
58
|
+
$span : map-merge((spread: wide), parse-span($span));
|
59
|
+
$flow : susy-get(flow, $span);
|
60
|
+
$split : if(susy-get(gutter-position, $span) == split, true, false);
|
61
|
+
$width : if($split, 0 - span($span) + gutter($span), 0 - span($span));
|
62
|
+
|
63
|
+
@include susy-inspect(pull, $inspect);
|
64
|
+
@include margin-output($width, null, $flow);
|
65
|
+
}
|
66
|
+
|
67
|
+
// Squish
|
68
|
+
// ------
|
69
|
+
// Add spanning-margins before and after an element.
|
70
|
+
// - $pre : <span>
|
71
|
+
// - [$post] : <span>
|
72
|
+
@mixin squish(
|
73
|
+
$pre,
|
74
|
+
$post: false
|
75
|
+
) {
|
76
|
+
$inspect : ($pre, $post);
|
77
|
+
$pre : map-merge((spread: wide), parse-span($pre));
|
78
|
+
|
79
|
+
@if $post {
|
80
|
+
$post: map-merge((spread: wide), parse-span($post));
|
81
|
+
} @else {
|
82
|
+
$span: susy-get(span, $pre);
|
83
|
+
@if length($span) > 1 {
|
84
|
+
$pre: map-merge($pre, (span: nth($span, 1)));
|
85
|
+
$post: map-merge($pre, (span: nth($span, 2)));
|
86
|
+
} @else {
|
87
|
+
$post: $pre;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
@include susy-inspect(squish, $inspect);
|
92
|
+
@include pre($pre);
|
93
|
+
@include post($post);
|
94
|
+
}
|