susy 2.0.0.alpha.2 → 2.0.0.alpha.3
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.
- checksums.yaml +7 -0
- data/lib/susy.rb +0 -10
- data/sass/_susy.scss +2 -2
- data/sass/susy/_core.scss +3 -3
- data/sass/susy/_helpers.scss +2 -3
- data/sass/susy/_math.scss +2 -2
- data/sass/susy/_settings.scss +4 -39
- data/sass/susy/api/_float.scss +2 -2
- data/sass/susy/api/_shared.scss +2 -2
- data/sass/susy/api/float/_container.scss +9 -5
- data/sass/susy/api/float/_end.scss +8 -4
- data/sass/susy/api/float/_isolate.scss +7 -3
- data/sass/susy/api/float/_span.scss +18 -4
- data/sass/susy/api/shared/_container.scss +10 -6
- data/sass/susy/api/shared/_grid-background.scss +30 -7
- data/sass/susy/api/shared/_margins.scss +9 -5
- data/sass/susy/api/shared/_padding.scss +9 -5
- data/sass/susy/helpers/_direction.scss +11 -1
- data/sass/susy/helpers/_nth.scss +4 -0
- data/sass/susy/language/_shared.scss +2 -3
- data/sass/susy/language/_susy.scss +5 -4
- data/sass/susy/language/shared/_context.scss +10 -9
- data/sass/susy/language/shared/_settings.scss +181 -101
- data/sass/susy/language/susy/_background.scss +84 -75
- data/sass/susy/language/susy/_container.scss +57 -77
- data/sass/susy/language/susy/_gallery.scss +46 -67
- data/sass/susy/language/susy/_gutters.scss +117 -0
- data/sass/susy/language/susy/_isolate.scss +21 -14
- data/sass/susy/language/susy/_margins.scss +92 -0
- data/sass/susy/language/susy/_padding.scss +68 -0
- data/sass/susy/language/susy/_rows.scss +43 -15
- data/sass/susy/language/susy/_span.scss +198 -61
- data/sass/susy/language/susy1/_settings.scss +13 -23
- data/sass/susy/math/_columns.scss +26 -3
- data/sass/susy/math/_container.scss +17 -12
- data/sass/susy/math/_location.scss +13 -0
- metadata +8 -35
- data/sass/susy/helpers/_sass-lists.scss +0 -90
- data/sass/susy/language/susy/_functions.scss +0 -58
- data/sass/susy/language/susy/_math.scss +0 -153
@@ -0,0 +1,92 @@
|
|
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
|
+
$span : if(index($span, outer), $span, append($span, outer));
|
12
|
+
$flow : get-span-setting(flow, $span, parse);
|
13
|
+
$width : span($span);
|
14
|
+
|
15
|
+
@include margin-output($width, null, $flow);
|
16
|
+
}
|
17
|
+
|
18
|
+
// Post
|
19
|
+
// ----
|
20
|
+
// Add spanning-margins after an element.
|
21
|
+
// - $span : <span>
|
22
|
+
@mixin post(
|
23
|
+
$span
|
24
|
+
) {
|
25
|
+
$span : if(index($span, outer), $span, append($span, outer));
|
26
|
+
$flow : get-span-setting(flow, $span, parse);
|
27
|
+
$width : span($span);
|
28
|
+
|
29
|
+
@include margin-output(null, $width, $flow);
|
30
|
+
}
|
31
|
+
|
32
|
+
// Push
|
33
|
+
// ----
|
34
|
+
// Simple synonymn for pre.
|
35
|
+
// - $span : <span>
|
36
|
+
@mixin push(
|
37
|
+
$span
|
38
|
+
) {
|
39
|
+
@include pre($span);
|
40
|
+
}
|
41
|
+
|
42
|
+
// Pull
|
43
|
+
// ----
|
44
|
+
// Add negative spanning-margins before an element.
|
45
|
+
// - $span : <span>
|
46
|
+
@mixin pull(
|
47
|
+
$span
|
48
|
+
) {
|
49
|
+
$span : if(index($span, outer), $span, append($span, outer));
|
50
|
+
$flow : get-span-setting(flow, $span, parse);
|
51
|
+
$width : 0 - span($span);
|
52
|
+
|
53
|
+
@include margin-output($width, null, $flow);
|
54
|
+
}
|
55
|
+
|
56
|
+
// Squish
|
57
|
+
// ------
|
58
|
+
// Add spanning-margins before and after an element.
|
59
|
+
// - $pre : <span>
|
60
|
+
// - [$post] : <span>
|
61
|
+
@mixin squish(
|
62
|
+
$pre,
|
63
|
+
$post: $pre
|
64
|
+
) {
|
65
|
+
$pre : if(index($pre, outer), $pre, append($pre, outer));
|
66
|
+
$post : if(index($post, outer), $post, append($post, outer));
|
67
|
+
|
68
|
+
$get-pre : parse-span($pre);
|
69
|
+
$get-post : parse-span($post);
|
70
|
+
|
71
|
+
$flow : get-span-setting(flow, $get-pre);
|
72
|
+
$before : null;
|
73
|
+
$after : null;
|
74
|
+
|
75
|
+
// get the various contexts
|
76
|
+
$default-context : $columns $gutters;
|
77
|
+
$pre-context : get-span-setting(columns, $get-pre) get-span-setting(gutters, $get-pre);
|
78
|
+
$post-context : get-span-setting(columns, $get-post) get-span-setting(gutters, $get-post);
|
79
|
+
|
80
|
+
// if the contexts don't line up, and only the post has changed, we use it for both
|
81
|
+
@if $pre-context != $post-context and $default-context == $pre-context {
|
82
|
+
@include use-grid($post-context) {
|
83
|
+
$before: span($pre);
|
84
|
+
$after: span($post);
|
85
|
+
}
|
86
|
+
} @else {
|
87
|
+
$before: span($pre);
|
88
|
+
$after: span($post);
|
89
|
+
}
|
90
|
+
|
91
|
+
@include margin-output($before, $after, $flow);
|
92
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
// Padding Syntax
|
2
|
+
// ==============
|
3
|
+
|
4
|
+
// Prefix
|
5
|
+
// ------
|
6
|
+
// Add spanning-padding before an element.
|
7
|
+
// - $span : <span>
|
8
|
+
@mixin prefix(
|
9
|
+
$span
|
10
|
+
) {
|
11
|
+
$span : if(index($span, outer), $span, append($span, outer));
|
12
|
+
$flow : get-span-setting(flow, $span, parse);
|
13
|
+
$width : span($span);
|
14
|
+
|
15
|
+
@include padding-output($width, null, $flow);
|
16
|
+
}
|
17
|
+
|
18
|
+
// Suffix
|
19
|
+
// ------
|
20
|
+
// Add spanning-padding after an element.
|
21
|
+
// - $span : <span>
|
22
|
+
@mixin suffix(
|
23
|
+
$span
|
24
|
+
) {
|
25
|
+
$span : if(index($span, outer), $span, append($span, outer));
|
26
|
+
$flow : get-span-setting(flow, $span, parse);
|
27
|
+
$width : span($span);
|
28
|
+
|
29
|
+
@include padding-output(null, $width, $flow);
|
30
|
+
}
|
31
|
+
|
32
|
+
// Pad
|
33
|
+
// ---
|
34
|
+
// Add spanning-padding before and after an element.
|
35
|
+
// - $pre : <span>
|
36
|
+
// - [$post] : <span>
|
37
|
+
@mixin pad(
|
38
|
+
$pre,
|
39
|
+
$post: $pre
|
40
|
+
) {
|
41
|
+
$pre : if(index($pre, outer), $pre, append($pre, outer));
|
42
|
+
$post : if(index($post, outer), $post, append($post, outer));
|
43
|
+
|
44
|
+
$get-pre : parse-span($pre);
|
45
|
+
$get-post : parse-span($post);
|
46
|
+
|
47
|
+
$flow : get-span-setting(flow, $get-pre);
|
48
|
+
$before : null;
|
49
|
+
$after : null;
|
50
|
+
|
51
|
+
// get the various contexts
|
52
|
+
$default-context : $columns $gutters;
|
53
|
+
$pre-context : get-span-setting(columns, $get-pre) get-span-setting(gutters, $get-pre);
|
54
|
+
$post-context : get-span-setting(columns, $get-post) get-span-setting(gutters, $get-post);
|
55
|
+
|
56
|
+
// if the contexts don't line up, and only the post has changed, we use it for both
|
57
|
+
@if $pre-context != $post-context and $default-context == $pre-context {
|
58
|
+
@include use-grid($post-context) {
|
59
|
+
$before: span($pre);
|
60
|
+
$after: span($post);
|
61
|
+
}
|
62
|
+
} @else {
|
63
|
+
$before: span($pre);
|
64
|
+
$after: span($post);
|
65
|
+
}
|
66
|
+
|
67
|
+
@include padding-output($before, $after, $flow);
|
68
|
+
}
|
@@ -1,46 +1,63 @@
|
|
1
1
|
// Row Start & End
|
2
2
|
// ===============
|
3
3
|
|
4
|
+
// Row
|
5
|
+
// ---
|
4
6
|
// Apply to any layout element that should force a new layout row.
|
7
|
+
// - [$flow] : ltr | rtl
|
5
8
|
@mixin row(
|
6
9
|
$flow: $flow
|
7
10
|
) {
|
8
|
-
|
9
|
-
|
10
|
-
@if $flow == ltr or $flow == rtl {
|
11
|
-
$clear: from($flow);
|
12
|
-
}
|
13
|
-
|
14
|
-
clear: $clear;
|
11
|
+
@include pie-clearfix;
|
12
|
+
clear: from($flow);
|
15
13
|
}
|
16
14
|
|
15
|
+
// Unrow
|
16
|
+
// -----
|
17
17
|
// Cancel the row() effect, e.g. when using media queries.
|
18
|
+
// - [$flow] : ltr | rtl
|
18
19
|
@mixin unrow {
|
19
20
|
clear: none;
|
21
|
+
&:after {
|
22
|
+
content: none;
|
23
|
+
display: inline;
|
24
|
+
clear: none;
|
25
|
+
}
|
20
26
|
}
|
21
27
|
|
22
|
-
// First
|
23
|
-
//
|
24
|
-
|
28
|
+
// First
|
29
|
+
// -----
|
30
|
+
// - [$flow] : ltr | rtl
|
25
31
|
@mixin first(
|
26
32
|
$flow: $flow
|
27
33
|
) {
|
28
34
|
@include float-first($flow);
|
29
35
|
}
|
30
36
|
|
37
|
+
// Alpha
|
38
|
+
// -----
|
39
|
+
// - [$flow] : ltr | rtl
|
31
40
|
@mixin alpha(
|
32
41
|
$flow: $flow
|
33
42
|
) {
|
34
43
|
@include float-first($flow);
|
35
44
|
}
|
36
45
|
|
46
|
+
// Nth-First
|
47
|
+
// ---------
|
48
|
+
// - [$value] : first | last | only | <math>
|
49
|
+
// - [$type] : child | last-child | of-type | last-of-type
|
37
50
|
@mixin nth-first(
|
38
51
|
$value: first,
|
39
52
|
$type: child
|
40
53
|
) {
|
41
|
-
&:#{format-nth($value,$type)} { @include first(
|
54
|
+
&:#{format-nth($value,$type)} { @include first(); }
|
42
55
|
}
|
43
56
|
|
57
|
+
// Nth-Alpha
|
58
|
+
// ---------
|
59
|
+
// - [$value] : first | last | only | <math>
|
60
|
+
// - [$type] : child | last-child | of-type | last-of-type
|
44
61
|
@mixin nth-alpha(
|
45
62
|
$value: first,
|
46
63
|
$type: child
|
@@ -48,28 +65,39 @@
|
|
48
65
|
@include nth-first($value, $type);
|
49
66
|
}
|
50
67
|
|
51
|
-
// Last
|
52
|
-
//
|
53
|
-
|
68
|
+
// Last
|
69
|
+
// ----
|
70
|
+
// - [$flow] : ltr | rtl
|
54
71
|
@mixin last(
|
55
72
|
$flow: $flow
|
56
73
|
) {
|
57
74
|
@include float-last($flow);
|
58
75
|
}
|
59
76
|
|
77
|
+
// Omega
|
78
|
+
// -----
|
79
|
+
// - [$flow] : ltr | rtl
|
60
80
|
@mixin omega(
|
61
81
|
$flow: $flow
|
62
82
|
) {
|
63
83
|
@include float-last($flow);
|
64
84
|
}
|
65
85
|
|
86
|
+
// Nth-Last
|
87
|
+
// --------
|
88
|
+
// - [$value] : first | last | only | <math>
|
89
|
+
// - [$type] : child | last-child | of-type | last-of-type
|
66
90
|
@mixin nth-last(
|
67
91
|
$value: last,
|
68
92
|
$type: child
|
69
93
|
) {
|
70
|
-
&:#{format-nth($value,$type)} { @include last(
|
94
|
+
&:#{format-nth($value,$type)} { @include last(); }
|
71
95
|
}
|
72
96
|
|
97
|
+
// Nth-Omega
|
98
|
+
// ---------
|
99
|
+
// - [$value] : first | last | only | <math>
|
100
|
+
// - [$type] : child | last-child | of-type | last-of-type
|
73
101
|
@mixin nth-omega(
|
74
102
|
$value: last,
|
75
103
|
$type: child
|
@@ -1,14 +1,17 @@
|
|
1
|
-
// Span
|
2
|
-
//
|
1
|
+
// Span Syntax
|
2
|
+
// ===========
|
3
3
|
|
4
|
-
//
|
4
|
+
// Span [mixin]
|
5
|
+
// ------------
|
6
|
+
// Set a spanning element using shorthand syntax.
|
7
|
+
// - $span : <span>
|
5
8
|
@mixin span(
|
6
9
|
$span
|
7
10
|
) {
|
8
11
|
$span : parse-span($span);
|
9
12
|
$output : span-math($span...);
|
10
13
|
$box : get-span-setting(box-sizing, $span);
|
11
|
-
$inside : if(get-span-setting(gutter-
|
14
|
+
$inside : if(get-span-setting(gutter-position, $span) == inside, true, false);
|
12
15
|
|
13
16
|
@if $box == border-box or $inside {
|
14
17
|
@include box-sizing(border-box);
|
@@ -19,26 +22,51 @@
|
|
19
22
|
@include float-span-output($output...);
|
20
23
|
}
|
21
24
|
|
22
|
-
// Span
|
23
|
-
//
|
25
|
+
// Span [function]
|
26
|
+
// ---------------
|
27
|
+
// Return the width of a span.
|
28
|
+
// - $span : <span>
|
29
|
+
@function span(
|
30
|
+
$span
|
31
|
+
) {
|
32
|
+
$span : parse-span($span);
|
33
|
+
|
34
|
+
$width : get-span-setting(span, $span);
|
35
|
+
|
36
|
+
$this-location : get-span-setting(location, $span);
|
37
|
+
$this-columns : get-span-setting(columns, $span);
|
38
|
+
$this-gutters : get-span-setting(gutters, $span);
|
39
|
+
$this-column-width : get-span-setting(column-width, $span);
|
40
|
+
$this-layout-math : get-span-setting(layout-math, $span);
|
41
|
+
$this-gutter-position : get-span-setting(gutter-position, $span);
|
42
|
+
$outer : get-span-setting(outer, $span);
|
24
43
|
|
25
|
-
|
44
|
+
$width: get-span-width($width, $this-location, $this-columns, $this-gutters, $this-column-width, $this-layout-math, $this-gutter-position, $outer);
|
45
|
+
|
46
|
+
@return $width;
|
47
|
+
}
|
48
|
+
|
49
|
+
// Parse Span
|
50
|
+
// ----------
|
51
|
+
// Parse the span shortcut syntax.
|
52
|
+
// - $string : <span>
|
26
53
|
@function parse-span(
|
27
54
|
$string
|
28
55
|
) {
|
29
|
-
$new-span
|
30
|
-
$new-location
|
31
|
-
$new-context
|
32
|
-
$new-
|
33
|
-
$new-
|
34
|
-
$new-columns
|
35
|
-
$new-gutters
|
36
|
-
$new-column-width
|
37
|
-
$
|
38
|
-
$new-
|
39
|
-
$gutter-
|
40
|
-
|
41
|
-
|
56
|
+
$new-span : false;
|
57
|
+
$new-location : false;
|
58
|
+
$new-context : false;
|
59
|
+
$new-layout-method : false;
|
60
|
+
$new-layout-math : false;
|
61
|
+
$new-columns : false;
|
62
|
+
$new-gutters : false;
|
63
|
+
$new-column-width : false;
|
64
|
+
$outer : false;
|
65
|
+
$new-flow : false;
|
66
|
+
$new-gutter-position : false;
|
67
|
+
$gutter-override : false;
|
68
|
+
|
69
|
+
$is-container : false;
|
42
70
|
|
43
71
|
$i: 1;
|
44
72
|
|
@@ -58,18 +86,23 @@
|
|
58
86
|
$new-location: last;
|
59
87
|
}
|
60
88
|
|
61
|
-
//
|
89
|
+
// layout-method
|
62
90
|
@else if $value == isolate {
|
63
|
-
$new-
|
91
|
+
$new-layout-method: isolate;
|
64
92
|
} @else if $value == float {
|
65
|
-
$new-
|
93
|
+
$new-layout-method: float;
|
66
94
|
}
|
67
95
|
|
68
|
-
//
|
96
|
+
// layout-math | fluid
|
69
97
|
@else if $value == static {
|
70
|
-
$new-
|
98
|
+
$new-layout-math: static;
|
71
99
|
} @else if $value == fluid {
|
72
|
-
$new-
|
100
|
+
$new-layout-math: fluid;
|
101
|
+
}
|
102
|
+
|
103
|
+
// ltr | rtl
|
104
|
+
@else if $value == outer {
|
105
|
+
$outer: outer;
|
73
106
|
}
|
74
107
|
|
75
108
|
// ltr | rtl
|
@@ -81,19 +114,19 @@
|
|
81
114
|
|
82
115
|
// after | before | split | inside | no-gutters
|
83
116
|
@else if $value == after {
|
84
|
-
$new-gutter-
|
117
|
+
$new-gutter-position: after;
|
85
118
|
} @else if $value == before {
|
86
|
-
$new-gutter-
|
119
|
+
$new-gutter-position: before;
|
87
120
|
} @else if $value == split {
|
88
|
-
$new-gutter-
|
121
|
+
$new-gutter-position: split;
|
89
122
|
} @else if $value == inside {
|
90
|
-
$new-gutter-
|
91
|
-
} @else if $value == no-gutters {
|
92
|
-
$new-gutter-
|
123
|
+
$new-gutter-position: inside;
|
124
|
+
} @else if $value == no-gutter or $value == no-gutters {
|
125
|
+
$new-gutter-position: no-gutters;
|
93
126
|
}
|
94
127
|
|
95
128
|
// container
|
96
|
-
@if $value == container {
|
129
|
+
@else if $value == container {
|
97
130
|
$is-container: container;
|
98
131
|
}
|
99
132
|
|
@@ -132,7 +165,7 @@
|
|
132
165
|
// context
|
133
166
|
@if $of {
|
134
167
|
$i: $i + 1;
|
135
|
-
$new-context:
|
168
|
+
$new-context: ();
|
136
169
|
|
137
170
|
@while $of and $i <= length($string) {
|
138
171
|
$this: nth($string,$i);
|
@@ -151,44 +184,36 @@
|
|
151
184
|
|
152
185
|
// parse the context
|
153
186
|
@if $new-context {
|
154
|
-
$new-
|
155
|
-
$new-
|
156
|
-
$new-
|
187
|
+
$new-context : parse-grid($new-context);
|
188
|
+
$new-columns : get-setting(columns, $new-context);
|
189
|
+
$new-gutters : get-setting(gutters, $new-context);
|
190
|
+
$new-column-width : get-setting(column-width, $new-context);
|
157
191
|
}
|
158
192
|
|
159
193
|
// use global values for empty grid settings
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
$new-column-width: $column-width;
|
168
|
-
}
|
169
|
-
@if not $new-static {
|
170
|
-
$new-static: $static;
|
171
|
-
}
|
172
|
-
@if not $new-isolate {
|
173
|
-
$new-isolate: $isolate;
|
174
|
-
}
|
175
|
-
@if not $new-flow {
|
176
|
-
$new-flow: $flow;
|
177
|
-
}
|
178
|
-
@if not $new-gutter-place {
|
179
|
-
$new-gutter-place: $gutter-placement;
|
180
|
-
}
|
194
|
+
$new-columns : if($new-columns, $new-columns, $columns);
|
195
|
+
$new-gutters : if($new-gutters, $new-gutters, $gutters);
|
196
|
+
$new-column-width : if($new-column-width, $new-column-width, $column-width);
|
197
|
+
$new-layout-math : if($new-layout-math, $new-layout-math, $layout-math);
|
198
|
+
$new-layout-method : if($new-layout-method, $new-layout-method, $layout-method);
|
199
|
+
$new-flow : if($new-flow, $new-flow, $flow);
|
200
|
+
$new-gutter-position : if($new-gutter-position, $new-gutter-position, $gutter-position);
|
181
201
|
|
182
|
-
@return $new-span $new-location $new-columns $new-gutters $new-column-width $new-
|
202
|
+
@return $new-span, $new-location, $new-columns, $new-gutters, $new-column-width, $new-layout-method, $new-layout-math, $outer, $new-flow, $new-gutter-position, $is-container, $gutter-override;
|
183
203
|
}
|
184
204
|
|
185
|
-
//
|
205
|
+
// Get Span Setting
|
206
|
+
// ----------------
|
207
|
+
// Return one particular span setting from a list.
|
208
|
+
// - $setting : <keyword> (see $options below)
|
209
|
+
// - $span : <span>
|
210
|
+
// - $parse : <boolean>
|
186
211
|
@function get-span-setting(
|
187
212
|
$setting,
|
188
213
|
$span,
|
189
214
|
$parse: false
|
190
215
|
) {
|
191
|
-
$options : span location columns gutters column-width
|
216
|
+
$options : span location columns gutters column-width layout-method layout-math outer flow gutter-position is-container gutter-override;
|
192
217
|
$key : index($options, $setting);
|
193
218
|
$value : false;
|
194
219
|
|
@@ -202,3 +227,115 @@
|
|
202
227
|
|
203
228
|
@return $value;
|
204
229
|
}
|
230
|
+
|
231
|
+
// Span Math
|
232
|
+
// ---------
|
233
|
+
// Get all the span results.
|
234
|
+
// - $span : <length> | <number>
|
235
|
+
// - $location : first | last | <length> | <number>
|
236
|
+
// - [$columns] : <number> | <list>
|
237
|
+
// - [$gutters] : <ratio>
|
238
|
+
// - [$column-width] : <length>
|
239
|
+
// - [$layout-method] : float | isolate
|
240
|
+
// - [$layout-math] : fluid | static
|
241
|
+
// - [$outer] : <boolean>
|
242
|
+
// - [$flow] : ltr | rtl
|
243
|
+
// - [$gutter-position] : before | after | split | inside
|
244
|
+
// - [$is-container] : <boolean>
|
245
|
+
// - [$gutter-override] : <length>
|
246
|
+
@function span-math(
|
247
|
+
$span,
|
248
|
+
$location,
|
249
|
+
$columns : $columns,
|
250
|
+
$gutters : $gutters,
|
251
|
+
$column-width : $column-width,
|
252
|
+
$layout-method : $layout-method,
|
253
|
+
$layout-math : $layout-math,
|
254
|
+
$outer : $outer,
|
255
|
+
$flow : $flow,
|
256
|
+
$gutter-position : $gutter-position,
|
257
|
+
$is-container : false,
|
258
|
+
$gutter-override : false
|
259
|
+
) {
|
260
|
+
$float : from;
|
261
|
+
$width : $span;
|
262
|
+
|
263
|
+
$padding-before : null;
|
264
|
+
$padding-after : null;
|
265
|
+
$margin-before : null;
|
266
|
+
$margin-after : null;
|
267
|
+
|
268
|
+
// calculate widths
|
269
|
+
$width: get-span-width($span, $location, $columns, $gutters, $column-width, $layout-math, $gutter-position, $outer);
|
270
|
+
$this-gutters: get-gutters($columns, $gutters, $column-width, $layout-math, $gutter-position, $gutter-override);
|
271
|
+
|
272
|
+
// apply gutters
|
273
|
+
@if $gutter-position == inside and not $is-container {
|
274
|
+
$padding-before: nth($this-gutters,1);
|
275
|
+
$padding-after: nth($this-gutters,2);
|
276
|
+
} @else if $gutter-position != inside {
|
277
|
+
$margin-before: nth($this-gutters,1);
|
278
|
+
$margin-after: nth($this-gutters,2);
|
279
|
+
}
|
280
|
+
|
281
|
+
// special margin handling
|
282
|
+
@if $layout-method == isolate {
|
283
|
+
$margin-before: get-isolation($span, $location, $columns, $gutters, $column-width, $layout-math);
|
284
|
+
$margin-after: -100%;
|
285
|
+
} @else {
|
286
|
+
@if is-last($span, $location, $columns) {
|
287
|
+
$float: to;
|
288
|
+
$margin-after: null;
|
289
|
+
} @else if is-first($location) {
|
290
|
+
$margin-before: null;
|
291
|
+
}
|
292
|
+
}
|
293
|
+
|
294
|
+
@return $width $float $margin-before $margin-after $padding-before $padding-after $flow;
|
295
|
+
}
|
296
|
+
|
297
|
+
// Get Span Width
|
298
|
+
// --------------
|
299
|
+
// Return span width.
|
300
|
+
// - $span : <length> | <number>
|
301
|
+
// - $location : first | last | <length> | <number>
|
302
|
+
// - [$columns] : <number> | <list>
|
303
|
+
// - [$gutters] : <ratio>
|
304
|
+
// - [$column-width] : <length>
|
305
|
+
// - [$layout-math] : fluid | static
|
306
|
+
// - [$gutter-position] : before | after | split | inside
|
307
|
+
// - [$outer] : <boolean>
|
308
|
+
@function get-span-width(
|
309
|
+
$span,
|
310
|
+
$location : 1,
|
311
|
+
$columns : $columns,
|
312
|
+
$gutters : $gutters,
|
313
|
+
$column-width : $column-width,
|
314
|
+
$layout-math : $layout-math,
|
315
|
+
$gutter-position : $gutter-position,
|
316
|
+
$outer : null
|
317
|
+
) {
|
318
|
+
$context : null;
|
319
|
+
$span-sum : null;
|
320
|
+
$width : null;
|
321
|
+
|
322
|
+
@if unitless($span) {
|
323
|
+
@if $gutter-position == inside {
|
324
|
+
$context: column-sum($columns, $gutters, outer);
|
325
|
+
$span-sum: get-column-span-sum($span, $location, $columns, $gutters, outer);
|
326
|
+
} @else {
|
327
|
+
$context: column-sum($columns, $gutters);
|
328
|
+
$span-sum: get-column-span-sum($span, $location, $columns, $gutters, $outer);
|
329
|
+
}
|
330
|
+
|
331
|
+
@if $layout-math == static {
|
332
|
+
$width: $span-sum * $column-width;
|
333
|
+
} @else {
|
334
|
+
$width: percentage($span-sum / $context);
|
335
|
+
}
|
336
|
+
} @else {
|
337
|
+
$width: $span;
|
338
|
+
}
|
339
|
+
|
340
|
+
@return $width;
|
341
|
+
}
|