ezy 0.2.0 → 0.2.6.alpha
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 +101 -6
- data/VERSION +1 -1
- data/ezy.gemspec +3 -5
- data/sass/_ezy.scss +3 -3
- data/sass/ezy/_clearfix.scss +25 -0
- data/sass/ezy/_functions.scss +11 -0
- data/sass/ezy/_grid.scss +250 -0
- data/sass/ezy/_media.scss +47 -0
- data/sass/ezy/_settings.scss +18 -0
- data/sass/ezy/_sprites.scss +29 -82
- data/sass/ezy/grid/_debug.scss +22 -0
- data/sass/ezy/grid/_helpers.scss +249 -0
- data/sass/ezy/grid/_layout.scss +78 -0
- data/test/css/grid/elastic.css +13 -4
- data/test/css/grid/fluid.css +26 -10
- data/test/css/grid/gutter.css +42 -35
- data/test/css/grid/layout.css +118 -0
- data/test/css/grid/offset.css +51 -0
- data/test/css/grid/responsive.css +22 -12
- data/test/css/grid/static.css +19 -3
- data/test/css/sprites/layout.css +2 -2
- data/test/css/sprites/position.css +4 -4
- data/test/css/sprites/repeat.css +2 -2
- data/test/css/sprites/resolution.css +2 -2
- data/test/css/sprites/retina.css +2 -2
- data/test/css/sprites/simple.css +1 -1
- data/test/css/sprites/spacing.css +2 -2
- data/test/html/grid/layout-1.html +74 -0
- data/test/html/sprites/repeat.html +1 -1
- data/test/html/sprites/retina.html +1 -1
- data/test/html/sprites/simple.html +1 -1
- data/test/scss/grid/elastic.scss +1 -2
- data/test/scss/grid/gutter.scss +5 -5
- data/test/scss/grid/layout.scss +49 -0
- data/test/scss/grid/offset.scss +29 -0
- data/test/scss/grid/responsive.scss +2 -2
- metadata +17 -7
- data/test/css/sprites/responsive.css +0 -69
- data/test/html/sprites/responsive.html +0 -19
- data/test/scss/sprites/responsive.scss +0 -52
data/sass/ezy/_sprites.scss
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
@import "settings";
|
1
2
|
|
2
3
|
// ---------------------------------------------------------------------------
|
3
4
|
// Sprites
|
@@ -8,10 +9,9 @@
|
|
8
9
|
// https://github.com/chriseppstein/compass/issues/897
|
9
10
|
|
10
11
|
// ---------------------------------------------------------------------------
|
11
|
-
//
|
12
|
+
// Global variable for device pixel ratio
|
12
13
|
|
13
14
|
$min-device-pixel-ratio: 2 !default;
|
14
|
-
$legacy-selector: ".no-media-queries" !default;
|
15
15
|
|
16
16
|
// ---------------------------------------------------------------------------
|
17
17
|
// Sprite map store
|
@@ -160,34 +160,18 @@ $sprite-maps: ();
|
|
160
160
|
//
|
161
161
|
// Retina media query mixin
|
162
162
|
|
163
|
-
@mixin at-retina( $ratio: 2
|
164
|
-
@
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
only screen and ( min-resolution: #{ $ratio }dppx) and #{ $query } {
|
175
|
-
@content;
|
176
|
-
}
|
177
|
-
} @else {
|
178
|
-
@media
|
179
|
-
only screen and (-webkit-min-device-pixel-ratio: #{ $ratio }),
|
180
|
-
only screen and ( min--moz-device-pixel-ratio: #{ $ratio }),
|
181
|
-
only screen and ( -moz-min-device-pixel-ratio: #{ $ratio }),
|
182
|
-
only screen and ( -ms-min-device-pixel-ratio: #{ $ratio }),
|
183
|
-
only screen and ( -o-min-device-pixel-ratio: #{ $ratio }/1),
|
184
|
-
only screen and ( min-device-pixel-ratio: #{ $ratio }),
|
185
|
-
only screen and ( min-resolution: #{ $ratio * 96 }dpi),
|
186
|
-
only screen and ( min-resolution: #{ $ratio }dppx) {
|
187
|
-
@content;
|
188
|
-
}
|
163
|
+
@mixin at-retina( $ratio: 2 ) {
|
164
|
+
@media
|
165
|
+
only screen and (-webkit-min-device-pixel-ratio: #{ $ratio }),
|
166
|
+
only screen and ( min--moz-device-pixel-ratio: #{ $ratio }),
|
167
|
+
only screen and ( -moz-min-device-pixel-ratio: #{ $ratio }),
|
168
|
+
only screen and ( -ms-min-device-pixel-ratio: #{ $ratio }),
|
169
|
+
only screen and ( -o-min-device-pixel-ratio: #{ $ratio }/1),
|
170
|
+
only screen and ( min-device-pixel-ratio: #{ $ratio }),
|
171
|
+
only screen and ( min-resolution: #{ $ratio * 96 }dpi),
|
172
|
+
only screen and ( min-resolution: #{ $ratio }dppx) {
|
173
|
+
@content;
|
189
174
|
}
|
190
|
-
|
191
175
|
}
|
192
176
|
|
193
177
|
// ---------------------------------------------------------------------------
|
@@ -237,15 +221,13 @@ $sprite-maps: ();
|
|
237
221
|
$clean-up: $clean-up-retina
|
238
222
|
);
|
239
223
|
}
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
} @else {
|
244
|
-
$sprite-maps: $sprite-maps, ($sprite-settings);
|
245
|
-
}
|
224
|
+
|
225
|
+
$sprite-maps: append( $sprite-maps, ( $name $sprite $sprite-retina $position $position-retina $repeat $repeat-retina ), comma );
|
226
|
+
|
246
227
|
%sprite-placeholder-#{ $name } {
|
247
228
|
background-image: sprite-url( $sprite );
|
248
229
|
background-repeat: $repeat;
|
230
|
+
// background-position-x: $position;
|
249
231
|
}
|
250
232
|
%sprite-placeholder-#{ $name }-retina {
|
251
233
|
@if $sprite-retina {
|
@@ -256,6 +238,9 @@ $sprite-maps: ();
|
|
256
238
|
@if $repeat-retina != $repeat {
|
257
239
|
background-repeat: $repeat-retina;
|
258
240
|
}
|
241
|
+
// @if $position-retina != $position {
|
242
|
+
// background-position-x: $position-retina;
|
243
|
+
// }
|
259
244
|
}
|
260
245
|
}
|
261
246
|
}
|
@@ -274,9 +259,7 @@ $sprite-maps: ();
|
|
274
259
|
$offset-y: 0, // background offset y (optional)
|
275
260
|
$use-retina: true, // wether to use retina on hi-res screens (optional)
|
276
261
|
$offset-x-retina: null, // background offset x on retina (optional)
|
277
|
-
$offset-y-retina: null
|
278
|
-
$at-breakpoint: false, // media query
|
279
|
-
$legacy-support: false // fallback for media query
|
262
|
+
$offset-y-retina: null // background offset y on retina (optional)
|
280
263
|
) {
|
281
264
|
|
282
265
|
@if $offset-x-retina == null { $offset-x-retina: $offset-x; }
|
@@ -288,63 +271,27 @@ $sprite-maps: ();
|
|
288
271
|
$retina-map: return-sprite-map( $name, $retina: true );
|
289
272
|
}
|
290
273
|
|
291
|
-
// Catching media breakpoints from set-breakpoint
|
292
|
-
@if type-of( $at-breakpoint ) == "list" {
|
293
|
-
@if ( not $legacy-support ) and length( $at-breakpoint ) > 1 {
|
294
|
-
// Inheriting legacy support setting from set-breakpoint
|
295
|
-
$legacy-support: nth( $at-breakpoint, 2 );
|
296
|
-
}
|
297
|
-
$at-breakpoint: nth( $at-breakpoint, 1 );
|
298
|
-
}
|
299
|
-
|
300
274
|
@if $map and $image {
|
301
275
|
$pos: sprite-position($map, $image);
|
302
276
|
$pos-x: return-offset( nth( $pos, 1 ), $offset-x, "$offset-x must be a number, a pixel value or a percentage!" );
|
303
277
|
$pos-y: return-offset( nth( $pos, 2 ), $offset-y, "$offset-y must be a number, a pixel value or a percentage!" );
|
304
|
-
|
305
|
-
@if $at-breakpoint {
|
306
|
-
@media #{ $at-breakpoint } {
|
307
|
-
background-position: $pos-x $pos-y;
|
308
|
-
// Settings that would usually be set by extending %sprite-placeholder-#{ $name }
|
309
|
-
// @extend is not possible from within a media query
|
310
|
-
background-image: sprite-url( $map );
|
311
|
-
background-repeat: return-sprite-setting( $name, 6 );
|
312
|
-
}
|
313
|
-
} @else {
|
314
|
-
background-position: $pos-x $pos-y;
|
315
|
-
@extend %sprite-placeholder-#{ $name };
|
316
|
-
}
|
317
|
-
|
318
|
-
@if $legacy-support {
|
319
|
-
#{ $legacy-selector } & {
|
320
|
-
background-position: $pos-x $pos-y;
|
321
|
-
@extend %sprite-placeholder-#{ $name };
|
322
|
-
}
|
323
|
-
}
|
324
|
-
|
278
|
+
background-position: $pos-x $pos-y;
|
325
279
|
@if $retina-map {
|
326
|
-
@include at-retina( $min-device-pixel-ratio
|
280
|
+
@include at-retina( $min-device-pixel-ratio ) {
|
327
281
|
/* Retina sprite */
|
328
282
|
$pos: sprite-position($retina-map, $image);
|
329
283
|
$pos-x: return-offset( nth( $pos, 1 )/2, $offset-x-retina, "$offset-x-retina must be a number, a pixel value or a percentage!" );
|
330
284
|
$pos-y: return-offset( nth( $pos, 2 )/2, $offset-y-retina, "$offset-y-retina must be a number, a pixel value or a percentage!" );
|
331
285
|
background-position: $pos-x $pos-y;
|
332
|
-
@if $at-breakpoint {
|
333
|
-
// Settings that would usually be set by extending %sprite-placeholder-#{ $name }
|
334
|
-
// @extend is not possible from within a media query
|
335
|
-
background-image: sprite-url( $retina-map );
|
336
|
-
background-size: image-width( sprite-path( $retina-map ) )/2 auto;
|
337
|
-
@if return-sprite-setting( $name, 7 ) != return-sprite-setting( $name, 6 ) {
|
338
|
-
background-repeat: return-sprite-setting( $name, 7 );
|
339
|
-
}
|
340
|
-
}
|
341
|
-
}
|
342
|
-
@if ( not $at-breakpoint ) {
|
343
|
-
// Set to optional because placeholder only exists if a retina sprite is set
|
344
|
-
@extend %sprite-placeholder-#{ $name }-retina !optional;
|
345
286
|
}
|
346
287
|
}
|
347
288
|
}
|
289
|
+
|
290
|
+
@extend %sprite-placeholder-#{ $name };
|
291
|
+
@if $use-retina {
|
292
|
+
// Set to optional because placeholder only exists if a retina sprite is set
|
293
|
+
@extend %sprite-placeholder-#{ $name }-retina !optional;
|
294
|
+
}
|
348
295
|
}
|
349
296
|
|
350
297
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
// ---------------------------------------------------------------------------
|
2
|
+
// @mixin
|
3
|
+
|
4
|
+
@mixin debug-styles {
|
5
|
+
position: relative;
|
6
|
+
&:before {
|
7
|
+
background-color: rgba(0,0,0,.2);
|
8
|
+
display: inline-block;
|
9
|
+
font-family: monospace, serif;
|
10
|
+
font-size: 8px;
|
11
|
+
line-height: 11px;
|
12
|
+
padding: 0px 2px;
|
13
|
+
position: absolute;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
@mixin debug-info( $columns, $context: $total-columns ) {
|
18
|
+
$debug-text: "#{ $columns } of #{ $context }";
|
19
|
+
&:before {
|
20
|
+
content: "#{ $debug-text }";
|
21
|
+
}
|
22
|
+
}
|
@@ -0,0 +1,249 @@
|
|
1
|
+
// ---------------------------------------------------------------------------
|
2
|
+
// Grid helpers
|
3
|
+
// Functions and mixins used in and with ezy grid
|
4
|
+
|
5
|
+
// ---------------------------------------------------------------------------
|
6
|
+
// @function layout-width
|
7
|
+
//
|
8
|
+
// Returns width based on given number of culumns
|
9
|
+
// $columns : Number of columns to calculate width from
|
10
|
+
// @return : Width in the same unit as $column-width and $gutter-width
|
11
|
+
|
12
|
+
@function layout-width( $columns ) {
|
13
|
+
@if comparable( $column-width, $gutter-width ) {
|
14
|
+
@return $columns * ( $column-width + $gutter-width ) - $gutter-width;
|
15
|
+
} @else {
|
16
|
+
@warn "$column-width and $gutter-width must have the same unit set. #{ unit($column-width) }'s and #{ unit($gutter-width) }'s are not comparable.";
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
// ---------------------------------------------------------------------------
|
21
|
+
// @function grid-width
|
22
|
+
//
|
23
|
+
// Returns full width of a grid, based on number of columns.
|
24
|
+
// Similar to layout width, but adds grid padding
|
25
|
+
// $columns : Number of columns to calculate width from
|
26
|
+
// $grid-padding : Grid padding to add on both sides of layout width.
|
27
|
+
// : Defaults to globally set $grid-padding
|
28
|
+
// @return : Width in the same unit as $column-width, $gutter-width and $grid-padding
|
29
|
+
|
30
|
+
@function grid-width(
|
31
|
+
$columns,
|
32
|
+
$grid-padding: $grid-padding
|
33
|
+
) {
|
34
|
+
@if type-of( $grid-padding ) == "list" {
|
35
|
+
// If grid padding is set as 2 values (in case left
|
36
|
+
// and right are not the same), add the two
|
37
|
+
$grid-padding: nth( $grid-padding, 1 ) + nth( $grid-padding, 2 );
|
38
|
+
}
|
39
|
+
@if comparable( layout-width( $columns ), $grid-padding ) {
|
40
|
+
@return layout-width( $columns ) + $grid-padding * 2;
|
41
|
+
} @else {
|
42
|
+
@warn "$grid-padding must have the same unit as $column-width and $gutter-width. #{ unit( $grid-padding ) }'s and #{ unit( layout-width( $columns ) ) }'s are not comparable.";
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
// ---------------------------------------------------------------------------
|
47
|
+
// @function context-width
|
48
|
+
//
|
49
|
+
// Returns width based on given number of culumns, plus an extra gutter
|
50
|
+
// Used for % calculations in the grid
|
51
|
+
// $columns : Number of columns to calculate width from
|
52
|
+
// @return : Width in the same unit as $column-width and $gutter-width
|
53
|
+
|
54
|
+
@function context-width( $columns ) {
|
55
|
+
@return layout-width( $columns ) + $gutter-width;
|
56
|
+
}
|
57
|
+
|
58
|
+
// ---------------------------------------------------------------------------
|
59
|
+
// @function columns
|
60
|
+
//
|
61
|
+
// Same as layout-width( $columns ), but renamed for better context awareness
|
62
|
+
|
63
|
+
@function span-column-width( $columns ) {
|
64
|
+
@return layout-width( $columns );
|
65
|
+
}
|
66
|
+
|
67
|
+
// ---------------------------------------------------------------------------
|
68
|
+
// @function columns
|
69
|
+
//
|
70
|
+
// Returns a span columns width. If the grid is fluid, it will be as a
|
71
|
+
// percentage of the context width
|
72
|
+
|
73
|
+
@function columns(
|
74
|
+
$columns,
|
75
|
+
$context: $total-columns
|
76
|
+
) {
|
77
|
+
@if $is-fluid and $context {
|
78
|
+
@return percentage-round( layout-width( $columns ) / context-width( $context ) );
|
79
|
+
} @else if $is-fluid {
|
80
|
+
@warn $context-warn;
|
81
|
+
} @else {
|
82
|
+
@return layout-width( $columns );
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
// ---------------------------------------------------------------------------
|
87
|
+
// @function gutter
|
88
|
+
//
|
89
|
+
// Returns gutter in the same unit as $gutter-width if grid is static
|
90
|
+
// Returns gutter as a percentage of the context if grid is fluid
|
91
|
+
// $context : Number of columns in the current context.
|
92
|
+
// : If set to false, the returned value is as in static grid
|
93
|
+
// @return : Width as $gutter-width or as a percentage of the context
|
94
|
+
|
95
|
+
@function gutter(
|
96
|
+
$context: $total-columns
|
97
|
+
) {
|
98
|
+
@if $is-fluid and $context {
|
99
|
+
@return ( percentage-round( ( $gutter-width ) / context-width( $context ) ) );
|
100
|
+
} @else if $is-fluid {
|
101
|
+
@warn $context-warn;
|
102
|
+
} @else {
|
103
|
+
@return $gutter-width;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
// ---------------------------------------------------------------------------
|
108
|
+
// @mixin gutters
|
109
|
+
//
|
110
|
+
// Sets gutters using the gutter( $context ) function
|
111
|
+
// $context : Number of columns in the current context.
|
112
|
+
// : Only mandatory if grid is fluid
|
113
|
+
// $gutter-property : Set to "margin" or "padding"
|
114
|
+
|
115
|
+
@mixin gutters(
|
116
|
+
$context : $total-columns,
|
117
|
+
$gutter-property : $gutter-property
|
118
|
+
) {
|
119
|
+
@if $gutter-property == "margin" or $gutter-property == "padding" {
|
120
|
+
#{ $gutter-property }: {
|
121
|
+
left: gutter( $context ) / 2;
|
122
|
+
right: gutter( $context ) / 2;
|
123
|
+
}
|
124
|
+
} @else {
|
125
|
+
@warn "$gutter-property must be set to either 'margin' or 'padding'";
|
126
|
+
}
|
127
|
+
}
|
128
|
+
|
129
|
+
// ---------------------------------------------------------------------------
|
130
|
+
// @mixin offset
|
131
|
+
//
|
132
|
+
// Applies offset to the left/right. The offset is based on
|
133
|
+
// a number of columns
|
134
|
+
// $direction : Which direction to apply the offset
|
135
|
+
// $columns : Number of columns to offset with
|
136
|
+
// $context : Number of columns in the current context
|
137
|
+
// $gutter-property : Which gutter property the gutter is set with.
|
138
|
+
// : Affects the way the offset is applied
|
139
|
+
|
140
|
+
@mixin offset(
|
141
|
+
$direction,
|
142
|
+
$columns,
|
143
|
+
$context : $total-columns,
|
144
|
+
$gutter-property : $gutter-property
|
145
|
+
) {
|
146
|
+
/* Offset #{ $direction } by #{ $columns } columns */
|
147
|
+
$offset: columns( $columns, $context ) + gutter( $context ) * 1.5;
|
148
|
+
@if $gutter-property == "padding" {
|
149
|
+
$offset: columns( $columns, $context ) + gutter( $context );
|
150
|
+
}
|
151
|
+
@if $direction == "both" {
|
152
|
+
margin: {
|
153
|
+
left: $offset;
|
154
|
+
right: $offset;
|
155
|
+
}
|
156
|
+
} @else {
|
157
|
+
margin-#{ $direction }: $offset;
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
// ---------------------------------------------------------------------------
|
162
|
+
// @mixin pullout
|
163
|
+
// Pulls the column out to the left/right with a negative margin
|
164
|
+
// $direction : Which direction to apply the pull
|
165
|
+
// $columns : Number of columns to pull
|
166
|
+
// $context : Number of columns in the current context
|
167
|
+
// $gutter-property : Which gutter property the gutter is set with.
|
168
|
+
// : Affects the way the pull is applied
|
169
|
+
|
170
|
+
@mixin pullout(
|
171
|
+
$direction,
|
172
|
+
$columns,
|
173
|
+
$context : $total-columns,
|
174
|
+
$gutter-property : $gutter-property
|
175
|
+
) {
|
176
|
+
/* Pull out to the #{ $direction } by #{ $columns } columns */
|
177
|
+
$offset: columns( $columns, $context ) + gutter( $context ) / 2;
|
178
|
+
@if $gutter-property == "padding" {
|
179
|
+
$offset: columns( $columns, $context ) + gutter( $context );
|
180
|
+
}
|
181
|
+
margin-#{ $direction }: -($offset);
|
182
|
+
}
|
183
|
+
|
184
|
+
// ---------------------------------------------------------------------------
|
185
|
+
// @mixin reset
|
186
|
+
// Resets a column to its original state from a pullout or offset
|
187
|
+
// $direction : Which direction to reset.
|
188
|
+
// : Defaults to "both"
|
189
|
+
// $context : Number of columns in the current context
|
190
|
+
// $gutter-property : Which gutter property the gutter is set with.
|
191
|
+
// : Used to re-apply gutter in the right property
|
192
|
+
|
193
|
+
@mixin reset(
|
194
|
+
$direction : "both",
|
195
|
+
$context : $total-columns,
|
196
|
+
$gutter-property : $gutter-property
|
197
|
+
) {
|
198
|
+
@if $gutter-property == "padding" {
|
199
|
+
@if $direction == "both" {
|
200
|
+
margin: {
|
201
|
+
left: 0;
|
202
|
+
right: 0;
|
203
|
+
}
|
204
|
+
} @else {
|
205
|
+
margin-#{ $direction }: 0;
|
206
|
+
}
|
207
|
+
} @else {
|
208
|
+
@if $direction == "both" {
|
209
|
+
@include gutters( $context, $gutter-property );
|
210
|
+
} @else {
|
211
|
+
#{ $gutter-property }-#{ $direction }: gutter( $context ) / 2;
|
212
|
+
}
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
216
|
+
// ---------------------------------------------------------------------------
|
217
|
+
// @mixin remove-offset
|
218
|
+
// Mapping @mixin reset()
|
219
|
+
|
220
|
+
@mixin remove-offset(
|
221
|
+
$direction : "both",
|
222
|
+
$context : $total-columns,
|
223
|
+
$gutter-property : $gutter-property
|
224
|
+
) {
|
225
|
+
/* Removing offset #{ $direction } */
|
226
|
+
@include reset(
|
227
|
+
$direction : $direction,
|
228
|
+
$context : $context,
|
229
|
+
$gutter-property : $gutter-property
|
230
|
+
);
|
231
|
+
}
|
232
|
+
|
233
|
+
// ---------------------------------------------------------------------------
|
234
|
+
// @mixin remove-pullout
|
235
|
+
// Mapping @mixin reset()
|
236
|
+
|
237
|
+
@mixin remove-pullout(
|
238
|
+
$direction : "both",
|
239
|
+
$context : $total-columns,
|
240
|
+
$gutter-property : $gutter-property
|
241
|
+
) {
|
242
|
+
/* Removing pullout #{ $direction } */
|
243
|
+
@include reset(
|
244
|
+
$direction : $direction,
|
245
|
+
$context : $context,
|
246
|
+
$gutter-property : $gutter-property
|
247
|
+
);
|
248
|
+
}
|
249
|
+
|
@@ -0,0 +1,78 @@
|
|
1
|
+
// ---------------------------------------------------------------------------
|
2
|
+
// Importing dependencies
|
3
|
+
|
4
|
+
@import "../media";
|
5
|
+
|
6
|
+
// ---------------------------------------------------------------------------
|
7
|
+
// Layout store, for use in each-layout
|
8
|
+
|
9
|
+
$layouts: ();
|
10
|
+
|
11
|
+
// ---------------------------------------------------------------------------
|
12
|
+
// @function set-layout
|
13
|
+
|
14
|
+
@function set-layout(
|
15
|
+
$columns,
|
16
|
+
$grid-padding : false,
|
17
|
+
$at-breakpoint : false,
|
18
|
+
$legacy-support : false
|
19
|
+
) {
|
20
|
+
|
21
|
+
// Catching media breakpoints from set-breakpoint
|
22
|
+
@if type-of( $at-breakpoint ) == "list" {
|
23
|
+
@if ( not $legacy-support ) and length( $at-breakpoint ) > 1 {
|
24
|
+
// Inheriting legacy support setting from set-breakpoint
|
25
|
+
$legacy-support: nth( $at-breakpoint, 2 );
|
26
|
+
$at-breakpoint: nth( $at-breakpoint, 1 );
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
$layout: ( $columns ($grid-padding) ($at-breakpoint) $legacy-support );
|
31
|
+
|
32
|
+
// Storing layout
|
33
|
+
$layouts: append( $layouts, $layout, comma );
|
34
|
+
|
35
|
+
@return $layout;
|
36
|
+
|
37
|
+
}
|
38
|
+
|
39
|
+
// ---------------------------------------------------------------------------
|
40
|
+
// @mixin at-layout
|
41
|
+
|
42
|
+
@mixin at-layout( $layout ) {
|
43
|
+
|
44
|
+
// Storing reference to global variables
|
45
|
+
$at-breakpoint-ref : $at-breakpoint;
|
46
|
+
$total-columns-ref : $total-columns;
|
47
|
+
$grid-padding-ref : $grid-padding;
|
48
|
+
|
49
|
+
$total-columns : nth( $layout, 1 );
|
50
|
+
$grid-padding : nth( $layout, 2 );
|
51
|
+
$at-breakpoint : nth( $layout, 3 );
|
52
|
+
$legacy-support : nth( $layout, 4 );
|
53
|
+
|
54
|
+
@if $at-breakpoint {
|
55
|
+
@include at-breakpoint( $at-breakpoint $legacy-support ) {
|
56
|
+
@content;
|
57
|
+
}
|
58
|
+
} @else {
|
59
|
+
@content;
|
60
|
+
}
|
61
|
+
|
62
|
+
// Resetting references to original values
|
63
|
+
$at-breakpoint : $at-breakpoint-ref;
|
64
|
+
$total-columns : $total-columns-ref;
|
65
|
+
$grid-padding : $grid-padding-ref;
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
// ---------------------------------------------------------------------------
|
70
|
+
// @mixin each-layout
|
71
|
+
|
72
|
+
@mixin each-layout( $layouts: $layouts ) {
|
73
|
+
@each $layout in $layouts {
|
74
|
+
@include at-layout( $layout ) {
|
75
|
+
@content;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
data/test/css/grid/elastic.css
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
/*
|
1
|
+
/* ------------------------------------------------- *
|
2
|
+
* Ezy Grid by Frej Raahede Nielsen
|
3
|
+
* http://github.com/raahede/ezy
|
4
|
+
* ------------------------------------------------- *
|
5
|
+
*/
|
6
|
+
/* ------------------------------------------------- *
|
2
7
|
* Micro Clearfix
|
3
8
|
* http://nicolasgallagher.com/micro-clearfix-hack/
|
4
9
|
*/
|
@@ -21,7 +26,7 @@
|
|
21
26
|
*zoom: 1;
|
22
27
|
}
|
23
28
|
|
24
|
-
/*
|
29
|
+
/* --- End clearfix --- */
|
25
30
|
.page {
|
26
31
|
margin-left: auto;
|
27
32
|
margin-right: auto;
|
@@ -29,6 +34,8 @@
|
|
29
34
|
|
30
35
|
.page {
|
31
36
|
max-width: 70em;
|
37
|
+
padding-left: 0;
|
38
|
+
padding-right: 0;
|
32
39
|
font-size: 14px;
|
33
40
|
}
|
34
41
|
@media (min-width: 20.1em) {
|
@@ -55,6 +62,8 @@
|
|
55
62
|
/* Spanning 4 of 12 columns */
|
56
63
|
width: 30.55%;
|
57
64
|
float: left;
|
58
|
-
margin
|
59
|
-
|
65
|
+
/* Fixing double margin on IE6 */
|
66
|
+
_display: inline;
|
67
|
+
margin-left: 1.385%;
|
68
|
+
margin-right: 1.385%;
|
60
69
|
}
|
data/test/css/grid/fluid.css
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
/*
|
1
|
+
/* ------------------------------------------------- *
|
2
|
+
* Ezy Grid by Frej Raahede Nielsen
|
3
|
+
* http://github.com/raahede/ezy
|
4
|
+
* ------------------------------------------------- *
|
5
|
+
*/
|
6
|
+
/* ------------------------------------------------- *
|
2
7
|
* Micro Clearfix
|
3
8
|
* http://nicolasgallagher.com/micro-clearfix-hack/
|
4
9
|
*/
|
@@ -21,7 +26,7 @@
|
|
21
26
|
*zoom: 1;
|
22
27
|
}
|
23
28
|
|
24
|
-
/*
|
29
|
+
/* --- End clearfix --- */
|
25
30
|
.page {
|
26
31
|
margin-left: auto;
|
27
32
|
margin-right: auto;
|
@@ -29,6 +34,8 @@
|
|
29
34
|
|
30
35
|
.page {
|
31
36
|
max-width: 1050px;
|
37
|
+
padding-left: 0;
|
38
|
+
padding-right: 0;
|
32
39
|
}
|
33
40
|
|
34
41
|
.grid {
|
@@ -43,33 +50,42 @@
|
|
43
50
|
/* Spanning 2 of 12 columns */
|
44
51
|
width: 13.88%;
|
45
52
|
float: left;
|
46
|
-
margin
|
47
|
-
|
53
|
+
/* Fixing double margin on IE6 */
|
54
|
+
_display: inline;
|
55
|
+
margin-left: 1.385%;
|
56
|
+
margin-right: 1.385%;
|
48
57
|
}
|
49
58
|
|
50
59
|
.span-columns-4 {
|
51
60
|
/* Spanning 4 of 12 columns */
|
52
61
|
width: 30.55%;
|
53
62
|
float: left;
|
54
|
-
margin
|
55
|
-
|
63
|
+
/* Fixing double margin on IE6 */
|
64
|
+
_display: inline;
|
65
|
+
margin-left: 1.385%;
|
66
|
+
margin-right: 1.385%;
|
56
67
|
}
|
57
68
|
|
58
69
|
.span-columns-6 {
|
59
70
|
/* Spanning 6 of 12 columns */
|
60
71
|
width: 47.22%;
|
61
72
|
float: left;
|
62
|
-
margin
|
63
|
-
|
73
|
+
/* Fixing double margin on IE6 */
|
74
|
+
_display: inline;
|
75
|
+
margin-left: 1.385%;
|
76
|
+
margin-right: 1.385%;
|
64
77
|
}
|
65
78
|
|
66
79
|
/* -------------------------------------------------------------------- *
|
67
80
|
* Grid columns: using grid-init()
|
68
81
|
*/
|
69
82
|
.span-columns-2, .span-columns-4, .span-columns-6, .span-columns-18 {
|
83
|
+
/* Grid column base at a 12-column context */
|
84
|
+
margin-left: 1.385%;
|
85
|
+
margin-right: 1.385%;
|
70
86
|
float: left;
|
71
|
-
margin
|
72
|
-
|
87
|
+
/* Fixing double margin on IE6 */
|
88
|
+
_display: inline;
|
73
89
|
}
|
74
90
|
|
75
91
|
.span-columns-2 {
|