compass-susy-plugin 0.7.0.pre6 → 0.7.0.pre7

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest CHANGED
@@ -7,15 +7,15 @@ compass-susy-plugin.gemspec
7
7
  lib/susy.rb
8
8
  lib/susy/compass_plugin.rb
9
9
  lib/susy/sass_extensions.rb
10
- sass/susy/_grid.sass
11
- sass/susy/_reset.sass
12
- sass/susy/_susy.sass
13
- sass/susy/_text.sass
14
- sass/susy/_utils.sass
15
- sass/susy/_vertical_rhythm.sass
16
- templates/project/_base.sass
17
- templates/project/_defaults.sass
18
- templates/project/ie.sass
10
+ sass/susy/_grid.scss
11
+ sass/susy/_reset.scss
12
+ sass/susy/_susy.scss
13
+ sass/susy/_text.scss
14
+ sass/susy/_utils.scss
15
+ sass/susy/_vertical_rhythm.scss
16
+ templates/project/_base.scss
17
+ templates/project/_defaults.scss
18
+ templates/project/ie.scss
19
19
  templates/project/manifest.rb
20
- templates/project/print.sass
21
- templates/project/screen.sass
20
+ templates/project/print.scss
21
+ templates/project/screen.scss
data/README.mkdn CHANGED
@@ -26,7 +26,7 @@ Create a Susy-based Compass Project
26
26
 
27
27
  compass -r susy -f susy <project name>
28
28
 
29
- Then edit your `_base.sass`, `_defaults.sass`, `screen.sass` and `print.sass`
29
+ Then edit your `_base.scss`, `_defaults.scss`, `screen.scss` and `print.scss`
30
30
  files accordingly. A reset is added automatically, and includes help for some
31
31
  HTML5 elements.
32
32
 
@@ -61,102 +61,118 @@ But Susy harnesses the power of Compass and Sass to do all the math for you.
61
61
  Grid Basics
62
62
  ===========
63
63
 
64
- * Set up your default grid values (total columns, column width, gutter
65
- width, side gutter width), your base font size, and important mixins
66
- in `_base.sass`.
64
+ * Set up your default grid values (total columns, column width, gutter width,
65
+ side gutter width), your base font size, and important mixins in
66
+ `_base.scss`.
67
67
 
68
- * Set defaults for all the important HTML tags in `_defaults.sass`. It's
68
+ * Set defaults for all the important HTML tags in `_defaults.scss`. It's
69
69
  better than using the browser defaults. And better than using ours.
70
70
 
71
- * Create your grid in `screen.sass`: apply the `+susy` mixin at the top level
72
- and the `+container` mixin to the element that contains the page grid.
71
+ * Create your grid in `screen.scss`: apply the `@include susy` mixin at the
72
+ top level and the `@include container` mixin to the element that contains
73
+ the page grid.
73
74
 
74
- * Use the `+columns` mixin to declare the width in columns of an element,
75
- or `+full` for any element spanning the full width of its context.
75
+ * Use the `@include columns` mixin to declare the width in columns of an
76
+ element, or `+full` for any element spanning the full width of its context.
76
77
 
77
- * Use `+alpha` and `+omega` to declare elements which include the first or
78
- last column within their parent element (`+full` to declare both `+alpha`
79
- and `+omega`). Note: `+alpha` is actually only needed in the very top level,
80
- and does nothing in nested contexts. Neither is needed on a `+full` element.
78
+ * Use `@include alpha` and `@include omega` to declare elements which include
79
+ the first or last column within their parent element (`@include full` to
80
+ declare both `@include alpha` and `@include omega`). Note: `@include alpha`
81
+ is actually only needed in the very top level, and does nothing in nested
82
+ contexts. Neither is needed on a `@include full` element.
81
83
 
82
- * Use `+prefix` or `+suffix` to give the width (in columns) of an elements
83
- left or right margin, or `+pad` to give both `+prefix` and `+suffix` at
84
- once.
84
+ * Use `@include prefix` or `@include suffix` to give the width (in columns) of
85
+ an elements left or right margin, or `@include pad` to give both `@include
86
+ prefix` and `@include suffix` at once.
85
87
 
86
88
  * In nested contexts, all of these mixins take an extra final argument, the
87
89
  width in columns of the parent (nesting) element.
88
90
 
89
91
  That's it for the basics! Here's a sample Susy grid layout:
90
92
 
91
- +susy
93
+ @include susy;
92
94
 
93
- #page
94
- +container
95
+ #page {
96
+ @include container;
97
+ }
95
98
 
96
- #brand
97
- +full
98
- +pad(1,1)
99
- h1
100
- +full(8)
101
- +pad(1,2,8)
99
+ #brand {
100
+ @include full;
101
+ @include pad(1,1);
102
+
103
+ h1 {
104
+ @include full(8);
105
+ @include pad(1,2,8);
106
+ }
107
+ }
102
108
 
103
- #nav
104
- +columns(2)
105
- +alpha
109
+ #nav {
110
+ @include columns(2);
111
+ @include alpha;
112
+ }
106
113
 
107
- #content
108
- +columns(8)
109
- +omega
110
- #description
111
- +columns(5,8)
112
- #credit
113
- +columns(3,8)
114
- +omega(8)
114
+ #content {
115
+ @include columns(8);
116
+ @include omega;
117
+
118
+ #description {
119
+ @include columns(5,8);
120
+ }
121
+
122
+ #credit {
123
+ @include columns(3,8);
124
+ @include omega(8);
125
+ }
126
+ }
115
127
 
116
128
  Tutorial
117
129
  ========
118
130
 
119
- For more details, read [the tutorial](http://www.oddbird.net/susy/tutorial/).
120
- It's also included with Susy in the docs/ folder.
131
+ The original [tutorial](http://www.oddbird.net/susy/tutorial/) was written for
132
+ earlier versions of Susy and is no longer entirely accurate for version 0.7.
133
+ An updated tutorial will be released soon.
121
134
 
122
135
  Extra Utility Mixins
123
136
  =====================
124
137
 
125
- Extra utilities are included in Susy's `utils.sass` file, with additional list
138
+ Extra utilities are included in Susy's `utils.scss` file, with additional list
126
139
  options, experimental (CSS3/proprietary) CSS, and more.
127
140
 
128
- * `+show-grid(!src)` - Repeat the specified grid image on an element. Good for
129
- testing your baseline and grid.
141
+ * `@include show-grid($src)` - Repeat the specified grid image on an element.
142
+ Good for testing your baseline and grid.
130
143
 
131
- * `+inline-block-list([!horizontalpadding])` - Make list items inline-block
132
- when floating just won't do the trick (if you need them centered or right).
144
+ * `@include inline-block-list([$horizontalpadding])` - Make list items
145
+ inline-block when floating just won't do the trick (if you need them
146
+ centered or right).
133
147
 
134
- * `+hide` - Hide content from visual browsers while keeping accessability
135
- intact.
148
+ * `@include hide` - Hide content from visual browsers while keeping
149
+ accessability intact.
136
150
 
137
- * `+skip-link([!top, !right, !bottom, !left])` - Hide a link, and then show
138
- it again on focus. the TRBL settings allow you to place it absolutely on
139
- display. Default will be top left of the positioning context.
151
+ * `@include skip-link([$top, $right, $bottom, $left])` - Hide a link, and then
152
+ show it again on focus. the TRBL settings allow you to place it absolutely
153
+ on display. Default will be top left of the positioning context.
140
154
 
141
- And then the fun stuff in `_vertical_rhythm.sass`, written by Chris Eppstein
142
- and probably moving to the compass core before too long:
155
+ And then the fun stuff in `_vertical_rhythm.scss`, originally written by Chris
156
+ Eppstein and probably moving to the compass core before too long:
143
157
 
144
- * `+adjust-font-size-to(!to_size, [!lines, !from_size])` - adjust the font size and number
145
- of baseline (line) units to occupy.
158
+ * `@include adjust-font-size-to($to_size, [$lines, $from_size])` - adjust the
159
+ font size and number of baseline (line) units to occupy.
146
160
 
147
- * `+leader([!lines, !font_size, !property])` and `+trailer([!lines,
148
- !font_size, !property])` - add leading or trailing whitespace to an element.
149
- These are added as top and bottom margins (by default) that keep your
150
- vertical rhythm intact. You can also send "padding" as the `!property` or
151
- use `+padding-leader` and `+padding-trailer`. Be aware that this may
152
- conflict with uses of rhythm-borders.
161
+ * `@include leader([$lines, $font_size, $property])` and `@include
162
+ trailer([$lines, $font_size, $property])` - add leading or trailing
163
+ whitespace to an element. These are added as top and bottom margins (by
164
+ default) that keep your vertical rhythm intact. You can also send "padding"
165
+ as the `$property` or use `@include padding-leader` and `@include
166
+ padding-trailer`. Be aware that this may conflict with uses of
167
+ rhythm-borders.
153
168
 
154
- * `+leading-border([!width, !lines, !font_size, !style])` and
155
- `+trailing-border([!width, !lines, !font_size, !style])` will combine border
156
- and padding to create borders that also keep the vertical rhythm going. The
157
- defaults are `1px, 1, !base_font_size, 'solid'`. Also available:
158
- `+horizontal-borders` (for both leading and trailing), and `+rhythm-borders`
159
- for applying equal borders and padding to all sides of a box.
169
+ * `@include leading-border([$width, $lines, $font_size, $style])` and
170
+ `@include trailing-border([$width, $lines, $font_size, $style])` will
171
+ combine border and padding to create borders that also keep the vertical
172
+ rhythm going. The defaults are `1px, 1, $base_font_size, 'solid'`. Also
173
+ available: `@include horizontal-borders` (for both leading and trailing),
174
+ and `@include rhythm-borders` for applying equal borders and padding to all
175
+ sides of a box.
160
176
 
161
177
 
162
178
  Advanced Options
@@ -164,74 +180,80 @@ Advanced Options
164
180
 
165
181
  Susy is built for flexibility, so that you always write the code you want to
166
182
  write. While everything should 'just work' out of the box, there are plenty of
167
- advanced options hidden inside. Here's a few:
183
+ advanced options hidden inside. Here are a few:
168
184
 
169
- * `!hacks` is a boolean constant that you can set in your base.sass file to
185
+ * `$hacks` is a boolean constant that you can set in your base.sass file to
170
186
  choose between using targeted hacks for IE (a variation of the star hack in
171
187
  most cases) in your screen.css, or using a conditional-comment targeted
172
- ie.css. All the needed mixins are available for either setting. `!hacks` is
188
+ ie.css. All the needed mixins are available for either setting. `$hacks` is
173
189
  true by default so there is no extra work maintaining multiple files unless
174
190
  you want to.
175
191
 
176
192
  Example 1:
177
193
 
178
- !hacks = true
194
+ $hacks: true;
179
195
 
180
- #nav
181
- +inline-block-list
196
+ #nav {
197
+ @include inline-block-list;
198
+ }
182
199
 
183
200
  Example 2:
184
201
 
185
- !hacks = false
202
+ $hacks: false;
186
203
 
187
- (in screen.sass)
188
- #nav
189
- +inline-block-list
204
+ // in screen.scss
205
+ #nav {
206
+ @include inline-block-list;
207
+ }
190
208
 
191
- (in ie.sass)
192
- #nav li
193
- +ie-inline-block
209
+ //in ie.scss
210
+ #nav li {
211
+ @include ie-inline-block;
212
+ }
194
213
 
195
- It requires more maintenance on your part, but the result is a
196
- hack-free output.
214
+ It requires more maintenance on your part, but the result is a hack-free
215
+ output.
197
216
 
198
- The Susy mixins that use either hacks or targeted mixins are
199
- `+omega` (`+ie-omega([!right-floated = false])`), `+inline-block`
200
- (`+ie-inline-block`), and `+inline-block-list` which sets
201
- `+inline-block` on the list items.
217
+ The Susy mixins that use either hacks or targeted mixins are `@include
218
+ omega` (`@include ie-omega([$right-floated: false])`), `@include
219
+ inline-block` (`@include ie-inline-block`), and `@include
220
+ inline-block-list` which sets `@include inline-block` on the list items.
202
221
 
203
- The ie-specific mixins only add the needed ie-specific adjustments,
204
- so they need to be used in addition to their counterparts, not on
205
- their own.
222
+ The ie-specific mixins only add the needed ie-specific adjustments, so
223
+ they need to be used in addition to their counterparts, not on their own.
206
224
 
207
- * `gutter(!context)` is a function that you can call at any time to return the
225
+ * `gutter($context)` is a function that you can call at any time to return the
208
226
  size of a gutter in your given context as a percentage.
209
227
 
210
228
  Example:
211
229
 
212
- #nav
213
- padding-right= gutter(5)
230
+ #nav {
231
+ padding-right: gutter(5);
232
+ }
214
233
 
215
- * `columns(!number, !context)` returns the span of `!number` columns in
216
- `!context` as a percentage. This span includes any gutters between the
234
+ * `columns($number, $context)` returns the span of `$number` columns in
235
+ `$context` as a percentage. This span includes any gutters between the
217
236
  columns spanned.
218
237
 
219
238
  Example:
220
239
 
221
- #nav
222
- padding-left= columns(3,5)
240
+ #nav {
241
+ padding-left: columns(3,5);
242
+ }
223
243
 
224
244
  * `side_gutter()` is also available and takes no arguments since it is always
225
245
  used at the top nesting level.
226
246
 
227
- * `!px2em` is a variable that represents the height of one pixel as a fraction
247
+ * `$px2em` is a variable that represents the height of one pixel as a fraction
228
248
  of your base em-height. Multiply it with your target pixel value to
229
249
  represent that value in ems. Note that this is only accurate at your
230
- `!base_font_size`.
250
+ `$base_font_size`.
231
251
 
232
252
  Example:
233
253
 
234
- #nav
235
- border-bottom:
236
- style: solid
237
- width= !px2em*2px
254
+ #nav {
255
+ border-bottom: {
256
+ style: solid;
257
+ width: $px2em*2px;
258
+ };
259
+ }
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ begin
12
12
  p.url = "http://github.com/ericam/compass-susy-plugin"
13
13
  p.author = ['Eric Meyer']
14
14
  p.email = "eric@oddbird.net"
15
- p.dependencies = ["compass >=0.10.0.pre1"]
15
+ p.dependencies = ["compass >=0.10.0.rc2"]
16
16
  p.has_rdoc = false
17
17
  end
18
18
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0.pre6
1
+ 0.7.0.pre7
@@ -2,20 +2,20 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{compass-susy-plugin}
5
- s.version = "0.7.0.pre6"
5
+ s.version = "0.7.0.pre7"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Eric Meyer"]
9
- s.date = %q{2010-03-18}
9
+ s.date = %q{2010-04-13}
10
10
  s.description = %q{Susy is a ground-up native Compass plugin grid system that takes full advantage of Sass' capabilities to remove the tedium from grid-based web design.}
11
11
  s.email = %q{eric@oddbird.net}
12
12
  s.extra_rdoc_files = ["LICENSE.txt", "README.mkdn", "lib/susy.rb", "lib/susy/compass_plugin.rb", "lib/susy/sass_extensions.rb"]
13
- s.files = ["LICENSE.txt", "Manifest", "README.mkdn", "Rakefile", "VERSION", "compass-susy-plugin.gemspec", "lib/susy.rb", "lib/susy/compass_plugin.rb", "lib/susy/sass_extensions.rb", "sass/susy/_grid.sass", "sass/susy/_reset.sass", "sass/susy/_susy.sass", "sass/susy/_text.sass", "sass/susy/_utils.sass", "sass/susy/_vertical_rhythm.sass", "templates/project/_base.sass", "templates/project/_defaults.sass", "templates/project/ie.sass", "templates/project/manifest.rb", "templates/project/print.sass", "templates/project/screen.sass"]
13
+ s.files = ["LICENSE.txt", "Manifest", "README.mkdn", "Rakefile", "VERSION", "compass-susy-plugin.gemspec", "lib/susy.rb", "lib/susy/compass_plugin.rb", "lib/susy/sass_extensions.rb", "sass/susy/_grid.scss", "sass/susy/_reset.scss", "sass/susy/_susy.scss", "sass/susy/_text.scss", "sass/susy/_utils.scss", "sass/susy/_vertical_rhythm.scss", "templates/project/_base.scss", "templates/project/_defaults.scss", "templates/project/ie.scss", "templates/project/manifest.rb", "templates/project/print.scss", "templates/project/screen.scss"]
14
14
  s.homepage = %q{http://github.com/ericam/compass-susy-plugin}
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Compass-susy-plugin", "--main", "README.mkdn"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = %q{compass-susy-plugin}
18
- s.rubygems_version = %q{1.3.5}
18
+ s.rubygems_version = %q{1.3.6}
19
19
  s.summary = %q{A Compass grid system plugin.}
20
20
 
21
21
  if s.respond_to? :specification_version then
@@ -23,11 +23,11 @@ Gem::Specification.new do |s|
23
23
  s.specification_version = 3
24
24
 
25
25
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<compass>, [">= 0.10.0.pre1"])
26
+ s.add_runtime_dependency(%q<compass>, [">= 0.10.0.rc2"])
27
27
  else
28
- s.add_dependency(%q<compass>, [">= 0.10.0.pre1"])
28
+ s.add_dependency(%q<compass>, [">= 0.10.0.rc2"])
29
29
  end
30
30
  else
31
- s.add_dependency(%q<compass>, [">= 0.10.0.pre1"])
31
+ s.add_dependency(%q<compass>, [">= 0.10.0.rc2"])
32
32
  end
33
33
  end
@@ -0,0 +1,110 @@
1
+ //** The Susy Grid **//
2
+
3
+ // Your basic settings for the grid.
4
+ // Override these in base.sass to customize your site.
5
+ $total-cols: 12 !default;
6
+ $col-width: 4em !default;
7
+ $gutter-width: 1em !default;
8
+ $side-gutter-width: $gutter-width !default;
9
+
10
+ // Susy will set your outer shell based on the variables above.
11
+ $container-width: container($total-cols, $col-width, $gutter-width, $side-gutter-width);
12
+
13
+ // Set on the outer grid-containing element(s).
14
+ @mixin container($align: left) {
15
+ // clear all floated columns
16
+ @include clearfix;
17
+ // align the text back to the left (override for other alignments)
18
+ text-align: $align;
19
+ // use auto horizontal margins to center your page in the body
20
+ margin: {
21
+ left: auto;
22
+ right: auto; };
23
+ // set the page width based on column settings
24
+ width: $container-width;
25
+ // never exceed 100% of the browser window (no side-scrolling)
26
+ max-width: 100%; }
27
+
28
+ // Set on any column element, even nested ones.
29
+ // The first agument [required] is the number of columns to span.
30
+ // The second argument is the context (columns spanned by parent).
31
+ // - Context is required on any nested elements.
32
+ // - Context MUST NOT be declared on a top-level element.
33
+ // By default a grid-column is floated left with a right gutter.
34
+ // - Override those with +float("right"), +alpha or +omega
35
+ @mixin columns($n, $context: false) {
36
+ // the column is floated left
37
+ @include float(left);
38
+ // the width of the column is set as a percentage of the context
39
+ width: columns($n, $context);
40
+ // the right gutter is added as a percentage of the context
41
+ margin-right: gutter($context); }
42
+
43
+ // Set on any element to add empty colums as padding before or after.
44
+ @mixin prefix($n, $context: false) {
45
+ padding-left: columns($n, $context) + gutter($context); }
46
+
47
+ @mixin suffix($n, $context: false) {
48
+ padding-right: columns($n, $context) + gutter($context); }
49
+
50
+ // Set as a shortcut for both prefix and suffix.
51
+ @mixin pad($p: 0, $s: 0, $c: false) {
52
+ @if $p != 0 {
53
+ @include prefix($p, $c); }
54
+ @if $s != 0 {
55
+ @include suffix($s, $c); } }
56
+
57
+ // Set on any element spanning the first column in non-nested context
58
+ // to take side-gutters into account. Recommended that you pass the
59
+ // actual nested contexts (when nested) rather than a true/false argument
60
+ // for the sake of consistency. Effect is the same.
61
+ @mixin alpha($nested: false) {
62
+ @if $nested == false {
63
+ margin-left: side-gutter(); } }
64
+
65
+
66
+ // Sets the direction that +omega elements are floated
67
+ // - Override $omega_float globally or set +float locally to change
68
+ $omega-float: right !default;
69
+
70
+ // When global constant $hacks == true:
71
+ // - this will be called automatically with hacks
72
+ // When global constant $hacks == false:
73
+ // - you can call it yourself in ie.sass without the hacks
74
+ @mixin ie-omega($dir: $omega-float, $hack: false) {
75
+ $s: side-gutter();
76
+ @if $dir == right {
77
+ @if $hack == true {
78
+ #margin-left: - $gutter-width; }
79
+ @else {
80
+ margin-left: - $gutter-width; } }
81
+ @else {
82
+ @if $hack == true {
83
+ #margin-right: - $gutter-width; }
84
+ @else {
85
+ margin-right: - $gutter-width; } } }
86
+
87
+ // Set omega on the last element of a row to take side-gutters
88
+ // and the page edge into account. Set the $nested argument for nested
89
+ // columns. It is recommended that you pass the actual nested context when
90
+ // nested, rather than a true/false argument, for the sake of consistency.
91
+ // Effect is the same.
92
+ @mixin omega($nested: false) {
93
+ @include float($omega-float);
94
+ @if $nested {
95
+ margin-right: 0; }
96
+ @else {
97
+ margin-right: side-gutter(); }
98
+ @if $hacks == true {
99
+ /* ugly hacks for IE6-7 */
100
+ @include ie-omega($omega-float, true);
101
+ /* end ugly hacks */ } }
102
+
103
+ // Set on an element that will span it's entire context.
104
+ // - no need for +columns, +alpha or +omega on a +full element.
105
+ @mixin full($nested: false) {
106
+ clear: both;
107
+ @if $nested == false {
108
+ $s: side-gutter();
109
+ margin-right: $s;
110
+ margin-left: $s; } }