All application specific behavior is now centralized within the app integration modules.
Plugins can now provide app integration using the --app command line option and by adding the appropriate classes to the compass module tree.
configuration. Configuration is now a singly linked list of configuration objects
that inherit values and defaults from the next configuration instance.
All instances hold a reference to the top of the configuration chain.
There is now a consistent API for reading configuration property values:
<attr>: Reads the fully-resolved attribute after taking
configuration inheritance and defaults into account.
raw_<attr>: reads attribute from a configuration object without
inheritance or defaults.
default_for(<attr>): reads the default value for an attribute
default_for_<attr>: specifies the default value for an attribute.
<attr>_without_default: reads the inherited attribute without applying defaults.
comment_for_<attr>: Specifies a comment that will be emitted above the
property when serializing the configuration to a file.
Additionally, method_missing and respond_to both work down the
configuration chain, so any method that is added to a configuration
instance, can be accessed from the top level.
The distinction between default and explicitly set values allows compass
to more correctly manage the serialization of attributes when creating
configuration files for projects.
The compass configuration can still be accessed via
Compass.configuration, however, the configuration object is no longer a
singleton. This means that you can build several configuration chains
to track several projects at once. This should ease the use of compass
in other frameworks and plugins that want to use compass internally.
This function works like image_url() in that it expects the image to be a path relative to the images directory.
There are clear advantages and disadvantages to this approach.
See http://en.wikipedia.org/wiki/Data_URI_scheme for more details.
NOTE: Neither IE6 nor IE7 support data urls.
Using this approach with large images is discouraged.
This causes your rails configuration for cache busting and asset hosts
to be picked up when generating your stylesheets. Unfortunately, all
that code runs within the context of a controller, so the stylesheets
have to be generated during first request to use this functionality.
YUI doesn't even consider it part of the reset. With so much
disagreement, I decided to make the compass reset agnostic and let
individual frameworks decide what the body line-height ought to be.
Added Compass#sass_engine_options method to emit sass options suitable
for passing to Sass::Engine#new.
Added require tracking in the configuration parser and serializer.
Breakdown of changes:
===
Remove the body scope that is unnecessarily added to many blueprint classes due to the way the mixins were constructed and used. Blueprint mixins that operate on the body tag now follow a pattern where they take the body selector as an argument and must always be mixed into the top level of a stylesheet. The classes will be scoped whenever the selector is not a simple "body" selector which is the default. Mixins affected: +blueprint-ie, +blueprint-print, +blueprint-typography, and +blueprint-scaffolding. All of these mixins use corresponding +[mixin]-body and +[mixin]-defaults mixins in their implementations that you can use directly if you feel constrained by the requirement to mix into the top-level.
===
Made all configurable constants possible to override in a base stylesheet using conditional assignment. Moved many colors that were still hard coded to the colors.sass module so they can be overridden.
===
Restored some blueprint defaults even though I didn't like them. With the exception of the blueprint link urls which are now available as a mixin called +blueprint-show-link-urls (they used to just be commented out.)
===
Grid constants have been renamed in both the grid and liquid grid modules. These constants are now conditionally assigned to make the grid easily configured.
===
The liquid grid now uses the compass clearfix.
===
moved the primary mixin for a module (where one exists) to the top of the file for clarity of readers.
===
blueprint grid classes are now appropriately scoped under the .container class.
For example:
nest(".foo", "a, em, b")
would render:
.foo a, .foo em, .foo b
The nest function can take any number of arguments and each argument can have any number of comma-delimited selectors.