susy 2.0.0.alpha.2 → 2.0.0.alpha.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|