Skip to content
This repository
Newer
Older
100644 3455 lines (2434 sloc) 117.274 kb
04658cef »
2009-07-04 [Sass] Add a changelog.
1 # Sass Changelog
2
3 * Table of contents
4 {:toc}
5
e6f0edb6 »
2014-02-14 Revert "Remove support for script &."
6 ## 3.4.0 (Unreleased)
7
8 ### Using `&` in SassScript
9
10 For a long time, Sass has supported a special
11 {file:SASS_REFERENCE.md#parent-selector "parent selector", `&`}, which is used
12 when nesting selectors to describe how a nested selector relates to the
13 selectors above it. Until now, this has only been usable in selectors, but now
14 it can be used in SassScript as well.
15
16 In a SassScript expression, `&` refers to the current parent selector. It's a
17 comma-separated list of space-separated lists. For example:
18
19 .foo.bar .baz.bang, .bip.qux {
20 $selector: &;
21 }
22
23 The value of `$selector` is now `((".foo.bar" ".baz.bang"), ".bip.qux")`. The
24 compound selectors are quoted here to indicate that they're strings, but in
25 reality they would be unquoted.
26
27 If there is no parent selector, the value of `&` will be null. This means you
28 can use it in a mixin to detect whether a parent selector exists:
29
30 @mixin does-parent-exist {
31 @if & {
32 &:hover {
33 color: red;
34 }
35 } else {
36 a {
37 color: red;
38 }
39 }
40 }
41
4e9d149c »
2014-02-14 Add support for all the Values and Units level 3 units.
42 ### Smaller Improvements
43
b80a77ae »
2014-02-14 Add a CHANGELOG entry for color representation preservation.
44 * When using colors in SassScript, the original representation of the color will
45 be preserved wherever possible. If you write `#f00`, it will be rendered as
46 `#f00`, not as `red` or `#ff0000`. In compressed mode, Sass will continue to
47 choose the most compact possible representation for colors.
48
4e9d149c »
2014-02-14 Add support for all the Values and Units level 3 units.
49 * Add support for unit arithmetic with many more units, including angles, times,
50 frequencies, and resolutions.
51
2b87b837 »
2014-03-24 Update encoding support to match the Syntax Level 3 spec.
52 * Sass now follows the [CSS Syntax Level 3][encodings level 3]
53 specification for determining a stylesheet's encoding. In addition,
54 it not only emits UTF-8 CSS rather than trying to match the source
55 encoding.
56
57 [encodings level 3]: http://www.w3.org/TR/2013/WD-css-syntax-3-20130919/#determine-the-fallback-encoding
58
ac554ff5 »
2014-04-04 Support scientific notation and identifier units in numbers.
59 * Sass now allows numbers to be written using scientific notation. It will not
60 emit numbers in scientific notation until it's more widely supported in
61 browsers.
62
63 * Sass now allows almost any identifier to be used as a custom numeric unit.
64 Identifiers that are ambiguous with subtraction, such as `px-1px`, are
65 disallowed.
66
6434174f »
2014-02-14 Support ids in SassScript.
67 * Sass now supports using ids as values in SassScript as defined in the CSS
68 Basic User Interface Module. They're treated as unquoted strings.
69
f2946e1c »
2014-03-25 Support writing CSS exception information when not using --watch.
70 * When the `sass` and `scss` executables encounter an error, they will now
71 produce a CSS file describing that error. Previously this was enabled only for
72 `--watch` and `--update` mode; now it's enabled whenever a CSS file is being
73 written to disk.
74
6c1613ae »
2014-03-25 Add a changelog entry for command-line option changes.
75 * The command-line `--help` documentation for the `sass`, `scss`, and
76 `sass-convert` executables is revised and re-organized.
77
85c71600 »
2014-02-21 Add a changelog entry about index() returning null.
78 ### Backwards Incompatibilities -- Must Read!
79
2283d29c »
2014-02-21 Rip out the deprecated addition of . to the load path.
80 * The current working directory will no longer be placed onto the Sass load path
81 by default. If you need the current working directory to be available,
82 set `SASS_PATH=.` in your shell's environment.
83
f16ef477 »
2014-02-21 Rip out support for passing lists of pairs to map functions.
84 * Sass will now throw an error when a list of pairs is passed to a map function.
85
f2e6e22b »
2014-02-21 Rip out deprecated argument names.
86 * `mix()`'s deprecated argument names, `$color-1` and `$color-2`, will now throw
87 errors. Use `$color1` and `$color2` instead.
88
89 * `comparable()`'s deprecated argument names, `$number-1` and `$number-2`, will
90 now throw errors. Use `$number1` and `$number2` instead.
91
92 * `percentage()`'s, `round()`'s, `ceil()`'s, `floor()`'s, and `abs()`'s
93 deprecated argument name, `$value`, will now throw an error. Use `$number`
94 instead.
95
85c71600 »
2014-02-21 Add a changelog entry about index() returning null.
96 * `index()` now returns `null` rather than `false` if the value isn't found in
97 the list.
98
f0698e13 »
2014-02-21 Make local variables shadow globals by default.
99 * All variable assignments not at the top level of the document are now local by
100 default. If there's a global variable with the same name, it won't be
101 overwritten unless the `!global` flag is used. For example, `$var: value
102 !global` will assign to `$var` globally.
103
48f303dd »
2014-04-14 Bump VERSION to 3.3.5.
104 ## 3.3.5 (14 April 2014)
66f4e76e »
2014-04-04 Bundle a fork of listen that falls back to polling.
105
106 * Fix `LoadError`s when using `--watch` with the bundled version of Listen.
107
0cc24371 »
2014-04-04 Properly parse negative numbers preceded by a comment.
108 * Properly parse negative numbers preceded by a comment.
109
dafaa324 »
2014-04-11 Avoid unnecessary interpolation in `sass-convert`.
110 * Avoid unnecessary interpolation when running `sass-convert` on media queries.
111
ded47cb1 »
2014-04-11 Add a changelog entry.
112 * Avoid freezing Ruby's `true` or `false` values.
113
e267c436 »
2014-03-21 Bump VERSION to 3.3.4.
114 ## 3.3.4 (21 March 2014)
b5e20dbe »
2014-03-19 Improve the warning message for index(...) == false.
115
116 * Improve the warning message for `index(...) == false`.
117
e72c6d77 »
2014-03-21 Fix the use of unknown directives within @at-root.
118 * Fix the use of directives like `@font-face` within `@at-root`.
119
9b10d438 »
2014-03-21 Fix a Windows path canonicalization bug.
120 * Fix a `sass --watch` issue on Windows where too many files would be updated
121 on every change.
122
63bc4a21 »
2014-03-21 Add a changelog entry for freezing nil.
123 * Avoid freezing Ruby's `nil` value.
124
274bebdb »
2014-03-14 Bump VERSION to 3.3.3.
125 ## 3.3.3 (14 March 2014)
4fefedb8 »
2014-03-14 Add a changelog entry for the marshaling fix.
126
127 * Fix a bug in Sass that was causing caching errors when unserializable objects
128 were in the Ruby options hash. Note that these errors may persist when using
129 Sass with Sprockets until the Sprockets importer is made serializable.
130
827e186b »
2014-03-11 Bump VERSION to 3.3.2.
131 ## 3.3.2 (11 March 2014)
fedf1593 »
2014-03-11 Fix a Listen loading bug.
132
133 * Fix a bug with loading the bundled version of Listen.
134
bd070e2c »
2014-03-10 Bump VERSION to 3.3.1.
135 ## 3.3.1 (10 March 2014)
c6ebdfd7 »
2014-03-10 Add changelog entries.
136
137 This release includes a number of fixes for issues that popped up in the
138 immediate aftermath of the 3.3.0 release.
139
140 ### Re-bundle [listen](http://github.com/guard/listen)
141
142 With 3.3.0, we un-bundled the listen library from Sass. We did so hoping that it
143 would make it easier for users to keep up to date with the latest features and
144 bug fixes, but unfortunately listen 2.0 and on have dropped support for Ruby
145 1.8.7, which Sass continues to support. Further complicating things, RubyGems
146 lacks the ability to install only the version of listen supported by the current
147 Ruby installation, so we were unable to use a standard Gem dependency on listen.
148
149 To work around this, we tried to piggyback on RubyGems' native extension support
150 to install the correct version of listen when Sass was installed. This is what
151 we released in 3.3.0. However, this caused numerous problems in practice,
152 especially for users on Windows. It quickly became clear that this wasn't a
153 viable long-term solution.
154
155 As such, we're going back to the bundling strategy. While not perfect, this
156 worked well enough for the duration of the Sass 3.2 release, and we expect it to
157 cause much less havoc than un-bundling. We'll bundle listen 1.3.1, the most
158 recent version that retains Ruby 1.8.7 compatibility. If a user of Sass has a
159 more recent version of listen installed, that will be preferred to the bundled
160 version. Listen versions through 2.7.0 have been tested, and we expect the code
161 to work without modification on versions up to 3.0.0, assuming no major API
162 changes.
163
164 ### Smaller Changes
165
166 * Fixed a small interface incompatibility with listen 2.7.0.
167
168 * Fix some corner cases of path handling on Windows.
169
170 * Avoid errors when trying to watch read-only directories using listen 1.x.
171
bd8d8db2 »
2014-03-07 Bump VERSION to 3.3.0.
172 ## 3.3.0 (7 March 2014)
d19e7691 »
2012-09-07 Consider files with the same name to be an error.
173
442bef5f »
2013-08-02 Add a changelog entry about maps and @each.
174 ### SassScript Maps
175
176 SassScript has a new data type: maps. These are associations from SassScript
177 values (often strings, but potentially any value) to other SassScript values.
178 They look like this:
179
180 $map: (key1: value1, key2: value2, key3: value3);
181
182 Unlike lists, maps must always be surrounded by parentheses. `()` is now an
183 empty map in addition to an empty list.
184
185 Maps will allow users to collect values into named groups and access those
186 groups dynamically. For example, you could use them to manage themes for your
187 stylesheet:
188
189 $themes: (
190 mist: (
191 header: #DCFAC0,
192 text: #00968B,
193 border: #85C79C
194 ),
195 spring: (
196 header: #F4FAC7,
197 text: #C2454E,
198 border: #FFB158
199 ),
200 // ...
201 );
202
203 @mixin themed-header($theme-name) {
204 h1 {
205 color: map-get(map-get($themes, $theme-name), header);
206 }
207 }
208
209 There are a variety of functions for working with maps:
210
211 * The {Sass::Script::Functions#map_get `map-get($map, $key)` function} returns
212 the value in the map associated with the given key. If no value is found, it
213 returns `null`.
214
215 * The {Sass::Script::Functions#map_merge `map-merge($map1, $map2)` function}
216 merges two maps together into a new map. If there are any conflicts, the
217 second map takes precedence, making this a good way to modify values in a map
218 as well.
219
f5b54093 »
2014-01-21 Add a map-remove() function for removing keys from a map.
220 * The {Sass::Script::Functions#map_remove `map-remove($map, $key)` function}
221 returns a new map with a key removed.
222
442bef5f »
2013-08-02 Add a changelog entry about maps and @each.
223 * The {Sass::Script::Functions#map_keys `map-keys($map)` function} returns all
224 the keys in a map as a comma-separated list.
225
226 * The {Sass::Script::Functions#map_values `map-values($map)` function} returns
227 all the values in a map as a comma-separated list.
228
229 * The {Sass::Script::Functions#map_has_key `map-has-key($map, $key)` function}
230 returns whether or not a map contains a pair with the given key.
231
232 All the existing list functions also work on maps, treating them as lists of
233 pairs. For example, `nth((foo: 1, bar: 2), 1)` returns `foo 1`. Maps can also be
234 used with `@each`, using the new multiple assignment feature (see below):
235
236 @each $header, $size in (h1: 2em, h2: 1.5em, h3: 1.2em) {
237 #{$header} {
238 font-size: $size;
239 }
240 }
241
242 Produces:
243
244 h1 {
245 font-size: 2em;
246 }
247
248 h2 {
249 font-size: 1.5em;
250 }
251
252 h3 {
253 font-size: 1.2em;
254 }
255
a9006299 »
2013-09-12 Add changelog and reference documentation about variable argument maps.
256 #### Variable Keyword Arguments
257
258 Maps can be passed as variable arguments, just like lists. For example, if
259 `$map` is `(alpha: -10%, "blue": 30%)`, you can write `scale-color($color,
260 $map...)` and it will do the same thing as `scale-color($color, $alpha: -10%,
261 $blue: 30%)`. To pass a variable argument list and map at the same time, just do
262 the list first, then the map, as in `fn($list..., $map...)`.
263
264 You can also access the keywords passed to a function that accepts a variable
265 argument list using the new {Sass::Script::Functions#keywords `keywords($args)`
266 function}. For example:
267
268 @function create-map($args...) {
269 @return keywords($args);
270 }
271
272 create-map($foo: 10, $bar: 11); // returns (foo: 10, bar: 11)
273
274 #### Lists of Pairs as Maps
275
5eed7ddd »
2013-08-23 Allow lists of pairs to be passed to map functions.
276 The new map functions work on lists of pairs as well, for the time being. This
277 feature exists to help libraries that previously used lists of pairs to simulate
278 maps. These libraries can now use map functions internally without introducing
279 backwards-incompatibility. For example:
280
281 $themes: (
282 mist (
283 header #DCFAC0,
284 text #00968B,
285 border #85C79C
286 ),
287 spring (
288 header #F4FAC7,
289 text #C2454E,
290 border #FFB158
291 ),
292 // ...
293 );
294
295 @mixin themed-header($theme-name) {
296 h1 {
297 color: map-get(map-get($themes, $theme-name), header);
298 }
299 }
300
301 Since it's just a migration feature, using lists of pairs in place of maps is
302 already deprecated. Library authors should encourage their users to use actual
303 maps instead.
304
267aa0db »
2014-01-22 Re-organize the changelog.
305 ### Source Maps
306
307 Sass now has the ability to generate standard JSON [source maps][] of a format
308 that will soon be supported in most major browsers. These source maps tell the
309 browser how to find the Sass styles that caused each CSS style to be generated.
310 They're much more fine-grained than the old Sass-specific debug info that was
311 generated; rather than providing the source location of entire CSS rules at a
312 time, source maps provide the source location of each individual selector and
313 property.
314
315 Source maps can be generated by passing the `--sourcemap` flag to the `sass`
316 executable, by passing the {file:SASS_REFERENCE.md#sourcemap-option `:sourcemap`
317 option} to \{Sass::Plugin}, or by using the
318 \{Sass::Engine#render\_with\_sourcemap} method. By default, Sass assumes that
319 the source stylesheets will be made available on whatever server you're using,
320 and that their relative location will be the same as it is on the local
321 filesystem. If this isn't the case, you'll need to make a custom class that
322 extends \{Sass::Importers::Base} or \{Sass::Importers::Filesystem} and overrides
323 \{Sass::Importers::Base#public\_url `#public_url`}.
324
325 Thanks to Alexander Pavlov for implementing this.
326
327 [source maps]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?hl=en_US&pli=1&pli=1
328
329 #### `@at-root`
330
331 Sass 3.3 adds the `@at-root` directive, which is a way to tell Sass to
332 put a collection of rules at the top-level root of the document. The
333 easiest way to use it is with a selector:
334
335 .badge {
336 @at-root .info { ... }
337 @at-root .header { ... }
338 }
339
340 In addition to using `@at-root` on a single selector, you can also use it on a
341 whole block of them. For example:
342
343 .badge {
344 @at-root {
345 .info { ... }
346 .header { ... }
347 }
348 }
349
350 Also produces:
351
352 .info { ... }
353 .header { ... }
354
355 #### `@at-root (without: ...)` and `@at-root (with: ...)`
356
357 By default, `@at-root` just excludes selectors. However, it's also
358 possible to use `@at-root` to move outside of nested directives such
359 as `@media` as well. For example:
360
361 @media print {
362 .page {
363 width: 8in;
364 @at-root (without: media) {
365 color: red;
366 }
367 }
368 }
369
370 produces:
371
372 @media print {
373 .page {
374 width: 8in;
375 }
376 }
377 .page {
378 color: red;
379 }
380
381 You can use `@at-root (without: ...)` to move outside of any
382 directive. You can also do it with multiple directives separated by a
383 space: `@at-root (without: media supports)` moves outside of both
384 `@media` and `@supports` queries.
385
386 There are two special values you can pass to `@at-root`. "rule" refers
387 to normal CSS rules; `@at-root (without: rule)` is the same as
388 `@at-root` with no query. `@at-root (without: all)` means that the
389 styles should be moved outside of *all* directives and CSS rules.
390
391 If you want to specify which directives or rules to include, rather
392 than listing which ones should be excluded, you can use `with` instead
393 of `without`. For example, `@at-root (with: rule)` will move outside
394 of all directives, but will preserve any CSS rules.
395
bf5b30fe »
2013-02-25 Add documentation for source maps.
396 ### Smaller Improvements
397
3f1498a5 »
2014-01-22 Support &-suffix.
398 * The parent selector, `&`, can be used with an identifier suffix. For
399 example, `&-suffix` and `&_suffix` are now legal. The suffix will be
400 added to the end of the parent selector, and will throw an error if
401 this isn't possible. `&` must still appear at the beginning of a
402 compound selector -- that is, `.foo-&` is still illegal.
403
a81052ef »
2014-01-23 Add an extension script to install listen along with Sass.
404 * [listen](http://github.com/guard/listen) is no longer bundled with
405 Sass, nor is it a standard RubyGems dependency. Instead, it's
406 automatically installed along with Sass in order to ensure that the
407 user ends up with a version of Listen that works with their local
408 Ruby version.
1db74763 »
2013-02-22 Various small tweaks.
409
410 * Sass now has numerous functions for working with strings:
411 \{Sass::Script::Functions#str_length `str-length`} will return the length of a
412 string; \{Sass::Script::Functions#str_insert `str-insert`} will insert one
413 string into another; \{Sass::Script::Functions#str_index `str-index`} will
414 return the index of a substring within another string;
415 \{Sass::Script::Functions#str_slice `str-slice`} will slice a substring from a
416 string; \{Sass::Script::Functions#to_upper_case `to-upper-case`} will
417 transform a string to upper case characters; and
418 \{Sass::Script::Functions#to_lower_case `to-lower-case`} will transform a
419 string to lower case characters.
420
6a11a37e »
2013-04-17 Add a changelog entry for list-separator.
421 * A \{Sass::Script::Functions#list_separator `list-separator`} function has been
422 added to determine what separator a list uses. Thanks to [Sam
423 Richard](https://github.com/Snugug).
424
1db74763 »
2013-02-22 Various small tweaks.
425 * Custom Ruby functions can now access the global environment, which
426 allows them the same power as Sass-based functions with respect to
427 reading and setting variables defined elsewhere in the stylesheet.
428
f8903395 »
2013-07-26 Set the nth element in a list.
429 * The `set-nth($list, $n, $value)` function lets you construct a new
430 list based on `$list`, with the nth element changed to the value
431 specified.
432
054b4867 »
2014-01-21 Allow mixin recursion.
433 * In order to make it easier for mixins to process maps, they may now
434 recursively call themselves and one another. It is no longer an
435 error to have a mixin `@include` loop.
436
0b86e2b2 »
2013-05-24 Support "transparent" as a color name.
437 * Add "grey" and "transparent" as recognized SassScript colors. Thanks to [Rob
54ea0d46 »
2013-05-08 Add grey to the list of Sass Script colors.
438 Wierzbowski](https://github.com/robwierzbowski).
439
3815575f »
2013-07-02 Cleanup YARD documentation.
440 * Add a function \{Sass::Script::Functions#unique\_id `unique-id()`} that will
a4bb6c0f »
2013-06-03 Clean up f3be0f4 a little.
441 return a CSS identifier that is unique within the scope of a single CSS file.
f3be0f40 »
2013-05-27 Added Sass Function: unique-id()
442
2f83fec6 »
2013-06-17 Allow negative indices in `nth` list function
443 * Allow negative indices into lists when using `nth()`.
444
e3f1f9c1 »
2013-06-06 Sass feature detection.
445 * You can now detect the presence of a Sass feature using the new function
0c5a5512 »
2013-06-19 Rename sass-supports() to feature-exists().
446 `feature-exists($feature-name)`. There are no detectable features in this
3f4b81a1 »
2013-06-11 Don't have any known features in the 3.3 release.
447 release, this is provided so that subsequent releases can begin to
1b45a550 »
2013-06-11 Allow plugins to expose their features too.
448 use it. Additionally, plugins can now expose their functionality
0c5a5512 »
2013-06-19 Rename sass-supports() to feature-exists().
449 through `feature-exists` by calling `Sass.add_feature(feature_name)`. Features
1b45a550 »
2013-06-11 Allow plugins to expose their features too.
450 exposed by plugins must begin with a dash to distinguish them from
451 official features.
8738d592 »
2013-06-24 Sass function to test if a mixin exists.
452
453 * It is now possible to determine the existence of different Sass
454 constructs using these new functions:
455
67af938b »
2013-09-27 Address code review comments
456 * `variable-exists($name)` checks if a variable resolves in the
8738d592 »
2013-06-24 Sass function to test if a mixin exists.
457 current scope.
67af938b »
2013-09-27 Address code review comments
458 * `global-variable-exists($name)` checks if a global variable of the
8738d592 »
2013-06-24 Sass function to test if a mixin exists.
459 given name exists.
67af938b »
2013-09-27 Address code review comments
460 * `function-exists($name)` checks if a function exists.
461 * `mixin-exists($name)` checks if a mixin exists.
e3f1f9c1 »
2013-06-06 Sass feature detection.
462
7cd47531 »
2013-06-21 Allow function calls via a script expression.
463 * You can call a function by name by passing the function name to the
2376ba99 »
2013-07-26 Small changelog copy edit.
464 call function. For example, `call(nth, a b c, 2)` returns `b`.
7cd47531 »
2013-06-21 Allow function calls via a script expression.
465
8c564fa5 »
2013-04-16 Properly convert comments after selectors in the indented syntax.
466 * Comments following selectors in the indented syntax will be correctly
467 converted using `sass-convert`.
468
442bef5f »
2013-08-02 Add a changelog entry about maps and @each.
469 * `@each` now supports "multiple assignment", which makes it easier to iterate
470 over lists of lists. If you write `@each $var1, $var2, $var3 in a b c, d e f,
471 g h i`, the elements of the sub-lists will be assigned individually to the
472 variables. `$var1`, `$var2`, and `$var3` will be `a`, `b` and `c`; then `d`,
473 `e`, and `f`; and then `g`, `h`, and `i`. For more information, see
474 {file:SASS_REFERENCE.md#each-multi-assign the `@each` reference}.
475
23d34409 »
2014-01-07 Move decrementing @for into the "smaller changes" changelog section.
476 * `@for` loops can now go downward as well as upward. For example,
477 `@for $var from 5 through 1` will set `$var` to `5`, `4`, `3`, `2`,
478 and `1`. Thanks to [Robin Roestenburg](http://twitter.com/robinroest).
479
04fcd6b3 »
2013-07-02 CHANGLELOG entry for value helpers.
480 * There is a new {Sass::Script::Value::Helpers convenience API} for creating
481 Sass values from within ruby extensions.
482
da06d684 »
2013-09-24 Make the if() function work as expected.
483 * The `if()` function now only evaluates the argument corresponding to
484 the value of the first argument.
485
4d79f20d »
2013-10-11 Support trailing commas in lists and maps.
486 * Comma-separated lists may now have trailing commas (e.g. `1, 2,
487 3,`). This also allows you to use a trailing comma to distinguish a
488 list with a single element from that element itself -- for example,
489 `(1,)` is explicitly a list containing the value `1`.
490
b8f4bab0 »
2013-10-11 Bubble unknown nested directives.
491 * All directives that are nested in CSS rules or properties and that
492 contain more CSS rules or properties are now bubbled up through
493 their parent rules.
494
c7e9d1ea »
2014-01-31 Clean up random() and its tests and docs.
495 * A new `random()` function returns a random number.
496
497 * A new function inspect($value) is provided for debugging the current
498 sass representation of a value.
a4bc2e7e »
2013-10-21 Update changelog.
499
625100d0 »
2013-11-22 Changelog cleanups.
500 * The `@debug` directive now automatically inspects sass objects that are not
a4bc2e7e »
2013-10-21 Update changelog.
501 strings.
502
d9ff64ef »
2013-11-22 Don't emit numbers in scientific notation.
503 * Numbers will no longer be emitted in scientific notation.
504
e92c4723 »
2013-12-06 Fix up the internal representation of indented-syntax silent comments.
505 * `sass-convert` will now correctly handle silent (`//`-style) comments
506 contained within loud (`/* */`-style) comments.
507
8030459f »
2014-01-07 Move the changelog entry for mod with units.
508 * Allow modulo arithmetic for numbers with compatible units. Thanks to
509 [Isaac Devine](http://www.devinesystems.co.nz).
510
43e8b370 »
2014-01-31 Preserve hyphens in keyword arguments to mixins in sass-convert.
511 * Keyword arguments to mixins and functions that contain hyphens will have the
512 hyphens preserved when using `sass-convert`.
513
d19e7691 »
2012-09-07 Consider files with the same name to be an error.
514 ### Backwards Incompatibilities -- Must Read!
515
c5e55008 »
2012-12-21 Disallow cross-directive @extends wholesale.
516 * Sass will now throw an error when `@extend` is used to extend a selector
517 outside the `@media` context of the extending selector. This means the
518 following will be an error:
519
520 @media screen {
521 .foo { @extend .bar; }
522 }
523 .bar { color: blue; }
524
6b1a36d5 »
2012-12-21 Throw an error for failing @extends.
525 * Sass will now throw an error when an `@extend` that has no effect is used. The
526 `!optional` flag may be used to avoid this behavior for a single `@extend`.
527
d19e7691 »
2012-09-07 Consider files with the same name to be an error.
528 * Sass will now throw an error when it encounters a single `@import` statement
529 that tries to import more than one file. For example, if you have `@import
530 "screen"` and both `screen.scss` and `_screen.scss` exist, a warning will be
c5e55008 »
2012-12-21 Disallow cross-directive @extends wholesale.
531 printed.
d19e7691 »
2012-09-07 Consider files with the same name to be an error.
532
1560055a »
2013-05-29 Add a changelog entry about the script refactor.
533 * `grey` and `transparent` are no longer interpreted as strings; they're now
534 interpreted as colors, as per the CSS spec.
535
76df5a0c »
2013-05-29 Deprecated: Current working directory on the load path automatically.
536 * The automatic placement of the current working directory onto the Sass
537 load path is now deprecated as this causes unpredictable build
538 processes. If you need the current working directory to be available,
a64a10d1 »
2013-12-11 It is SASS_PATH, not SASSPATH
539 set `SASS_PATH=.` in your shell's environment.
76df5a0c »
2013-05-29 Deprecated: Current working directory on the load path automatically.
540
b1d8381a »
2012-12-21 Remove on_updating_stylesheet.
541 * `Sass::Compiler.on_updating_stylesheet` has been removed.
542
d00211c3 »
2012-12-21 Remove Sass::Plugin.options=.
543 * `Sass::Plugin.options=` has been removed.
544
2da3d3b1 »
2012-12-21 Remove Sass::Script::Number::PRECISION.
545 * `Sass::Script::Number::PRECISION` has been removed.
546
99f544ae »
2013-11-22 Mention some internal code changes that could break sass plugins and …
547 * The methods in the `Sass::Util` module can no longer be used by
548 including it. They must be invoked on the module itself for
549 performance reasons.
550
551 * Sass values have always been immutable. The ruby object that backs
552 each sass value is now "frozen" to prevent accidental modification and
553 for performance.
554
1560055a »
2013-05-29 Add a changelog entry about the script refactor.
555 * Many classes in the \{Sass::Script} have been rearranged. All the value
556 classes have been moved into \{Sass::Script::Value} (e.g.
557 \{Sass::Script::Value::Color}, \{Sass::Script::Value::String}, etc). Their
558 base class is now \{Sass::Script::Value::Base} instead of
559 `Sass::Script::Literal`. All the parse tree classes have been moved into
560 \{Sass::Script::Tree} (e.g. \{Sass::Script::Tree::Node},
561 \{Sass::Script::Tree::Operation}, etc).
562
563 The old names will continue to work for the next couple releases, but they
564 will be removed eventually. Any code using them should upgrade to the new
565 names.
54ea0d46 »
2013-05-08 Add grey to the list of Sass Script colors.
566
7cd0572b »
2013-10-12 Make the first step towards new variable semantics.
567 * As part of a migration to cleaner variable semantics, assigning to
568 global variables in a local context by default is deprecated. If
569 there's a global variable named `$color` and you write `$color:
570 blue` within a CSS rule, Sass will now print a warning; in the
571 future, it will create a new local variable named `$color`. You may
572 now explicitly assign to global variables using the `!global` flag;
573 for example, `$color: blue !global` will always assign to the global
574 `$color` variable.
575
8d3ff3fe »
2014-01-22 Fix the parsing of hyphens with no surrounding whitespace.
576 * Two numbers separated by a hyphen with no whitespace will now be
577 parsed as a subtraction operation rather than two numbers in a list.
578 That is, `2px-1px` will parse the same as `2px - 1px` rather than
579 `2px -1px`.
580
6607785d »
2014-02-21 Make index() return a DeprecatedFalse object rather than null.
581 * `index()`'s `false` return value when a value isn't found is deprecated. In
582 future Sass releases it will be `null` instead, so it should be used in ways
583 that are compatible with both `false` and `null`.
79bad1ff »
2014-01-23 Have index() return null instead of false.
584
605d56ed »
2014-01-23 Merge remote-tracking branch 'JonathanTR/issue-833'
585 * `mix()`'s arguments are now `$color1` and `$color2` rather than
586 `$color-1` and `$color-2`, in keeping with other functions.
587
588 * `comparable()`'s arguments are now `$number1` and `$number2` rather than
589 `$number-1` and `$number-2`, in keeping with other functions.
590
591 * `percentage()`, `round()`, `ceil()`, `floor()`, and `abs()` now
592 take arguments named '$number' instead of '$value'.
593
607608a2 »
2014-03-17 Merge branch 'stable_3_2' into stable
594 ## 3.2.16 (17 March 2014)
0a704835 »
2014-03-17 Update changelog for race condition fix.
595
596 * Handle a race condition in the filesystem cache store when a cache
597 entry becomes invalidated.
598
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
599 ## 3.2.15 (7 March 2014)
4cee8ac4 »
2014-02-28 Fix parent selector resolutions with newlines + commas.
600
601 * Support `&.foo` when the parent selector has a newline followed by a comma.
602
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
603 ## 3.2.14 (24 January 2014)
72721357 »
2014-01-07 Add a changelog entry for da0269e.
604
605 * Don't crash when parsing a directive with no name in the indented syntax.
606
53263e37 »
2014-01-23 Clean up file paths when importing.
607 * Clean up file paths when importing to avoid errors for overlong path
608 names.
609
439db928 »
2014-01-24 Allow functions named `true`, `false`, and `null`.
610 * Parse calls to functions named `true`, `false`, and `null` as function calls.
611
18ed5bcd »
2014-01-24 Be more conservative about moving @imports to the top.
612 * Don't move CSS `@import`s to the top of the file unless it's necessary.
613
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
614 ## 3.2.13 (19 December 2013)
d8ae9b1b »
2013-12-06 Always perform division on numbers returned by functions.
615
616 * Numbers returned by user-defined functions now trigger division, just like
617 numbers stored in variables.
618
59d3e9d5 »
2013-12-06 Properly escape file paths passed to Dir#[] in the FS importer.
619 * Support importing files in paths with open brackets.
620
15e7a9e6 »
2013-12-06 Fix sass-convert with empty CSS rules.
621 * Fix `sass-convert`'s handling of rules with empty bodies when converting from
622 CSS.
623
a6f6bf50 »
2013-12-13 Fix CSS url("...") imports with media queries.
624 * Fix CSS imports using `url()` with a quoted string and media queries.
625
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
626 ## 3.2.12 (4 October 2013)
5976d198 »
2013-10-04 Add a CHANGELOG entry for the require "thread" change.
627
628 * Add a couple missing `require`s, fixing some load errors, especially when
629 using the command-line interface.
630
1c7a50b0 »
2013-10-04 Be a little less aggressive about redundant selector elimination.
631 * Tune up some heuristics for eliminating redundant generated selectors. This
632 will prevent some selector elimination in cases where multi-layered `@extend`
633 is being used and where it seems intuitively like selectors shouldn't be
634 eliminated.
635
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
636 ## 3.2.11 (27 September 2013)
004b1bd4 »
2013-08-02 Teach @extend that pseudo-elements don't work like pseudo-classes.
637
638 * Fix `@extend`'s semantics with respect to pseudo-elements. They are no longer
639 treated identically to pseudo-classes.
5c60410e »
2013-08-12 Revert "Revert "Handle unary minus and plus in lists during convert.""
640
03af20fe »
2013-08-07 CHANGELOG entry for issue #885's fix.
641 * A more understandable error is now provided when the `-E` option is
642 passed to the Sass command line in ruby 1.8
004b1bd4 »
2013-08-02 Teach @extend that pseudo-elements don't work like pseudo-classes.
643
5c60410e »
2013-08-12 Revert "Revert "Handle unary minus and plus in lists during convert.""
644 * Fixed a bug in the output of lists containing unary plus or minus
645 operations during sass <=> scss conversion.
646
adf11a21 »
2013-08-31 Avoid another CSS counters bug on IE7.
647 * Avoid the [IE7 `content: counter` bug][cc bug] with `content: counters` as
648 well.
649
8f5d24c1 »
2013-09-27 Add a changelog entry about thread-safety fixes.
650 * Fix some thread-safety issues.
651
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
652 ## 3.2.10 (26 July 2013)
651c1da2 »
2013-05-31 Use sass_warn for @debug.
653
654 * Use the Sass logger infrastructure for `@debug` directives.
655
b575ad1b »
2013-05-31 Escape "*/" in full exceptions.
656 * When printing a Sass error into a CSS comment, escape `*/` so the comment
657 doesn't end prematurely.
658
0c52f5a0 »
2013-05-31 Preserve the bang in /*! comments.
659 * Preserve the `!` in `/*! ... */`-style comments.
660
16eea67e »
2013-06-07 Fix an @extend trimming bug.
661 * Fix a bug where selectors were being incorrectly trimmed when using `@extend`.
662
7842fc7e »
2013-04-30 Fix --unix-newlines/--in-place not working on Windows.
663 * Fix a bug where `sass --unix-newlines` and `sass-convert --in-place` are not
664 working on Windows (thanks [SATO Kentaro](http://www.ranvis.com)).
665
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
666 ## 3.2.9 (10 May 2013)
5bc67694 »
2013-04-24 Fix a mutability bug.
667
668 * Fix a bug where `@extend`s would occasionally cause a selector to be generated
669 with the incorrect specificity.
670
bea480bd »
2013-05-10 Don't load guard/listen 1.0.
671 * Avoid loading [listen](http://github.com/guard/listen) v1.0, even if it's
672 installed as a Gem (see [issue 719](https://github.com/nex3/sass/issues/719)).
673
d7277c49 »
2013-05-10 Update the vendored listen to 0.7.3.
674 * Update the bundled version of [listen](http://github.com/guard/listen) to
675 0.7.3.
676
1556fe28 »
2013-05-10 Avoid IE7's content: counter bug.
677 * Automatically avoid the [IE7 `content: counter` bug][cc bug].
678
679 [cc bug]: http://jes.st/2013/ie7s-css-breaking-content-counter-bug/
680
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
681 ## 3.2.8 (22 April 2013)
5ce407b9 »
2013-03-22 Merge remote-tracking branch 'origin/stable' into stable
682
683 * Fix some edge cases where redundant selectors were emitted when using
684 `@extend`.
685
ff67c3de »
2013-03-22 Fix a list parsing bug.
686 * Fix a bug where comma-separated lists with interpolation could lose elements.
687
5f4c6c93 »
2013-04-17 Fix a list conversion bug.
688 * Fix a bug in `sass-convert` where lists being passed as arguments to functions
689 or mixins would lose their surrounding parentheses.
690
9571704e »
2013-04-18 Fix conversion of null.
691 * Fix a bug in `sass-convert` where `null` wasn't being converted correctly.
692
b2864aad »
2013-04-17 Fix a bug where multiple spaces in a string literal would sometimes b…
693 * Fix a bug where multiple spaces in a string literal would sometimes be folded
694 together.
695
a7bdf612 »
2013-04-17 Don't open a file for writing until we have something to write to it.
696 * `sass` and `sass-convert` won't create an empty file before writing to it.
697 This fixes a flash of unstyled content when using LiveReload and similar
698 tools.
699
563158ba »
2013-04-19 Fix an invalid mixin-loop report.
700 * Fix a case where a corrupted cache could produce fatal errors on some versions
701 of Ruby.
702
703 * Fix a case where a mixin loop error would be incorrectly reported when using
704 `@content`.
f7d8f353 »
2013-04-17 Always return nil in case of errors in cache store/retrieve.
705
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
706 ## 3.2.7 (8 March 2013)
ba45f7b8 »
2013-02-25 Allow index() and zip() to take single-item lists.
707
708 * The \{Sass::Script::Functions#index `index`} and \{Sass::Script::Functions#zip
709 `zip`} functions now work like all other list functions and treat individual
710 values as single-element lists.
711
0e6155f8 »
2013-02-25 Don't use recursion when parsing arglists.
712 * Avoid stack overflow errors caused by very long function or mixin argument
713 lists.
714
5ba41b6f »
2013-02-25 Emit relative paths when using --line-numbers.
715 * Emit relative paths when using the `--line-comments` flag of the `sass`
716 executable.
717
e7bd7963 »
2013-03-07 Fix an exponential-parsing bug.
718 * Fix a case where very long numbers would cause the SCSS parser to
719 take exponential time.
3700884c »
2013-03-04 Fix minimum-specificity calculation when trimming @extend output.
720
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
721 ## 3.2.6 (22 February 2013)
381625b2 »
2013-01-11 Fix ArgumentError handling on Rubinius.
722
0955e971 »
2013-02-01 Add a changelog entry about Rubinius stuff.
723 * Support for Rubinius 2.0.0.rc1. All tests pass in 1.8 mode. 1.9 mode has some
724 tests blocked on [Rubinius issue
725 2139](https://github.com/rubinius/rubinius/issues/2139).
381625b2 »
2013-01-11 Fix ArgumentError handling on Rubinius.
726
0e50859e »
2013-01-11 Support JRuby 1.7.
727 * Support for JRuby 1.7.2.
728
75479e40 »
2013-01-11 Mention previous commit in the changelog.
729 * Support for symlinked executables. Thanks to [Yin-So
730 Chen](http://yinsochen.com/).
731
68d4805c »
2013-02-22 Bubble @supports in the indented syntax.
732 * Support for bubbling `@supports` queries in the indented syntax.
733
fbcb3c52 »
2013-02-22 Fix @extend in nested @media queries.
734 * Fix an incorrect warning when using `@extend` from within nested `@media`
735 queries.
736
245bddfd »
2013-02-22 Update listen to 0.7.2.
737 * Update the bundled version of [listen](http://github.com/guard/listen) to
738 0.7.2.
739
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
740 ## 3.2.5 (4 January 2013)
88f1719f »
2012-12-28 Don't generate bogus @extend warnings.
741
742 * Fix a bug where bogus `@extend` warnings were being generated.
743
3ed77ef7 »
2013-01-05 @import 'file' on windows fails with more than 1 subdir in the path
744 * Fix an `@import` bug on Windows. Thanks to [Darryl
745 Miles](https://github.com/dlmiles).
746
d2d40ed4 »
2013-01-04 Add a changelog entry about Ruby 2.0.0 compatibility.
747 * Ruby 2.0.0-preview compatibility. Thanks to [Eric
748 Saxby](http://www.livinginthepast.org/).
749
ba7bd68b »
2013-01-04 Fix indented syntax line numbering with DOS lines.
750 * Fix incorrect line numbering when using DOS line endings with the indented
751 syntax.
752
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
753 ## 3.2.4 (21 December 2012)
9c955387 »
2012-11-29 Strip out './' when looking up relative @imports.
754
755 * Fix imports from `.jar` files in JRuby. Thanks to [Alex
756 Hvostov](https://github.com/argv-minus-one).
757
e8c11472 »
2012-12-21 Support comments within @imports in SCSS.
758 * Allow comments within `@import` statements in SCSS.
759
bfc48038 »
2012-12-21 Fix an exponential parsing bug.
760 * Fix a parsing performance bug where long decimals would occasionally take many
761 minutes to parse.
762
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
763 ## 3.2.3 (9 November 2012)
7b9a61b0 »
2012-11-09 Fix sass --watch with deleted files.
764
765 * `sass --watch` no longer crashs when a file in a watched directory is deleted.
766
b5ff11c0 »
2012-11-09 Fix @extend in bubbling @media.
767 * Allow `@extend` within bubbling nodes such as `@media`.
768
10296378 »
2012-11-09 Add a changelog entry about JRuby changes.
769 * Fix various JRuby incompatibilities and test failures.
770
0ba3109a »
2012-11-09 Work around #495
771 * Work around a performance bug that arises from using `@extend` with
772 deeply-nested selectors.
773
00004e64 »
2014-03-07 Add dates to CHANGELOG release entries.
774 ## 3.2.2 (2 November 2012)
c1c50b76 »
2012-09-07 Add a `--poll` command-line flag to force a polling backend.
775
776 * Add a `--poll` option to force `sass --watch` to use the polling backend to
777 [Listen](https://github.com/guard/listen).
778
26846f0b »
2012-09-07 Make sure @import errors have the correct line and file info.
779 * Fix some error reporting bugs related to `@import`.
780
6b30c51a »
2012-11-02 Fix a CHANGELOG bug.
781 * Treat [protocol-relative URLs][pru] in `@import`s as static URLs, just like
3fc92792 »
2012-09-07 Support protocol-relative URLs.
782 `http` and `https` URLs.
783
50a7b8c1 »
2012-10-12 Improve the error message for misplaced simple selectors.
784 * Improve the error message for misplaced simple selectors.
785
1a2af8aa »
2012-11-01 Fix an option-handling bug.
786 * Fix an option-handling bug that was causing errors with the Compass URL
787 helpers.
788
527e2f4a »
2012-08-20 Fix a Rails perf issue.
789 * Fix a performance issue with `@import` that only appears when
790 ActiveSupport is loaded.
791
3815575f »
2013-07-02 Cleanup YARD documentation.
792 * Fix flushing of actions to stdout. Thanks to
793 [Russell Davis](http://github.com/russelldavis).
527e2f4a »
2012-08-20 Fix a Rails perf issue.
794
03be7d3e »
2012-11-02 Fix the examples for max().
795 * Fix the documentation for the `max()` function.
796
47483ae7 »
2012-11-02 Fix a @media parsing bug.
797 * Fix a `@media` parsing bug.
798
3fc92792 »
2012-09-07 Support protocol-relative URLs.
799 [pru]: http://paulirish.com/2010/the-protocol-relative-url/
800
6cc01962 »
2012-09-07 Print a warning for ambiguous @imports.
801 ### Deprecations -- Must Read!
802
803 * Sass will now print a warning when it encounters a single `@import` statement
804 that tries to import more than one file. For example, if you have `@import
805 "screen"` and both `screen.scss` and `_screen.scss` exist, a warning will be
806 printed. This will become an error in future versions of Sass.
807
78c02f95 »
2012-08-15 Bump VERSION to 3.2.1.
808 ## 3.2.1 (15 August 2012)
3629c3b9 »
2012-08-15 Add a changelog entry now that the previous commit is confirmed to fi…
809
810 * Fix a buggy interaction with Pow and Capybara that caused `EOFError`s.
811
40b3181d »
2012-08-10 Bump VERSION to 3.2.0.
812 ## 3.2.0 (10 August 2012)
7a31fea5 »
2011-08-10 Disallow `&foo` wholesale.
813
911e3bcc »
2012-01-04 Move the @content changelog docs into their own subsection.
814 ### `@content`
8ee5a8c9 »
2011-09-10 More docs on passing style blocks to mixins.
815
911e3bcc »
2012-01-04 Move the @content changelog docs into their own subsection.
816 A mixin include can now accept a block of content ({file:SASS_REFERENCE.md#mixin-content Reference Documentation}).
817 The style block will be passed to the mixin and can be placed at the point @content is used. E.g.:
a5746f38 »
2012-02-08 Add Sass::Script::Functions#ie_hex_str.
818
911e3bcc »
2012-01-04 Move the @content changelog docs into their own subsection.
819 @mixin iphone {
8ee5a8c9 »
2011-09-10 More docs on passing style blocks to mixins.
820 @media only screen and (max-width: 480px) {
911e3bcc »
2012-01-04 Move the @content changelog docs into their own subsection.
821 @content;
8ee5a8c9 »
2011-09-10 More docs on passing style blocks to mixins.
822 }
911e3bcc »
2012-01-04 Move the @content changelog docs into their own subsection.
823 }
a5746f38 »
2012-02-08 Add Sass::Script::Functions#ie_hex_str.
824
911e3bcc »
2012-01-04 Move the @content changelog docs into their own subsection.
825 @include iphone {
826 body { color: red }
827 }
828
829 Or in `.sass` syntax:
830
831 =iphone
832 @media only screen and (max-width: 480px)
833 @content
a5746f38 »
2012-02-08 Add Sass::Script::Functions#ie_hex_str.
834
911e3bcc »
2012-01-04 Move the @content changelog docs into their own subsection.
835 +iphone
836 body
837 color: red
838
839 Produces:
840
841 @media only screen and (max-width: 480px) {
842 body { color: red }
843 }
844
845 Note that the contents passed to the mixin are evaluated in the scope they are used,
846 not the scope of the mixin. {file:SASS_REFERENCE.md#variable_scope_and_content_blocks More on variable scoping.}
7a31fea5 »
2011-08-10 Disallow `&foo` wholesale.
847
f1dc2849 »
2012-01-04 Add changelog docs for placeholder selectors.
848 ### Placeholder Selectors: `%foo`
849
850 Sass supports a new, special type of selector called a "placeholder selector".
851 These look like class and id selectors, except the `#` or `.` is replaced by `%`.
852 They're meant to be used with the {file:SASS_REFERENCE.md#extend `@extend` directive},
853 when you want to write styles to be extended
854 but you don't want the base styles to appear in the CSS.
855
856 On its own, a placeholder selector just causes a ruleset not to be rendered.
857 For example:
858
859 // This ruleset won't be rendered on its own.
860 #context a%extreme {
861 color: blue;
862 font-weight: bold;
863 font-size: 2em;
864 }
865
866 However, placeholder selectors can be extended, just like classes and ids.
867 The extended selectors will be generated, but the base placeholder selector will not.
868 For example:
869
870 .notice { @extend %extreme; }
871
872 Is compiled to:
873
874 #context a.notice {
875 color: blue;
876 font-weight: bold;
877 font-size: 2em;
878 }
879
d4e07b62 »
2012-08-10 Add a changelog entry for variable arguments.
880 ### Variable Arguments
881
882 Mixins and functions now both support variable arguments. When defining a mixin
883 or function, you can add `...` after the final argument to have it accept an
884 unbounded number of arguments and package them into a list. When calling a mixin
885 or function, you can add `...` to expand the final argument (if it's a list) so
886 that each value is passed as a separate argument. For example:
887
888 @mixin box-shadow($shadows...) {
889 // $shadows is a list of all arguments passed to box-shadow
890 -moz-box-shadow: $shadows;
891 -webkit-box-shadow: $shadows;
892 box-shadow: $shadows;
893 }
894
895 // This is the same as "@include spacing(1, 2, 3);"
896 $values: 1, 2, 3;
897 @include spacing($values...);
898
899 Finally, if a variable argument list is passed directly on to another mixin or
900 function, it will also pass along any keyword arguments. This means that you can
901 wrap a pre-existing mixin or function and add new functionality without changing
902 the call signature.
903
c56ecdb7 »
2012-01-18 Changelog entries.
904 ### Directive Interpolation
905
906 `#{}` interpolation is now allowed in all plain CSS directives
907 (such as `@font-face`, `@keyframes`, and of course `@media`).
908
909 In addition, `@media` gets some special treatment.
910 In addition to allowing `#{}` interpolation,
f19a88c0 »
2012-03-09 Disable "@media $var".
911 expressions may be used directly in media feature queries.
c56ecdb7 »
2012-01-18 Changelog entries.
912 This means that you can write e.g.:
913
914 $media: screen;
915 $feature: -webkit-min-device-pixel-ratio;
916 $value: 1.5;
917
f19a88c0 »
2012-03-09 Disable "@media $var".
918 @media #{$media} and ($feature: $value) {
c56ecdb7 »
2012-01-18 Changelog entries.
919 ...
920 }
921
922 This is intended to allow authors to easily write mixins
923 that make use of `@media` and other directives dynamically.
924
fe994971 »
2012-02-17 Restructure the changelog a little.
925 ### Smaller Improvements
516a0c54 »
2011-09-12 Support :any.
926
9b1820a2 »
2012-07-20 Allow mixins and functions to be defined in nested contexts.
927 * Mixins and functions may now be defined in a nested context, for example
928 within `@media` rules. This also allows files containing them to be imported
929 in such contexts.
930
fe994971 »
2012-02-17 Restructure the changelog a little.
931 * Previously, only the `:-moz-any` selector was supported; this has been
932 expanded to support any vendor prefix, as well as the plain `:any` selector.
516a0c54 »
2011-09-12 Support :any.
933
01d62fa8 »
2012-06-29 Mention CSS4 selector support in the changelog.
934 * All proposed [CSS4 selectors](http://dev.w3.org/csswg/selectors4/) are now
935 supported, including reference selectors (e.g. `.foo /attr/ .bar`) and subject
936 selectors (e.g. `.foo!`).
937
fe994971 »
2012-02-17 Restructure the changelog a little.
938 * Sass now supports a global list of load paths, accessible via
939 {Sass.load_paths}. This allows plugins and libraries to easily register their
940 Sass files such that they're accessible to all {Sass::Engine} instances.
5c93cbfe »
2011-12-16 Add Sass.load_paths.
941
83bc9892 »
2013-03-12 Update SASS_CHANGELOG.md: missing space
942 * `Sass.load_paths` is initialized to the value of the `SASS_PATH` environment
fe994971 »
2012-02-17 Restructure the changelog a little.
943 variable. This variable should contain a colon-separated list of load paths
944 (semicolon-separated on Windows).
5c93cbfe »
2011-12-16 Add Sass.load_paths.
945
db51415a »
2012-02-17 Don't generate redundant selectors with multiple extends in an extender.
946 * In certain cases, redundant selectors used to be created as a result of a
947 single rule having multiple `@extend`s. That redundancy has been eliminated.
948
8f4869e6 »
2012-03-14 Eliminate more @extend output redundancy.
949 * Redundant selectors were also sometimes created by nested selectors
950 using `@extend`. That redundancy has been eliminated as well.
951
fe994971 »
2012-02-17 Restructure the changelog a little.
952 * There is now much more comprehensive support for using `@extend` alongside
953 CSS3 selector combinators (`+`, `~`, and `>`). These combinators will now be
954 merged as much as possible.
7e975745 »
2011-12-16 Support the SASS_PATH environment variable.
955
fe994971 »
2012-02-17 Restructure the changelog a little.
956 * The full set of [extended color keywords](http://www.w3.org/TR/css3-color/#svg-color)
957 are now supported by Sass. They may be used to refer to color objects, and
958 colors will render using those color names when appropriate.
7e975745 »
2011-12-16 Support the SASS_PATH environment variable.
959
fe994971 »
2012-02-17 Restructure the changelog a little.
960 * Sass 3.2 adds the \{Sass::Script::Functions#ie_hex_str `ie-hex-str`} function
961 which returns a hex string for a color suitable for use with IE filters.
08a73990 »
2012-02-09 Some changes to ie-hex-str.
962
40099dad »
2012-03-01 Add min and max functions.
963 * Sass 3.2 adds the \{Sass::Script::Functions#min `min`} and
964 \{Sass::Script::Functions#max `max`} functions, which return the minimum and
965 maximum of several values.
966
6efc235e »
2012-05-04 Make keyword argument parsing stricter.
967 * Sass functions are now more strict about how keyword arguments can be passed.
968
edc2634b »
2012-07-13 Add two more digits of decimal precision.
969 * Decimal numbers now default to five digits of precision after the decimal
970 point.
971
3815575f »
2013-07-02 Cleanup YARD documentation.
972 * The \{Sass::Script::Functions::EvaluationContext#options options hash}
e36aedc9 »
2012-07-27 Have EvaluationContext.options[:filename] give the current file.
973 available to Sass functions now contains the filename of the file that the
974 function was executed in, rather than the top-level file.
975
7a31fea5 »
2011-08-10 Disallow `&foo` wholesale.
976 ### Backwards Incompatibilities -- Must Read!
977
1d777746 »
2012-07-13 Document @extend warnings.
978 #### `@extend` Warnings
979
980 Any `@extend` that doesn't match any selectors in the document will now print a
981 warning. These warnings will become errors in future versions of Sass. This will
982 help protect against typos and make it clearer why broken styles aren't working.
983 For example:
984
985 h1.notice {color: red}
986 a.important {@extend .notice}
987
988 This will print a warning, since the only use of `.notice` can't be merged with
989 `a`.
990
991 You can declare that you don't want warnings for a specific `@extend` by using
992 the `!optional` flag. For example:
993
994 h1.notice {color: red}
995 a.important {@extend .notice !optional}
996
997 This will not print a warning.
998
999 #### Smaller Incompatibilities
1000
7a31fea5 »
2011-08-10 Disallow `&foo` wholesale.
1001 * Parent selectors followed immediately by identifiers (e.g. `&foo`)
1002 are fully disallowed.
1003 They were deprecated in 3.1.8.
1004
870d200f »
2011-10-04 Get rid of //! and allow #{} in comments everywhere.
1005 * `#{}` interpolation is now allowed in all comments.
1006
1007 * The `!` flag may not be used with `//` comments (e.g. `//!`).
1008
c56ecdb7 »
2012-01-18 Changelog entries.
1009 * `#{}` interpolation is now disallowed in all `@import` statements
1010 except for those using `url()`.
1011
0db3cb6c »
2012-07-20 Disable less support for sass-convert.
1012 * `sass-convert` no longer supports converting files from LessCSS.
1013
287abb9d »
2012-08-10 Bump VERSION to 3.1.21.
1014 ## 3.1.21 (10 August 2012)
1dc03211 »
2012-07-13 Update vendor/listen.
1015
34059b24 »
2012-07-13 Preserve single-line comments in multi-line comments.
1016 * Preserve single-line comments that are embedded within multi-line comments.
644da825 »
2012-07-27 Preserve newlines in nested selectors.
1017 * Preserve newlines in nested selectors when those selectors are used multiple
1018 times in the same document.
4d615d61 »
2012-07-27 Don't die when running tests with LANG=.
1019 * Allow tests to be run without the `LANG` environment variable set.
1dc03211 »
2012-07-13 Update vendor/listen.
1020 * Update the bundled version of [Listen](https://github.com/guard/listen) to
1021 0.4.7.
a241c3bd »
2012-08-07 Mention px conversions in the changelog.
1022 * Sass will now convert `px` to other absolute units using the
1023 conversion ratio of `96px == 1in` as dictated by the
1024 [CSS Spec](http://www.w3.org/TR/CSS21/syndata.html#length-units)
1dc03211 »
2012-07-13 Update vendor/listen.
1025
02947c98 »
2012-06-29 Bump VERSION to 3.1.20.
1026 ## 3.1.20
3bd21ab9 »
2012-06-15 Add a changelog entry for previous commit.
1027
1028 * Don't crash if a UTF encoding isn't found. Thanks to [Andrew
1029 Garbutt](http://github.com/techsplicer).
a6db98c0 »
2012-06-22 Add a changelog entry for previous.
1030 * Properly watch files recursively with `sass --watch`. Thanks to [Sébastien
1031 Tisserant](https://github.com/sebweaver).
7b6b0016 »
2012-06-29 Fix append() docs.
1032 * Fix the documentation for the \{Sass::Script::Functions#append append()}
1033 function.
219ce6d3 »
2012-06-29 Support Filter Effects versions of opacity and invert as well.
1034 * Support the `saturate()`, `opacity()`, and `invert()` functions when used as
1035 in the [Filter Effects][filter] spec.
e7029617 »
2012-06-29 Add a changelog entry for previous.
1036 * Support MacRuby. Thanks to [Will Glynn](http://github.com/delta407).
26bdc20c »
2012-06-29 Clean up #saturate docs.
1037
1038 [filter]: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
3bd21ab9 »
2012-06-15 Add a changelog entry for previous commit.
1039
609fb94e »
2012-05-25 Bump VERSION to 3.1.19.
1040 ## 3.1.19
553f0e0d »
2012-05-18 Fix a constant-resolution error.
1041
1042 * Fix an `uninitialized constant Sass::Exec::Sass::Util` error when using the
1043 command-line tool.
7608f2ba »
2012-05-25 Document new @extend-in-directive semantics.
1044 * Allow `@extend` within directives such as `@media` as long as it only extends
1045 selectors that are within the same directive.
553f0e0d »
2012-05-18 Fix a constant-resolution error.
1046
f0c840f0 »
2012-05-11 Bump VERSION to 3.1.18.
1047 ## 3.1.18
a3b1b452 »
2012-05-05 Check for private visitor methods.
1048
1049 * Ruby 2.0 compatibility. Thanks to [Jeremy
1050 Kemper](https://github.com/jeremy).
1051
99d88363 »
2012-05-11 Deprecate @extend within @media.
1052 ### Deprecations -- Must Read!
1053
1054 * Deprecate the use of `@extend` within directives such as `@media`. This has
1055 never worked correctly, and now it's officially deprecated. It will be an
1056 error in 3.2.
1057
62e38c1c »
2012-05-04 Bump VERSION to 3.1.17.
1058 ## 3.1.17
60a9db36 »
2012-04-27 Fix Tree#inspect on Ruby 1.9.
1059
1060 * Don't crash when calling `#inspect` on an internal Sass tree object in Ruby
1061 1.9.
ca4ad920 »
2012-05-04 Use my listen repo for the time being.
1062 * Fix some bugs in `sass --watch` introduced in 3.1.16. Thanks to [Maher
0a2eafd8 »
2012-04-27 Fix the Listen plugin.
1063 Sallam](https://github.com/Maher4Ever).
7536aee0 »
2012-05-04 Merge remote branch 'origin/stable' into stable
1064 * Support bare interpolation in the value portion of attribute
1065 selectors (e.g. `[name=#{$value}]`).
1066 * Support keyword arguments for the `invert()` function.
3ee34110 »
2012-05-04 Fix Dir.glob with backslash paths on Windows.
1067 * Handle backslash-separated paths better on Windows.
339d325a »
2012-05-04 Fix rake package/install on Ruby 1.9.
1068 * Fix `rake install` on Ruby 1.9.
cb84d9f1 »
2012-05-04 Fix nested @if conversion.
1069 * Properly convert nested `@if` statements with `sass-convert`.
60a9db36 »
2012-04-27 Fix Tree#inspect on Ruby 1.9.
1070
425a472c »
2012-04-20 Bump VERSION to 3.1.16.
1071 ## 3.1.16
1cbf18c8 »
2012-02-17 Properly parse selectors in css2sass.
1072
1073 * Fix some bugs in `sass-convert` selector parsing when converting from CSS.
abe0981e »
2012-02-17 Big improvement to perf on 1.8.
1074 * Substantially improve compilation performance on Ruby 1.8.
9a039533 »
2012-03-01 Support @-moz-document.
1075 * Support the `@-moz-document` directive's non-standard `url-prefix` and
1076 `domain` function syntax.
b0367a31 »
2012-03-01 Support @supports.
1077 * Support the [`@supports` directive](http://www.w3.org/TR/css3-conditional/#at-supports).
a69ebc64 »
2012-03-28 Fix a perf bug with CommentNode#normalize_indentation.
1078 * Fix a performance issue when using `/*! */` comments with the Rails asset
1079 pipeline.
1c759820 »
2012-04-20 Support -moz-element.
1080 * Support `-moz-element`.
09134ca6 »
2012-04-20 Properly convert empty lists.
1081 * Properly handle empty lists in `sass-convert`.
91f55532 »
2012-04-20 Move from FSSM -> guard/listen.
1082 * Move from [FSSM](https://github.com/ttilley/fssm) to
1083 [Listen](https://github.com/guard/listen) for file-system monitoring.
1cbf18c8 »
2012-02-17 Properly parse selectors in css2sass.
1084
8a7194a2 »
2012-02-09 Bump VERSION to 3.1.15.
1085 ## 3.1.15
dd594c3b »
2012-02-09 Officially support "@extend .foo, .bar".
1086
1087 * Support extending multiple comma-separated selectors (e.g. `@extend .foo, .bar`).
1088 This is just a terser way to write multiple `@extend`s
1089 (e.g. `@extend .foo; @extend .bar`).
1090 This wasn't previously intended to work, but it did in the indented syntax only.
70dddf1f »
2012-02-09 Fix an import loop stack overflow in StalenessChecker.
1091 * Avoid more stack overflows when there are import loops in files.
b5316b4d »
2012-02-09 Update FSSM to 0.2.8.1.
1092 * Update the bundled [FSSM](https://github.com/ttilley/fssm) to version 0.2.8.1.
cf995b48 »
2012-02-09 Fix grayscale with -webkit-filter.
1093 * Make the `grayscale` function work with `-webkit-filter`.
75ada6c5 »
2012-02-09 Fix error for "/ foo" in Sass.
1094 * Provide a better error message for selectors beginning with `/`
1095 in the indented syntax.
78968ffd »
2012-02-09 Note sass --watch flushing in the changelog.
1096 * Flush standard output after printing notifications in `sass --watch`.
cefa6071 »
2012-02-09 Fix the REPL.
1097 * Fix variable definitions in the REPL.
dd594c3b »
2012-02-09 Officially support "@extend .foo, .bar".
1098
445559d0 »
2012-02-05 Bump VERSION to 3.1.14.
1099 ## 3.1.14
55cab69e »
2012-02-05 Fix a dumb bug.
1100
1101 * Fix a typo that was causing crashes on Ruby 1.9.
1102
d5dab66a »
2012-02-03 Bump VERSION to 3.1.13.
1103 ## 3.1.13
0e292ddb »
2012-01-05 Use the multibyte scanner pervasively.
1104
1105 * Fix a smattering of subtle bugs that would crop up when using multibyte
1106 character sets.
619b168f »
2012-01-13 Properly handle initial operators when extending selectors.
1107 * Fix a bug when using `@extend` with selectors containing newlines.
b7bde563 »
2012-01-25 Short-circuiting boolean ops.
1108 * Make boolean operators short-circuit.
d688c567 »
2012-01-25 Remove excess selector whitespace under :compressed.
1109 * Remove unnecessary whitespace in selectors in `:compressed` mode.
ed2247a5 »
2012-01-25 Don't put debug info in unknown directives.
1110 * Don't output debug info within non-`@media` directives.
ad70200e »
2011-09-22 Fix :after and :before with @extend.
1111 * Make sure `:after` and `:before` selectors end up on the end of
1112 selectors resulting from `@extend`.
26e03807 »
2012-02-02 Escape cache filenames so they don't break on Windows.
1113 * Fix a bug when using imports containing invalid path characters on Windows.
f0ca6ba8 »
2012-02-02 Bubble up CSS @imports.
1114 * Bubble CSS `@import` statements to the top of stylesheets.
ad70200e »
2011-09-22 Fix :after and :before with @extend.
1115
fb5cb050 »
2011-12-16 Bump VERSION to 3.1.12.
1116 ## 3.1.12
4c2bb22a »
2011-12-08 Add a changelog entry about mathn compatibility.
1117
17c5b268 »
2011-12-16 Changelog formatting.
1118 * Compatibility with the `mathn` library
1119 (thanks to [Thomas Walpole](https://github.com/twalpole)).
645d1705 »
2011-12-16 Fix some infinite mixin loops.
1120 * Fix some infinite loops with mixins that were previously uncaught.
9ffd9aff »
2011-12-16 Catch infinite import loops.
1121 * Catch infinite `@import` loops.
39e7ee72 »
2011-12-14 Use on_updated_stylesheet instead of on_updating_stylesheet in Exec
1122 * Fix a deprecation warning in `sass --update` and `--watch`
1123 (thanks to [Marcel Köppen](https://github.com/Marzelpan)).
dcf37c8a »
2011-12-16 Don't make $important special.
1124 * Don't make `$important` a special pre-initialized variable.
8a2a5d32 »
2011-12-16 Avoid exponential parsing times.
1125 * Fix exponential parsing time of certain complex property values and selectors.
5191c208 »
2011-12-16 Fix @media bubbling with commas.
1126 * Properly merge `@media` directives with comma-separated queries.
1127 E.g. `@media foo, bar { @media baz { ... } }` now becomes
1128 `@media foo and baz, bar and baz { ... }`.
9ffd9aff »
2011-12-16 Catch infinite import loops.
1129
4a1a0d1a »
2011-11-28 Bump VERSION to 3.1.11.
1130 ## 3.1.11
8492ac6e »
2011-11-23 Add a bunch of changelog entries.
1131
1132 * Allow control directives (such as `@if`) to be nested beneath properties.
d5ec0586 »
2011-11-23 Allow interpolation to come immediately after a hyphen in identifiers.
1133 * Allow property names to begin with a hyphen followed by interpolation (e.g. `-#{...}`).
5ef3a3b5 »
2011-11-23 Fix an interpolation parsing bug.
1134 * Fix a parsing error with interpolation in comma-separated lists.
8492ac6e »
2011-11-23 Add a bunch of changelog entries.
1135 * Make `--cache-store` with with `--update`.
1136 * Properly report `ArgumentError`s that occur within user-defined functions.
1137 * Don't crash on JRuby if the underlying Java doesn't support every Unicode encoding.
602b4ec9 »
2011-11-23 Clean up the changelog a little.
1138 * Add new `updated_stylesheet` callback, which is run after each stylesheet has
1139 been successfully compiled. Thanks to [Christian Peters](https://github.com/ChristianPeters).
fc056d77 »
2011-11-23 Fix absolute path handling by the Filesystem importer.
1140 * Allow absolute paths to be used in an importer with a different root.
cc73198e »
2011-11-23 Don't destructively modify options with force_update.
1141 * Don't destructively modify the options when running `Sass::Plugin.force_update`.
f6bf1b8f »
2011-12-16 Stylistic consistency in Changelog.
1142 * Prevent Regexp buffer overflows when parsing long strings
1143 (thanks to [Agworld](https://github.com/Agworld).
8492ac6e »
2011-11-23 Add a bunch of changelog entries.
1144
602b4ec9 »
2011-11-23 Clean up the changelog a little.
1145 ### Deprecations -- Must Read!
1146
1147 * The `updating_stylesheet` is deprecated and will be removed in a
1148 future release. Use the new `updated_stylesheet` callback instead.
deb52e24 »
2011-10-03 Merge branch 'stable' of https://github.com/nex3/sass into stable_wit…
1149
d09db8d0 »
2011-10-06 Bump VERSION to 3.1.10.
1150 ## 3.1.10
ace0a818 »
2011-10-06 Ensure that errors get thrown when necessary.
1151
1152 * Fix another aspect of the 3.1.8 regression relating to `+`.
1153
943dc1d5 »
2011-10-06 Bump VERSION to 3.1.9.
1154 ## 3.1.9
08405459 »
2011-10-04 Fix + combinator.
1155
1156 * Fix a regression in 3.1.8 that broke the `+` combinator in selectors.
1157
c232c674 »
2011-10-04 Deprecate //!.
1158 * Deprecate the loud-comment flag when used with silent comments (e.g. `//!`).
1159 Using it with multi-line comments (e.g. `/*!`) still works.
1160
58ad24d5 »
2011-09-30 Bump VERSION to 3.1.8.
1161 ## 3.1.8
face3172 »
2011-08-10 Disallow selectors of the form `&foo`.
1162
b802103d »
2011-08-10 Deprecate `&foo` rather than disallowing it wholesale.
1163 * Deprecate parent selectors followed immediately by identifiers (e.g. `&foo`).
face3172 »
2011-08-10 Disallow selectors of the form `&foo`.
1164 This should never have worked, since it violates the rule
1165 of `&` only being usable where an element selector would.
1166
7ded1830 »
2011-08-10 Add a --force option to force the update of CSS files.
1167 * Add a `--force` option to the `sass` executable which makes `--update`
1168 always compile all stylesheets, even if the CSS is newer.
1169
70e88a9d »
2011-08-10 Disallow semicolons in Sass @imports.
1170 * Disallow semicolons at the end of `@import` directives in the indented syntax.
1171
878cd7c5 »
2011-08-10 Require FileUtils where it's used.
1172 * Don't error out when being used as a library without requiring `fileutil`.
1173
2a4c1f25 »
2011-08-17 Add a changelog entry for previous commit.
1174 * Don't crash when Compass-style sprite imports are used with `StalenessChecker`
1175 (thanks to [Matthias Bauer](https://github.com/moeffju)).
1176
43097d81 »
2011-08-29 New CLI option --precision to set the precision of numeric output.
1177 * The numeric precision of numbers in Sass can now be set using the
1178 `--precision` option to the command line. Additionally, the default
1179 number of digits of precision in Sass output can now be
1180 changed by setting `Sass::Script::Number.precision` to an integer
1181 (defaults to 3). Since this value can now be changed, the `PRECISION`
1182 constant in `Sass::Script::Number` has been deprecated. In the unlikely
1183 event that you were using it in your code, you should now use
1184 `Sass::Script::Number.precision_factor` instead.
1185
c37558a3 »
2011-09-12 Don't die on double-comma selectors in sass-convert.
1186 * Don't crash when running `sass-convert` with selectors with two commas in a row.
1187
2bf1e1a8 »
2011-08-31 Require Ruby >= 1.8.7
1188 * Explicitly require Ruby >= 1.8.7 (thanks [Eric Mason](https://github.com/ericmason)).
1189
ec1346f4 »
2011-09-16 Validate nesting in imports.
1190 * Properly validate the nesting of elements in imported stylesheets.
1191
62b190ad »
2011-09-29 Properly watch/updates files with "..".
1192 * Properly compile files in parent directories with `--watch` and `--update`.
1193
5fc56f3b »
2011-09-30 The method is named "visit_mixindef", not "visit_mixin_def".
1194 * Properly null out options in mixin definitions before caching them. This fixes
1195 a caching bug that has been plaguing some Rails 3.1 users.
1196
b0315967 »
2011-08-04 Bump VERSION to 3.1.7.
1197 ## 3.1.7
404f980a »
2011-08-04 Make Sass::Tree::Function#args writeable.
1198
1199 * Don't crash when doing certain operations with `@function`s.
1200
1b4f6813 »
2011-07-25 When single line comments are not enough information, you can now ena…
1201 ## 3.1.6
1202
1203 * The option `:trace_selectors` can now be used to emit a full trace
1204 before each selector. This can be helpful for in-browser debugging of
1205 stylesheet imports and mixin includes. This option supersedes the
1206 `:line_comments` option and is superseded by the `:debug_info`
1207 option.
1208
b2d55a93 »
2011-08-02 Document recent change.
1209 * Fix a bug where long `@if`/`@else` chains would cause exponential slowdown
1210 under some circumstances.
1211
a337839e »
2011-07-25 Bump VERSION to 3.1.5.
1212 ## 3.1.5
435ee255 »
2011-07-25 Update the vendored FSSM version.
1213
1214 * Updated the vendored FSSM version, which will avoid segfaults on OS
1215 X Lion when using `--watch`.
1216
e813a76a »
2011-07-02 Clear out options before cache and restore them afterwards.
1217 ## 3.1.4
1218
1219 * Sass no longer unnecessarily caches the sass options hash.
1220 This allows objects that cannot be marshaled to be placed into the
1221 options hash.
1222
17241f24 »
2011-06-19 Update changelog
1223 ## 3.1.3
1224
1225 * Sass now logs message thru a logger object which can be changed to
1226 provide integration with other frameworks' logging infrastructure.
1227
1228
d0ee2eec »
2011-05-29 Update CHANGELOG for 3.1.2
1229 ## 3.1.2
1230
1231 * Fix some issues that were breaking Sass when running within Rubinius.
1232 * Fix some issues that were affecting Rails 3.1 integration.
6d0893fe »
2011-05-29 zip($list1, $list2, ...) returns a new combined list of lists.
1233 * New function `zip` allows several lists to be combined into one
1234 list of lists. For example:
1235 `zip(1px 1px 3px, solid dashed solid, red green blue)` becomes
1236 `1px solid red, 1px dashed green, 3px solid blue`
c4e10c7b »
2011-05-29 index($list, $value) returns the index of $value within $list or fals…
1237 * New function `index` returns the list index of a value
1238 within a list. For example: `index(1px solid red, solid)`
1239 returns `2`. When the value is not found `false` is returned.
d0ee2eec »
2011-05-29 Update CHANGELOG for 3.1.2
1240
3c705fdc »
2011-04-25 Bump VERSION to 3.1.1.
1241 ## 3.1.1
542d8c3a »
2011-04-25 Add a changelog entry for the Plugin change.
1242
1243 * Make sure `Sass::Plugin` is loaded at the correct time in Rails 3.
1244
0a77dcc6 »
2011-04-25 Remove "Unreleased" from Changelog.
1245 ## 3.1.0
c3cdc567 »
2010-08-22 Get rid of --rails.
1246
8742fef9 »
2010-09-21 [Sass] Add an #invert function.
1247 * Add an {Sass::Script::Functions#invert `invert` function} that takes the inverse of colors.
b3f6217d »
2010-11-26 Clean up if() documentation.
1248
b9a9e145 »
2010-09-11 New sass function: if
1249 * A new sass function called `if` can be used to emit one of two values
b3f6217d »
2010-11-26 Clean up if() documentation.
1250 based on the truth value of the first argument.
1251 For example, `if(true, 1px, 2px)` returns `1px` and `if(false, 1px, 2px)` returns `2px`.
8742fef9 »
2010-09-21 [Sass] Add an #invert function.
1252
356c6616 »
2010-11-28 Tweak --compass docs.
1253 * Compass users can now use the `--compass` flag
1254 to make the Compass libraries available for import.
1255 This will also load the Compass project configuration
1256 if run from the project root.
e9333c68 »
2010-11-27 Mention the --compass command line option in the changelog.
1257
36baf421 »
2010-10-03 Add a changelog entry about thedarkone's performance work.
1258 * Many performance optimizations have been made by [thedarkone](http://github.com/thedarkone).
1259
10db7f65 »
2010-11-22 Allow extra commas in selectors.
1260 * Allow selectors to contain extra commas to make them easier to modify.
1261 Extra commas will be removed when the selectors are converted to CSS.
1262
8c826ab5 »
2010-12-17 Document nested @import.
1263 * `@import` may now be used within CSS or `@media` rules.
1264 The imported file will be treated as though it were nested within the rule.
1265 Files with mixins may not be imported in nested contexts.
1266
0a4d7540 »
2011-02-13 When the first letter of a comment is `!`, the comment will be interp…
1267 * If a comment starts with `!`, that comment will now be interpolated
1268 (`#{...}` will be replaced with the resulting value of the expression
1269 inside) and the comment will always be printed out in the generated CSS
1270 file -- even with compressed output. This is useful for adding copyright
1271 notices to your stylesheets.
1272
99e6fdf8 »
2011-03-22 Add an 'scss' executable that is the same as the 'sass' executable bu…
1273 * A new executable named `scss` is now available. It is exactly like the
1274 `sass` executable except it defaults to assuming input is in the SCSS syntax.
1275 Both programs will use the source file's extension to determine the syntax where
1276 possible.
1277
1d2ea6bb »
2011-03-23 Document sass-based functions
1278 ### Sass-based Functions
1279
1280 While it has always been possible to add functions to Sass with Ruby, this release adds the ability to define new functions within Sass files directly.
1281 For example:
1282
1283 $grid-width: 40px;
1284 $gutter-width: 10px;
a5746f38 »
2012-02-08 Add Sass::Script::Functions#ie_hex_str.
1285
1d2ea6bb »
2011-03-23 Document sass-based functions
1286 @function grid-width($n) {
1287 @return $n * $grid-width + ($n - 1) * $gutter-width;
1288 }
a5746f38 »
2012-02-08 Add Sass::Script::Functions#ie_hex_str.
1289
1d2ea6bb »
2011-03-23 Document sass-based functions
1290 #sidebar { width: grid-width(5); }
1291
1292 Becomes:
1293
1294 #sidebar {
1295 width: 240px; }
1296
45a9e506 »
2010-10-04 Touch up the documentation.
1297 ### Keyword Arguments
1298
1299 Both mixins and Sass functions now support the ability to pass in keyword arguments.
1300 For example, with mixins:
1301
1302 @mixin border-radius($value, $moz: true, $webkit: true, $css3: true) {
1303 @if $moz { -moz-border-radius: $value }
1304 @if $webkit { -webkit-border-radius: $value }
1305 @if $css3 { border-radius: $value }
1306 }
1307
1308 @include border-radius(10px, $webkit: false);
1309
1310 And with functions:
1311
1312 p {
3d2f0abf »
2010-11-10 Fix typo in the changelog.
1313 color: hsl($hue: 180, $saturation: 78%, $lightness: 57%);
45a9e506 »
2010-10-04 Touch up the documentation.
1314 }
1315
1316 Keyword arguments are of the form `$name: value` and come after normal arguments.
1317 They can be used for either optional or required arguments.
1318 For mixins, the names are the same as the argument names for the mixins.
1319 For functions, the names are defined along with the functions.
1320 The argument names for the built-in functions are listed
1321 {Sass::Script::Functions in the function documentation}.
1322
3d086815 »
2010-10-04 Rename Sass::Script::Functions.define -> declare.
1323 Sass functions defined in Ruby can use the {Sass::Script::Functions.declare} method
45a9e506 »
2010-10-04 Touch up the documentation.
1324 to declare the names of the arguments they take.
1325
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1326 #### New Keyword Functions
1327
1328 The new keyword argument functionality enables new Sass color functions
1329 that use keywords to encompass a large amount of functionality in one function.
1330
6c410383 »
2011-04-24 Fix some code references in the docs
1331 * The {Sass::Script::Functions#adjust_color adjust-color} function works like the old
f829d86c »
2010-12-16 Add #scale.
1332 `lighten`, `saturate`, and `adjust-hue` methods.
1333 It increases and/or decreases the values of a color's properties by fixed amounts.
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1334 For example, `adjust-color($color, $lightness: 10%)` is the same as `lighten($color, 10%)`:
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1335 it returns `$color` with its lightness increased by 10%.
1336
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1337 * The {Sass::Script::Functions#scale_color scale_color} function
3815575f »
2013-07-02 Cleanup YARD documentation.
1338 is similar to {Sass::Script::Functions#adjust_color adjust_color},
f829d86c »
2010-12-16 Add #scale.
1339 but instead of increasing and/or decreasing a color's properties by fixed amounts,
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1340 it scales them fluidly by percentages.
1341 The closer the percentage is to 100% (or -100%),
1342 the closer the new property value will be to its maximum (or minimum).
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1343 For example, `scale-color(hsl(120, 70, 80), $lightness: 50%)`
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1344 will change the lightness from 80% to 90%,
1345 because 90% is halfway between 80% and 100%.
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1346 Similarly, `scale-color(hsl(120, 70, 50), $lightness: 50%)`
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1347 will change the lightness from 50% to 75%.
1348
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1349 * The {Sass::Script::Functions#change_color change-color} function simply changes a color's properties
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1350 regardless of their old values.
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1351 For example `change-color($color, $lightness: 10%)` returns `$color` with 10% lightness,
1352 and `change-color($color, $alpha: 0.7)` returns color with opacity 0.7.
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1353
1354 Each keyword function accepts `$hue`, `$saturation`, `$value`,
1355 `$red`, `$green`, `$blue`, and `$alpha` keywords,
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1356 with the exception of `scale-color()` which doesn't accept `$hue`.
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1357 These keywords modify the respective properties of the given color.
1358
1359 Each keyword function can modify multiple properties at once.
e18890b4 »
2010-12-29 Update changelog for scale, set, and adjust renames to scale-color, c…
1360 For example, `adjust-color($color, $lightness: 15%, $saturation: -10%)`
de2842aa »
2010-12-16 Add a bunch of docs on the new keyword functions.
1361 both lightens and desaturates `$color`.
1362 HSL properties cannot be modified at the same time as RGB properties, though.
1363
45fd7adf »
2010-11-09 Add a changelog entry about lists.
1364 ### Lists
1365
1366 Lists are now a first-class data type in Sass,
1367 alongside strings, numbers, colors, and booleans.
1368 They can be assigned to variables, passed to mixins,
1369 and used in CSS declarations.
1370 Just like the other data types (except booleans),
1371 Sass lists look just like their CSS counterparts.
1372 They can be separated either by spaces (e.g. `1px 2px 0 10px`)
1373 or by commas (e.g. `Helvetica, Arial, sans-serif`).
1374 In addition, individual values count as single-item lists.
1375
1376 Lists won't behave any differently in Sass 3.1 than they did in 3.0.
eff7a998 »
2011-08-10 Fix links to the Sass list function documentation.
1377 However, you can now do more with them using the new [list functions](Sass/Script/Functions.html#list-functions):
45fd7adf »
2010-11-09 Add a changelog entry about lists.
1378
1379 * The {Sass::Script::Functions#nth `nth($list, $n)` function} returns the nth item in a list.
1380 For example, `nth(1px 2px 10px, 2)` returns the second item, `2px`.
1381 Note that lists in Sass start at 1, not at 0 like they do in some other languages.
1382
1383 * The {Sass::Script::Functions#join `join($list1, $list2)` function}
1384 joins together two lists into one.
1385 For example, `join(1px 2px, 10px 5px)` returns `1px 2px 10px 5px`.
1386
f8487426 »
2010-11-10 Add an append function.
1387 * The {Sass::Script::Functions#append `append($list, $val)` function}
1388 appends values to the end of a list.
1389 For example, `append(1px 2px, 10px)` returns `1px 2px 10px`.
1390
45fd7adf »
2010-11-09 Add a changelog entry about lists.
1391 * The {Sass::Script::Functions#join `length($list)` function}
1392 returns the length of a list.
1393 For example, `length(1px 2px 10px 5px)` returns `4`.
1394
1395 For more details about lists see {file:SASS_REFERENCE.md#lists the reference}.
1396
1397 #### `@each`
1398
1399 There's also a new directive that makes use of lists.
1400 The {file:SASS_REFERENCE.md#each-directive `@each` directive} assigns a variable to each item in a list in turn,
1401 like `@for` does for numbers.
1402 This is useful for writing a bunch of similar styles
1403 without having to go to the trouble of creating a mixin.
1404 For example:
1405
1406 @each $animal in puma, sea-slug, egret, salamander {
1407 .#{$animal}-icon {
1408 background-image: url('/images/#{$animal}.png');
1409 }
1410 }
1411
0378c8f3 »
2010-11-10 Fix a couple list documentation bugs.
1412 is compiled to:
1413
1414 .puma-icon {
1415 background-image: url('/images/puma.png'); }
1416 .sea-slug-icon {
1417 background-image: url('/images/sea-slug.png'); }
1418 .egret-icon {
1419 background-image: url('/images/egret.png'); }
1420 .salamander-icon {
1421 background-image: url('/images/salamander.png'); }
1422
ee973f1c »
2010-11-10 Document @media bubbling.
1423 ### `@media` Bubbling
1424
1425 Modern stylesheets often use `@media` rules to target styles
1426 at certain sorts of devices, screen resolutions, or even orientations.
1427 They're also useful for print and aural styling.
1428 Unfortunately, it's annoying and repetitive to break the flow of a stylesheet
1429 and add a `@media` rule containing selectors you've already written
1430 just to tweak the style a little.
1431
1432 Thus, Sass 3.1 now allows you to nest `@media` rules within selectors.
1433 It will automatically bubble them up to the top level,
1434 putting all the selectors on the way inside the rule.
1435 For example:
1436
1437 .sidebar {
1438 width: 300px;
1439 @media screen and (orientation: landscape) {
1440 width: 500px;
1441 }
1442 }
1443
1444 is compiled to:
1445
1446 .sidebar {
1447 width: 300px;
1448 }
1449 @media screen and (orientation: landscape) {
1450 .sidebar {
1451 width: 500px;
1452 }
1453 }
1454
37191999 »
2010-11-10 Support nesting @media within @media as well.
1455 You can also nest `@media` directives within one another.
1456 The queries will then be combined using the `and` operator.
1457 For example:
1458
1459 @media screen {
1460 .sidebar {
1461 @media (orientation: landscape) {
1462 width: 500px;
1463 }
1464 }
1465 }
1466
1467 is compiled to:
1468
1469 @media screen and (orientation: landscape) {
1470 .sidebar {
1471 width: 500px;
1472 }
1473 }
1474
8c826ab5 »
2010-12-17 Document nested @import.
1475 ### Nested `@import`
1476
d9b9e527 »
2011-04-24 Document nested @import.
1477 The `@import` statement can now be nested within other structures
1478 such as CSS rules and `@media` rules. For example:
1479
1480 @media print {
1481 @import "print";
1482 }
1483
1484 This imports `print.scss` and places all rules so imported within the `@media print` block.
1485 This makes it easier to create stylesheets for specific media or sections of the document
1486 and distributing those stylesheets across multiple files.
8c826ab5 »
2010-12-17 Document nested @import.
1487
7848a50b »
2010-09-05 Add a Backwards Incompatibilities section to the changelogs.
1488 ### Backwards Incompatibilities -- Must Read!
1489
73a228dd »
2010-09-05 [Sass] Just raise an error when an @import can't be found.
1490 * When `@import` is given a path without `.sass`, `.scss`, or `.css` extension,
1491 and no file exists at that path, it will now throw an error.
1492 The old behavior of becoming a plain-CSS `@import` was deprecated
1493 and has now been removed.
1494
c3cdc567 »
2010-08-22 Get rid of --rails.
1495 * Get rid of the `--rails` flag for the `sass` executable.
1496 This flag hasn't been necessary since Rails 2.0.
1497 Existing Rails 2.0 installations will continue to work.
1498
a6b940dc »
2011-03-11 Make a note of the removal of many deprecated behaviors.
1499 * Removed deprecated support for ! prefixed variables. Use $ to prefix variables now.
1500
1501 * Removed the deprecated css2sass executable. Use sass-convert now.
1502
1503 * Removed support for the equals operator in variable assignment. Use : now.
1504
1505 * Removed the sass2 mode from sass-convert. Users who have to migrate from sass2
1506 should install Sass 3.0 and quiet all deprecation warnings before installing Sass 3.1.
1507
32dfc8ce »
2011-04-24 Add Changelog notes for importers and cache stores.
1508 ### Sass Internals
1509
1510 * It is now possible to define a custom importer that can be used to find imports using different import semantics than the default filesystem importer that Sass provides. For instance, you can use this to generate imports on the fly, look them up from a database, or implement different file naming conventions. See the {Sass::Importers::Base Importer Base class} for more information.
1511
1512 * It is now possible to define a custom cache store to allow for efficient caching of Sass files using alternative cache stores like memcached in environments where a writable filesystem is not available or where the cache need to be shared across many servers for dynamically generated stylesheet environments. See the {Sass::CacheStores::Base CacheStore Base class} for more information.
1513
b917064f »
2010-12-17 Merge remote branch 'origin/stable' into stable
1514 ## 3.0.26 (Unreleased)
1515
1516 * Fix a performance bug in large SCSS stylesheets with many nested selectors.
1517 This should dramatically decrease compilation time of such stylesheets.
1518
036d5554 »
2010-12-18 Update FSSM to version 0.2.3.
1519 * Upgrade the bundled FSSM to version 0.2.3.
1520 This means `sass --watch` will work out of the box with Rubinius.
1521
f6b9c1c2 »
2010-12-17 Bump VERSION to 3.0.25.
1522 ## 3.0.25
1523
70fec5da »
2012-11-08 Fix links to github sass tags
1524 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.25).
bd5d035b »
2010-11-18 [Sass] Fix a bad error-reporting bug.
1525
1526 * When displaying a Sass error in an imported stylesheet,
1527 use the imported stylesheet's contents rather than the top-level stylesheet.
1528
7ce7a972 »
2010-11-16 [Sass] Be more careful about non-ASCII characters.
1529 * Fix a bug that caused some lines with non-ASCII characters to be ignored in Ruby 1.8.
1530
67a662e3 »
2010-11-22 [Sass] Fix a bug with ident operators in multiline script.
1531 * Fix a bug where boolean operators (`and`, `or`, and `not`) wouldn't work at the end of a line
1532 in a multiline SassScript expression.
1533
8a76ecf2 »
2010-12-16 [Sass] Fix sass --update file1:file2.
1534 * When using `sass --update`, only update individual files when they've changed.
1535
5f8ae806 »
2010-11-15 Bump VERSION to 3.0.24.
1536 ## 3.0.24
1537
70fec5da »
2012-11-08 Fix links to github sass tags
1538 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.24).
d9d326f9 »
2010-11-08 [Sass] [SCSS] Error out when @else appears without @if.
1539
1540 * Raise an error when `@else` appears without an `@if` in SCSS.
1541
feb8eb26 »
2010-11-08 [Sass] [SCSS] Fix error line reporting for @if.
1542 * Fix some cases where `@if` rules were causing the line numbers in error reports
1543 to become incorrect.
1544
1b501c5a »
2010-10-31 Bump VERSION to 3.0.23.
1545 ## 3.0.23
1546
70fec5da »
2012-11-08 Fix links to github sass tags
1547 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.23).
934b520e »
2010-10-26 Fix the executable load error under 1.9.2.
1548
1549 * Fix the error message for unloadable modules when running the executables under Ruby 1.9.2.
1550
70617157 »
2010-10-31 [Sass] Change the behavior of @charset dramatically.
1551 ### `@charset` Change
1552
1553 The behavior of `@charset` has changed in version 3.0.23
1554 in order to work around a bug in Safari,
1555 where `@charset` declarations placed anywhere other than the beginning of the document
1556 cause some CSS rules to be ignored.
1557 This change also makes `@charset`s in imported files behave in a more useful way.
1558
1559 #### Ruby 1.9
1560
1561 When using Ruby 1.9, which keeps track of the character encoding of the Sass document internally,
1562 `@charset` directive in the Sass stylesheet and any stylesheets it imports
1563 are no longer directly output to the generated CSS.
1564 They're still used for determining the encoding of the input and output stylesheets,
1565 but they aren't rendered in the same way other directives are.
1566
1567 Instead, Sass adds a single `@charset` directive at the beginning of the output stylesheet
1568 if necessary, whether or not the input stylesheet had a `@charset` directive.
1569 It will add this directive if and only if the output stylesheet contains non-ASCII characters.
1570 By default, the declared charset will be UTF-8,
1571 but if the Sass stylesheet declares a different charset then that will be used instead if possible.
1572
1573 One important consequence of this scheme is that it's possible for a Sass file
1574 to import partials with different encodings (e.g. one encoded as UTF-8 and one as IBM866).
1575 The output will then be UTF-8, unless the importing stylesheet
1576 declares a different charset.
1577
1578 #### Ruby 1.8
1579
1580 Ruby 1.8 doesn't have good support for encodings, so it uses a simpler but less accurate
1581 scheme for figuring out what `@charset` declaration to use for the output stylesheet.
1582 It just takes the first `@charset` declaration to appear in the stylesheet
1583 or any of its imports and moves it to the beginning of the document.
1584 This means that under Ruby 1.8 it's *not* safe to import files with different encodings.
1585
8e9a8301 »
2010-10-19 Bump VERSION to 3.0.22.
1586 ## 3.0.22
1587
70fec5da »
2012-11-08 Fix links to github sass tags
1588 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.22).
8ff191ad »
2010-10-04 Add a changelog entry about vendor/sass.
1589
1590 * Remove `vendor/sass`, which snuck into the gem by mistake
1591 and was causing trouble for Heroku users (thanks to [Jacques Crocker](http://railsjedi.com/)).
1592
683b7c2e »
2010-10-11 [Sass] [Convert] Understand which operations are associative and whic…
1593 * `sass-convert` now understands better when it's acceptable
1594 to remove parentheses from expressions.
1595
7570cda2 »
2010-09-29 Bump VERSION to 3.0.21.
1596 ## 3.0.21
1597
70fec5da »
2012-11-08 Fix links to github sass tags
1598 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.21).
e101dfaa »
2010-09-29 [Sass] Fix more #options bugs.
1599
2c43321e »
2010-09-29 Really fix the permissions errors.
1600 * Fix the permissions errors for good.
1601
e101dfaa »
2010-09-29 [Sass] Fix more #options bugs.
1602 * Fix more `#options` attribute errors.
1603
3adfcaba »
2010-09-29 Bump VERSION to 3.0.20.
1604 ## 3.0.20
1605
70fec5da »
2012-11-08 Fix links to github sass tags
1606 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.20).
551fd061 »
2010-09-29 As part of packaging, fix up some permissions that can apparently go …
1607
1608 * Fix some permissions errors.
1609
20d74ac3 »
2010-09-29 [Sass] Make sure CSS function results get #options set.
1610 * Fix `#options` attribute errors when CSS functions were used with commas.
1611
3e7116a1 »
2010-09-29 Bump VERSION to 3.0.19.
1612 ## 3.0.19
1613
70fec5da »
2012-11-08 Fix links to github sass tags
1614 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.19).
3c01b97c »
2010-09-21 [Sass] Add a changelog entry about aab0567.
1615
3815575f »
2013-07-02 Cleanup YARD documentation.
1616 * Make the alpha value for `rgba` colors respect
1617 {Sass::Script::Value::Number.precision}.
481608a8 »
2010-09-07 [Sass] Make rgba respect precision.
1618
3c01b97c »
2010-09-21 [Sass] Add a changelog entry about aab0567.
1619 * Remove all newlines in selectors in `:compressed` mode.
1620
e80e812f »
2010-09-21 [Sass] Make color names csae-insensitive.
1621 * Make color names case-insensitive.
1622
1f342cd4 »
2010-09-21 [Sass] Properly detect SCSS with -c.
1623 * Properly detect SCSS files when using `sass -c`.
1624
ddd66c40 »
2010-09-28 [Sass] Remove spaces after commas in `:compressed` mode.
1625 * Remove spaces after commas in `:compressed` mode.
1626
098c8c25 »
2010-09-21 [Sass] Support --unix-newlines on Unix.
1627 * Allow the `--unix-newlines` flag to work on Unix, where it's a no-op.
1628
584a1f4a »
2010-08-29 Bump VERSION to 3.0.18.
1629 ## 3.0.18
1630
70fec5da »
2012-11-08 Fix links to github sass tags
1631 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.18).
eba4f68e »
2010-08-16 Document previous.
1632
1633 * Don't require `rake` in the gemspec, for bundler compatibility under
1634 JRuby. Thanks to [Gordon McCreight](http://www.gmccreight.com/blog).
1635
7daefd9d »
2010-08-22 [Sass] Add a --stop-on-error option.
1636 * Add a command-line option `--stop-on-error` that causes Sass to exit
1637 when a file fails to compile using `--watch` or `--update`.
1638
5d2cb1d7 »
2010-08-22 [Sass] Convert haml_tag attribute keys to strings.
1639 * Fix a bug in `haml_tag` that would allow duplicate attributes to be added
1640 and make `data-` attributes not work.
1641
5af9dbf0 »
2010-08-22 Set has_rdoc = false in the gemfile.
1642 * Get rid of the annoying RDoc errors on install.
1643
9010ce59 »
2010-08-28 Add changelog entries for ::Rails.
1644 * Disambiguate references to the `Rails` module when `haml-rails` is installed.
1645
626c906a »
2010-08-28 [Sass] Let SCSS @imports import multiple files.
1646 * Allow `@import` in SCSS to import multiple files in the same `@import` rule.
1647
f47347cd »
2010-08-14 Bump VERSION to 3.0.17.
1648 ## 3.0.17
1649
70fec5da »
2012-11-08 Fix links to github sass tags
1650 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.17).
61d0ca9a »
2010-08-08 [Sass] Properly disallow interpolation in @media queries.
1651
e7b67640 »
2010-08-08 [Sass] Don't die on interpolation in unrecognized selectors either.
1652 * Disallow `#{}` interpolation in `@media` queries or unrecognized directives.
61d0ca9a »
2010-08-08 [Sass] Properly disallow interpolation in @media queries.
1653 This was never allowed, but now it explicitly throws an error
1654 rather than just producing invalid CSS.
1655
8c89830c »
2010-08-08 [Sass] Add a changelog entry about sass --watch.
1656 * Make `sass --watch` not throw an error when passed a single file or directory.
1657
01a95053 »
2010-08-14 Count mingw as windows.
1658 * Understand that mingw counts as Windows.
1659
e8a033af »
2010-08-14 [Sass] Make sass --update use proper exit codes.
1660 * Make `sass --update` return a non-0 exit code if one or more files being updated
1661 contained an error.
1662
0c98de34 »
2010-08-08 Bump VERSION to 3.0.16.
1663 ## 3.0.16
1664
70fec5da »
2012-11-08 Fix links to github sass tags
1665 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.16).
458b7b96 »
2010-08-01 [Sass] Fix a comment-formatting bug in :compact style.
1666
1667 * Fix a bug where certain sorts of comments would get improperly
1668 rendered in the `:compact` style.
1669
7805567a »
2010-08-01 [Sass] [Indented] Always allow a trailing */ in loud comments.
1670 * Always allow a trailing `*/` in loud comments in the indented syntax.
1671
24429966 »
2010-08-01 [Sass] Add a changelog entry for Chris's change.
1672 * Fix a performance issue with SCSS parsing in rare cases.
1673 Thanks to [Chris Eppstein](http://chriseppstein.github.com).
1674
1d65badb »
2010-08-01 [Sass] Be better about figuring out when to error out for sass --watch.
1675 * Use better heuristics for figuring out when someone might be using
1676 the wrong syntax with `sass --watch`.
1677
973421e6 »
2010-07-28 Bump VERSION to 3.0.15.
1678 ## 3.0.15
1679
70fec5da »
2012-11-08 Fix links to github sass tags
1680 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.15).
973d7024 »
2010-07-28 [Sass] Clean up some leftover debugging stuff.
1681
1682 * Fix a bug where `sass --watch` and `sass --update` were completely broken.
1683
cd15061d »
2010-07-28 [Sass] Properly parse @imports containing commas in strings and URLs.
1684 * Allow `@import`ed values to contain commas.
1685
3024c9b3 »
2010-07-26 Bump VERSION to 3.0.14.
1686 ## 3.0.14
1687
70fec5da »
2012-11-08 Fix links to github sass tags
1688 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.14).
380c7773 »
2010-07-05 [Sass] Properly handle drive-letter paths.
1689
1690 * Properly parse paths with drive letters on Windows (e.g. `C:\Foo\Bar.sass`)
1691 in the Sass executable.
1692
74f49a34 »
2010-07-19 [Sass] Document previous.
1693 * Compile Sass files in a deterministic order.
1694
d5d15810 »
2010-07-19 [Sass] Fix a comment-parsing bug.
1695 * Fix a bug where comments after `@if` statements in SCSS
1696 weren't getting passed through to the output document.
1697
39176452 »
2010-06-23 Bump VERSION to 3.0.13.
1698 ## 3.0.13
1699
70fec5da »
2012-11-08 Fix links to github sass tags
1700 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.13).
ebdb0753 »
2010-06-10 Fully remove support for Rails 3b3 and earlier.
1701
c2be9b3d »
2010-06-10 [Sass] Be smarter about what counts as a CSS import.
1702 ## CSS `@import` Directives
1703
1704 Sass is now more intelligent about when to compile `@import` directives to plain CSS.
1705 Any of the following conditions will cause a literal CSS `@import`:
1706
1707 * Importing a path with a `.css` extension (e.g. `@import "foo.css"`).
1708 * Importing a path with a media type (e.g. `@import "foo" screen;`).
1709 * Importing an HTTP path (e.g. `@import "http://foo.com/style.css"`).
1710 * Importing any URL (e.g. `@import url(foo)`).
1711
1712 The former two conditions always worked, but the latter two are new.
1713
d5804a90 »
2010-06-10 [Sass] Support -moz-calc.
1714 ## `-moz-calc` Support
1715
1716 The new [`-moz-calc()` function](http://hacks.mozilla.org/2010/06/css3-calc/) in Firefox 4
1717 will now be properly parsed by Sass.
1718 `calc()` was already supported, but because the parsing rules are different
1719 than for normal CSS functions, this had to be expanded to include `-moz-calc`.
1720
1721 In anticipation of wider browser support, in fact,
1722 *any* function named `-*-calc` (such as `-webkit-calc` or `-ms-calc`)
1723 will be parsed the same as the `calc` function.
1724
81feb13b »
2010-06-10 Support :-moz-any.
1725 ## `:-moz-any` Support
1726
1727 The [`:-moz-any` pseudoclass selector](http://hacks.mozilla.org/2010/05/moz-any-selector-grouping/)
1728 is now parsed by Sass.
1729
1bf4a15f »
2010-06-10 [Sass] Document --require.
1730 ## `--require` Flag
1731
1732 The Sass command-line executable can now require Ruby files
1733 using the `--require` flag (or `-r` for short).
1734
fdc28872 »
2010-06-22 [Sass] Don't clobber Rails options with default options.
1735 ## Rails Support
1736
1737 Make sure the default Rails options take precedence over the default non-Rails options.
1738 This makes `./script/server --daemon` work again.
1739
1740 ### Rails 3 Support
ebdb0753 »
2010-06-10 Fully remove support for Rails 3b3 and earlier.
1741
1742 Support for Rails 3 versions prior to beta 4 has been removed.
fdc28872 »
2010-06-22 [Sass] Don't clobber Rails options with default options.
1743 Upgrade to Rails 3.0.0.beta4 if you haven't already.
ebdb0753 »
2010-06-10 Fully remove support for Rails 3b3 and earlier.
1744
c050ce98 »
2010-06-10 Bump VERSION to 3.0.12.
1745 ## 3.0.12
1746
70fec5da »
2012-11-08 Fix links to github sass tags
1747 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.12).
0a35cff2 »
2010-06-10 Hackily fix the Rails 3 routing errors we were seeing in 3.0.11.
1748
1749 ## Rails 3 Support
1750
1751 Apparently the last version broke in new and exciting ways under Rails 3,
1752 due to the inconsistent load order caused by certain combinations of gems.
1753 3.0.12 hacks around that inconsistency, and *should* be fully Rails 3-compatible.
1754
eabc9163 »
2010-06-10 Deprecate Rails 3b3.
1755 ### Deprecated: Rails 3 Beta 3
1756
1757 Haml's support for Rails 3.0.0.beta.3 has been deprecated.
1758 Haml 3.0.13 will only support 3.0.0.beta.4.
1759
d2dd0e52 »
2010-06-09 Bump VERSION to 3.0.11.
1760 ## 3.0.11
1761
70fec5da »
2012-11-08 Fix links to github sass tags
1762 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.11).
d2dd0e52 »
2010-06-09 Bump VERSION to 3.0.11.
1763
1764 There were no changes made to Haml between versions 3.0.10 and 3.0.11.
8b773fd2 »
2010-06-09 [Sass] Fix Rails 3 integration.
1765
1766 ## Rails 3 Support
1767
1768 Make sure Sass *actually* regenerates stylesheets under Rails 3.
1769 The fix in 3.0.10 didn't work because the Rack stack we were modifying
1770 wasn't reloaded at the proper time.
1771
b26cb009 »
2010-06-09 [Sass] [Convert] Give --recursive with no directory a better error me…
1772 ## Bug Fixes
1773
1774 * Give a decent error message when `--recursive` is used
1775 in `sass-convert` without a directory.
1776
59c58f05 »
2010-06-07 Bump VERSION to 3.0.10.
1777 ## 3.0.10
1778
70fec5da »
2012-11-08 Fix links to github sass tags
1779 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.10).
a68bd19c »
2010-06-01 [Sass] Suggest using --in-place when converting sass2 to sass3.
1780
e11a497e »
2010-06-05 Support appengine-jruby.
1781 ### Appengine-JRuby Support
1782
1783 The way we determine the location of the Haml installation
1784 no longer breaks the version of JRuby
1785 used by [`appengine-jruby`](http://code.google.com/p/appengine-jruby/).
1786
f7292090 »
2010-06-06 [Sass] Add a changelog entry about previous.
1787 ### Rails 3 Support
1788
1789 Sass will regenerate stylesheets under Rails 3
1790 even when no controllers are being accessed.
1791
e11a497e »
2010-06-05 Support appengine-jruby.
1792 ### Other Improvements
1793
a68bd19c »
2010-06-01 [Sass] Suggest using --in-place when converting sass2 to sass3.
1794 * When using `sass-convert --from sass2 --to sass --recursive`,
1795 suggest the use of `--in-place` as well.
1796
b51f282c »
2010-06-01 Bump VERSION to 3.0.9.
1797 ## 3.0.9
1798
70fec5da »
2012-11-08 Fix links to github sass tags
1799 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.9).
b51f282c »
2010-06-01 Bump VERSION to 3.0.9.
1800
1801 There were no changes made to Sass between versions 3.0.8 and 3.0.9.
1802 A bug in Gemcutter caused the gem to be uploaded improperly.
1803
0c51d7ca »
2010-06-01 Bump VERSION to 3.0.8.
1804 ## 3.0.8
1805
70fec5da »
2012-11-08 Fix links to github sass tags
1806 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.8).
c95c7060 »
2010-06-01 [Haml] Don't attempt to reference ActionPack directly.
1807
1808 * Fix a bug with Rails versions prior to Rails 3.
1809
d80d2828 »
2010-06-01 Bump VERSION to 3.0.7.
1810 ## 3.0.7
1811
70fec5da »
2012-11-08 Fix links to github sass tags
1812 [Tagged on GitHub](http://github.com/nex3/sass/commit/3.0.7).
67b1b19a »
2010-05-28 [Sass] Respect --from above the filename.
1813
9e929446 »
2010-05-28 [Sass] Determine encoding from @charset if specified.
1814 ### Encoding Support
1815
ebaf1baa »
2010-05-29 [Haml] Add -# encoding: support.
1816 Sass 3.0.7 adds support for `@charset` for declaring the encoding of a stylesheet.
9e929446 »
2010-05-28 [Sass] Determine encoding from @charset if specified.
1817 For details see {file:SASS_REFERENCE.md#encodings the reference}.
1818
27442ab8 »
2010-05-31 Add -E option to executables.
1819 The `sass` and `sass-convert` executables also now take an `-E` option
1820 for specifying the encoding of Sass/SCSS/CSS files.
1821
67b1b19a »
2010-05-28 [Sass] Respect --from above the filename.
1822 ### Bug Fixes
1823
1824 * When compiling a file named `.sass` but with SCSS syntax specified,
1825 use the latter (and vice versa).
1826
2147a951 »
2010-05-31