susy 1.0.9 → 2.2.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +1 -1
- data/README.md +20 -115
- data/VERSION +1 -1
- data/docs/changelog.rst +783 -0
- data/lib/compass-susy.rb +1 -0
- data/lib/susy.rb +14 -4
- data/sass/_su.scss +4 -0
- data/sass/_susy.scss +3 -15
- data/sass/_susyone.scss +4 -0
- data/sass/susy/_su.scss +7 -0
- data/sass/susy/language/_susy.scss +24 -0
- data/sass/susy/language/_susyone.scss +13 -0
- data/sass/susy/language/susy/_background.scss +385 -0
- data/sass/susy/language/susy/_bleed.scss +200 -0
- data/sass/susy/language/susy/_box-sizing.scss +47 -0
- data/sass/susy/language/susy/_breakpoint-plugin.scss +185 -0
- data/sass/susy/language/susy/_container.scss +81 -0
- data/sass/susy/language/susy/_context.scss +36 -0
- data/sass/susy/language/susy/_gallery.scss +94 -0
- data/sass/susy/language/susy/_grids.scss +64 -0
- data/sass/susy/language/susy/_gutters.scss +154 -0
- data/sass/susy/language/susy/_isolate.scss +77 -0
- data/sass/susy/language/susy/_margins.scss +94 -0
- data/sass/susy/language/susy/_padding.scss +74 -0
- data/sass/susy/language/susy/_rows.scss +138 -0
- data/sass/susy/language/susy/_settings.scss +216 -0
- data/sass/susy/language/susy/_span.scss +163 -0
- data/sass/susy/language/susy/_validation.scss +16 -0
- data/sass/susy/{_background.scss → language/susyone/_background.scss} +0 -0
- data/sass/susy/{_functions.scss → language/susyone/_functions.scss} +23 -22
- data/sass/susy/{_grid.scss → language/susyone/_grid.scss} +76 -50
- data/sass/susy/{_isolation.scss → language/susyone/_isolation.scss} +0 -0
- data/sass/susy/{_margin.scss → language/susyone/_margin.scss} +0 -0
- data/sass/susy/{_media.scss → language/susyone/_media.scss} +26 -33
- data/sass/susy/{_padding.scss → language/susyone/_padding.scss} +0 -0
- data/sass/susy/{_settings.scss → language/susyone/_settings.scss} +4 -0
- data/sass/susy/output/_float.scss +9 -0
- data/sass/susy/output/_shared.scss +15 -0
- data/sass/susy/output/_support.scss +9 -0
- data/sass/susy/output/float/_container.scss +16 -0
- data/sass/susy/output/float/_end.scss +40 -0
- data/sass/susy/output/float/_isolate.scss +22 -0
- data/sass/susy/output/float/_span.scss +35 -0
- data/sass/susy/output/shared/_background.scss +26 -0
- data/sass/susy/output/shared/_container.scss +21 -0
- data/sass/susy/output/shared/_direction.scss +42 -0
- data/sass/susy/output/shared/_inspect.scss +25 -0
- data/sass/susy/output/shared/_margins.scss +23 -0
- data/sass/susy/output/shared/_output.scss +14 -0
- data/sass/susy/output/shared/_padding.scss +23 -0
- data/sass/susy/output/support/_background.scss +58 -0
- data/sass/susy/output/support/_box-sizing.scss +19 -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 +95 -0
- data/sass/susy/su/_grid.scss +103 -0
- data/sass/susy/su/_settings.scss +73 -0
- data/sass/susy/su/_utilities.scss +111 -0
- data/sass/susy/su/_validation.scss +57 -0
- data/templates/project/_grids.scss +9 -0
- data/templates/project/manifest.rb +6 -10
- data/templates/project/style.scss +4 -0
- metadata +106 -111
- data/CHANGELOG.mkdn +0 -296
- data/Manifest +0 -39
- data/Rakefile +0 -19
- data/sass/susy/_support.scss +0 -198
- data/sass/susy/_units.scss +0 -159
- data/susy.gemspec +0 -35
- data/templates/project/_base.scss +0 -14
- data/templates/project/screen.scss +0 -12
- data/test/config.rb +0 -10
- data/test/css/background.css +0 -16
- data/test/css/bleed.css +0 -20
- data/test/css/functions.css +0 -7
- data/test/css/grid.css +0 -134
- data/test/css/isolation.css +0 -46
- data/test/css/margin.css +0 -20
- data/test/css/media.css +0 -101
- data/test/css/padding.css +0 -12
- data/test/scss/background.scss +0 -11
- data/test/scss/bleed.scss +0 -19
- data/test/scss/functions.scss +0 -15
- data/test/scss/grid.scss +0 -77
- data/test/scss/isolation.scss +0 -19
- data/test/scss/margin.scss +0 -27
- data/test/scss/media.scss +0 -50
- data/test/scss/padding.scss +0 -19
@@ -0,0 +1,16 @@
|
|
1
|
+
// Validation
|
2
|
+
// ==========
|
3
|
+
|
4
|
+
|
5
|
+
// Validate Column Math
|
6
|
+
// --------------------
|
7
|
+
@function valid-column-math(
|
8
|
+
$math,
|
9
|
+
$column-width
|
10
|
+
) {
|
11
|
+
@if $math == static and not($column-width) {
|
12
|
+
@error 'Static math requires a valid column-width setting.';
|
13
|
+
}
|
14
|
+
|
15
|
+
@return $column-width;
|
16
|
+
}
|
File without changes
|
@@ -57,8 +57,8 @@ $rem-with-px-fallback : true !default;
|
|
57
57
|
$columns : $total-columns
|
58
58
|
) {
|
59
59
|
@if round($columns) != $columns {
|
60
|
-
@warn "Susy works best with integer column-spans.
|
61
|
-
For partial-columns, you may need to finesse the math by hand using functions directly.";
|
60
|
+
@warn "Susy works best with integer column-spans." +
|
61
|
+
"For partial-columns, you may need to finesse the math by hand using functions directly.";
|
62
62
|
}
|
63
63
|
@return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width);
|
64
64
|
}
|
@@ -92,7 +92,7 @@ $rem-with-px-fallback : true !default;
|
|
92
92
|
$outerwidth: if($width, $width, columns-width($columns));
|
93
93
|
|
94
94
|
@if $width {
|
95
|
-
@if not
|
95
|
+
@if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); }
|
96
96
|
} @else {
|
97
97
|
@if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); }
|
98
98
|
}
|
@@ -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
|
}
|
@@ -245,7 +245,12 @@ $rem-with-px-fallback : true !default;
|
|
245
245
|
}
|
246
246
|
|
247
247
|
// This name will be deprecated...
|
248
|
-
@function absolute-ems(
|
248
|
+
@function absolute-ems(
|
249
|
+
$ems,
|
250
|
+
$font-size: $base-font-size
|
251
|
+
){
|
252
|
+
@return base-ems( $ems, $font-size);
|
253
|
+
}
|
249
254
|
|
250
255
|
// Return a length, after any em-values have been sent through absolute-ems().
|
251
256
|
//
|
@@ -288,7 +293,7 @@ $rem-with-px-fallback : true !default;
|
|
288
293
|
$layout : $val;
|
289
294
|
$has-layout : true;
|
290
295
|
} @else {
|
291
|
-
@if ($has-layout) and (
|
296
|
+
@if ($has-layout) and not($media) {
|
292
297
|
$max: $val;
|
293
298
|
} @else {
|
294
299
|
@if $media {
|
@@ -314,12 +319,12 @@ $rem-with-px-fallback : true !default;
|
|
314
319
|
$min: nth($media,2);
|
315
320
|
}
|
316
321
|
} @else {
|
317
|
-
@warn "Can't compare incompatible units.
|
318
|
-
Using #{$min} for min-width, and #{$max} for max-width";
|
322
|
+
@warn "Can't compare incompatible units." +
|
323
|
+
"Using #{$min} for min-width, and #{$max} for max-width";
|
319
324
|
}
|
320
325
|
@if (length($media) > 2) {
|
321
|
-
@warn "You can only send two lengths: a min-width and an (optional) max-width.
|
322
|
-
You sent #{length($media)}: #{$media}";
|
326
|
+
@warn "You can only send two lengths: a min-width and an (optional) max-width." +
|
327
|
+
"You sent #{length($media)}: #{$media}";
|
323
328
|
}
|
324
329
|
}
|
325
330
|
}
|
@@ -335,20 +340,16 @@ $rem-with-px-fallback : true !default;
|
|
335
340
|
// Return the nearest layout (column-count) above a given breakpoint.
|
336
341
|
//
|
337
342
|
// $min : The min-width media-query breakpoint above which to establish a new layout.
|
338
|
-
@function get-layout
|
343
|
+
@function get-layout(
|
339
344
|
$min
|
340
345
|
) {
|
341
|
-
$
|
342
|
-
$
|
343
|
-
|
344
|
-
$min
|
345
|
-
|
346
|
-
@
|
347
|
-
@
|
348
|
-
$columns : $columns + 1;
|
349
|
-
$layout-width : container-outer-width($columns);
|
350
|
-
}
|
351
|
-
$return : $columns;
|
346
|
+
$min : fix-ems($min);
|
347
|
+
$return : false;
|
348
|
+
|
349
|
+
@if comparable($min, $column-width) {
|
350
|
+
$return : ceil(($min + $gutter-width) / ($column-width + $gutter-width));
|
351
|
+
} @else {
|
352
|
+
@warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable.";
|
352
353
|
}
|
353
354
|
|
354
355
|
@return $return;
|
@@ -10,7 +10,7 @@
|
|
10
10
|
// Apply the border-box sizing model to all elements
|
11
11
|
// and adjust the grid math appropriately.
|
12
12
|
@mixin border-box-sizing {
|
13
|
-
$border-box-sizing: true;
|
13
|
+
$border-box-sizing: true !global;
|
14
14
|
* { @include box-sizing(border-box); }
|
15
15
|
}
|
16
16
|
|
@@ -22,18 +22,34 @@
|
|
22
22
|
// $columns : The number of columns in the Grid Layout.
|
23
23
|
@mixin set-container-width(
|
24
24
|
$columns : $total-columns,
|
25
|
-
$style : $container-style
|
25
|
+
$style : $container-style,
|
26
|
+
$px-vals : $pixel-values-only
|
26
27
|
){
|
27
28
|
$width: container-outer-width($columns);
|
28
29
|
|
29
30
|
@if $style == 'static' {
|
30
|
-
@
|
31
|
+
@if $px-vals == true {
|
32
|
+
width: round(convert-length($width, px));
|
33
|
+
} @else {
|
34
|
+
@include rem(width, $width);
|
35
|
+
}
|
31
36
|
} @else {
|
32
37
|
@if $style == 'fluid' {
|
33
|
-
@if unit($width) == '%' {
|
38
|
+
@if unit($width) == '%' {
|
39
|
+
@if $px-vals == true {
|
40
|
+
width: round(convert-length($width, px));
|
41
|
+
} @else {
|
42
|
+
@include rem(width, $width);
|
43
|
+
}
|
44
|
+
}
|
34
45
|
} @else {
|
35
|
-
@
|
36
|
-
|
46
|
+
@if $px-vals == true {
|
47
|
+
max-width: round(convert-length($width, px));
|
48
|
+
} @else {
|
49
|
+
@include rem(max-width, $width);
|
50
|
+
}
|
51
|
+
|
52
|
+
@include for-legacy-browser(ie,"6") {
|
37
53
|
@if unit($width) == 'rem' {
|
38
54
|
_width: round(convert-length($width, px));
|
39
55
|
} @else {
|
@@ -48,12 +64,18 @@
|
|
48
64
|
//
|
49
65
|
// $columns : The number of columns in the container.
|
50
66
|
@mixin apply-container(
|
51
|
-
$columns : $total-columns
|
67
|
+
$columns : $total-columns,
|
68
|
+
$px-vals : $pixel-values-only
|
52
69
|
){
|
53
70
|
@include pie-clearfix;
|
54
71
|
@include set-container-width($columns);
|
55
|
-
@
|
56
|
-
|
72
|
+
@if $px-vals == true {
|
73
|
+
padding-left: round(convert-length($grid-padding, px));
|
74
|
+
padding-right: round(convert-length($grid-padding, px));
|
75
|
+
} @else {
|
76
|
+
@include rem(padding-left, $grid-padding);
|
77
|
+
@include rem(padding-right, $grid-padding);
|
78
|
+
}
|
57
79
|
margin: { left: auto; right: auto; }
|
58
80
|
}
|
59
81
|
|
@@ -64,31 +86,16 @@
|
|
64
86
|
// : Two optional lengths (representing min and max-width media-query breakpoints).
|
65
87
|
// $media-layout-2 ...-10 : [optional] Same as $media-layout-1
|
66
88
|
@mixin container(
|
67
|
-
$media-
|
68
|
-
$media-layout-2 : false,
|
69
|
-
$media-layout-3 : false,
|
70
|
-
$media-layout-4 : false,
|
71
|
-
$media-layout-5 : false,
|
72
|
-
$media-layout-6 : false,
|
73
|
-
$media-layout-7 : false,
|
74
|
-
$media-layout-8 : false,
|
75
|
-
$media-layout-9 : false,
|
76
|
-
$media-layout-10 : false
|
89
|
+
$media-layouts...
|
77
90
|
){
|
78
|
-
$media-layouts
|
79
|
-
|
80
|
-
@if is-default-layout($media-layout-1) {
|
81
|
-
@include apply-container();
|
82
|
-
} @else {
|
83
|
-
@include at-breakpoint($media-layout-1) {
|
84
|
-
@include apply-container();
|
85
|
-
}
|
86
|
-
}
|
91
|
+
$media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns);
|
87
92
|
|
88
93
|
@each $ml in $media-layouts {
|
89
|
-
@if $ml {
|
94
|
+
@if is-default-layout($ml) {
|
95
|
+
@include apply-container;
|
96
|
+
} @else {
|
90
97
|
@include at-breakpoint($ml) {
|
91
|
-
@include
|
98
|
+
@include apply-container;
|
92
99
|
}
|
93
100
|
}
|
94
101
|
}
|
@@ -144,7 +151,9 @@
|
|
144
151
|
} @else {
|
145
152
|
float: $from;
|
146
153
|
margin-#{$to}: gutter($context, $style);
|
147
|
-
@
|
154
|
+
@include for-legacy-browser(ie, "6") {
|
155
|
+
display: inline;
|
156
|
+
}
|
148
157
|
}
|
149
158
|
}
|
150
159
|
|
@@ -162,9 +171,11 @@
|
|
162
171
|
float: $omega-float;
|
163
172
|
margin-#{$to}: 0;
|
164
173
|
|
165
|
-
@
|
174
|
+
@include for-legacy-browser(ie, "6", "7") {
|
166
175
|
*margin-#{$hack}: - $gutter-width;
|
167
|
-
@
|
176
|
+
@include for-legacy-browser(ie, "6") {
|
177
|
+
display: inline;
|
178
|
+
}
|
168
179
|
}
|
169
180
|
}
|
170
181
|
|
@@ -179,12 +190,20 @@
|
|
179
190
|
$from : $from-direction
|
180
191
|
) {
|
181
192
|
$from : unquote($from);
|
182
|
-
|
183
|
-
|
184
|
-
|
193
|
+
|
194
|
+
&:#{format-nth($n,$selector)} {
|
195
|
+
@if $n == "first" {
|
196
|
+
@include omega($from);
|
197
|
+
} @else {
|
198
|
+
@include with-browser-ranges(css-sel3) {
|
199
|
+
@include omega($from);
|
200
|
+
}
|
201
|
+
}
|
185
202
|
}
|
186
203
|
}
|
187
204
|
|
205
|
+
|
206
|
+
|
188
207
|
// ---------------------------------------------------------------------------
|
189
208
|
// Resets
|
190
209
|
|
@@ -202,9 +221,11 @@
|
|
202
221
|
width: auto;
|
203
222
|
margin-#{$to}: auto;
|
204
223
|
|
205
|
-
@
|
224
|
+
@include for-legacy-browser(ie, "6", "7") {
|
206
225
|
*margin-#{$hack}: auto;
|
207
|
-
@
|
226
|
+
@include for-legacy-browser(ie, "6") {
|
227
|
+
display: block;
|
228
|
+
}
|
208
229
|
}
|
209
230
|
}
|
210
231
|
|
@@ -226,7 +247,7 @@
|
|
226
247
|
float: $from;
|
227
248
|
margin-#{$to}: gutter($context, $style);
|
228
249
|
|
229
|
-
@
|
250
|
+
@include for-legacy-browser(ie, "6", "7") {
|
230
251
|
*margin-#{$hack}: auto;
|
231
252
|
}
|
232
253
|
}
|
@@ -246,14 +267,19 @@
|
|
246
267
|
$style : fix-static-misalignment()
|
247
268
|
) {
|
248
269
|
$from : unquote($from);
|
249
|
-
|
250
|
-
|
251
|
-
|
270
|
+
|
271
|
+
&:#{format-nth($n,$selector)} {
|
272
|
+
@if $n == "first" {
|
252
273
|
@include remove-omega($context, $from, $style);
|
274
|
+
} @else {
|
275
|
+
@include with-browser-ranges(css-sel3) {
|
276
|
+
@include remove-omega($context, $from, $style);
|
277
|
+
}
|
253
278
|
}
|
254
279
|
}
|
255
280
|
}
|
256
281
|
|
282
|
+
|
257
283
|
// ---------------------------------------------------------------------------
|
258
284
|
// Change Settings
|
259
285
|
|
@@ -270,17 +296,17 @@
|
|
270
296
|
$default-padding: $grid-padding;
|
271
297
|
|
272
298
|
// use the new settings
|
273
|
-
$total-columns: $columns;
|
274
|
-
$column-width: $width;
|
275
|
-
$gutter-width: $gutter;
|
276
|
-
$grid-padding: $padding;
|
299
|
+
$total-columns: $columns !global;
|
300
|
+
$column-width: $width !global;
|
301
|
+
$gutter-width: $gutter !global;
|
302
|
+
$grid-padding: $padding !global;
|
277
303
|
|
278
304
|
// apply to contents
|
279
305
|
@content;
|
280
306
|
|
281
307
|
// re-instate the defaults
|
282
|
-
$total-columns: $default-columns;
|
283
|
-
$column-width: $default-width;
|
284
|
-
$gutter-width: $default-gutter;
|
285
|
-
$grid-padding: $default-padding;
|
308
|
+
$total-columns: $default-columns !global;
|
309
|
+
$column-width: $default-width !global;
|
310
|
+
$gutter-width: $default-gutter !global;
|
311
|
+
$grid-padding: $default-padding !global;
|
286
312
|
}
|
File without changes
|
File without changes
|
@@ -9,13 +9,13 @@
|
|
9
9
|
) {
|
10
10
|
// store default $total-columns setting for later, then change it.
|
11
11
|
$default-layout : $total-columns;
|
12
|
-
$total-columns : $layout-cols;
|
12
|
+
$total-columns : $layout-cols !global;
|
13
13
|
|
14
14
|
// apply children in this new layout context.
|
15
15
|
@content;
|
16
16
|
|
17
17
|
// return to default $total-columns setting.
|
18
|
-
$total-columns : $default-layout;
|
18
|
+
$total-columns : $default-layout !global;
|
19
19
|
}
|
20
20
|
|
21
21
|
// Nest a block of code inside a new media-query and layout context.
|
@@ -36,7 +36,7 @@
|
|
36
36
|
$max : nth($media-layout,3);
|
37
37
|
$ie : nth($media-layout,4);
|
38
38
|
|
39
|
-
@if (
|
39
|
+
@if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) {
|
40
40
|
@warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work.";
|
41
41
|
}
|
42
42
|
|
@@ -44,7 +44,7 @@
|
|
44
44
|
@if $min or $layout or $max {
|
45
45
|
|
46
46
|
// If we don't have a layout, we create one based on the min-width.
|
47
|
-
@if not
|
47
|
+
@if not($layout) {
|
48
48
|
$layout: get-layout($min);
|
49
49
|
}
|
50
50
|
|
@@ -53,35 +53,31 @@
|
|
53
53
|
// Set our new layout context.
|
54
54
|
@include layout($layout) {
|
55
55
|
@if $breakpoint-media-output {
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
@if $min and $max {
|
61
|
-
// Both $min and $max
|
62
|
-
@media (min-width: $min) and (max-width: $max) {
|
63
|
-
@content;
|
64
|
-
}
|
65
|
-
} @else {
|
66
|
-
@if (not $min) and (not $max) {
|
67
|
-
// Neither $min nor $max:
|
68
|
-
// We can create a breakpoint based on the number of columns in the layout.
|
69
|
-
$min: fix-ems(container-outer-width($width: false));
|
70
|
-
}
|
71
|
-
@if $min {
|
72
|
-
// Min only:
|
73
|
-
@media (min-width: $min) {
|
56
|
+
@include with-browser-ranges(css-mediaqueries) {
|
57
|
+
@if $min and $max {
|
58
|
+
// Both $min and $max
|
59
|
+
@media (min-width: $min) and (max-width: $max) {
|
74
60
|
@content;
|
75
61
|
}
|
76
62
|
} @else {
|
77
|
-
|
78
|
-
|
79
|
-
|
63
|
+
@if not($min) and not($max) {
|
64
|
+
// Neither $min nor $max:
|
65
|
+
// We can create a breakpoint based on the number of columns in the layout.
|
66
|
+
$min: fix-ems(container-outer-width($width: false));
|
67
|
+
}
|
68
|
+
@if $min {
|
69
|
+
// Min only:
|
70
|
+
@media (min-width: $min) {
|
71
|
+
@content;
|
72
|
+
}
|
73
|
+
} @else {
|
74
|
+
// Max only:
|
75
|
+
@media (max-width: $max) {
|
76
|
+
@content;
|
77
|
+
}
|
80
78
|
}
|
81
79
|
}
|
82
80
|
}
|
83
|
-
// Return legacy-ie support to original
|
84
|
-
@include set-legacy-ie-support($atbreak-legacy-ie-matrix...);
|
85
81
|
}
|
86
82
|
// Set an IE fallback
|
87
83
|
@if $ie and $breakpoint-ie-output {
|
@@ -89,10 +85,7 @@
|
|
89
85
|
$ie: 'lt-ie9';
|
90
86
|
}
|
91
87
|
.#{$ie} & {
|
92
|
-
$atbreak-experimental-matrix: capture-experimental-matrix();
|
93
|
-
@include set-experimental-support($ms: true);
|
94
88
|
@content;
|
95
|
-
@include set-experimental-support($atbreak-experimental-matrix...);
|
96
89
|
}
|
97
90
|
}
|
98
91
|
|
@@ -101,12 +94,12 @@
|
|
101
94
|
}
|
102
95
|
}
|
103
96
|
} @else {
|
104
|
-
@warn "
|
97
|
+
@warn "We were unable to determine a layout for your breakpoint.";
|
105
98
|
}
|
106
99
|
|
107
100
|
} @else {
|
108
|
-
@warn "You need to provide either a valid layout (number of columns)
|
109
|
-
|
101
|
+
@warn "You need to provide either a valid layout (number of columns)"
|
102
|
+
+ "or a valid media-query min-width breakpoint (length).";
|
110
103
|
}
|
111
104
|
|
112
105
|
}
|