susy 2.0.0.beta.3 → 2.0.0.rc.1
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 +4 -4
- data/README.md +29 -29
- data/VERSION +1 -1
- data/docs/changelog.rst +32 -1
- data/sass/susy/_math.scss +1 -0
- data/sass/susy/language/_susy.scss +0 -2
- data/sass/susy/language/_susyone.scss +0 -4
- data/sass/susy/language/susy/_background.scss +31 -25
- data/sass/susy/language/susy/_bleed.scss +4 -4
- data/sass/susy/language/susy/_box-sizing.scss +1 -1
- data/sass/susy/language/susy/_container.scss +1 -1
- data/sass/susy/language/susy/_gallery.scss +2 -2
- data/sass/susy/language/susy/_gutters.scss +3 -3
- data/sass/susy/language/susy/_rows.scss +2 -2
- data/sass/susy/language/susy/_settings.scss +68 -116
- data/sass/susy/language/susy/_span.scss +2 -2
- data/sass/susy/language/susyone/_functions.scss +2 -2
- data/sass/susy/language/susyone/_grid.scss +5 -5
- data/sass/susy/math/_maps.scss +89 -0
- data/sass/susy/math/_settings.scss +51 -0
- data/sass/susy/math/_validation.scss +13 -7
- data/sass/susy/output/_float.scss +0 -1
- data/sass/susy/output/_shared.scss +3 -1
- data/sass/susy/output/_support.scss +9 -0
- data/sass/susy/output/float/_end.scss +11 -3
- data/sass/susy/output/float/_isolate.scss +10 -6
- data/sass/susy/output/float/_span.scss +10 -6
- data/sass/susy/output/shared/_background.scss +10 -20
- data/sass/susy/output/shared/_container.scss +7 -3
- data/sass/susy/output/shared/_margins.scss +6 -2
- data/sass/susy/output/shared/_output.scss +14 -0
- data/sass/susy/output/shared/_padding.scss +6 -2
- data/sass/susy/output/support/_background.scss +58 -0
- data/sass/susy/output/support/_box-sizing.scss +17 -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 +82 -0
- metadata +14 -14
- data/sass/susy/language/_shared.scss +0 -4
- data/sass/susy/language/shared/_maps.scss +0 -85
- data/sass/susy/language/susyone/_units.scss +0 -159
- data/sass/susy/output/float/_clearfix.scss +0 -15
- data/sass/susy/output/shared/_box-sizing.scss +0 -16
@@ -23,10 +23,10 @@
|
|
23
23
|
@include nobreak;
|
24
24
|
}
|
25
25
|
|
26
|
-
@include
|
26
|
+
@include output((box-sizing: $box));
|
27
27
|
@include float-span-output($output...);
|
28
28
|
|
29
|
-
@if
|
29
|
+
@if valid-columns($nesting, silent) {
|
30
30
|
@include nested($span) { @content; }
|
31
31
|
} @else {
|
32
32
|
@content;
|
@@ -190,7 +190,7 @@ $rem-with-px-fallback : true !default;
|
|
190
190
|
@if $request == 'position' {
|
191
191
|
@return $pos;
|
192
192
|
} @else {
|
193
|
-
@warn '"#{$request}"
|
193
|
+
@warn '"#{$request}" is not a valid value for $request';
|
194
194
|
}
|
195
195
|
}
|
196
196
|
}
|
@@ -335,7 +335,7 @@ $rem-with-px-fallback : true !default;
|
|
335
335
|
// Return the nearest layout (column-count) above a given breakpoint.
|
336
336
|
//
|
337
337
|
// $min : The min-width media-query breakpoint above which to establish a new layout.
|
338
|
-
@function get-layout
|
338
|
+
@function get-layout(
|
339
339
|
$min
|
340
340
|
) {
|
341
341
|
$min : fix-ems($min);
|
@@ -27,12 +27,12 @@
|
|
27
27
|
$width: container-outer-width($columns);
|
28
28
|
|
29
29
|
@if $style == 'static' {
|
30
|
-
@include
|
30
|
+
@include rem(width, $width);
|
31
31
|
} @else {
|
32
32
|
@if $style == 'fluid' {
|
33
|
-
@if unit($width) == '%' { @include
|
33
|
+
@if unit($width) == '%' { @include rem(width, $width); }
|
34
34
|
} @else {
|
35
|
-
@include
|
35
|
+
@include rem(max-width, $width);
|
36
36
|
@include for-legacy-browser(ie,"6") {
|
37
37
|
@if unit($width) == 'rem' {
|
38
38
|
_width: round(convert-length($width, px));
|
@@ -52,8 +52,8 @@
|
|
52
52
|
){
|
53
53
|
@include pie-clearfix;
|
54
54
|
@include set-container-width($columns);
|
55
|
-
@include
|
56
|
-
@include
|
55
|
+
@include rem(padding-left, $grid-padding);
|
56
|
+
@include rem(padding-right, $grid-padding);
|
57
57
|
margin: { left: auto; right: auto; }
|
58
58
|
}
|
59
59
|
|
@@ -0,0 +1,89 @@
|
|
1
|
+
// Map Functions
|
2
|
+
// =============
|
3
|
+
|
4
|
+
|
5
|
+
// Truncate List
|
6
|
+
// -------------
|
7
|
+
// - Return a list, truncated to a given length
|
8
|
+
@function _susy-truncate-list(
|
9
|
+
$list,
|
10
|
+
$length
|
11
|
+
) {
|
12
|
+
$_return: ();
|
13
|
+
|
14
|
+
@for $i from 1 through length($list) {
|
15
|
+
$_return: if($i <= $length, append($_return, nth($list, $i)), $_return);
|
16
|
+
}
|
17
|
+
|
18
|
+
@return $_return;
|
19
|
+
}
|
20
|
+
|
21
|
+
|
22
|
+
// Deep Get
|
23
|
+
// --------
|
24
|
+
// - Return a value deep in nested maps
|
25
|
+
@function _susy-deep-get(
|
26
|
+
$map,
|
27
|
+
$keys...
|
28
|
+
) {
|
29
|
+
$_return: $map;
|
30
|
+
|
31
|
+
@each $key in $keys {
|
32
|
+
@if type-of($_return) == map {
|
33
|
+
$_return: map-get($_return, $key);
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
@return $_return;
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
// Deep Set
|
42
|
+
// --------
|
43
|
+
// - Set a value deep in nested maps
|
44
|
+
@function _susy-deep-set(
|
45
|
+
$map,
|
46
|
+
$keys-value...
|
47
|
+
) {
|
48
|
+
$_value: nth($keys-value, -1);
|
49
|
+
$_keys: _susy-truncate-list($keys-value, length($keys-value) - 1);
|
50
|
+
$_length: length($_keys);
|
51
|
+
$_return: ();
|
52
|
+
|
53
|
+
@for $i from 1 through $_length {
|
54
|
+
$_n: 0 - $i;
|
55
|
+
$_level: _susy-truncate-list($_keys, $_length + $_n);
|
56
|
+
$_level: _susy-deep-get($map, $_level...);
|
57
|
+
$_merge: (nth($_keys, $_n): $_value);
|
58
|
+
$_return: if($_level, map-merge($_level, $_merge), $_merge);
|
59
|
+
$_value: $_return;
|
60
|
+
}
|
61
|
+
|
62
|
+
@return $_return;
|
63
|
+
}
|
64
|
+
|
65
|
+
|
66
|
+
// Deep Has-Key
|
67
|
+
// ------------
|
68
|
+
// - Return true if a deep key exists
|
69
|
+
@function _susy-deep-has-key(
|
70
|
+
$map,
|
71
|
+
$keys...
|
72
|
+
) {
|
73
|
+
$_return: null;
|
74
|
+
$_stop: false;
|
75
|
+
|
76
|
+
@each $key in $keys {
|
77
|
+
@if not $_stop {
|
78
|
+
$_return: map-has-key($map, $key);
|
79
|
+
}
|
80
|
+
|
81
|
+
@if $_return {
|
82
|
+
$map: map-get($map, $key);
|
83
|
+
} @else {
|
84
|
+
$_stop: true;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
88
|
+
@return $_return;
|
89
|
+
}
|
@@ -5,6 +5,7 @@
|
|
5
5
|
// -------
|
6
6
|
$susy-version: 2.0;
|
7
7
|
|
8
|
+
|
8
9
|
// Default Settings
|
9
10
|
// ----------------
|
10
11
|
// PRIVATE: The basic settings
|
@@ -13,6 +14,15 @@ $susy-defaults: (
|
|
13
14
|
gutters: 1/4,
|
14
15
|
);
|
15
16
|
|
17
|
+
|
18
|
+
// User Settings
|
19
|
+
// -------------
|
20
|
+
// - Define the $susy variable with a map of your own settings.
|
21
|
+
// - Set EITHER $column-width OR $container
|
22
|
+
// - Use $column-width for static layouts
|
23
|
+
$susy: () !default;
|
24
|
+
|
25
|
+
|
16
26
|
// Susy Defaults
|
17
27
|
// -------------
|
18
28
|
// PRIVATE: Add defaults to Susy
|
@@ -21,3 +31,44 @@ $susy-defaults: (
|
|
21
31
|
) {
|
22
32
|
$susy-defaults: map-merge($susy-defaults, $defaults) !global;
|
23
33
|
}
|
34
|
+
|
35
|
+
|
36
|
+
// Susy Set
|
37
|
+
// --------
|
38
|
+
// Change one setting
|
39
|
+
// - $key : setting name
|
40
|
+
// - $value : setting value
|
41
|
+
@mixin susy-set(
|
42
|
+
$key-value...
|
43
|
+
) {
|
44
|
+
$susy: _susy-deep-set($susy, $key-value...) !global;
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
// Susy Get
|
49
|
+
// --------
|
50
|
+
// Return one setting from a grid
|
51
|
+
// - $key : <keyword>
|
52
|
+
// - $layout : <settings>
|
53
|
+
@function susy-get(
|
54
|
+
$key,
|
55
|
+
$layout: map-merge($susy-defaults, $susy)
|
56
|
+
) {
|
57
|
+
$layout: parse-grid($layout);
|
58
|
+
$_options: $layout $susy $susy-defaults;
|
59
|
+
$_break: false;
|
60
|
+
$_return: null;
|
61
|
+
|
62
|
+
@each $opt in $_options {
|
63
|
+
@if type-of($opt) == map and not $_break {
|
64
|
+
$_keyset: _susy-deep-has-key($opt, $key...);
|
65
|
+
@if $_keyset {
|
66
|
+
$_return: _susy-deep-get($opt, $key...);
|
67
|
+
$_break: true;
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
@return $_return;
|
73
|
+
}
|
74
|
+
|
@@ -5,7 +5,8 @@
|
|
5
5
|
// -------------
|
6
6
|
// Check that a column setting is valid.
|
7
7
|
@function valid-columns(
|
8
|
-
$columns
|
8
|
+
$columns,
|
9
|
+
$silent: false
|
9
10
|
) {
|
10
11
|
$type: type-of($columns);
|
11
12
|
$return: null;
|
@@ -21,26 +22,31 @@
|
|
21
22
|
$return: if($fail, $return, $columns);
|
22
23
|
}
|
23
24
|
|
24
|
-
@if $return != $columns {
|
25
|
+
@if $return != $columns and not $silent {
|
26
|
+
$return: null;
|
25
27
|
$warn: '$columns must be a unitless number or list of unitless numbers.';
|
26
28
|
@warn $warn + ' Current value [#{$type}]: #{$columns}';
|
27
|
-
} @else {
|
28
|
-
@return $return;
|
29
29
|
}
|
30
|
+
|
31
|
+
@return $return;
|
30
32
|
}
|
31
33
|
|
32
34
|
// Valid Gutters
|
33
35
|
// -------------
|
34
36
|
// Check that a gutter setting is valid.
|
35
37
|
@function valid-gutters(
|
36
|
-
$gutters
|
38
|
+
$gutters,
|
39
|
+
$silent: false
|
37
40
|
) {
|
38
41
|
$type: type-of($gutters);
|
42
|
+
$return: null;
|
39
43
|
|
40
44
|
@if $type == number and unitless($gutters) {
|
41
|
-
|
42
|
-
} @else {
|
45
|
+
$return: $gutters;
|
46
|
+
} @else if not $silent {
|
43
47
|
$warn: '$gutters must be a unitless number.';
|
44
48
|
@warn $warn + ' Current value [#{$type}]: #{$gutters}';
|
45
49
|
}
|
50
|
+
|
51
|
+
@return $return;
|
46
52
|
}
|
@@ -18,8 +18,12 @@
|
|
18
18
|
) {
|
19
19
|
$to: to($flow);
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
$output: (
|
22
|
+
float: if($last-flow == to, $to, null),
|
23
|
+
margin-#{$to}: $margin,
|
24
|
+
);
|
25
|
+
|
26
|
+
@include output($output);
|
23
27
|
}
|
24
28
|
|
25
29
|
// Float First
|
@@ -28,5 +32,9 @@
|
|
28
32
|
@mixin float-first(
|
29
33
|
$flow: map-get($susy-defaults, flow)
|
30
34
|
) {
|
31
|
-
|
35
|
+
$output: (
|
36
|
+
margin-#{from($flow)}: 0,
|
37
|
+
);
|
38
|
+
|
39
|
+
@include output($output);
|
32
40
|
}
|
@@ -7,12 +7,16 @@
|
|
7
7
|
// - [$flow] : ltr | rtl
|
8
8
|
@mixin isolate-output(
|
9
9
|
$push,
|
10
|
-
$flow
|
10
|
+
$flow: map-get($susy-defaults, flow)
|
11
11
|
) {
|
12
|
-
$to
|
13
|
-
$from
|
12
|
+
$to: to($flow);
|
13
|
+
$from: from($flow);
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
$output: (
|
16
|
+
float: $from,
|
17
|
+
margin-#{$from}: $push,
|
18
|
+
margin-#{$to}: -100%,
|
19
|
+
);
|
20
|
+
|
21
|
+
@include output($output);
|
18
22
|
}
|
@@ -22,10 +22,14 @@
|
|
22
22
|
$to : to($flow);
|
23
23
|
$from : from($flow);
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
$output: (
|
26
|
+
width: $width,
|
27
|
+
float: if($float == to, $to, null) or if($float == from, $from, null),
|
28
|
+
margin-#{$from}: $margin-before,
|
29
|
+
margin-#{$to}: $margin-after,
|
30
|
+
padding-#{$from}: $padding-before,
|
31
|
+
padding-#{$to}: $padding-after,
|
32
|
+
);
|
33
|
+
|
34
|
+
@include output($output);
|
31
35
|
}
|
@@ -10,27 +10,17 @@
|
|
10
10
|
// - [$flow]: ltr | rtl
|
11
11
|
@mixin background-grid-output (
|
12
12
|
$image,
|
13
|
-
$size:
|
14
|
-
$clip:
|
13
|
+
$size: null,
|
14
|
+
$clip: null,
|
15
15
|
$flow: map-get($susy-defaults, flow)
|
16
16
|
) {
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
background-
|
21
|
-
|
17
|
+
$output: (
|
18
|
+
background-image: $image,
|
19
|
+
background-size: $size,
|
20
|
+
background-origin: $clip,
|
21
|
+
background-clip: $clip,
|
22
|
+
background-position: from($flow) top,
|
23
|
+
);
|
22
24
|
|
23
|
-
@
|
24
|
-
-webkit-background-size: $size;
|
25
|
-
background-size: $size;
|
26
|
-
}
|
27
|
-
|
28
|
-
@if $clip {
|
29
|
-
-webkit-background-origin: $clip;
|
30
|
-
-webkit-background-clip: $clip;
|
31
|
-
background-origin: $clip;
|
32
|
-
background-clip: $clip;
|
33
|
-
}
|
34
|
-
|
35
|
-
background-position: from($flow) top;
|
25
|
+
@include output($output);
|
36
26
|
}
|
@@ -11,7 +11,11 @@
|
|
11
11
|
$justify: auto auto,
|
12
12
|
$property: max-width
|
13
13
|
) {
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
$output: (
|
15
|
+
#{$property}: $width or 100%,
|
16
|
+
margin-left: nth($justify, 1),
|
17
|
+
margin-right: nth($justify, 2),
|
18
|
+
);
|
19
|
+
|
20
|
+
@include output($output);
|
17
21
|
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
// Output
|
2
|
+
// ======
|
3
|
+
|
4
|
+
// Output
|
5
|
+
// ------
|
6
|
+
// Output CSS with proper browser support.
|
7
|
+
// - $styles : <map of css property-value pairs>
|
8
|
+
@mixin output(
|
9
|
+
$styles
|
10
|
+
) {
|
11
|
+
@each $prop, $val in $styles {
|
12
|
+
@include susy-support($prop, $val);
|
13
|
+
}
|
14
|
+
}
|