Jakub Pawlowicz [Thu, 30 Jul 2015 08:33:27 +0000 (09:33 +0100)]
Fixes #630 - vendor prefixed flex optimizations.
It's not only flex & flex-basis which should not be optimized but
also their vendor prefixed counterparts.
Jakub Pawlowicz [Tue, 4 Aug 2015 08:15:06 +0000 (09:15 +0100)]
Bumps browserify to 11.x.
Jakub Pawlowicz [Wed, 29 Jul 2015 07:18:39 +0000 (08:18 +0100)]
Version 3.3.7 release notes.
Jakub Pawlowicz [Fri, 24 Jul 2015 12:50:26 +0000 (13:50 +0100)]
Fixes #616 - ordering in restructuring.
Reverses the order in which properties are traversed so
ones appearing last are processed first, resulting in a
correct restructuring when a longhand appears after a shorthand.
Jakub Pawlowicz [Fri, 10 Jul 2015 06:54:06 +0000 (07:54 +0100)]
Unifies wrappers for simple & advanced optimizations.
Previously we had two wrappings, one for simple optimizations (just importance
and hacks), and other for advanced optimizations.
Right now it's just one (the latter) with simple optimizations adapted to
use the wrapping. This way it's more readable & prepares us for simplifying
the code further.
Jakub Pawlowicz [Tue, 14 Jul 2015 07:55:27 +0000 (08:55 +0100)]
Version 3.3.6 release notes.
Jakub Pawlowicz [Tue, 14 Jul 2015 07:51:36 +0000 (08:51 +0100)]
Fixes #620 - `bold` style in font shorthands.
Looking forward to an ultimate fix with #254.
Jakub Pawlowicz [Fri, 10 Jul 2015 06:48:38 +0000 (07:48 +0100)]
Adds more info about using `inliner` API option.
Jakub Pawlowicz [Wed, 1 Jul 2015 12:35:55 +0000 (13:35 +0100)]
Version 3.3.5 release notes.
Jakub Pawlowicz [Thu, 25 Jun 2015 06:12:04 +0000 (07:12 +0100)]
Fixes #608 - custom URI protocols handling.
We were not treating custom URI protocols as remote ones so
they were rewritten as local ones.
Jakub Pawlowicz [Wed, 24 Jun 2015 08:07:39 +0000 (09:07 +0100)]
Version 3.3.4 release notes.
Jakub Pawlowicz [Wed, 24 Jun 2015 08:02:48 +0000 (09:02 +0100)]
Adds more `inherit` restoring tests.
Jakub Pawlowicz [Wed, 24 Jun 2015 08:00:23 +0000 (09:00 +0100)]
Simplifies `inherit` checks in property restoring.
Jakub Pawlowicz [Wed, 24 Jun 2015 07:53:47 +0000 (08:53 +0100)]
Fixes #610 - `border:inherit` restoring.
Apparently `withoutDefaults` restoring suffered the same issue as
`background` property restoring - see #563.
Jakub Pawlowicz [Wed, 24 Jun 2015 07:46:06 +0000 (08:46 +0100)]
Fixes #611 - an edge case in quote stripping.
It manifested itself when rebasing to a relative or
absolute path only.
Jakub Pawlowicz [Tue, 23 Jun 2015 06:02:11 +0000 (07:02 +0100)]
Merge pull request #604 from jakubpawlowicz/inline-source-maps
Fixes #599 - inlined source maps.
Andrew Bradley [Fri, 12 Jun 2015 19:47:16 +0000 (15:47 -0400)]
Fixes #599 - inlined source maps.
Enables ingestion of inline, data-uri source maps.
Jakub Pawlowicz [Tue, 23 Jun 2015 05:42:53 +0000 (06:42 +0100)]
Simplifies unit optimizations code.
It follows a much simpler functional style, which is also easier to
grasp.
Jakub Pawlowicz [Sun, 21 Jun 2015 14:18:37 +0000 (15:18 +0100)]
Cleans up advanced optimizer implementation.
It gets rid of AdvancedOptimizer class in favour to simpler
functional style.
Jakub Pawlowicz [Sun, 21 Jun 2015 14:03:44 +0000 (15:03 +0100)]
Extracts 'merge media queries' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 13:49:36 +0000 (14:49 +0100)]
Extracts 'remove duplicate media queries' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 13:35:19 +0000 (14:35 +0100)]
Extracts 'restructure' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 11:37:56 +0000 (12:37 +0100)]
Extracts 'merge non adjacent by body' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 11:26:50 +0000 (12:26 +0100)]
Extracts 'merge non adjacent by selector' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 11:09:06 +0000 (12:09 +0100)]
Extracts 'reduce non adjacent' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 10:53:03 +0000 (11:53 +0100)]
Extracts 'merge adjacent' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 10:40:18 +0000 (11:40 +0100)]
Extracts 'remove duplicates' optimization into a module.
Jakub Pawlowicz [Sun, 21 Jun 2015 10:09:36 +0000 (11:09 +0100)]
Fixes removing new lines from free text values.
Jakub Pawlowicz [Sun, 21 Jun 2015 10:08:40 +0000 (11:08 +0100)]
Rebuilds integration tests with test helpers.
Jakub Pawlowicz [Sun, 21 Jun 2015 09:28:46 +0000 (10:28 +0100)]
Extracts test helpers from tests.
Jakub Pawlowicz [Fri, 19 Jun 2015 08:11:15 +0000 (09:11 +0100)]
Moves files around.
* lib/selectors/optimizer.js is no more (inlined into lib/clean.js);
* Simple and advanced modules go to lib/selectors;
* Simple and advanced tests are separated.
Jakub Pawlowicz [Tue, 16 Jun 2015 07:44:00 +0000 (08:44 +0100)]
Version 3.3.3 release notes.
Jakub Pawlowicz [Tue, 16 Jun 2015 07:42:29 +0000 (08:42 +0100)]
Fixes #603 - IE suffix hack should be left on by default.
It works up to IE9 and we have IE9 mode on by default!
Jakub Pawlowicz [Mon, 15 Jun 2015 15:08:33 +0000 (16:08 +0100)]
Normalizes anonymous function declarations.
the `function ()` with a space is more readable.
Jakub Pawlowicz [Mon, 15 Jun 2015 15:03:59 +0000 (16:03 +0100)]
Runs binary tests sequentially.
Prevents all topics from being evaluated at the same time, which
can stress system resources and lead to slower execution.
Jakub Pawlowicz [Sun, 14 Jun 2015 15:03:31 +0000 (16:03 +0100)]
Bumps JSHint to 2.8.x.
Jakub Pawlowicz [Sun, 14 Jun 2015 14:47:31 +0000 (15:47 +0100)]
Version 3.3.2 release notes.
Jakub Pawlowicz [Sun, 14 Jun 2015 14:41:11 +0000 (15:41 +0100)]
Fixes #602 - backslash IE hacks after a space.
Previously a backslash IE hacks with a leading space
were not processed correctly.
Jakub Pawlowicz [Sun, 14 Jun 2015 13:52:45 +0000 (14:52 +0100)]
Fixes #595 - more relaxed flat block matching.
Apparently there are IE hacks that allow mixing flat block
declarations with pseudoselectors:
```css
/* IE 10 special css */
_:-ms-lang(x), @-ms-viewport {
width: auto\9 !important;
}
```
Jakub Pawlowicz [Sun, 14 Jun 2015 09:59:02 +0000 (10:59 +0100)]
Fixes #601 - minifying percentages inside `flex`.
Apparently IE10-11 do not like it.
Jakub Pawlowicz [Wed, 10 Jun 2015 06:45:50 +0000 (07:45 +0100)]
Merge pull request #597 from kaelig/patch-1
It's Sass, not SASS
Kaelig [Tue, 9 Jun 2015 16:21:00 +0000 (17:21 +0100)]
It's Sass, not SASS
Jakub Pawlowicz [Tue, 2 Jun 2015 20:00:41 +0000 (21:00 +0100)]
Version 3.3.1 release notes.
Jakub Pawlowicz [Tue, 2 Jun 2015 18:51:24 +0000 (19:51 +0100)]
Fixes #590 - an edge case in import processing.
Rebasing import statements without url had a nasty edge case where
a subsequent content ended up wrapped into a `url()`.
Jakub Pawlowicz [Sun, 31 May 2015 15:10:13 +0000 (16:10 +0100)]
Points master to version 3.4.0-pre.
Jakub Pawlowicz [Sun, 31 May 2015 15:06:41 +0000 (16:06 +0100)]
Version 3.3.0.
Jakub Pawlowicz [Sun, 31 May 2015 14:53:39 +0000 (15:53 +0100)]
Version 3.2.11 release notes.
Jakub Pawlowicz [Mon, 4 May 2015 14:54:45 +0000 (15:54 +0100)]
Adds semantic merging (off by default).
The main obstacle on reordering and merging declarations is a fact that
arbitrary classes can be applied to an element and at CSS level we don't
know if that's the case or not.
However with semantic merging mode on we trust CSS author knows what she is doing.
This commit is just a start (see #588) of a journey. It is and will always
be turned off by default as it requires certain effort from stylesheets'
author.
So far plain class selectors and some BEM basics are supported.
Jakub Pawlowicz [Sun, 31 May 2015 13:30:54 +0000 (14:30 +0100)]
Pins iojs on Travis to 2.1.0.
See https://github.com/nodejs/io.js/issues/1850
Jakub Pawlowicz [Sun, 31 May 2015 07:03:45 +0000 (08:03 +0100)]
Follow up to #587 - `border-radius` handling.
Jakub Pawlowicz [Sat, 30 May 2015 07:04:43 +0000 (08:04 +0100)]
Fixes #587 - too aggressive `border` reordering.
Not all border reordering cases were covered correctly.
Jakub Pawlowicz [Fri, 29 May 2015 08:46:02 +0000 (09:46 +0100)]
Fixes #580 - mixed import processing.
This is related to #570 when a no-url imports are mixed with url ones.
Jakub Pawlowicz [Wed, 27 May 2015 20:52:55 +0000 (21:52 +0100)]
Fixes #582 - overriding with prefixed values.
When overriding a longhand property with a vendor-prefixed shorthand
make sure not to loose the former, e.g.
```css
a {
background-color: red;
display: block;
background: -ms-linear-gradient(...);
}
```
Jakub Pawlowicz [Wed, 27 May 2015 08:19:48 +0000 (09:19 +0100)]
Fixes #583 - URL quoting for SVG data.
If a SVG content is used directly in data: URI we need to make sure
correct quotes are used.
It works for any kind of URL however using quotes in the middle of URLs
is quite rare.
Jakub Pawlowicz [Wed, 20 May 2015 20:39:50 +0000 (21:39 +0100)]
Fixes #562 - optimizing invalid color values.
We'll leave them as is for now as it's too tricky to remove them
at this point.
Jakub Pawlowicz [Wed, 20 May 2015 20:03:55 +0000 (21:03 +0100)]
Fixes #579 - disables `background-origin` merging into shorthand.
It seems to be only compatible with IE10+ so we'll keep it disabled
for now.
Jakub Pawlowicz [Wed, 20 May 2015 19:57:06 +0000 (20:57 +0100)]
Fixes sorting of options in compatibility.
Jakub Pawlowicz [Wed, 20 May 2015 19:52:18 +0000 (20:52 +0100)]
Fixes #577 - disables `background-clip` merging into shorthand.
It seems to be only compatible with IE10+ so we'll keep it disabled
for now.
Jakub Pawlowicz [Wed, 20 May 2015 19:25:12 +0000 (20:25 +0100)]
Fixes #570 - rebasing "no-url()" imports.
`@import '...';` should be treated the same as `@import url(...);`.
Jakub Pawlowicz [Tue, 19 May 2015 19:33:04 +0000 (20:33 +0100)]
Fixes #563 - `background:inherit` restoring.
Restoring inherit background were done incorrectly (to expanded form).
Jakub Pawlowicz [Tue, 19 May 2015 18:57:39 +0000 (19:57 +0100)]
Fixes #575 - missing directory as a `target`.
When a `target` is given as a directory which does not exist (perfectly
valid in API mode) we should still handle it correctly.
Jakub Pawlowicz [Fri, 15 May 2015 10:33:00 +0000 (11:33 +0100)]
Fixes spec formatting.
Jakub Pawlowicz [Fri, 15 May 2015 10:32:01 +0000 (11:32 +0100)]
Fixes #574 - rewriting internal URLs.
We should not rewrite URLs such as about:config etc.
Jakub Pawlowicz [Fri, 15 May 2015 10:16:03 +0000 (11:16 +0100)]
Bumps browserify dependency to 10.x.
Jakub Pawlowicz [Fri, 15 May 2015 10:03:15 +0000 (11:03 +0100)]
Bumps nock dependency to 2.x.
Jakub Pawlowicz [Thu, 14 May 2015 17:48:48 +0000 (18:48 +0100)]
Version 3.2.10 release notes.
Jakub Pawlowicz [Thu, 14 May 2015 17:43:53 +0000 (18:43 +0100)]
Fixes #572 - empty elements removal.
So we shared `token` variable among more than one context, which was
causing issues when removing empty elements.
Jakub Pawlowicz [Wed, 13 May 2015 07:41:04 +0000 (08:41 +0100)]
Fixes #571 - adds information about output of minify method.
Jakub Pawlowicz [Mon, 11 May 2015 18:24:10 +0000 (19:24 +0100)]
Adds contributing guideline.
Jakub Pawlowicz [Fri, 8 May 2015 08:53:52 +0000 (09:53 +0100)]
Version 3.2.9 release notes.
Jakub Pawlowicz [Fri, 8 May 2015 08:46:48 +0000 (09:46 +0100)]
Fixes #567 - regression in function color merging.
Having two colors are functions resulted in a incorect call to a function
checking if two colors are same function or not.
Jakub Pawlowicz [Mon, 4 May 2015 15:16:59 +0000 (16:16 +0100)]
Version 3.2.8 release notes.
Jakub Pawlowicz [Mon, 4 May 2015 15:13:56 +0000 (16:13 +0100)]
Fixes #561 - restructuring special selectors.
Regression from v3.2.7 where we forgot to check if selectors are
special or not. See a fix to #551.
Jakub Pawlowicz [Mon, 4 May 2015 11:11:10 +0000 (12:11 +0100)]
Fixes #375 - unit compatibility switches.
Adds compatibility switches for `ch`, `vh`, `vm`, `vmax`, `vmin`,
and `vw` units.
Note we need #290 to fully support all use cases. Currently it'll be
just for implemented shorthands.
Jakub Pawlowicz [Mon, 4 May 2015 09:31:29 +0000 (10:31 +0100)]
Improves compatibility documentation.
Jakub Pawlowicz [Mon, 4 May 2015 09:31:16 +0000 (10:31 +0100)]
Improves compatibility code tests.
Jakub Pawlowicz [Mon, 4 May 2015 09:20:35 +0000 (10:20 +0100)]
Fixes #517 - turning off color optimizations.
With `-properties.colors` / `properties: { colors: false }` switch
it's possible to turn off all color optimizations now.
Jakub Pawlowicz [Mon, 4 May 2015 08:29:57 +0000 (09:29 +0100)]
Fixes #542 - space after closing brace in IE.
Starting with version 3.3 this feature will be disabled since:
* it apparently does not work in IE9 where removing the space will
always break content.
* in IE 10 it works only inside `background`, `transform` and `src`
properties.
Once we switch to supporting (just 2 latest versions) we will likely turn
it on again.
Jakub Pawlowicz [Mon, 4 May 2015 06:22:45 +0000 (07:22 +0100)]
Fixes #448 - rebasing no protocol URIs.
When rebasing remote imports with URIs given without a protocol the
resulting CSS should also use no protocol, e.g:
```
@import "//127.0.0.1/no-protocol.css";
```
=>
```
a{background:url(//127.0.0.1/image.png)}
```
Jakub Pawlowicz [Sun, 3 May 2015 14:07:25 +0000 (15:07 +0100)]
Version 3.2.7 release notes.
Jakub Pawlowicz [Sun, 3 May 2015 14:03:33 +0000 (15:03 +0100)]
Fixes #553 - another style of SVG fallback.
This addresses any version of SVG fallback when one layer is set to
none. It's not future proof though since:
* it may bo none + sth
* it may be an empty linear gradient
Once we have #407 in place we'll be able to actually see which URL is
a SVG and decide based on that.
Jakub Pawlowicz [Sun, 3 May 2015 13:29:15 +0000 (14:29 +0100)]
Fixes #558 - units in same selector merging.
We apparently had a `joinAt` in wrong order so adjacent properties
were not merged correctly when in compatibility mode.
Jakub Pawlowicz [Sun, 3 May 2015 11:09:50 +0000 (12:09 +0100)]
Fixes #551 - edge case in restructuring.
There was a bug in restructuring algorithm which allowed properties
to be moved too high up by using multi property moves.
This commit changes the behavior to drop a multi-property move on
a first occasion, i.e. when one of properties with different value
is encountered.
Jakub Pawlowicz [Tue, 28 Apr 2015 08:50:58 +0000 (09:50 +0100)]
Version 3.2.6 release notes.
Jakub Pawlowicz [Tue, 28 Apr 2015 08:47:47 +0000 (09:47 +0100)]
Fixes #550 - proper `contentSources` tracking.
This is a quick fix so an exception is not thrown, but the real question
will be how to preserve bootstrap maps as they are not tracked correctly due
to `sourcesContent` having wrong (?) source data. See #557.
Jakub Pawlowicz [Tue, 28 Apr 2015 08:41:26 +0000 (09:41 +0100)]
Fixes #556 - regression in IE backslash hacks.
Jakub Pawlowicz [Sat, 25 Apr 2015 08:35:41 +0000 (09:35 +0100)]
Version 3.2.5 release notes.
Jakub Pawlowicz [Sat, 25 Apr 2015 08:33:54 +0000 (09:33 +0100)]
Fixes #549 - keeping special comments in source maps.
Since in source maps we restore content multiple times, the total
important comment counter was not kept as a state thus handled
incorrectly.
Jakub Pawlowicz [Sat, 25 Apr 2015 08:15:31 +0000 (09:15 +0100)]
Fixes #543 - better "comment in body" handling.
So instead of keeping comments in a property list we get them out
of every property.
It is a bit tricky as comments escaped at the beginning need to be
tracked and saved, but ones from the middle or end of the value has
to be saved for later (see `innerProperties`) and tracked after the
property even if they are moved before it.
See tests for a better picture.
Jakub Pawlowicz [Fri, 24 Apr 2015 12:55:14 +0000 (13:55 +0100)]
Fixes #548 - regression in font minifying.
Ah, you nasty font shorthand - we need #254.
Jakub Pawlowicz [Fri, 24 Apr 2015 07:50:06 +0000 (08:50 +0100)]
Version 3.2.4 release notes.
Jakub Pawlowicz [Fri, 24 Apr 2015 07:47:02 +0000 (08:47 +0100)]
Fixes #546 - IE<11 `calc()` issue.
So IE<11 does not support a space between calc() and whatever comes
after it.
There's gonna be a follow up with #547 in 3.3.
Jakub Pawlowicz [Thu, 23 Apr 2015 20:41:25 +0000 (21:41 +0100)]
Fixes #544 - regression in same value merging.
Jakub Pawlowicz [Wed, 22 Apr 2015 21:16:14 +0000 (22:16 +0100)]
Version 3.2.3 release notes.
Jakub Pawlowicz [Wed, 22 Apr 2015 21:12:29 +0000 (22:12 +0100)]
Fixes #541 - outline-style auto in shorthand.
Apparently two values that overlap between style and color are 'auto'
and 'none'. We handled only the latter one correctly.
Jakub Pawlowicz [Tue, 21 Apr 2015 20:47:07 +0000 (21:47 +0100)]
Moves URL scanner into lib/urls/reduce.
Was named incorrectly before.
Jakub Pawlowicz [Tue, 21 Apr 2015 20:36:01 +0000 (21:36 +0100)]
Moves tokenizer code into lib/tokenizer.
Jakub Pawlowicz [Tue, 21 Apr 2015 19:54:35 +0000 (20:54 +0100)]
Cleans up tokenizer code getting rid of unnecessary state.
Jakub Pawlowicz [Tue, 21 Apr 2015 17:27:15 +0000 (18:27 +0100)]
Moves URL rebasing & rewriting into lib/urls.
After all those are not image-related anymore.
Jakub Pawlowicz [Tue, 21 Apr 2015 17:23:47 +0000 (18:23 +0100)]
Cleans up url rebase code getting rid of unnecessary state.