Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 4000 lines (2772 sloc) 137.923 kB
04658ce @chriseppstein [Sass] Add a changelog.
chriseppstein authored
1 # Sass Changelog
2
3 * Table of contents
4 {:toc}
5
14d88e3 @nex3 Better unify selectors containing unique simple selectors.
nex3 authored
6 ## 4.0.0 (Unreleased)
7
8 * Combine ids and `:root` when unifying selectors with `@extend` and selector
9 functions.
10
90e7515 @nex3 Changelog for 8091bcea.
nex3 authored
11 * Add a `$weight` parameter to `invert()`.
12
9d1000d @nex3 Bump VERSION to 3.4.15.
nex3 authored
13 ## 3.4.15 (22 June 2015)
2c537b1 @nex3 Further improve rounding.
nex3 authored
14
15 * Further improve rounding for various numeric operations.
16
70d302e @nex3 Be more explicit about immutable functions.
nex3 authored
17 * Be more explicit in the function documentation about functions being
18 immutable.
19
14ec0d0 @nex3 Properly round in operator-based color operations.
nex3 authored
20 * Improve rounding in operator-based color operations.
21
eb0c8ce @nex3 Deprecate working directory imports for stdin.
nex3 authored
22 ### Deprecations -- Must Read!
23
24 * When using `--stdin` with the `sass` or `scss` executables, importing relative
25 to the working directory is deprecated. Having the working directory on the
26 load path was deprecated in 3.3 and removed in 3.4, but due to an oversight
27 the deprecation process never happened for files read over standard input in
28 particular. This is the first step of that process.
29
2e0f33b @nex3 Bump VERSION to 3.4.14.
nex3 authored
30 ## 3.4.14 (22 May 2015)
e9fa4e3 @nex3 Add a CHANGELOG entry.
nex3 authored
31
32 * Further avoid race conditions when caching.
33
b7dce00 @nex3 Don't emit multiple unquote() warnings for the same line.
nex3 authored
34 * Only emit one warning for each line that uses the deprecated form of
35 `unquote()`.
36
e000e98 @nex3 Fix @supports parsing and emitting.
nex3 authored
37 * Stop parsing and emitting invalid `@supports` directives.
38
abb1543 @nex3 Deprecate 1em != 1 as well.
nex3 authored
39 * Add a deprecation warning for using `!=` to compare a number with units to a
40 number without. Such a warning already existed for `==`.
41
ac2dc4e @nex3 Round, don't truncate, color operation results.
nex3 authored
42 * Improve rounding of the results of color operations.
43
d26e6fa @nex3 Bump VERSION to 3.4.13.
nex3 authored
44 ## 3.4.13 (26 February 2015)
45
46 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.13).
4a97cea @nex3 Add text about hyphens and underscores to the reference.
nex3 authored
47
48 * Be clearer in the reference about hyphen/underscore equivalence.
49
4e41909 @nex3 Fix @keyframes parsing in CSS.
nex3 authored
50 * `@keyframes` rules are now converted from CSS properly.
51
787b6ef @nex3 Fix an @extend edge-case crash.
nex3 authored
52 * Extending a selector that contains a non-final pseudo-class no longer crashes.
53
cc3a41a @nex3 Unify :root when extending.
nex3 authored
54 * When `@extending`, only a single `:root` element will be retained.
55
ddb2aa1 @nex3 Bump VERSION to 3.4.12.
nex3 authored
56 ## 3.4.12 (13 February 2015)
57
58 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.12).
cda7a32 @nex3 Fix interpolation in interpolation.
nex3 authored
59
60 * Non-string interpolation within string interpolation is now parsed correctly.
61
54c9ee4 @nex3 Fix random() with an integer represented by a float.
nex3 authored
62 * `random()` now returns the correct result if it has an integer value
63 but a float representation.
64
57513c6 @nex3 Bump VERSION to 3.4.11.
nex3 authored
65 ## 3.4.11 (30 January 2015)
66
67 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.11).
a487d27 @nex3 Fix parent selectors both in and out of function pseudos.
nex3 authored
68
69 * Parent selectors used both outside and inside a pseudo selector
70 (e.g. `&:not(&--foo)`) now compile correctly.
b6f455a @nex3 Fix interpolation in multiline indented selectors.
nex3 authored
71
72 * Interpolation in a multiline indented-syntax selector is no longer
73 omitted.
4214c81 @nex3 Add a stack trace to the unquote() deprecation warning.
nex3 authored
74
75 * Add a stack trace to the `unquote()` deprecation warning.
7203510 @nex3 Add extra parens when converting space lists.
nex3 authored
76
77 * When converting a space-separated list with `sass-convert`, add
78 parentheses when they make it easier to read even if they aren't
79 strictly required.
625fb60 @nex3 Deprecate update semantics without --update.
nex3 authored
80
81 ### Deprecations -- Must Read!
82
83 * Compiling directories on the command line without using either
84 `--watch` or `--update` is deprecated. This only worked
85 inconsistently before.
a487d27 @nex3 Fix parent selectors both in and out of function pseudos.
nex3 authored
86
57513c6 @nex3 Bump VERSION to 3.4.11.
nex3 authored
87 ## 3.4.10 (16 January 2015)
9bc12a9 @nex3 Bump VERSION to 3.4.10.
nex3 authored
88
89 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.10).
fbb689c @nex3 Add a changelog entry for previous.
nex3 authored
90
91 * `inspect()` no longer adds extra parentheses to nested maps.
490c2f4 @nex3 Fix the docs for random().
nex3 authored
92
93 * Update the documentation of the `random()` function to accurate reflect its
94 behavior.
95
dc44975 @nex3 Deprecate passing non-string values to unquote().
nex3 authored
96 ### Deprecations -- Must Read!
97
98 * Passing a non-string value to the `unquote()` function didn't do
99 anything useful and is now deprecated. In future, this function will
100 follow its documentation and emit an error if a non-string value is
101 passed.
102
a28061e @nex3 Deprecate functions name calc, element, expression, or url.
nex3 authored
103 * Defining a function named `calc`, `element`, `expression`, or `url`
104 (or the former two with a vendor-style prefix) is now deprecated.
105 These functions were already shadowed by CSS functions with special
106 parsing rules, and so were impossible to use anyway. In the future,
107 attempting to define these functions will throw an error.
108
008d13e @nex3 Bump VERSION to 3.4.9.
nex3 authored
109 ## 3.4.9 (24 November 2014)
110
111 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.9).
d45ab0b @nex3 Fix interpolation conversion in calc().
nex3 authored
112
4c003d3 @nex3 Compatibility with listen >=2.7.12.
nex3 authored
113 * Fix an incompatibility with listen 2.7.12 and later.
114
d45ab0b @nex3 Fix interpolation conversion in calc().
nex3 authored
115 * Properly handle interpolation within `calc()` and similar functions
116 with `sass-convert`.
117
a62f817 @nex3 Fix @extend !optional conversion to SCSS.
nex3 authored
118 * Properly handle conversion of `@extend` with `!optional` to SCSS.
119
900038f @nex3 Don't add extra whitespace when converting @at-root to SCSS.
nex3 authored
120 * Properly handle conversion of `@at-root` with a selector to SCSS.
121
4c003d3 @nex3 Compatibility with listen >=2.7.12.
nex3 authored
122 * Don't crash on selectors containing escape codes.
123
ea254a0 @nex3 Bump VERSION to 3.4.8.
nex3 authored
124 ## 3.4.8 (14 November 2014)
125
126 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.8).
a128ada @nex3 Don't add complex selectors to :not() if that would break browsers.
nex3 authored
127
128 * When `@extending` selectors inside `:not()`, don't add a complex
129 selector where none existed before to avoid breaking selectors on
130 browsers that don't support that.
131
85b3be9 @nex3 Add a deprecation warning for using units in rgba/hsla alpha parameters.
nex3 authored
132 * Add a deprecation warning for passing numbers with units to the alpha
133 arguments to `rgba()` and `hsla()`. In a future release, a percentage will be
134 interpreted according to [the spec][alpha value] and other units will produce
135 errors.
136
137 [alpha value]: http://dev.w3.org/csswg/css-color/#typedef-alpha-value
138
92e3b02 @nex3 Bump VERSION to 3.4.7.
nex3 authored
139 ## 3.4.7 (31 October 2014)
d7a986b @nex3 Fix superselector detection for non-descendant selectors.
nex3 authored
140
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
141 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.7).
142
b330e15 @nex3 Fix selector pseudoclass extension.
nex3 authored
143 * Stop crashing when extending selector pseudoclasses such as `:not()`.
144
d7a986b @nex3 Fix superselector detection for non-descendant selectors.
nex3 authored
145 * `@extend` resolution and `is-superselector()` no longer consider `.foo > .baz`
146 to be a superselector of `.foo > .bar > .baz`.
147
979482a @xzyfer Add set-nth to the list functions group in the function documentation
xzyfer authored
148 * Update documentation for `set-nth`
149
ec90542 @nex3 Deprecate unitless numbers equaling unitful numbers.
nex3 authored
150 ### Deprecations -- Must Read!
151
152 * Sass will now print a warning when `==` is used for numbers when one
153 number doesn't have units, the other does, and their numeric values
154 are equal. In the future, unitless numbers will never be equal to
155 numbers with units.
156
5389942 @nex3 Bump VERSION to 3.4.6.
nex3 authored
157 ## 3.4.6 (16 October 2014)
7ac9669 @nex3 Make parent selectors work in selector pseudoclasses.
nex3 authored
158
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
159 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.6).
160
7ac9669 @nex3 Make parent selectors work in selector pseudoclasses.
nex3 authored
161 * Parent selectors now work in selector pseudoclasses (for example, `:not(&)`).
162
7ac58c2 @nex3 Fix a crash for @for loops.
nex3 authored
163 * `@for` loops no longer crash when one bound is an integer-like float.
164
11e60d8 @nitoyon Fix exception on Sass::Importers::Filesystem#eql?
nitoyon authored
165 * Fix exception on `Sass::Importers::Filesystem#eql?`.
166
899fb25 @nex3 Bump VERSION to 3.4.5.
nex3 authored
167 ## 3.4.5 (19 September 2014)
ff9fd27 @nex3 Fix sass-convert --recursive.
nex3 authored
168
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
169 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.5).
170
ff9fd27 @nex3 Fix sass-convert --recursive.
nex3 authored
171 * Fix `sass-convert --recursive`.
172
e68d72b @nex3 Watch the working directory for changed partials with sass --watch.
nex3 authored
173 * When using `sass --watch`, imported stylesheets within the working directory
174 will be watched for changes. This matches the behavior of Sass 3.3.
175
a603f00 @nex3 Set exit code 65 when the compiler fails due to a Sass error.
nex3 authored
176 * Set exit code 65, indicating a [data error][], when the compiler fails due to
177 a Sass error.
178
179 [data error]: http://www.freebsd.org/cgi/man.cgi?query=sysexits
180
d0dbe59 @nex3 Bump VERSION to 3.4.4.
nex3 authored
181 ## 3.4.4 (12 September 2014)
93232f4 @nex3 Work around ruby/ruby#713.
nex3 authored
182
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
183 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.4).
184
93232f4 @nex3 Work around ruby/ruby#713.
nex3 authored
185 * Produce more useful error messages when paths have incompatible encodings on
186 Windows.
187
4fabedf @nex3 Support arbitrary identifiers in keyframes selectors.
nex3 authored
188 * Allow `@keyframes` selectors to use arbitrary identifiers to support libraries
189 like Skrollr.
190
1d8dc02 @nex3 Preserve double-star comments in sass-convert.
nex3 authored
191 * `sass-convert` now preserves double-star mutliline comments (e.g.
192 `/** foo */`).
193
56a8987 @nex3 Bump VERSION to 3.4.3.
nex3 authored
194 ## 3.4.3 (4 September 2014)
12b6ef6 @nex3 Add a CHANGELOG entry for the previous fix.
nex3 authored
195
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
196 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.3).
197
12b6ef6 @nex3 Add a CHANGELOG entry for the previous fix.
nex3 authored
198 * Don't crash when a non-existent directory is on the load path.
199
a1865aa @nex3 Fix --watch on Windows.
nex3 authored
200 * Fix `--watch` on Windows.
201
159990d @nex3 Add a warning for too many varargs.
nex3 authored
202 * Passing too many arguments to a function via `...` is now a warning rather
203 than silently discarding additional arguments. In future versions of Sass,
204 this will become an error.
205
33010e4 @nex3 Bump VERSION to 3.4.2.
nex3 authored
206 ## 3.4.2 (28 August 2014)
0f06861 @nex3 Fix sass-convert output format detection.
nex3 authored
207
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
208 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.2).
209
0f06861 @nex3 Fix sass-convert output format detection.
nex3 authored
210 * Properly detect the output format from the output filename for `sass-convert`.
211
1081acf @nex3 Properly parse interpolation immediately following a string.
nex3 authored
212 * Properly parse interpolation immediately following a string.
213
d8ac7a4 @nex3 Fix --watch with symlinks.
nex3 authored
214 * Fix `--watch` for symlinked files and directories.
215
ca2f302 @nex3 Bump VERSION to 3.4.1.
nex3 authored
216 ## 3.4.1 (22 August 2014)
97bedb1 @nex3 Fix attribute selector parsing in almost_any_value.
nex3 authored
217
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
218 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.1).
219
ea9a556 @nex3 Fix --watch.
nex3 authored
220 * Fix `--watch`.
221
c717726 @nex3 Avoid generating :not selectors that fail on older browsers.
nex3 authored
222 * Don't generate `:not()` selectors that contain more than one complex selector.
223
97bedb1 @nex3 Fix attribute selector parsing in almost_any_value.
nex3 authored
224 * Fix a parsing bug with attribute selectors containing single quotes.
225
16a88c9 @nex3 Don't bubble rulesets into @keyframes.
nex3 authored
226 * Don't put rulesets inside `@keyframes` directives when bubbling them up to the
227 top level.
228
a14866b @nex3 Don't emit busted property-less @keyframes rules.
nex3 authored
229 * Properly handle `@keyframes` rules that contain no properties.
230
a1e4fd4 @nex3 Handle --sourcemap=none when updating individual files.
nex3 authored
231 * Properly handle `--sourcemap=none` with `--update`.
232
9744829 @nex3 Don't notify when unwatched templates are deleted.
nex3 authored
233 * Silence "template deleted" notifications for templates that weren't being
234 watched.
235
510770f @nex3 Fix variable assignment semantics in top-level control structures.
nex3 authored
236 * Top-level control structures can assign to global variables without needing
237 `!global`. Variables first defined in these structures will still be local
238 without `!global`.
239
84e5525 @nex3 Bump VERSION to 3.4.0.
nex3 authored
240 ## 3.4.0 (18 August 2014)
e6f0edb @nex3 Revert "Remove support for script &."
nex3 authored
241
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
242 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.4.0).
243
e6f0edb @nex3 Revert "Remove support for script &."
nex3 authored
244 ### Using `&` in SassScript
245
246 For a long time, Sass has supported a special
247 {file:SASS_REFERENCE.md#parent-selector "parent selector", `&`}, which is used
248 when nesting selectors to describe how a nested selector relates to the
249 selectors above it. Until now, this has only been usable in selectors, but now
250 it can be used in SassScript as well.
251
252 In a SassScript expression, `&` refers to the current parent selector. It's a
253 comma-separated list of space-separated lists. For example:
254
255 .foo.bar .baz.bang, .bip.qux {
256 $selector: &;
257 }
258
259 The value of `$selector` is now `((".foo.bar" ".baz.bang"), ".bip.qux")`. The
260 compound selectors are quoted here to indicate that they're strings, but in
261 reality they would be unquoted.
262
263 If there is no parent selector, the value of `&` will be null. This means you
264 can use it in a mixin to detect whether a parent selector exists:
265
266 @mixin does-parent-exist {
267 @if & {
268 &:hover {
269 color: red;
270 }
467bd89 @chriseppstein Fix typo
chriseppstein authored
271 } @else {
e6f0edb @nex3 Revert "Remove support for script &."
nex3 authored
272 a {
273 color: red;
274 }
275 }
276 }
277
f701698 @nex3 Add a CHANGELOG entry about selector functions.
nex3 authored
278 ### Selector Functions
279
280 Complementing the ability to use `&` in SassScript, there's a new suite of
281 functions that use Sass's powerful `@extend` infrastructure to allow users to
282 manipulate selectors. These functions take selectors in the fully-parsed format
283 returned by `&`, plain strings, or anything in between. Those that return
284 selectors return them in the same format as `&`.
285
286 * The {Sass::Script::Functions#selector_nest `selector-nest($selectors...)`
287 function} nests each selector within one another just like they would be
288 nested in the stylesheet if you wrote them separated by spaces. For example,
289 `selector-nest(".foo, .bar", ".baz")` returns `.foo .baz, .bar .baz` (well,
290 technically `(("foo" ".baz") (".bar" ".baz"))`).
291
292 * The {Sass::Script::Functions#selector_append `selector-append($selectors...)`
293 function} concatenates each selector without a space. It handles selectors
294 with commas gracefully, so it's safer than just concatenating the selectors
295 using `#{}`. For example, `selector-append(".foo, .bar", "-suffix")` returns
296 `.foo-suffix, .bar-suffix`.
297
298 * The {Sass::Script::Functions#selector_extend `selector-extend($selector,
299 $extendee, $extender)` function} works just like `@extend`. It adds new
300 selectors to `$selector` as though you'd written `$extender { @extend
301 $extendee; }`.
302
303 * The {Sass::Script::Functions#selector_replace `selector-replace($selector,
304 $original, $replacement)` function} replaces all instances of `$original` in
305 `$selector` with `$replacement`. It uses the same logic as `@extend`, so you
306 can replace complex selectors with confidence.
307
308 * The {Sass::Script::Functions#selector_unify `selector-unify($selector1,
309 $selector2)` function} returns a selector that matches only elements matched
310 by both `$selector1` and `$selector2`.
311
312 * The {Sass::Script::Functions#is_superselector `is-superselector($super, $sub)`
313 function} returns whether or not `$super` matches a superset of the elements
314 `$sub` matches.
315
316 * The {Sass::Script::Functions#simple_selectors `simple-selectors($selector)`
317 function} takes only a selector with no commas or spaces (that is, a [compound
318 selector](http://dev.w3.org/csswg/selectors4/#structure)). It returns the list
319 of simple selectors that make up that compound selector.
320
321 * The {Sass::Script::Functions#selector_parse `selector-parse($selector)`
322 function} takes a selector in any format accepted by selector functions and
323 returns it in the same format returned by `&`. It's useful for getting a
324 selector into a consistent format before manually manipulating its contents.
325
326 One of the most straightforward applications of selector functions and `&` is
327 adding multiple suffixes to the same parent selector. For example:
328
329 .list {
330 @at-root #{selector-append(&, "--big", &, "--active")} {
331 color: red;
332 }
333 }
334
4e9d149 @nex3 Add support for all the Values and Units level 3 units.
nex3 authored
335 ### Smaller Improvements
336
4da1c1a @nex3 Enable sourcemaps by default.
nex3 authored
337 * Sourcemaps are now generated by default when using the `sass` or `scss`
338 executables and when using Sass as a plugin. This can be disabled by passing
339 `--sourcemap=none` on the command line or setting the `:sourcemap` option to
340 `:none` in Ruby.
341
342 * If a relative URI from a sourcemap to a Sass file can't be generated, it will
343 now fall back to using an absolute "file:" URI. In addition,
344 `--sourcemap=file` can be passed on the command line to force all URIs to Sass
345 files to be absolute.
346
dd48bb9 @nex3 Support --sourcemap=inline for sourcesContent source maps.
nex3 authored
347 * To guarantee that a sourcemap will be portable, `--sourcemap=inline` can be
348 passed to include the full source text in the sourcemap. Note that this can
349 cause very large sourcemaps to be generated for large projects.
350
2a69d19 @nex3 Add a changelog entry.
nex3 authored
351 * `@extend` can now extend selectors within selector pseudoclasses such as
352 `:not` and `:matches`. This also means that placeholder selectors can be used
3bd7fc0 @nex3 Add several features detectable via feature-exists.
nex3 authored
353 within selector pseudoclasses. This behavior can be detected using
354 `feature-exists(extend-selector-pseudoclass)`.
2a69d19 @nex3 Add a changelog entry.
nex3 authored
355
f7d1439 @nex3 Add an @error directive.
nex3 authored
356 * Sass now supports an `@error` directive that prints a message as a fatal
357 error. This is useful for user-defined mixins and functions that want to
082c26b @nex3 Add a feature-exists feature for @error.
nex3 authored
358 validate arguments and throw useful errors for unexpected conditions. Support
359 for this directive can be detected using `feature-exists(at-error)`.
f7d1439 @nex3 Add an @error directive.
nex3 authored
360
b80a77a @nex3 Add a CHANGELOG entry for color representation preservation.
nex3 authored
361 * When using colors in SassScript, the original representation of the color will
362 be preserved wherever possible. If you write `#f00`, it will be rendered as
363 `#f00`, not as `red` or `#ff0000`. In compressed mode, Sass will continue to
364 choose the most compact possible representation for colors.
365
4e9d149 @nex3 Add support for all the Values and Units level 3 units.
nex3 authored
366 * Add support for unit arithmetic with many more units, including angles, times,
3bd7fc0 @nex3 Add several features detectable via feature-exists.
nex3 authored
367 frequencies, and resolutions. This behavior can be detected using
368 `feature-exists(units-level-3)`.
4e9d149 @nex3 Add support for all the Values and Units level 3 units.
nex3 authored
369
2b87b83 @nex3 Update encoding support to match the Syntax Level 3 spec.
nex3 authored
370 * Sass now follows the [CSS Syntax Level 3][encodings level 3]
371 specification for determining a stylesheet's encoding. In addition,
ef0a258 @alanhogan Correct changelog typo: “not only” → “now only”
alanhogan authored
372 it now only emits UTF-8 CSS rather than trying to match the source
2b87b83 @nex3 Update encoding support to match the Syntax Level 3 spec.
nex3 authored
373 encoding.
374
375 [encodings level 3]: http://www.w3.org/TR/2013/WD-css-syntax-3-20130919/#determine-the-fallback-encoding
376
ac554ff @nex3 Support scientific notation and identifier units in numbers.
nex3 authored
377 * Sass now allows numbers to be written using scientific notation. It will not
378 emit numbers in scientific notation until it's more widely supported in
379 browsers.
380
381 * Sass now allows almost any identifier to be used as a custom numeric unit.
382 Identifiers that are ambiguous with subtraction, such as `px-1px`, are
383 disallowed.
384
6434174 @nex3 Support ids in SassScript.
nex3 authored
385 * Sass now supports using ids as values in SassScript as defined in the CSS
386 Basic User Interface Module. They're treated as unquoted strings.
387
c24ed3c @nex3 Follow the CSS spec when parsing strings.
nex3 authored
388 * SassScript strings and `@import` directives now support the full CSS string
389 grammar. This includes handling escape codes and ignoring backslashes followed
390 by newlines.
391
f2946e1 @nex3 Support writing CSS exception information when not using --watch.
nex3 authored
392 * When the `sass` and `scss` executables encounter an error, they will now
393 produce a CSS file describing that error. Previously this was enabled only for
394 `--watch` and `--update` mode; now it's enabled whenever a CSS file is being
395 written to disk.
396
6c1613a @nex3 Add a changelog entry for command-line option changes.
nex3 authored
397 * The command-line `--help` documentation for the `sass`, `scss`, and
398 `sass-convert` executables is revised and re-organized.
399
c02feeb @nex3 Add a changelog entry and some more docs for the new map-remove.
nex3 authored
400 * The `map-remove` function now allows multiple map keys to be removed at once.
401
3db2df6 @nex3 Add a CHANGELOG entry for rebeccapurple.
nex3 authored
402 * The new `rebeccapurple` color is now supported.
403
100e4e8 @nex3 Clamp arguments to rgb/rgba/hsl/hsla.
nex3 authored
404 * The `rgb()`, `rgba()`, `hsl()`, and `hsla()` functions now follow the CSS spec
405 by clamping their arguments to the valid ranges rather than emitting an error.
406 Sass-specific color functions still throw errors for out-of-range values.
407
3fa938e @nex3 Add a CHANGELOG entry.
nex3 authored
408 * Sass will now emit a warning when a named color is used directly in
409 interpolation (`#{}`) in a context where the hex representation would likely
410 be invalid. This should help users avoid having their stylesheets break in
411 compressed output mode.
57c47ce @nex3 Avoid emitting newlines for bubbled media queries in compressed mode.
nex3 authored
412
413 * Fix a bug where some `@media` queries would be followed by newlines in
414 compressed mode.
415
85c7160 @nex3 Add a changelog entry about index() returning null.
nex3 authored
416 ### Backwards Incompatibilities -- Must Read!
417
2283d29 @nex3 Rip out the deprecated addition of . to the load path.
nex3 authored
418 * The current working directory will no longer be placed onto the Sass load path
419 by default. If you need the current working directory to be available,
420 set `SASS_PATH=.` in your shell's environment.
421
f16ef47 @nex3 Rip out support for passing lists of pairs to map functions.
nex3 authored
422 * Sass will now throw an error when a list of pairs is passed to a map function.
423
f2e6e22 @nex3 Rip out deprecated argument names.
nex3 authored
424 * `mix()`'s deprecated argument names, `$color-1` and `$color-2`, will now throw
425 errors. Use `$color1` and `$color2` instead.
426
427 * `comparable()`'s deprecated argument names, `$number-1` and `$number-2`, will
428 now throw errors. Use `$number1` and `$number2` instead.
429
430 * `percentage()`'s, `round()`'s, `ceil()`'s, `floor()`'s, and `abs()`'s
431 deprecated argument name, `$value`, will now throw an error. Use `$number`
432 instead.
433
85c7160 @nex3 Add a changelog entry about index() returning null.
nex3 authored
434 * `index()` now returns `null` rather than `false` if the value isn't found in
435 the list.
436
f0698e1 @nex3 Make local variables shadow globals by default.
nex3 authored
437 * All variable assignments not at the top level of the document are now local by
438 default. If there's a global variable with the same name, it won't be
439 overwritten unless the `!global` flag is used. For example, `$var: value
3bd7fc0 @nex3 Add several features detectable via feature-exists.
nex3 authored
440 !global` will assign to `$var` globally. This behavior can be detected using
441 `feature-exists(global-variable-shadowing)`.
f0698e1 @nex3 Make local variables shadow globals by default.
nex3 authored
442
e8b1fb7 @nex3 Deprecate rather than disallow raw newlines in strings.
nex3 authored
443 * Unescaped newlines in SassScript strings in SCSS are deprecated, since they're
444 invalid according to the CSS string grammar. To include a newline in a string,
445 use "\a" or "\a " as in CSS.
c24ed3c @nex3 Follow the CSS spec when parsing strings.
nex3 authored
446
fe6b984 @nex3 Deprecate the subject selector operator.
nex3 authored
447 * The subject selector operator, `!`, is deprecated and will produce a warning
448 if used. The `:has()` selector should be used instead.
449
e4fc7f6 @nex3 Propagate quote-removal down through interpolated structures.
nex3 authored
450 * Quoted strings in lists will now be unquoted when those lists are interpolated
451 in anything else. This makes it much easier to add user-defined strings to
452 selector lists returned by `&`. This is unlikely to be behavior anyone's
453 relying on and would be difficult to deprecate gracefully, so there will be no
454 deprecation period for this change.
455
86e991a @nex3 Bump VERSION to 3.3.14.
nex3 authored
456 ## 3.3.14 (1 August 2014)
071b4b5 @nex3 Fix special function parsing.
nex3 authored
457
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
458 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.14).
459
071b4b5 @nex3 Fix special function parsing.
nex3 authored
460 * Improved edge-case parsing of special-syntax functions like `calc()` and
461 `expression()`.
462
f3d2dbd @nex3 Fix --update with absolute Windows paths.
nex3 authored
463 * Fixed a bug when using `--update` with absolute paths on Windows.
464
bfb8d0d @chriseppstein Version 3.3.13
chriseppstein authored
465 ## 3.3.13 (31 July 2014)
466
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
467 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.13).
468
bfb8d0d @chriseppstein Version 3.3.13
chriseppstein authored
469 * Fixed a bug on ruby 2.0 where watching several folders was broken.
470 Work around for a [bug in listen](https://github.com/guard/listen/issues/243).
471
bccfc70 @chriseppstein 3.3.12
chriseppstein authored
472 ## 3.3.12 (29 July 2014)
e5c73b0 @chriseppstein CHANGELOG updates for sass compiler improvements.
chriseppstein authored
473
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
474 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.12).
475
e5c73b0 @chriseppstein CHANGELOG updates for sass compiler improvements.
chriseppstein authored
476 * The Sass::Compiler class has a number of new minor features to support
6210346 @chriseppstein Merge remote-tracking branch 'nex3/stable' into stable
chriseppstein authored
477 Compass's compilation needs:
e5c73b0 @chriseppstein CHANGELOG updates for sass compiler improvements.
chriseppstein authored
478
479 * The template_deleted event of the Sass Compiler class now runs before the
480 side-effect events.
481 * The Sass Compiler class can now be used to clean output files.
482 * The Sass Compiler class now exposes an updating_stylesheets callback
483 that runs before stylesheets are mass-updated.
484 * The Sass Compiler class now exposes a the compilation_starting callback
485 that runs before an individual stylesheet is compiled.
486 * The Sass Compiler class now runs the updated_stylesheets callback
487 after stylesheets are mass-updated.
488 * The Sass Compiler can now be made to skip the initial update
489 when watching.
490
7389dba @nex3 Bump VERSION to 3.3.11.
nex3 authored
491 ## 3.3.11 (25 July 2014)
74e8157 @nex3 Correctly handle 0 in str-slice.
nex3 authored
492
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
493 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.11).
494
74e8157 @nex3 Correctly handle 0 in str-slice.
nex3 authored
495 * `str-slice()` now correctly returns an empty string when `$end-at` is 0.
496
0592350 @nex3 Bump VERSION to 3.3.10
nex3 authored
497 ## 3.3.10 (11 July 2014)
adc12b9 @nex3 Properly URL-encode URLs in sourcemaps.
nex3 authored
498
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
499 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.10).
500
adc12b9 @nex3 Properly URL-encode URLs in sourcemaps.
nex3 authored
501 * Properly encode URLs in sourcemaps.
502
9202b95 @nex3 Bump VERSION to 3.3.9.
nex3 authored
503 ## 3.3.9 (27 June 2014)
9e58d2e @nex3 Disallow functions named "and", "or", or "not".
nex3 authored
504
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
505 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.9).
506
9e58d2e @nex3 Disallow functions named "and", "or", or "not".
nex3 authored
507 * Defining a function named "and", "or", or "not" is now an error at
508 definition-time. This isn't considered a backwards-incompatible change because
509 although these functions could be defined previously, they could never be
510 successfully invoked.
511
21366e5 @nex3 Add a changelog entry for File.exists?
nex3 authored
512 * Fix deprecation warnings for using `File.exists?` on recent Ruby versions.
513
1f4c5a2 @nex3 Properly check nesting within @at-root.
nex3 authored
514 * Fix a bug where `@extend` within `@at-root` could crash the compiler.
515
759090a @nex3 Don't crash if we get an Errno::EPERM when chmodding.
nex3 authored
516 * Gracefully handle the inability to change cache files' permissions.
517
a2fd37e @nex3 Bump VERSION to 3.3.8.
nex3 authored
518 ## 3.3.8 (20 May 2014)
b5c2c53 @nex3 Don't split a block with @at-root unless necessary.
nex3 authored
519
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
520 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.8).
521
b5c2c53 @nex3 Don't split a block with @at-root unless necessary.
nex3 authored
522 * When a use of `@at-root` doesn't add any new rules, it will no longer split
523 its containing block in two ([issue 1239][]).
524
1675d67 @nex3 Fix a sass-convert comma-folding bug.
nex3 authored
525 * Fix a `sass-convert` bug where rules would occasionally be folded together
526 incorrectly when converting from CSS to Sass.
527
274cd1b @nex3 Fix @media interpolation errors.
nex3 authored
528 * Fix error messages for dynamically-generated `@media` queries with empty
529 queries.
530
b5c2c53 @nex3 Don't split a block with @at-root unless necessary.
nex3 authored
531 [issue 1239]: https://github.com/nex3/sass/issues/1239
532
03fe0c9 @nex3 Bump VERSION to 3.3.7.
nex3 authored
533 ## 3.3.7 (2 May 2014)
1059b98 @nex3 Properly set default options in Rails 3.0.
nex3 authored
534
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
535 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.7).
536
1059b98 @nex3 Properly set default options in Rails 3.0.
nex3 authored
537 * Properly set the default `Sass::Plugin` options in Rails 3.0.
538
2833775 @nex3 Add a changelog entry.
nex3 authored
539 * Fix a few cases where source ranges were being computed incorrectly for
540 SassScript expressions.
541
4e1d0ce @nex3 Bump VERSION to 3.3.6.
nex3 authored
542 ## 3.3.6 (25 April 2014)
d45d0d2 @nex3 Respect CSS "/" in Number#inspect.
nex3 authored
543
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
544 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.6).
545
d45d0d2 @nex3 Respect CSS "/" in Number#inspect.
nex3 authored
546 * The `inspect()` function will only interpret `/` between numbers as division
547 under the same circumstances that it would be interpreted as division when
548 used in a property.
549
fd0718d @nex3 Fix another comment-parsing bug.
nex3 authored
550 * Fix several cases where parsing pathological comments would cause Sass to take
fb36e65 @nex3 Fix a comment-parsing bug.
nex3 authored
551 exponential time and consume all available CPU.
552
48f303d @nex3 Bump VERSION to 3.3.5.
nex3 authored
553 ## 3.3.5 (14 April 2014)
66f4e76 @nex3 Bundle a fork of listen that falls back to polling.
nex3 authored
554
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
555 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.5).
556
66f4e76 @nex3 Bundle a fork of listen that falls back to polling.
nex3 authored
557 * Fix `LoadError`s when using `--watch` with the bundled version of Listen.
558
0cc2437 @nex3 Properly parse negative numbers preceded by a comment.
nex3 authored
559 * Properly parse negative numbers preceded by a comment.
560
dafaa32 @nex3 Avoid unnecessary interpolation in `sass-convert`.
nex3 authored
561 * Avoid unnecessary interpolation when running `sass-convert` on media queries.
562
ded47cb @nex3 Add a changelog entry.
nex3 authored
563 * Avoid freezing Ruby's `true` or `false` values.
564
e267c43 @nex3 Bump VERSION to 3.3.4.
nex3 authored
565 ## 3.3.4 (21 March 2014)
b5e20db @nex3 Improve the warning message for index(...) == false.
nex3 authored
566
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
567 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.4).
568
b5e20db @nex3 Improve the warning message for index(...) == false.
nex3 authored
569 * Improve the warning message for `index(...) == false`.
570
e72c6d7 @nex3 Fix the use of unknown directives within @at-root.
nex3 authored
571 * Fix the use of directives like `@font-face` within `@at-root`.
572
9b10d43 @nex3 Fix a Windows path canonicalization bug.
nex3 authored
573 * Fix a `sass --watch` issue on Windows where too many files would be updated
574 on every change.
575
63bc4a2 @nex3 Add a changelog entry for freezing nil.
nex3 authored
576 * Avoid freezing Ruby's `nil` value.
577
274bebd @nex3 Bump VERSION to 3.3.3.
nex3 authored
578 ## 3.3.3 (14 March 2014)
4fefedb @nex3 Add a changelog entry for the marshaling fix.
nex3 authored
579
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
580 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.3).
581
4fefedb @nex3 Add a changelog entry for the marshaling fix.
nex3 authored
582 * Fix a bug in Sass that was causing caching errors when unserializable objects
583 were in the Ruby options hash. Note that these errors may persist when using
584 Sass with Sprockets until the Sprockets importer is made serializable.
585
827e186 @nex3 Bump VERSION to 3.3.2.
nex3 authored
586 ## 3.3.2 (11 March 2014)
fedf159 @nex3 Fix a Listen loading bug.
nex3 authored
587
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
588 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.2).
589
fedf159 @nex3 Fix a Listen loading bug.
nex3 authored
590 * Fix a bug with loading the bundled version of Listen.
591
bd070e2 @nex3 Bump VERSION to 3.3.1.
nex3 authored
592 ## 3.3.1 (10 March 2014)
c6ebdfd @nex3 Add changelog entries.
nex3 authored
593
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
594 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.1).
595
c6ebdfd @nex3 Add changelog entries.
nex3 authored
596 This release includes a number of fixes for issues that popped up in the
597 immediate aftermath of the 3.3.0 release.
598
599 ### Re-bundle [listen](http://github.com/guard/listen)
600
601 With 3.3.0, we un-bundled the listen library from Sass. We did so hoping that it
602 would make it easier for users to keep up to date with the latest features and
603 bug fixes, but unfortunately listen 2.0 and on have dropped support for Ruby
604 1.8.7, which Sass continues to support. Further complicating things, RubyGems
605 lacks the ability to install only the version of listen supported by the current
606 Ruby installation, so we were unable to use a standard Gem dependency on listen.
607
608 To work around this, we tried to piggyback on RubyGems' native extension support
609 to install the correct version of listen when Sass was installed. This is what
610 we released in 3.3.0. However, this caused numerous problems in practice,
611 especially for users on Windows. It quickly became clear that this wasn't a
612 viable long-term solution.
613
614 As such, we're going back to the bundling strategy. While not perfect, this
615 worked well enough for the duration of the Sass 3.2 release, and we expect it to
616 cause much less havoc than un-bundling. We'll bundle listen 1.3.1, the most
617 recent version that retains Ruby 1.8.7 compatibility. If a user of Sass has a
618 more recent version of listen installed, that will be preferred to the bundled
619 version. Listen versions through 2.7.0 have been tested, and we expect the code
620 to work without modification on versions up to 3.0.0, assuming no major API
621 changes.
622
623 ### Smaller Changes
624
625 * Fixed a small interface incompatibility with listen 2.7.0.
626
627 * Fix some corner cases of path handling on Windows.
628
629 * Avoid errors when trying to watch read-only directories using listen 1.x.
630
bd8d8db @nex3 Bump VERSION to 3.3.0.
nex3 authored
631 ## 3.3.0 (7 March 2014)
d19e769 @nex3 Consider files with the same name to be an error.
nex3 authored
632
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
633 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.3.0).
634
442bef5 @nex3 Add a changelog entry about maps and @each.
nex3 authored
635 ### SassScript Maps
636
637 SassScript has a new data type: maps. These are associations from SassScript
638 values (often strings, but potentially any value) to other SassScript values.
639 They look like this:
640
641 $map: (key1: value1, key2: value2, key3: value3);
642
643 Unlike lists, maps must always be surrounded by parentheses. `()` is now an
644 empty map in addition to an empty list.
645
646 Maps will allow users to collect values into named groups and access those
647 groups dynamically. For example, you could use them to manage themes for your
648 stylesheet:
649
650 $themes: (
651 mist: (
652 header: #DCFAC0,
653 text: #00968B,
654 border: #85C79C
655 ),
656 spring: (
657 header: #F4FAC7,
658 text: #C2454E,
659 border: #FFB158
660 ),
661 // ...
662 );
663
664 @mixin themed-header($theme-name) {
665 h1 {
666 color: map-get(map-get($themes, $theme-name), header);
667 }
668 }
669
670 There are a variety of functions for working with maps:
671
672 * The {Sass::Script::Functions#map_get `map-get($map, $key)` function} returns
673 the value in the map associated with the given key. If no value is found, it
674 returns `null`.
675
676 * The {Sass::Script::Functions#map_merge `map-merge($map1, $map2)` function}
677 merges two maps together into a new map. If there are any conflicts, the
678 second map takes precedence, making this a good way to modify values in a map
679 as well.
680
f5b5409 @nex3 Add a map-remove() function for removing keys from a map.
nex3 authored
681 * The {Sass::Script::Functions#map_remove `map-remove($map, $key)` function}
682 returns a new map with a key removed.
683
442bef5 @nex3 Add a changelog entry about maps and @each.
nex3 authored
684 * The {Sass::Script::Functions#map_keys `map-keys($map)` function} returns all
685 the keys in a map as a comma-separated list.
686
687 * The {Sass::Script::Functions#map_values `map-values($map)` function} returns
688 all the values in a map as a comma-separated list.
689
690 * The {Sass::Script::Functions#map_has_key `map-has-key($map, $key)` function}
691 returns whether or not a map contains a pair with the given key.
692
693 All the existing list functions also work on maps, treating them as lists of
694 pairs. For example, `nth((foo: 1, bar: 2), 1)` returns `foo 1`. Maps can also be
695 used with `@each`, using the new multiple assignment feature (see below):
696
697 @each $header, $size in (h1: 2em, h2: 1.5em, h3: 1.2em) {
698 #{$header} {
699 font-size: $size;
700 }
701 }
702
703 Produces:
704
705 h1 {
706 font-size: 2em;
707 }
708
709 h2 {
710 font-size: 1.5em;
711 }
712
713 h3 {
714 font-size: 1.2em;
715 }
716
a900629 @nex3 Add changelog and reference documentation about variable argument maps.
nex3 authored
717 #### Variable Keyword Arguments
718
719 Maps can be passed as variable arguments, just like lists. For example, if
720 `$map` is `(alpha: -10%, "blue": 30%)`, you can write `scale-color($color,
721 $map...)` and it will do the same thing as `scale-color($color, $alpha: -10%,
722 $blue: 30%)`. To pass a variable argument list and map at the same time, just do
723 the list first, then the map, as in `fn($list..., $map...)`.
724
725 You can also access the keywords passed to a function that accepts a variable
726 argument list using the new {Sass::Script::Functions#keywords `keywords($args)`
727 function}. For example:
728
729 @function create-map($args...) {
730 @return keywords($args);
731 }
732
733 create-map($foo: 10, $bar: 11); // returns (foo: 10, bar: 11)
734
735 #### Lists of Pairs as Maps
736
5eed7dd @nex3 Allow lists of pairs to be passed to map functions.
nex3 authored
737 The new map functions work on lists of pairs as well, for the time being. This
738 feature exists to help libraries that previously used lists of pairs to simulate
739 maps. These libraries can now use map functions internally without introducing
740 backwards-incompatibility. For example:
741
742 $themes: (
743 mist (
744 header #DCFAC0,
745 text #00968B,
746 border #85C79C
747 ),
748 spring (
749 header #F4FAC7,
750 text #C2454E,
751 border #FFB158
752 ),
753 // ...
754 );
755
756 @mixin themed-header($theme-name) {
757 h1 {
758 color: map-get(map-get($themes, $theme-name), header);
759 }
760 }
761
762 Since it's just a migration feature, using lists of pairs in place of maps is
763 already deprecated. Library authors should encourage their users to use actual
764 maps instead.
765
267aa0d @nex3 Re-organize the changelog.
nex3 authored
766 ### Source Maps
767
768 Sass now has the ability to generate standard JSON [source maps][] of a format
769 that will soon be supported in most major browsers. These source maps tell the
770 browser how to find the Sass styles that caused each CSS style to be generated.
771 They're much more fine-grained than the old Sass-specific debug info that was
772 generated; rather than providing the source location of entire CSS rules at a
773 time, source maps provide the source location of each individual selector and
774 property.
775
776 Source maps can be generated by passing the `--sourcemap` flag to the `sass`
777 executable, by passing the {file:SASS_REFERENCE.md#sourcemap-option `:sourcemap`
778 option} to \{Sass::Plugin}, or by using the
779 \{Sass::Engine#render\_with\_sourcemap} method. By default, Sass assumes that
780 the source stylesheets will be made available on whatever server you're using,
781 and that their relative location will be the same as it is on the local
782 filesystem. If this isn't the case, you'll need to make a custom class that
783 extends \{Sass::Importers::Base} or \{Sass::Importers::Filesystem} and overrides
784 \{Sass::Importers::Base#public\_url `#public_url`}.
785
786 Thanks to Alexander Pavlov for implementing this.
787
788 [source maps]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?hl=en_US&pli=1&pli=1
789
790 #### `@at-root`
791
792 Sass 3.3 adds the `@at-root` directive, which is a way to tell Sass to
793 put a collection of rules at the top-level root of the document. The
794 easiest way to use it is with a selector:
795
796 .badge {
797 @at-root .info { ... }
798 @at-root .header { ... }
799 }
800
801 In addition to using `@at-root` on a single selector, you can also use it on a
802 whole block of them. For example:
803
804 .badge {
805 @at-root {
806 .info { ... }
807 .header { ... }
808 }
809 }
810
811 Also produces:
812
813 .info { ... }
814 .header { ... }
815
816 #### `@at-root (without: ...)` and `@at-root (with: ...)`
817
818 By default, `@at-root` just excludes selectors. However, it's also
819 possible to use `@at-root` to move outside of nested directives such
820 as `@media` as well. For example:
821
822 @media print {
823 .page {
824 width: 8in;
825 @at-root (without: media) {
826 color: red;
827 }
828 }
829 }
830
831 produces:
832
833 @media print {
834 .page {
835 width: 8in;
836 }
837 }
838 .page {
839 color: red;
840 }
841
842 You can use `@at-root (without: ...)` to move outside of any
843 directive. You can also do it with multiple directives separated by a
844 space: `@at-root (without: media supports)` moves outside of both
845 `@media` and `@supports` queries.
846
847 There are two special values you can pass to `@at-root`. "rule" refers
848 to normal CSS rules; `@at-root (without: rule)` is the same as
849 `@at-root` with no query. `@at-root (without: all)` means that the
850 styles should be moved outside of *all* directives and CSS rules.
851
852 If you want to specify which directives or rules to include, rather
853 than listing which ones should be excluded, you can use `with` instead
854 of `without`. For example, `@at-root (with: rule)` will move outside
855 of all directives, but will preserve any CSS rules.
856
bf5b30f @nex3 Add documentation for source maps.
nex3 authored
857 ### Smaller Improvements
858
3f1498a @nex3 Support &-suffix.
nex3 authored
859 * The parent selector, `&`, can be used with an identifier suffix. For
860 example, `&-suffix` and `&_suffix` are now legal. The suffix will be
861 added to the end of the parent selector, and will throw an error if
862 this isn't possible. `&` must still appear at the beginning of a
863 compound selector -- that is, `.foo-&` is still illegal.
864
a81052e @nex3 Add an extension script to install listen along with Sass.
nex3 authored
865 * [listen](http://github.com/guard/listen) is no longer bundled with
866 Sass, nor is it a standard RubyGems dependency. Instead, it's
867 automatically installed along with Sass in order to ensure that the
868 user ends up with a version of Listen that works with their local
869 Ruby version.
1db7476 @nex3 Various small tweaks.
nex3 authored
870
871 * Sass now has numerous functions for working with strings:
872 \{Sass::Script::Functions#str_length `str-length`} will return the length of a
873 string; \{Sass::Script::Functions#str_insert `str-insert`} will insert one
874 string into another; \{Sass::Script::Functions#str_index `str-index`} will
875 return the index of a substring within another string;
876 \{Sass::Script::Functions#str_slice `str-slice`} will slice a substring from a
877 string; \{Sass::Script::Functions#to_upper_case `to-upper-case`} will
878 transform a string to upper case characters; and
879 \{Sass::Script::Functions#to_lower_case `to-lower-case`} will transform a
880 string to lower case characters.
881
6a11a37 @nex3 Add a changelog entry for list-separator.
nex3 authored
882 * A \{Sass::Script::Functions#list_separator `list-separator`} function has been
883 added to determine what separator a list uses. Thanks to [Sam
884 Richard](https://github.com/Snugug).
885
1db7476 @nex3 Various small tweaks.
nex3 authored
886 * Custom Ruby functions can now access the global environment, which
887 allows them the same power as Sass-based functions with respect to
888 reading and setting variables defined elsewhere in the stylesheet.
889
f890339 @chriseppstein Set the nth element in a list.
chriseppstein authored
890 * The `set-nth($list, $n, $value)` function lets you construct a new
891 list based on `$list`, with the nth element changed to the value
892 specified.
893
054b486 @nex3 Allow mixin recursion.
nex3 authored
894 * In order to make it easier for mixins to process maps, they may now
895 recursively call themselves and one another. It is no longer an
896 error to have a mixin `@include` loop.
897
0b86e2b @nex3 Support "transparent" as a color name.
nex3 authored
898 * Add "grey" and "transparent" as recognized SassScript colors. Thanks to [Rob
54ea0d4 @robwierzbowski Add grey to the list of Sass Script colors.
robwierzbowski authored
899 Wierzbowski](https://github.com/robwierzbowski).
900
3815575 @chriseppstein Cleanup YARD documentation.
chriseppstein authored
901 * Add a function \{Sass::Script::Functions#unique\_id `unique-id()`} that will
a4bb6c0 @nex3 Clean up f3be0f40b7c5072635b2d6dab772f2c29e8d629a a little.
nex3 authored
902 return a CSS identifier that is unique within the scope of a single CSS file.
f3be0f4 @chriseppstein Added Sass Function: unique-id()
chriseppstein authored
903
2f83fec @ggilder Allow negative indices in `nth` list function
ggilder authored
904 * Allow negative indices into lists when using `nth()`.
905
e3f1f9c @chriseppstein Sass feature detection.
chriseppstein authored
906 * You can now detect the presence of a Sass feature using the new function
0c5a551 @chriseppstein Rename sass-supports() to feature-exists().
chriseppstein authored
907 `feature-exists($feature-name)`. There are no detectable features in this
3f4b81a @chriseppstein Don't have any known features in the 3.3 release.
chriseppstein authored
908 release, this is provided so that subsequent releases can begin to
1b45a55 @chriseppstein Allow plugins to expose their features too.
chriseppstein authored
909 use it. Additionally, plugins can now expose their functionality
0c5a551 @chriseppstein Rename sass-supports() to feature-exists().
chriseppstein authored
910 through `feature-exists` by calling `Sass.add_feature(feature_name)`. Features
1b45a55 @chriseppstein Allow plugins to expose their features too.
chriseppstein authored
911 exposed by plugins must begin with a dash to distinguish them from
912 official features.
8738d59 @chriseppstein Sass function to test if a mixin exists.
chriseppstein authored
913
914 * It is now possible to determine the existence of different Sass
915 constructs using these new functions:
916
67af938 @chriseppstein Address code review comments
chriseppstein authored
917 * `variable-exists($name)` checks if a variable resolves in the
8738d59 @chriseppstein Sass function to test if a mixin exists.
chriseppstein authored
918 current scope.
67af938 @chriseppstein Address code review comments
chriseppstein authored
919 * `global-variable-exists($name)` checks if a global variable of the
8738d59 @chriseppstein Sass function to test if a mixin exists.
chriseppstein authored
920 given name exists.
67af938 @chriseppstein Address code review comments
chriseppstein authored
921 * `function-exists($name)` checks if a function exists.
922 * `mixin-exists($name)` checks if a mixin exists.
e3f1f9c @chriseppstein Sass feature detection.
chriseppstein authored
923
7cd4753 @nex3 Allow function calls via a script expression.
nex3 authored
924 * You can call a function by name by passing the function name to the
2376ba9 @nex3 Small changelog copy edit.
nex3 authored
925 call function. For example, `call(nth, a b c, 2)` returns `b`.
7cd4753 @nex3 Allow function calls via a script expression.
nex3 authored
926
8c564fa @fblee Properly convert comments after selectors in the indented syntax.
fblee authored
927 * Comments following selectors in the indented syntax will be correctly
928 converted using `sass-convert`.
929
442bef5 @nex3 Add a changelog entry about maps and @each.
nex3 authored
930 * `@each` now supports "multiple assignment", which makes it easier to iterate
931 over lists of lists. If you write `@each $var1, $var2, $var3 in a b c, d e f,
932 g h i`, the elements of the sub-lists will be assigned individually to the
933 variables. `$var1`, `$var2`, and `$var3` will be `a`, `b` and `c`; then `d`,
934 `e`, and `f`; and then `g`, `h`, and `i`. For more information, see
935 {file:SASS_REFERENCE.md#each-multi-assign the `@each` reference}.
936
23d3440 @nex3 Move decrementing @for into the "smaller changes" changelog section.
nex3 authored
937 * `@for` loops can now go downward as well as upward. For example,
938 `@for $var from 5 through 1` will set `$var` to `5`, `4`, `3`, `2`,
939 and `1`. Thanks to [Robin Roestenburg](http://twitter.com/robinroest).
940
04fcd6b @chriseppstein CHANGLELOG entry for value helpers.
chriseppstein authored
941 * There is a new {Sass::Script::Value::Helpers convenience API} for creating
942 Sass values from within ruby extensions.
943
da06d68 @chriseppstein Make the if() function work as expected.
chriseppstein authored
944 * The `if()` function now only evaluates the argument corresponding to
945 the value of the first argument.
946
4d79f20 @nex3 Support trailing commas in lists and maps.
nex3 authored
947 * Comma-separated lists may now have trailing commas (e.g. `1, 2,
948 3,`). This also allows you to use a trailing comma to distinguish a
949 list with a single element from that element itself -- for example,
950 `(1,)` is explicitly a list containing the value `1`.
951
b8f4bab @nex3 Bubble unknown nested directives.
nex3 authored
952 * All directives that are nested in CSS rules or properties and that
953 contain more CSS rules or properties are now bubbled up through
954 their parent rules.
955
c7e9d1e @nex3 Clean up random() and its tests and docs.
nex3 authored
956 * A new `random()` function returns a random number.
957
958 * A new function inspect($value) is provided for debugging the current
959 sass representation of a value.
a4bc2e7 @chriseppstein Update changelog.
chriseppstein authored
960
625100d @nex3 Changelog cleanups.
nex3 authored
961 * The `@debug` directive now automatically inspects sass objects that are not
a4bc2e7 @chriseppstein Update changelog.
chriseppstein authored
962 strings.
963
d9ff64e @nex3 Don't emit numbers in scientific notation.
nex3 authored
964 * Numbers will no longer be emitted in scientific notation.
965
e92c472 @nex3 Fix up the internal representation of indented-syntax silent comments.
nex3 authored
966 * `sass-convert` will now correctly handle silent (`//`-style) comments
967 contained within loud (`/* */`-style) comments.
968
8030459 @nex3 Move the changelog entry for mod with units.
nex3 authored
969 * Allow modulo arithmetic for numbers with compatible units. Thanks to
970 [Isaac Devine](http://www.devinesystems.co.nz).
971
43e8b37 @nex3 Preserve hyphens in keyword arguments to mixins in sass-convert.
nex3 authored
972 * Keyword arguments to mixins and functions that contain hyphens will have the
973 hyphens preserved when using `sass-convert`.
974
d19e769 @nex3 Consider files with the same name to be an error.
nex3 authored
975 ### Backwards Incompatibilities -- Must Read!
976
c5e5500 @nex3 Disallow cross-directive @extends wholesale.
nex3 authored
977 * Sass will now throw an error when `@extend` is used to extend a selector
978 outside the `@media` context of the extending selector. This means the
979 following will be an error:
980
981 @media screen {
982 .foo { @extend .bar; }
983 }
984 .bar { color: blue; }
985
6b1a36d @nex3 Throw an error for failing @extends.
nex3 authored
986 * Sass will now throw an error when an `@extend` that has no effect is used. The
987 `!optional` flag may be used to avoid this behavior for a single `@extend`.
988
d19e769 @nex3 Consider files with the same name to be an error.
nex3 authored
989 * Sass will now throw an error when it encounters a single `@import` statement
990 that tries to import more than one file. For example, if you have `@import
991 "screen"` and both `screen.scss` and `_screen.scss` exist, a warning will be
c5e5500 @nex3 Disallow cross-directive @extends wholesale.
nex3 authored
992 printed.
d19e769 @nex3 Consider files with the same name to be an error.
nex3 authored
993
1560055 @nex3 Add a changelog entry about the script refactor.
nex3 authored
994 * `grey` and `transparent` are no longer interpreted as strings; they're now
995 interpreted as colors, as per the CSS spec.
996
76df5a0 @chriseppstein Deprecated: Current working directory on the load path automatically.
chriseppstein authored
997 * The automatic placement of the current working directory onto the Sass
998 load path is now deprecated as this causes unpredictable build
999 processes. If you need the current working directory to be available,
a64a10d @chriseppstein It is SASS_PATH, not SASSPATH
chriseppstein authored
1000 set `SASS_PATH=.` in your shell's environment.
76df5a0 @chriseppstein Deprecated: Current working directory on the load path automatically.
chriseppstein authored
1001
b1d8381 @nex3 Remove on_updating_stylesheet.
nex3 authored
1002 * `Sass::Compiler.on_updating_stylesheet` has been removed.
1003
d00211c @nex3 Remove Sass::Plugin.options=.
nex3 authored
1004 * `Sass::Plugin.options=` has been removed.
1005
2da3d3b @nex3 Remove Sass::Script::Number::PRECISION.
nex3 authored
1006 * `Sass::Script::Number::PRECISION` has been removed.
1007
99f544a @chriseppstein Mention some internal code changes that could break sass plugins and …
chriseppstein authored
1008 * The methods in the `Sass::Util` module can no longer be used by
1009 including it. They must be invoked on the module itself for
1010 performance reasons.
1011
1012 * Sass values have always been immutable. The ruby object that backs
1013 each sass value is now "frozen" to prevent accidental modification and
1014 for performance.
1015
1560055 @nex3 Add a changelog entry about the script refactor.
nex3 authored
1016 * Many classes in the \{Sass::Script} have been rearranged. All the value
1017 classes have been moved into \{Sass::Script::Value} (e.g.
1018 \{Sass::Script::Value::Color}, \{Sass::Script::Value::String}, etc). Their
1019 base class is now \{Sass::Script::Value::Base} instead of
1020 `Sass::Script::Literal`. All the parse tree classes have been moved into
1021 \{Sass::Script::Tree} (e.g. \{Sass::Script::Tree::Node},
1022 \{Sass::Script::Tree::Operation}, etc).
1023
1024 The old names will continue to work for the next couple releases, but they
1025 will be removed eventually. Any code using them should upgrade to the new
1026 names.
54ea0d4 @robwierzbowski Add grey to the list of Sass Script colors.
robwierzbowski authored
1027
7cd0572 @nex3 Make the first step towards new variable semantics.
nex3 authored
1028 * As part of a migration to cleaner variable semantics, assigning to
1029 global variables in a local context by default is deprecated. If
1030 there's a global variable named `$color` and you write `$color:
1031 blue` within a CSS rule, Sass will now print a warning; in the
1032 future, it will create a new local variable named `$color`. You may
1033 now explicitly assign to global variables using the `!global` flag;
1034 for example, `$color: blue !global` will always assign to the global
1035 `$color` variable.
1036
8d3ff3f @nex3 Fix the parsing of hyphens with no surrounding whitespace.
nex3 authored
1037 * Two numbers separated by a hyphen with no whitespace will now be
1038 parsed as a subtraction operation rather than two numbers in a list.
1039 That is, `2px-1px` will parse the same as `2px - 1px` rather than
1040 `2px -1px`.
1041
6607785 @nex3 Make index() return a DeprecatedFalse object rather than null.
nex3 authored
1042 * `index()`'s `false` return value when a value isn't found is deprecated. In
1043 future Sass releases it will be `null` instead, so it should be used in ways
1044 that are compatible with both `false` and `null`.
79bad1f @nex3 Have index() return null instead of false.
nex3 authored
1045
605d56e @nex3 Merge remote-tracking branch 'JonathanTR/issue-833'
nex3 authored
1046 * `mix()`'s arguments are now `$color1` and `$color2` rather than
1047 `$color-1` and `$color-2`, in keeping with other functions.
1048
1049 * `comparable()`'s arguments are now `$number1` and `$number2` rather than
1050 `$number-1` and `$number-2`, in keeping with other functions.
1051
1052 * `percentage()`, `round()`, `ceil()`, `floor()`, and `abs()` now
1053 take arguments named '$number' instead of '$value'.
1054
607608a @chriseppstein Merge branch 'stable_3_2' into stable
chriseppstein authored
1055 ## 3.2.16 (17 March 2014)
0a70483 @chriseppstein Update changelog for race condition fix.
chriseppstein authored
1056
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1057 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.16).
1058
0a70483 @chriseppstein Update changelog for race condition fix.
chriseppstein authored
1059 * Handle a race condition in the filesystem cache store when a cache
1060 entry becomes invalidated.
1061
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1062 ## 3.2.15 (7 March 2014)
4cee8ac @nex3 Fix parent selector resolutions with newlines + commas.
nex3 authored
1063
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1064 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.15).
1065
4cee8ac @nex3 Fix parent selector resolutions with newlines + commas.
nex3 authored
1066 * Support `&.foo` when the parent selector has a newline followed by a comma.
1067
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1068 ## 3.2.14 (24 January 2014)
7272135 @nex3 Add a changelog entry for da0269e7.
nex3 authored
1069
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1070 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.14).
1071
7272135 @nex3 Add a changelog entry for da0269e7.
nex3 authored
1072 * Don't crash when parsing a directive with no name in the indented syntax.
1073
53263e3 @nex3 Clean up file paths when importing.
nex3 authored
1074 * Clean up file paths when importing to avoid errors for overlong path
1075 names.
1076
439db92 @nex3 Allow functions named `true`, `false`, and `null`.
nex3 authored
1077 * Parse calls to functions named `true`, `false`, and `null` as function calls.
1078
18ed5bc @nex3 Be more conservative about moving @imports to the top.
nex3 authored
1079 * Don't move CSS `@import`s to the top of the file unless it's necessary.
1080
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1081 ## 3.2.13 (19 December 2013)
d8ae9b1 @nex3 Always perform division on numbers returned by functions.
nex3 authored
1082
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1083 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.13).
1084
d8ae9b1 @nex3 Always perform division on numbers returned by functions.
nex3 authored
1085 * Numbers returned by user-defined functions now trigger division, just like
1086 numbers stored in variables.
1087
59d3e9d @nex3 Properly escape file paths passed to Dir#[] in the FS importer.
nex3 authored
1088 * Support importing files in paths with open brackets.
1089
15e7a9e @nex3 Fix sass-convert with empty CSS rules.
nex3 authored
1090 * Fix `sass-convert`'s handling of rules with empty bodies when converting from
1091 CSS.
1092
a6f6bf5 @nex3 Fix CSS url("...") imports with media queries.
nex3 authored
1093 * Fix CSS imports using `url()` with a quoted string and media queries.
1094
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1095 ## 3.2.12 (4 October 2013)
5976d19 @nex3 Add a CHANGELOG entry for the require "thread" change.
nex3 authored
1096
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1097 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.12).
1098
5976d19 @nex3 Add a CHANGELOG entry for the require "thread" change.
nex3 authored
1099 * Add a couple missing `require`s, fixing some load errors, especially when
1100 using the command-line interface.
1101
1c7a50b @nex3 Be a little less aggressive about redundant selector elimination.
nex3 authored
1102 * Tune up some heuristics for eliminating redundant generated selectors. This
1103 will prevent some selector elimination in cases where multi-layered `@extend`
1104 is being used and where it seems intuitively like selectors shouldn't be
1105 eliminated.
1106
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1107 ## 3.2.11 (27 September 2013)
004b1bd @nex3 Teach @extend that pseudo-elements don't work like pseudo-classes.
nex3 authored
1108
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1109 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.11).
1110
004b1bd @nex3 Teach @extend that pseudo-elements don't work like pseudo-classes.
nex3 authored
1111 * Fix `@extend`'s semantics with respect to pseudo-elements. They are no longer
1112 treated identically to pseudo-classes.
5c60410 @chriseppstein Revert "Revert "Handle unary minus and plus in lists during convert.""
chriseppstein authored
1113
03af20f @chriseppstein CHANGELOG entry for issue #885's fix.
chriseppstein authored
1114 * A more understandable error is now provided when the `-E` option is
1115 passed to the Sass command line in ruby 1.8
004b1bd @nex3 Teach @extend that pseudo-elements don't work like pseudo-classes.
nex3 authored
1116
5c60410 @chriseppstein Revert "Revert "Handle unary minus and plus in lists during convert.""
chriseppstein authored
1117 * Fixed a bug in the output of lists containing unary plus or minus
1118 operations during sass <=> scss conversion.
1119
adf11a2 @mondoreale Avoid another CSS counters bug on IE7.
mondoreale authored
1120 * Avoid the [IE7 `content: counter` bug][cc bug] with `content: counters` as
1121 well.
1122
8f5d24c @nex3 Add a changelog entry about thread-safety fixes.
nex3 authored
1123 * Fix some thread-safety issues.
1124
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1125 ## 3.2.10 (26 July 2013)
651c1da @nex3 Use sass_warn for @debug.
nex3 authored
1126
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1127 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.10).
1128
651c1da @nex3 Use sass_warn for @debug.
nex3 authored
1129 * Use the Sass logger infrastructure for `@debug` directives.
1130
b575ad1 @nex3 Escape "*/" in full exceptions.
nex3 authored
1131 * When printing a Sass error into a CSS comment, escape `*/` so the comment
1132 doesn't end prematurely.
1133
0c52f5a @nex3 Preserve the bang in /*! comments.
nex3 authored
1134 * Preserve the `!` in `/*! ... */`-style comments.
1135
16eea67 @nex3 Fix an @extend trimming bug.
nex3 authored
1136 * Fix a bug where selectors were being incorrectly trimmed when using `@extend`.
1137
7842fc7 @ranvis Fix --unix-newlines/--in-place not working on Windows.
ranvis authored
1138 * Fix a bug where `sass --unix-newlines` and `sass-convert --in-place` are not
1139 working on Windows (thanks [SATO Kentaro](http://www.ranvis.com)).
1140
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1141 ## 3.2.9 (10 May 2013)
5bc6769 @nex3 Fix a mutability bug.
nex3 authored
1142
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1143 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.9).
1144
5bc6769 @nex3 Fix a mutability bug.
nex3 authored
1145 * Fix a bug where `@extend`s would occasionally cause a selector to be generated
1146 with the incorrect specificity.
1147
bea480b @nex3 Don't load guard/listen 1.0.
nex3 authored
1148 * Avoid loading [listen](http://github.com/guard/listen) v1.0, even if it's
1149 installed as a Gem (see [issue 719](https://github.com/nex3/sass/issues/719)).
1150
d7277c4 @nex3 Update the vendored listen to 0.7.3.
nex3 authored
1151 * Update the bundled version of [listen](http://github.com/guard/listen) to
1152 0.7.3.
1153
1556fe2 @nex3 Avoid IE7's content: counter bug.
nex3 authored
1154 * Automatically avoid the [IE7 `content: counter` bug][cc bug].
1155
1156 [cc bug]: http://jes.st/2013/ie7s-css-breaking-content-counter-bug/
1157
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1158 ## 3.2.8 (22 April 2013)
5ce407b @nex3 Merge remote-tracking branch 'origin/stable' into stable
nex3 authored
1159
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1160 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.8).
1161
5ce407b @nex3 Merge remote-tracking branch 'origin/stable' into stable
nex3 authored
1162 * Fix some edge cases where redundant selectors were emitted when using
1163 `@extend`.
1164
ff67c3d @nex3 Fix a list parsing bug.
nex3 authored
1165 * Fix a bug where comma-separated lists with interpolation could lose elements.
1166
5f4c6c9 @nex3 Fix a list conversion bug.
nex3 authored
1167 * Fix a bug in `sass-convert` where lists being passed as arguments to functions
1168 or mixins would lose their surrounding parentheses.
1169
9571704 @nex3 Fix conversion of null.
nex3 authored
1170 * Fix a bug in `sass-convert` where `null` wasn't being converted correctly.
1171
b2864aa @nex3 Fix a bug where multiple spaces in a string literal would sometimes b…
nex3 authored
1172 * Fix a bug where multiple spaces in a string literal would sometimes be folded
1173 together.
1174
a7bdf61 @nex3 Don't open a file for writing until we have something to write to it.
nex3 authored
1175 * `sass` and `sass-convert` won't create an empty file before writing to it.
1176 This fixes a flash of unstyled content when using LiveReload and similar
1177 tools.
1178
563158b @nex3 Fix an invalid mixin-loop report.
nex3 authored
1179 * Fix a case where a corrupted cache could produce fatal errors on some versions
1180 of Ruby.
1181
1182 * Fix a case where a mixin loop error would be incorrectly reported when using
1183 `@content`.
f7d8f35 @nex3 Always return nil in case of errors in cache store/retrieve.
nex3 authored
1184
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1185 ## 3.2.7 (8 March 2013)
ba45f7b @nex3 Allow index() and zip() to take single-item lists.
nex3 authored
1186
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1187 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.7).
1188
ba45f7b @nex3 Allow index() and zip() to take single-item lists.
nex3 authored
1189 * The \{Sass::Script::Functions#index `index`} and \{Sass::Script::Functions#zip
1190 `zip`} functions now work like all other list functions and treat individual
1191 values as single-element lists.
1192
0e6155f @nex3 Don't use recursion when parsing arglists.
nex3 authored
1193 * Avoid stack overflow errors caused by very long function or mixin argument
1194 lists.
1195
5ba41b6 @nex3 Emit relative paths when using --line-numbers.
nex3 authored
1196 * Emit relative paths when using the `--line-comments` flag of the `sass`
1197 executable.
1198
e7bd796 @nex3 Fix an exponential-parsing bug.
nex3 authored
1199 * Fix a case where very long numbers would cause the SCSS parser to
1200 take exponential time.
3700884 @nex3 Fix minimum-specificity calculation when trimming @extend output.
nex3 authored
1201
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1202 ## 3.2.6 (22 February 2013)
381625b @nex3 Fix ArgumentError handling on Rubinius.
nex3 authored
1203
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1204 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.6).
1205
0955e97 @nex3 Add a changelog entry about Rubinius stuff.
nex3 authored
1206 * Support for Rubinius 2.0.0.rc1. All tests pass in 1.8 mode. 1.9 mode has some
1207 tests blocked on [Rubinius issue
1208 2139](https://github.com/rubinius/rubinius/issues/2139).
381625b @nex3 Fix ArgumentError handling on Rubinius.
nex3 authored
1209
0e50859 @nex3 Support JRuby 1.7.
nex3 authored
1210 * Support for JRuby 1.7.2.
1211
75479e4 @nex3 Mention previous commit in the changelog.
nex3 authored
1212 * Support for symlinked executables. Thanks to [Yin-So
1213 Chen](http://yinsochen.com/).
1214
68d4805 @nex3 Bubble @supports in the indented syntax.
nex3 authored
1215 * Support for bubbling `@supports` queries in the indented syntax.
1216
fbcb3c5 @nex3 Fix @extend in nested @media queries.
nex3 authored
1217 * Fix an incorrect warning when using `@extend` from within nested `@media`
1218 queries.
1219
245bddf @nex3 Update listen to 0.7.2.
nex3 authored
1220 * Update the bundled version of [listen](http://github.com/guard/listen) to
1221 0.7.2.
1222
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1223 ## 3.2.5 (4 January 2013)
88f1719 @nex3 Don't generate bogus @extend warnings.
nex3 authored
1224
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1225 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.5).
1226
88f1719 @nex3 Don't generate bogus @extend warnings.
nex3 authored
1227 * Fix a bug where bogus `@extend` warnings were being generated.
1228
3ed77ef @dlmiles @import 'file' on windows fails with more than 1 subdir in the path
dlmiles authored
1229 * Fix an `@import` bug on Windows. Thanks to [Darryl
1230 Miles](https://github.com/dlmiles).
1231
d2d40ed @nex3 Add a changelog entry about Ruby 2.0.0 compatibility.
nex3 authored
1232 * Ruby 2.0.0-preview compatibility. Thanks to [Eric
1233 Saxby](http://www.livinginthepast.org/).
1234
ba7bd68 @nex3 Fix indented syntax line numbering with DOS lines.
nex3 authored
1235 * Fix incorrect line numbering when using DOS line endings with the indented
1236 syntax.
1237
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1238 ## 3.2.4 (21 December 2012)
9c95538 @argv-minus-one Strip out './' when looking up relative @imports.
argv-minus-one authored
1239
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1240 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.4).
1241
9c95538 @argv-minus-one Strip out './' when looking up relative @imports.
argv-minus-one authored
1242 * Fix imports from `.jar` files in JRuby. Thanks to [Alex
1243 Hvostov](https://github.com/argv-minus-one).
1244
e8c1147 @nex3 Support comments within @imports in SCSS.
nex3 authored
1245 * Allow comments within `@import` statements in SCSS.
1246
bfc4803 @nex3 Fix an exponential parsing bug.
nex3 authored
1247 * Fix a parsing performance bug where long decimals would occasionally take many
1248 minutes to parse.
1249
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1250 ## 3.2.3 (9 November 2012)
7b9a61b @nex3 Fix sass --watch with deleted files.
nex3 authored
1251
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1252 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.3).
1253
7b9a61b @nex3 Fix sass --watch with deleted files.
nex3 authored
1254 * `sass --watch` no longer crashs when a file in a watched directory is deleted.
1255
b5ff11c @nex3 Fix @extend in bubbling @media.
nex3 authored
1256 * Allow `@extend` within bubbling nodes such as `@media`.
1257
1029637 @nex3 Add a changelog entry about JRuby changes.
nex3 authored
1258 * Fix various JRuby incompatibilities and test failures.
1259
0ba3109 @nex3 Work around #495
nex3 authored
1260 * Work around a performance bug that arises from using `@extend` with
1261 deeply-nested selectors.
1262
00004e6 @nex3 Add dates to CHANGELOG release entries.
nex3 authored
1263 ## 3.2.2 (2 November 2012)
c1c50b7 @nex3 Add a `--poll` command-line flag to force a polling backend.
nex3 authored
1264
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1265 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.2).
1266
c1c50b7 @nex3 Add a `--poll` command-line flag to force a polling backend.
nex3 authored
1267 * Add a `--poll` option to force `sass --watch` to use the polling backend to
1268 [Listen](https://github.com/guard/listen).
1269
26846f0 @nex3 Make sure @import errors have the correct line and file info.
nex3 authored
1270 * Fix some error reporting bugs related to `@import`.
1271
6b30c51 @nex3 Fix a CHANGELOG bug.
nex3 authored
1272 * Treat [protocol-relative URLs][pru] in `@import`s as static URLs, just like
3fc9279 @nex3 Support protocol-relative URLs.
nex3 authored
1273 `http` and `https` URLs.
1274
50a7b8c @nex3 Improve the error message for misplaced simple selectors.
nex3 authored
1275 * Improve the error message for misplaced simple selectors.
1276
1a2af8a @nex3 Fix an option-handling bug.
nex3 authored
1277 * Fix an option-handling bug that was causing errors with the Compass URL
1278 helpers.
1279
527e2f4 @nex3 Fix a Rails perf issue.
nex3 authored
1280 * Fix a performance issue with `@import` that only appears when
1281 ActiveSupport is loaded.
1282
3815575 @chriseppstein Cleanup YARD documentation.
chriseppstein authored
1283 * Fix flushing of actions to stdout. Thanks to
1284 [Russell Davis](http://github.com/russelldavis).
527e2f4 @nex3 Fix a Rails perf issue.
nex3 authored
1285
03be7d3 @nex3 Fix the examples for max().
nex3 authored
1286 * Fix the documentation for the `max()` function.
1287
47483ae @nex3 Fix a @media parsing bug.
nex3 authored
1288 * Fix a `@media` parsing bug.
1289
3fc9279 @nex3 Support protocol-relative URLs.
nex3 authored
1290 [pru]: http://paulirish.com/2010/the-protocol-relative-url/
1291
6cc0196 @nex3 Print a warning for ambiguous @imports.
nex3 authored
1292 ### Deprecations -- Must Read!
1293
1294 * Sass will now print a warning when it encounters a single `@import` statement
1295 that tries to import more than one file. For example, if you have `@import
1296 "screen"` and both `screen.scss` and `_screen.scss` exist, a warning will be
1297 printed. This will become an error in future versions of Sass.
1298
78c02f9 @nex3 Bump VERSION to 3.2.1.
nex3 authored
1299 ## 3.2.1 (15 August 2012)
3629c3b @nex3 Add a changelog entry now that the previous commit is confirmed to fi…
nex3 authored
1300
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1301 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.1).
1302
3629c3b @nex3 Add a changelog entry now that the previous commit is confirmed to fi…
nex3 authored
1303 * Fix a buggy interaction with Pow and Capybara that caused `EOFError`s.
1304
40b3181 @nex3 Bump VERSION to 3.2.0.
nex3 authored
1305 ## 3.2.0 (10 August 2012)
7a31fea @nex3 Disallow `&foo` wholesale.
nex3 authored
1306
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1307 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.2.0).
1308
911e3bc @nex3 Move the @content changelog docs into their own subsection.
nex3 authored
1309 ### `@content`
8ee5a8c @chriseppstein More docs on passing style blocks to mixins.
chriseppstein authored
1310
911e3bc @nex3 Move the @content changelog docs into their own subsection.
nex3 authored
1311 A mixin include can now accept a block of content ({file:SASS_REFERENCE.md#mixin-content Reference Documentation}).
1312 The style block will be passed to the mixin and can be placed at the point @content is used. E.g.:
a5746f3 Add Sass::Script::Functions#ie_hex_str.
Tom Miller authored
1313
911e3bc @nex3 Move the @content changelog docs into their own subsection.
nex3 authored
1314 @mixin iphone {
8ee5a8c @chriseppstein More docs on passing style blocks to mixins.
chriseppstein authored
1315 @media only screen and (max-width: 480px) {
911e3bc @nex3 Move the @content changelog docs into their own subsection.
nex3 authored
1316 @content;
8ee5a8c @chriseppstein More docs on passing style blocks to mixins.
chriseppstein authored
1317 }
911e3bc @nex3 Move the @content changelog docs into their own subsection.
nex3 authored
1318 }
a5746f3 Add Sass::Script::Functions#ie_hex_str.
Tom Miller authored
1319
911e3bc @nex3 Move the @content changelog docs into their own subsection.
nex3 authored
1320 @include iphone {
1321 body { color: red }
1322 }
1323
1324 Or in `.sass` syntax:
1325
1326 =iphone
1327 @media only screen and (max-width: 480px)
1328 @content
a5746f3 Add Sass::Script::Functions#ie_hex_str.
Tom Miller authored
1329
911e3bc @nex3 Move the @content changelog docs into their own subsection.
nex3 authored
1330 +iphone
1331 body
1332 color: red
1333
1334 Produces:
1335
1336 @media only screen and (max-width: 480px) {
1337 body { color: red }
1338 }
1339
1340 Note that the contents passed to the mixin are evaluated in the scope they are used,
1341 not the scope of the mixin. {file:SASS_REFERENCE.md#variable_scope_and_content_blocks More on variable scoping.}
7a31fea @nex3 Disallow `&foo` wholesale.
nex3 authored
1342
f1dc284 @nex3 Add changelog docs for placeholder selectors.
nex3 authored
1343 ### Placeholder Selectors: `%foo`
1344
1345 Sass supports a new, special type of selector called a "placeholder selector".
1346 These look like class and id selectors, except the `#` or `.` is replaced by `%`.
1347 They're meant to be used with the {file:SASS_REFERENCE.md#extend `@extend` directive},
1348 when you want to write styles to be extended
1349 but you don't want the base styles to appear in the CSS.
1350
1351 On its own, a placeholder selector just causes a ruleset not to be rendered.
1352 For example:
1353
1354 // This ruleset won't be rendered on its own.
1355 #context a%extreme {
1356 color: blue;
1357 font-weight: bold;
1358 font-size: 2em;
1359 }
1360
1361 However, placeholder selectors can be extended, just like classes and ids.
1362 The extended selectors will be generated, but the base placeholder selector will not.
1363 For example:
1364
1365 .notice { @extend %extreme; }
1366
1367 Is compiled to:
1368
1369 #context a.notice {
1370 color: blue;
1371 font-weight: bold;
1372 font-size: 2em;
1373 }
1374
d4e07b6 @nex3 Add a changelog entry for variable arguments.
nex3 authored
1375 ### Variable Arguments
1376
1377 Mixins and functions now both support variable arguments. When defining a mixin
1378 or function, you can add `...` after the final argument to have it accept an
1379 unbounded number of arguments and package them into a list. When calling a mixin
1380 or function, you can add `...` to expand the final argument (if it's a list) so
1381 that each value is passed as a separate argument. For example:
1382
1383 @mixin box-shadow($shadows...) {
1384 // $shadows is a list of all arguments passed to box-shadow
1385 -moz-box-shadow: $shadows;
1386 -webkit-box-shadow: $shadows;
1387 box-shadow: $shadows;
1388 }
1389
1390 // This is the same as "@include spacing(1, 2, 3);"
1391 $values: 1, 2, 3;
1392 @include spacing($values...);
1393
1394 Finally, if a variable argument list is passed directly on to another mixin or
1395 function, it will also pass along any keyword arguments. This means that you can
1396 wrap a pre-existing mixin or function and add new functionality without changing
1397 the call signature.
1398
c56ecdb @nex3 Changelog entries.
nex3 authored
1399 ### Directive Interpolation
1400
1401 `#{}` interpolation is now allowed in all plain CSS directives
1402 (such as `@font-face`, `@keyframes`, and of course `@media`).
1403
1404 In addition, `@media` gets some special treatment.
1405 In addition to allowing `#{}` interpolation,
f19a88c @nex3 Disable "@media $var".
nex3 authored
1406 expressions may be used directly in media feature queries.
c56ecdb @nex3 Changelog entries.
nex3 authored
1407 This means that you can write e.g.:
1408
1409 $media: screen;
1410 $feature: -webkit-min-device-pixel-ratio;
1411 $value: 1.5;
1412
f19a88c @nex3 Disable "@media $var".
nex3 authored
1413 @media #{$media} and ($feature: $value) {
c56ecdb @nex3 Changelog entries.
nex3 authored
1414 ...
1415 }
1416
1417 This is intended to allow authors to easily write mixins
1418 that make use of `@media` and other directives dynamically.
1419
fe99497 @nex3 Restructure the changelog a little.
nex3 authored
1420 ### Smaller Improvements
516a0c5 @nex3 Support :any.
nex3 authored
1421
9b1820a @nex3 Allow mixins and functions to be defined in nested contexts.
nex3 authored
1422 * Mixins and functions may now be defined in a nested context, for example
1423 within `@media` rules. This also allows files containing them to be imported
1424 in such contexts.
1425
fe99497 @nex3 Restructure the changelog a little.
nex3 authored
1426 * Previously, only the `:-moz-any` selector was supported; this has been
1427 expanded to support any vendor prefix, as well as the plain `:any` selector.
516a0c5 @nex3 Support :any.
nex3 authored
1428
01d62fa @nex3 Mention CSS4 selector support in the changelog.
nex3 authored
1429 * All proposed [CSS4 selectors](http://dev.w3.org/csswg/selectors4/) are now
1430 supported, including reference selectors (e.g. `.foo /attr/ .bar`) and subject
1431 selectors (e.g. `.foo!`).
1432
fe99497 @nex3 Restructure the changelog a little.
nex3 authored
1433 * Sass now supports a global list of load paths, accessible via
1434 {Sass.load_paths}. This allows plugins and libraries to easily register their
1435 Sass files such that they're accessible to all {Sass::Engine} instances.
5c93cbf @nex3 Add Sass.load_paths.
nex3 authored
1436
83bc989 @piouPiouM Update SASS_CHANGELOG.md: missing space
piouPiouM authored
1437 * `Sass.load_paths` is initialized to the value of the `SASS_PATH` environment
fe99497 @nex3 Restructure the changelog a little.
nex3 authored
1438 variable. This variable should contain a colon-separated list of load paths
1439 (semicolon-separated on Windows).
5c93cbf @nex3 Add Sass.load_paths.
nex3 authored
1440
db51415 @nex3 Don't generate redundant selectors with multiple extends in an extender.
nex3 authored
1441 * In certain cases, redundant selectors used to be created as a result of a
1442 single rule having multiple `@extend`s. That redundancy has been eliminated.
1443
8f4869e @nex3 Eliminate more @extend output redundancy.
nex3 authored
1444 * Redundant selectors were also sometimes created by nested selectors
1445 using `@extend`. That redundancy has been eliminated as well.
1446
fe99497 @nex3 Restructure the changelog a little.
nex3 authored
1447 * There is now much more comprehensive support for using `@extend` alongside
1448 CSS3 selector combinators (`+`, `~`, and `>`). These combinators will now be
1449 merged as much as possible.
7e97574 @nex3 Support the SASS_PATH environment variable.
nex3 authored
1450
fe99497 @nex3 Restructure the changelog a little.
nex3 authored
1451 * The full set of [extended color keywords](http://www.w3.org/TR/css3-color/#svg-color)
1452 are now supported by Sass. They may be used to refer to color objects, and
1453 colors will render using those color names when appropriate.
7e97574 @nex3 Support the SASS_PATH environment variable.
nex3 authored
1454
fe99497 @nex3 Restructure the changelog a little.
nex3 authored
1455 * Sass 3.2 adds the \{Sass::Script::Functions#ie_hex_str `ie-hex-str`} function
1456 which returns a hex string for a color suitable for use with IE filters.
08a7399 @nex3 Some changes to ie-hex-str.
nex3 authored
1457
40099da @nex3 Add min and max functions.
nex3 authored
1458 * Sass 3.2 adds the \{Sass::Script::Functions#min `min`} and
1459 \{Sass::Script::Functions#max `max`} functions, which return the minimum and
1460 maximum of several values.
1461
6efc235 @nex3 Make keyword argument parsing stricter.
nex3 authored
1462 * Sass functions are now more strict about how keyword arguments can be passed.
1463
edc2634 @nex3 Add two more digits of decimal precision.
nex3 authored
1464 * Decimal numbers now default to five digits of precision after the decimal
1465 point.
1466
3815575 @chriseppstein Cleanup YARD documentation.
chriseppstein authored
1467 * The \{Sass::Script::Functions::EvaluationContext#options options hash}
e36aedc @nex3 Have EvaluationContext.options[:filename] give the current file.
nex3 authored
1468 available to Sass functions now contains the filename of the file that the
1469 function was executed in, rather than the top-level file.
1470
7a31fea @nex3 Disallow `&foo` wholesale.
nex3 authored
1471 ### Backwards Incompatibilities -- Must Read!
1472
1d77774 @nex3 Document @extend warnings.
nex3 authored
1473 #### `@extend` Warnings
1474
1475 Any `@extend` that doesn't match any selectors in the document will now print a
1476 warning. These warnings will become errors in future versions of Sass. This will
1477 help protect against typos and make it clearer why broken styles aren't working.
1478 For example:
1479
1480 h1.notice {color: red}
1481 a.important {@extend .notice}
1482
1483 This will print a warning, since the only use of `.notice` can't be merged with
1484 `a`.
1485
1486 You can declare that you don't want warnings for a specific `@extend` by using
1487 the `!optional` flag. For example:
1488
1489 h1.notice {color: red}
1490 a.important {@extend .notice !optional}
1491
1492 This will not print a warning.
1493
1494 #### Smaller Incompatibilities
1495
7a31fea @nex3 Disallow `&foo` wholesale.
nex3 authored
1496 * Parent selectors followed immediately by identifiers (e.g. `&foo`)
1497 are fully disallowed.
1498 They were deprecated in 3.1.8.
1499
870d200 @nex3 Get rid of //! and allow #{} in comments everywhere.
nex3 authored
1500 * `#{}` interpolation is now allowed in all comments.
1501
1502 * The `!` flag may not be used with `//` comments (e.g. `//!`).
1503
c56ecdb @nex3 Changelog entries.
nex3 authored
1504 * `#{}` interpolation is now disallowed in all `@import` statements
1505 except for those using `url()`.
1506
0db3cb6 @nex3 Disable less support for sass-convert.
nex3 authored
1507 * `sass-convert` no longer supports converting files from LessCSS.
1508
287abb9 @nex3 Bump VERSION to 3.1.21.
nex3 authored
1509 ## 3.1.21 (10 August 2012)
1dc0321 @nex3 Update vendor/listen.
nex3 authored
1510
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1511 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.21).
1512
34059b2 @nex3 Preserve single-line comments in multi-line comments.
nex3 authored
1513 * Preserve single-line comments that are embedded within multi-line comments.
644da82 @nex3 Preserve newlines in nested selectors.
nex3 authored
1514 * Preserve newlines in nested selectors when those selectors are used multiple
1515 times in the same document.
4d615d6 @nex3 Don't die when running tests with LANG=.
nex3 authored
1516 * Allow tests to be run without the `LANG` environment variable set.
1dc0321 @nex3 Update vendor/listen.
nex3 authored
1517 * Update the bundled version of [Listen](https://github.com/guard/listen) to
1518 0.4.7.
a241c3b @chriseppstein Mention px conversions in the changelog.
chriseppstein authored
1519 * Sass will now convert `px` to other absolute units using the
1520 conversion ratio of `96px == 1in` as dictated by the
1521 [CSS Spec](http://www.w3.org/TR/CSS21/syndata.html#length-units)
1dc0321 @nex3 Update vendor/listen.
nex3 authored
1522
02947c9 @nex3 Bump VERSION to 3.1.20.
nex3 authored
1523 ## 3.1.20
3bd21ab @nex3 Add a changelog entry for previous commit.
nex3 authored
1524
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1525 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.20).
1526
3bd21ab @nex3 Add a changelog entry for previous commit.
nex3 authored
1527 * Don't crash if a UTF encoding isn't found. Thanks to [Andrew
1528 Garbutt](http://github.com/techsplicer).
a6db98c @nex3 Add a changelog entry for previous.
nex3 authored
1529 * Properly watch files recursively with `sass --watch`. Thanks to [Sébastien
1530 Tisserant](https://github.com/sebweaver).
7b6b001 @nex3 Fix append() docs.
nex3 authored
1531 * Fix the documentation for the \{Sass::Script::Functions#append append()}
1532 function.
219ce6d @nex3 Support Filter Effects versions of opacity and invert as well.
nex3 authored
1533 * Support the `saturate()`, `opacity()`, and `invert()` functions when used as
1534 in the [Filter Effects][filter] spec.
e702961 @nex3 Add a changelog entry for previous.
nex3 authored
1535 * Support MacRuby. Thanks to [Will Glynn](http://github.com/delta407).
26bdc20 @nex3 Clean up #saturate docs.
nex3 authored
1536
1537 [filter]: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
3bd21ab @nex3 Add a changelog entry for previous commit.
nex3 authored
1538
609fb94 @nex3 Bump VERSION to 3.1.19.
nex3 authored
1539 ## 3.1.19
553f0e0 @nex3 Fix a constant-resolution error.
nex3 authored
1540
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1541 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.19).
1542
553f0e0 @nex3 Fix a constant-resolution error.
nex3 authored
1543 * Fix an `uninitialized constant Sass::Exec::Sass::Util` error when using the
1544 command-line tool.
7608f2b @nex3 Document new @extend-in-directive semantics.
nex3 authored
1545 * Allow `@extend` within directives such as `@media` as long as it only extends
1546 selectors that are within the same directive.
553f0e0 @nex3 Fix a constant-resolution error.
nex3 authored
1547
f0c840f @nex3 Bump VERSION to 3.1.18.
nex3 authored
1548 ## 3.1.18
a3b1b45 @jeremy Check for private visitor methods.
jeremy authored
1549
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1550 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.18).
1551
a3b1b45 @jeremy Check for private visitor methods.
jeremy authored
1552 * Ruby 2.0 compatibility. Thanks to [Jeremy
1553 Kemper](https://github.com/jeremy).
1554
99d8836 @nex3 Deprecate @extend within @media.
nex3 authored
1555 ### Deprecations -- Must Read!
1556
1557 * Deprecate the use of `@extend` within directives such as `@media`. This has
1558 never worked correctly, and now it's officially deprecated. It will be an
1559 error in 3.2.
1560
62e38c1 @nex3 Bump VERSION to 3.1.17.
nex3 authored
1561 ## 3.1.17
60a9db3 @nex3 Fix Tree#inspect on Ruby 1.9.
nex3 authored
1562
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1563 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.17).
1564
60a9db3 @nex3 Fix Tree#inspect on Ruby 1.9.
nex3 authored
1565 * Don't crash when calling `#inspect` on an internal Sass tree object in Ruby
1566 1.9.
ca4ad92 @nex3 Use my listen repo for the time being.
nex3 authored
1567 * Fix some bugs in `sass --watch` introduced in 3.1.16. Thanks to [Maher
0a2eafd @Maher4Ever Fix the Listen plugin.
Maher4Ever authored
1568 Sallam](https://github.com/Maher4Ever).
7536aee @nex3 Merge remote branch 'origin/stable' into stable
nex3 authored
1569 * Support bare interpolation in the value portion of attribute
1570 selectors (e.g. `[name=#{$value}]`).
1571 * Support keyword arguments for the `invert()` function.
3ee3411 @nex3 Fix Dir.glob with backslash paths on Windows.
nex3 authored
1572 * Handle backslash-separated paths better on Windows.
339d325 @nex3 Fix rake package/install on Ruby 1.9.
nex3 authored
1573 * Fix `rake install` on Ruby 1.9.
cb84d9f @nex3 Fix nested @if conversion.
nex3 authored
1574 * Properly convert nested `@if` statements with `sass-convert`.
60a9db3 @nex3 Fix Tree#inspect on Ruby 1.9.
nex3 authored
1575
425a472 @nex3 Bump VERSION to 3.1.16.
nex3 authored
1576 ## 3.1.16
1cbf18c @nex3 Properly parse selectors in css2sass.
nex3 authored
1577
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1578 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.16).
1579
1cbf18c @nex3 Properly parse selectors in css2sass.
nex3 authored
1580 * Fix some bugs in `sass-convert` selector parsing when converting from CSS.
abe0981 @nex3 Big improvement to perf on 1.8.
nex3 authored
1581 * Substantially improve compilation performance on Ruby 1.8.
9a03953 @nex3 Support @-moz-document.
nex3 authored
1582 * Support the `@-moz-document` directive's non-standard `url-prefix` and
1583 `domain` function syntax.
b0367a3 @nex3 Support @supports.
nex3 authored
1584 * Support the [`@supports` directive](http://www.w3.org/TR/css3-conditional/#at-supports).
a69ebc6 @nex3 Fix a perf bug with CommentNode#normalize_indentation.
nex3 authored
1585 * Fix a performance issue when using `/*! */` comments with the Rails asset
1586 pipeline.
1c75982 @nex3 Support -moz-element.
nex3 authored
1587 * Support `-moz-element`.
09134ca @nex3 Properly convert empty lists.
nex3 authored
1588 * Properly handle empty lists in `sass-convert`.
91f5553 @nex3 Move from FSSM -> guard/listen.
nex3 authored
1589 * Move from [FSSM](https://github.com/ttilley/fssm) to
1590 [Listen](https://github.com/guard/listen) for file-system monitoring.
1cbf18c @nex3 Properly parse selectors in css2sass.
nex3 authored
1591
8a7194a @nex3 Bump VERSION to 3.1.15.
nex3 authored
1592 ## 3.1.15
dd594c3 @nex3 Officially support "@extend .foo, .bar".
nex3 authored
1593
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1594 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.15).
1595
dd594c3 @nex3 Officially support "@extend .foo, .bar".
nex3 authored
1596 * Support extending multiple comma-separated selectors (e.g. `@extend .foo, .bar`).
1597 This is just a terser way to write multiple `@extend`s
1598 (e.g. `@extend .foo; @extend .bar`).
1599 This wasn't previously intended to work, but it did in the indented syntax only.
70dddf1 @nex3 Fix an import loop stack overflow in StalenessChecker.
nex3 authored
1600 * Avoid more stack overflows when there are import loops in files.
b5316b4 @nex3 Update FSSM to 0.2.8.1.
nex3 authored
1601 * Update the bundled [FSSM](https://github.com/ttilley/fssm) to version 0.2.8.1.
cf995b4 @nex3 Fix grayscale with -webkit-filter.
nex3 authored
1602 * Make the `grayscale` function work with `-webkit-filter`.
75ada6c @nex3 Fix error for "/ foo" in Sass.
nex3 authored
1603 * Provide a better error message for selectors beginning with `/`
1604 in the indented syntax.
78968ff @nex3 Note sass --watch flushing in the changelog.
nex3 authored
1605 * Flush standard output after printing notifications in `sass --watch`.
cefa607 @nex3 Fix the REPL.
nex3 authored
1606 * Fix variable definitions in the REPL.
dd594c3 @nex3 Officially support "@extend .foo, .bar".
nex3 authored
1607
445559d @nex3 Bump VERSION to 3.1.14.
nex3 authored
1608 ## 3.1.14
55cab69 @nex3 Fix a dumb bug.
nex3 authored
1609
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1610 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.14).
1611
55cab69 @nex3 Fix a dumb bug.
nex3 authored
1612 * Fix a typo that was causing crashes on Ruby 1.9.
1613
d5dab66 @nex3 Bump VERSION to 3.1.13.
nex3 authored
1614 ## 3.1.13
0e292dd @nex3 Use the multibyte scanner pervasively.
nex3 authored
1615
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1616 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.13).
1617
0e292dd @nex3 Use the multibyte scanner pervasively.
nex3 authored
1618 * Fix a smattering of subtle bugs that would crop up when using multibyte
1619 character sets.
619b168 @nex3 Properly handle initial operators when extending selectors.
nex3 authored
1620 * Fix a bug when using `@extend` with selectors containing newlines.
b7bde56 @nex3 Short-circuiting boolean ops.
nex3 authored
1621 * Make boolean operators short-circuit.
d688c56 @nex3 Remove excess selector whitespace under :compressed.
nex3 authored
1622 * Remove unnecessary whitespace in selectors in `:compressed` mode.
ed2247a @nex3 Don't put debug info in unknown directives.
nex3 authored
1623 * Don't output debug info within non-`@media` directives.
ad70200 @nex3 Fix :after and :before with @extend.
nex3 authored
1624 * Make sure `:after` and `:before` selectors end up on the end of
1625 selectors resulting from `@extend`.
26e0380 @nex3 Escape cache filenames so they don't break on Windows.
nex3 authored
1626 * Fix a bug when using imports containing invalid path characters on Windows.
f0ca6ba @nex3 Bubble up CSS @imports.
nex3 authored
1627 * Bubble CSS `@import` statements to the top of stylesheets.
ad70200 @nex3 Fix :after and :before with @extend.
nex3 authored
1628
fb5cb05 @nex3 Bump VERSION to 3.1.12.
nex3 authored
1629 ## 3.1.12
4c2bb22 @nex3 Add a changelog entry about mathn compatibility.
nex3 authored
1630
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1631 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.12).
1632
17c5b26 @nex3 Changelog formatting.
nex3 authored
1633 * Compatibility with the `mathn` library
1634 (thanks to [Thomas Walpole](https://github.com/twalpole)).
645d170 @nex3 Fix some infinite mixin loops.
nex3 authored
1635 * Fix some infinite loops with mixins that were previously uncaught.
9ffd9af @nex3 Catch infinite import loops.
nex3 authored
1636 * Catch infinite `@import` loops.
39e7ee7 @Marzelpan Use on_updated_stylesheet instead of on_updating_stylesheet in Exec
Marzelpan authored
1637 * Fix a deprecation warning in `sass --update` and `--watch`
1638 (thanks to [Marcel Köppen](https://github.com/Marzelpan)).
dcf37c8 @nex3 Don't make $important special.
nex3 authored
1639 * Don't make `$important` a special pre-initialized variable.
8a2a5d3 @nex3 Avoid exponential parsing times.
nex3 authored
1640 * Fix exponential parsing time of certain complex property values and selectors.
5191c20 @nex3 Fix @media bubbling with commas.
nex3 authored
1641 * Properly merge `@media` directives with comma-separated queries.
1642 E.g. `@media foo, bar { @media baz { ... } }` now becomes
1643 `@media foo and baz, bar and baz { ... }`.
9ffd9af @nex3 Catch infinite import loops.
nex3 authored
1644
4a1a0d1 @nex3 Bump VERSION to 3.1.11.
nex3 authored
1645 ## 3.1.11
8492ac6 @nex3 Add a bunch of changelog entries.
nex3 authored
1646
1dd6504 @zessx Fix GitHub tag links, and add missing ones.
zessx authored
1647 [Tagged on GitHub](https://github.com/sass/sass/releases/tag/3.1.11).
1648
8492ac6 @nex3 Add a bunch of changelog entries.
nex3 authored
1649 * Allow control directives (such as `@if`) to be nested beneath properties.
d5ec058 @nex3 Allow interpolation to come immediately after a hyphen in identifiers.
nex3 authored
1650 * Allow property names to begin with a hyphen followed by interpolation (e.g. `-#{...}`).
5ef3a3b @nex3 Fix an interpolation parsing bug.
nex3 authored
1651 * Fix a parsing error with interpolation in comma-separated lists.
8492ac6 @nex3 Add a bunch of changelog entries.
nex3 authored
1652 * Make `--cache-store` with with `--update`.
1653 * Properly report `ArgumentError`s that occur within user-defined functions.
1654 * Don't crash on JRuby if the underlying Java doesn't support every Unicode encoding.
602b4ec @nex3 Clean up the changelog a little.
nex3 authored
1655 * Add new `updated_stylesheet` callback, which is run after each stylesheet has
1656 been successfully compiled. Thanks to [Christian Peters](https://github.com/ChristianPeters).
fc056d7 @nex3 Fix absolute path handling by the Filesystem importer.
nex3 authored
1657 * Allow absolute paths to be used in an importer with a different root.
cc73198 @nex3 Don't destructively modify options with force_update.
nex3 authored
1658 * Don't destructively modify the options when running `Sass::Plugin.force_update`.
f6bf1b8 @nex3 Stylistic consistency in Changelog.
nex3 authored
1659 * Prevent Regexp buffer overflows when parsing long strings
1660 (thanks to [Agworld](https://github.com/Agworld).
8492ac6 @nex3 Add a bunch of changelog entries.
nex3 authored
1661
602b4ec @nex3 Clean up the changelog a little.
nex3 authored
1662 ### Deprecations -- Must Read!
1663
1664 * The `updating_stylesheet` is deprecated and will be removed in a
1665 future release. Use the new `updated_stylesheet` callback instead.
deb52e2 @ChristianPeters Merge branch 'stable' of https://github.com/nex3/sass into stable_wit…
ChristianPeters authored
1666
d09db8d @nex3 Bump VERSION to 3.1.10.
nex3 authored