compass-susy-plugin 0.6.3 → 0.7.0.pre1
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.
- data/Manifest +2 -0
- data/README.mkdn +33 -30
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/compass-susy-plugin.gemspec +10 -12
- data/sass/susy/_grid.sass +77 -67
- data/sass/susy/_reset.sass +6 -0
- data/sass/susy/_susy.sass +16 -10
- data/sass/susy/_text.sass +8 -7
- data/sass/susy/_utils.sass +51 -181
- data/templates/project/_base.sass +43 -196
- data/templates/project/_defaults.sass +147 -0
- data/templates/project/ie.sass +2 -3
- data/templates/project/manifest.rb +1 -0
- data/templates/project/print.sass +1 -6
- data/templates/project/screen.sass +4 -11
- metadata +10 -20
- data/docs/tutorial/figures/susy_element.png +0 -0
- data/docs/tutorial/figures/susy_grid.png +0 -0
- data/docs/tutorial/index.mkdn +0 -303
data/Manifest
CHANGED
@@ -5,6 +5,7 @@ Manifest
|
|
5
5
|
Rakefile
|
6
6
|
README.mkdn
|
7
7
|
sass/susy/_grid.sass
|
8
|
+
sass/susy/_reset.sass
|
8
9
|
sass/susy/_utils.sass
|
9
10
|
sass/susy/_text.sass
|
10
11
|
sass/susy/_susy.sass
|
@@ -12,6 +13,7 @@ templates/project/print.sass
|
|
12
13
|
templates/project/screen.sass
|
13
14
|
templates/project/ie.sass
|
14
15
|
templates/project/_base.sass
|
16
|
+
templates/project/_defaults.sass
|
15
17
|
templates/project/manifest.rb
|
16
18
|
VERSION
|
17
19
|
LICENSE.txt
|
data/README.mkdn
CHANGED
@@ -26,8 +26,9 @@ 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`, `screen.sass` and `print.sass`
|
30
|
-
A reset is added automatically
|
29
|
+
Then edit your `_base.sass`, `_defaults.sass`, `screen.sass` and `print.sass`
|
30
|
+
files accordingly. A reset is added automatically, and includes help for some
|
31
|
+
HTML5 elements.
|
31
32
|
|
32
33
|
Philosophy and Goals
|
33
34
|
--------------------
|
@@ -48,12 +49,12 @@ It is important for accessibility and usability that we are:
|
|
48
49
|
side-scroll bar. No one likes that. On the large end our design integrity
|
49
50
|
and line lengths are more important than taking up all the possible space.
|
50
51
|
|
51
|
-
In order to achieve both we need to combine the best of the elastic
|
52
|
-
and fluid (%-based) models. The solution is simple: First we build
|
53
|
-
grid, then place it inside an elastic shell, and apply a maximum width
|
54
|
-
shell so that it never exceeds the size of the viewport. It's simple
|
55
|
-
theory, but daunting in practice, as you constantly have to adjust your
|
56
|
-
based on the context.
|
52
|
+
In order to achieve both goals we need to combine the best of the elastic
|
53
|
+
(em-based) and fluid (%-based) models. The solution is simple: First we build
|
54
|
+
a fluid grid, then place it inside an elastic shell, and apply a maximum width
|
55
|
+
to that shell so that it never exceeds the size of the viewport. It's simple
|
56
|
+
in theory, but daunting in practice, as you constantly have to adjust your
|
57
|
+
math based on the context.
|
57
58
|
|
58
59
|
But Susy harnesses the power of Compass and Sass to do all the math for you.
|
59
60
|
|
@@ -61,9 +62,12 @@ Grid Basics
|
|
61
62
|
===========
|
62
63
|
|
63
64
|
* Set up your default grid values (total columns, column width, gutter
|
64
|
-
width, side gutter width), your base font size, and
|
65
|
+
width, side gutter width), your base font size, and important mixins
|
65
66
|
in `_base.sass`.
|
66
67
|
|
68
|
+
* Set defaults for all the important HTML tags in `_defaults.sass`. It's
|
69
|
+
better than using the browser defaults. And better than using ours.
|
70
|
+
|
67
71
|
* Create your grid in `screen.sass`: apply the `+susy` mixin to the `body`
|
68
72
|
element and the `+container` mixin to the element that contains the page
|
69
73
|
grid.
|
@@ -123,36 +127,35 @@ Extra Utility Mixins
|
|
123
127
|
Extra utilities are included in Susy's `utils.sass` file, with additional list
|
124
128
|
options, experimental (CSS3/proprietary) CSS, and more.
|
125
129
|
|
126
|
-
* `+show-grid(!src)`
|
127
|
-
|
130
|
+
* `+show-grid(!src)` - Repeat the specified grid image on an element. Good for
|
131
|
+
testing your baseline grid.
|
128
132
|
|
129
|
-
* `+inline-block-list([!horizontalpadding])`
|
130
|
-
when floating just won't do the trick.
|
133
|
+
* `+inline-block-list([!horizontalpadding])` - Make list items inline-block
|
134
|
+
when floating just won't do the trick (if you need them centered or right).
|
131
135
|
|
132
|
-
* `+hide`
|
136
|
+
* `+hide` - Hide content from visual browsers while keeping accessability
|
133
137
|
intact.
|
134
138
|
|
135
|
-
* `+skip-link([!top = 0, !right, !bottom, !left])`
|
139
|
+
* `+skip-link([!top = 0, !right, !bottom, !left])` - Hide a link, and then show
|
136
140
|
it again on focus. the TRBL settings allow you to place it absolutely on
|
137
141
|
display. Default will be top left of the positioning context.
|
138
142
|
|
139
|
-
And then the fun stuff
|
143
|
+
And then the fun stuff in `_CSS3.sass`:
|
140
144
|
|
141
|
-
* `+opacity(!opacity)`
|
142
|
-
0 to 1).
|
145
|
+
* `+opacity(!opacity)` - add cross-browser opacity settings (takes a range of
|
146
|
+
0 to 1). `+transprent` and `+opaque` are available as shortcuts.
|
143
147
|
|
144
|
-
* `+border-radius(!radius)`
|
145
|
-
|
148
|
+
* `+border-radius(!radius)` - Rounded corners in supporting browsers.
|
149
|
+
`+border-bottom-left-radius` etc. all work.
|
146
150
|
|
147
|
-
* `+box-sizing(!model)`
|
148
|
-
browsers.
|
151
|
+
* `+box-sizing(!model)` - Set the box sizing model in supporting browsers.
|
149
152
|
|
150
|
-
* `+box-shadow(!verticaloffset, !horizontaloffset, !blur, !color)`
|
151
|
-
|
153
|
+
* `+box-shadow(!verticaloffset, !horizontaloffset, !blur, !color)` -
|
154
|
+
Box-shadow in supporting browsers.
|
152
155
|
|
153
156
|
* `+column-count(!number)`, `+column-gap(!length)`, `+column-width(!length)`,
|
154
|
-
and `+column-rule(!width, !style, !color)`
|
155
|
-
|
157
|
+
and `+column-rule(!width, !style, !color)` - CSS columns in supporting
|
158
|
+
browsers.
|
156
159
|
|
157
160
|
Advanced Options
|
158
161
|
================
|
@@ -190,7 +193,7 @@ advanced options hidden inside. Here's a few:
|
|
190
193
|
It requires more maintenance on your part, but the result is a
|
191
194
|
hack-free output.
|
192
195
|
|
193
|
-
The
|
196
|
+
The Susy mixins that use either hacks or targeted mixins are
|
194
197
|
`+omega` (`+ie-omega([!right-floated = false])`), `+inline-block`
|
195
198
|
(`+ie-inline-block`), and `+inline-block-list` which sets
|
196
199
|
`+inline-block` on the list items.
|
@@ -207,7 +210,7 @@ advanced options hidden inside. Here's a few:
|
|
207
210
|
Example:
|
208
211
|
|
209
212
|
#nav
|
210
|
-
|
213
|
+
padding-right= gutter(5) + "%"
|
211
214
|
|
212
215
|
* `columns(!number, !context)` returns the span of `!number` columns in
|
213
216
|
`!context` as a percentage (again without the units declared). This span
|
@@ -216,7 +219,7 @@ advanced options hidden inside. Here's a few:
|
|
216
219
|
Example:
|
217
220
|
|
218
221
|
#nav
|
219
|
-
|
222
|
+
padding-left= columns(3,5) + "%"
|
220
223
|
|
221
224
|
* `side_gutter()` is also available and takes no arguments since it is always
|
222
225
|
used at the top nesting level.
|
@@ -229,4 +232,4 @@ advanced options hidden inside. Here's a few:
|
|
229
232
|
Example:
|
230
233
|
|
231
234
|
#nav
|
232
|
-
|
235
|
+
border-bottom= px2em(2) + "em"
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0.pre1
|
data/compass-susy-plugin.gemspec
CHANGED
@@ -2,19 +2,20 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{compass-susy-plugin}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.7.0.pre1"
|
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{2009-
|
9
|
+
s.date = %q{2009-11-30}
|
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
|
-
s.extra_rdoc_files = ["lib/susy/compass_plugin.rb", "lib/susy/sass_extensions.rb", "lib/susy.rb", "README.mkdn"]
|
13
|
-
s.files = ["lib/susy/compass_plugin.rb", "lib/susy/sass_extensions.rb", "lib/susy.rb", "Manifest", "Rakefile", "README.mkdn", "sass/susy/_grid.sass", "sass/susy/_utils.sass", "sass/susy/_text.sass", "sass/susy/_susy.sass", "templates/project/
|
12
|
+
s.extra_rdoc_files = ["lib/susy/compass_plugin.rb", "lib/susy/sass_extensions.rb", "lib/susy.rb", "README.mkdn", "LICENSE.txt"]
|
13
|
+
s.files = ["lib/susy/compass_plugin.rb", "lib/susy/sass_extensions.rb", "lib/susy.rb", "Manifest", "Rakefile", "README.mkdn", "sass/susy/_grid.sass", "sass/susy/_reset.sass", "sass/susy/_utils.sass", "sass/susy/_text.sass", "sass/susy/_susy.sass", "templates/project/print.sass", "templates/project/screen.sass", "templates/project/ie.sass", "templates/project/_base.sass", "templates/project/_defaults.sass", "templates/project/manifest.rb", "VERSION", "LICENSE.txt", "compass-susy-plugin.gemspec"]
|
14
14
|
s.homepage = %q{http://github.com/ericam/compass-susy-plugin}
|
15
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Compass-
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Compass-susy-plugin", "--main", "README.mkdn"]
|
16
16
|
s.require_paths = ["lib"]
|
17
|
-
s.
|
17
|
+
s.rubyforge_project = %q{compass-susy-plugin}
|
18
|
+
s.rubygems_version = %q{1.3.5}
|
18
19
|
s.summary = %q{A Compass grid system plugin.}
|
19
20
|
|
20
21
|
if s.respond_to? :specification_version then
|
@@ -22,14 +23,11 @@ Gem::Specification.new do |s|
|
|
22
23
|
s.specification_version = 3
|
23
24
|
|
24
25
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
25
|
-
s.add_runtime_dependency(%q<compass>, [">= 0"])
|
26
|
-
s.add_development_dependency(%q<echoe>, [">= 0"])
|
26
|
+
s.add_runtime_dependency(%q<compass>, [">= 0.10.0.pre1"])
|
27
27
|
else
|
28
|
-
s.add_dependency(%q<compass>, [">= 0"])
|
29
|
-
s.add_dependency(%q<echoe>, [">= 0"])
|
28
|
+
s.add_dependency(%q<compass>, [">= 0.10.0.pre1"])
|
30
29
|
end
|
31
30
|
else
|
32
|
-
s.add_dependency(%q<compass>, [">= 0"])
|
33
|
-
s.add_dependency(%q<echoe>, [">= 0"])
|
31
|
+
s.add_dependency(%q<compass>, [">= 0.10.0.pre1"])
|
34
32
|
end
|
35
33
|
end
|
data/sass/susy/_grid.sass
CHANGED
@@ -1,117 +1,127 @@
|
|
1
|
-
//** Grid
|
1
|
+
//** The Susy Grid **//
|
2
|
+
// Updated 11.20.2009 by Eric A. Meyer
|
2
3
|
|
3
|
-
|
4
|
-
|
4
|
+
|
5
|
+
// Your basic settings for the grid.
|
6
|
+
// Override these in base.sass to customize your site.
|
7
|
+
// The grid_unit will be used for col_width, gutter_width and side_gutter_width
|
5
8
|
!grid_unit ||= "em"
|
6
9
|
!total_cols ||= 12
|
7
10
|
!col_width ||= 4
|
8
11
|
!gutter_width ||= 1
|
9
12
|
!side_gutter_width ||= !gutter_width
|
13
|
+
|
14
|
+
|
15
|
+
// Susy will set your outer shell based on the variables above.
|
10
16
|
!container_width = container(!total_cols, !col_width, !gutter_width, !side_gutter_width)
|
11
17
|
|
12
18
|
|
13
|
-
|
14
|
-
set on the outer grid containing element.
|
19
|
+
// Set on the outer grid-containing element(s).
|
15
20
|
=container(!align = "left")
|
16
|
-
//
|
21
|
+
// clear all floated columns
|
17
22
|
+clearfix
|
18
|
-
//
|
19
|
-
|
20
|
-
//
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
//
|
25
|
-
|
26
|
-
//
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
23
|
+
// align the text back to the left (override for other alignments)
|
24
|
+
text-align= !align
|
25
|
+
// use auto horizontal margins to center your page in the body
|
26
|
+
margin:
|
27
|
+
left: auto
|
28
|
+
right: auto
|
29
|
+
// set the page width based on column settings
|
30
|
+
width= !container_width + !grid_unit
|
31
|
+
// never exceed 100% of the browser window (no side-scrolling)
|
32
|
+
max-width: 100%
|
33
|
+
|
34
|
+
|
35
|
+
// Set on any column element, even nested ones.
|
36
|
+
// The first agument [required] is the number of columns to span.
|
37
|
+
// The second argument is the context (columns spanned by parent).
|
38
|
+
// - Context is required on any nested elements.
|
39
|
+
// - Context MUST NOT be declared on a top-level element.
|
40
|
+
// By default a grid-column is floated left with a right gutter.
|
41
|
+
// - Override those with +float("right"), +alpha or +omega
|
37
42
|
=columns(!n, !context = false)
|
38
|
-
//
|
39
|
-
:width= columns(!n, !context) + "%"
|
40
|
-
// the column is floated left
|
43
|
+
// the column is floated left
|
41
44
|
+float("left")
|
42
|
-
//
|
43
|
-
|
45
|
+
// the width of the column is set as a percentage of the context
|
46
|
+
width= columns(!n, !context) + "%"
|
47
|
+
// the right gutter is added as a percentage of the context
|
48
|
+
margin-right= gutter(!context) + "%"
|
49
|
+
|
44
50
|
|
45
|
-
|
46
|
-
set on any column to add empty colums before or after
|
51
|
+
// Set on any element to add empty colums as padding before or after.
|
47
52
|
=prefix(!n, !context = false)
|
48
|
-
|
53
|
+
padding-left= columns(!n, !context) + gutter(!context) + "%"
|
49
54
|
|
50
55
|
=suffix(!n, !context = false)
|
51
|
-
|
56
|
+
padding-right= columns(!n, !context) + gutter(!context) + "%"
|
57
|
+
|
52
58
|
|
53
|
-
|
54
|
-
set as shortcut for prefix and suffix
|
59
|
+
// Set as a shortcut for both prefix and suffix.
|
55
60
|
=pad(!p = 0, !s = 0, !c = false)
|
56
61
|
@if !p != 0
|
57
62
|
+prefix(!p,!c)
|
58
63
|
@if !s != 0
|
59
64
|
+suffix(!s,!c)
|
60
65
|
|
61
|
-
|
62
|
-
|
63
|
-
|
66
|
+
|
67
|
+
// Set on any element spanning the first column in non-nested context
|
68
|
+
// to take side-gutters into account. Recommended that you pass the
|
69
|
+
// actual nested contexts (when nested) rather than a true/false argument
|
70
|
+
// for the sake of consistency. Effect is the same.
|
64
71
|
=alpha(!nested = false)
|
65
72
|
@if !nested == false
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
- this will be called automatically with hacks
|
71
|
-
|
72
|
-
- you can call it yourself in ie.sass without the hacks
|
73
|
-
=ie-omega(!nested = false, !
|
73
|
+
margin-left= side_gutter() + "%"
|
74
|
+
|
75
|
+
|
76
|
+
// When global constant !hacks == true:
|
77
|
+
// - this will be called automatically with hacks
|
78
|
+
// When global constant !hacks == false:
|
79
|
+
// - you can call it yourself in ie.sass without the hacks
|
80
|
+
=ie-omega(!nested = false, !dir = "right", !hack = false)
|
74
81
|
!s = side_gutter()
|
75
|
-
@if !right
|
82
|
+
@if !dir == "right"
|
76
83
|
@if !hack
|
77
|
-
|
84
|
+
#margin-left: -1%
|
78
85
|
@else
|
79
|
-
|
86
|
+
margin-left: -1%
|
80
87
|
@else
|
81
88
|
@if !nested
|
82
89
|
@if !hack
|
83
|
-
|
90
|
+
#margin-right: -1%
|
84
91
|
@else
|
85
|
-
|
92
|
+
margin-right: -1%
|
86
93
|
@else
|
87
94
|
@if !hack
|
88
|
-
|
95
|
+
#margin-right= !s - 1 + "%"
|
89
96
|
@else
|
90
|
-
|
97
|
+
margin-right= !s - 1 + "%"
|
98
|
+
|
91
99
|
|
92
|
-
|
93
|
-
|
94
|
-
- set !nested for nested columns
|
95
|
-
- over-ride !omega_float globally or set +float locally for left-floated omega elements
|
100
|
+
// Sets the direction that +omega elements are floated
|
101
|
+
// - Override !omega_float globally or set +float locally to change
|
96
102
|
!omega_float ||= "right"
|
97
103
|
|
98
|
-
|
99
|
-
|
104
|
+
|
105
|
+
// Set omega on the last element of a row to take side-gutters
|
106
|
+
// and the page edge into account. Set the !nested argument for nested columns.
|
107
|
+
// It is recommended that you pass the actual nested context when nested,
|
108
|
+
// rather than a true/false argument, for the sake of consistency. Effect is the same.
|
109
|
+
=omega(!nested = false)
|
100
110
|
+float(!omega_float)
|
101
111
|
@if !nested
|
102
|
-
|
112
|
+
margin-right: 0
|
103
113
|
@else
|
104
|
-
|
114
|
+
margin-right= side_gutter() + "%"
|
105
115
|
@if !hacks
|
106
116
|
/* ugly hacks for IE6-7 */
|
107
|
-
+ie-omega(!nested, !
|
117
|
+
+ie-omega(!nested, !omega_float, true)
|
108
118
|
/* end ugly hacks */
|
109
119
|
|
110
|
-
|
111
|
-
|
112
|
-
|
120
|
+
|
121
|
+
// Set on an element that will span it's entire context.
|
122
|
+
// - no need for +columns, +alpha or +omega on a +full element.
|
113
123
|
=full(!nested = false)
|
114
|
-
:
|
124
|
+
clear: both
|
115
125
|
@if !nested == false
|
116
126
|
!s = side_gutter() + "%"
|
117
127
|
margin-right= !s
|
data/sass/susy/_susy.sass
CHANGED
@@ -1,18 +1,24 @@
|
|
1
|
-
//**
|
2
|
-
|
1
|
+
//** Susy **//
|
2
|
+
// Updated 11.20.2009 by Eric A. Meyer
|
3
|
+
|
4
|
+
|
5
|
+
// Tell susy whether you are using hacks or conditional comments.
|
3
6
|
!hacks ||= true
|
4
7
|
|
8
|
+
|
9
|
+
// Import all the Important Stuff.
|
10
|
+
@import compass/css3.sass
|
5
11
|
@import utils.sass
|
6
12
|
@import text.sass
|
7
13
|
@import grid.sass
|
8
14
|
|
9
|
-
|
10
|
-
|
15
|
+
|
16
|
+
// Set Susy on your BODY element to get things started.
|
11
17
|
=susy(!align = "center")
|
12
|
-
//
|
13
|
-
//
|
14
|
-
|
15
|
-
//
|
16
|
-
|
17
|
-
|
18
|
+
// text-align set to center by default for auto-centering layouts
|
19
|
+
// - override !align for left/right-aligned designs
|
20
|
+
text-align= !align
|
21
|
+
// font size is set against the browser default (usually 16px)
|
22
|
+
font-size= !base_font_size
|
23
|
+
line-height= !base_line_height
|
18
24
|
|
data/sass/susy/_text.sass
CHANGED
@@ -1,14 +1,15 @@
|
|
1
|
-
//** Text Settings **//
|
1
|
+
//** Susy Text Settings **//
|
2
|
+
// Updated 11.20.2009 by Eric A. Meyer
|
2
3
|
|
3
|
-
|
4
|
-
|
4
|
+
|
5
|
+
// The font size and line height are declared in pixels.
|
6
|
+
// You override these default settings in base.sass
|
5
7
|
!base_font_size_px ||= 16
|
6
8
|
!base_line_height_px ||= 24
|
7
9
|
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
because Susy needs to "remember" our base_font_size_px for px2em()
|
11
|
+
// Susy will do the math to make those sizes relative.
|
12
|
+
// We call base_font_size function (even though we could do the math here)
|
13
|
+
// because Susy needs to "remember" our base_font_size_px for px2em()
|
13
14
|
!base_font_size = base_font_size(!base_font_size_px) + "%"
|
14
15
|
!base_line_height = (!base_line_height_px / !base_font_size_px) + "em"
|