compass-susy-plugin 0.8.1 → 0.9.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009, Eric Meyer
1
+ Copyright (c) 2011, Eric Meyer
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/Manifest CHANGED
@@ -6,18 +6,10 @@ VERSION
6
6
  compass-susy-plugin.gemspec
7
7
  lib/susy.rb
8
8
  lib/susy/compass_plugin.rb
9
- lib/susy/sass_extensions.rb
10
9
  sass/susy/_grid.scss
11
- sass/susy/_inline_block_list.scss
12
- sass/susy/_reset.scss
13
10
  sass/susy/_susy.scss
14
- sass/susy/_text.scss
15
11
  sass/susy/_utils.scss
16
- sass/susy/_vertical_rhythm.scss
17
12
  templates/project/_base.scss
18
- templates/project/_defaults.scss
19
13
  templates/project/grid.png
20
- templates/project/ie.scss
21
14
  templates/project/manifest.rb
22
- templates/project/print.scss
23
15
  templates/project/screen.scss
data/README.mkdn CHANGED
@@ -28,9 +28,7 @@ Create a Susy-based Compass Project
28
28
 
29
29
  compass create <project name> -r susy -u susy
30
30
 
31
- Then edit your `_base.scss`, `_defaults.scss`, `screen.scss` and `print.scss`
32
- files accordingly. A reset is added automatically, and includes support for
33
- HTML5 elements.
31
+ Then edit your `_base.scss` and `screen.scss` files accordingly.
34
32
 
35
33
  Philosophy and Goals
36
34
  ====================
@@ -78,17 +76,11 @@ Grid Basics
78
76
  $gutter-width: 1em; /* 1em (16px) gutters between columns */
79
77
  $side-gutter-width: $gutter-width; /* 1em (16px) padding at the edges of the page as well */
80
78
 
81
- * Set defaults for all the important HTML tags in `_defaults.scss`. It's
82
- better than using the browser defaults. And better than using ours.
83
-
84
- * Create your grid in `screen.scss`: apply the `@include susy` mixin at the
85
- top level and the `@include container` mixin to the element(s) that contains
86
- the page grid. This will set up your font sizes, vertical rhythm, and grid
87
- container.
79
+ * Create your grid in `screen.scss`: apply the `container` mixin to the
80
+ element(s) that contains the page grid. This will set up your font sizes
81
+ and grid container.
88
82
 
89
83
  Example:
90
-
91
- @include susy;
92
84
 
93
85
  #page {
94
86
  @include container;
@@ -96,32 +88,23 @@ Grid Basics
96
88
 
97
89
  CSS Output:
98
90
 
99
- body {
100
- font-size: 100%;
101
- line-height: 1.5em;
102
- }
103
- html > body {
104
- font-size: 16px;
105
- }
106
-
107
- #page {
108
- *zoom: 1;
109
- margin-left: auto;
110
- margin-right: auto;
111
- width: 61em;
112
- max-width: 100%;
91
+ #page {
92
+ *zoom: 1;
93
+ margin: auto;
94
+ width: 61em;
95
+ max-width: 100%;
113
96
  }
114
- #page:after {
115
- content: "\0020";
116
- display: block;
117
- height: 0;
118
- clear: both;
119
- overflow: hidden;
120
- visibility: hidden;
97
+ #page:after {
98
+ content: "\0020";
99
+ display: block;
100
+ height: 0;
101
+ clear: both;
102
+ overflow: hidden;
103
+ visibility: hidden;
121
104
  }
122
105
 
123
- * Use the `@include columns` mixin to declare the width in columns of an
124
- element, or `@include full` for any element spanning the full width of its
106
+ * Use the `columns` mixin to declare the width in columns of an
107
+ element, or `full` for any element spanning the full width of its
125
108
  context.
126
109
 
127
110
  There is an important distinction between "root" and "nested" contexts in
@@ -151,11 +134,11 @@ Grid Basics
151
134
 
152
135
  *Note:* Context _must not_ be passed at the root level, and _must_ be passed at nested levels.
153
136
 
154
- * Use `@include alpha` and `@include omega` to declare elements which include
137
+ * Use `alpha` and `omega` to declare elements which include
155
138
  the first or last column within their parent element.
156
139
 
157
- *Note:* `@include alpha` is _only_ needed in the root level, and does
158
- nothing in nested contexts. Neither is needed with an `@include full` element.
140
+ *Note:* `alpha` is _only_ needed in the root level, and does
141
+ nothing in nested contexts. Neither is needed with an `full` element.
159
142
 
160
143
  The `alpha` and `omega` mixins:
161
144
 
@@ -193,9 +176,9 @@ Grid Basics
193
176
  spans, right-margins to set the getter, and both side margins to set the
194
177
  side-gutters on root `alpha` and `omega` elements.
195
178
 
196
- * Use `@include prefix` or `@include suffix` to pad (in columns) the width of
197
- an element using left and right padding, or `@include pad` to give both `@include
198
- prefix` and `@include suffix` at once.
179
+ * Use `prefix` or `suffix` to pad (in columns) the width of
180
+ an element using left and right padding, or `pad` to give both `prefix` and
181
+ `@suffix` at once.
199
182
 
200
183
  The `prefix`, `suffix` and `pad` mixins:
201
184
 
@@ -264,30 +247,11 @@ Check out the tutorial at [susy.oddbird.net/tutorial/](http://susy.oddbird.net/t
264
247
  Extra Utility Mixins
265
248
  =====================
266
249
 
267
- Extra utilities are included in Susy's `_utils.scss` and `_vertical_rhythm.scss`:
250
+ Extra utilities are included in Susy's `_utils.scss`:
268
251
 
269
- * `@include show-grid($src)` - Repeat the specified grid image on an element.
252
+ * `show-grid($src)` - Repeat the specified grid image on an element.
270
253
  Good for testing your baseline and grid.
271
254
 
272
- * `@include adjust-font-size-to($to_size, [$lines, $from_size])` - adjust the
273
- font size and number of baseline (line) units to occupy.
274
-
275
- * `@include leader([$lines, $font_size, $property])` and `@include
276
- trailer([$lines, $font_size, $property])` - add leading or trailing
277
- whitespace to an element. These are added as top and bottom margins (by
278
- default) that keep your vertical rhythm intact. You can also send "padding"
279
- as the `$property` or use `@include padding-leader` and `@include
280
- padding-trailer`. Be aware that this may conflict with uses of
281
- rhythm-borders.
282
-
283
- * `@include leading-border([$width, $lines, $font_size, $style])` and
284
- `@include trailing-border([$width, $lines, $font_size, $style])` will
285
- combine border and padding to create borders that also keep the vertical
286
- rhythm going. The defaults are `1px, 1, $base_font_size, 'solid'`. Also
287
- available: `@include horizontal-borders` (for both leading and trailing),
288
- and `@include rhythm-borders` for applying equal borders and padding to all
289
- sides of a box.
290
-
291
255
 
292
256
  Advanced Options
293
257
  ================
@@ -307,7 +271,8 @@ advanced options hidden inside. Here are a few:
307
271
 
308
272
  * `columns($number, $context)` returns the span of `$number` columns in
309
273
  `$context` as a percentage. This span includes any gutters between the
310
- columns spanned.
274
+ columns spanned. `column($context)` is also available as a single-column
275
+ shortcut.
311
276
 
312
277
  Example:
313
278
 
@@ -315,19 +280,5 @@ advanced options hidden inside. Here are a few:
315
280
  padding-left: columns(3,5);
316
281
  }
317
282
 
318
- * `side_gutter()` is also available and takes no arguments since it is always
319
- used at the top nesting level.
320
-
321
- * `$px2em` is a variable that represents the height of one pixel as a fraction
322
- of your base em-height. Multiply it with your target pixel value to
323
- represent that value in ems. Note that this is only accurate at your
324
- `$base_font_size`.
325
-
326
- Example:
327
-
328
- #nav {
329
- border-bottom: {
330
- style: solid;
331
- width: $px2em*2px;
332
- };
333
- }
283
+ * `side_gutter()` returns the percentage width of a side-gutter and takes no
284
+ arguments since it can always used at the top nesting level.
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'fileutils'
2
2
  require 'sass'
3
- require 'lib/susy/sass_extensions'
4
3
 
5
4
  begin
6
5
  require 'echoe'
@@ -11,7 +10,7 @@ begin
11
10
  p.url = "http://susy.oddbird.net/"
12
11
  p.author = "Eric Meyer"
13
12
  p.email = "eric@oddbird.net"
14
- p.dependencies = ["compass >=0.10.0"]
13
+ p.dependencies = ["compass >=0.11.beta.2"]
15
14
  p.has_rdoc = false
16
15
  end
17
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.1
1
+ 0.9.alpha.1
@@ -2,32 +2,31 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{compass-susy-plugin}
5
- s.version = "0.8.1"
5
+ s.version = "0.9.alpha.1"
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-09-24}
9
+ s.date = %q{2011-02-15}
10
10
  s.description = %q{Responsive web design with grids the quick and reliable way.}
11
11
  s.email = %q{eric@oddbird.net}
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.scss", "sass/susy/_inline_block_list.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/grid.png", "templates/project/ie.scss", "templates/project/manifest.rb", "templates/project/print.scss", "templates/project/screen.scss"]
12
+ s.extra_rdoc_files = ["LICENSE.txt", "README.mkdn", "lib/susy.rb", "lib/susy/compass_plugin.rb"]
13
+ s.files = ["LICENSE.txt", "Manifest", "README.mkdn", "Rakefile", "VERSION", "compass-susy-plugin.gemspec", "lib/susy.rb", "lib/susy/compass_plugin.rb", "sass/susy/_grid.scss", "sass/susy/_susy.scss", "sass/susy/_utils.scss", "templates/project/_base.scss", "templates/project/grid.png", "templates/project/manifest.rb", "templates/project/screen.scss"]
14
14
  s.homepage = %q{http://susy.oddbird.net/}
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.6}
18
+ s.rubygems_version = %q{1.5.2}
19
19
  s.summary = %q{A responsive grid system plugin for Compass.}
20
20
 
21
21
  if s.respond_to? :specification_version then
22
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
22
  s.specification_version = 3
24
23
 
25
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<compass>, [">= 0.10.0"])
24
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
25
+ s.add_runtime_dependency(%q<compass>, [">= 0.11.beta.2"])
27
26
  else
28
- s.add_dependency(%q<compass>, [">= 0.10.0"])
27
+ s.add_dependency(%q<compass>, [">= 0.11.beta.2"])
29
28
  end
30
29
  else
31
- s.add_dependency(%q<compass>, [">= 0.10.0"])
30
+ s.add_dependency(%q<compass>, [">= 0.11.beta.2"])
32
31
  end
33
32
  end
data/lib/susy.rb CHANGED
@@ -1,2 +1 @@
1
- require File.join(File.dirname(__FILE__), 'susy', 'compass_plugin')
2
- require File.join(File.dirname(__FILE__), 'susy', 'sass_extensions')
1
+ require File.join(File.dirname(__FILE__), 'susy', 'compass_plugin')
data/sass/susy/_grid.scss CHANGED
@@ -1,5 +1,6 @@
1
1
  //** Susy Grid **//
2
2
 
3
+ // Variables -----------------------------------------------------------------
3
4
 
4
5
  // Your basic settings for the grid.
5
6
  // Override these in base.sass to customize your site.
@@ -8,27 +9,80 @@ $col-width: 4em !default;
8
9
  $gutter-width: 1em !default;
9
10
  $side-gutter-width: $gutter-width !default;
10
11
 
11
- // Susy will set your outer shell based on the variables above.
12
- $container-width: container($total-cols, $col-width, $gutter-width, $side-gutter-width);
12
+ // Functions -----------------------------------------------------------------
13
+
14
+ // Return the width of 'n' columns plus 'n - 1' gutters
15
+ // plus page padding in non-nested contexts
16
+ @function columns-width(
17
+ $n: false
18
+ ) {
19
+ $sg: 0;
20
+ @if not $n {
21
+ $n: $total-cols;
22
+ $sg: $side-gutter-width;
23
+ }
24
+ $columns-width: ($n*$col-width) + (ceil($n - 1)*$gutter-width) + ($sg*2);
25
+ @return $columns-width;
26
+ }
27
+
28
+ // Return the percentage for the target in a given context
29
+ @function percent-width(
30
+ $t,
31
+ $c
32
+ ) {
33
+ $perc: ($t / $c) * 100%;
34
+ @return $perc;
35
+ }
36
+
37
+ // Return the percentage width of 'n' columns in a context of 'c'
38
+ @function columns(
39
+ $n,
40
+ $c: false
41
+ ) {
42
+ $columns: percent-width(columns-width($n), columns-width($c));
43
+ @return $columns;
44
+ }
45
+
46
+ // Return the percentage width of a single gutter in a context of 'c'
47
+ @function gutter(
48
+ $c: false
49
+ ) {
50
+ $gutter: percent-width($gutter-width, columns-width($c));
51
+ @return $gutter;
52
+ }
53
+
54
+ // Return the percentage width of a single side gutter in a context of 'c'
55
+ @function side-gutter(
56
+ $c: false
57
+ ) {
58
+ $side-gutter: percent-width($side-gutter-width, columns-width($c));
59
+ @return $side-gutter;
60
+ }
61
+
62
+ // Return the percentage width of a single column in a context of 'c'
63
+ @function column(
64
+ $c: false
65
+ ) {
66
+ $column: percent-width($col-width, columns-width($c));
67
+ @return $column;
68
+ }
69
+
70
+ // Base Mixin ----------------------------------------------------------------
13
71
 
14
72
  // Set +container() on the outer grid-containing element(s).
15
- @mixin container($align: false) {
73
+ @mixin container() {
16
74
  // clear all floated columns
17
75
  @include pie-clearfix;
18
- @if $align {
19
- @warn "the '$align' argument is deprecated because it really isn't that usefull.";
20
- }
21
76
  // use auto horizontal margins to center your page in the body
22
- margin: {
23
- left: auto;
24
- right: auto;
25
- };
26
- // set the page width based on column settings
27
- width: $container-width;
77
+ margin: auto;
78
+ // set the page width based on grid settings
79
+ width: columns-width();
28
80
  // never exceed 100% of the browser window (no side-scrolling)
29
81
  max-width: 100%;
30
82
  }
31
83
 
84
+ // Column Mixins -------------------------------------------------------------
85
+
32
86
  // Set +columns() on any column element, even nested ones.
33
87
  // The first agument [required] is the number of columns to span.
34
88
  // The second argument is the context (columns spanned by parent).
@@ -53,6 +107,18 @@ $container-width: container($total-cols, $col-width, $gutter-width, $side-gutter
53
107
  margin-right: auto;
54
108
  }
55
109
 
110
+ // Set +full on an element that will span it's entire context.
111
+ // There is no need for +columns, +alpha or +omega on a +full element.
112
+ @mixin full($nested: false) {
113
+ clear: both;
114
+ @if not $nested {
115
+ margin-right: side-gutter();
116
+ margin-left: side-gutter();
117
+ }
118
+ }
119
+
120
+ // Padding Mixins ------------------------------------------------------------
121
+
56
122
  // Set +prefix() on any element to add empty colums as padding
57
123
  // before or after.
58
124
  @mixin prefix($n, $context: false) {
@@ -73,6 +139,8 @@ $container-width: container($total-cols, $col-width, $gutter-width, $side-gutter
73
139
  }
74
140
  }
75
141
 
142
+ // Alpha & Omega Mixins ------------------------------------------------------
143
+
76
144
  // Set +alpha on any element spanning the first column in non-nested
77
145
  // context to take side-gutters into account. Recommended that you pass
78
146
  // the actual nested contexts (when nested) rather than a true/false
@@ -89,11 +157,6 @@ $container-width: container($total-cols, $col-width, $gutter-width, $side-gutter
89
157
  // - Override $omega_float globally or set +float locally to change
90
158
  $omega-float: right !default;
91
159
 
92
- // This is going away
93
- @mixin ie-omega($dir: $omega-float, $hack: false) {
94
- @warn "the 'ie-omega' mixin is deprecated along with the $hacks constant";
95
- }
96
-
97
160
  // Set +omega() on the last element of a row, in order to take side-gutters
98
161
  // and the page edge into account. Set the $nested argument for nested
99
162
  // columns. It is recommended that you pass the actual nested context when
@@ -111,14 +174,4 @@ $omega-float: right !default;
111
174
  } @else {
112
175
  #margin-right: - $gutter-width;
113
176
  }
114
- }
115
-
116
- // Set +full() on an element that will span it's entire context.
117
- // There is no need for +columns, +alpha or +omega on a +full element.
118
- @mixin full($nested: false) {
119
- clear: both;
120
- @if not $nested {
121
- margin-right: side-gutter();
122
- margin-left: side-gutter();
123
- }
124
- }
177
+ }
data/sass/susy/_susy.scss CHANGED
@@ -1,16 +1,11 @@
1
1
  //** Susy **//
2
2
 
3
-
4
3
  // Import all the Important Stuff.
5
- @import "compass/css3";
4
+ @import "compass";
6
5
  @import "utils";
7
- @import "text";
8
6
  @import "grid";
9
7
 
10
8
  // Set Susy on your BODY element to get things started.
11
- @mixin susy($align: false) {
12
- @include establish-baseline;
13
- @if $align {
14
- @warn "the '$align' argument is deprecated because it really isn't that usefull.";
15
- }
9
+ @mixin susy() {
10
+ @warn "the 'susy' base mixin is no longer needed and will be removed in the ner future.";
16
11
  }
@@ -1,10 +1,5 @@
1
1
  //** Susy Utilities **//
2
2
 
3
-
4
- // An extension of the Compass Core Utilities
5
- @import "compass/utilities";
6
- @import "inline_block_list";
7
-
8
3
  // Apply to you container element(s) to show a grid image.
9
4
  // - You need to supply the image. Susy can't do everything.
10
5
  @mixin show-grid($src) {
@@ -13,18 +8,4 @@
13
8
  repeat: repeat;
14
9
  position: $side-gutter-width 0;
15
10
  };
16
- }
17
-
18
- @mixin ie-inline-block($hack: false) {
19
- @warn "the 'ie-inline-block' mixin is deprecated in favor of the compass core solutions.";
20
- }
21
-
22
- // Hide an element from the viewport, but keep it around for accessability
23
- @mixin hide {
24
- @warn "the 'hide' mixin is deprecated in favor of 'hide-text' in compass core.";
25
- @include hide-text;
26
- }
27
-
28
- @mixin skip-link($t: 0, $r: false, $b: false, $l: false) {
29
- @warn "the 'skip-link' mixin is deprecated as too tangential to belong in Susy.";
30
- }
11
+ }
@@ -4,11 +4,6 @@
4
4
  // Site: susy.oddbird.net
5
5
  //**
6
6
 
7
- // Font Sizes --------------------------------------------------------------
8
-
9
- $base-font-size: 16px;
10
- $base-line-height: 24px;
11
-
12
7
  // Grid --------------------------------------------------------------
13
8
 
14
9
  $total-cols: 12;
@@ -16,28 +11,5 @@ $col-width: 4em;
16
11
  $gutter-width: 1em;
17
12
  $side-gutter-width: $gutter-width;
18
13
 
19
- // Don't move this @import above the GRID and FONT-SIZE variables.
20
- @import "susy/susy";
21
-
22
- // Colors --------------------------------------------------------------
23
-
24
- $base: #4c4c4c;
25
- $alt: #005498;
26
-
27
- // Fonts --------------------------------------------------------------
28
-
29
- @mixin sans-family {
30
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
31
- }
32
-
33
- @mixin serif-family {
34
- font-family: Cambria, Georgia, serif;
35
- }
36
-
37
- @mixin monospace-family {
38
- font-family: "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, Courier, monospace, sans-serif;
39
- }
40
-
41
- // OTHER MIXINS --------------------------------------------------------------
42
- // Mixins set here will be available in defaults, screen, print and IE
43
- // Or anywhere you import either base.sass or defaults.sass
14
+ // Don't move this @import above the GRID variables.
15
+ @import "susy/susy";
@@ -1,8 +1,5 @@
1
1
  stylesheet 'screen.scss', :media => "screen, projection"
2
- stylesheet 'print.scss', :media => "print"
3
- stylesheet 'ie.scss', :media => "screen, projection"
4
2
  stylesheet '_base.scss'
5
- stylesheet '_defaults.scss'
6
3
  image 'grid.png'
7
4
 
8
5
  description "Susy: a flexible static/fluid/elastic grid system native to compass."
@@ -2,12 +2,10 @@
2
2
 
3
3
  // Imports --------------------------------------------------------------
4
4
 
5
- @import "defaults";
5
+ @import "base";
6
6
 
7
7
  /* Layout -------------------------------------------------------------- */
8
8
 
9
- @include susy;
10
-
11
9
  // change '.container' to match your HTML container element
12
10
  // or @extend it to apply multiple containers on your site.
13
11
  .container {
metadata CHANGED
@@ -1,12 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compass-susy-plugin
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: -3702664218
5
+ prerelease: 4
5
6
  segments:
6
7
  - 0
7
- - 8
8
+ - 9
9
+ - alpha
8
10
  - 1
9
- version: 0.8.1
11
+ version: 0.9.alpha.1
10
12
  platform: ruby
11
13
  authors:
12
14
  - Eric Meyer
@@ -14,21 +16,24 @@ autorequire:
14
16
  bindir: bin
15
17
  cert_chain: []
16
18
 
17
- date: 2010-09-24 00:00:00 -06:00
19
+ date: 2011-02-15 00:00:00 -07:00
18
20
  default_executable:
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
21
23
  name: compass
22
24
  prerelease: false
23
25
  requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ">="
26
29
  - !ruby/object:Gem::Version
30
+ hash: 62196239
27
31
  segments:
28
32
  - 0
29
- - 10
30
- - 0
31
- version: 0.10.0
33
+ - 11
34
+ - beta
35
+ - 2
36
+ version: 0.11.beta.2
32
37
  type: :runtime
33
38
  version_requirements: *id001
34
39
  description: Responsive web design with grids the quick and reliable way.
@@ -42,7 +47,6 @@ extra_rdoc_files:
42
47
  - README.mkdn
43
48
  - lib/susy.rb
44
49
  - lib/susy/compass_plugin.rb
45
- - lib/susy/sass_extensions.rb
46
50
  files:
47
51
  - LICENSE.txt
48
52
  - Manifest
@@ -52,20 +56,12 @@ files:
52
56
  - compass-susy-plugin.gemspec
53
57
  - lib/susy.rb
54
58
  - lib/susy/compass_plugin.rb
55
- - lib/susy/sass_extensions.rb
56
59
  - sass/susy/_grid.scss
57
- - sass/susy/_inline_block_list.scss
58
- - sass/susy/_reset.scss
59
60
  - sass/susy/_susy.scss
60
- - sass/susy/_text.scss
61
61
  - sass/susy/_utils.scss
62
- - sass/susy/_vertical_rhythm.scss
63
62
  - templates/project/_base.scss
64
- - templates/project/_defaults.scss
65
63
  - templates/project/grid.png
66
- - templates/project/ie.scss
67
64
  - templates/project/manifest.rb
68
- - templates/project/print.scss
69
65
  - templates/project/screen.scss
70
66
  has_rdoc: true
71
67
  homepage: http://susy.oddbird.net/
@@ -82,16 +78,20 @@ rdoc_options:
82
78
  require_paths:
83
79
  - lib
84
80
  required_ruby_version: !ruby/object:Gem::Requirement
81
+ none: false
85
82
  requirements:
86
83
  - - ">="
87
84
  - !ruby/object:Gem::Version
85
+ hash: 3
88
86
  segments:
89
87
  - 0
90
88
  version: "0"
91
89
  required_rubygems_version: !ruby/object:Gem::Requirement
90
+ none: false
92
91
  requirements:
93
92
  - - ">="
94
93
  - !ruby/object:Gem::Version
94
+ hash: 11
95
95
  segments:
96
96
  - 1
97
97
  - 2
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  requirements: []
100
100
 
101
101
  rubyforge_project: compass-susy-plugin
102
- rubygems_version: 1.3.6
102
+ rubygems_version: 1.5.2
103
103
  signing_key:
104
104
  specification_version: 3
105
105
  summary: A responsive grid system plugin for Compass.
@@ -1,76 +0,0 @@
1
- require 'sass'
2
-
3
- module Sass::Script
4
- class Number < Literal
5
- def ceil
6
- Number.new(value.ceil, numerator_units, denominator_units)
7
- end
8
- end
9
- end
10
-
11
- module Sass::Script::Functions
12
-
13
- # some helpful constants
14
- PERCENT = Sass::Script::Number.new(100, ["%"])
15
- ONE = Sass::Script::Number.new(1)
16
- TWO = Sass::Script::Number.new(2)
17
-
18
- # set the Susy column and gutter widths and number of columns
19
- # return total width of container
20
- def container(total_columns, column_width, gutter_width, side_gutter_width)
21
- @@susy_total_columns = total_columns
22
- @@susy_column_width = column_width
23
- @@susy_gutter_width = gutter_width
24
- @@susy_side_gutter_width = side_gutter_width
25
- context
26
- end
27
-
28
- # return the width of 'n' columns plus 'n - 1' gutters
29
- # plus page padding in non-nested contexts
30
- def context(n = false)
31
- raise Sass::SyntaxError, "container() must be called before context() - should be called in susy/susy.sass" unless defined?(@@susy_total_columns)
32
- sg = Sass::Script::Number.new(0)
33
- if !n or !n.value
34
- n = @@susy_total_columns
35
- sg = @@susy_side_gutter_width
36
- end
37
- c, g = [@@susy_column_width, @@susy_gutter_width]
38
- n.times(c).plus(n.minus(ONE).ceil.times(g)).plus(sg.times(TWO))
39
- end
40
-
41
- # return the percentage width of 'n' columns in a context of
42
- # 'context_columns'
43
- def columns(n, context_columns = false)
44
- raise Sass::SyntaxError, "container() must be called before columns() - should be called in susy/susy.sass" unless defined?(@@susy_column_width)
45
- w = context(context_columns)
46
- c, g = [@@susy_column_width, @@susy_gutter_width]
47
- n.times(c).plus(n.minus(ONE).ceil.times(g)).div(w).times(PERCENT)
48
- end
49
-
50
- # return the percentage width of a single gutter in a context of
51
- # 'context_columns'
52
- def gutter(context_columns = false)
53
- raise Sass::SyntaxError, "container() must be called before columns() - should be called in susy/susy.sass" unless defined?(@@susy_gutter_width)
54
- w = context(context_columns)
55
- g = @@susy_gutter_width
56
- g.div(w).times(PERCENT)
57
- end
58
-
59
- # return the percentage width of a single side gutter in a context of
60
- # 'context_columns'
61
- def side_gutter(context_columns = false)
62
- raise Sass::SyntaxError, "container() must be called before side_gutter() - should be called in susy/susy.sass" unless defined?(@@susy_side_gutter_width)
63
- w = context(context_columns)
64
- sg = @@susy_side_gutter_width
65
- sg.div(w).times(PERCENT)
66
- end
67
-
68
- # return the percentage width of a single column in a context of
69
- # 'context_columns'
70
- def column(context_columns = false)
71
- raise Sass::SyntaxError, "container() must be called before column() - should be called in susy/susy.sass" unless defined?(@@susy_column_width)
72
- w = context(context_columns)
73
- c = @@susy_column_width
74
- c.div(w).times(PERCENT)
75
- end
76
- end
@@ -1,42 +0,0 @@
1
- // Inline-Block list layout module.
2
- //
3
- // Easy mode using simple descendant li selectors:
4
- //
5
- // ul.nav
6
- // +inline-block-list
7
- //
8
- // Advanced mode:
9
- // If you need to target the list items using a different selector then use
10
- // +inline-block-list-container on your ul/ol and +inline-block-list-item on your li.
11
- // This may help when working on layouts involving nested lists. For example:
12
- //
13
- // ul.nav
14
- // +inline-block-list-container
15
- // > li
16
- // +inline-block-list-item
17
-
18
- // Can be mixed into any selector that target a ul or ol that is meant
19
- // to have an inline-block layout. Used to implement +inline-block-list.
20
- @mixin inline-block-list-container {
21
- @include horizontal-list-container; }
22
-
23
- // Can be mixed into any li selector that is meant to participate in a horizontal layout.
24
- // Used to implement +inline-block-list.
25
-
26
- @mixin inline-block-list-item($padding: false) {
27
- @include no-bullet;
28
- @include inline-block;
29
- white-space: nowrap;
30
- @if $padding {
31
- padding: {
32
- left: $padding;
33
- right: $padding;
34
- };
35
- }
36
- }
37
-
38
- // A list(ol,ul) that is layed out such that the elements are inline-block and won't wrap.
39
- @mixin inline-block-list($padding: false) {
40
- @include inline-block-list-container;
41
- li {
42
- @include inline-block-list-item($padding); } }
@@ -1,9 +0,0 @@
1
- //** Susy Reset **//
2
-
3
- /* Reset --------------------------------------------------------------*/
4
-
5
- @import "compass/reset";
6
-
7
- /* HTML5 Reset --------------------------------------------------------------*/
8
-
9
- @include reset-html5;
data/sass/susy/_text.scss DELETED
@@ -1,6 +0,0 @@
1
- //** Susy Text Settings **//
2
-
3
-
4
- @import "vertical_rhythm";
5
-
6
- $px2em: 1em / $base-font-size;
@@ -1,127 +0,0 @@
1
- //** Vertical Rhythm **//
2
- // By Chris Eppstein and Eric Meyer, living here on a temporary basis
3
-
4
- // set the default border style for rhythm borders
5
- $default-rhythm-border-style: solid !default;
6
-
7
- // The IE font ratio is a fact of life. Deal with it.
8
- $ie-font-ratio: 16px / 100%;
9
-
10
- // The base line height is the basic unit of line hightness.
11
- $base-line-height: 24px !default;
12
-
13
- // The base font size
14
- $base-font-size: 16px !default;
15
-
16
- // The basic unit of font rhythm
17
- $base-rhythm-unit: $base-line-height / $base-font-size * 1em;
18
-
19
- // The leader is the amount of whitespace in a line.
20
- // It might be useful in your calculations
21
- $base-leader: ($base-line-height - $base-font-size) * 1em / $base-font-size;
22
-
23
- // The half-leader is the amount of whitespace above and below a line.
24
- // It might be useful in your calculations
25
- $base-half-leader: $base-leader / 2;
26
-
27
- // Establishes a font baseline for the given font-size in pixels
28
- @mixin establish-baseline($font-size: $base-font-size) {
29
- body {
30
- font-size: $font-size / $ie-font-ratio;
31
- @include adjust-leading-to(1, $font-size);
32
- }
33
- html>body {
34
- font-size: $font-size;
35
- }
36
- }
37
-
38
- // Show a background image that can be used to debug your alignments.
39
- @mixin debug-vertical-alignment {
40
- background: url(underline.png);
41
- }
42
-
43
- // Adjust a block to have a different font size and leading to maintain the rhythm.
44
- // $lines is a number that is how many times the baseline rhythm this
45
- // font size should use up. Does not have to be an integer, but it defaults
46
- // to the smallest integer that is large enough to fit the font.
47
- // Use $from_size to adjust from a non-base font-size.
48
- @mixin adjust-font-size-to($to-size, $lines: ceil($to-size / $base-line-height), $from-size: $base-font-size) {
49
- font-size: 1em * $to-size / $from-size;
50
- @include adjust-leading-to($lines, $to-size);
51
- }
52
-
53
- @mixin adjust-leading-to($lines, $font-size: $base-font-size) {
54
- line-height: 1em * $lines * $base-line-height / $font-size;
55
- }
56
-
57
- // Apply leading whitespace
58
- @mixin leader($lines: 1, $font-size: $base-font-size, $property: margin) {
59
- #{$property}-top: 1em * $lines * $base-line-height / $font-size;
60
- }
61
-
62
- @mixin padding-leader($lines: 1, $font-size: $base-font-size) {
63
- @include leader($lines, $font-size, padding);
64
- }
65
-
66
- @mixin margin-leader($lines: 1, $font-size: $base-font-size) {
67
- @include leader($lines, $font-size, margin);
68
- }
69
-
70
- // Apply trailing whitespace
71
- @mixin trailer($lines: 1, $font-size: $base-font-size, $property: margin) {
72
- #{$property}-bottom: 1em * $lines * $base-line-height / $font-size;
73
- }
74
-
75
- @mixin padding-trailer($lines: 1, $font-size: $base-font-size) {
76
- @include trailer($lines, $font-size, padding);
77
- }
78
-
79
- @mixin margin-trailer($lines: 1, $font-size: $base-font-size) {
80
- @include trailer($lines, $font-size, margin);
81
- }
82
-
83
- // Whitespace application shortcut
84
- // Apply top margin/padding + bottom padding/margin
85
- @mixin rhythm($leader: 0, $padding-leader: 0, $padding-trailer: 0, $trailer: 0, $font-size: $base-font-size) {
86
- @include leader($leader, $font-size);
87
- @include padding-leader($padding-leader, $font-size);
88
- @include padding-trailer($padding-trailer, $font-size);
89
- @include trailer($trailer, $font-size);
90
- }
91
-
92
- // Apply a border width to any side without destroying the vertical rhythm
93
- @mixin apply-side-rhythm-border($side, $width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
94
- border-#{$side}: {
95
- style: $border-style;
96
- width: 1em * $width / $font-size;
97
- };
98
- padding-#{$side}: 1em / $font-size * ($lines * $base-line-height - $width);
99
- }
100
-
101
- // Aplly rhythm borders equally to all sides
102
- @mixin rhythm-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
103
- border: {
104
- style: $border-style;
105
- width: 1em * $width / $font-size; };
106
- padding: 1em / $font-size * ($lines * $base-line-height - $width);
107
- }
108
-
109
- // Apply a leading rhythm border
110
- @mixin leading-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
111
- @include apply-side-rhythm-border(top, $width, $lines, $font-size, $border-style);
112
- }
113
-
114
- // Apply a trailing rhythm border
115
- @mixin trailing-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
116
- @include apply-side-rhythm-border(bottom, $width, $lines, $font-size, $border-style);
117
- }
118
-
119
- // Apply both leading and trailing rhythm borders
120
- @mixin horizontal-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
121
- @include leading-border($width, $lines, $font-size, $border-style);
122
- @include trailing-border($width, $lines, $font-size, $border-style);
123
- }
124
-
125
- @mixin h-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
126
- @include horizontal-borders($width, $lines, $font-size, $border-style);
127
- }
@@ -1,267 +0,0 @@
1
- //** DEFAULT STYLES **//
2
-
3
- // Based heavily on the work of:
4
- // Andy Clarke: http://forabeautifulweb.com/
5
- // Paul Irish & Divya Manian: http://html5boilerplate.com/
6
- // And many others, less directly...
7
-
8
- // Imports --------------------------------------------------------------
9
-
10
- @import "base";
11
- @import "susy/reset";
12
-
13
- /* Typography -------------------------------------------------------------- */
14
- /* The following classes are for use with @extend. */
15
-
16
- html {
17
- text-rendering: optimizeLegibility;
18
- -webkit-font-smoothing: antialiased; }
19
-
20
- .serif {
21
- @include serif-family; }
22
-
23
- .sans {
24
- @include sans-family; }
25
-
26
- .mono {
27
- @include monospace-family; }
28
-
29
- .caps {
30
- letter-spacing: 0.1em; }
31
-
32
- .allcaps {
33
- @extend .caps;
34
- text-transform: uppercase; }
35
-
36
- .smallcaps {
37
- @extend .caps;
38
- font-variant: small-caps; }
39
-
40
- /* Body -------------------------------------------------------------- */
41
-
42
- body {
43
- @extend .serif;
44
- color: $base; }
45
-
46
- /* Selected Text -------------------------------------------------------------- */
47
- /* -moz- must be declared separately */
48
-
49
- @mixin accessible-color($background: white) {
50
- @if lightness($background) >= 65% {
51
- color: $base; }
52
- @else {
53
- color: white; } }
54
-
55
- ::-moz-selection {
56
- @include accessible-color($alt);
57
- background: $alt;
58
- text-shadow: none; }
59
-
60
- ::selection {
61
- @include accessible-color($alt);
62
- background: $alt;
63
- text-shadow: none; }
64
-
65
- /* Links -------------------------------------------------------------- */
66
-
67
- a {
68
- &:link, &:visited {
69
- color: $alt; }
70
- &:link, &:visited, &:hover, &:active {
71
- outline: none; }
72
- &:focus, &:hover, &:active {
73
- color: complement($alt);
74
- text-decoration: none; }
75
- &:focus {
76
- outline: thin dotted; } }
77
-
78
- /* Headings -------------------------------------------------------------- */
79
-
80
- h2, h3, h4, h5, h6 {
81
- @include trailer; }
82
-
83
- h1 {
84
- @include adjust-font-size-to(21px);
85
- @include trailer(1, 21px); }
86
-
87
- h1, h2 {
88
- @extend .allcaps; }
89
-
90
- h3 {
91
- font-weight: bold; }
92
-
93
- h4 {
94
- @extend .smallcaps;
95
- text-transform: lowercase; }
96
-
97
- h5, h6 {
98
- font-style: italic; }
99
-
100
- /* Inline -------------------------------------------------------------- */
101
-
102
- cite, em, dfn, address, i {
103
- font-style: italic; }
104
-
105
- strong, dfn, b {
106
- font-weight: bold; }
107
-
108
- sup, sub {
109
- font-size: smaller;
110
- line-height: 0; }
111
-
112
- sup {
113
- vertical-align: super; }
114
-
115
- sub {
116
- vertical-align: sub; }
117
-
118
- abbr, acronym {
119
- border-bottom: 1px dotted;
120
- cursor: help; }
121
-
122
- ins {
123
- text-decoration: underline; }
124
-
125
- del {
126
- text-decoration: line-through; }
127
-
128
- mark {
129
- background: #ffff99;
130
- background-color: rgba(yellow, 0.5);
131
- text-shadow: none; }
132
-
133
- small {
134
- @include adjust-font-size-to(12px); }
135
-
136
- q {
137
- font-style: italic;
138
- em {
139
- font-style: normal; } }
140
-
141
- pre, code, tt {
142
- @extend .mono; }
143
-
144
- /* Block -------------------------------------------------------------- */
145
-
146
- p {
147
- @include trailer; }
148
-
149
- pre {
150
- margin: $base-rhythm-unit;
151
- white-space: pre;
152
- white-space: pre-wrap;
153
- white-space: pre-line;
154
- word-wrap: break-word; }
155
-
156
- blockquote {
157
- margin: $base-rhythm-unit;
158
- font-style: italic; }
159
-
160
- /* Replaced -------------------------------------------------------------- */
161
-
162
- img {
163
- vertical-align: text-bottom;
164
- max-width: 100%;
165
- -ms-interpolation-mode: bicubic; }
166
-
167
- /* Lists -------------------------------------------------------------- */
168
-
169
- ol, ul, dl {
170
- @include trailer;
171
- margin-left: $base-rhythm-unit; }
172
-
173
- ol {
174
- list-style: decimal; }
175
-
176
- ul {
177
- list-style: disc;
178
- li & {
179
- list-style-type: circle; } }
180
-
181
- dt {
182
- @include leader;
183
- font-style: italic; }
184
-
185
- dd {
186
- padding-left: $base-rhythm-unit; }
187
-
188
- /* Tables -------------------------------------------------------------- */
189
- /* tables still need 'cellspacing="0"' in the markup */
190
-
191
- table {
192
- @include trailer;
193
- width: 100%;
194
- border-collapse: separate;
195
- border-spacing: 0; }
196
-
197
- table, td, th {
198
- vertical-align: top; }
199
-
200
- th, thead th {
201
- font-weight: bold; }
202
-
203
- th, td, caption {
204
- padding: $base-rhythm-unit * 0.5;
205
- text-align: left;
206
- font-weight: normal; }
207
-
208
- table, th {
209
- @include trailing-border(1px, 0.5); }
210
-
211
- tfoot {
212
- @include adjust-font-size-to(14px); }
213
-
214
- caption {
215
- @extend .allcaps; }
216
-
217
- /* Forms -------------------------------------------------------------- */
218
-
219
- fieldset {
220
- @include trailer;
221
- @include rhythm-borders(1px); }
222
-
223
- legend {
224
- @include adjust-font-size-to(18px);
225
- font-weight: bold; }
226
-
227
- input[type="radio"], input[type="checkbox"] {
228
- vertical-align: baseline; }
229
-
230
- label, input[type=button], input[type=submit], button {
231
- cursor: pointer; }
232
-
233
- label {
234
- font-weight: bold; }
235
-
236
- // box-sizing helps us control the width of inputs
237
- // which are otherwise very hard to manage in the grid.
238
- .textinput {
239
- @include sans-family;
240
- @include adjust-font-size-to(14px, 1, 16px);
241
- @include rhythm-borders(1px, 0.25, 14px);
242
- @include trailer(0.5);
243
- @include box-sizing(border-box);
244
- width: 100%;
245
- margin-top: 0;
246
- border-color: $base;
247
- height: $base-line-height / 14px * 1.5em; }
248
-
249
- textarea {
250
- @extend .textinput;
251
- height: $base-line-height / 14px * 6.5em;
252
- vertical-align: text-bottom; }
253
-
254
- input {
255
- &[type=text], &[type=password], &[type=email], &[type=url], &[type=tel],
256
- &[type=date], &[type=datetime], &[type=datetime-local], &[type=month], &[type=week], &[type=time],
257
- &[type=number], &[type=range], &[type=search], &[type=color] {
258
- @extend .textinput; }
259
- // reset webkit search styles
260
- &[type=search] {
261
- -webkit-appearance: none;
262
- &::-webkit-search-decoration {
263
- display: none; } } }
264
-
265
- button {
266
- width: auto;
267
- overflow: visible; }
@@ -1,10 +0,0 @@
1
- /* Welcome to Susy. Use this file to write IE specific override styles.
2
- * Import this file using the following HTML or equivalent:
3
- * <!--[if IE]>
4
- * <link href="/stylesheets/ie.css" media="screen, projection" rel="stylesheet" type="text/css" />
5
- * <![endif]--> */
6
-
7
- // Imports --------------------------------------------------------------*/
8
-
9
- @import "base";
10
-
@@ -1,51 +0,0 @@
1
- //** PRINT STYLES **//
2
-
3
- // Based heavily on the work of:
4
- // Paul Irish & Divya Manian: http://html5boilerplate.com/
5
- // And many others, less directly...
6
-
7
- // Imports --------------------------------------------------------------
8
-
9
- @import "defaults";
10
-
11
- /* Print Defaults -------------------------------------------------------------- */
12
-
13
- nav {
14
- display: none; }
15
-
16
- * {
17
- background: transparent !important;
18
- color: #444444 !important;
19
- float: none !important;
20
- text-shadow: none !important; }
21
-
22
- body {
23
- @include serif-family;
24
- font-size: 12pt;
25
- background: white;
26
- color: black; }
27
-
28
- a {
29
- &:link, &:visited {
30
- color: #444444 !important;
31
- text-decoration: underline; }
32
- &:after {
33
- content: " (" attr(href) ") ";
34
- font-size: smaller; } }
35
-
36
- abbr:after {
37
- content: " (" attr(title) ")";
38
- font-size: smaller; }
39
-
40
- pre, blockquote, img {
41
- page-break-inside: avoid; }
42
-
43
- @page {
44
- margin: 0.5cm; }
45
-
46
- p, h2, h3 {
47
- orphans: 3;
48
- widows: 3; }
49
-
50
- h2, h3 {
51
- page-break-after: avoid; }