Jakub Pawlowicz [Mon, 24 Mar 2014 20:31:39 +0000 (20:31 +0000)]
Fixes #264 - processing `@import` statements inside comments.
Jakub Pawlowicz [Mon, 10 Mar 2014 07:53:00 +0000 (07:53 +0000)]
Version 2.1.6.
Jakub Pawlowicz [Mon, 10 Mar 2014 07:51:18 +0000 (07:51 +0000)]
Fixes wrong @import handling in EmptyRemoval.
Since @import declarations are special to any selectors or blocks
these were not handled properly in EmptyRemoval.
Jakub Pawlowicz [Fri, 7 Mar 2014 20:44:20 +0000 (20:44 +0000)]
Version 2.1.5.
Jakub Pawlowicz [Fri, 7 Mar 2014 20:42:15 +0000 (20:42 +0000)]
Fixes #255 - incorrect processing of a trailing '-0' in selectors.
Goal Smashers Dev Team [Fri, 7 Mar 2014 07:05:06 +0000 (07:05 +0000)]
Merge pull request #252 from hhua/box_shadow_zeros
Fixes minifying box-shadow with three zeros.
Han Hua [Wed, 5 Mar 2014 19:58:54 +0000 (13:58 -0600)]
Fixes #252 - box-shadow with three zeros compression
Jakub Pawlowicz [Wed, 5 Mar 2014 08:09:55 +0000 (08:09 +0000)]
Adds a list of issues fixed by @Venemo.
See
ea941cb165abe1e74f87bd46299f0526add9c205 for details.
Jakub Pawlowicz [Wed, 5 Mar 2014 08:01:04 +0000 (08:01 +0000)]
Adds an acknowledgment for @Venemo.
* Ensures the list is sorted alphabetically (by GH username).
Goal Smashers Dev Team [Wed, 5 Mar 2014 07:39:31 +0000 (07:39 +0000)]
Merge pull request #249 from Venemo/master
New, shiny property optimizer.
Timur Kristóf [Tue, 4 Mar 2014 09:36:47 +0000 (10:36 +0100)]
Implemented stylistic changes as asked
Goal Smashers Dev Team [Tue, 4 Mar 2014 06:50:06 +0000 (06:50 +0000)]
Adds a link to our style guide.
Jakub Pawlowicz [Sat, 1 Mar 2014 08:59:59 +0000 (08:59 +0000)]
Refixes #250 via new quotation marks removal algorithm.
Jakub Pawlowicz [Sat, 1 Mar 2014 08:52:27 +0000 (08:52 +0000)]
Adds a better algorithm for quotation marks' removal.
Quotation removal is now done via data traversal rather than regexp so
it is much more flexible.
Also adds a property name scanner to quickly locate last matching property
at a given location.
Jakub Pawlowicz [Sat, 1 Mar 2014 04:46:18 +0000 (04:46 +0000)]
Moves quotation matching into a QuoteScanner class.
Jakub Pawlowicz [Sat, 1 Mar 2014 09:07:57 +0000 (09:07 +0000)]
Version 2.1.4.
Jakub Pawlowicz [Sat, 1 Mar 2014 09:05:55 +0000 (09:05 +0000)]
Fixes #250 - correctly handle JSON data in quotations.
It's a quick fix. Proper one comes to master soon.
Timur Kristóf [Fri, 28 Feb 2014 15:27:57 +0000 (16:27 +0100)]
Some final touches and more tests
Timur Kristóf [Fri, 28 Feb 2014 14:49:05 +0000 (15:49 +0100)]
New optimizer supports border-radius, border-color, border-style, border-width
Timur Kristóf [Fri, 28 Feb 2014 13:28:35 +0000 (14:28 +0100)]
Splitting the new property optimizer into separate modules
Timur Kristóf [Thu, 27 Feb 2014 23:36:57 +0000 (00:36 +0100)]
Shiny new property optimizer
Jakub Pawlowicz [Thu, 27 Feb 2014 07:13:03 +0000 (07:13 +0000)]
Moves JSHint config out of package.json.
Jakub Pawlowicz [Wed, 26 Feb 2014 20:59:48 +0000 (20:59 +0000)]
Version 2.1.3.
Jakub Pawlowicz [Wed, 26 Feb 2014 20:56:31 +0000 (20:56 +0000)]
Fixes #248 - incorrect merging of vendor selectors.
Vendor selectors can be merged or override other properties if redefine same selectors only, e.g.
a{color:red}a,::-webkit-scrollbar{color:blue} once merged would not yield red links in all browsers but webkit based.
Jakub Pawlowicz [Tue, 25 Feb 2014 21:24:05 +0000 (21:24 +0000)]
Fixes #247 - gets rid of deprecated selectorsMergeMode option.
Jakub Pawlowicz [Tue, 25 Feb 2014 21:16:06 +0000 (21:16 +0000)]
Makes optimizer code a bit more understandable.
Jakub Pawlowicz [Tue, 25 Feb 2014 21:01:08 +0000 (21:01 +0000)]
Version 2.1.2.
Jakub Pawlowicz [Tue, 25 Feb 2014 20:25:17 +0000 (20:25 +0000)]
Fixes #245 - incorrect handling of backslash IE hack.
Backslash hack '\9' (which is accepted in IE[678]) should be handled correctly
if ie8 or ie7 compatibility is requested.
Jakub Pawlowicz [Sun, 23 Feb 2014 16:16:16 +0000 (16:16 +0000)]
Readds minification feedback for non-adjacent optimizer.
Jakub Pawlowicz [Sun, 23 Feb 2014 16:12:05 +0000 (16:12 +0000)]
Refactors the new, non-adjacent optimizer.
* Extracts common parts from simple & complex scenarios.
* Adds performance boost so its speed is comparable with the old one.
Jakub Pawlowicz [Sat, 22 Feb 2014 22:23:20 +0000 (22:23 +0000)]
Adds a better non-adjacent optimizer.
* Makes code easier to understand by splitting simple and complex scenarios.
* Adds compatibility with upcoming new property optimizer.
Jakub Pawlowicz [Wed, 19 Feb 2014 07:45:40 +0000 (07:45 +0000)]
Version 2.1.1.
Jakub Pawlowicz [Wed, 19 Feb 2014 07:43:26 +0000 (07:43 +0000)]
Adds faster selectors processing in advanced optimizer.
Selectors clean up is not needed in case of a single selector being processed.
Jakub Pawlowicz [Wed, 19 Feb 2014 07:38:15 +0000 (07:38 +0000)]
Fixes #241 - incorrect handling of :not() selectors.
Since :not() can have multiple selectors passed in, e.g. :not(div,span),
commas need to be handled in a more clever way.
Goal Smashers Dev Team [Tue, 18 Feb 2014 08:02:14 +0000 (08:02 +0000)]
Merge pull request #242 from lukeapage/patch-1
Adds compatibility to programmability section too.
Luke Page [Tue, 18 Feb 2014 07:20:05 +0000 (07:20 +0000)]
Add compatibility to programmability section too
Jakub Pawlowicz [Thu, 13 Feb 2014 22:45:51 +0000 (22:45 +0000)]
Version 2.1.0.
Jakub Pawlowicz [Thu, 13 Feb 2014 21:54:49 +0000 (21:54 +0000)]
Adds better structured batch tests.
Use of async topic prevents individual fails from stopping subsequent tests from being run.
Jakub Pawlowicz [Mon, 10 Feb 2014 22:18:40 +0000 (22:18 +0000)]
Adds a full list of unsupported selectors on IE7 and IE8.
Makes sure we don't merge all unsupported selectors as per list at:
http://kimblim.dk/css-tests/selectors/
Jakub Pawlowicz [Mon, 10 Feb 2014 21:53:36 +0000 (21:53 +0000)]
Fixes #235 - adds IE7 compatibility mode.
:focus, :after, and :before selectors are not supported in IE7 so we can't
merge selectors using them.
Jakub Pawlowicz [Mon, 10 Feb 2014 21:29:15 +0000 (21:29 +0000)]
Fixes #236 - incorrect rebasing with nested `import`s.
Because of a typo, rebasing of nested relative imports were not processed correctly,
leading to relative paths to last @import not the original one.
Thanks to @alexeyraspopov for spotting it!
Jakub Pawlowicz [Sun, 9 Feb 2014 21:34:54 +0000 (21:34 +0000)]
Fixes #226 - skips border:none => border:0 minification.
It's not always safe. See http://dabblet.com/gist/
8716224 for details.
Jakub Pawlowicz [Sun, 9 Feb 2014 21:15:39 +0000 (21:15 +0000)]
Fixes #223 - adjacent selectors merging.
Makes sure removing duplicates and merging adjacent selectors is run twice, beforehand the latter was not the case.
This is because adjacent selectors may be merged in the first pass creating opportunity to further improve minification.
Jakub Pawlowicz [Fri, 7 Feb 2014 21:09:27 +0000 (21:09 +0000)]
Version 2.0.8.
Jakub Pawlowicz [Fri, 7 Feb 2014 21:07:24 +0000 (21:07 +0000)]
Fixes #232 - edge case in non-adjacent selectors merging.
Gets rid of an edge case when non-adjacent selectors merging can lead to incorrect overridding of properties.
Jakub Pawlowicz [Wed, 5 Feb 2014 07:14:02 +0000 (07:14 +0000)]
Fixes #230 - adds better handling of zero values.
Previously 0.0 + unit and -0 was handled incorrectly.
GoalSmashers [Mon, 3 Feb 2014 06:24:07 +0000 (06:24 +0000)]
Fixes #229 - adds improved processing of fraction numbers.
opacity:1. => opacity:1
opacity:.0 => opacity:0
GoalSmashers [Mon, 3 Feb 2014 04:37:36 +0000 (04:37 +0000)]
Fixes #215 - adds removing leading zeros from numerical values.
E.g 040px can be safely turned into 40px.
GoalSmashers [Sat, 1 Feb 2014 08:12:53 +0000 (08:12 +0000)]
Fixes #217 - removing extra whitespace from attribute selectors and urls.
Browsers strip the whitespace before evaluating so should we.
GoalSmashers [Sat, 1 Feb 2014 07:47:17 +0000 (07:47 +0000)]
Fixes #220 - universal selector between two comments.
Comments were incorrectly processed when universal selector was placed in between.
GoalSmashers [Sat, 1 Feb 2014 07:30:24 +0000 (07:30 +0000)]
Fixes #218 - gets rid of @import statements appearing after CSS content.
See www.w3.org/TR/CSS21/cascade.html#at-import for details.
GoalSmashers [Thu, 30 Jan 2014 08:05:26 +0000 (08:05 +0000)]
Fixes out of bounds values in rgb / rgba declarations. See #216.
GoalSmashers [Thu, 30 Jan 2014 08:04:15 +0000 (08:04 +0000)]
Fixes #216 - handling 0% in rgb / rgba declarations.
tomByrer [Thu, 30 Jan 2014 07:44:13 +0000 (07:44 +0000)]
Fixes #213 - faster rgb to hex transforms.
Goal Smashers Dev Team [Sun, 26 Jan 2014 13:36:26 +0000 (13:36 +0000)]
Fixes path slashes in Readme to correct ones.
Goal Smashers Dev Team [Sun, 26 Jan 2014 11:16:25 +0000 (11:16 +0000)]
Fixes #212 - adds contributing rules to readme.
Adds more information on how to contribute and where to put tests.
GoalSmashers [Thu, 16 Jan 2014 22:22:15 +0000 (22:22 +0000)]
Version 2.0.7.
GoalSmashers [Thu, 16 Jan 2014 22:20:24 +0000 (22:20 +0000)]
Fixes #208 - fixes swallowing `@viewport`, `@page`, and `@supports` when doing advanced optimizations.
GoalSmashers [Sat, 11 Jan 2014 15:56:34 +0000 (16:56 +0100)]
Fixes #207 - bug in parsing protocol `@import`s.
Spaces inside url part of import declaration were incorrectly parsed.
Goal Smashers Dev Team [Sat, 11 Jan 2014 14:21:55 +0000 (06:21 -0800)]
Merge pull request #206 from XhmikosR/master
Update nock dependency.
XhmikosR [Sat, 11 Jan 2014 08:36:48 +0000 (10:36 +0200)]
Update nock dependency.
GoalSmashers [Thu, 12 Dec 2013 16:30:54 +0000 (17:30 +0100)]
Fixes debug mode stats for stylesheets using `@import` statements.
* Size of inlined files were not taken into account resulting in wrong "Original size" and "Efficiency".
GoalSmashers [Thu, 12 Dec 2013 16:01:23 +0000 (17:01 +0100)]
Adds inlining info in debug mode.
GoalSmashers [Tue, 10 Dec 2013 12:14:54 +0000 (13:14 +0100)]
Fixes #85 - adds resolving protocol @import statements.
* Rewrote inliner to process data asynchronously.
* Supports 2xx responses, redirects, errors, and timeouts.
* Supports cyclical references.
* Supports protocol-less requests (defaults to HTTP).
* Supports overriding request options - see http://nodejs.org/api/http.html#http_http_request_options_callback
* Supports timeout in ./bin/cleancss via --timeout / -t switches.
* Supports inlining local resources only without a callback.
* Supports rebasing URLs in remote @imports.
* Always triggers a callback asynchronously.
GoalSmashers [Tue, 10 Dec 2013 09:18:08 +0000 (10:18 +0100)]
Adds an optional callback to CleanCSS#minify method.
GoalSmashers [Sat, 4 Jan 2014 16:01:26 +0000 (17:01 +0100)]
Version 2.0.6.
GoalSmashers [Fri, 27 Dec 2013 11:27:18 +0000 (12:27 +0100)]
Fixes #198 - correctly handle a mixup of comments and @import statements.
This is a follow up to #192 which apparently fixed an edge case of processing
more than one @import inside a comment but introduced this issue.
GoalSmashers [Fri, 3 Jan 2014 14:58:38 +0000 (15:58 +0100)]
Fixes #205 - freeze on broken @import declaration.
@import declarations without trailing semicolon led to an infinite loop in tokenizer.
GoalSmashers [Fri, 3 Jan 2014 11:23:08 +0000 (12:23 +0100)]
Updates copyright stamps.
GoalSmashers [Fri, 3 Jan 2014 11:22:21 +0000 (12:22 +0100)]
Merge branch 'master' of github.com:GoalSmashers/clean-css
GoalSmashers [Fri, 3 Jan 2014 11:10:47 +0000 (12:10 +0100)]
Version 2.0.5.
GoalSmashers [Fri, 3 Jan 2014 11:06:48 +0000 (12:06 +0100)]
Fixes #203 - passing Buffer instance as a first argument to minify method.
GoalSmashers [Wed, 25 Dec 2013 10:00:44 +0000 (11:00 +0100)]
Fixes #199 - keeps line breaks if requested when advanced optimizations are off.
Goal Smashers Dev Team [Fri, 27 Dec 2013 12:56:23 +0000 (04:56 -0800)]
Merge pull request #200 from XhmikosR/master
Minor improvements
XhmikosR [Fri, 27 Dec 2013 03:50:13 +0000 (05:50 +0200)]
Update JSHint dependency.
XhmikosR [Mon, 25 Nov 2013 08:47:21 +0000 (10:47 +0200)]
Update README.md.
* switch to the shields.io theme for the dependency badges
* use the link to the our comparison page
* use the proper case for Node.js and Grunt
GoalSmashers [Thu, 19 Dec 2013 14:20:40 +0000 (15:20 +0100)]
Version 2.0.4.
Goal Smashers Dev Team [Thu, 19 Dec 2013 14:15:18 +0000 (06:15 -0800)]
Merge pull request #193 from MWers/hsl-range
Adds out-of-bounds handling for HSL colors.
Matt Walker [Tue, 17 Dec 2013 05:58:16 +0000 (21:58 -0800)]
Added out-of-bounds handling for hslToRgb function with unit tests
GoalSmashers [Wed, 18 Dec 2013 22:05:31 +0000 (23:05 +0100)]
Version 2.0.3.
GoalSmashers [Wed, 18 Dec 2013 21:49:48 +0000 (22:49 +0100)]
Fixes #192 - many `@import`s inside a comment.
* Broken comments scanner when more than one import inside a comment.
GoalSmashers [Wed, 18 Dec 2013 20:08:41 +0000 (21:08 +0100)]
Fixes #191 - quotes around font name should not be removed if value starts with a digit.
GoalSmashers [Wed, 11 Dec 2013 18:24:08 +0000 (19:24 +0100)]
Fixes #186 - strips unit from `0rem` unless in ie8 compatibility mode.
GoalSmashers [Wed, 11 Dec 2013 17:48:45 +0000 (18:48 +0100)]
Deprecates '--selectors-merge-mode' in favor of a more generic '--compatibility' switch.
* 'selectorsMergeMode' option to library is also renamed to 'compatibility'.
Goal Smashers Dev Team [Thu, 5 Dec 2013 19:10:01 +0000 (11:10 -0800)]
Merge pull request #189 from stephenmathieson/refactor/convert-to-constructor
Converts CleanCSS function into a constructor.
Stephen Mathieson [Thu, 5 Dec 2013 17:07:56 +0000 (12:07 -0500)]
Fixes #188 - Convert CleanCSS to a constructor
This allows for adding custom methods on the CleanCSS prototype.
Goal Smashers Dev Team [Tue, 26 Nov 2013 14:46:23 +0000 (06:46 -0800)]
Merge pull request #187 from XhmikosR/commander
Updates commander dependency.
XhmikosR [Mon, 25 Nov 2013 08:40:25 +0000 (10:40 +0200)]
Update commander dependency.
Goal Smashers Dev Team [Wed, 20 Nov 2013 15:33:35 +0000 (07:33 -0800)]
Merge pull request #183 from XhmikosR/hrtime
Remove check for `process.hrtime()`.
XhmikosR [Tue, 19 Nov 2013 17:33:46 +0000 (19:33 +0200)]
Remove check for `process.hrtime()`.
Node.js 0.8 is required already.
GoalSmashers [Mon, 18 Nov 2013 21:30:50 +0000 (22:30 +0100)]
Version 2.0.2.
GoalSmashers [Mon, 18 Nov 2013 21:01:37 +0000 (22:01 +0100)]
Fixes #177 - processing incorrect content should not break CSS.
* Adds a warning on an incorrect content or a closing parenthesis.
Goal Smashers Dev Team [Mon, 18 Nov 2013 18:08:19 +0000 (19:08 +0100)]
Moves grunt info after CLI and module use so the order is more logical.
Goal Smashers Dev Team [Mon, 18 Nov 2013 18:05:42 +0000 (19:05 +0100)]
Fixes #180 - adds grunt info to readme.
GoalSmashers [Mon, 18 Nov 2013 09:43:18 +0000 (10:43 +0100)]
Fixes #160 - re-runs advanced optimizations until no changes are detected.
* That's because merging adjacent selectors can lead to new optimization opportunities.
GoalSmashers [Sun, 17 Nov 2013 14:33:13 +0000 (15:33 +0100)]
Skips empty removal if advanced processing is enabled.
* Since advanced processing tokenizes data we can rebuild it without empty elements.
GoalSmashers [Sun, 17 Nov 2013 12:05:00 +0000 (13:05 +0100)]
Adds minor speeed optimizations to property & selector optimizers.
GoalSmashers [Sun, 17 Nov 2013 09:31:04 +0000 (10:31 +0100)]
Fixes #161 - adds ~30x faster tokenizer.
* Splits data into 128 bytes long chunks (rounded to nearest closing parenthesis).
* Won't seek trough the whole document all the time.
GoalSmashers [Sat, 16 Nov 2013 12:01:14 +0000 (13:01 +0100)]
Fixes #163 - adds pixel rounding to 2nd decimal place.
GoalSmashers [Sat, 16 Nov 2013 09:59:18 +0000 (10:59 +0100)]
Fixes #165 - adds removing extra space after rgba/hsla declarations.