Jakub Pawlowicz [Mon, 8 May 2017 06:57:29 +0000 (08:57 +0200)]
Version 4.1.1 release notes.
Jakub Pawlowicz [Mon, 8 May 2017 06:50:19 +0000 (08:50 +0200)]
Fixes #938 - removing unused at-rules with `!important`.
Why:
* When an at-rule is referenced from a shorthand property, the latter
needs to be broken apart, which as a result strips `!important`
modifier. So after checking shorthands need to be restored back.
Jakub Pawlowicz [Sun, 7 May 2017 06:33:20 +0000 (08:33 +0200)]
Bumps web interface to version 4.1.0.
Jakub Pawlowicz [Sun, 7 May 2017 06:28:14 +0000 (08:28 +0200)]
Version 4.1.0.
Jakub Pawlowicz [Sat, 6 May 2017 09:45:30 +0000 (11:45 +0200)]
Adds web UI options for version 4.1.
Jakub Pawlowicz [Sat, 6 May 2017 09:31:07 +0000 (11:31 +0200)]
Updates readme for version 4.1.
Jakub Pawlowicz [Sat, 6 May 2017 09:27:55 +0000 (11:27 +0200)]
See #906 - adds ticket notes.
Jakub Pawlowicz [Sat, 6 May 2017 06:38:29 +0000 (08:38 +0200)]
See #906 - stores settings in localStorage.
Why:
* It lets user customize settings once and reuse them at later time;
* user can always reset settings to default if needed.
Jakub Pawlowicz [Thu, 4 May 2017 12:41:07 +0000 (14:41 +0200)]
See #906 - handle dropdown events correctly.
Why:
* `change` event needs to be handled as handling `click` when it comes
to dropdowns is not enough.
Jakub Pawlowicz [Thu, 4 May 2017 11:57:20 +0000 (13:57 +0200)]
See #906 - adds more intuitive settings toggling.
Why:
* Simply reuses gear icon for hiding settings form.
Jakub Pawlowicz [Mon, 24 Apr 2017 06:59:00 +0000 (08:59 +0200)]
See #906 - adds 'reset settings' button.
Why:
* So users can reset settings form to default values if needed.
Jakub Pawlowicz [Mon, 24 Apr 2017 06:03:06 +0000 (08:03 +0200)]
See #906 - sets optimization options inline.
Why:
* It's not fully intuitive to have an `Apply` button at the bottom of
the form and require users to find it;
* instead options are set now automatically upon change.
Jakub Pawlowicz [Fri, 5 May 2017 05:10:22 +0000 (07:10 +0200)]
Adds missing `format` option documentation
Jakub Pawlowicz [Fri, 21 Apr 2017 12:13:49 +0000 (14:13 +0200)]
Reformats 'merge into shorthands' code.
Why:
* It now follows the preferred top-down order of functions.
Jakub Pawlowicz [Fri, 21 Apr 2017 09:04:10 +0000 (11:04 +0200)]
Improves longhand-into-shorthand merging.
Why:
* In case of properties which are both longhands and shorthands at the
same time, e.g. `border-style`, the merging was dropped prematurely;
* also inverts order of property optimizations, doing merging first
followed by overriding, which results in more optimization
opportunities.
Jakub Pawlowicz [Thu, 20 Apr 2017 14:09:19 +0000 (16:09 +0200)]
Fixes #525 - restores `inherit`-based merging.
Why:
* Merging longhands into shorthand when `inherit` is present is possible
and this commit restores this functionality;
* it was previously removed after big level 2 optimizations refactoring
in clean-css 3.2.
Jakub Pawlowicz [Thu, 20 Apr 2017 06:15:59 +0000 (08:15 +0200)]
Reformats list of upcoming changes in ascending order.
Jakub Pawlowicz [Thu, 20 Apr 2017 06:14:07 +0000 (08:14 +0200)]
Updates readme to correctly refer to next release.
Jakub Pawlowicz [Fri, 24 Mar 2017 11:24:17 +0000 (12:24 +0100)]
Fixes #862 - allows removing unused at rules.
Why:
* When an at-rule, i.e. `@counter-style`, `@font-face`, `@keyframes`, or
`@namespace`, is not referenced anywhere in a stylsheet it can be
safely removed;
* inspired by https://www.npmjs.com/package/postcss-discard-unused
Jakub Pawlowicz [Fri, 24 Mar 2017 11:00:10 +0000 (12:00 +0100)]
See #862 - allows non-standard `list-style-type`.
Why:
* `@counter-style` can define a non-standard values which should be
treated as first class citizens.
Jakub Pawlowicz [Fri, 7 Apr 2017 06:05:06 +0000 (08:05 +0200)]
Fixes #860 - adds `animation` property optimizer.
Why:
* Just as for other transformations, this code enables merging in
longhand properties and overriding longhand properties for `animation`
property and its components;
* some overriding examples at https://jsfiddle.net/m77mbj3f/
Jakub Pawlowicz [Tue, 18 Apr 2017 10:16:56 +0000 (12:16 +0200)]
Fixes #933 - smarter longhand into shorthand merging.
Why:
* When merging in `background-*` longhand properties into `background`
multiplex shorthand need to be expanded into a multiplex first.
However all but `background-image` require their values to be copied
instead of default ones, see https://jsfiddle.net/e8vkxyy4/2/
Jakub Pawlowicz [Thu, 13 Apr 2017 16:58:08 +0000 (18:58 +0200)]
Adds a new issue template (#934)
Why:
* Not everyone read contributing guide so this should improve things slightly.
Jakub Pawlowicz [Wed, 12 Apr 2017 19:11:40 +0000 (21:11 +0200)]
Bumps web interface to version 4.0.12.
Jakub Pawlowicz [Wed, 12 Apr 2017 19:06:54 +0000 (21:06 +0200)]
Version 4.0.12 release notes.
Jakub Pawlowicz [Tue, 11 Apr 2017 10:12:15 +0000 (12:12 +0200)]
Fixes #930 - regression in tidying selectors.
Why:
* `null` is not a safe argument to `replace` method as it's interpreted
as a text pattern.
Nicolas Challeil [Fri, 7 Apr 2017 12:18:25 +0000 (14:18 +0200)]
fix "optimizaton" typo (#928)
Jakub Pawlowicz [Thu, 6 Apr 2017 12:58:39 +0000 (14:58 +0200)]
Fixes #920 - allows skipping property optimizations.
Why:
* To allow fine grained control over property level 2 optimizations;
* instead of disabling all property overriding it may be more useful to
disable just specific ones.
Jakub Pawlowicz [Wed, 5 Apr 2017 09:55:00 +0000 (11:55 +0200)]
See #254 - adds History.md changelog entry.
Jakub Pawlowicz [Wed, 5 Apr 2017 09:35:43 +0000 (11:35 +0200)]
See #254 - adds system font support.
Why:
* System fonts should not be mergeable with other types of fonts as such
merging is not supported by browsers.
Jakub Pawlowicz [Sun, 26 Mar 2017 12:51:14 +0000 (14:51 +0200)]
Reworks validator module.
Why:
* Technically speaking validator can check if a value is valid only in
specific circumstances, like when a value is from a keyword list;
* methods are no longer called `isValid<...>` but `is<...>` which
doesn't say if particular value is valid or not.
Jakub Pawlowicz [Sat, 25 Mar 2017 06:30:26 +0000 (07:30 +0100)]
Uses `Marker` control characters where possible.
Jakub Pawlowicz [Fri, 24 Mar 2017 19:10:21 +0000 (20:10 +0100)]
See #254 - removes `font` optimizations in level 1.
Why:
* The level 1 optimizations were just a temporary fix until shorthand
optimizer gets implemented;
* this creates a regression in optimizing `font-weight` inside `font`
shorthand, which is pending #889.
Jakub Pawlowicz [Fri, 24 Mar 2017 14:42:10 +0000 (15:42 +0100)]
See #254 - implements `font` compacting.
Why:
* Just as for other shorthand properties, the `font` one allows
collapsing components into it;
* we will remove level 1 font optimizations to avoid logic duplication.
Jakub Pawlowicz [Tue, 4 Apr 2017 07:06:49 +0000 (09:06 +0200)]
Bumps web interface to version 4.0.11.
Jakub Pawlowicz [Tue, 4 Apr 2017 06:35:27 +0000 (08:35 +0200)]
Version 4.0.11 release notes.
Jakub Pawlowicz [Fri, 31 Mar 2017 19:58:19 +0000 (21:58 +0200)]
Fixes #924 - `hsl` zero percent eager optimization.
Why:
* Level 1 unit optimization was too eager when it comes to colors
declared with a function.
Jakub Pawlowicz [Fri, 31 Mar 2017 20:24:55 +0000 (22:24 +0200)]
Fixes #923 - protocol tests and nock 9.
Why:
* nock introduced a breaking change in verifying `isDone` in
teardown clauses.
Jakub Pawlowicz [Thu, 23 Mar 2017 19:34:42 +0000 (20:34 +0100)]
Fixes #755 - adds custom handling of remote requests.
Why:
* To allow flexibility in a way of fetching remote resources, for
example requests via CONNECT proxies, an external request library can
be used, see example in readme;
* instead of reinventing a wheel a better approach is to use an external
library based on users' choice.
Jakub Pawlowicz [Fri, 24 Mar 2017 06:15:42 +0000 (07:15 +0100)]
Fixes #905 - allows disabling selector sorting.
Why:
* It may be beneficial for gzip compression purposes or just a personal
preference.
Jakub Pawlowicz [Wed, 22 Mar 2017 14:11:33 +0000 (15:11 +0100)]
Fixes 4.0.10 changelog link.
Jakub Pawlowicz [Wed, 22 Mar 2017 13:47:53 +0000 (14:47 +0100)]
Bumps web interface to version 4.0.10.
Jakub Pawlowicz [Wed, 22 Mar 2017 12:11:02 +0000 (13:11 +0100)]
Version 4.0.10 release notes.
Jakub Pawlowicz [Wed, 22 Mar 2017 11:20:30 +0000 (12:20 +0100)]
See #916 - adds 4.0.10 release note.
Jakub Pawlowicz [Mon, 20 Mar 2017 14:38:24 +0000 (15:38 +0100)]
Refixes #556 - IE backslash hacks.
Apparently turning all backslash hacks into `\9` hack is not desirable
strategy, as, for example, `\0` hack has a different meaning.
Jakub Pawlowicz [Mon, 20 Mar 2017 14:03:56 +0000 (15:03 +0100)]
Fixes #917 - prevents grid area unquoting.
Why:
* Specification requires such values to be quoted so should the values
be preserved.
Jakub Pawlowicz [Wed, 22 Mar 2017 12:09:12 +0000 (13:09 +0100)]
Adds notes which features are available since 4.1.
Jakub Pawlowicz [Wed, 22 Mar 2017 11:53:37 +0000 (12:53 +0100)]
See #908 - adds release notes & kudos.
Jakub Pawlowicz [Wed, 22 Mar 2017 11:20:30 +0000 (12:20 +0100)]
Fixes #916 - maximum number of merged selectors.
Why:
* Apparently Chrome's Blink engine places a limit on a number of
selectors in a single rule. Any number of selectors greater than 8191
causes a rule to be ignored;
* Allows arbitrary selection of the limit via
`{ compatibility: { selectors: { mergeLimit: <value> } } }`
Jakub Pawlowicz [Tue, 21 Mar 2017 19:28:36 +0000 (20:28 +0100)]
See #916 - adds predictable fitting in restructuring.
Why:
* To ensure the best fit is always choosen which may have not been the
with previous comparator.
Martin Grandrath [Mon, 20 Mar 2017 10:46:02 +0000 (11:46 +0100)]
Extend readSources to accept array of source hashes (#918)
* Extend readSources to accept array of source hashes
This change makes it easier to specify the order in which sources are
concatenated. See issue jakubpawlowicz/clean-css#908 for details.
Jakub Pawlowicz [Wed, 15 Mar 2017 10:09:20 +0000 (11:09 +0100)]
Bumps web interface to version 4.0.9.
Jakub Pawlowicz [Tue, 14 Mar 2017 16:53:35 +0000 (17:53 +0100)]
Version 4.0.9 release notes.
Jakub Pawlowicz [Tue, 14 Mar 2017 15:03:33 +0000 (16:03 +0100)]
Fixes #903 - web UI and source maps.
Fixes processing source maps in web UI, while disabling applying
source maps and loading remote sources whenever source maps are
disabled.
Ideally we should build source maps in web UI but only if an inlined
source map is provided - see #915.
Jakub Pawlowicz [Tue, 14 Mar 2017 09:35:54 +0000 (10:35 +0100)]
Fixes #902 - case insensitive attribute matchers.
Why:
* CSS 4 spec defines case insensitive matchers which were treated
incorrectly by attribute tidying code.
Jakub Pawlowicz [Tue, 14 Mar 2017 09:19:35 +0000 (10:19 +0100)]
Fixes #907 - compatibility of space after closing brace.
Why:
* Apparently `@supports` doesn't like stripping that extra space
after `)` character.
Jakub Pawlowicz [Mon, 13 Mar 2017 21:22:22 +0000 (22:22 +0100)]
Fixes #910 - too aggressive precision optimizations.
Why:
* Precision rounding should only apply when a value is positively
identified as a numeric or unit value.
Mike Kamermans [Sun, 12 Mar 2017 07:34:17 +0000 (23:34 -0800)]
explicitly mention the CLI utility (#912)
Moritz Kröger [Sat, 11 Mar 2017 14:04:42 +0000 (15:04 +0100)]
Update README.md (#909)
Fixes wrong variable name in usage demo
Jakub Pawlowicz [Wed, 22 Feb 2017 16:26:39 +0000 (17:26 +0100)]
Bumps web interface to version 4.0.8.
Jakub Pawlowicz [Wed, 22 Feb 2017 16:20:16 +0000 (17:20 +0100)]
Version 4.0.8 release notes.
Jakub Pawlowicz [Wed, 22 Feb 2017 16:13:12 +0000 (17:13 +0100)]
Fixes #899 - regression in optimizing pseudo class arguments.
Why:
* `+` character is both a 1) relation or 2) operator within
pseudo class arguments; so these two use cases should be
distinct.
Jakub Pawlowicz [Fri, 17 Feb 2017 06:47:44 +0000 (07:47 +0100)]
Fixes edge case in remote stylesheet fetching.
Why:
* When a request results in an error or timeout then any further
fetching should be aborted as callback has already been called.
Jakub Pawlowicz [Wed, 22 Feb 2017 15:42:10 +0000 (16:42 +0100)]
Version 3.4.25 release notes.
Jakub Pawlowicz [Thu, 16 Feb 2017 15:44:02 +0000 (16:44 +0100)]
Fixes #886 - better multi pseudo class / element merging.
Why:
* 4.0 introduced a stricter mergeability rules, however in some
cases merging is still possible but harder to determine;
* tests suggested all multi pseudo class / element rules can be
merged unless those contain more than one of the following:
`:after`, `::after`, `:before`, `::before`, `:first-letter`,
`::first-letter`, `:first-line`, `::first-line`, or `:lang`;
* there's also a new compatibility switch,
`{ compatibility: { selectors: { multiplePseudoMerging: false } } }`
which, if set to false, disables merging for all rules with
multiple pseudo classes / elements.
Jakub Pawlowicz [Wed, 15 Feb 2017 18:48:33 +0000 (19:48 +0100)]
Fixes #890 - adds toggle to disable empty tokens removal.
Why:
* Removing empty tokens (rules & blocks) was the only "optimization"
which was not toggabble;
* introduces a side-effect in level 2 optimizations where rules that
become empty as a result of complex optimizations are preserved.
Jakub Pawlowicz [Wed, 15 Feb 2017 19:01:05 +0000 (20:01 +0100)]
Adds readme section about upcoming changes.
Covers changes introduced in #893.
Jakub Pawlowicz [Tue, 14 Feb 2017 12:53:33 +0000 (13:53 +0100)]
Fixes #893 - `inline: false` as alias to `inline: 'none'`.
Why:
* So it matches other options where `false` means 'disable'.
Jakub Pawlowicz [Tue, 14 Feb 2017 12:52:45 +0000 (13:52 +0100)]
Bumps version on master to 4.1.0-pre.
Jakub Pawlowicz [Tue, 14 Feb 2017 11:39:56 +0000 (12:39 +0100)]
Bumps web interface to version 4.0.7.
Jakub Pawlowicz [Tue, 14 Feb 2017 08:12:12 +0000 (09:12 +0100)]
Version 4.0.7 release notes.
Jakub Pawlowicz [Tue, 14 Feb 2017 07:29:34 +0000 (08:29 +0100)]
Fixes #891 - merging vendor-prefixed pseudo classes.
Why:
* When a pseudo-class or pseudo-element was positioned after
quoted string it was not extracted for mergeability comparison.
Jakub Pawlowicz [Tue, 14 Feb 2017 07:05:38 +0000 (08:05 +0100)]
See #892 - adds better `inline` option docs.
Jakub Pawlowicz [Fri, 10 Feb 2017 10:33:27 +0000 (11:33 +0100)]
Bumps web interface to version 4.0.6.
Jakub Pawlowicz [Fri, 10 Feb 2017 10:24:58 +0000 (11:24 +0100)]
Version 4.0.6 release notes.
Jakub Pawlowicz [Wed, 8 Feb 2017 07:35:01 +0000 (08:35 +0100)]
Fixes #885 - don't strip quotes from `font-feature-settings`.
Why:
* Browsers don't get it right when without quotes;
* it'll all be better with whitelist based optimizations, see #889.
Jakub Pawlowicz [Tue, 7 Feb 2017 10:41:30 +0000 (11:41 +0100)]
Bumps web interface to version 4.0.5.
Jakub Pawlowicz [Tue, 7 Feb 2017 10:05:35 +0000 (11:05 +0100)]
Version 4.0.5 release notes.
Jakub Pawlowicz [Mon, 6 Feb 2017 13:42:46 +0000 (14:42 +0100)]
Fixes #884 - handling absolute paths on Windows.
Why:
* There's a built-in `path.isAbsolute` which should have been used
in the first place;
* `inlineLocalStylesheets` absolute path handling with be gone in
the next major version when virtual absolute paths will be gone.
Jakub Pawlowicz [Mon, 6 Feb 2017 06:17:45 +0000 (07:17 +0100)]
Fixes #880 - incorrect token type identification.
Why:
* When there is no space after nested block scope, e.g.
`@media(` in `@media(min-width:100px)` it should still be
handled correctly by tokenizer.
Jakub Pawlowicz [Mon, 6 Feb 2017 06:08:11 +0000 (07:08 +0100)]
Adds #881 changelog entry.
Olivier Tassinari [Mon, 6 Feb 2017 05:44:51 +0000 (06:44 +0100)]
Fix wrong require arity (#881)
Jakub Pawlowicz [Sat, 4 Feb 2017 06:45:21 +0000 (07:45 +0100)]
Bumps web interface to version 4.0.4.
Jakub Pawlowicz [Sat, 4 Feb 2017 06:36:06 +0000 (07:36 +0100)]
Version 4.0.4 release notes.
Jakub Pawlowicz [Sat, 4 Feb 2017 06:17:00 +0000 (07:17 +0100)]
Fixes #879 - incorrect handling of spaces in paths.
Why:
* When reading sources passed in as array, paths need to be wrapped
in `url()` so spaces are handled correctly.
Jakub Pawlowicz [Sat, 4 Feb 2017 05:52:51 +0000 (06:52 +0100)]
Fixes #878 - invalid double backshlash tokenization.
Why:
* Any subsequent backslash escape character was treated as
another escape sequence.
yumetodo [Thu, 2 Feb 2017 10:18:36 +0000 (19:18 +0900)]
fix typo (#877)
s/ontrols/controls/
Jakub Pawlowicz [Wed, 1 Feb 2017 15:43:58 +0000 (16:43 +0100)]
Fixes a typo in History.md.
Thx to @ngyikp for reporting.
Jakub Pawlowicz [Mon, 30 Jan 2017 06:40:54 +0000 (07:40 +0100)]
Bumps web interface to version 4.0.3.
Jakub Pawlowicz [Mon, 30 Jan 2017 06:34:03 +0000 (07:34 +0100)]
Version 4.0.3 release notes.
Jakub Pawlowicz [Mon, 30 Jan 2017 06:33:18 +0000 (07:33 +0100)]
See #875 - adds missing History.md entry.
Jakub Pawlowicz [Fri, 27 Jan 2017 07:27:47 +0000 (08:27 +0100)]
Fixes #875 - :facepalm: bug in semantic merging.
Why:
* This is still an under tested feature but we'll get there.
Jakub Pawlowicz [Thu, 26 Jan 2017 13:52:16 +0000 (14:52 +0100)]
Bumps web interface to version 4.0.2.
Jakub Pawlowicz [Thu, 26 Jan 2017 13:42:58 +0000 (14:42 +0100)]
Version 4.0.2 release notes.
Jakub Pawlowicz [Thu, 26 Jan 2017 13:35:42 +0000 (14:35 +0100)]
Fixes #874 - regression in at-rule tokenization.
Why:
* Another case after #872 where at-rules were incorrectly
tokenized because `propertyToken` wasn't reset.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:33:11 +0000 (11:33 +0100)]
Bumps web interface to version 4.0.1.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:24:24 +0000 (11:24 +0100)]
Version 4.0.1 release notes.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:13:23 +0000 (11:13 +0100)]
See #872 - two additional cases.
Unrelated to the ticket but should still be handled correctly.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:12:14 +0000 (11:12 +0100)]
Fixes #872 - edge case in tokenization.
Why:
* On closing curly brace `}` both `ruleToken` and `propertyToken`
should be nullified to prevent incorrect property assignments.
Jakub Pawlowicz [Tue, 24 Jan 2017 20:18:03 +0000 (21:18 +0100)]
Fixes #868 - accept absolute paths in input hash.
Thanks to @madwizard-thomas for bug investigation which turned
out to be correct.
Why:
* Internally all local URIs should be represented as relative
paths normalized to *nix format so nothing else gets propagated
to output styles or source maps;
* all remote URIs are kept as is.