susy 2.2.14 → 3.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
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
- }