d5f024af3285009efe326f89c7875585b052aab2ddcf83fffb1ca6f8b2f8dc8db79cf5b2efecc45e5c487ecb5b346756f4fca0097a1376ade25ac34ad47027 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. # 3.10.0
  2. * cssnano will no longer `console.warn` any messages when using deprecated
  3. options; these are now sent to PostCSS. You will be able to see them if you
  4. use a PostCSS runner with built-in messages support, or alternately by
  5. loading `postcss-reporter` or `postcss-browser-reporter` in your plugins list.
  6. * Prepares support for `grid` identifier reduction by adding it to the list
  7. of optimisations turned off when `options.safe` is set to `true`.
  8. * Adds support for normalizing `unicode-range` descriptors. Values will
  9. be converted when the code matches `0` & `f` in the same place on both sides
  10. of the range. So, `u+2000-2fff` can be converted to `u+2???`, but
  11. `u+2100-2fff` will be left as it is.
  12. # 3.9.1
  13. * Resolves an integration issue with `v3.9.0`, where `undefined` values
  14. would attempt to be parsed.
  15. # 3.9.0
  16. * Adds a new option to normalize wrapping quotes for strings & joining
  17. multiple-line strings into a single line. This optimisation can potentially
  18. reduce the final gzipped size of your CSS file.
  19. # 3.8.2
  20. * Resolves an issue where `display: list-item inline flow` would be normalized
  21. to `inline list-item` rather than `inline-list-item` (thanks to @mattbasta).
  22. # 3.8.1
  23. * Adds a quick start file for easy integration with Runkit. Try cssnano online
  24. at https://runkit.com/npm/cssnano.
  25. # 3.8.0
  26. * Adds support for normalizing multiple values for the `display` property. For
  27. example `block flow` can be simplified to `block`.
  28. # 3.7.7
  29. * Further improves CSS mixin handling; semicolons will no longer be stripped
  30. from *rules* as well as declarations.
  31. # 3.7.6
  32. * Resolves an issue where the semicolon was being incorrectly stripped
  33. from CSS mixins.
  34. # 3.7.5
  35. * Resolves an issue where the `safe` flag was not being persisted across
  36. multiple files (thanks to @techmatt101).
  37. # 3.7.4
  38. * Improves performance of the reducePositions transform by testing
  39. against `hasOwnProperty` instead of using an array of object keys.
  40. * Removes the redundant `indexes-of` dependency.
  41. # 3.7.3
  42. * Unpins postcss-filter-plugins from `2.0.0` as a fix has landed in the new
  43. version of uniqid.
  44. # 3.7.2
  45. * Temporarily pins postcss-filter-plugins to version `2.0.0` in order to
  46. mitigate an issue with uniqid `3.0.0`.
  47. # 3.7.1
  48. * Enabling safe mode now turns off both postcss-merge-idents &
  49. postcss-normalize-url's `stripWWW` option.
  50. # 3.7.0
  51. * Added: Reduce `background-repeat` definitions; works with both this property
  52. & the `background` shorthand, and aims to compress the extended two value
  53. syntax into the single value syntax.
  54. * Added: Reduce `initial` values for properties when the *actual* initial value
  55. is shorter; for example, `min-width: initial` becomes `min-width: 0`.
  56. # 3.6.2
  57. * Fixed an issue where cssnano would crash on `steps(1)`.
  58. # 3.6.1
  59. * Fixed an issue where cssnano would crash on `steps` functions with a
  60. single argument.
  61. # 3.6.0
  62. * Added `postcss-discard-overridden` to safely discard overridden rules with
  63. the same identifier (thanks to @Justineo).
  64. * Added: Reduce animation/transition timing functions. Detects `cubic-bezier`
  65. functions that are equivalent to the timing keywords and compresses, as well
  66. as normalizing the `steps` timing function.
  67. * Added the `perspective-origin` property to the list of supported properties
  68. transformed by the `reduce-positions` transform.
  69. # 3.5.2
  70. * Resolves an issue where the 3 or 4 value syntax for `background-position`
  71. were being incorrectly converted.
  72. # 3.5.1
  73. * Improves checking for `background-position` values in the `background`
  74. shorthand property.
  75. # 3.5.0
  76. * Adds a new optimisation path which can minimise keyword values for
  77. `background-position` and the `background` shorthand.
  78. * Tweaks to performance in the `core` module, now performs less AST passes.
  79. * Now compiled with Babel 6.
  80. # 3.4.0
  81. * Adds a new optimisation path which can minimise gradient parameters
  82. automatically.
  83. # 3.3.2
  84. * Fixes an issue where using `options.safe` threw an error when cssnano was
  85. not used as part of a PostCSS instance, but standalone (such as in modules
  86. like gulp-cssnano). cssnano now renames `safe` internally to `isSafe`.
  87. # 3.3.1
  88. * Unpins postcss-colormin from `2.1.2`, as the `2.1.3` & `2.1.4` patches had
  89. optimization regressions that are now resolved in `2.1.5`.
  90. # 3.3.0
  91. * Updated modules to use postcss-value-parser version 3 (thanks to @TrySound).
  92. * Now converts between transform functions with postcss-reduce-transforms.
  93. e.g. `translate3d(0, 0, 0)` becomes `translateZ(0)`.
  94. # 3.2.0
  95. * cssnano no longer converts `outline: none` to `outline: 0`, as there are
  96. some cases where the values are not equivalent (thanks to @TrySound).
  97. * cssnano no longer converts for example `16px` to `1pc` *by default*. Length
  98. optimisations can be turned on via `{convertValues: {length: true}}`.
  99. * Improved minimization of css functions (thanks to @TrySound).
  100. # 3.1.0
  101. * This release swaps postcss-single-charset for postcss-normalize-charset,
  102. which can detect encoding to determine whether a charset is necessary.
  103. Optionally, you can set the `add` option to `true` to prepend a UTF-8
  104. charset to the output automatically (thanks to @TrySound).
  105. * A `safe` option was added, which disables more aggressive optimisations, as
  106. a convenient preset configuration (thanks to @TrySound).
  107. * Added an option to convert from `deg` to `turn` & vice versa, & improved
  108. minification performance in functions (thanks to @TrySound).
  109. # 3.0.3
  110. * Fixes an issue where cssnano was removing spaces around forward slashes in
  111. string literals (thanks to @TrySound).
  112. # 3.0.2
  113. * Fixes an issue where cssnano was removing spaces around forward slashes in
  114. calc functions.
  115. # 3.0.1
  116. * Replaced css-list & balanced-match with postcss-value-parser, reducing the
  117. module's overall size (thanks to @TrySound).
  118. # 3.0.0
  119. * All cssnano plugins and cssnano itself have migrated to PostCSS 5.x. Please
  120. make sure that when using the 3.x releases that you use a 5.x compatible
  121. PostCSS runner.
  122. * cssnano will now compress inline SVG through SVGO. Because of this change,
  123. interfacing with cssnano must now be done through an asynchronous API. The
  124. main `process` method has the same signature as a PostCSS processor instance.
  125. * The old options such as `merge` & `fonts` that were deprecated in
  126. release `2.5.0` were removed. The new architecture allows you to specify any
  127. module name to disable it.
  128. * postcss-minify-selectors' at-rule compression was extracted out into
  129. postcss-minify-params (thanks to @TrySound).
  130. * Overall performance of the module has improved dramatically, thanks to work
  131. by @TrySound and input from the community.
  132. * Improved selector merging/deduplication in certain use cases.
  133. * cssnano no longer compresses hex colours in filter properties, to better
  134. support old versions of Internet Explorer (thanks to @faddee).
  135. * cssnano will not merge properties together that have an `inherit` keyword.
  136. * postcss-minify-font-weight & postcss-font-family were consolidated into
  137. postcss-minify-font-values. Using the old options will print deprecation
  138. warnings (thanks to @TrySound).
  139. * The cssnano CLI was extracted into a separate module, so that dependent
  140. modules such as gulp-cssnano don't download unnecessary extras.
  141. # 2.6.1
  142. * Improved performance of the core module `functionOptimiser`.
  143. # 2.6.0
  144. * Adds a new optimisation which re-orders properties that accept values in
  145. an arbitrary order. This can lead to improved merging behaviour in certain
  146. cases.
  147. # 2.5.0
  148. * Adds support for disabling modules of the user's choosing, with new option
  149. names. The old options (such as `merge` & `fonts`) will be removed in `3.0`.
  150. # 2.4.0
  151. * postcss-minify-selectors was extended to add support for conversion of
  152. `::before` to `:before`; this release removes the dedicated
  153. postcss-pseudoelements module.
  154. # 2.3.0
  155. * Consolidated postcss-minify-trbl & two integrated modules into
  156. postcss-merge-longhand.
  157. # 2.2.0
  158. * Replaced integrated plugin filter with postcss-filter-plugins.
  159. * Improved rule merging logic.
  160. * Improved performance across the board by reducing AST iterations where it
  161. was possible to do so.
  162. * cssnano will now perform better whitespace compression when used with other
  163. PostCSS plugins.
  164. # 2.1.1
  165. * Fixes an issue where options were not passed to normalize-url.
  166. # 2.1.0
  167. * Allow `postcss-font-family` to be disabled.
  168. # 2.0.3
  169. * cssnano can now be consumed with the parentheses-less method in PostCSS; e.g.
  170. `postcss([ cssnano ])`.
  171. * Fixes an issue where 'Din' was being picked up by the logic as a numeric
  172. value, causing the full font name to be incorrectly rearranged.
  173. # 2.0.2
  174. * Extract trbl value reducing into a separate module.
  175. * Refactor core longhand optimiser to not rely on trbl cache.
  176. * Adds support for `ch` units; previously they were removed.
  177. * Fixes parsing of some selector hacks.
  178. * Fixes an issue where embedded base 64 data was being converted as if it were
  179. a URL.
  180. # 2.0.1
  181. * Add `postcss-plugin` keyword to package.json.
  182. * Wraps all core processors with the PostCSS 4.1 plugin API.
  183. # 2.0.0
  184. * Adds removal of outdated vendor prefixes based on browser support.
  185. * Addresses an issue where relative path separators were converted to
  186. backslashes on Windows.
  187. * cssnano will now detect previous plugins and silently disable them when the
  188. functionality overlaps. This is to enable faster interoperation with cssnext.
  189. * cssnano now exports as a PostCSS plugin. The simple interface is exposed
  190. at `cssnano.process(css, opts)` instead of `cssnano(css, opts)`.
  191. * Improved URL detection when using two or more in the same declaration.
  192. * node 0.10 is no longer officially supported.
  193. # 1.4.3
  194. * Fixes incorrect minification of `background:none` to `background:0 0`.
  195. # 1.4.2
  196. * Fixes an issue with nested URLs inside `url()` functions.
  197. # 1.4.1
  198. * Addresses an issue where whitespace removal after a CSS function would cause
  199. rendering issues in Internet Explorer.
  200. # 1.4.0
  201. * Adds support for removal of unused `@keyframes` and `@counter-style` at-rules.
  202. * comments: adds support for user-directed removal of comments, with the
  203. `remove` option (thanks to @dmitrykiselyov).
  204. * comments: `removeAllButFirst` now operates on each CSS tree, rather than the
  205. first one passed to cssnano.
  206. # 1.3.3
  207. * Fixes incorrect minification of `border:none` to `border:0 0`.
  208. # 1.3.2
  209. * Improved selector minifying logic, leading to better compression of attribute
  210. selectors.
  211. * Improved comment discarding logic.
  212. # 1.3.1
  213. * Fixes crash on undefined `decl.before` from prior AST.
  214. # 1.3.0
  215. * Added support for bundling cssnano using webpack (thanks to @MoOx).
  216. # 1.2.1
  217. * Fixed a bug where a CSS function keyword inside its value would throw
  218. an error.
  219. # 1.2.0
  220. * Better support for merging properties without the existance of a shorthand
  221. override.
  222. * Can now 'merge forward' adjacent rules as well as the previous 'merge behind'
  223. behaviour, leading to better compression.
  224. * Selector re-ordering now happens last in the chain of plugins, to help clean
  225. up merged selectors.
  226. # 1.1.0
  227. * Now can merge identifiers such as `@keyframes` and `@counter-style` if they
  228. have duplicated properties but are named differently.
  229. * Fixes an issue where duplicated keyframes with the same name would cause
  230. an infinite loop.
  231. # 1.0.2
  232. * Improve module loading logic (thanks to @tunnckoCore).
  233. * Improve minification of numeric values, with better support for `rem`,
  234. trailing zeroes and slash/comma separated values
  235. (thanks to @TrySound & @tunnckoCore).
  236. * Fixed an issue where `-webkit-tap-highlight-color` values were being
  237. incorrectly transformed to `transparent`. This is not supported in Safari.
  238. * Added support for viewport units (thanks to @TrySound).
  239. * Add MIT license file.
  240. # 1.0.1
  241. * Add repository/author links to package.json.
  242. # 1.0.0
  243. * Initial release.