3.4.17 (21 August 2015)
* Allow passing calc values to rgb/hsl color constructors.
* The source map end character for lists now correctly uses the end of the
list instead of the end of the first element in the list.
* Fix up some edge cases where extra semicolons could be added to unknown
directives in compressed mode.
* If you try to do a stupid color operation with a stupid value, the error
message will now be less stupid than it was.
* Make is-superselector("a > c d", "a > b c d") return false. This also fixes
some related @extend behavior.
* A / in a parenthesized list is consistently treated as a plain / unless it
meets the criteria for being treated as division.
* In sass-convert, ensure that literal /es are preserved.
3.4.16 (10 July 2015)
* When converting from Sass to SCSS or vice versa, double-space around nested
rules the same as around top-level rules.
* Compatibility with listen 3.
* Parse a minus operator with no surrounding whitespace (e.g. 20px-10px) the
same regardless of whether it’s being used in a static property.
3.4.15 (22 June 2015)
* Further improve rounding for various numeric operations.
* Be more explicit in the function documentation about functions being
immutable.
* Improve rounding in operator-based color operations.
Deprecations – Must Read!
* When using --stdin with the sass or scss executables, importing relative to
the working directory is deprecated. Having the working directory on the
load path was deprecated in 3.3 and removed in 3.4, but due to an oversight
the deprecation process never happened for files read over standard input in
particular. This is the first step of that process.
3.2.15 (7 March 2014)
* Support &.foo when the parent selector has a newline followed by a comma.
3.2.14 (24 January 2014)
* Don't crash when parsing a directive with no name in the indented syntax.
* Clean up file paths when importing to avoid errors for overlong path names.
* Parse calls to functions named true, false, and null as function calls.
* Don't move CSS @imports to the top of the file unless it's necessary.
3.2.13 (19 December 2013)
* Numbers returned by user-defined functions now trigger division, just like
numbers stored in variables.
* Support importing files in paths with open brackets.
* Fix sass-convert's handling of rules with empty bodies when converting from
CSS.
* Fix CSS imports using url() with a quoted string and media queries.
3.2.12 (4 October 2013)
* Add a couple missing requires, fixing some load errors, especially when
using the command-line interface.
* Tune up some heuristics for eliminating redundant generated selectors. This
will prevent some selector elimination in cases where multi-layered @extend
is being used and where it seems intuitively like selectors shouldn't be
eliminated.
3.2.11 (27 September 2013)
* Fix @extend's semantics with respect to pseudo-elements. They are no longer
treated identically to pseudo-classes.
* A more understandable error is now provided when the -E option is passed to
the Sass command line in ruby 1.8
* Fixed a bug in the output of lists containing unary plus or minus operations
during sass <=> scss conversion.
* Avoid the IE7 content: counter bug with content: counters as well.
* Fix some thread-safety issues.
3.2.10
* Use the Sass logger infrastructure for @debug directives.
* When printing a Sass error into a CSS comment, escape */ so the comment
doesn¡Çt end prematurely.
* Preserve the ! in /*! ... */-style comments.
* Fix a bug where selectors were being incorrectly trimmed when using @extend.
* Fix a bug where sass --unix-newlines and sass-convert --in-place are not
working on Windows (thanks SATO Kentaro).
3.2.9
* Fix a bug where @extends would occasionally cause a selector to be generated
with the incorrect specificity.
* Avoid loading listen v1.0, even if it¡Çs installed as a Gem (see issue 719).
* Update the bundled version of listen to 0.7.3.
* Automatically avoid the IE7 content: counter bug.
3.2.8
* Fix some edge cases where redundant selectors were emitted when using @extend.
* Fix a bug where comma-separated lists with interpolation could lose elements.
* Fix a bug in sass-convert where lists being passed as arguments to functions
or mixins would lose their surrounding parentheses.
* Fix a bug in sass-convert where null wasn¡Çt being converted correctly.
* Fix a bug where multiple spaces in a string literal would sometimes be
folded together.
* sass and sass-convert won¡Çt create an empty file before writing to it. This
fixes a flash of unstyled content when using LiveReload and similar tools.
* Fix a case where a corrupted cache could produce fatal errors on some
versions of Ruby.
* Fix a case where a mixin loop error would be incorrectly reported when using
@content.
3.2.7
* The index and zip functions now work like all other list functions and treat
individual values as single-element lists.
* Avoid stack overflow errors caused by very long function or mixin argument
lists.
* Emit relative paths when using the --line-comments flag of the sass
executable.
* Fix a case where very long numbers would cause the SCSS parser to take
exponential time.
3.2.6
* Support for Rubinius 2.0.0.rc1. All tests pass in 1.8 mode. 1.9 mode has
some tests blocked on Rubinius issue 2139.
* Support for JRuby 1.7.2.
* Support for symlinked executables. Thanks to Yin-So Chen.
* Support for bubbling @supports queries in the indented syntax.
* Fix an incorrect warning when using @extend from within nested @media
queries.
* Update the bundled version of listen to 0.7.2.
3.2.3
* sass --watch no longer crashs when a file in a watched directory is deleted.
* Allow @extend within bubbling nodes such as @media.
* Fix various JRuby incompatibilities and test failures.
* Work around a performance bug that arises from using @extend with
deeply-nested selectors.
3.2.2
* Add a --poll option to force sass --watch to use the polling backend to
Listen.
* Fix some error reporting bugs related to @import.
* Treat protocol-relative URLs in @imports as static URLs, just like http and
https URLs.
* Improve the error message for misplaced simple selectors.
* Fix an option-handling bug that was causing errors with the Compass URL
helpers.
* Fix a performance issue with @import that only appears when ActiveSupport is
loaded.
* Fix flushing of actions to stdout. Thanks to Russell Davis
(http://github.com/russelldavis).
* Fix the documentation for the max() function.
* Fix a @media parsing bug.
Deprecations -- Must Read!
* Sass will now print a warning when it encounters a single @import statement
that tries to import more than one file. For example, if you have @import
"screen" and both screen.scss and _screen.scss exist, a warning will be
printed. This will become an error in future versions of Sass.
3.1.16
* Fix some bugs in sass-convert selector parsing when converting from CSS.
* Substantially improve compilation performance on Ruby 1.8.
* Support the @-moz-document directive¡Çs non-standard url-prefix and domain
function syntax.
* Support the @supports directive.
* Fix a performance issue when using /*! */ comments with the Rails asset
pipeline.
* Support -moz-element.
* Properly handle empty lists in sass-convert.
* Move from FSSM to Listen for file-system monitoring.
3.1.11
* Allow control directives (such as @if) to be nested beneath properties.
* Allow property names to begin with a hyphen followed by interpolation
(e.g. -#{...}).
* Fix a parsing error with interpolation in comma-separated lists.
* Make --cache-store with with --update.
* Properly report ArgumentErrors that occur within user-defined functions.
* Don’t crash on JRuby if the underlying Java doesn’t support every Unicode
encoding.
* Add new updated_stylesheet callback, which is run after each stylesheet has
been successfully compiled. Thanks to Christian Peters.
* Allow absolute paths to be used in an importer with a different root.
* Don’t destructively modify the options when running
Sass::Plugin.force_update.
Deprecations – Must Read!
* The updating_stylesheet is deprecated and will be removed in a future
release. Use the new updated_stylesheet callback instead.
3.1.10
* Fix another aspect of the 3.1.8 regression relating to +.
3.1.9
* Fix a regression in 3.1.8 that broke the + combinator in selectors.
* Deprecate the loud-comment flag when used with silent comments
(e.g. //!). Using it with multi-line comments (e.g. /*!) still works.
3.1.8
* Deprecate parent selectors followed immediately by identifiers
(e.g. &foo). This should never have worked, since it violates the rule of &
only being usable where an element selector would.
* Add a --force option to the sass executable which makes --update always
compile all stylesheets, even if the CSS is newer.
* Disallow semicolons at the end of @import directives in the indented syntax.
* Don’t error out when being used as a library without requiring fileutil.
* Don’t crash when Compass-style sprite imports are used with
StalenessChecker (thanks to Matthias Bauer).
* The numeric precision of numbers in Sass can now be set using the
--precision option to the command line. Additionally, the default number of
digits of precision in Sass output can now be changed by setting
Sass::Script::Number.precision to an integer (defaults to 3). Since this
value can now be changed, the PRECISION constant in Sass::Script::Number has
been deprecated. In the unlikely event that you were using it in your code,
you should now use Sass::Script::Number.precision_factor instead.
* Don’t crash when running sass-convert with selectors with two commas in a
row.
* Explicitly require Ruby >= 1.8.7 (thanks Eric Mason).
* Properly validate the nesting of elements in imported stylesheets.
* Properly compile files in parent directories with --watch and --update.
* Properly null out options in mixin definitions before caching them. This
fixes a caching bug that has been plaguing some Rails 3.1 users.
3.1.6
* The option :trace_selectors can now be used to emit a full trace before each
selector. This can be helpful for in-browser debugging of stylesheet imports
and mixin includes. This option supersedes the :line_comments option and is
superseded by the :debug_info option.
* Fix a bug where long @if/@else chains would cause exponential slowdown under
some circumstances.
3.1.5
* Updated the vendored FSSM version, which will avoid segfaults on OS X Lion
when using --watch.
3.1.4
* Sass no longer unnecessarily caches the sass options hash. This allows
objects that cannot be marshaled to be placed into the options hash.
3.1.3
* Sass now logs message thru a logger object which can be changed to provide
integration with other frameworks¡Ç logging infrastructure.
ruby-compass pacakge.
# Sass
**Sass makes CSS fun again**. Sass is an extension of CSS3,
adding nested rules, variables, mixins, selector inheritance, and more.
It's translated to well-formatted, standard CSS
using the command line tool or a web-framework plugin.
Sass has two syntaxes. The new main syntax (as of Sass 3)
is known as "SCSS" (for "Sassy CSS"),
and is a superset of CSS3's syntax.
This means that every valid CSS3 stylesheet is valid SCSS as well.
SCSS files use the extension `.scss`.
The second, older syntax is known as the indented syntax (or just "Sass").
Inspired by Haml's terseness, it's intended for people
who prefer conciseness over similarity to CSS.
Instead of brackets and semicolons,
it uses the indentation of lines to specify blocks.
Although no longer the primary syntax,
the indented syntax will continue to be supported.
Files in the indented syntax use the extension `.sass`.