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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/{docs/changelog.rst → CHANGELOG.md} +0 -34
  3. data/README.md +135 -10
  4. data/VERSION +1 -1
  5. data/sass/_prefix.scss +10 -0
  6. data/sass/_susy.scss +4 -3
  7. data/sass/susy/_api.scss +134 -0
  8. data/sass/susy/_grids.scss +192 -0
  9. data/sass/susy/_parser.scss +284 -0
  10. data/sass/susy/_settings.scss +120 -0
  11. data/sass/susy/_unprefix.scss +53 -0
  12. data/sass/susy/_validation.scss +132 -0
  13. metadata +26 -75
  14. data/sass/_su.scss +0 -4
  15. data/sass/_susyone.scss +0 -4
  16. data/sass/susy/_su.scss +0 -7
  17. data/sass/susy/language/_susy.scss +0 -24
  18. data/sass/susy/language/_susyone.scss +0 -13
  19. data/sass/susy/language/susy/_background.scss +0 -385
  20. data/sass/susy/language/susy/_bleed.scss +0 -200
  21. data/sass/susy/language/susy/_box-sizing.scss +0 -47
  22. data/sass/susy/language/susy/_breakpoint-plugin.scss +0 -185
  23. data/sass/susy/language/susy/_container.scss +0 -81
  24. data/sass/susy/language/susy/_context.scss +0 -36
  25. data/sass/susy/language/susy/_gallery.scss +0 -94
  26. data/sass/susy/language/susy/_grids.scss +0 -64
  27. data/sass/susy/language/susy/_gutters.scss +0 -154
  28. data/sass/susy/language/susy/_isolate.scss +0 -77
  29. data/sass/susy/language/susy/_margins.scss +0 -94
  30. data/sass/susy/language/susy/_padding.scss +0 -74
  31. data/sass/susy/language/susy/_rows.scss +0 -138
  32. data/sass/susy/language/susy/_settings.scss +0 -216
  33. data/sass/susy/language/susy/_span.scss +0 -163
  34. data/sass/susy/language/susy/_validation.scss +0 -16
  35. data/sass/susy/language/susyone/_background.scss +0 -18
  36. data/sass/susy/language/susyone/_functions.scss +0 -377
  37. data/sass/susy/language/susyone/_grid.scss +0 -312
  38. data/sass/susy/language/susyone/_isolation.scss +0 -51
  39. data/sass/susy/language/susyone/_margin.scss +0 -93
  40. data/sass/susy/language/susyone/_media.scss +0 -105
  41. data/sass/susy/language/susyone/_padding.scss +0 -92
  42. data/sass/susy/language/susyone/_settings.scss +0 -60
  43. data/sass/susy/output/_float.scss +0 -9
  44. data/sass/susy/output/_shared.scss +0 -15
  45. data/sass/susy/output/_support.scss +0 -9
  46. data/sass/susy/output/float/_container.scss +0 -16
  47. data/sass/susy/output/float/_end.scss +0 -40
  48. data/sass/susy/output/float/_isolate.scss +0 -22
  49. data/sass/susy/output/float/_span.scss +0 -35
  50. data/sass/susy/output/shared/_background.scss +0 -26
  51. data/sass/susy/output/shared/_container.scss +0 -21
  52. data/sass/susy/output/shared/_direction.scss +0 -42
  53. data/sass/susy/output/shared/_inspect.scss +0 -25
  54. data/sass/susy/output/shared/_margins.scss +0 -23
  55. data/sass/susy/output/shared/_output.scss +0 -14
  56. data/sass/susy/output/shared/_padding.scss +0 -23
  57. data/sass/susy/output/support/_background.scss +0 -58
  58. data/sass/susy/output/support/_box-sizing.scss +0 -19
  59. data/sass/susy/output/support/_clearfix.scss +0 -18
  60. data/sass/susy/output/support/_prefix.scss +0 -19
  61. data/sass/susy/output/support/_rem.scss +0 -22
  62. data/sass/susy/output/support/_support.scss +0 -95
  63. data/sass/susy/su/_grid.scss +0 -103
  64. data/sass/susy/su/_settings.scss +0 -73
  65. data/sass/susy/su/_utilities.scss +0 -111
  66. data/sass/susy/su/_validation.scss +0 -57
  67. data/templates/project/_grids.scss +0 -9
  68. data/templates/project/manifest.rb +0 -15
  69. data/templates/project/style.scss +0 -4
@@ -1,200 +0,0 @@
1
- // Bleed Syntax
2
- // ============
3
-
4
- // Bleed
5
- // -----
6
- // Add negative margins, and equal positive padding to create bleed.
7
- // - $bleed : <span>
8
- @mixin bleed(
9
- $bleed: 0 gutter()
10
- ) {
11
- $inspect : $bleed;
12
- $output : get-bleed($bleed);
13
-
14
- @if susy-get(global-box-sizing) != content-box {
15
- $output: map-merge((box-sizing: content-box), $output);
16
- }
17
-
18
- @include susy-inspect(bleed, $inspect);
19
- @include output($output);
20
- }
21
-
22
-
23
- // Bleed-x
24
- // -------
25
- // Shortcut for horizontal bleed.
26
- // - $bleed : <span>
27
- @mixin bleed-x(
28
- $bleed: gutter()
29
- ) {
30
- $bleed : parse-span($bleed);
31
- $trbl : susy-get(span, $bleed);
32
-
33
- @if length($trbl) == 1 {
34
- $bleed: map-merge($bleed, (span: 0 nth($trbl, 1)));
35
- } @else if length($trbl) == 2 {
36
- $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1)));
37
- } @else {
38
- @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.';
39
- }
40
-
41
- @include bleed($bleed);
42
- }
43
-
44
-
45
- // Bleed-y
46
- // -------
47
- // Shortcut for vertical bleed.
48
- // - $bleed : <span>
49
- @mixin bleed-y(
50
- $bleed: if(function-exists(rhythm), rhythm(1), 1em)
51
- ) {
52
- $bleed : parse-span($bleed);
53
- $trbl : susy-get(span, $bleed);
54
-
55
- @if length($trbl) == 1 {
56
- $bleed: map-merge($bleed, (span: nth($trbl, 1) 0));
57
- } @else if length($trbl) == 2 {
58
- $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0));
59
- } @else {
60
- @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.';
61
- }
62
-
63
- @include bleed($bleed);
64
- }
65
-
66
-
67
- // Get Bleed
68
- // ---------
69
- // Return bleed output values
70
- // - $bleed: <span>
71
- @function get-bleed(
72
- $bleed
73
- ) {
74
- $bleed : map-merge((spread: wide), parse-span($bleed));
75
- $trbl : susy-get(span, $bleed);
76
- $short : null;
77
- $output : ();
78
-
79
- @for $i from 1 through length($trbl) {
80
- $this: nth($trbl, $i);
81
- $new: ();
82
- $margin: null;
83
- $padding: null;
84
- $padding-x: null;
85
-
86
- @if $this > 0 {
87
- $this: map-merge($bleed, (span: $this));
88
- $margin: span($this);
89
- $padding: $margin;
90
- $padding-x: $padding;
91
- }
92
-
93
- @if $margin and $margin > 0 {
94
- $margin: - $margin;
95
-
96
- @if is-inside($this) {
97
- $gutter: gutter($this);
98
- $join: if($gutter and comparable($padding, $gutter), true, false);
99
- $padding-x: if($join and $padding > 0, $padding + $gutter, $padding);
100
- }
101
- }
102
-
103
- @if $i == 1 {
104
- $new: (
105
- margin-top: $margin,
106
- padding-top: $padding,
107
- margin-right: $margin,
108
- padding-right: $padding-x,
109
- margin-bottom: $margin,
110
- padding-bottom: $padding,
111
- margin-left: $margin,
112
- padding-left: $padding-x,
113
- );
114
- } @else if $i == 2 {
115
- $new: (
116
- margin-right: $margin,
117
- padding-right: $padding-x,
118
- margin-left: $margin,
119
- padding-left: $padding-x,
120
- );
121
- } @else if $i == 3 {
122
- $new: (
123
- margin-bottom: $margin,
124
- padding-bottom: $padding,
125
- );
126
- } @else if $i == 4 {
127
- $new: (
128
- margin-left: $margin,
129
- padding-left: $padding-x,
130
- );
131
- }
132
-
133
- $output: map-merge($output, $new);
134
- }
135
-
136
- @each $prop, $value in $output {
137
- $output: if($value == 0, map-merge($output, ($prop: null)), $output);
138
- }
139
-
140
- @return bleed-shorthand($output);
141
- }
142
-
143
- // Bleed Shorthand
144
- // ---------------
145
- // Convert bleed output into shorthand when possible.
146
- // - $bleed: <output map>
147
- @function bleed-shorthand(
148
- $bleed
149
- ) {
150
- $margin: ();
151
- $padding: ();
152
- $return: ();
153
-
154
- @each $key, $value in $bleed {
155
- @if str-index($key, margin) {
156
- $margin: map-merge($margin, ($key: $value));
157
- } @else if str-index($key, padding) > 0 {
158
- $padding: map-merge($padding, ($key: $value));
159
- }
160
- }
161
-
162
- $props: (
163
- margin: $margin,
164
- padding: $padding,
165
- );
166
-
167
- @each $name, $map in $props {
168
- $four: if(length(map-keys($map)) == 4, true, false);
169
- $null: if(index(map-values($map), null), true, false);
170
-
171
- @if $four and not($null) {
172
- $top: map-get($map, '#{$name}-top');
173
- $right: map-get($map, '#{$name}-right');
174
- $bottom: map-get($map, '#{$name}-bottom');
175
- $left: map-get($map, '#{$name}-left');
176
-
177
- $tb: if($top == $bottom, $top, null);
178
- $rl: if($right == $left, $right, null);
179
- $all: if($tb == $rl, $tb, null);
180
-
181
- $new: if($all, $all, null);
182
-
183
- @if not($new) {
184
- @if $tb and $rl {
185
- $new: $tb $rl;
186
- } @else if $rl {
187
- $new: $top $rl $bottom;
188
- } @else {
189
- $new: $top $right $bottom $left;
190
- }
191
- }
192
-
193
- $return: map-merge($return, ($name: $new));
194
- } @else {
195
- $return: map-merge($return, $map);
196
- }
197
- }
198
-
199
- @return $return;
200
- }
@@ -1,47 +0,0 @@
1
- // Susy Box Sizing
2
- // =================
3
-
4
- // Global Box Sizing
5
- // -----------------
6
- // Set a box model globally on all elements.
7
- // - [$box]: border-box | content-box
8
- // - [$inherit]: true | false
9
- @mixin global-box-sizing(
10
- $box: susy-get(global-box-sizing),
11
- $inherit: false
12
- ) {
13
- $inspect: $box;
14
-
15
- @if $inherit {
16
- @at-root {
17
- html { @include output((box-sizing: $box)); }
18
- *, *:before, *:after { box-sizing: inherit; }
19
- }
20
- } @else {
21
- *, *:before, *:after { @include output((box-sizing: $box)); }
22
- }
23
-
24
- @include susy-inspect(global-box-sizing, $inspect);
25
- @include update-box-model($box);
26
- }
27
-
28
- // Border Box Sizing
29
- // -----------------
30
- // A legacy shortcut...
31
- // - [$inherit]: true | false
32
- @mixin border-box-sizing(
33
- $inherit: false
34
- ) {
35
- @include global-box-sizing(border-box, $inherit);
36
- }
37
-
38
- // Update Box Model
39
- // ----------------
40
- // PRIVATE: Updates global box model setting
41
- @mixin update-box-model(
42
- $box
43
- ) {
44
- @if $box != susy-get(global-box-sizing) {
45
- @include susy-set(global-box-sizing, $box);
46
- }
47
- }
@@ -1,185 +0,0 @@
1
- // Breakpoint Integration
2
- // ======================
3
-
4
- $susy-media: () !default;
5
- $susy-media-fallback: false !default;
6
-
7
- $_susy-media-context: ();
8
-
9
-
10
- // Susy Breakpoint
11
- // ---------------
12
- // Change grids at different media query breakpoints.
13
- // - $query : <min-width> [<max-width>] | <property> <value> | <map>
14
- // - $layout : <settings>
15
- // - $no-query : <boolean> | <selector>
16
- @mixin susy-breakpoint(
17
- $query,
18
- $layout: false,
19
- $no-query: $susy-media-fallback
20
- ) {
21
- @include susy-media-router($query, $no-query) {
22
- @if $layout {
23
- @include with-layout($layout) {
24
- @content;
25
- }
26
- } @else {
27
- @content;
28
- }
29
- }
30
- }
31
-
32
-
33
- // Susy Media
34
- // ----------
35
- // - $query: <min-width> [<max-width>] | <property> <value>
36
- // - $no-query: <boolean> | <selector>
37
- @mixin susy-media(
38
- $query,
39
- $no-query: $susy-media-fallback
40
- ) {
41
- $old-context: $_susy-media-context;
42
- $name: if(map-has-key($susy-media, $query), $query, null);
43
- $query: susy-get-media($query);
44
- $query: susy-parse-media($query);
45
-
46
- @include susy-media-context($query, $name);
47
-
48
- @if $no-query and type-of($no-query) != string {
49
- @content;
50
- } @else {
51
- @media #{susy-render-media($query)} {
52
- @content;
53
- }
54
-
55
- @if type-of($no-query) == string {
56
- #{$no-query} & {
57
- @content;
58
- }
59
- }
60
- }
61
-
62
- @include susy-media-context($old-context, $clean: true);
63
- }
64
-
65
-
66
- // Media Router
67
- // ------------
68
- // Rout media arguments to the correct mixin.
69
- @mixin susy-media-router(
70
- $query,
71
- $no-query: $susy-media-fallback
72
- ) {
73
- @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) {
74
- @include breakpoint($query, $no-query) {
75
- @content;
76
- }
77
- } @else {
78
- @include susy-media($query, $no-query) {
79
- @content;
80
- }
81
- }
82
- }
83
-
84
-
85
- // Update Context
86
- // -------------
87
- // Set the new media context
88
- @mixin susy-media-context(
89
- $query,
90
- $name: null,
91
- $clean: false
92
- ) {
93
- $query: map-merge((name: $name), $query);
94
-
95
- @if $clean {
96
- $_susy-media-context: $query !global;
97
- } @else {
98
- $_susy-media-context: map-merge($_susy-media-context, $query) !global;
99
- }
100
- }
101
-
102
-
103
- // Media Context
104
- // -------------
105
- // Return the full media context, or a single media property (e.g. min-width)
106
- @function susy-media-context(
107
- $property: false
108
- ) {
109
- @if $property {
110
- @return map-get($_susy-media-context, $property);
111
- } @else {
112
- @return $_susy-media-context;
113
- }
114
- }
115
-
116
-
117
- // Get Media
118
- // ---------
119
- // Return a named media-query from $susy-media.
120
- // - $name: <key>
121
- @function susy-get-media(
122
- $name
123
- ) {
124
- @if map-has-key($susy-media, $name) {
125
- $map-value: map-get($susy-media, $name);
126
- @if ($name == $map-value) {
127
- $name: $map-value;
128
- } @else {
129
- $name: susy-get-media($map-value);
130
- }
131
- }
132
-
133
- @return $name;
134
- }
135
-
136
-
137
- // Render Media
138
- // ------------
139
- // Build a media-query string from various media settings
140
- @function susy-render-media(
141
- $query
142
- ) {
143
- $output: null;
144
- @each $property, $value in $query {
145
- $string: null;
146
-
147
- @if $property == media {
148
- $string: $value;
149
- } @else {
150
- $string: '(#{$property}: #{$value})';
151
- }
152
-
153
- $output: if($output, '#{$output} and #{$string}', $string);
154
- }
155
-
156
- @return $output;
157
- }
158
-
159
-
160
- // Parse Media
161
- // -----------
162
- // Return parsed media-query settings based on shorthand
163
- @function susy-parse-media(
164
- $query
165
- ) {
166
- $mq: null;
167
- @if type-of($query) == map {
168
- $mq: $query;
169
- } @else if type-of($query) == number {
170
- $mq: (min-width: $query);
171
- } @else if type-of($query) == list and length($query) == 2 {
172
- @if type-of(nth($query, 1)) == number {
173
- $mq: (
174
- min-width: min($query...),
175
- max-width: max($query...),
176
- );
177
- } @else {
178
- $mq: (nth($query, 1): nth($query, 2));
179
- }
180
- } @else {
181
- $mq: (media: '#{$query}');
182
- }
183
-
184
- @return $mq;
185
- }
@@ -1,81 +0,0 @@
1
- // Container Syntax
2
- // ================
3
-
4
- // Container [mixin]
5
- // -----------------
6
- // Set a container element
7
- // - [$layout] : <settings>
8
- @mixin container(
9
- $layout: $susy
10
- ) {
11
- $inspect : $layout;
12
- $layout : parse-grid($layout);
13
-
14
- $_width : get-container-width($layout);
15
- $_justify : parse-container-position(susy-get(container-position, $layout));
16
- $_property : if(susy-get(math, $layout) == static, width, max-width);
17
-
18
- $_box : susy-get(box-sizing, $layout);
19
-
20
- @if $_box {
21
- @include output((box-sizing: $_box));
22
- }
23
-
24
- @include susy-inspect(container, $inspect);
25
- @include float-container($_width, $_justify, $_property);
26
- @include show-grid($layout);
27
- }
28
-
29
- // Container [function]
30
- // --------------------
31
- // Return container width
32
- // - [$layout] : <settings>
33
- @function container(
34
- $layout: $susy
35
- ) {
36
- $layout: parse-grid($layout);
37
- @return get-container-width($layout);
38
- }
39
-
40
- // Get Container Width
41
- // -------------------
42
- // Calculate the container width
43
- // - [$layout]: <settings>
44
- @function get-container-width(
45
- $layout: $susy
46
- ) {
47
- $layout : parse-grid($layout);
48
- $_width : susy-get(container, $layout);
49
- $_column-width : susy-get(column-width, $layout);
50
- $_math : susy-get(math, $layout);
51
-
52
- @if not($_width) or $_width == auto {
53
- @if valid-column-math($_math, $_column-width) {
54
- $_columns : susy-get(columns, $layout);
55
- $_gutters : susy-get(gutters, $layout);
56
- $_spread : if(is-split($layout), wide, narrow);
57
- $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width;
58
- } @else {
59
- $_width: 100%;
60
- }
61
- }
62
-
63
- @return $_width;
64
- }
65
-
66
- // Parse Container Position
67
- // ------------------------
68
- // Parse the $container-position into margin values.
69
- // - [$justify] : left | center | right | <length> [<length>]
70
- @function parse-container-position(
71
- $justify: map-get($susy-defaults, container-position)
72
- ) {
73
- $_return: if($justify == left, 0, auto) if($justify == right, 0, auto);
74
-
75
- @if not(index(left right center, $justify)) {
76
- $_return: nth($justify, 1);
77
- $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return);
78
- }
79
-
80
- @return $_return;
81
- }