compass-grid-plugin 0.0.3 → 0.0.4

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.
@@ -2,4 +2,17 @@ require 'compass' # Ensure Compass
2
2
  require 'compass/grid'
3
3
 
4
4
  # Ensure maximum useful precision
5
- Sass::Script::Number.precision = 7
5
+ Sass::Script::Number.precision = 7
6
+
7
+ module Sass::Script::Functions
8
+ def precision(*args)
9
+ if !args[0].nil?
10
+ precision = args[0]
11
+ assert_type precision, :Number
12
+ Sass::Script::Number.precision = precision.value
13
+ end
14
+ Sass::Script::Number.new(Sass::Script::Number.precision)
15
+ end
16
+
17
+ declare :precision, :args => [:number]
18
+ end
@@ -1,7 +1,7 @@
1
- require 'compass/grid/version'
2
-
3
- module Compass
4
- module Grid
5
- Compass::Frameworks.register('compass-grid', :path => "#{File.dirname(__FILE__)}/../..")
6
- end
1
+ require 'compass/grid/version'
2
+
3
+ module Compass
4
+ module Grid
5
+ Compass::Frameworks.register('compass-grid', :path => "#{File.dirname(__FILE__)}/../..")
6
+ end
7
7
  end
@@ -1,5 +1,5 @@
1
1
  module Compass
2
2
  module Grid
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.4'
4
4
  end
5
5
  end
@@ -1,127 +1,152 @@
1
- // Compass Clearfix
2
- @import "compass/utilities/general/clearfix";
3
-
4
- //-----------------------------------
5
- // Defaults
6
- //-----------------------------------
7
- $grid-column-width: 60px !default;
8
- $grid-gutter-width: 20px !default;
9
- $grid-columns: 12 !default;
10
-
11
- // apply fixes for IE6
12
- //$grid-extend-clearfix: true !default;
13
- $grid-clearfix-class: true !default;
14
- $grid-support-for-ie6: false !default;
15
-
16
- @if $grid-clearfix-class {
17
- .clearfix {
18
- @if $grid-clearfix-class == clearfix {
19
- @include clearfix;
20
- } @else if $grid-clearfix-class == legacy-pie-clearfix {
21
- @include legacy-pie-clearfix;
22
- } @else {
23
- @include pie-clearfix;
24
- }
25
- }
26
- }
27
-
28
- //-----------------------------------
29
- // Column Widths
30
- //-----------------------------------
31
-
32
- // apply a width to a column
33
- @mixin grid($i, $plus: 0) {
34
- width: grid-column-width($i, $plus);
35
- }
36
-
37
- // return a width
38
- @function grid-column-width($i, $plus: 0) {
39
- @return $grid-column-width * $i + $grid-gutter-width * ($i - 1) + $plus;
40
- }
41
-
42
- //-----------------------------------
43
- // Containers
44
- //-----------------------------------
45
-
46
- // specify a container as a page
47
- @mixin grid-page($i: $grid-columns, $plus: 0) {
48
- @extend .clearfix;
49
- width: grid-column-width($i, $plus + $grid-gutter-width);
50
- margin: 0 auto;
51
- }
52
-
53
- // specify a container as a row
54
- @mixin grid-row($page: false) {
55
- @extend .clearfix;
56
- width: auto;
57
-
58
- // rows directly inside a page don't need the negative margin
59
- @if $page {
60
- margin: 0 0;
61
- } @else {
62
- margin: 0 (-$grid-gutter-width / 2);
63
- }
64
- }
65
-
66
- //-----------------------------------
67
- // Columns
68
- //-----------------------------------
69
-
70
- // specify a column
71
- @mixin grid-column($i: false, $plus: 0) {
72
- margin: 0 ($grid-gutter-width / 2);
73
- float: left;
74
-
75
- @if $grid-support-for-ie6 { display: inline; }
76
-
77
- // apply a width
78
- @if $i { @include grid($i, $plus); }
79
- }
80
-
81
- // alter the margins of a column
82
- @mixin grid-offset($i: 1, $plus: 0, $side: left) {
83
- margin-#{$side}: (grid-column-width($i, $grid-gutter-width + $plus) + ($grid-gutter-width/2));
84
- }
85
- @mixin grid-offset-left($i: 1, $plus: 0) {
86
- @include grid-offset($i, $plus, left);
87
- }
88
- @mixin grid-offset-right($i: 1, $plus: 0) {
89
- @include grid-offset($i, $plus, right);
90
- }
91
-
92
- //-----------------------------------
93
- // Default Styles
94
- //-----------------------------------
95
- @mixin grid-css() {
96
- // containers
97
- .page {
98
- @include grid-page;
99
- }
100
- .row {
101
- @include grid-row;
102
- }
103
- .page > .row {
104
- @include grid-row(true);
105
- }
106
-
107
- // columns
108
- .column {
109
- @include grid-column;
110
- }
111
-
112
- @for $i from 1 through $grid-columns {
113
- // columns widths
114
- .grid-#{$i} { width: grid-column-width($i); }
115
-
116
- // alter left and right margins
117
- @if $i < $grid-columns {
118
- .before-#{$i} { @include grid-offset-left($i); }
119
- .after-#{$i} { @include grid-offset-right($i); }
120
- }
121
- }
122
-
123
- // Box
124
- .box {
125
- margin-bottom: $grid-gutter-width;
126
- }
1
+ // Compass Clearfix
2
+ @import "compass/utilities/general/clearfix";
3
+
4
+ //-----------------------------------
5
+ // Defaults
6
+ //-----------------------------------
7
+ $grid-column-width: 60px !default;
8
+ $grid-gutter-width: 20px !default;
9
+ $grid-columns: 12 !default;
10
+
11
+ // apply fixes for IE6
12
+ //$grid-extend-clearfix: true !default;
13
+ $grid-clearfix-class: true !default;
14
+ $grid-support-for-ie6: false !default;
15
+
16
+ @if $grid-clearfix-class {
17
+ .clearfix {
18
+ @if $grid-clearfix-class == clearfix {
19
+ @include clearfix;
20
+ } @else if $grid-clearfix-class == legacy-pie-clearfix {
21
+ @include legacy-pie-clearfix;
22
+ } @else {
23
+ @include pie-clearfix;
24
+ }
25
+ }
26
+ }
27
+
28
+ //-----------------------------------
29
+ // Column Widths
30
+ //-----------------------------------
31
+
32
+ // apply a width to a column
33
+ @mixin grid($i, $plus: 0, $with-gutters: false) {
34
+ width: grid-column-width($i, $plus);
35
+ @if $with-gutters { @include grid-column-gutters; }
36
+ }
37
+
38
+ // apply standard gutters to a column or row
39
+ @mixin grid-gutters($row: false) {
40
+ margin: 0 grid-gutter-width($row);
41
+ }
42
+ @mixin grid-row-gutters() {
43
+ @include grid-gutters(true);
44
+ }
45
+ @mixin grid-column-gutters() {
46
+ @include grid-gutters(false);
47
+ }
48
+
49
+ // return a column width in pixels
50
+ @function grid-column-width($i, $plus: 0) {
51
+ @return $grid-column-width * $i + $grid-gutter-width * ($i - 1) + $plus;
52
+ }
53
+
54
+ // return a row width in pixels
55
+ @function grid-row-width($i, $plus: 0) {
56
+ @return grid-column-width($i, $plus + $grid-gutter-width);
57
+ }
58
+
59
+ // return a gutter width in pixels
60
+ @function grid-gutter-width($row: false) {
61
+ @return ($grid-gutter-width / 2 * if($row, -1, 1));
62
+ }
63
+
64
+ //-----------------------------------
65
+ // Containers
66
+ //-----------------------------------
67
+
68
+ // specify a container as a page
69
+ @mixin grid-page($i: $grid-columns, $plus: 0) {
70
+ @extend .clearfix;
71
+ width: grid-row-width($i, $plus);
72
+ margin: 0 auto;
73
+ }
74
+
75
+ // specify a container as a row
76
+ @mixin grid-row($page: false) {
77
+ @extend .clearfix;
78
+ width: auto;
79
+
80
+ // rows directly inside a page don't need the negative margin
81
+ @if $page {
82
+ margin: 0 0;
83
+ } @else {
84
+ @include grid-row-gutters;
85
+ }
86
+ }
87
+
88
+ //-----------------------------------
89
+ // Columns
90
+ //-----------------------------------
91
+
92
+ // specify a column
93
+ @mixin grid-column($i: false, $plus: 0, $with-gutters: true) {
94
+ float: left;
95
+ @if $grid-support-for-ie6 { _display: inline; }
96
+ @if $with-gutters { @include grid-column-gutters; }
97
+
98
+ // apply a width
99
+ @if $i { @include grid($i, $plus); }
100
+ }
101
+
102
+ // alter the margins of a column
103
+ @mixin grid-offset($i: 1, $plus: 0, $side: left) {
104
+ margin-#{$side}: (grid-column-width($i, $grid-gutter-width + $plus) + ($grid-gutter-width/2));
105
+ }
106
+
107
+ // convenience mixin for left offsets
108
+ @mixin grid-offset-left($i: 1, $plus: 0) {
109
+ @include grid-offset($i, $plus, left);
110
+ }
111
+
112
+ // convenience mixin for right offsets
113
+ @mixin grid-offset-right($i: 1, $plus: 0) {
114
+ @include grid-offset($i, $plus, right);
115
+ }
116
+
117
+ //-----------------------------------
118
+ // Default Styles
119
+ //-----------------------------------
120
+ @mixin grid-css() {
121
+ // containers
122
+ .page {
123
+ @include grid-page;
124
+ }
125
+ .row {
126
+ @include grid-row;
127
+ }
128
+ .page > .row {
129
+ @include grid-row(true);
130
+ }
131
+
132
+ // columns
133
+ .column {
134
+ @include grid-column;
135
+ }
136
+
137
+ @for $i from 1 through $grid-columns {
138
+ // columns widths
139
+ .grid-#{$i} { width: grid-column-width($i); }
140
+
141
+ // alter left and right margins
142
+ @if $i < $grid-columns {
143
+ .before-#{$i} { @include grid-offset-left($i); }
144
+ .after-#{$i} { @include grid-offset-right($i); }
145
+ }
146
+ }
147
+
148
+ // Box
149
+ .box {
150
+ margin-bottom: $grid-gutter-width;
151
+ }
127
152
  }
@@ -2,40 +2,59 @@
2
2
  @import "compass/css3/box-sizing";
3
3
 
4
4
  // Ensure grid is included
5
- @import "grid";
5
+ @import "../../stylesheets/grid";
6
+ @import "../../stylesheets/grid/fluid/helpers";
6
7
 
7
8
  //-----------------------------------
8
9
  // Defaults
9
10
  //-----------------------------------
11
+ $fluid-support-for-ie7: false !default;
10
12
 
11
13
  //-----------------------------------
12
14
  // Column Widths
13
15
  //-----------------------------------
14
16
 
15
17
  // apply a width to a column
16
- @mixin fluid($i, $plus: 0, $parent: $grid-columns, $parent-plus: 0, $with-gutters: false) {
17
- width: fluid-column-width($i, $plus, $parent, $parent-plus);
18
- @if $with-gutters { @include fluid-gutters($parent, $parent-plus); }
18
+ @mixin fluid($i, $plus: 0, $context: $grid-columns, $context-plus: 0, $with-gutters: false) {
19
+ width: fluid-column-width($i, $plus, $context, $context-plus);
20
+ @if $fluid-support-for-ie7 {
21
+ *width: fluid-column-width($i, $plus, $context, $context-plus, $nudge: true);
22
+ }
23
+ @if $with-gutters { @include fluid-column-gutters($context, $context-plus); }
19
24
  }
20
25
 
21
26
  // apply standard gutters to a column or row
22
- @mixin fluid-gutters($parent: $grid-columns, $parent-plus: 0, $row: false) {
23
- margin: 0 fluid-width($grid-gutter-width / 2 * if($row, -1, 1), grid-column-width($parent, $parent-plus + if($row, 0, $grid-gutter-width)));
27
+ @mixin fluid-gutters($context: $grid-columns, $context-plus: 0, $row: false) {
28
+ margin: 0 fluid-gutter-width($context, $context-plus, $row);
29
+ @if $fluid-support-for-ie7 {
30
+ *margin: 0 fluid-gutter-width($context, $context-plus, $row, $nudge: true);
31
+ }
32
+ }
33
+ @mixin fluid-row-gutters($context: $grid-columns, $context-plus: 0) {
34
+ @include fluid-gutters($context, $context-plus, true);
35
+ }
36
+ @mixin fluid-column-gutters($context: $grid-columns, $context-plus: 0) {
37
+ @include fluid-gutters($context, $context-plus, false);
24
38
  }
25
39
 
26
- // return a percentage width relative to a column width
27
- @function fluid-column-width($i, $plus: 0, $parent: $grid-columns, $parent-plus: 0) {
28
- @return fluid-width(grid-column-width($i, $plus), grid-column-width($parent, $parent-plus + $grid-gutter-width));
40
+ // return a percentage column width relative to a row width
41
+ @function fluid-column-width($i, $plus: 0, $context: $grid-columns, $context-plus: 0, $nudge: false) {
42
+ @return fluid-width(grid-column-width($i, $plus), grid-row-width($context, $context-plus), $nudge);
43
+ }
44
+
45
+ // return a percentage gutter width relative to a column or row width
46
+ @function fluid-gutter-width($context: $grid-columns, $context-plus: 0, $row: false, $nudge: false) {
47
+ @return fluid-width($grid-gutter-width / 2 * if($row, -1, 1), grid-row-width($context, $context-plus + if($row, 0, $grid-gutter-width)), $nudge);
29
48
  }
30
49
 
31
50
  // return a percentage width relative to a parent width
32
- @function fluid-width($width, $parent-width: grid-column-width($grid-columns, $grid-gutter-width)) {
33
- @return percentage($width / $parent-width);
51
+ @function fluid-width($width, $context-width: grid-column-width($grid-columns, $grid-gutter-width), $nudge: false) {
52
+ @return percentage($width / $context-width) + if($nudge, fluid-nudge($context-width), 0);
34
53
  }
35
54
 
36
55
  // return a percentage for a half-pixel
37
- @function fluid-nudge($parent-width: grid-column-width($grid-columns, $grid-gutter-width), $vendor: webkit) {
38
- @return percentage(if($vendor == ie, -0.5px, 0.5px) / $parent-width);
56
+ @function fluid-nudge($context-width: grid-column-width($grid-columns, $grid-gutter-width)) {
57
+ @return percentage(-0.5px / $context-width);
39
58
  }
40
59
 
41
60
 
@@ -53,7 +72,7 @@
53
72
  }
54
73
 
55
74
  // specify a container as a row
56
- @mixin fluid-row($page: false, $parent: $grid-columns, $parent-plus: 0) {
75
+ @mixin fluid-row($page: false, $context: $grid-columns, $context-plus: 0) {
57
76
  @extend .clearfix;
58
77
  @include box-sizing(border-box);
59
78
  width: auto;
@@ -62,7 +81,7 @@
62
81
  @if $page {
63
82
  margin: 0 0;
64
83
  } @else {
65
- @include fluid-gutters($parent, $parent-plus, true);
84
+ @include fluid-row-gutters($context, $context-plus);
66
85
  }
67
86
  }
68
87
 
@@ -71,30 +90,32 @@
71
90
  //-----------------------------------
72
91
 
73
92
  // specify a column
74
- @mixin fluid-column($i: false, $plus: 0, $parent: $grid-columns, $parent-plus: 0, $with-gutters: true) {
93
+ @mixin fluid-column($i: false, $plus: 0, $context: $grid-columns, $context-plus: 0, $with-gutters: true) {
75
94
  @include box-sizing(border-box);
76
- @if $with-gutters { @include fluid-gutters($parent, $parent-plus); }
77
95
  float: left;
78
-
79
- @if $grid-support-for-ie6 { display: inline; }
96
+ @if $grid-support-for-ie6 { _display: inline; }
97
+ @if $with-gutters { @include fluid-column-gutters($context, $context-plus); }
80
98
 
81
99
  // apply a width
82
- @if $i { @include fluid($i, $plus, $parent, $parent-plus); }
100
+ @if $i { @include fluid($i, $plus, $context, $context-plus); }
83
101
  }
84
102
 
85
103
  // alter the margins of a column
86
- @mixin fluid-offset($i: 1, $plus: 0, $side: left, $parent: $grid-columns, $parent-plus: 0) {
87
- margin-#{$side}: (fluid-column-width($i, $grid-gutter-width + $plus) + fluid-width($grid-gutter-width / 2, grid-column-width($parent, $parent-plus + $grid-gutter-width)));
104
+ @mixin fluid-offset($i: 1, $plus: 0, $side: left, $context: $grid-columns, $context-plus: 0) {
105
+ margin-#{$side}: (fluid-column-width($i, $plus) + fluid-gutter-width($context, $context-plus) * 3);
106
+ @if $fluid-support-for-ie7 {
107
+ *margin-#{$side}: (fluid-column-width($i, $plus, $context, $context-plus, $nudge: nudge) + fluid-gutter-width($context, $context-plus, $nudge: nudge) * 3);
108
+ }
88
109
  }
89
110
 
90
111
  // convenience mixin for left offsets
91
- @mixin fluid-offset-left($i: 1, $plus: 0, $parent: $grid-columns, $parent-plus: 0) {
92
- @include fluid-offset($i, $plus, left, $parent, $parent-plus);
112
+ @mixin fluid-offset-left($i: 1, $plus: 0, $context: $grid-columns, $context-plus: 0) {
113
+ @include fluid-offset($i, $plus, left, $context, $context-plus);
93
114
  }
94
115
 
95
116
  // convenience mixin for right offsets
96
- @mixin fluid-offset-right($i: 1, $plus: 0, $parent: $grid-columns, $parent-plus: 0) {
97
- @include fluid-offset($i, $plus, right, $parent, $parent-plus);
117
+ @mixin fluid-offset-right($i: 1, $plus: 0, $context: $grid-columns, $context-plus: 0) {
118
+ @include fluid-offset($i, $plus, right, $context, $context-plus);
98
119
  }
99
120
 
100
121
  //-----------------------------------
@@ -119,8 +140,8 @@
119
140
  // columns widths
120
141
  .fluid-#{$i} {
121
142
  width: fluid-column-width($i);
122
- > .fluid-row { @include fluid-gutters($i, $row: true); }
123
- > .fluid-row > .fluid-column { @include fluid-gutters($i); }
143
+ > .fluid-row { @include fluid-row-gutters($i); }
144
+ > .fluid-row > .fluid-column { @include fluid-column-gutters($i); }
124
145
  @for $j from 1 through $grid-columns - 1 {
125
146
  @if $j <= $i {
126
147
  > .fluid-row > .fluid-#{$j} { width: fluid-column-width($j, 0, $i); }