picasso 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module Picasso
2
- VERSION = "0.5.2"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -2,12 +2,13 @@
2
2
 
3
3
  // Grilla responsiva a 12 columnas (o mas).
4
4
 
5
+ // #### Manejo de columnas y filas
6
+
5
7
  // Cada set de columnas tiene un ancho porcentual. El elemento que haga uso de un espacio debe tener la clase `colX`,
6
8
  // en donde *X* es el número de columnas a ocupar. Las columnas definidas siempre deben estar contenidas por un elemento con la clase `row-col`.
9
+ // En caso de utilizar la clase `col0` la misma quedará oculta.
7
10
 
8
- // ### Ejemplos
9
-
10
- // #### Simétrico
11
+ // ##### Ejemplo1: Simétrico
11
12
 
12
13
  // ```
13
14
  // <div class="row-col">
@@ -52,7 +53,7 @@
52
53
  // </div>
53
54
  // ```
54
55
 
55
- // #### Asim&eacute;trico
56
+ // ##### Ejemplo2: Asim&eacute;trico
56
57
 
57
58
  // ```
58
59
  // <div class="row-col">
@@ -77,7 +78,7 @@
77
78
  // </div>
78
79
  // ```
79
80
 
80
- // #### Anidado
81
+ // ##### Ejemplo3: Anidado
81
82
 
82
83
  // ```
83
84
  // <div class="row-col">
@@ -120,39 +121,200 @@
120
121
  // </div>
121
122
  // ```
122
123
 
124
+ // #### Clases responsivas
125
+
126
+ // La grilla ofrece una serie de clases para poder manejar el comportamiento de las columnas ante diferentes resoluciones.
127
+ // Las clases disponibles son: `colX-small` (máximo 480px), `colX-medium` (entre 481px y 800px) y `colX-large` (entre 801px y 1024px):
128
+
129
+ // ##### Ejemplo 1
130
+ //
131
+ // Comportamiento esperado:
132
+ //
133
+ // - 12 columnas de 1 unidad
134
+ // - Large: 10 columnas de 1 unidad
135
+ // - Medium: 8 columnas de 1 unidad
136
+ // - Small: 6 columnas de 1 unidad
137
+
138
+ // ```
139
+ // <div class="row-col">
140
+ // <div class="col1">1</div>
141
+ // <div class="col1">2</div>
142
+ // <div class="col1">3</div>
143
+ // <div class="col1">4</div>
144
+ // <div class="col1">5</div>
145
+ // <div class="col1">6</div>
146
+ // <div class="col1 col0-small">7</div>
147
+ // <div class="col1 col0-small">8</div>
148
+ // <div class="col1 col0-medium col0-small">9</div>
149
+ // <div class="col1 col0-medium col0-small">10</div>
150
+ // <div class="col1 col0-large col0-medium col0-small">11</div>
151
+ // <div class="col1 col0-large col0-medium col0-small">12</div>
152
+ // </div>
153
+ // ```
154
+
155
+ // ##### Ejemplo 2
156
+ //
157
+ // Comportamiento esperado:
158
+ //
159
+ // - 12 columnas de 1 unidad
160
+ // - Large: 6 columnas de 2 unidades
161
+ // - Medium: 4 columnas de 3 unidades
162
+ // - Small: 2 columnas de 6 unidades
163
+
164
+ // ```
165
+ // <div class="row-col">
166
+ // <div class="col1 col2-large col3-medium col6-small">1</div>
167
+ // <div class="col1 col2-large col3-medium col6-small">2</div>
168
+ // <div class="col1 col2-large col3-medium col0-small">3</div>
169
+ // <div class="col1 col2-large col3-medium col0-small">4</div>
170
+ // <div class="col1 col2-large col0-medium col0-small">5</div>
171
+ // <div class="col1 col2-large col0-medium col0-small">6</div>
172
+ // <div class="col1 col0-large col0-medium col0-small">7</div>
173
+ // <div class="col1 col0-large col0-medium col0-small">8</div>
174
+ // <div class="col1 col0-large col0-medium col0-small">9</div>
175
+ // <div class="col1 col0-large col0-medium col0-small">10</div>
176
+ // <div class="col1 col0-large col0-medium col0-small">11</div>
177
+ // <div class="col1 col0-large col0-medium col0-small">12</div>
178
+ // </div>
179
+ // ```
180
+
181
+ // ##### Ejemplo 3
182
+ //
183
+ // Comportamiento esperado:
184
+ //
185
+ // - 4 columnas de 3 unidades
186
+ // - Large: 3 columnas de 4 unidades (la primera columna debe ser 2)
187
+ // - Medium: 2 columnas de 6 unidades (la primera columna debe ser 3)
188
+ // - Small: 1 columna de 12 unidades (la única columna debe ser 4)
189
+
190
+ // ```
191
+ // <div class="row-col">
192
+ // <div class="col3 col0-large col0-medium col0-small">1</div>
193
+ // <div class="col3 col4-large first-large col0-medium col0-small">2</div>
194
+ // <div class="col3 col4-large col6-medium first-medium col0-small">3</div>
195
+ // <div class="col3 col4-large col6-medium col12-small first-small">4</div>
196
+ // </div>
197
+ // ```
198
+
199
+ // > Notar que se utiliza la clase `first-<size>`.
200
+ // La misma permite aplicar aplicar a una columna que no es primera como si lo fuera.
201
+ // Caso contrario la misma tendrá un margen izquierdo por defecto.
202
+
123
203
  // #### Offset
124
204
 
125
- // La grilla ofrece la psibilidad de utilizar offsets, los mismos se manejan a trav&eacute;s de la clase `offsetX`:
205
+ // La grilla ofrece la posibilidad de utilizar aplicar márgenes, los mismos se manejan a trav&eacute;s de la clase `offsetX`.
206
+ // A su vez también se encuentran disponibles clases para el manejo de offsets ante diferentes resoluciones.
207
+ // Las clases disponibles son: `offsetX-small`, `offsetX-medium` y `offsetX-large`:
208
+
209
+ // ##### Ejemplo 1
210
+ //
211
+ // - 4 columnas de 1 unidad separadas cada una por 2 unidades
126
212
 
127
213
  // ```
128
214
  // <div class="row-col">
129
- // <div class="col1">col1</div>
130
- // <div class="col2 offset1">col2 offset1</div>
131
- // <div class="col2 offset1">col2 offset1</div>
132
- // <div class="col2 offset1">col2 offset1</div>
133
- // <div class="col1 offset1">col1 1</div>
215
+ // <div class="col1 offset2">1</div>
216
+ // <div class="col1 offset2">2</div>
217
+ // <div class="col1 offset2">3</div>
218
+ // <div class="col1 offset2">4</div>
134
219
  // </div>
220
+ // ```
221
+
222
+ // ##### Ejemplo 2
223
+ //
224
+ // Comportamiento esperado:
225
+ //
226
+ // - 4 columnas de 1 unidad separadas cada una por 2 unidades
227
+ // - Large: 3 columnas de 1 unidad separadas cada una por 3 unidades
228
+ // - Medium: 2 columnas de 1 unidad separadas cada una por 5 unidades
229
+ // - Small: 1 columna de 1 unidad separada a 11 unidades
230
+
231
+ // ```
135
232
  // <div class="row-col">
136
- // <div class="col2">col2</div>
137
- // <div class="col4 offset2">col2 offset2</div>
138
- // <div class="col2 offset2">col2 offset2</div>
233
+ // <div class="col1 offset2 offset3-large offset5-medium offset11-small">1</div>
234
+ // <div class="col1 offset2 offset3-large offset5-medium col0-small">2</div>
235
+ // <div class="col1 offset2 offset3-large col0-medium col0-small">3</div>
236
+ // <div class="col1 offset2 col0-large col0-medium col0-small">4</div>
139
237
  // </div>
238
+ // ```
239
+
240
+ // #### Pull / Push
241
+
242
+ // La grilla ofrece la posibilidad de utilizar posicionamiento relativo, los mismos se manejan a trav&eacute;s de las clases `pullX` y `pushX`.
243
+ // A su vez también se encuentran disponibles clases para el manejo de posiciones ante diferentes resoluciones.
244
+ // Las clases disponibles son: `pullX-small`/`pushX-small`, `pullX-medium`/`pushX-medium` y `pullX-large`/`pushX-large`:
245
+
246
+ // ##### Ejemplo 1
247
+ //
248
+ // - 2 columnas de 6 unidades (orden inverso)
249
+
250
+ // ```
140
251
  // <div class="row-col">
141
- // <div class="col4">col4</div>
142
- // <div class="col2 offset1">col2 offset1</div>
143
- // <div class="col4 offset1">col4 offset1</div>
252
+ // <div class="col6 push6">1</div>
253
+ // <div class="col6 pull6">2</div>
144
254
  // </div>
255
+ // ```
256
+
257
+ // ##### Ejemplo 2
258
+ //
259
+ // - 12 columnas de 1 unidad (orden inverso)
260
+
261
+ // ```
145
262
  // <div class="row-col">
146
- // <div class="col5">col5</div>
147
- // <div class="col5 offset2">col5 offset2</div>
263
+ // <div class="col1 push11">1</div>
264
+ // <div class="col1 push9">2</div>
265
+ // <div class="col1 push7">3</div>
266
+ // <div class="col1 push5">4</div>
267
+ // <div class="col1 push3">5</div>
268
+ // <div class="col1 push1">6</div>
269
+ // <div class="col1 pull1">7</div>
270
+ // <div class="col1 pull3">8</div>
271
+ // <div class="col1 pull5">9</div>
272
+ // <div class="col1 pull7">10</div>
273
+ // <div class="col1 pull9">11</div>
274
+ // <div class="col1 pull11">12</div>
148
275
  // </div>
276
+ // ```
277
+
278
+ // ##### Ejemplo 3
279
+ //
280
+ // Comportamiento esperado:
281
+ //
282
+ // - 4 columnas de 3 unidades (orden normal)
283
+ // - Large: 4 columnas de 3 unidades (orden inverso)
284
+ // - Medium: 4 columnas de 3 unidades (orden impares primero)
285
+ // - Small: 4 columnas de 3 unidades (orden pares primero)
286
+
287
+ // ```
149
288
  // <div class="row-col">
150
- // <div class="col1 offset2">col1 2</div>
151
- // <div class="col2 offset2">col1 offset2</div>
152
- // <div class="col1 offset2">col1 2</div>
289
+ // <div class="col3 push9-large push6-small">1</div>
290
+ // <div class="col3 push3-large push3-medium pull3-small">2</div>
291
+ // <div class="col3 pull3-large pull3-medium push3-small">3</div>
292
+ // <div class="col3 pull9-large pull6-small">4</div>
153
293
  // </div>
154
294
  // ```
155
295
 
296
+ // #### Centered
297
+
298
+ // La grilla ofrece la posibilidad de posicionar una columna de manera centrada a trav&eacute;s de la clase `centered`.
299
+ // A su vez también se encuentran disponibles clases para el manejo ante diferentes resoluciones.
300
+ // Las clases disponibles son: `centered-small`, `centered-medium` y `centered-large`:
301
+
302
+ // ##### Ejemplo 1
303
+ //
304
+ // Comportamiento esperado:
305
+ //
306
+ // - 1 columna de 4 unidades sin centrar
307
+ // - Large: 1 columna de 4 unidades centrada
308
+ // - Medium: 1 columnas de 4 unidades sin centrar
309
+ // - Small: 1 columnas de 4 unidades centrada
310
+
311
+ // ```
312
+ // <div class="row-col">
313
+ // <div class="col4 centered-large centered-small">1</div>
314
+ // </div>
315
+ // ```
316
+
317
+
156
318
  // ### Sass
157
319
 
158
320
  // #### Import
@@ -172,9 +334,15 @@
172
334
  // * `$grid-default-row-class`: Nombre de la clase para el contenedor (`row-col`). Valor predeterminado: `row-col`.
173
335
  // * `$grid-default-column-class`: Nombre de la clase para las columnas (`colX`). Valor predeterminado: `col`.
174
336
  // * `$grid-default-offset-class`: Nombre de la clase para aplicar offset (`offsetX`). Valor predeterminado: `offset`.
337
+ // * `$grid-default-centered-class`: Nombre de la clase para aplicar el centrado de columnas (`centered`). Valor predeterminado: `centered`.
338
+ // * `$grid-default-pull-class`: Nombre de la clase para aplicar pull (`pullX`). Valor predeterminado: `pull`.
339
+ // * `$grid-default-push-class`: Nombre de la clase para aplicar push (`pushX`). Valor predeterminado: `push`.
340
+ // * `$grid-default-first-class`: Nombre de la clase para aplicar el comportamiento de primeras columnas (`first`). Valor predeterminado: `first`.
175
341
  // * `$grid-default-container-class`: Nombre de la clase para el contenedor principal (`container`). Valor predeterminado: `container`.
176
342
  // * `$grid-default-include-offset`: Incluir estilos para aplicar offset. Valor predeterminado: `true`.
177
343
  // * `$grid-default-include-container`: Incluir estilos para el contenedor. Valor predeterminado: `true`.
344
+ // * `$grid-default-include-push`: Incluir estilos para aplicar push. Valor predeterminado: `true`.
345
+ // * `$grid-default-include-pull`: Incluir estilos para aplicar pull. Valor predeterminado: `true`.
178
346
 
179
347
 
180
348
  @import "compass/css3/box-sizing";
@@ -185,8 +353,14 @@ $grid-default-row-class: "row-col" !default;
185
353
  $grid-default-column-class: "col" !default;
186
354
  $grid-default-offset-class: "offset" !default;
187
355
  $grid-default-container-class: "container" !default;
356
+ $grid-default-centered-class: "centered" !default;
357
+ $grid-default-first-class: "first" !default;
358
+ $grid-default-pull-class: "pull" !default;
359
+ $grid-default-push-class: "push" !default;
188
360
  $grid-default-include-container: true !default;
189
361
  $grid-default-include-offset: true !default;
362
+ $grid-default-include-pull: true !default;
363
+ $grid-default-include-push: true !default;
190
364
 
191
365
  @mixin grid(){
192
366
 
@@ -194,21 +368,29 @@ $grid-default-include-offset: true !default;
194
368
  @include grid-container();
195
369
  }
196
370
 
197
- @include grid-columns();
371
+ .#{$grid-default-row-class} {
372
+ width: 100%;
373
+ @include clearfix;
198
374
 
199
- }
375
+ @include grid-columns("");
200
376
 
201
- @mixin grid-container(){
377
+ @media (max-width: 480px){
378
+ @include grid-columns("-small");
379
+ }
380
+
381
+ @media (min-width: 481px) and (max-width: 800px){
382
+ @include grid-columns("-medium");
383
+ }
384
+
385
+ @media (min-width: 801px) and (max-width: 1024px){
386
+ @include grid-columns("-large");
387
+ }
202
388
 
203
- .#{$grid-default-container-class} {
204
- width: 90%;
205
- max-width: 1200px;
206
- min-width: 950px;
207
389
  }
208
390
 
209
391
  }
210
392
 
211
- @mixin grid-columns(){
393
+ @mixin grid-columns($grid-size){
212
394
 
213
395
  $grid-gutters: $grid-default-columns - 1;
214
396
  $grid-space-width: 100% / $grid-default-columns;
@@ -217,56 +399,105 @@ $grid-default-include-offset: true !default;
217
399
  $grid-column-unit-width: ($grid-space-unit-width * 3) + $grid-corrector;
218
400
  $grid-gutter-unit-width: $grid-space-unit-width + $grid-corrector;
219
401
  $grid-magic-number-ie: 0.092;
220
-
221
- .#{$grid-default-row-class} {
402
+
403
+ [class^="#{$grid-default-column-class}#{$grid-size}"]{
222
404
  width: 100%;
223
- @include clearfix;
405
+ display: block;
406
+ float: left;
407
+ margin-left: $grid-gutter-unit-width;
408
+ @include box-sizing(border-box);
224
409
 
225
- [class^="#{$grid-default-column-class}"]{
226
- width: 100%;
227
- display: block;
228
- float: left;
229
- margin-left: $grid-gutter-unit-width;
230
- @include box-sizing(border-box);
410
+ &:first-child{
411
+ margin-left: 0;
412
+ }
231
413
 
232
- &:first-child{
233
- margin-left: 0;
234
- }
414
+ }
415
+
416
+ @if ($grid-default-include-pull == true) {
235
417
 
418
+ [class*="#{$grid-default-pull-class}"], [class*="#{$grid-default-push-class}"]{
419
+ position: relative;
236
420
  }
237
421
 
238
- @for $i from 1 through $grid-default-columns {
239
-
240
- $grid-column-width: ($grid-column-unit-width * $i) + ($grid-gutter-unit-width * ($i - 1));
422
+ }
241
423
 
242
- .#{$grid-default-column-class}#{$i} {
243
- width: $grid-column-width;
424
+ //Estilos para cada columna
425
+ @for $i from 1 through $grid-default-columns {
426
+
427
+ //Cálculo del ancho de las columnas
428
+ $grid-column-width: ($grid-column-unit-width * $i) + ($grid-gutter-unit-width * ($i - 1));
244
429
 
245
- @if $i != $grid-default-columns {
430
+ .#{$grid-default-column-class}#{$i}#{$grid-size}{
431
+ width: $grid-column-width;
246
432
 
247
- .ie7 &{
248
- width: $grid-column-width - $grid-magic-number-ie;
249
- }
433
+ @if ($i != $grid-default-columns and $grid-size == "") {
250
434
 
435
+ .ie7 &{
436
+ width: $grid-column-width - $grid-magic-number-ie;
251
437
  }
252
438
 
253
439
  }
254
440
 
255
- @if $grid-default-include-offset == true {
441
+ }
442
+
443
+ //Offset
444
+ @if ($grid-default-include-offset == true) {
256
445
 
257
- [class^="#{$grid-default-column-class}"].#{$grid-default-offset-class}#{$i}{
258
- margin-left: $grid-column-width + ($grid-space-unit-width * 2);
446
+ .#{$grid-default-offset-class}#{$i}#{$grid-size},
447
+ .#{$grid-default-offset-class}#{$i}#{$grid-size}:first-child{
448
+ margin-left: $grid-column-width;
449
+ }
259
450
 
260
- &:first-child{
261
- margin-left: $grid-column-width + $grid-space-unit-width;
262
- }
451
+ }
452
+
453
+ //Push
454
+ @if ($grid-default-include-push == true) {
263
455
 
264
- }
456
+ .#{$grid-default-push-class}#{$i}#{$grid-size},
457
+ .#{$grid-default-push-class}#{$i}#{$grid-size}:first-child{
458
+ left: $grid-column-width + $grid-gutter-unit-width;
459
+ }
460
+
461
+ }
265
462
 
463
+ //Pull
464
+ @if ($grid-default-include-pull == true) {
465
+
466
+ .#{$grid-default-pull-class}#{$i}#{$grid-size},
467
+ .#{$grid-default-pull-class}#{$i}#{$grid-size}:first-child{
468
+ left: -($grid-column-width + $grid-gutter-unit-width);
266
469
  }
267
470
 
268
471
  }
269
472
 
270
473
  }
474
+
475
+ //Clase helper para las primeras columnas que no lo son
476
+ .#{$grid-default-first-class}#{$grid-size}{
477
+ margin-left: 0;
478
+ }
271
479
 
272
- }
480
+ //Clase para ocultar columnas
481
+ .#{$grid-default-column-class}0#{$grid-size}{
482
+ display: none;
483
+ }
484
+
485
+ //Clase para columnas centradas
486
+ .#{$grid-default-centered-class}#{$grid-size},
487
+ .#{$grid-default-centered-class}#{$grid-size}:first-child {
488
+ margin-left: auto;
489
+ margin-right: auto;
490
+ float: none;
491
+ }
492
+
493
+ }
494
+
495
+ @mixin grid-container(){
496
+
497
+ .#{$grid-default-container-class} {
498
+ width: 90%;
499
+ max-width: 1200px;
500
+ min-width: 950px;
501
+ }
502
+
503
+ }