UNPKG

25.5 kBMarkdownView Raw
1# Change Log
2
3All notable changes to this project will be documented in this file.
4See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
6# [5.0.0](https://github.com/cssnano/cssnano/compare/cssnano@5.0.0-rc.2...cssnano@5.0.0) (2021-04-06)
7
8**Note:** Version bump only for package cssnano
9
10
11
12
13
14# [5.0.0-rc.2](https://github.com/cssnano/cssnano/compare/cssnano@5.0.0-rc.1...cssnano@5.0.0-rc.2) (2021-03-15)
15
16
17### Bug Fixes
18
19* update SVGO ([aa07cfd](https://github.com/cssnano/cssnano/commit/aa07cfd62c82ed4b1e87219eea8d0ed99635e4ca))
20
21
22
23
24
25# [5.0.0-rc.1](https://github.com/cssnano/cssnano/compare/cssnano@5.0.0-rc.0...cssnano@5.0.0-rc.1) (2021-03-04)
26
27**Note:** Version bump only for package cssnano
28
29
30
31
32
33# 5.0.0-rc.0 (2021-02-19)
34
35
36### Bug Fixes
37
38* **postcss-ordered-values:** columns transform returning string instead of the AST ([#928](https://github.com/cssnano/cssnano/issues/928)) ([a5d6d36](https://github.com/cssnano/cssnano/commit/a5d6d364e0815ecb198a95de301f3554ccce4f78))
39* **unique-selector:** removed sorting and involving selector comments ([#857](https://github.com/cssnano/cssnano/issues/857)) ([3fa875d](https://github.com/cssnano/cssnano/commit/3fa875dade2138e1a531dce1f8b79814cb39dbc9))
40
41
42### chore
43
44* minimum require version of node is 10.13 ([#871](https://github.com/cssnano/cssnano/issues/871)) ([28bda24](https://github.com/cssnano/cssnano/commit/28bda243e32ce3ba89b3c358a5f78727b3732f11))
45
46
47### Features
48
49* css declaration sorter ([#855](https://github.com/cssnano/cssnano/issues/855)) ([613d562](https://github.com/cssnano/cssnano/commit/613d562ae79e7e169c80b523b7c2c9b0093bc1d8))
50* migarete to PostCSS 8 ([#975](https://github.com/cssnano/cssnano/issues/975)) ([40b82dc](https://github.com/cssnano/cssnano/commit/40b82dca7f53ac02cd4fe62846dec79b898ccb49))
51* **postcss-reduce-transforms:** improve optimizations ([#745](https://github.com/cssnano/cssnano/issues/745)) ([b0f0d89](https://github.com/cssnano/cssnano/commit/b0f0d892316d7b77e8033a6dc8d67745043a5072))
52
53
54### BREAKING CHANGES
55
56* minimum supported `postcss` version is `8.2.1`
57* minimum require version of node is 10.13
58
59
60
61## 4.1.10 (2019-02-14)
62
63
64
65## 4.1.9 (2019-02-12)
66
67
68### Bug Fixes
69
70* initial loading time ([#654](https://github.com/cssnano/cssnano/issues/654)) ([de2ef07](https://github.com/cssnano/cssnano/commit/de2ef074a0c7da94c22a5b0336e6c4ca2a94f1b5))
71
72
73
74## 4.1.7 (2018-10-22)
75
76
77
78## 4.1.6 (2018-10-22)
79
80
81
82## 4.1.5 (2018-10-17)
83
84
85### Bug Fixes
86
87* toggling of plugins in presets using boolean configuration option ([#622](https://github.com/cssnano/cssnano/issues/622)) ([15076f1](https://github.com/cssnano/cssnano/commit/15076f145118507e010722cc9ed548ffe1b91f8c))
88
89
90
91## 4.1.4 (2018-09-27)
92
93
94
95## 4.1.3 (2018-09-25)
96
97
98
99## 4.1.2 (2018-09-25)
100
101
102
103## 4.1.1 (2018-09-24)
104
105
106### Bug Fixes
107
108* parse error with iPhone X feature ([#614](https://github.com/cssnano/cssnano/issues/614)) ([a3704a7](https://github.com/cssnano/cssnano/commit/a3704a76a631b1cd907ab0c0a8637a622769676d))
109
110
111
112# 4.1.0 (2018-08-24)
113
114
115
116## 4.0.5 (2018-07-30)
117
118
119
120## 4.0.4 (2018-07-25)
121
122
123
124## 4.0.3 (2018-07-18)
125
126
127### Bug Fixes
128
129* **postcss-merge-longhand:** not mangle border output ([#555](https://github.com/cssnano/cssnano/issues/555)) ([9a70605](https://github.com/cssnano/cssnano/commit/9a706050b621e7795a9bf74eb7110b5c81804ffe)), closes [#553](https://github.com/cssnano/cssnano/issues/553) [#554](https://github.com/cssnano/cssnano/issues/554)
130
131
132
133
134
135# 4.1.10
136
137## Bug Fixes
138
139* `stylehacks` does not throw error on `[attr]` selector
140
141# 4.1.9
142
143## Performance Improvements
144
145* `postcss-colormin`: increase performance
146* `postcss-discard-comments`: increase performance
147* `postcss-merge-rules` increase performance
148* `postcss-minify-params` increase performance
149* `postcss-minify-selectors`: increase performance
150* `postcss-normalize-display-values`: increase performance
151* `postcss-normalize-positions`: increase performance
152* `postcss-normalize-repeat-style`: increase performance
153* `postcss-normalize-string`: increase performance
154* `postcss-normalize-timing-functions`: increase performance
155* `postcss-normalize-whitespace`: increase performance
156* `postcss-ordered-values`: increase performance
157* `postcss-reduce-transforms`: increase performance
158* `postcss-svgo`: increase performance
159
160## Bug Fixes
161
162* `postcss-merge-longhand` handle uppercase properties and values
163* `postcss-minify-gradients` handle uppercase properties and values
164* `postcss-minify-params` do break `@page` rules
165* `postcss-reduce-idents` handle uppercase at-rules
166* `postcss-reduce-initial` now uses `repeat` as initial value for `mask-repeat`
167* `postcss-reduce-initial` handle uppercase value when you convert to initial
168* `stylehacks` handle uppercase properties and values
169
170# 4.1.8
171
172## Performance Improvements
173
174* initial loading time (`require('cssnano')`).
175
176## Bug Fixes
177
178* `postcss-merge-longhand` correctly merging border properties with custom properties.
179
180# 4.1.7
181
182## Bug Fixes
183
184* republish `cssnano` due broken release.
185
186# 4.1.6
187
188## Bug Fixes
189
190* `postcss-merge-longhand` doesn't throw error when merge a border property.
191
192# 4.1.5
193
194## Bug Fixes
195
196* `cssnano` now allow to toggling of plugins in presets using boolean configuration option.
197* `postcss-merge-longhand` doesn't merge properties with `unset`.
198* `postcss-merge-longhand` correctly merge borders with custom properties.
199* `postcss-merge-longhand` doesn't merge redundant values if declarations are of different importance.
200
201## Other changes
202
203* `postcss-calc` updated to `7.0.0` version.
204
205# 4.1.4
206
207## Other changes
208
209* `css-declaration-sorter` now use PostCSS 7.
210* `postcss-calc` now use PostCSS 7.
211
212# 4.1.3
213
214## Other changes
215
216* `postcss-minify-font-values` now use PostCSS 7.
217* `postcss-discard-duplicates` now use PostCSS 7.
218
219# 4.1.2
220
221## Bug Fixes
222
223* `postcss-svgo` now handle DataURI with uppercase `data` value (`DATA:image/*;...`).
224
225# 4.1.1
226
227## Bug Fixes
228
229* `css-declaration-sorter` was removed from default prevent.
230* `postcss-normalize-timing-functions` doesn't lowercased property anymore.
231* `postcss-normalize-positons` now handles uppercase properties.
232* `postcss-normalize-url` now is case-insensitive.
233* `postcss-merge-idents` now is case-insensitive.
234* `postcss-merge-rules` now is case-insensitive.
235* `postcss-minify-selectors` now is case-insensitive.
236* `postcss-minify-font-values` now is case-insensitive.
237* `postcss-normalize-unicode` now has correct dependencies.
238* `postcss-minify-params` now has correct dependencies.
239
240## Other changes
241
242* `cssnano-preset-advanced` use Autoprefixer 9.
243* use PostCSS 7 in all plugins.
244
245# 4.1.0
246
247## Bug Fixes
248
249* `postcss-merge-longhand` doesn't mangle borders.
250
251## Features
252
253* `postcss-ordered-values` support ordering animation values.
254
255# 4.0.5
256
257## Bug Fixes
258
259* `postcss-merge-longhand` now correctly merges borders with custom properties.
260* `postcss-merge-longhand` doesn't throw error in some `border` merge cases.
261
262# 4.0.4
263
264## Bug Fixes
265
266* `postcss-merge-longhand` doesn't drop border-width with custom property from border shorthand.
267* `postcss-merge-longhand` doesn't convert `currentColor`.
268* `postcss-merge-longhand` doesn't merge border properties if there is a shorthand property between them.
269
270# 4.0.3
271
272## Bug Fixes
273
274* `postcss-merge-longhand` incorrect minification of `border` (`border-*`) declarations.
275
276# 4.0.2
277
278## Bug Fixes
279
280* `postcss-merge-longhand` don't explode declarations with custom properties.
281* `postcss-colormin` now better transform to `hsl`.
282
283# 4.0.1
284
285## Bug Fixes
286
287* `browserslist` version incompatibility with `caniuse-api`.
288
289# 4.0.0
290
291## Breaking changes
292
293* We dropped support for Node 4, now requiring at least Node 6.9.
294
295## Features
296
297* postcss-merge-longhand now optimises `border-spacing` property.
298
299## Bug Fixes
300
301* postcss-normalize-unicode doesn't change `U` to lowercase for `IE` <= 11 and `Edge` <= 15.
302* postcss-merge-longhand works with custom properties (Example `a { border-style:dotted; border-style:var(--variable) }`) correctly.
303* postcss-ordered-values handle `border` property with invalid border width value correctly.
304* postcss-merge-rules handles `:-ms-input-placeholder` and `::-ms-input-placeholder` selectors correctly.
305* postcss-merge-rules works with `all` property correctly.
306* postcss-normalize-url don't handle empty `url` function.
307* postcss-normalize-url handles `data` and `*-extension://` URLs correctly.
308* postcss-colormin adds whitespace after minified value and before function.
309* postcss-minify-font-values better escapes font name.
310* postcss-minify-params doesn't remove `all` for IE.
311
312## Other changes
313
314* update all dependencies to latest.
315* better handles uppercase selectors/properties/values/units.
316
317# 4.0.0-rc.2
318
319## Features
320
321* Includes the new release candidate for postcss-selector-parser 3.
322* Refactors comments tokenizing in postcss-discard-comments to be more
323 memory efficient.
324* Adds css-declaration-sorter for improved gzip compression efficiencies
325 (thanks to @Siilwyn).
326* postcss-svgo now optimises base 64 encoded SVG where possible
327 (thanks to @evilebottnawi).
328* stylehacks now supports `@media \0screen\,screen\9 {}` hacks
329 (thanks to @evilebottnawi).
330
331## Bug Fixes
332
333* Fixed handling of package.json configuration (thanks to @andyjansson).
334* Fixed `resolveConfig` for a `Root` node without a `source` property
335 (thanks to @darthmaim).
336* Improved radial gradient handling (thanks to @pigcan).
337* stylehacks now properly accounts for vendor prefixes
338 (thanks to @evilebottnawi).
339
340# 4.0.0-rc.1
341
342## Bug Fixes
343
344* cssnano: Resolved an issue with external configuration which wasn't
345 being loaded correctly (thanks to @andyjansson).
346* postcss-minify-params: Resolved an issue with cssnano's handling of the
347 `@value` syntax from css-modules to better integrate with css-loader.
348
349# 4.0.0-rc.0
350
351Since version 4 has been in-development for some time, we thought it would be
352best to release an alpha version so that we could catch any issues before
353the actual release.
354
355## Breaking changes
356
357* cssnano & its plugins have been upgraded to PostCSS 6.x. Please ensure that
358 for optimal results that you use cssnano with a PostCSS 6 compatible runner
359 & that any other plugins are also using PostCSS 6.
360* cssnano is now essentially a preset loader and does not contain any built-in
361 transforms (instead, it delegates to `cssnano-preset-default` by default).
362 Due to the new architecture, it's not possible to exclude asynchronous
363 transforms and run it synchronously, unlike in 3.x. Any transforms that
364 were "core" modules have now been extracted out into separate packages.
365* Because of the new preset system, cssnano will not accept any transformation
366 options; these must be set in the preset. The option names remain mostly the
367 same, except some cases where "core" modules have been extracted out:
368
369 * `core` is now `normalizeWhitespace`.
370 * `reduceBackgroundRepeat` is now `normalizeRepeatStyle`.
371 * `reduceDisplayValues` is now `normalizeDisplayValues`.
372 * `reducePositions` is now `normalizePositions`.
373 * `reduceTimingFunctions` is now `normalizeTimingFunctions`.
374 * `styleCache` is now `rawCache`.
375
376 When excluding transforms, we now have an `exclude` option (in 3.x this was
377 named `disable`). Similarly, the `safe` option was removed; the defaults
378 are now much less aggressive.
379* By default, the following transforms are no longer applied to any input CSS.
380 You may see an increased output file size as a result:
381
382 * `autoprefixer`
383 * `postcss-discard-unused`
384 * `postcss-merge-idents`
385 * `postcss-reduce-idents`
386 * `postcss-zindex`
387
388 Note that you can load `cssnano-preset-advanced` instead which *does* contain
389 these transforms.
390* We no longer detect previous plugins to silently exclude our own, and now
391 consider this to be an anti-pattern. So `postcss-filter-plugins` was removed.
392* We also changed some options to make the default transforms safer:
393
394 * `postcss-minify-font-values`: `removeAfterKeyword` set to `false` from `true`.
395 * `postcss-normalize-url`: `stripWWW` set to `false` from `true`.
396
397* cssnano now does not accept the `sourcemap` shortcut option; please refer
398 to the PostCSS documentation on sourcemaps. The `quickstart.js` file included
399 with this module will give you a good starting point.
400* `cssnano.process` is no longer a custom method; we use the built-in `process`
401 method exposed on each PostCSS plugin. The new signature is
402 `cssnano.process(css, postcssOpts, cssnanoOpts)`, in 3.x it was
403 `cssnano.process(css, cssnanoOpts)`.
404* We dropped support for Node 0.12, now requiring at least Node 4.
405* Finally, cssnano is now developed as a monorepo, due to the fact that some
406 transforms have a lot of grey area/overlap. Due to this, some modules have
407 been refactored to delegate responsibility to others, such that duplication
408 of functionality is minimized. For instance, `postcss-colormin` will no
409 longer compress whitespace or compress numbers, as those are handled by
410 `postcss-normalize-whitespace` & `postcss-convert-values` respectively.
411
412## Other changes
413
414* Due to the PostCSS 6 upgrade, we have been able to reduce usage of custom
415 methods, such as node `clone` behaviour. In cases where some utility
416 has been used by several plugins it is now a separate package, reducing
417 cssnano's footprint.
418* cssnano now makes much better use of Browserslist. `postcss-colormin` &
419 `postcss-reduce-initial` were enhanced with different behaviour depending
420 on which browsers are passed. And now, the footprint for the `caniuse-db`
421 dependency is much smaller thanks to `caniuse-lite` - 7 times smaller as
422 of this writing. This makes cssnano much faster to download from npm!
423
424# 3.10.0
425
426* cssnano will no longer `console.warn` any messages when using deprecated
427 options; these are now sent to PostCSS. You will be able to see them if you
428 use a PostCSS runner with built-in messages support, or alternately by
429 loading `postcss-reporter` or `postcss-browser-reporter` in your plugins list.
430* Prepares support for `grid` identifier reduction by adding it to the list
431 of optimisations turned off when `options.safe` is set to `true`.
432* Adds support for normalizing `unicode-range` descriptors. Values will
433 be converted when the code matches `0` & `f` in the same place on both sides
434 of the range. So, `u+2000-2fff` can be converted to `u+2???`, but
435 `u+2100-2fff` will be left as it is.
436
437# 3.9.1
438
439* Resolves an integration issue with `v3.9.0`, where `undefined` values
440 would attempt to be parsed.
441
442# 3.9.0
443
444* Adds a new option to normalize wrapping quotes for strings & joining
445 multiple-line strings into a single line. This optimisation can potentially
446 reduce the final gzipped size of your CSS file.
447
448# 3.8.2
449
450* Resolves an issue where `display: list-item inline flow` would be normalized
451 to `inline list-item` rather than `inline-list-item` (thanks to @mattbasta).
452
453# 3.8.1
454
455* Adds a quick start file for easy integration with Runkit. Try cssnano online
456 at https://runkit.com/npm/cssnano.
457
458# 3.8.0
459
460* Adds support for normalizing multiple values for the `display` property. For
461 example `block flow` can be simplified to `block`.
462
463# 3.7.7
464
465* Further improves CSS mixin handling; semicolons will no longer be stripped
466 from *rules* as well as declarations.
467
468# 3.7.6
469
470* Resolves an issue where the semicolon was being incorrectly stripped
471 from CSS mixins.
472
473# 3.7.5
474
475* Resolves an issue where the `safe` flag was not being persisted across
476 multiple files (thanks to @techmatt101).
477
478# 3.7.4
479
480* Improves performance of the reducePositions transform by testing
481 against `hasOwnProperty` instead of using an array of object keys.
482* Removes the redundant `indexes-of` dependency.
483
484# 3.7.3
485
486* Unpins postcss-filter-plugins from `2.0.0` as a fix has landed in the new
487 version of uniqid.
488
489# 3.7.2
490
491* Temporarily pins postcss-filter-plugins to version `2.0.0` in order to
492 mitigate an issue with uniqid `3.0.0`.
493
494# 3.7.1
495
496* Enabling safe mode now turns off both postcss-merge-idents &
497 postcss-normalize-url's `stripWWW` option.
498
499# 3.7.0
500
501* Added: Reduce `background-repeat` definitions; works with both this property
502 & the `background` shorthand, and aims to compress the extended two value
503 syntax into the single value syntax.
504* Added: Reduce `initial` values for properties when the *actual* initial value
505 is shorter; for example, `min-width: initial` becomes `min-width: 0`.
506
507# 3.6.2
508
509* Fixed an issue where cssnano would crash on `steps(1)`.
510
511# 3.6.1
512
513* Fixed an issue where cssnano would crash on `steps` functions with a
514 single argument.
515
516# 3.6.0
517
518* Added `postcss-discard-overridden` to safely discard overridden rules with
519 the same identifier (thanks to @Justineo).
520* Added: Reduce animation/transition timing functions. Detects `cubic-bezier`
521 functions that are equivalent to the timing keywords and compresses, as well
522 as normalizing the `steps` timing function.
523* Added the `perspective-origin` property to the list of supported properties
524 transformed by the `reduce-positions` transform.
525
526# 3.5.2
527
528* Resolves an issue where the 3 or 4 value syntax for `background-position`
529 were being incorrectly converted.
530
531# 3.5.1
532
533* Improves checking for `background-position` values in the `background`
534 shorthand property.
535
536# 3.5.0
537
538* Adds a new optimisation path which can minimise keyword values for
539 `background-position` and the `background` shorthand.
540* Tweaks to performance in the `core` module, now performs less AST passes.
541* Now compiled with Babel 6.
542
543# 3.4.0
544
545* Adds a new optimisation path which can minimise gradient parameters
546 automatically.
547
548# 3.3.2
549
550* Fixes an issue where using `options.safe` threw an error when cssnano was
551 not used as part of a PostCSS instance, but standalone (such as in modules
552 like gulp-cssnano). cssnano now renames `safe` internally to `isSafe`.
553
554# 3.3.1
555
556* Unpins postcss-colormin from `2.1.2`, as the `2.1.3` & `2.1.4` patches had
557 optimization regressions that are now resolved in `2.1.5`.
558
559# 3.3.0
560
561* Updated modules to use postcss-value-parser version 3 (thanks to @TrySound).
562* Now converts between transform functions with postcss-reduce-transforms.
563 e.g. `translate3d(0, 0, 0)` becomes `translateZ(0)`.
564
565# 3.2.0
566
567* cssnano no longer converts `outline: none` to `outline: 0`, as there are
568 some cases where the values are not equivalent (thanks to @TrySound).
569* cssnano no longer converts for example `16px` to `1pc` *by default*. Length
570 optimisations can be turned on via `{convertValues: {length: true}}`.
571* Improved minimization of css functions (thanks to @TrySound).
572
573# 3.1.0
574
575* This release swaps postcss-single-charset for postcss-normalize-charset,
576 which can detect encoding to determine whether a charset is necessary.
577 Optionally, you can set the `add` option to `true` to prepend a UTF-8
578 charset to the output automatically (thanks to @TrySound).
579* A `safe` option was added, which disables more aggressive optimisations, as
580 a convenient preset configuration (thanks to @TrySound).
581* Added an option to convert from `deg` to `turn` & vice versa, & improved
582 minification performance in functions (thanks to @TrySound).
583
584# 3.0.3
585
586* Fixes an issue where cssnano was removing spaces around forward slashes in
587 string literals (thanks to @TrySound).
588
589# 3.0.2
590
591* Fixes an issue where cssnano was removing spaces around forward slashes in
592 calc functions.
593
594# 3.0.1
595
596* Replaced css-list & balanced-match with postcss-value-parser, reducing the
597 module's overall size (thanks to @TrySound).
598
599# 3.0.0
600
601* All cssnano plugins and cssnano itself have migrated to PostCSS 5.x. Please
602 make sure that when using the 3.x releases that you use a 5.x compatible
603 PostCSS runner.
604* cssnano will now compress inline SVG through SVGO. Because of this change,
605 interfacing with cssnano must now be done through an asynchronous API. The
606 main `process` method has the same signature as a PostCSS processor instance.
607* The old options such as `merge` & `fonts` that were deprecated in
608 release `2.5.0` were removed. The new architecture allows you to specify any
609 module name to disable it.
610* postcss-minify-selectors' at-rule compression was extracted out into
611 postcss-minify-params (thanks to @TrySound).
612* Overall performance of the module has improved dramatically, thanks to work
613 by @TrySound and input from the community.
614* Improved selector merging/deduplication in certain use cases.
615* cssnano no longer compresses hex colours in filter properties, to better
616 support old versions of Internet Explorer (thanks to @faddee).
617* cssnano will not merge properties together that have an `inherit` keyword.
618* postcss-minify-font-weight & postcss-font-family were consolidated into
619 postcss-minify-font-values. Using the old options will print deprecation
620 warnings (thanks to @TrySound).
621* The cssnano CLI was extracted into a separate module, so that dependent
622 modules such as gulp-cssnano don't download unnecessary extras.
623
624# 2.6.1
625
626* Improved performance of the core module `functionOptimiser`.
627
628# 2.6.0
629
630* Adds a new optimisation which re-orders properties that accept values in
631 an arbitrary order. This can lead to improved merging behaviour in certain
632 cases.
633
634# 2.5.0
635
636* Adds support for disabling modules of the user's choosing, with new option
637 names. The old options (such as `merge` & `fonts`) will be removed in `3.0`.
638
639# 2.4.0
640
641* postcss-minify-selectors was extended to add support for conversion of
642 `::before` to `:before`; this release removes the dedicated
643 postcss-pseudoelements module.
644
645# 2.3.0
646
647* Consolidated postcss-minify-trbl & two integrated modules into
648 postcss-merge-longhand.
649
650# 2.2.0
651
652* Replaced integrated plugin filter with postcss-filter-plugins.
653* Improved rule merging logic.
654* Improved performance across the board by reducing AST iterations where it
655 was possible to do so.
656* cssnano will now perform better whitespace compression when used with other
657 PostCSS plugins.
658
659# 2.1.1
660
661* Fixes an issue where options were not passed to normalize-url.
662
663# 2.1.0
664
665* Allow `postcss-font-family` to be disabled.
666
667# 2.0.3
668
669* cssnano can now be consumed with the parentheses-less method in PostCSS; e.g.
670 `postcss([ cssnano ])`.
671* Fixes an issue where 'Din' was being picked up by the logic as a numeric
672 value, causing the full font name to be incorrectly rearranged.
673
674# 2.0.2
675
676* Extract trbl value reducing into a separate module.
677* Refactor core longhand optimiser to not rely on trbl cache.
678* Adds support for `ch` units; previously they were removed.
679* Fixes parsing of some selector hacks.
680* Fixes an issue where embedded base 64 data was being converted as if it were
681 a URL.
682
683# 2.0.1
684
685* Add `postcss-plugin` keyword to package.json.
686* Wraps all core processors with the PostCSS 4.1 plugin API.
687
688# 2.0.0
689
690* Adds removal of outdated vendor prefixes based on browser support.
691* Addresses an issue where relative path separators were converted to
692 backslashes on Windows.
693* cssnano will now detect previous plugins and silently disable them when the
694 functionality overlaps. This is to enable faster interoperation with cssnext.
695* cssnano now exports as a PostCSS plugin. The simple interface is exposed
696 at `cssnano.process(css, opts)` instead of `cssnano(css, opts)`.
697* Improved URL detection when using two or more in the same declaration.
698* node 0.10 is no longer officially supported.
699
700# 1.4.3
701
702* Fixes incorrect minification of `background:none` to `background:0 0`.
703
704# 1.4.2
705
706* Fixes an issue with nested URLs inside `url()` functions.
707
708# 1.4.1
709
710* Addresses an issue where whitespace removal after a CSS function would cause
711 rendering issues in Internet Explorer.
712
713# 1.4.0
714
715* Adds support for removal of unused `@keyframes` and `@counter-style` at-rules.
716* comments: adds support for user-directed removal of comments, with the
717 `remove` option (thanks to @dmitrykiselyov).
718* comments: `removeAllButFirst` now operates on each CSS tree, rather than the
719 first one passed to cssnano.
720
721# 1.3.3
722
723* Fixes incorrect minification of `border:none` to `border:0 0`.
724
725# 1.3.2
726
727* Improved selector minifying logic, leading to better compression of attribute
728 selectors.
729* Improved comment discarding logic.
730
731# 1.3.1
732
733* Fixes crash on undefined `decl.before` from prior AST.
734
735# 1.3.0
736
737* Added support for bundling cssnano using webpack (thanks to @MoOx).
738
739# 1.2.1
740
741* Fixed a bug where a CSS function keyword inside its value would throw
742 an error.
743
744# 1.2.0
745
746* Better support for merging properties without the existance of a shorthand
747 override.
748* Can now 'merge forward' adjacent rules as well as the previous 'merge behind'
749 behaviour, leading to better compression.
750* Selector re-ordering now happens last in the chain of plugins, to help clean
751 up merged selectors.
752
753# 1.1.0
754
755* Now can merge identifiers such as `@keyframes` and `@counter-style` if they
756 have duplicated properties but are named differently.
757* Fixes an issue where duplicated keyframes with the same name would cause
758 an infinite loop.
759
760# 1.0.2
761
762* Improve module loading logic (thanks to @tunnckoCore).
763* Improve minification of numeric values, with better support for `rem`,
764 trailing zeroes and slash/comma separated values
765 (thanks to @TrySound & @tunnckoCore).
766* Fixed an issue where `-webkit-tap-highlight-color` values were being
767 incorrectly transformed to `transparent`. This is not supported in Safari.
768* Added support for viewport units (thanks to @TrySound).
769* Add MIT license file.
770
771# 1.0.1
772
773* Add repository/author links to package.json.
774
775# 1.0.0
776
777* Initial release.
778
\No newline at end of file