compass-edge 0.9.4 → 0.9.5.0
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/CHANGELOG.markdown +32 -2
- data/README.markdown +12 -2
- data/REVISION +1 -1
- data/Rakefile +3 -1
- data/VERSION.yml +1 -2
- data/examples/blueprint_default/index.html.haml +3 -3
- data/examples/blueprint_default/parts/forms.html.haml +2 -0
- data/examples/blueprint_default/src/screen.sass +1 -1
- data/examples/blueprint_plugins/index.html.haml +6 -6
- data/examples/blueprint_plugins/src/buttons.sass +2 -2
- data/examples/blueprint_plugins/src/link_icons.sass +1 -1
- data/examples/blueprint_plugins/src/rtl_screen.sass +3 -3
- data/examples/blueprint_plugins/src/screen.sass +2 -2
- data/examples/blueprint_semantic/src/liquid.sass +4 -4
- data/examples/blueprint_semantic/src/screen.sass +3 -3
- data/examples/compass/bootstrap.rb +3 -0
- data/examples/compass/extensions/yui/stylesheets/_yui.sass +7 -0
- data/examples/compass/extensions/yui/stylesheets/yui/modules/_base.sass +70 -0
- data/examples/compass/extensions/yui/stylesheets/yui/modules/_fonts.sass +45 -0
- data/examples/compass/extensions/yui/stylesheets/yui/modules/_grids.sass +385 -0
- data/examples/compass/extensions/yui/stylesheets/yui/modules/_reset.sass +61 -0
- data/examples/compass/extensions/yui/templates/project/manifest.rb +1 -0
- data/examples/compass/extensions/yui/templates/project/screen.sass +4 -0
- data/examples/compass/src/utilities.sass +2 -2
- data/examples/css3/config.rb +6 -0
- data/examples/css3/extensions/fancy-fonts/templates/project/Vtks Revolt.ttf +0 -0
- data/examples/css3/extensions/fancy-fonts/templates/project/angelina.ttf +0 -0
- data/examples/css3/extensions/fancy-fonts/templates/project/fancy-fonts.sass +7 -0
- data/examples/css3/extensions/fancy-fonts/templates/project/manifest.rb +5 -0
- data/examples/css3/images/fresh-peas.jpg +0 -0
- data/examples/css3/index.html.haml +55 -0
- data/examples/css3/src/_base.sass +14 -0
- data/examples/css3/src/fancy-fonts.sass +7 -0
- data/examples/css3/src/gradient.sass +10 -0
- data/examples/css3/src/main.sass +80 -0
- data/examples/css3/stylesheets/fonts/Vtks Revolt.ttf +0 -0
- data/examples/css3/stylesheets/fonts/angelina.ttf +0 -0
- data/examples/downloader.rb +2 -2
- data/examples/ninesixty/extensions/ninesixty/README.mkdn +56 -0
- data/examples/ninesixty/extensions/ninesixty/compass-960-plugin.gemspec +36 -0
- data/examples/ninesixty/extensions/ninesixty/lib/ninesixty.rb +1 -0
- data/examples/ninesixty/extensions/ninesixty/lib/ninesixty/compass_plugin.rb +5 -0
- data/examples/ninesixty/extensions/ninesixty/sass/960/_grid.sass +64 -0
- data/examples/ninesixty/extensions/ninesixty/sass/960/_text.sass +59 -0
- data/examples/ninesixty/extensions/ninesixty/templates/project/grid.sass +34 -0
- data/examples/ninesixty/extensions/ninesixty/templates/project/manifest.rb +2 -0
- data/examples/ninesixty/extensions/ninesixty/templates/project/text.sass +10 -0
- data/examples/susy/bootstrap.rb +3 -0
- data/examples/susy/config.rb +9 -0
- data/examples/susy/extensions/susy/LICENSE.txt +28 -0
- data/examples/susy/extensions/susy/README.mkdn +235 -0
- data/examples/susy/extensions/susy/compass-susy-plugin.gemspec +35 -0
- data/examples/susy/extensions/susy/docs/tutorial/build.sh +141 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/01_target/src/_defaults.sass +100 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/01_target/src/screen.sass +98 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/02_container/src/_defaults.sass +147 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/02_container/src/screen.sass +19 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/03_structure/src/_defaults.sass +147 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/03_structure/src/screen.sass +48 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/_common/config.rb +14 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/_common/images/grid.png +0 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/_common/images/susy_logo.png +0 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/_common/src/_base.sass +63 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/_tools/Markdown.pl +1450 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/site/src/_defaults.sass +100 -0
- data/examples/susy/extensions/susy/docs/tutorial/code/site/src/screen.sass +91 -0
- data/examples/susy/extensions/susy/docs/tutorial/figures/susy_element.png +0 -0
- data/examples/susy/extensions/susy/docs/tutorial/figures/susy_grid.png +0 -0
- data/examples/susy/extensions/susy/docs/tutorial/index.mkdn +301 -0
- data/examples/susy/extensions/susy/lib/susy.rb +2 -0
- data/examples/susy/extensions/susy/lib/susy/compass_plugin.rb +5 -0
- data/examples/susy/extensions/susy/lib/susy/sass_extensions.rb +79 -0
- data/examples/susy/extensions/susy/sass/susy/_grid.sass +128 -0
- data/examples/susy/extensions/susy/sass/susy/_reset.sass +7 -0
- data/examples/susy/extensions/susy/sass/susy/_susy.sass +23 -0
- data/examples/susy/extensions/susy/sass/susy/_text.sass +15 -0
- data/examples/susy/extensions/susy/sass/susy/_utils.sass +81 -0
- data/examples/susy/extensions/susy/templates/project/_base.sass +62 -0
- data/examples/susy/extensions/susy/templates/project/_defaults.sass +147 -0
- data/examples/susy/extensions/susy/templates/project/ie.sass +9 -0
- data/examples/susy/extensions/susy/templates/project/manifest.rb +5 -0
- data/examples/susy/extensions/susy/templates/project/print.sass +7 -0
- data/examples/susy/extensions/susy/templates/project/screen.sass +44 -0
- data/examples/susy/src/_base.sass +62 -0
- data/examples/susy/src/_defaults.sass +148 -0
- data/examples/susy/src/screen.sass +114 -0
- data/examples/yui/extensions/yui/stylesheets/_yui.sass +7 -0
- data/examples/yui/extensions/yui/stylesheets/yui/modules/_base.sass +70 -0
- data/examples/yui/extensions/yui/stylesheets/yui/modules/_fonts.sass +45 -0
- data/examples/yui/extensions/yui/stylesheets/yui/modules/_grids.sass +385 -0
- data/examples/yui/extensions/yui/stylesheets/yui/modules/_reset.sass +61 -0
- data/examples/yui/extensions/yui/templates/project/manifest.rb +1 -0
- data/examples/yui/extensions/yui/templates/project/screen.sass +4 -0
- data/lib/compass/app_integration/rails/configuration_defaults.rb +9 -1
- data/lib/compass/commands/watch_project.rb +1 -1
- data/lib/compass/compiler.rb +9 -1
- data/lib/compass/configuration.rb +23 -18
- data/lib/compass/configuration/adapters.rb +1 -1
- data/lib/compass/configuration/defaults.rb +30 -0
- data/lib/compass/frameworks.rb +1 -1
- data/lib/compass/frameworks/blueprint/stylesheets/_blueprint.sass +29 -1
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_buttons.sass +84 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_colors.sass +33 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_debug.sass +9 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_fancy_type.sass +82 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_form.sass +56 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_grid.sass +179 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_ie.sass +2 -2
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_interaction.sass +58 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_link_icons.sass +44 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_liquid.sass +141 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_print.sass +1 -4
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_reset.sass +57 -2
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_rtl.sass +123 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_scaffolding.sass +49 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_screen.sass +2 -29
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_typography.sass +162 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/_utilities.sass +37 -0
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_buttons.sass +2 -84
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_colors.sass +2 -33
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_debug.sass +2 -9
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_fancy_type.sass +2 -82
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_form.sass +2 -55
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_grid.sass +2 -178
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_interaction.sass +2 -58
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_link_icons.sass +2 -44
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_liquid.sass +2 -140
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_reset.sass +2 -56
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_rtl.sass +2 -122
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_scaffolding.sass +2 -47
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_typography.sass +2 -160
- data/lib/compass/frameworks/blueprint/stylesheets/blueprint/modules/_utilities.sass +2 -37
- data/lib/compass/frameworks/blueprint/templates/buttons/buttons.sass +2 -2
- data/lib/compass/frameworks/blueprint/templates/link_icons/link_icons.sass +1 -1
- data/lib/compass/frameworks/blueprint/templates/project/screen.sass +1 -7
- data/lib/compass/frameworks/blueprint/templates/project/welcome.html.haml +5 -2
- data/lib/compass/frameworks/compass/stylesheets/compass/_css3.sass +8 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_background_clip.sass +16 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_background_origin.sass +18 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_background_size.sass +14 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_box_shadow.sass +18 -10
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_font_face.sass +31 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_gradient.sass +40 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_text_shadow.sass +15 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_transform.sass +60 -0
- data/lib/compass/frameworks/compass/stylesheets/compass/css3/_transition.sass +57 -0
- data/lib/compass/grid_builder.rb +1 -1
- data/lib/compass/installers/base.rb +5 -1
- data/lib/compass/installers/manifest.rb +1 -0
- data/lib/compass/logger.rb +28 -2
- data/lib/compass/sass_extensions/functions.rb +3 -1
- data/lib/compass/sass_extensions/functions/color_stop.rb +10 -0
- data/lib/compass/sass_extensions/functions/enumerate.rb +2 -2
- data/lib/compass/sass_extensions/functions/font_files.rb +11 -0
- data/lib/compass/sass_extensions/functions/inline_image.rb +22 -1
- data/lib/compass/sass_extensions/functions/urls.rb +20 -0
- data/lib/vendor/fssm.rb +19 -6
- data/lib/vendor/fssm/backends/fsevents.rb +19 -60
- data/lib/vendor/fssm/backends/polling.rb +20 -18
- data/lib/vendor/fssm/cache.rb +193 -0
- data/lib/vendor/fssm/ext.rb +30 -0
- data/lib/vendor/fssm/fsevents.rb +129 -0
- data/lib/vendor/fssm/monitor.rb +10 -6
- data/lib/vendor/fssm/path.rb +24 -21
- data/lib/vendor/fssm/state.rb +37 -29
- data/lib/vendor/fssm/support.rb +3 -7
- data/lib/vendor/fssm/tree.rb +176 -0
- data/test/command_line_helper.rb +8 -4
- data/test/command_line_test.rb +2 -2
- data/test/compass_test.rb +14 -4
- data/test/configuration_test.rb +5 -5
- data/test/fixtures/stylesheets/blueprint/css/typography.css +5 -3
- data/test/fixtures/stylesheets/blueprint/sass/screen.sass +1 -1
- data/test/fixtures/stylesheets/blueprint/sass/typography.sass +2 -2
- data/test/fixtures/stylesheets/compass/css/print.css +2 -8
- data/test/fixtures/stylesheets/image_urls/css/screen.css +2 -0
- data/test/fixtures/stylesheets/relative/assets/images/testing.png +0 -0
- data/test/fixtures/stylesheets/relative/config.rb +9 -0
- data/test/fixtures/stylesheets/relative/css/ie.css +1 -0
- data/test/fixtures/stylesheets/relative/css/print.css +1 -0
- data/test/fixtures/stylesheets/relative/css/screen.css +1 -0
- data/test/fixtures/stylesheets/relative/sass/ie.sass +6 -0
- data/test/fixtures/stylesheets/relative/sass/print.sass +6 -0
- data/test/fixtures/stylesheets/relative/sass/screen.sass +3 -0
- data/test/rails_integration_test.rb +1 -1
- data/test/sass_extensions_test.rb +2 -2
- metadata +120 -2
@@ -0,0 +1,59 @@
|
|
1
|
+
!ninesixty_font_family ||= "Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif"
|
2
|
+
|
3
|
+
=text(!font_family = !ninesixty_font_family)
|
4
|
+
body
|
5
|
+
:font= "13px/1.5" !font_family
|
6
|
+
|
7
|
+
a:focus
|
8
|
+
:outline 1px dotted invert
|
9
|
+
|
10
|
+
hr
|
11
|
+
:border-color #ccc
|
12
|
+
:border-style solid
|
13
|
+
:border-width 1px 0 0
|
14
|
+
:clear both
|
15
|
+
:height 0
|
16
|
+
|
17
|
+
h1
|
18
|
+
:font-size 25px
|
19
|
+
|
20
|
+
h2
|
21
|
+
:font-size 23px
|
22
|
+
|
23
|
+
h3
|
24
|
+
:font-size 21px
|
25
|
+
|
26
|
+
h4
|
27
|
+
:font-size 19px
|
28
|
+
|
29
|
+
h5
|
30
|
+
:font-size 17px
|
31
|
+
|
32
|
+
h6
|
33
|
+
:font-size 15px
|
34
|
+
|
35
|
+
ol
|
36
|
+
:list-style decimal
|
37
|
+
|
38
|
+
ul
|
39
|
+
:list-style square
|
40
|
+
|
41
|
+
li
|
42
|
+
:margin-left 30px
|
43
|
+
|
44
|
+
p,
|
45
|
+
dl,
|
46
|
+
hr,
|
47
|
+
h1,
|
48
|
+
h2,
|
49
|
+
h3,
|
50
|
+
h4,
|
51
|
+
h5,
|
52
|
+
h6,
|
53
|
+
ol,
|
54
|
+
ul,
|
55
|
+
pre,
|
56
|
+
table,
|
57
|
+
address,
|
58
|
+
fieldset
|
59
|
+
:margin-bottom 20px
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/*
|
2
|
+
960 Grid System ~ Core CSS.
|
3
|
+
Learn more ~ http://960.gs/
|
4
|
+
|
5
|
+
Licensed under GPL and MIT.
|
6
|
+
|
7
|
+
@import compass/utilities/general/reset.sass
|
8
|
+
@import 960/grid.sass
|
9
|
+
|
10
|
+
+global-reset
|
11
|
+
|
12
|
+
// The following generates the default grids provided by the css version of 960.gs
|
13
|
+
.container_12
|
14
|
+
+grid-system(12)
|
15
|
+
|
16
|
+
.container_16
|
17
|
+
+grid-system(16)
|
18
|
+
|
19
|
+
// But most compass users prefer to construct semantic layouts like so (two column layout with header and footer):
|
20
|
+
|
21
|
+
!ninesixty_columns = 24
|
22
|
+
.two-column
|
23
|
+
+grid-container
|
24
|
+
#header,
|
25
|
+
#footer,
|
26
|
+
#sidebar,
|
27
|
+
#main-content
|
28
|
+
+grid-unit-base
|
29
|
+
#header, #footer
|
30
|
+
+grid-width(24)
|
31
|
+
#sidebar
|
32
|
+
+grid-width(8)
|
33
|
+
#main-content
|
34
|
+
+grid-width(16)
|
@@ -0,0 +1,9 @@
|
|
1
|
+
project_type = :stand_alone
|
2
|
+
# Set this to the root of your project when deployed:
|
3
|
+
http_path = "/"
|
4
|
+
css_dir = "stylesheets"
|
5
|
+
sass_dir = "src"
|
6
|
+
images_dir = "images"
|
7
|
+
output_style = :compact
|
8
|
+
# To enable relative paths to assets via compass helper functions. Uncomment:
|
9
|
+
# relative_assets = true
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Copyright (c) 2009, Eric Meyer
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are
|
6
|
+
met:
|
7
|
+
|
8
|
+
* Redistributions of source code must retain the above copyright
|
9
|
+
notice, this list of conditions and the following disclaimer.
|
10
|
+
* Redistributions in binary form must reproduce the above
|
11
|
+
copyright notice, this list of conditions and the following
|
12
|
+
disclaimer in the documentation and/or other materials provided
|
13
|
+
with the distribution.
|
14
|
+
* Neither the name of the author nor the names of other
|
15
|
+
contributors may be used to endorse or promote products derived
|
16
|
+
from this software without specific prior written permission.
|
17
|
+
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
19
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
20
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
21
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
22
|
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
23
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
24
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
25
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
26
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
27
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -0,0 +1,235 @@
|
|
1
|
+
Susy - Compass Plugin
|
2
|
+
=====================
|
3
|
+
|
4
|
+
Susy is a semantic CSS framework creator entirely native to
|
5
|
+
[Compass](http://compass-style.org/).
|
6
|
+
Susy is an expert at fluid grids in an elastic (or fluid, or fixed) shell that
|
7
|
+
will never activate that bloody side-scroll bar. Susy sets your width on the
|
8
|
+
outer element (`container`), adds a `max-width` of `100%` and builds the rest
|
9
|
+
of your grid in percentages. The philosophy and technique are based on
|
10
|
+
[Natalie Downe](http://natbat.net/)'s "[CSS
|
11
|
+
Systems](http://natbat.net/2008/Sep/28/css-systems/)" - which introduces
|
12
|
+
difficult math in the service of beautiful structure. With the power of
|
13
|
+
Compass/Sass, Susy will do that math for you.
|
14
|
+
|
15
|
+
Using simple mixins, columns can be created, suffixed, prefixed, and nested
|
16
|
+
easily - and always in flexible percentages.
|
17
|
+
|
18
|
+
Install
|
19
|
+
=======
|
20
|
+
|
21
|
+
sudo gem sources --add http://gemcutter.org/
|
22
|
+
sudo gem install compass-susy-plugin
|
23
|
+
|
24
|
+
Create a Susy-based Compass Project
|
25
|
+
===================================
|
26
|
+
|
27
|
+
compass -r susy -f susy <project name>
|
28
|
+
|
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.
|
32
|
+
|
33
|
+
Philosophy and Goals
|
34
|
+
--------------------
|
35
|
+
|
36
|
+
The method comes from [Natalie Downe](http://natbat.net/)'s "[CSS
|
37
|
+
Systems](http://natbat.net/2008/Sep/28/css-systems/)", but I'll cover it here.
|
38
|
+
|
39
|
+
It is important for accessibility and usability that we are:
|
40
|
+
|
41
|
+
* Responsive to text sizing: In order for our site to be accessible we need to
|
42
|
+
allow different font-sizes to be set by the client. In order to maintain
|
43
|
+
design integrity of proportions and line-lengths, the grid needs to respond
|
44
|
+
to those sizes.
|
45
|
+
|
46
|
+
* Responsive to window sizing: In order to maintain usability across
|
47
|
+
platforms/monitors, our grid needs to respond to the size of the viewport.
|
48
|
+
This is mainly an issue as the viewport shrinks and we are given a
|
49
|
+
side-scroll bar. No one likes that. On the large end our design integrity
|
50
|
+
and line lengths are more important than taking up all the possible space.
|
51
|
+
|
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.
|
58
|
+
|
59
|
+
But Susy harnesses the power of Compass and Sass to do all the math for you.
|
60
|
+
|
61
|
+
Grid Basics
|
62
|
+
===========
|
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`.
|
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
|
+
|
71
|
+
* Create your grid in `screen.sass`: apply the `+susy` mixin to the `body`
|
72
|
+
element and the `+container` mixin to the element that contains the page
|
73
|
+
grid.
|
74
|
+
|
75
|
+
* Use the `+columns` mixin to declare the width in columns of an element,
|
76
|
+
or `+full` for any element spanning the full width of its context.
|
77
|
+
|
78
|
+
* Use `+alpha` and `+omega` to declare elements which include the first or
|
79
|
+
last column within their parent element (`+full` to declare both `+alpha`
|
80
|
+
and `+omega`). Note: `+alpha` is actually only needed in the very top level,
|
81
|
+
and does nothing in nested contexts. Neither is needed on a `+full` element.
|
82
|
+
|
83
|
+
* Use `+prefix` or `+suffix` to give the width (in columns) of an elements
|
84
|
+
left or right margin, or `+pad` to give both `+prefix` and `+suffix` at
|
85
|
+
once.
|
86
|
+
|
87
|
+
* In nested contexts, all of these mixins take an extra final argument, the
|
88
|
+
width in columns of the parent (nesting) element.
|
89
|
+
|
90
|
+
That's it for the basics! Here's a sample Susy grid layout:
|
91
|
+
|
92
|
+
body
|
93
|
+
+susy
|
94
|
+
|
95
|
+
#page
|
96
|
+
+container
|
97
|
+
|
98
|
+
#brand
|
99
|
+
+full
|
100
|
+
+pad(1,1)
|
101
|
+
h1
|
102
|
+
+full(8)
|
103
|
+
+pad(1,2,8)
|
104
|
+
|
105
|
+
#nav
|
106
|
+
+columns(2)
|
107
|
+
+alpha
|
108
|
+
|
109
|
+
#content
|
110
|
+
+columns(8)
|
111
|
+
+omega
|
112
|
+
#description
|
113
|
+
+columns(5,8)
|
114
|
+
#credit
|
115
|
+
+columns(3,8)
|
116
|
+
+omega(8)
|
117
|
+
|
118
|
+
Tutorial
|
119
|
+
========
|
120
|
+
|
121
|
+
For more details, read [the tutorial](http://www.oddbird.net/susy/tutorial/).
|
122
|
+
It's also included with Susy in the docs/ folder.
|
123
|
+
|
124
|
+
Extra Utility Mixins
|
125
|
+
=====================
|
126
|
+
|
127
|
+
Extra utilities are included in Susy's `utils.sass` file, with additional list
|
128
|
+
options, experimental (CSS3/proprietary) CSS, and more.
|
129
|
+
|
130
|
+
* `+show-grid(!src)` - Repeat the specified grid image on an element. Good for
|
131
|
+
testing your baseline grid.
|
132
|
+
|
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).
|
135
|
+
|
136
|
+
* `+hide` - Hide content from visual browsers while keeping accessability
|
137
|
+
intact.
|
138
|
+
|
139
|
+
* `+skip-link([!top = 0, !right, !bottom, !left])` - Hide a link, and then show
|
140
|
+
it again on focus. the TRBL settings allow you to place it absolutely on
|
141
|
+
display. Default will be top left of the positioning context.
|
142
|
+
|
143
|
+
And then the fun stuff in `_CSS3.sass`:
|
144
|
+
|
145
|
+
* `+opacity(!opacity)` - add cross-browser opacity settings (takes a range of
|
146
|
+
0 to 1). `+transprent` and `+opaque` are available as shortcuts.
|
147
|
+
|
148
|
+
* `+border-radius(!radius)` - Rounded corners in supporting browsers.
|
149
|
+
`+border-bottom-left-radius` etc. all work.
|
150
|
+
|
151
|
+
* `+box-sizing(!model)` - Set the box sizing model in supporting browsers.
|
152
|
+
|
153
|
+
* `+box-shadow(!verticaloffset, !horizontaloffset, !blur, !color)` -
|
154
|
+
Box-shadow in supporting browsers.
|
155
|
+
|
156
|
+
* `+column-count(!number)`, `+column-gap(!length)`, `+column-width(!length)`,
|
157
|
+
and `+column-rule(!width, !style, !color)` - CSS columns in supporting
|
158
|
+
browsers.
|
159
|
+
|
160
|
+
Advanced Options
|
161
|
+
================
|
162
|
+
|
163
|
+
Susy is built for flexibility, so that you always write the code you want to
|
164
|
+
write. While everything should 'just work' out of the box, there are plenty of
|
165
|
+
advanced options hidden inside. Here's a few:
|
166
|
+
|
167
|
+
* `!hacks` is a boolean constant that you can set in your base.sass file to
|
168
|
+
choose between using targeted hacks for IE (a variation of the star hack in
|
169
|
+
most cases) in your screen.css, or using a conditional-comment targeted
|
170
|
+
ie.css. All the needed mixins are available for either setting. `!hacks` is
|
171
|
+
true by default so there is no extra work maintaining multiple files unless
|
172
|
+
you want to.
|
173
|
+
|
174
|
+
Example 1:
|
175
|
+
|
176
|
+
!hacks = true
|
177
|
+
|
178
|
+
#nav
|
179
|
+
+inline-block-list
|
180
|
+
|
181
|
+
Example 2:
|
182
|
+
|
183
|
+
!hacks = false
|
184
|
+
|
185
|
+
(in screen.sass)
|
186
|
+
#nav
|
187
|
+
+inline-block-list
|
188
|
+
|
189
|
+
(in ie.sass)
|
190
|
+
#nav li
|
191
|
+
+ie-inline-block
|
192
|
+
|
193
|
+
It requires more maintenance on your part, but the result is a
|
194
|
+
hack-free output.
|
195
|
+
|
196
|
+
The Susy mixins that use either hacks or targeted mixins are
|
197
|
+
`+omega` (`+ie-omega([!right-floated = false])`), `+inline-block`
|
198
|
+
(`+ie-inline-block`), and `+inline-block-list` which sets
|
199
|
+
`+inline-block` on the list items.
|
200
|
+
|
201
|
+
The ie-specific mixins only add the needed ie-specific adjustments,
|
202
|
+
so they need to be used in addition to their counterparts, not on
|
203
|
+
their own.
|
204
|
+
|
205
|
+
* `gutter(!context)` is a function that you can call at any time to return the
|
206
|
+
size of a gutter in your given context using percentages. The number is
|
207
|
+
returned without units so that you can perform math on it. In order to use
|
208
|
+
it, you will have to add "%" to it.
|
209
|
+
|
210
|
+
Example:
|
211
|
+
|
212
|
+
#nav
|
213
|
+
padding-right= gutter(5) + "%"
|
214
|
+
|
215
|
+
* `columns(!number, !context)` returns the span of `!number` columns in
|
216
|
+
`!context` as a percentage (again without the units declared). This span
|
217
|
+
includes any gutters between the columns spanned.
|
218
|
+
|
219
|
+
Example:
|
220
|
+
|
221
|
+
#nav
|
222
|
+
padding-left= columns(3,5) + "%"
|
223
|
+
|
224
|
+
* `side_gutter()` is also available and takes no arguments since it is always
|
225
|
+
used at the top nesting level.
|
226
|
+
|
227
|
+
* `px2em()` takes one numeric argument representing the number of pixels you
|
228
|
+
want to mimic. The return is an em value (with no units declared) that
|
229
|
+
approximates that number of pixels. Useful for keeping your entire design
|
230
|
+
fluid.
|
231
|
+
|
232
|
+
Example:
|
233
|
+
|
234
|
+
#nav
|
235
|
+
border-bottom= px2em(2) + "em"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{compass-susy-plugin}
|
5
|
+
s.version = "0.7"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Eric Meyer"]
|
9
|
+
s.date = %q{2009-07-12}
|
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
|
+
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/_base.sass", "templates/project/screen.sass", "templates/project/print.sass", "templates/project/ie.sass", "templates/project/manifest.rb", "VERSION", "LICENSE.txt", "docs/tutorial/index.mkdn", "docs/tutorial/figures/susy_element.png", "docs/tutorial/figures/susy_grid.png", "compass-susy-plugin.gemspec"]
|
14
|
+
s.homepage = %q{http://github.com/ericam/compass-susy-plugin}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Compass-Susy-plugin", "--main", "README.mkdn"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubygems_version = %q{1.3.3}
|
18
|
+
s.summary = %q{A Compass grid system plugin.}
|
19
|
+
|
20
|
+
if s.respond_to? :specification_version then
|
21
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
22
|
+
s.specification_version = 3
|
23
|
+
|
24
|
+
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"])
|
27
|
+
else
|
28
|
+
s.add_dependency(%q<compass>, [">= 0"])
|
29
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
30
|
+
end
|
31
|
+
else
|
32
|
+
s.add_dependency(%q<compass>, [">= 0"])
|
33
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
tut_dir=`dirname ${0}`
|
4
|
+
cd "${tut_dir}"
|
5
|
+
tut_dir=`pwd`
|
6
|
+
|
7
|
+
if [ ! -d "_build" ]; then
|
8
|
+
mkdir "_build"
|
9
|
+
fi
|
10
|
+
|
11
|
+
cp -pR code/* _build/
|
12
|
+
cd _build
|
13
|
+
|
14
|
+
# create activate and deactivate scripts
|
15
|
+
cat > activate <<EOF
|
16
|
+
#!/bin/bash
|
17
|
+
|
18
|
+
cd "${tut_dir}/_build"
|
19
|
+
pushd ../../../lib > /dev/null
|
20
|
+
libdir=\`pwd\`
|
21
|
+
popd > /dev/null
|
22
|
+
|
23
|
+
export OLD_RUBYLIB=\${RUBYLIB}
|
24
|
+
export RUBYLIB=\${libdir}
|
25
|
+
EOF
|
26
|
+
|
27
|
+
cat > deactivate <<EOF
|
28
|
+
#!/bin/bash
|
29
|
+
|
30
|
+
export RUBYLIB=\${OLD_RUBYLIB}
|
31
|
+
export OLD_RUBYLIB=
|
32
|
+
EOF
|
33
|
+
|
34
|
+
# activate so we can run compass later
|
35
|
+
. activate
|
36
|
+
|
37
|
+
# create the site index.html and place it in _common
|
38
|
+
cat _tools/head.tpl.html \
|
39
|
+
| sed 's/{{ STYLE_PATH }}//; s/{{ BODY_CLASS }}/home/; s/{{ TITLE }}/A Grid Plugin for Compass/;' \
|
40
|
+
> _tools/home_head.html
|
41
|
+
cat _tools/foot.tpl.html \
|
42
|
+
| sed 's/{{ STYLE_PATH }}//;' \
|
43
|
+
> _tools/home_foot.html
|
44
|
+
cat _tools/home_head.html _tools/home_content.html _tools/home_foot.html > _common/index.html
|
45
|
+
|
46
|
+
# copy the tutorial figures into site/
|
47
|
+
if [ ! -d "site/tutorial" ]; then
|
48
|
+
mkdir site/tutorial
|
49
|
+
fi
|
50
|
+
cp -pR ../figures site/tutorial/
|
51
|
+
|
52
|
+
# create the tutorial index.html
|
53
|
+
perl _tools/Markdown.pl --html4tags ../index.mkdn > _tools/tutorial_content.html
|
54
|
+
cat _tools/head.tpl.html \
|
55
|
+
| sed 's/{{ STYLE_PATH }}/..\//; s/{{ BODY_CLASS }}/tutorial/; s/{{ TITLE }}/A Tutorial/;' \
|
56
|
+
> _tools/tutorial_head.html
|
57
|
+
cat _tools/foot.tpl.html \
|
58
|
+
| sed 's/{{ STYLE_PATH }}/..\//;' \
|
59
|
+
> _tools/tutorial_foot.html
|
60
|
+
cat _tools/tutorial_head.html _tools/tutorial_content.html _tools/tutorial_foot.html > site/tutorial/index.html
|
61
|
+
|
62
|
+
# remove _tools
|
63
|
+
rm -r _tools/
|
64
|
+
|
65
|
+
# copy files in _common into each stage; also create diff.sh and use.sh
|
66
|
+
for d in 01_target 02_container 03_structure site; do
|
67
|
+
cp -pR _common/* "${d}/"
|
68
|
+
pushd "${d}" > /dev/null
|
69
|
+
compass > /dev/null
|
70
|
+
popd > /dev/null
|
71
|
+
cat > "${d}/diff.sh" <<EOF
|
72
|
+
#!/bin/bash
|
73
|
+
|
74
|
+
pushd \`dirname \${0}\` > /dev/null
|
75
|
+
name=\`basename \\\`pwd\\\`\`
|
76
|
+
diff -r ${tut_dir}/code/\${name}/src/ src/
|
77
|
+
popd > /dev/null
|
78
|
+
EOF
|
79
|
+
chmod 755 "${d}/diff.sh"
|
80
|
+
cat > "${d}/use.sh" <<EOF
|
81
|
+
#!/bin/bash
|
82
|
+
|
83
|
+
pushd \`dirname \${0}\` > /dev/null
|
84
|
+
name=\`basename \\\`pwd\\\`\`
|
85
|
+
dest="${tut_dir}/code/\${name}/\${1}"
|
86
|
+
if [ ! -f "\${dest}" ]; then
|
87
|
+
echo "File \${dest} does not exist; does this file belong in _common?"
|
88
|
+
exit 1
|
89
|
+
fi
|
90
|
+
cp "\${1}" "\${dest}"
|
91
|
+
popd > /dev/null
|
92
|
+
EOF
|
93
|
+
chmod 755 "${d}/use.sh"
|
94
|
+
done
|
95
|
+
|
96
|
+
# got everything out of common, remove it
|
97
|
+
rm -r _common
|
98
|
+
|
99
|
+
# move all stages into site/tutorial/
|
100
|
+
for d in 01_target 02_container 03_structure; do
|
101
|
+
cp -pR "${d}" site/tutorial/
|
102
|
+
rm -r "${d}"
|
103
|
+
done
|
104
|
+
|
105
|
+
# create install script
|
106
|
+
cat > install.sh <<EOF
|
107
|
+
#!/bin/bash
|
108
|
+
|
109
|
+
if [ -z "\${1}" ]; then
|
110
|
+
echo "Please provide a destination directory to install Susy site into."
|
111
|
+
exit 1
|
112
|
+
fi
|
113
|
+
|
114
|
+
if [ -e "\${1}" ]; then
|
115
|
+
read -n 1 -p "Destination \${1} already exists, remove it (y/n)?" yesno
|
116
|
+
echo
|
117
|
+
echo
|
118
|
+
if [ \$yesno != "y" ]; then
|
119
|
+
echo "Aborting."
|
120
|
+
exit 1
|
121
|
+
fi
|
122
|
+
rm -r \${1}
|
123
|
+
fi
|
124
|
+
|
125
|
+
|
126
|
+
echo "Installing Susy site to \${1}."
|
127
|
+
|
128
|
+
pushd \`dirname \${0}\` > /dev/null
|
129
|
+
base=\`pwd\`
|
130
|
+
popd > /dev/null
|
131
|
+
cp -pR "\${base}/site/" "\${1}" || exit 1
|
132
|
+
|
133
|
+
find "\${1}" -name '*.sh' -exec rm {} \;
|
134
|
+
echo "Installed."
|
135
|
+
EOF
|
136
|
+
chmod 755 install.sh
|
137
|
+
|
138
|
+
# if we got an argument, go ahead and install there
|
139
|
+
if [ ! -z "${1}" ]; then
|
140
|
+
./install.sh "${1}"
|
141
|
+
fi
|