Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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