compass 0.10.0.rc4 → 0.10.0.rc5

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.
Files changed (52) hide show
  1. data/VERSION.yml +1 -1
  2. data/examples/css3/extensions/fancy-fonts/templates/project/Prociono.otf +0 -0
  3. data/examples/css3/extensions/fancy-fonts/templates/project/bgrove.otf +0 -0
  4. data/examples/css3/extensions/fancy-fonts/templates/project/bgrove.ttf +0 -0
  5. data/examples/css3/extensions/fancy-fonts/templates/project/fancy-fonts.sass +7 -4
  6. data/examples/css3/extensions/fancy-fonts/templates/project/manifest.rb +5 -4
  7. data/examples/css3/gradients.html.haml +8 -0
  8. data/examples/css3/images/button_bg.png +0 -0
  9. data/examples/css3/images/example.png +0 -0
  10. data/examples/css3/src/fancy-fonts.scss +9 -3
  11. data/examples/css3/src/gradients.scss +35 -26
  12. data/examples/css3/src/main.scss +3 -3
  13. data/features/command_line.feature +4 -3
  14. data/frameworks/compass/stylesheets/compass/_reset.scss +1 -1
  15. data/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +12 -12
  16. data/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +12 -12
  17. data/frameworks/compass/stylesheets/compass/css3/_background-size.scss +1 -1
  18. data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +12 -12
  19. data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +6 -2
  20. data/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +3 -1
  21. data/frameworks/compass/stylesheets/compass/css3/_box.scss +27 -9
  22. data/frameworks/compass/stylesheets/compass/css3/_columns.scss +33 -7
  23. data/frameworks/compass/stylesheets/compass/css3/_gradient.scss +25 -7
  24. data/frameworks/compass/stylesheets/compass/css3/_opacity.scss +18 -8
  25. data/frameworks/compass/stylesheets/compass/css3/_shared.scss +14 -14
  26. data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +12 -13
  27. data/frameworks/compass/stylesheets/compass/css3/_transform.scss +6 -2
  28. data/frameworks/compass/stylesheets/compass/css3/_transition.scss +12 -4
  29. data/frameworks/compass/stylesheets/compass/reset/_utilities.scss +133 -0
  30. data/frameworks/compass/stylesheets/compass/utilities/_text.scss +1 -0
  31. data/frameworks/compass/stylesheets/compass/utilities/general/_reset.scss +2 -122
  32. data/frameworks/compass/stylesheets/compass/utilities/lists/_bullets.scss +1 -1
  33. data/frameworks/compass/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +4 -4
  34. data/frameworks/compass/stylesheets/compass/utilities/text/_ellipsis.scss +22 -9
  35. data/frameworks/compass/stylesheets/compass/utilities/text/_nowrap.scss +1 -2
  36. data/frameworks/compass/stylesheets/compass/utilities/text/_replacement.scss +19 -8
  37. data/frameworks/compass/templates/ellipsis/ellipsis.sass +3 -0
  38. data/lib/compass.rb +0 -7
  39. data/lib/compass/app_integration/rails/configuration_defaults.rb +1 -1
  40. data/lib/compass/app_integration/rails/templates/compass-install-rails.rb +10 -26
  41. data/lib/compass/commands/help.rb +1 -1
  42. data/lib/compass/commands/project_base.rb +1 -0
  43. data/lib/compass/commands/update_project.rb +5 -2
  44. data/lib/compass/commands/watch_project.rb +1 -0
  45. data/lib/compass/sass_extensions/functions/display.rb +2 -1
  46. data/lib/compass/sass_extensions/functions/gradient_support.rb +11 -0
  47. data/lib/compass/version.rb +9 -0
  48. data/test/fixtures/stylesheets/compass/css/reset.css +0 -4
  49. metadata +11 -8
  50. data/examples/css3/extensions/fancy-fonts/templates/project/Vtks Revolt.ttf +0 -0
  51. data/examples/css3/extensions/fancy-fonts/templates/project/angelina.ttf +0 -0
  52. data/examples/css3/images/fresh-peas.jpg +0 -0
@@ -1,122 +1,2 @@
1
- // Based on Eric Meyer's reset http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/
2
-
3
- // Global reset rules.
4
- // For more specific resets, use the reset mixins provided below
5
- @mixin global-reset {
6
- html, body, div, span, applet, object, iframe,
7
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8
- a, abbr, acronym, address, big, cite, code,
9
- del, dfn, em, font, img, ins, kbd, q, s, samp,
10
- small, strike, strong, sub, sup, tt, var,
11
- dl, dt, dd, ol, ul, li,
12
- fieldset, form, label, legend,
13
- table, caption, tbody, tfoot, thead, tr, th, td {
14
- @include reset-box-model;
15
- @include reset-font; }
16
- *:focus {
17
- @include reset-focus; }
18
- body {
19
- @include reset-body; }
20
- ol, ul {
21
- @include reset-list-style; }
22
- /* tables still need 'cellspacing="0"' in the markup */
23
- table {
24
- @include reset-table; }
25
- caption, th, td {
26
- @include reset-table-cell; }
27
- q, blockquote {
28
- @include reset-quotation; }
29
- a img {
30
- @include reset-image-anchor-border; } }
31
-
32
- // Reset all elements within some selector scope.To reset the selector itself,
33
- // mixin the appropriate reset mixin for that element type as well. This could be
34
- // useful if you want to style a part of your page in a dramatically different way.
35
- @mixin nested-reset {
36
- div, span, object, iframe, h1, h2, h3, h4, h5, h6, p,
37
- pre, a, abbr, acronym, address, code, del, dfn, em, img,
38
- dl, dt, dd, ol, ul, li, fieldset, form, label, legend, caption, tbody, tfoot, thead, tr {
39
- @include reset-box-model;
40
- @include reset-font; }
41
- /* tables still need 'cellspacing="0"' in the markup */
42
- table {
43
- @include reset-table; }
44
- caption, th, td {
45
- @include reset-table-cell; }
46
- q, blockquote {
47
- @include reset-quotation; }
48
- a img {
49
- @include reset-image-anchor-border; } }
50
-
51
- //Mixins partials
52
- @mixin reset-box-model {
53
- margin: 0;
54
- padding: 0;
55
- border: 0;
56
- outline: 0; }
57
-
58
- @mixin reset-font {
59
- font: {
60
- weight: inherit;
61
- style: inherit;
62
- size: 100%;
63
- family: inherit; };
64
- vertical-align: baseline; }
65
-
66
- @mixin reset-focus {
67
- outline: 0; }
68
-
69
- @mixin reset-body {
70
- line-height: 1;
71
- color: black;
72
- background: white; }
73
-
74
- @mixin reset-list-style {
75
- list-style: none; }
76
-
77
- @mixin reset-table {
78
- border-collapse: separate;
79
- border-spacing: 0;
80
- vertical-align: middle; }
81
-
82
- @mixin reset-table-cell {
83
- text-align: left;
84
- font-weight: normal;
85
- vertical-align: middle; }
86
-
87
- @mixin reset-quotation {
88
- quotes: "" "";
89
- &:before, &:after {
90
- content: ""; } }
91
-
92
- @mixin reset-image-anchor-border {
93
- border: none; }
94
-
95
- @mixin reset-html5 {
96
- section, article, aside, header, footer, nav, dialog, figure {
97
- display: block; } }
98
-
99
- //**
100
- // Resets the display of inline and block elements to their default display
101
- // according to their tag type. Elements that have a default display that varies across
102
- // versions of html or browser are not handled here, but this covers the 90% use case.
103
- // Usage Example:
104
- // // Turn off the display for both of these classes
105
- // .unregistered-only, .registered-only
106
- // display: none
107
- // // Now turn only one of them back on depending on some other context.
108
- // body.registered
109
- // +reset-display(".registered-only")
110
- // body.unregistered
111
- // +reset-display(".unregistered-only")
112
- @mixin reset-display($selector: "", $important: false) {
113
- #{append-selector(elements-of-type("inline"), $selector)} {
114
- @if $important {
115
- display: inline !important; }
116
- @else {
117
- display: inline; } }
118
- #{append-selector(elements-of-type("block"), $selector)} {
119
- @if $important {
120
- display: block !important; }
121
- @else {
122
- display: block; } } }
1
+ // This module has moved.
2
+ @import "compass/reset/utilities";
@@ -28,7 +28,7 @@
28
28
  margin-left: 0;
29
29
  li {
30
30
  padding-left: $padding;
31
- background: image-url($bullet-icon) no-repeat 0 + ($padding - $width) / 2 ($line-height - $height) / 2;
31
+ background: image-url($bullet-icon) no-repeat ($padding - $width) / 2 ($line-height - $height) / 2;
32
32
  list-style-type: none;
33
33
  }
34
34
  }
@@ -1,20 +1,20 @@
1
1
  @mixin alternating-rows-and-columns($even-row-color, $odd-row-color, $dark-intersection, $header-color: white, $footer-color: white) {
2
2
  th {
3
3
  background-color: $header-color;
4
- &.even {
4
+ &.even, &:nth-child(2n) {
5
5
  background-color: $header-color - $dark-intersection; } }
6
6
  tr.odd {
7
7
  td {
8
8
  background-color: $odd-row-color;
9
- &.even {
9
+ &.even, &:nth-child(2n) {
10
10
  background-color: $odd-row-color - $dark-intersection; } } }
11
11
  tr.even {
12
12
  td {
13
13
  background-color: $even-row-color;
14
- &.even {
14
+ &.even, &:nth-child(2n) {
15
15
  background-color: $even-row-color - $dark-intersection; } } }
16
16
  tfoot {
17
17
  th, td {
18
18
  background-color: $footer-color;
19
- &.even {
19
+ &.even, &:nth-child(2n) {
20
20
  background-color: $footer-color - $dark-intersection; } } } }
@@ -1,12 +1,25 @@
1
- // This technique, by [Justin Maxwell](http://code404.com/), was originally
2
- // published at http://mattsnider.com/css/css-string-truncation-with-ellipsis/
3
- // Firefox implementation by [Rikkert Koppes](http://www.rikkertkoppes.com/thoughts/2008/6/)
1
+ @import "compass/css3/shared";
2
+
3
+ // To get firefox2 support, you must install the ellipsis pattern:
4
+ //
5
+ // compass install compass/ellipsis
6
+ $firefox2-ellipsis: false !default;
4
7
 
8
+ // This technique, by [Justin Maxwell](http://code404.com/), was originally
9
+ // published [here](http://mattsnider.com/css/css-string-truncation-with-ellipsis/).
10
+ // Firefox implementation by [Rikkert Koppes](http://www.rikkertkoppes.com/thoughts/2008/6/).
5
11
  @mixin ellipsis($no-wrap: true) {
6
- @if $no-wrap {
7
- white-space: nowrap; }
12
+ @if $no-wrap { white-space: nowrap; }
8
13
  overflow: hidden;
9
- text-overflow: ellipsis;
10
- -o-text-overflow: ellipsis;
11
- -ms-text-overflow: ellipsis;
12
- -moz-binding: stylesheet-url(unquote("xml/ellipsis.xml#ellipsis")); }
14
+ @include experimental(text-overflow, ellipsis,
15
+ not -moz,
16
+ not -webkit,
17
+ -o,
18
+ -ms,
19
+ not -khtml,
20
+ official
21
+ );
22
+ @if $experimental-support-for-mozilla and $firefox2-ellipsis {
23
+ -moz-binding: stylesheet-url(unquote("xml/ellipsis.xml#ellipsis"));
24
+ }
25
+ }
@@ -1,3 +1,2 @@
1
1
  // When remembering whether or not there's a hyphen in white-space is too hard
2
- @mixin nowrap {
3
- white-space: nowrap; }
2
+ @mixin nowrap { white-space: nowrap; }
@@ -1,21 +1,32 @@
1
1
  // Hides html text and replaces it with an image.
2
2
  // If you use this on an inline element, you will need to change the display to block or inline-block.
3
3
  // Also, if the size of the image differs significantly from the font size, you'll need to set the width and/or height.
4
- // @param img
5
- // the relative path from the project image directory to the image.
6
- // @param x
7
- // the x position of the background image.
8
- // @param y
9
- // the y position of the background image.
4
+ //
5
+ // Parameters:
6
+ //
7
+ // * `img` -- the relative path from the project image directory to the image.
8
+ // * `x` -- the x position of the background image.
9
+ // * `y` -- the y position of the background image.
10
10
  @mixin replace-text($img, $x: 50%, $y: 50%) {
11
11
  @include hide-text;
12
12
  background: {
13
13
  image: image-url($img);
14
14
  repeat: no-repeat;
15
- position: $x $y; }; }
15
+ position: $x $y;
16
+ };
17
+ }
18
+
19
+ // Like the `replace-text` mixin, but also sets the width
20
+ // and height of the element according the dimensions of the image.
21
+ @mixin replace-text-with-dimensions($img, $x: 50%, $y: 50%) {
22
+ @include replace-text($img, $x, $y);
23
+ width: image-width($img);
24
+ height: image-height($img);
25
+ }
16
26
 
17
27
  // Hides text in an element so you can see the background.
18
28
  @mixin hide-text {
19
29
  text-indent: -9999em;
20
30
  overflow: hidden;
21
- text-align: left; }
31
+ text-align: left;
32
+ }
@@ -1,3 +1,6 @@
1
+ // Since you've installed the xml file, you must set
2
+ // $firefox2-ellipsis to true before importing.
3
+ $firefox2-ellipsis: true
1
4
  @import compass/utilities/text/ellipsis
2
5
 
3
6
  // You can delete this sass file if you want, it's just an example of how to use the ellipsis mixin.
@@ -6,13 +6,6 @@ end
6
6
  end
7
7
 
8
8
  module Compass
9
- extend Compass::Version
10
- def self.const_missing(const)
11
- # This avoid reading from disk unless the VERSION is requested.
12
- if const == :VERSION
13
- version[:string]
14
- end
15
- end
16
9
  def base_directory
17
10
  File.expand_path(File.join(File.dirname(__FILE__), '..'))
18
11
  end
@@ -36,7 +36,7 @@ module Compass
36
36
  end
37
37
 
38
38
  def default_extensions_dir
39
- File.join("vendor", "plugins", "compass", "extensions")
39
+ File.join("vendor", "plugins", "compass_extensions")
40
40
  end
41
41
 
42
42
  def default_cache_dir
@@ -43,8 +43,7 @@ puts "==================================================="
43
43
  puts
44
44
 
45
45
  # css framework prompt
46
- css_framework = ask("What CSS Framework do you want to use with Compass? (default: 'blueprint')")
47
- css_framework = "blueprint" if css_framework.blank?
46
+ css_framework = ask("What CSS Framework install do you want to use with Compass?")
48
47
 
49
48
  # sass storage prompt
50
49
  sass_dir = ask("Where would you like to keep your sass files within your project? (default: 'app/stylesheets')")
@@ -55,40 +54,25 @@ css_dir = ask("Where would you like Compass to store your compiled css files? (d
55
54
  css_dir = "public/stylesheets/compiled" if css_dir.blank?
56
55
 
57
56
  # use sudo for gem commands?
58
- use_sudo = sudo_is_an_option?
57
+ use_sudo = nil
59
58
  if sudo_is_an_option? # dont give them the option if they are on a system that can't use sudo (aka windows)
60
59
  use_sudo = yes?("Use sudo for the gem commands? (the default for your system is #{sudo_is_an_option? ? 'yes' : 'no'})")
61
60
  end
61
+ use_sudo = sudo_is_an_option? if use_sudo.blank?
62
62
 
63
63
  # define dependencies
64
- gem "haml", :version => ">=2.2.16"
65
- gem "compass", :version => ">= 0.8.17"
64
+ gem "haml", :version => ">=3.0.0.rc.3"
65
+ gem "compass", :version => ">= 0.10.0.rc4"
66
66
 
67
67
  # install and unpack
68
- rake "gems:install GEM=haml", :sudo => use_sudo
69
- rake "gems:install GEM=compass", :sudo => use_sudo
70
- rake "gems:unpack GEM=compass"
71
-
72
- # load any compass framework plugins
73
- if css_framework =~ /960/
74
- gem "compass-960-plugin", :lib => "ninesixty"
75
- rake "gems:install GEM=compass-960-plugin", :sudo => use_sudo
76
- css_framework = "960" # rename for command
77
- plugin_require = "-r ninesixty"
78
- end
68
+ rake "gems:install GEM=haml --trace", :sudo => use_sudo
69
+ rake "gems:install GEM=compass --trace", :sudo => use_sudo
70
+ rake "gems:unpack GEM=compass --trace"
79
71
 
80
72
  # build out compass command
81
- compass_command = "compass --rails -f #{css_framework} . --css-dir=#{css_dir} --sass-dir=#{sass_dir} "
82
- compass_command << plugin_require if plugin_require
83
-
84
- # Require compass during plugin loading
85
- file 'vendor/plugins/compass/init.rb', <<-CODE
86
- # This is here to make sure that the right version of sass gets loaded (haml 2.2) by the compass requires.
87
- require 'compass'
88
- CODE
73
+ compass_command = "compass init rails . --css-dir=#{css_dir} --sass-dir=#{sass_dir} "
74
+ compass_command << "--using #{css_framework} " unless css_framework.blank?
89
75
 
90
76
  # integrate it!
91
77
  run "haml --rails ."
92
78
  run compass_command
93
-
94
- puts "Compass (with #{css_framework}) is all setup, have fun!"
@@ -34,7 +34,7 @@ To get help on a particular command please specify the command.
34
34
  banner << "\n"
35
35
  end
36
36
  end
37
-
37
+ banner << "\nGlobal Options:\n"
38
38
  opts.banner = banner
39
39
 
40
40
  super
@@ -23,6 +23,7 @@ module Compass
23
23
 
24
24
  def configure!
25
25
  add_project_configuration
26
+ Compass.add_configuration(options, "cli")
26
27
  Compass.discover_extensions!
27
28
  end
28
29
 
@@ -29,12 +29,15 @@ module Compass
29
29
 
30
30
  def perform
31
31
  compiler = new_compiler_instance
32
+ check_for_sass_files!(compiler)
33
+ compiler.run
34
+ end
35
+
36
+ def check_for_sass_files!(compiler)
32
37
  if compiler.sass_files.empty? && !dry_run?
33
38
  message = "Nothing to compile. If you're trying to start a new project, you have left off the directory argument.\n"
34
39
  message << "Run \"compass -h\" to get help."
35
40
  raise Compass::Error, message
36
- else
37
- compiler.run
38
41
  end
39
42
  end
40
43
 
@@ -36,6 +36,7 @@ module Compass
36
36
  exit 0
37
37
  end
38
38
 
39
+ check_for_sass_files!(new_compiler_instance)
39
40
  recompile
40
41
 
41
42
  begin
@@ -15,7 +15,8 @@ module Compass::SassExtensions::Functions::Display
15
15
  :"table-cell" => %w{th td}
16
16
  }
17
17
 
18
- # returns a comma delimited string for all the elements according to their default css3 display value.
18
+ # returns a comma delimited string for all the
19
+ # elements according to their default css3 display value.
19
20
  def elements_of_type(display)
20
21
  Sass::Script::String.new(DEFAULT_DISPLAY.fetch(display.value.to_sym).join(", "))
21
22
  end
@@ -57,12 +57,19 @@ module Compass::SassExtensions::Functions::GradientSupport
57
57
  assert_list(color_list)
58
58
  normalize_stops!(color_list)
59
59
  max = color_list.values.last.stop
60
+ last_value = nil
60
61
  color_stops = color_list.values.map do |pos|
61
62
  # have to convert absolute units to percentages for use in color stop functions.
62
63
  stop = pos.stop
63
64
  stop = stop.div(max).times(Sass::Script::Number.new(100,["%"])) if stop.numerator_units == max.numerator_units
65
+ # Make sure the color stops are specified in the right order.
66
+ if last_value && last_value.value > stop.value
67
+ raise Sass::SyntaxError.new("Color stops must be specified in increasing order")
68
+ end
69
+ last_value = stop
64
70
  "color-stop(#{stop.inspect}, #{pos.color.inspect})"
65
71
  end
72
+
66
73
  Sass::Script::String.new(color_stops.join(", "))
67
74
  end
68
75
 
@@ -185,6 +192,10 @@ module Compass::SassExtensions::Functions::GradientSupport
185
192
  pos.stop = pos.stop.times(Sass::Script::Number.new(1, ["px"]))
186
193
  end
187
194
  end
195
+ if (positions.last.stop.eq(Sass::Script::Number.new(0, ["px"])).to_bool ||
196
+ positions.last.stop.eq(Sass::Script::Number.new(0, ["%"])).to_bool)
197
+ raise Sass::SyntaxError.new("Color stops must be specified in increasing order")
198
+ end
188
199
  nil
189
200
  end
190
201
  def assert_list(value)
@@ -45,4 +45,13 @@ module Compass
45
45
  end
46
46
  end
47
47
  end
48
+ extend Compass::Version
49
+ def self.const_missing(const)
50
+ # This avoid reading from disk unless the VERSION is requested.
51
+ if const == :VERSION
52
+ version[:string]
53
+ else
54
+ super
55
+ end
56
+ end
48
57
  end
@@ -16,9 +16,6 @@ table, caption, tbody, tfoot, thead, tr, th, td {
16
16
  font-family: inherit;
17
17
  vertical-align: baseline; }
18
18
 
19
- *:focus {
20
- outline: 0; }
21
-
22
19
  body {
23
20
  line-height: 1;
24
21
  color: black;
@@ -27,7 +24,6 @@ body {
27
24
  ol, ul {
28
25
  list-style: none; }
29
26
 
30
- /* tables still need 'cellspacing="0"' in the markup */
31
27
  table {
32
28
  border-collapse: separate;
33
29
  border-spacing: 0;