crispy-grid 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -53,12 +53,37 @@ Pending. Please have a look at the source.
53
53
 
54
54
  3. Customize and import the grid in your application stylesheet:
55
55
 
56
- // Grid Configuration
57
- $grid-column-width: 30px
58
- $grid-gutter-width: 10px
56
+ ### Configuration for a Single Device
57
+
58
+ The grid configuration is layed out for multiple devices.
59
+ Though, you can also use Crispy Grid the classic way without any overhead.
60
+ Just provide one setting and ignore the fact that the variables are
61
+ written in plural.
62
+
63
+ // Copy this into your app in order to customize the grid
64
+ $devices: desktop
65
+ $grid-column-widths: 30px
66
+ $grid-gutter-widths: 10px
59
67
  $grid-columns: 25
60
68
 
61
- @import crispy-grid
69
+ // Import Crispy Grid below the configuration
70
+ @import crispy/grid
71
+
72
+ ### Configuration for Multiple Devices
73
+
74
+ In `$devices` you can list all devices you whish to respond to.
75
+ The nth entry of any of the following lists belongs to the nth device (the order of `$devices` matters).
76
+ The first device is the default for all grid helpers.
77
+ Consider to set mobile as default device when following the mobile-first design approach.
78
+
79
+ // Copy this into your app in order to customize the grid
80
+ $devices: desktop, tablet, handheld-640, handheld-320
81
+ $grid-column-widths: 30px, 30px, 20px, 20px
82
+ $grid-gutter-widths: 10px, 10px, 5px, 5px
83
+ $grid-columns: 30, 25, 25, 13
84
+
85
+ // Import Crispy Grid below the configuration
86
+ @import crispy/grid
62
87
 
63
88
  ## License
64
89
 
@@ -1,9 +1,15 @@
1
1
  // Crispy Grid Configuration
2
2
  //==========================
3
3
 
4
- // Grid Configuration
5
- $grid-column-width: 30px !default
6
- $grid-gutter-width: 10px !default
7
- $grid-columns: 25 !default
4
+ // Configure grid for every device you whish to respond to
5
+ // The nth entry of any list belongs to the nth device (the order of $devices matters).
6
+ // The lists can take any number of devices, including 1.
7
+ // If you do not plan to support multiple devices, you may want to delete all but the first entries.
8
+ // The first device is the default for all grid helpers.
9
+ // Consider to set mobile as default device when following the mobile-first design approach.
10
+ $devices: desktop, tablet, handheld-640, handheld-320 !default
11
+ $grid-column-widths: 30px, 30px, 20px, 20px !default
12
+ $grid-gutter-widths: 10px, 10px, 5px, 5px !default
13
+ $grid-columns: 30, 25, 25, 13 !default
8
14
 
9
15
  @import crispy/grid
@@ -1,11 +1,27 @@
1
1
  @import compass//utilities/general/clearfix
2
2
 
3
- // Derived Variables
4
- //==================
3
+ // Grid Configuration Accessors
4
+ //=============================
5
+ @function default-device()
6
+ @return nth($devices, 1)
7
+
8
+ @function grid-column-width($device: default-device())
9
+ @return nth($grid-column-widths, index($devices, $device))
10
+
11
+ @function grid-gutter-width($device: default-device())
12
+ @return nth($grid-gutter-widths, index($devices, $device))
13
+
14
+ @function grid-columns($device: default-device())
15
+ @return nth($grid-columns, index($devices, $device))
16
+
5
17
  // Note that the gutter is only between the columns, i.e. you have 1 gutter less than columns
6
- $grid-gutters: $grid-columns - 1
7
- // These default settings result in a grid-width of 990 px
8
- $grid-width: $grid-column-width * $grid-columns + $grid-gutter-width * $grid-gutters
18
+ @function grid-gutters($device: default-device())
19
+ @return grid-columns($device) - 1
20
+
21
+ // The default settings result in a grid-width of 990 px
22
+ @function grid-width($device: default-device())
23
+ @return grid-column-width($device) * grid-columns($device) + grid-gutter-width($device) * grid-gutters($device)
24
+
9
25
 
10
26
  // Public Methods
11
27
  //===============
@@ -18,30 +34,30 @@ $grid-width: $grid-column-width * $grid-columns + $grid-gutter-width * $grid-gut
18
34
  // In order to differentiate between left and right padding/border-width you can set $different-right-padding/-border-width.
19
35
  // Example: +grid(4, 10px, 15px) will set padding-left: 10px, padding-right: 15px and the element will have the same overall width as +grid(4).
20
36
  // By default, the gutter is represented using margin-right, which can also be overridden.
21
- =column($colspan, $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: $grid-gutter-width, $left-gutter: false, $subtract-border-from: false)
37
+ =column($colspan, $device: default-device(), $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: grid-gutter-width($device), $left-gutter: false, $subtract-border-from: false)
22
38
  +column-behavior
23
- +column-metrics($colspan, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $gutter, $left-gutter, $subtract-border-from: $subtract-border-from)
39
+ +column-metrics($colspan, $device, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $gutter, $left-gutter, $subtract-border-from: $subtract-border-from)
24
40
 
25
41
  // The last column should not have a gutter.
26
42
  // Respectively, $gutter defaults to 0 in this mixin.
27
- =last-column($colspan, $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: 0, $left-gutter: false, $subtract-border-from: false)
28
- +column($colspan, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $gutter, $left-gutter, $subtract-border-from)
43
+ =last-column($colspan, $device: default-device(), $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: 0, $left-gutter: false, $subtract-border-from: false)
44
+ +column($colspan, $device, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $gutter, $left-gutter, $subtract-border-from)
29
45
 
30
46
  // The only difference between the last and other columns is that the last column has margin-right set to 0.
31
47
  =last
32
48
  margin-right: 0
33
49
 
34
50
  // A row spans the whole grid width, i.e. it is the only column in a row. This is just a more elegant way for writing +last-column($grid-columns).
35
- =row($colspan: $grid-columns, $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: 0, $left-gutter: false, $subtract-border-from: false)
36
- +last-column($colspan, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $gutter, $left-gutter, $subtract-border-from)
51
+ =row($device: default-device(), $colspan: grid-columns($device), $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: 0, $left-gutter: false, $subtract-border-from: false)
52
+ +last-column($colspan, $device, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $gutter, $left-gutter, $subtract-border-from)
37
53
 
38
54
  // Use this mixin for your (none-floating) grid container.
39
55
  // By default, it spans the whole grid-width and is centered.
40
56
  // Unlike with columns, paddings and borders of a container do not affect its inner width.
41
57
  // Clearfixing has to be done in order to enforce the container to enclose its content.
42
58
  // By default, the overflow: hidden method is used. Specify $clearfix: pie if container contents should be visible outside of the container (e.g. when positioned absolutely).
43
- =grid-container($colspan: $grid-columns, $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $left-margin: auto, $right-margin: auto, $clearfix: overflow)
44
- +column-metrics($colspan, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $right-margin, $left-margin, true)
59
+ =grid-container($device: default-device(), $colspan: grid-columns($device), $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $left-margin: auto, $right-margin: auto, $clearfix: overflow)
60
+ +column-metrics($colspan, $device, $padding, $differing-right-padding, $border-width, $differing-right-border-width, $right-margin, $left-margin, true)
45
61
  @if $clearfix == pie or $clearfix == pie-clearfix
46
62
  +pie-clearfix
47
63
  @else
@@ -52,18 +68,18 @@ $grid-width: $grid-column-width * $grid-columns + $grid-gutter-width * $grid-gut
52
68
  =column-behavior
53
69
  float: left
54
70
 
55
- =column-metrics($column-width, $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: $grid-gutter-width, $left-gutter: false, $container: false, $subtract-border-from: false)
71
+ =column-metrics($column-width, $device: default-device(), $padding: 0, $differing-right-padding: false, $border-width: 0, $differing-right-border-width: false, $gutter: grid-gutter-width($device), $left-gutter: false, $container: false, $subtract-border-from: false)
56
72
  // Convert column counts to widths with unit
57
- $column-width: colspan-to-width($column-width)
58
- $padding: colspan-to-width($padding, $include-last-gutter: true)
59
- $differing-right-padding: colspan-to-width($differing-right-padding, $include-last-gutter: true)
60
- $border-width: colspan-to-width($border-width, $include-last-gutter: true)
61
- $differing-right-border-width: colspan-to-width($differing-right-border-width, $include-last-gutter: true)
62
- @if is_column_count($gutter)
73
+ $column-width: colspan-to-width($column-width, $device)
74
+ $padding: colspan-to-width($padding, $device, $include-last-gutter: true)
75
+ $differing-right-padding: colspan-to-width($differing-right-padding, $device, $include-last-gutter: true)
76
+ $border-width: colspan-to-width($border-width, $device, $include-last-gutter: true)
77
+ $differing-right-border-width: colspan-to-width($differing-right-border-width, $device, $include-last-gutter: true)
78
+ @if is-column-count($gutter)
63
79
  // It is assumed that the original gutter should also be preserved in addition to the one of the last column
64
- $gutter: $grid-gutter-width + colspan-to-width($gutter, $include-last-gutter: true)
65
- @if is_column_count($left-gutter)
66
- $left-gutter: colspan-to-width($left-gutter, $include-last-gutter: true)
80
+ $gutter: grid-gutter-width($device) + colspan-to-width($gutter, $device, $include-last-gutter: true)
81
+ @if is-column-count($left-gutter)
82
+ $left-gutter: colspan-to-width($left-gutter, $device, $include-last-gutter: true)
67
83
 
68
84
  // Calculate derived metrics
69
85
  $right-border-width: right-value($border-width, $differing-right-border-width)
@@ -97,23 +113,23 @@ $grid-width: $grid-column-width * $grid-columns + $grid-gutter-width * $grid-gut
97
113
  @else if $gutter
98
114
  margin-right: $gutter
99
115
 
100
- @function colspan-to-width($colspan, $include-last-gutter: false)
101
- @if is_column_count($colspan)
102
- @return column-count-to-width($colspan, $include-last-gutter)
116
+ @function colspan-to-width($colspan, $device: default-device(), $include-last-gutter: false)
117
+ @if is-column-count($colspan)
118
+ @return column-count-to-width($colspan, $device, $include-last-gutter)
103
119
  @else
104
120
  @return $colspan
105
121
 
106
- @function is_column_count($colspan)
122
+ @function is-column-count($colspan)
107
123
  @if type_of($colspan) == 'number'
108
124
  @if unitless($colspan) and $colspan > 0
109
125
  @return true
110
126
  @return false
111
127
 
112
- @function column-count-to-width($column-count, $include-last-gutter: false)
128
+ @function column-count-to-width($column-count, $device: default-device(), $include-last-gutter: false)
113
129
  @if $include-last-gutter
114
- @return ($grid-column-width + $grid-gutter-width) * $column-count
130
+ @return (grid-column-width($device) + grid-gutter-width($device)) * $column-count
115
131
  @else
116
- @return $grid-column-width * $column-count + $grid-gutter-width * ($column-count - 1)
132
+ @return grid-column-width($device) * $column-count + grid-gutter-width($device) * ($column-count - 1)
117
133
 
118
134
  // adds to comparable values or doubles the first one
119
135
  @function left-and-right-sum($value, $differing-right-value)
@@ -2,17 +2,16 @@
2
2
  //==========================
3
3
  // Copy this into your app in order to customize the grid
4
4
 
5
- // Grid Configuration
6
- $grid-column-width: 30px
7
- $grid-gutter-width: 10px
8
- $grid-columns: 25
9
-
10
- // Note that that there is always one gutter between two columns
11
- // $grid-gutters: $grid-columns - 1
12
-
13
- // The grid width is calculated from the values above
14
- // $grid-width: $grid-column-width * $grid-columns + $grid-gutter-width * $grid-gutters
15
- // For the default values, that is 30px * 25 + 10px * 24 = 990px
5
+ // Configure grid for every device you whish to respond to
6
+ // The nth entry of any list belongs to the nth device (the order of $devices matters).
7
+ // The lists can take any number of devices, including 1.
8
+ // If you do not plan to support multiple devices, you may want to delete all but the first entries.
9
+ // The first device is the default for all grid helpers.
10
+ // Consider to set mobile as default device when following the mobile-first design approach.
11
+ $devices: desktop, tablet, handheld-640, handheld-320 !default
12
+ $grid-column-widths: 30px, 30px, 20px, 20px !default
13
+ $grid-gutter-widths: 10px, 10px, 5px, 5px !default
14
+ $grid-columns: 30, 25, 25, 13 !default
16
15
 
17
16
  // This import statement has to be included in your application stylesheet
18
- @import crispy-grid
17
+ @import crispy/grid
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: crispy-grid
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.0
5
+ version: 0.3.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Christian Peters
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-12-04 00:00:00 Z
13
+ date: 2011-12-30 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: compass
@@ -31,7 +31,7 @@ dependencies:
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 3.1.0
34
+ version: 3.1.2
35
35
  type: :runtime
36
36
  version_requirements: *id002
37
37
  description: In short, Crispy Grid closes the gap between easy-to-use grids for simple web pages and doing everything by hand due to layout complexity.