susy 2.2.14 → 3.0.0.alpha.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/{docs/changelog.rst → CHANGELOG.md} +0 -34
- data/README.md +135 -10
- data/VERSION +1 -1
- data/sass/_prefix.scss +10 -0
- data/sass/_susy.scss +4 -3
- data/sass/susy/_api.scss +134 -0
- data/sass/susy/_grids.scss +192 -0
- data/sass/susy/_parser.scss +284 -0
- data/sass/susy/_settings.scss +120 -0
- data/sass/susy/_unprefix.scss +53 -0
- data/sass/susy/_validation.scss +132 -0
- metadata +26 -75
- data/sass/_su.scss +0 -4
- data/sass/_susyone.scss +0 -4
- data/sass/susy/_su.scss +0 -7
- data/sass/susy/language/_susy.scss +0 -24
- data/sass/susy/language/_susyone.scss +0 -13
- data/sass/susy/language/susy/_background.scss +0 -385
- data/sass/susy/language/susy/_bleed.scss +0 -200
- data/sass/susy/language/susy/_box-sizing.scss +0 -47
- data/sass/susy/language/susy/_breakpoint-plugin.scss +0 -185
- data/sass/susy/language/susy/_container.scss +0 -81
- data/sass/susy/language/susy/_context.scss +0 -36
- data/sass/susy/language/susy/_gallery.scss +0 -94
- data/sass/susy/language/susy/_grids.scss +0 -64
- data/sass/susy/language/susy/_gutters.scss +0 -154
- data/sass/susy/language/susy/_isolate.scss +0 -77
- data/sass/susy/language/susy/_margins.scss +0 -94
- data/sass/susy/language/susy/_padding.scss +0 -74
- data/sass/susy/language/susy/_rows.scss +0 -138
- data/sass/susy/language/susy/_settings.scss +0 -216
- data/sass/susy/language/susy/_span.scss +0 -163
- data/sass/susy/language/susy/_validation.scss +0 -16
- data/sass/susy/language/susyone/_background.scss +0 -18
- data/sass/susy/language/susyone/_functions.scss +0 -377
- data/sass/susy/language/susyone/_grid.scss +0 -312
- data/sass/susy/language/susyone/_isolation.scss +0 -51
- data/sass/susy/language/susyone/_margin.scss +0 -93
- data/sass/susy/language/susyone/_media.scss +0 -105
- data/sass/susy/language/susyone/_padding.scss +0 -92
- data/sass/susy/language/susyone/_settings.scss +0 -60
- data/sass/susy/output/_float.scss +0 -9
- data/sass/susy/output/_shared.scss +0 -15
- data/sass/susy/output/_support.scss +0 -9
- data/sass/susy/output/float/_container.scss +0 -16
- data/sass/susy/output/float/_end.scss +0 -40
- data/sass/susy/output/float/_isolate.scss +0 -22
- data/sass/susy/output/float/_span.scss +0 -35
- data/sass/susy/output/shared/_background.scss +0 -26
- data/sass/susy/output/shared/_container.scss +0 -21
- data/sass/susy/output/shared/_direction.scss +0 -42
- data/sass/susy/output/shared/_inspect.scss +0 -25
- data/sass/susy/output/shared/_margins.scss +0 -23
- data/sass/susy/output/shared/_output.scss +0 -14
- data/sass/susy/output/shared/_padding.scss +0 -23
- data/sass/susy/output/support/_background.scss +0 -58
- data/sass/susy/output/support/_box-sizing.scss +0 -19
- data/sass/susy/output/support/_clearfix.scss +0 -18
- data/sass/susy/output/support/_prefix.scss +0 -19
- data/sass/susy/output/support/_rem.scss +0 -22
- data/sass/susy/output/support/_support.scss +0 -95
- data/sass/susy/su/_grid.scss +0 -103
- data/sass/susy/su/_settings.scss +0 -73
- data/sass/susy/su/_utilities.scss +0 -111
- data/sass/susy/su/_validation.scss +0 -57
- data/templates/project/_grids.scss +0 -9
- data/templates/project/manifest.rb +0 -15
- data/templates/project/style.scss +0 -4
@@ -0,0 +1,132 @@
|
|
1
|
+
// Validation
|
2
|
+
// ==========
|
3
|
+
// - su-valid-columns [function]
|
4
|
+
// - su-valid-gutters [function]
|
5
|
+
// - su-valid-spread [function]
|
6
|
+
// - su-valid-location [function]
|
7
|
+
|
8
|
+
|
9
|
+
// Valid Columns
|
10
|
+
// -------------
|
11
|
+
/// Check that the `columns` argument is a valid
|
12
|
+
/// list of comparable column-lengths
|
13
|
+
///
|
14
|
+
/// @access private
|
15
|
+
///
|
16
|
+
/// @param {List} $columns -
|
17
|
+
/// List of column-lengths using comparable units
|
18
|
+
///
|
19
|
+
/// @return {List} -
|
20
|
+
/// Validated `$columns` list
|
21
|
+
@function su-valid-columns(
|
22
|
+
$columns
|
23
|
+
) {
|
24
|
+
$first: nth($columns, 1);
|
25
|
+
|
26
|
+
@each $col in $columns {
|
27
|
+
@if (type-of($col) != 'number') or (not comparable($col, $first)) {
|
28
|
+
$actual: '[#{type-of($columns)}] `#{inspect($columns)}`';
|
29
|
+
@error '#{$actual} is not a value for $columns.';
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
@return $columns;
|
34
|
+
}
|
35
|
+
|
36
|
+
|
37
|
+
// Valid Gutters
|
38
|
+
// -------------
|
39
|
+
/// Check that the `gutters` argument is a valid number
|
40
|
+
///
|
41
|
+
/// @access private
|
42
|
+
///
|
43
|
+
/// @param {Number} $gutters -
|
44
|
+
/// Width of a gutter
|
45
|
+
/// @param {List} $columns -
|
46
|
+
/// Valid list of column-lengths using comparable units
|
47
|
+
///
|
48
|
+
/// @return {Number} -
|
49
|
+
/// Validated `$gutters` number
|
50
|
+
@function su-valid-gutters(
|
51
|
+
$gutters,
|
52
|
+
$columns
|
53
|
+
) {
|
54
|
+
$type: type-of($gutters);
|
55
|
+
|
56
|
+
@if ($type == 'number') {
|
57
|
+
@if unitless($gutters) and (not unitless(nth($columns, 1))) {
|
58
|
+
@error 'Gutters must have units for a static grid.';
|
59
|
+
}
|
60
|
+
|
61
|
+
@return $gutters;
|
62
|
+
}
|
63
|
+
|
64
|
+
$actual: '[#{$type}] `#{inspect($gutters)}`';
|
65
|
+
@error '#{$actual} is not a value for $gutters.';
|
66
|
+
}
|
67
|
+
|
68
|
+
|
69
|
+
// Valid Spread
|
70
|
+
// ------------
|
71
|
+
/// Check that the `spread` argument is a valid
|
72
|
+
/// intiger between `-1` and `1`
|
73
|
+
///
|
74
|
+
/// @access private
|
75
|
+
///
|
76
|
+
/// @param {0 | 1 | -1} $spread -
|
77
|
+
/// Number of gutters to include in a span,
|
78
|
+
/// relative to the number columns
|
79
|
+
///
|
80
|
+
/// @return {0 | 1 | -1} -
|
81
|
+
/// Validated `$spread` number
|
82
|
+
@function su-valid-spread(
|
83
|
+
$spread
|
84
|
+
) {
|
85
|
+
@if index(0 1 -1, $spread) {
|
86
|
+
@return $spread;
|
87
|
+
}
|
88
|
+
|
89
|
+
$actual: '[#{type-of($spread)}] `#{inspect($spread)}`';
|
90
|
+
@error '#{$actual} is not a value for $spread.';
|
91
|
+
}
|
92
|
+
|
93
|
+
|
94
|
+
// Valid Location
|
95
|
+
// --------------
|
96
|
+
/// Check that the `location` argument is a valid number,
|
97
|
+
/// within the scope of available columns
|
98
|
+
///
|
99
|
+
/// @access private
|
100
|
+
///
|
101
|
+
/// @param {Number} $span -
|
102
|
+
/// Number of grid-columns to be spanned
|
103
|
+
/// @param {Integer | String} $location -
|
104
|
+
/// Starting (1-indexed) column-position of that span
|
105
|
+
/// @param {List} $columns -
|
106
|
+
/// List of available columns in the grid
|
107
|
+
///
|
108
|
+
/// @return {Integer} -
|
109
|
+
/// Validated `$location` intiger
|
110
|
+
@function su-valid-location(
|
111
|
+
$span,
|
112
|
+
$location,
|
113
|
+
$columns
|
114
|
+
) {
|
115
|
+
$count: length($columns);
|
116
|
+
|
117
|
+
@if $location {
|
118
|
+
@if (type-of($location) != 'number') or (not unitless($location)) {
|
119
|
+
$actual: '[#{type-of($location)}] `#{$location}`';
|
120
|
+
@error '#{$actual} is not a value for $location.';
|
121
|
+
} @else if (round($location) != $location) {
|
122
|
+
@error 'Location (`#{$location}`) must be a 1-indexed intiger position.';
|
123
|
+
} @else if ($location > $count) {
|
124
|
+
@error 'Position `#{$location}` does not exist in grid `#{$columns}`.';
|
125
|
+
} @else if ($location + $span - 1 > $count) {
|
126
|
+
$details: 'grid `#{$columns}` for span `#{$span}` at `#{$location}`';
|
127
|
+
@error 'There are not enough columns in #{$details}';
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
@return $location;
|
132
|
+
}
|
metadata
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: susy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miriam Eric Suzanne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sass
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.3.0
|
20
|
-
- -
|
20
|
+
- - <
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '3.5'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 3.3.0
|
30
|
-
- -
|
30
|
+
- - <
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3.5'
|
33
33
|
description: Susy is a toolkit for building layouts of all types with a simple, natural
|
@@ -37,101 +37,52 @@ email:
|
|
37
37
|
executables: []
|
38
38
|
extensions: []
|
39
39
|
extra_rdoc_files:
|
40
|
-
-
|
40
|
+
- CHANGELOG.md
|
41
41
|
- LICENSE.txt
|
42
42
|
- README.md
|
43
43
|
- lib/susy.rb
|
44
44
|
files:
|
45
|
-
- LICENSE.txt
|
46
|
-
- README.md
|
47
|
-
- VERSION
|
48
|
-
- docs/changelog.rst
|
49
45
|
- lib/compass-susy.rb
|
50
46
|
- lib/susy.rb
|
51
|
-
- sass/
|
47
|
+
- sass/_prefix.scss
|
52
48
|
- sass/_susy.scss
|
53
|
-
- sass/
|
54
|
-
- sass/susy/
|
55
|
-
- sass/susy/
|
56
|
-
- sass/susy/
|
57
|
-
- sass/susy/
|
58
|
-
- sass/susy/
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
63
|
-
- sass/susy/language/susy/_gallery.scss
|
64
|
-
- sass/susy/language/susy/_grids.scss
|
65
|
-
- sass/susy/language/susy/_gutters.scss
|
66
|
-
- sass/susy/language/susy/_isolate.scss
|
67
|
-
- sass/susy/language/susy/_margins.scss
|
68
|
-
- sass/susy/language/susy/_padding.scss
|
69
|
-
- sass/susy/language/susy/_rows.scss
|
70
|
-
- sass/susy/language/susy/_settings.scss
|
71
|
-
- sass/susy/language/susy/_span.scss
|
72
|
-
- sass/susy/language/susy/_validation.scss
|
73
|
-
- sass/susy/language/susyone/_background.scss
|
74
|
-
- sass/susy/language/susyone/_functions.scss
|
75
|
-
- sass/susy/language/susyone/_grid.scss
|
76
|
-
- sass/susy/language/susyone/_isolation.scss
|
77
|
-
- sass/susy/language/susyone/_margin.scss
|
78
|
-
- sass/susy/language/susyone/_media.scss
|
79
|
-
- sass/susy/language/susyone/_padding.scss
|
80
|
-
- sass/susy/language/susyone/_settings.scss
|
81
|
-
- sass/susy/output/_float.scss
|
82
|
-
- sass/susy/output/_shared.scss
|
83
|
-
- sass/susy/output/_support.scss
|
84
|
-
- sass/susy/output/float/_container.scss
|
85
|
-
- sass/susy/output/float/_end.scss
|
86
|
-
- sass/susy/output/float/_isolate.scss
|
87
|
-
- sass/susy/output/float/_span.scss
|
88
|
-
- sass/susy/output/shared/_background.scss
|
89
|
-
- sass/susy/output/shared/_container.scss
|
90
|
-
- sass/susy/output/shared/_direction.scss
|
91
|
-
- sass/susy/output/shared/_inspect.scss
|
92
|
-
- sass/susy/output/shared/_margins.scss
|
93
|
-
- sass/susy/output/shared/_output.scss
|
94
|
-
- sass/susy/output/shared/_padding.scss
|
95
|
-
- sass/susy/output/support/_background.scss
|
96
|
-
- sass/susy/output/support/_box-sizing.scss
|
97
|
-
- sass/susy/output/support/_clearfix.scss
|
98
|
-
- sass/susy/output/support/_prefix.scss
|
99
|
-
- sass/susy/output/support/_rem.scss
|
100
|
-
- sass/susy/output/support/_support.scss
|
101
|
-
- sass/susy/su/_grid.scss
|
102
|
-
- sass/susy/su/_settings.scss
|
103
|
-
- sass/susy/su/_utilities.scss
|
104
|
-
- sass/susy/su/_validation.scss
|
105
|
-
- templates/project/_grids.scss
|
106
|
-
- templates/project/manifest.rb
|
107
|
-
- templates/project/style.scss
|
49
|
+
- sass/susy/_api.scss
|
50
|
+
- sass/susy/_grids.scss
|
51
|
+
- sass/susy/_parser.scss
|
52
|
+
- sass/susy/_settings.scss
|
53
|
+
- sass/susy/_unprefix.scss
|
54
|
+
- sass/susy/_validation.scss
|
55
|
+
- CHANGELOG.md
|
56
|
+
- LICENSE.txt
|
57
|
+
- README.md
|
58
|
+
- VERSION
|
108
59
|
homepage: http://susy.oddbird.net/
|
109
60
|
licenses:
|
110
61
|
- BSD-3-Clause
|
111
62
|
metadata: {}
|
112
63
|
post_install_message:
|
113
64
|
rdoc_options:
|
114
|
-
-
|
115
|
-
-
|
116
|
-
-
|
65
|
+
- --line-numbers
|
66
|
+
- --inline-source
|
67
|
+
- --title
|
117
68
|
- Susy
|
118
|
-
-
|
69
|
+
- --main
|
119
70
|
- README.md
|
120
71
|
require_paths:
|
121
72
|
- lib
|
122
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
123
74
|
requirements:
|
124
|
-
- -
|
75
|
+
- - '>='
|
125
76
|
- !ruby/object:Gem::Version
|
126
77
|
version: '0'
|
127
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
79
|
requirements:
|
129
|
-
- -
|
80
|
+
- - '>'
|
130
81
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
82
|
+
version: 1.3.1
|
132
83
|
requirements: []
|
133
84
|
rubyforge_project: susy
|
134
|
-
rubygems_version: 2.
|
85
|
+
rubygems_version: 2.1.10
|
135
86
|
signing_key:
|
136
87
|
specification_version: 3
|
137
88
|
summary: Responsive layout toolkit for Sass.
|
data/sass/_su.scss
DELETED
data/sass/_susyone.scss
DELETED
data/sass/susy/_su.scss
DELETED
@@ -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
|
-
}
|