ezy 0.2.0 → 0.2.6.alpha
Sign up to get free protection for your applications and to get access to all the features.
- 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 {
|