History

  • Fixed issue #1106 - regression in handling RGBA/HSLA colors.

  • Fixed error when property block has no value.

  • Fixed issue #1077 - local fonts with color in name.

  • Fixed issue #1082 - correctly convert colors if alpha >= 1.

  • Fixed issue #1085 - prevent unquoting of grid elements.

  • Fixes giving breakWith option via a string.

  • Adds process method for compatibility with optimize-css-assets-webpack-plugin.

  • Fixed issue #861 - new transition property optimizer.

  • Fixed issue #895 - ignoring specific styles.

  • Fixed issue #947 - selector based filtering.

  • Fixed issue #964 - adds configurable line breaks.

  • Fixed issue #986 - level 2 optimizations and CSS 4 colors.

  • Fixed issue #1000 - carriage return handling in tokenizer.

  • Fixed issue #1038 - font-variation-settings quoting.

  • Fixes ReDOS vulnerabilities in validator code.

  • Backports fixes to ReDOS vulnerabilities in validator code.

  • Fixed issue #988 - edge case in dropping default animation-duration.

  • Fixed issue #989 - edge case in removing unused at rules.

  • Fixed issue #1001 - corrupted tokenizer state.

  • Fixed issue #1006 - edge case in handling invalid source maps.

  • Fixed issue #1008 - edge case in breaking up font shorthand.

  • Fixed issue #971 - edge case in removing unused at rules.

  • Fixed issue #959 - regression in shortening long hex values.

  • Fixed issue #960 - better explanation of efficiency stat.

  • Fixed issue #965 - edge case in parsing comment endings.

  • Fixed issue #966 - remote @imports referenced from local ones.

  • Fixed issue #957 - 0% minification of width property.

  • Fixed issue #887 - edge case in serializing comments.

  • Fixed issue #953 - beautify breaks attribute selectors.

  • Fixed issue #945 - hex RGBA colors in IE filters.

  • Fixed issue #952 - parsing @page according to CSS3 spec.

  • Fixed issue #950 - bug in removing unused @font-face rules.

  • Fixed issue #946 - tokenizing -ms-grid-columns repeat syntax.

  • Fixed issue #939 - semicolon after @apply at rule.

  • Fixed issue #940 - handling more font keywords.

  • Fixed issue #941 - breaking up vendor prefixed animation.

  • Fixed issue #938 - removing unused at-rules with !important.

  • Improves longhand-into-shorthand merging mechanism in complex cases as with border-* shorthands.

  • Fixed issue #254 - adds font property optimizer.

  • Fixed issue #525 - restores inherit-based merging.

  • Fixed issue #755 - adds custom handling of remote requests.

  • Fixed issue #860 - adds animation property optimizer.

  • Fixed issue #862 - allows removing unused at rules.

  • Fixed issue #886 - better multi pseudo class / element merging.

  • Fixed issue #890 - adds toggle to disable empty tokens removal.

  • Fixed issue #893 - inline: false as alias to inline: 'none'.

  • Fixed issue #905 - allows disabling selector sorting.

  • Fixed issue #906 - improves usability of web UI settings.

  • Fixed issue #908 - improved minify method signature.

  • Fixed issue #916 - maximum number of merged selectors.

  • Fixed issue #920 - allows skipping certain properties in level 2 optimizations.

  • Fixed issue #934 - smarter longhand into shorthand merging.

  • Backports #939 - semicolon after @apply at rule.

  • Fixed issue #930 - regression in tidying selectors.

  • Fixed issue #924 - hsl zero percent eager optimization.

  • Fixed issue #917 - prevents grid area unquoting.

  • Backported #916 - maximum number of merged selectors.

  • Refixed issue #556 - IE backslash hacks.

  • Fixed issue #902 - case insensitive attribute matchers.

  • Fixed issue #903 - web UI and source maps.

  • Fixed issue #907 - space after closing brace in @supports.

  • Fixed issue #910 - too aggressive precision optimizations.

  • Fixes edge case in remote stylesheet fetching.

  • Fixed issue #899 - regression in optimizing pseudo class arguments.

  • Fixed issue #891 - merging vendor-prefixed pseudo-classes.

  • Fixed issue #885 - unquoting font-feature-settings.

  • Fixed issue #884 - handling absolute paths on Windows.

  • Fixed issue #881 - incorrect require arity.

  • Fixed issue #880 - incorrect token type identification.

  • Fixed issue #879 - incorrect handling of spaces in paths.

  • Fixed issue #878 - invalid double backslash tokenization.

  • Fixed issue #875 - invalid traversing in semantic merging.

  • Fixed issue #874 - regression in at-rule tokenization.

  • Fixed issue #866 - edge case in inline option.

  • Fixed issue #867 - skip optimizing variable values.

  • Fixed issue #868 - accept absolute paths in input hash.

  • Fixed issue #872 - edge case in CSS tokenization.

  • Adds more detailed error & warning messages on top of the new tokenizer.

  • Disables restructuring optimizations by default until optimized in #533.

  • Fixes a bug ignoring incorrect properties in complex restructuring.

  • Requires Node.js 4.0+ to run.

  • Removes benchmark API option as total time is always reported under stats property.

  • Removes debug API switch as stats are always gathered and available under stats property.

  • Replaces the old tokenizer with a new one which doesn't use any escaping.

  • Replaces the old @import inlining with one on top of the new tokenizer.

  • Re-enables background-(clip|origin|size) merging with background shorthand.

  • Simplifies URL rebasing with a single rebaseTo option in API or inferred from --output in CLI.

  • Splits inliner option into inlineRequest and inlineTimeout.

  • Fixed issue #209 - adds output formatting via format flag.

  • Fixed issue #290 - removes aggressive merging.

  • Fixed issue #432 - adds URLs normalization.

  • Fixed issue #460 - unescaped semicolon in selector.

  • Fixed issue #657 - adds property name validation.

  • Fixed issue #685 - adds lowercasing hex colors optimization.

  • Fixed issue #686 - adds rounding precision for all units.

  • Fixed issue #703 - changes default IE compatibility to 10+.

  • Fixed issue #731 - adds granular control over level 2 optimizations.

  • Fixed issue #739 - error when a closing brace is missing.

  • Fixed issue #750 - allows width overriding.

  • Fixed issue #756 - adds disabling font-weight optimizations.

  • Fixed issue #758 - ignores rules with empty selector.

  • Fixed issue #767 - disables remote @import inlining by default.

  • Fixed issue #773 - adds reordering based on selector specificity.

  • Fixed issue #785 - adds @font-face de-duplication.

  • Fixed issue #791 - resolves imports in-memory if possible.

  • Fixed issue #796 - semantic merging for @media blocks.

  • Fixed issue #801 - smarter @import inlining.

  • Fixed issue #806 - skip optimizing variable properties.

  • Fixed issue #817 - makes off disable rounding.

  • Fixed issue #818 - disables px rounding by default.

  • Fixed issue #828 - -chrome- hack support.

  • Fixed issue #829 - adds more strict selector merging rules.

  • Fixed issue #834 - adds extra line break in nested blocks.

  • Fixed issue #836 - enables level 0 optimizations.

  • Fixed issue #839 - allows URIs in import inlining rules.

  • Fixed issue #840 - allows input source map as map object.

  • Fixed issue #843 - regression in selector handling.

  • Fixed issue #845 - web compatibility of 4.0 branch.

  • Fixed issue #847 - regression in handling invalid selectors.

  • Fixed issue #849 - disables inlining protocol-less resources.

  • Fixed issue #856 - allows minify to return a promise.

  • Fixed issue #857 - normalizes CleanCSS API interface.

  • Fixed issue #863 - adds transform callback for custom optimizations.

  • Backports #939 - semicolon after @apply at-rule.

  • Fixed issue #897 - tokenization with escaped markers.

  • Fixed issue #859 - avoid -webkit-border-radius optimizations.

  • Fixed issue #844 - regression in property values extraction.

  • Fixed issue #841 - disabled importing and files passed as array.

  • Ignores @import at-rules if appearing after any non-@import rules.

  • Fixed issue #821 - reducing non-adjacent rules.

  • Fixed issue #830 - reordering border-* properties.

  • Fixed issue #833 - moving @media queries.

  • Fixed issue #814 - :selection rule merging.

  • Fixed issue #795 - !important and override compacting.

  • Fixed issue #787 - regression in processing data URIs.

  • Fixed issue #783 - regression in processing data URIs.

  • Fixed issue #781 - regression in override compacting.

  • Fixed issue #782 - regression in processing data URIs.

  • Fixed issue #776 - edge case in quoted data URIs.

  • Fixed issue #779 - merging background-(position|size).

  • Fixed issue #780 - space after inlined variables.

  • Fixed issue #751 - stringifying CSS variables.

  • Fixed issue #763 - data URI SVG and quoting.

  • Fixed issue #765 - two values of border-radius.

  • Fixed issue #768 - invalid border-radius property.

  • Fixed issue #734 - Node.js 6.x support.

  • Fixed issue #734 - --root option edge case.

  • Fixed issue #758 - treats empty rule as unmergeable.

  • Fixed issue #738 - edge case in comment processing.

  • Fixed issue #741 - HTTP proxy with HTTPS inlining.

  • Fixed issue #743 - background shorthand and source maps.

  • Fixed issue #745 - matching mixed case !important.

  • Fixed issue #735 - whitespace removal with escaped chars.

  • Sped up merging by body advanced optimization.

  • Fixed issue #693 - restructuring edge case.

  • Fixed issue #711 - border fuzzy matching.

  • Fixed issue #714 - stringifying property level at rules.

  • Fixed issue #715 - stack too deep in comment scan.

  • Fixed issue #676 - fuzzy matching unqoted data URIs.

  • Fixed issue #692 - edge case in URL quoting.

  • Fixed issue #695 - shorthand overriding edge case.

  • Fixed issue #699 - IE9 transparent hack.

  • Fixed issue #701 - url quoting with hash arguments.

  • Fixed issue #679 - wrong rebasing of remote URLs.

  • Fixed issue #681 - property inheritance & restructuring.

  • Fixed issue #675 - overriding with !important.

  • Fixed issue #626 - edge case in import rebasing.

  • Fixed issue #674 - adjacent merging order.

  • Fixed issue #668 - node v4 path.join.

  • Fixed issue #669 - adjacent overriding with !important.

  • Fixed issue #598 - restructuring border properties.

  • Fixed issue #654 - disables length optimizations.

  • Fixed issue #655 - shorthands override merging.

  • Fixed issue #660 - !important token overriding.

  • Fixed issue #662 - !important selector reducing.

  • Fixed issue #667 - rebasing remote URLs.

  • Fixed issue #652 - order of restoring and removing tokens.

  • Adds an option for a fine-grained @import control.

  • Adds unit compatibility switches to disable length optimizations.

  • Adds inferring proxy settings from HTTP_PROXY environment variable.

  • Adds support for Polymer / Web Components special selectors.

  • Adds support for Polymer mixins.

  • Adds testing source maps in batch mode.

  • Unifies wrappers for simple & advanced optimizations.

  • Fixed issue #596 - support for !ie IE<8 hack.

  • Fixed issue #599 - support for inlined source maps.

  • Fixed issue #607 - adds better rule reordering.

  • Fixed issue #612 - adds HTTP proxy support.

  • Fixed issue #618 - adds safer function validation.

  • Fixed issue #625 - adds length unit optimizations.

  • Fixed issue #632 - adds disabling remote imports.

  • Fixed issue #635 - adds safer 0% optimizations.

  • Fixed issue #644 - adds time unit optimizations.

  • Fixed issue #645 - adds bottom to top media merging.

  • Fixed issue #648 - adds property level at-rule support.

  • Adds better comments + keepBreaks handling.

  • Adds better text normalizing in source maps mode.

  • Fixes non-adjacent optimizations for source maps.

  • Fixes removing unused items.

  • Improves outline break up with source maps.

  • Refixed issue #629 - source maps & background shorthands.

  • Fixed issue #640 - URI processing regression.

  • Fixed issue #629 - source maps & background shorthands.

  • Fixed issue #630 - vendor prefixed flex optimizations.

  • Fixed issue #633 - handling data URI with brackets.

  • Fixed issue #634 - merging :placeholder selectors.

  • Fixed issue #616 - ordering in restructuring.

  • Fixed issue #620 - bold style in font shorthands.

  • Fixed issue #608 - custom URI protocols handling.

  • Fixed issue #610 - border:inherit restoring.

  • Fixed issue #611 - edge case in quote stripping.

  • Fixed issue #603 - IE suffix hack defaults to on.

  • Fixed issue #595 - more relaxed block matching.

  • Fixed issue #601 - percentage minifying inside flex.

  • Fixed issue #602 - backslash IE hacks after a space.

  • Fixed issue #590 - edge case in @import processing.

  • Cleans up url rebase code getting rid of unnecessary state.

  • Cleans up tokenizer code getting rid of unnecessary state.

  • Moves source maps tracker into lib/source-maps/track.

  • Moves tokenizer code into lib/tokenizer.

  • Moves URL scanner into lib/urls/reduce (was named incorrectly before).

  • Moves URL rebasing & rewriting into lib/urls.

  • Fixed issue #375 - unit compatibility switches.

  • Fixed issue #436 - refactors URI rewriting.

  • Fixed issue #448 - rebasing no protocol URIs.

  • Fixed issue #517 - turning off color optimizations.

  • Fixed issue #542 - space after closing brace in IE.

  • Fixed issue #562 - optimizing invalid color values.

  • Fixed issue #563 - background:inherit restoring.

  • Fixed issue #570 - rebasing "no-url()" imports.

  • Fixed issue #574 - rewriting internal URLs.

  • Fixed issue #575 - missing directory as a target.

  • Fixed issue #577 - background-clip into shorthand.

  • Fixed issue #579 - background-origin into shorthand.

  • Fixed issue #580 - mixed @import processing.

  • Fixed issue #582 - overriding with prefixed values.

  • Fixed issue #583 - URL quoting for SVG data.

  • Fixed issue #587 - too aggressive border reordering.

  • Fixed issue #563 - background:inherit restoring.

  • Fixed issue #582 - overriding with prefixed values.

  • Fixed issue #583 - URL quoting for SVG data.

  • Fixed issue #587 - too aggressive border reordering.

  • Fixed issue #572 - empty elements removal.

  • Fixed issue #567 - merging colors as functions.

  • Fixed issue #561 - restructuring special selectors.

  • Fixed issue #551 - edge case in restructuring.

  • Fixed issue #553 - another style of SVG fallback.

  • Fixed issue #558 - units in same selector merging.

  • Fixed issue #550 - proper contentSources tracking.

  • Fixed issue #556 - regression in IE backslash hacks.

  • Fixed issue #543 - better "comment in body" handling.

  • Fixed issue #548 - regression in font minifying.

  • Fixed issue #549 - special comments in source maps.

  • Fixed issue #544 - regression in same value merging.

  • Fixed issue #546 - IE<11 calc() issue.

  • Fixed issue #541 - outline-style:auto in shorthand.

  • Fixed issue #537 - regression in simple optimizer.

  • Fixed issue #534 - wrong @font-face stringifying.

  • Bumps commander to 2.8.x.

  • Fixes remote asset rebasing when passing data as a hash.

  • Improves path resolution inside source maps.

  • Makes root option implicitely default to process.cwd().

  • Fixed issue #371 - background fallback with none.

  • Fixed issue #376 - option to disable 0[unit] -> 0.

  • Fixed issue #396 - better input source maps tracking.

  • Fixed issue #397 - support for source map sources.

  • Fixed issue #399 - support compacting with source maps.

  • Fixed issue #429 - unifies data tokenization.

  • Fixed issue #446 - list-style fuzzy matching.

  • Fixed issue #468 - bumps source-map to 0.4.x.

  • Fixed issue #480 - extracting uppercase property names.

  • Fixed issue #487 - source map paths under Windows.

  • Fixed issue #490 - vendor prefixed multivalue background.

  • Fixed issue #500 - merging duplicate adjacent properties.

  • Fixed issue #504 - keeping url() quotes.

  • Fixed issue #507 - merging longhands into many shorthands.

  • Fixed issue #508 - removing duplicate media queries.

  • Fixed issue #521 - unit optimizations inside calc().

  • Fixed issue #524 - timeouts in @import inlining.

  • Fixed issue #526 - shorthand overriding into a function.

  • Fixed issue #528 - better support for IE<9 hacks.

  • Fixed issue #529 - wrong font weight minification.

  • Fixes issue #511 - ) advanced processing.

  • Fixes issue #498 - reordering and flexbox.

  • Fixes issue #499 - too aggressive - removal.

  • Backports fix to #480 - reordering and uppercase properties.

  • Fixes issue #496 - space after bracket removal.

  • Fixes issue #489 - AlphaImageLoader IE filter.

  • Fixes issue #483 - property order in restructuring.

  • Fixes issue #472 - broken function minification.

  • Fixes issue #477 - @imports order in restructuring.

  • Fixes issue #478 - ultimate fix to brace whitespace.

  • Fixes issue #464 - data URI with quoted braces.

  • Fixes issue #475 - whitespace after closing brace.

  • Refixed issue #471 - correct order after restructuring.

  • Fixes issue #466 - rebuilding background shorthand.

  • Fixes issue #462 - escaped apostrophes in selectors.

  • Fixed issue #469 - extracting broken property.

  • Fixed issue #470 - negative padding removal.

  • Fixed issue #471 - correct order after restructuring.

  • Adds 0deg to 0 minification where possible.

  • Adds better non-adjacent selector merging when body is the same.

  • Adds official support for node.js 0.12.

  • Adds official support for io.js 1.0.

  • Adds restructuring optimizations to reorganize selectors, which vastly improves minification.

  • Fixed issue #158 - adds body-based selectors reduction.

  • Fixed issue #182 - removing space after closing brace.

  • Fixed issue #204 - @media merging.

  • Fixed issue #351 - remote @imports after content.

  • Fixed issue #357 - non-standard but valid URLs.

  • Fixed issue #416 - accepts hash as minify argument.

  • Fixed issue #419 - multiple input source maps.

  • Fixed issue #435 - background-clip in shorthand.

  • Fixed issue #439 - background-origin in shorthand.

  • Fixed issue #442 - space before adjacent nav.

  • Fixed issue #445 - regression issue in url processor.

  • Fixed issue #449 - warns of missing close braces.

  • Fixed issue #463 - relative remote @import URLs.

  • Fixed issue #453 - double background-repeat.

  • Fixed issue #455 - property extracting regression.

  • Fixed issue #452 - regression in advanced merging.

  • Fixed issue #447 - background-color in shorthands.

  • Fixed issue #450 - name to hex color converting.

  • Fixed issue #441 - hex to name color converting.

  • Refixed issue #414 - source maps position fallback.

  • Fixed issue #414 - source maps position fallback.

  • Fixed issue #433 - meging !important in shorthands.

  • Fixed issue #314 - spaces inside calc.

  • Just a version bump as npm incorrectly things 2.2.23 is the latest one.

  • Fixed issue #422 - handling calc as a unit.

  • Fixed issue #410 - advanced merging and comments.

  • Fixed issue #411 - properties and important comments.

  • Adds more granular control over compatibility settings.

  • Adds support for @counter-style at-rule.

  • Adds --source-map/sourceMap switch for building input's source map.

  • Adds --skip-shorthand-compacting/shorthandComacting option for disabling shorthand compacting.

  • Allows target option to be a path to a folder instead of a file.

  • Allows disabling rounding precision. By @superlukas.

  • Breaks 2.x compatibility for using CleanCSS as a function.

  • Changes minify method output to handle multiple outputs.

  • Reworks minification to tokenize first then minify. See changes.

  • Removes support for node.js 0.8.x.

  • Renames noAdvanced option into advanced.

  • Renames noAggressiveMerging option into aggressiveMerging.

  • Renames noRebase option into rebase.

  • Speeds up advanced processing by shortening optimize loop.

  • Fixed issue #125 - source maps!

  • Fixed issue #344 - merging background-size into shorthand.

  • Fixed issue #352 - honors rebasing in imported stylesheets.

  • Fixed issue #360 - adds 7 extra CSS colors.

  • Fixed issue #363 - rem units overriding px.

  • Fixed issue #373 - proper background shorthand merging.

  • Fixed issue #395 - unescaped brackets in data URIs.

  • Fixed issue #398 - restoring important comments.

  • Fixed issue #400 - API to accept an array of filenames.

  • Fixed issue #403 - tracking input files in source maps.

  • Fixed issue #404 - no state sharing in API.

  • Fixed issue #405 - disables default background-size merging.

  • Refixed issue #304 - background-position merging.

  • Backports fix to issue #304 - background-position merging.

  • Backports fix to issue #373 - background shorthand merging.

  • Backports fix to issue #390 - pseudo-class merging.

  • Fixed issue #385 - edge cases in processing cut off data.

  • Fixed issue #383 - rounding fractions once again.

  • Fixed issue #380 - rounding fractions to a whole number.

  • Fixed issue #359 - handling escaped double backslash.

  • Fixed issue #358 - property merging in compatibility mode.

  • Fixed issue #356 - preserving *+html hack.

  • Fixed issue #354 - !important overriding in shorthands.

  • Fixed issue #343 - too aggressive rgba/hsla minification.

  • Fixed issue #345 - URL rebasing for document relative ones.

  • Fixed issue #346 - overriding !important by !important.

  • Fixed issue #350 - edge cases in @import processing.

  • Makes multival operations idempotent.

  • Fixed issue #339 - skips invalid properties.

  • Fixed issue #341 - ensure output is shorter than input.

  • Fixed issue #337 - handling component importance.

  • Fixed issue with tokenizer removing first selector after an unknown @ rule.

  • Fixed issue #329 - font shorthands incorrectly processed.

  • Fixed issue #332 - background shorthand with colors.

  • Refixed issue #325 - invalid charset declarations.

  • Fixed issue #326 - background-size regression.

  • Improved performance of advanced mode validators.

  • Fixed issue #307 - background-color in multiple backgrounds.

  • Fixed issue #322 - adds background-size support.

  • Fixed issue #323 - stripping variable references.

  • Fixed issue #325 - removing invalid @charset declarations.

  • Adds background normalization according to W3C spec.

  • Fixed issue #316 - incorrect background processing.

  • Fixed issue #313 - processing comment marks in URLs.

  • Fixed issue #315 - rgba/hsla -> transparent in gradients.

  • Fixed issue #304 - merging multiple backgrounds.

  • Fixed issue #312 - merging with mixed repeat.

  • Adds faster quote matching in QuoteScanner.

  • Improves QuoteScanner to handle comments correctly.

  • Fixed issue #308 - parsing comments in quoted URLs.

  • Fixed issue #311 - leading/trailing decimal points.

  • Adds removing extra spaces around / in border-radius.

  • Adds replacing same horizontal & vertical value in border-radius.

  • Fixed issue #305 - allows width keywords in border-width.

  • Fixed issue #301 - proper border-radius processing.

  • Fixed issue #303 - correctly preserves viewport units.

  • Fixed issue #302 - handling of outline-style: auto.

  • Fixed issue #297 - box-shadow zeros minification.

  • Fixes new property optimizer for 'none' values.

  • Fixed issue #294 - space after rgba/hsla in IE<=11.

  • Adds a better algorithm for quotation marks' removal.

  • Adds a better non-adjacent optimizer compatible with the upcoming new property optimizer.

  • Adds minifying remote files directly from CLI.

  • Adds --rounding-precision to control rounding precision.

  • Moves quotation matching into a QuoteScanner class.

  • Adds npm run browserify for creating embeddable version of clean-css.

  • Fixed list-style-* advanced processing.

  • Fixed issue #134 - merges properties into shorthand form.

  • Fixed issue #164 - removes default values if not needed.

  • Fixed issue #168 - adds better property merging algorithm.

  • Fixed issue #173 - merges same properties if grouped.

  • Fixed issue #184 - uses !important for optimization opportunities.

  • Fixed issue #190 - uses shorthand to override another shorthand.

  • Fixed issue #197 - adds borders merging by understandability.

  • Fixed issue #210 - adds temporary workaround for aggressive merging.

  • Fixed issue #246 - removes IE hacks when not in compatibility mode.

  • Fixed issue #247 - removes deprecated selectorsMergeMode switch.

  • Refixed issue #250 - based on new quotation marks removal.

  • Fixed issue #257 - turns rgba/hsla to transparent if possible.

  • Fixed issue #265 - adds support for multiple input files.

  • Fixed issue #275 - handling transform properties.

  • Fixed issue #276 - corrects unicode handling.

  • Fixed issue #288 - adds smarter expression parsing.

  • Fixed issue #293 - handles escaped @ symbols in class names and IDs.

  • Fixed issue #267 - incorrect non-adjacent selector merging.

  • Fixed issue #264 - @import statements inside comments.

  • Fixed issue #258 - wrong @import handling in EmptyRemoval.

  • Fixed issue #255 - incorrect processing of a trailing -0.

  • Fixed issue #250 - correctly handle JSON data in quotations.

  • Fixed issue #248 - incorrect merging for vendor selectors.

  • Fixed issue #245 - incorrect handling of backslash IE hack.

  • Adds faster selectors processing in advanced optimizer.

  • Fixed issue #241 - incorrect handling of :not() selectors.

  • Adds an optional callback to minify method.

  • Deprecates --selectors-merge-mode / selectorsMergeMode in favor to --compatibility / compatibility.

  • Fixes debug mode stats for stylesheets using @import statements.

  • Skips empty removal if advanced processing is enabled.

  • Fixed issue #85 - resolving protocol @imports.

  • Fixed issue #160 - re-runs optimizer until a clean pass.

  • Fixed issue #161 - improves tokenizer performance.

  • Fixed issue #163 - round pixels to 2nd decimal place.

  • Fixed issue #165 - extra space after trailing parenthesis.

  • Fixed issue #186 - strip unit from 0rem.

  • Fixed issue #207 - bug in parsing protocol @imports.

  • Fixed issue #213 - faster rgb to hex transforms.

  • Fixed issue #215 - leading zeros in numerical values.

  • Fixed issue #217 - whitespace inside attribute selectors and URLs.

  • Fixed issue #218 - @import statements cleanup.

  • Fixed issue #220 - selector between comments.

  • Fixed issue #223 - two-pass adjacent selectors merging.

  • Fixed issue #226 - don't minify border:none to border:0.

  • Fixed issue #229 - improved processing of fraction numbers.

  • Fixed issue #230 - better handling of zero values.

  • Fixed issue #235 - IE7 compatibility mode.

  • Fixed issue #236 - incorrect rebasing with nested imports.

  • Fixed issue #232 - edge case in non-adjacent selectors merging.

  • Fixed issue #208 - don't swallow @page and @viewport.

  • Fixed issue #198 - process comments and @imports correctly.

  • Fixed issue #205 - freeze on broken @import declaration.

  • Fixed issue #199 - keep line breaks with no advanced optimizations.

  • Fixed issue #203 - Buffer as a first argument to minify method.

  • Fixed issue #193 - HSL color space normalization.

  • Fixed issue #191 - leading numbers in font/animation names.

  • Fixed issue #192 - many @imports inside a comment.

  • Fixed issue #177 - process broken content correctly.

  • Fixed issue #176 - hangs on undefined keyword.

  • Adds simplified and more advanced text escaping / restoring via EscapeStore class.

  • Adds simplified and much faster empty elements removal.

  • Adds missing @import processing to our benchmark (run via npm run bench).

  • Adds CSS tokenizer which will make it possible to optimize content by reordering and/or merging selectors.

  • Adds basic optimizer removing duplicate selectors from a list.

  • Adds merging duplicate properties within a single selector's body.

  • Adds merging adjacent selectors within a scope (single and multiple ones).

  • Changes behavior of --keep-line-breaks/keepBreaks option to keep breaks after trailing braces only.

  • Makes all multiple selectors ordered alphabetically (aids merging).

  • Adds property overriding so more coarse properties override more granular ones.

  • Adds reducing non-adjacent selectors.

  • Adds --skip-advanced/noAdvanced switch to disable advanced optimizations.

  • Adds reducing non-adjacent selectors when overridden by more complex selectors.

  • Fixed issue #138 - makes CleanCSS interface OO.

  • Fixed issue #139 - consistent error & warning handling.

  • Fixed issue #145 - debug mode in library too.

  • Fixed issue #157 - gets rid of removeEmpty option.

  • Fixed issue #159 - escaped quotes inside content.

  • Fixed issue #162 - strip quotes from Base64 encoded URLs.

  • Fixed issue #166 - debug formatting in CLI

  • Fixed issue #167 - background:transparent minification.

  • Fixed issue #156 - @imports inside comments.

  • Fixed issue #155 - broken irregular CSS content.

  • Fixed issue #153 - keepSpecialComments 0/1 as a string.

  • Fixed issue #152 - adds an option to disable rebasing.

  • Fixed issue #150 - minifying background:none.

  • Fixed issue #149 - shorthand font property.

  • Fixed issue #144 - skip URLs rebasing by default.

  • Renamed lib's debug option to benchmark when doing per-minification benchmarking.

  • Added simplified comments processing & imports.

  • Fixed issue #43 - --debug switch for minification stats.

  • Fixed issue #65 - full color name / hex shortening.

  • Fixed issue #84 - support for @import with media queries.

  • Fixed issue #124 - raise error on broken imports.

  • Fixed issue #126 - proper CSS expressions handling.

  • Fixed issue #129 - rebasing imported URLs.

  • Fixed issue #130 - better code modularity.

  • Fixed issue #135 - require node.js 0.8+.

  • Fixed issue #121 - ability to skip @import processing.

  • Fixed issue #117 - line break escaping in comments.

  • Fixed issue #114 - comments in imported stylesheets.

  • Fixed issue #113 - @import in comments.

  • Fixed issue #112 - reducing box-shadow zeros.

  • Support for @import URLs starting with //. By @petetak.

  • Fixed issue #110 - data URIs in URLs.

  • Fixed issue #107 - data URIs in imported stylesheets.

1.0.4 / 2013-05-23

  • Rewrite relative URLs in imported stylesheets. By @bluej100.

1.0.3 / 2013-05-20

  • Support alternative @import syntax with file name not wrapped inside url() statement. By @bluej100.

1.0.2 / 2013-04-29

  • Fixed issue #97 - --remove-empty & FontAwesome.

1.0.1 / 2013-04-08

  • Do not pick up bench and test while building npm package. By @sindresorhus.

1.0.0 / 2013-03-30

  • Fixed issue #2 - resolving @import rules.

  • Fixed issue #44 - examples in --help.

  • Fixed issue #46 - preserving special characters in URLs and attributes.

  • Fixed issue #80 - quotation in multi line strings.

  • Fixed issue #83 - HSL to hex color conversions.

  • Fixed issue #86 - broken @charset replacing.

  • Fixed issue #88 - removes space in ! important.

  • Fixed issue #92 - uppercase hex to short versions.

0.10.2 / 2013-03-19

  • Fixed issue #79 - node.js 0.10.x compatibility.

0.10.1 / 2013-02-14

  • Fixed issue #66 - line breaks without extra spaces should be handled correctly.

0.10.0 / 2013-02-09

  • Switched from optimist to commander for CLI processing.

  • Changed long options from --removeempty to --remove-empty and from --keeplinebreaks to --keep-line-breaks.

  • Fixed performance issue with replacing multiple @charset declarations and issue with line break after @charset when using keepLineBreaks option. By @rrjaime.

  • Removed Makefile in favor to npm run commands (e.g. make check -> npm run check).

  • Fixed issue #47 - commandline issues on Windows.

  • Fixed issue #49 - remove empty selectors from media query.

  • Fixed issue #52 - strip fraction zeros if not needed.

  • Fixed issue #58 - remove colon where possible.

  • Fixed issue #59 - content property handling.

0.9.1 / 2012-12-19

  • Fixed issue #37 - converting white and other colors in class names (reported by @malgorithms).

0.9.0 / 2012-12-15

  • Added stripping quotation from font names (if possible).

  • Added stripping quotation from @keyframes declaration, animation and animation-name property.

  • Added stripping quotations from attributes' value (e.g. [data-target='x']).

  • Added better hex->name and name->hex color shortening.

  • Added font: normal and font: bold shortening the same way as font-weight is.

  • Refactored shorthand selectors and added border-radius, border-style and border-color shortening.

  • Added margin, padding and border-width shortening.

  • Added removing line break after commas.

  • Fixed removing whitespace inside media query definition.

  • Added removing line breaks after a comma, so all declarations are one-liners now.

  • Speed optimizations (~10% despite many new features).

  • Added JSHint validation rules via make check.

0.8.3 / 2012-11-29

  • Fixed HSL/HSLA colors processing.

0.8.2 / 2012-10-31

  • Fixed shortening hex colors and their relation to hashes in URLs.

  • Cleanup by @XhmikosR.

0.8.1 / 2012-10-28

  • Added better zeros processing for rect(...) syntax (clip property).

0.8.0 / 2012-10-21

  • Added removing URLs quotation if possible.

  • Rewrote breaks processing.

  • Added keepBreaks/-b option to keep line breaks in the minimized file.

  • Reformatted lib/clean.js so it's easier to follow the rules.

  • Minimized test data is now minimized with line breaks so it's easier to compare the changes line by line.

0.7.0 / 2012-10-14

  • Added stripping special comments to CLI (--s0 and --s1 options).

  • Added stripping special comments to programmatic interface (keepSpecialComments option).

0.6.0 / 2012-08-05

  • Full Windows support with tests (./test.bat).

0.5.0 / 2012-08-02

  • Made path to vows local.

  • Explicit node.js 0.6 requirement.

0.4.2 / 2012-06-28

  • Updated binary -v option (version).

  • Updated binary to output help when no options given (but not in piped mode).

  • Added binary tests.

0.4.1 / 2012-06-10

  • Fixed stateless mode where calling CleanCSS#process directly was giving errors (reported by @facelessuser).

0.4.0 / 2012-06-04

  • Speed improvements up to 4x thanks to the rewrite of comments and CSS' content processing.

  • Stripping empty CSS tags is now optional (see bin/cleancss for details).

  • Improved debugging mode (see test/bench.js)

  • Added make bench for a one-pass benchmark.

0.3.3 / 2012-05-27

  • Fixed tests, package.json for development, and regex for removing empty declarations (thanks to @vvo).

0.3.2 / 2012-01-17

  • Fixed output method under node.js 0.6 which incorrectly tried to close process.stdout.

0.3.1 / 2011-12-16

  • Fixed cleaning up 0 0 0 0 expressions.

0.3.0 / 2011-11-29

  • Clean-css requires node.js 0.4.0+ to run.

  • Removed node.js's 0.2.x 'sys' package dependency (thanks to @jmalonzo for a patch).

0.2.6 / 2011-11-27

  • Fixed expanding + signs in calc() when mixed up with adjacent + selector.

0.2.5 / 2011-11-27

  • Fixed issue with cleaning up spaces inside calc/-moz-calc declarations (thanks to @cvan for reporting it).

  • Fixed converting #f00 to red in borders and gradients.

0.2.4 / 2011-05-25

  • Fixed problem with expanding none to 0 in partial/full background declarations.

  • Fixed including clean-css library from binary (global to local).

0.2.3 / 2011-04-18

  • Fixed problem with optimizing IE filters.

0.2.2 / 2011-04-17

  • Fixed problem with space before color in border property.

0.2.1 / 2011-03-19

  • Added stripping space before !important keyword.

  • Updated repository location and author information in package.json.

0.2.0 / 2011-03-02

  • Added options parsing via optimist.

  • Changed code inclusion (thus the version bump).

0.1.0 / 2011-02-27

  • First version of clean-css library.

  • Implemented all basic CSS transformations.

Last updated