clean-css.git
7 years agoFixes #785 - adds `@font-face` de-duplication.
Jakub Pawlowicz [Tue, 27 Dec 2016 14:12:28 +0000 (15:12 +0100)]
Fixes #785 - adds `@font-face` de-duplication.

Why:

* Extra `@font-face` rules can be safely removed.
* There's no API/CLI switch to turn it off as it's pending
  a refactoring in v4 - see #842.

7 years agoSee #801 - adds History.md entry.
Jakub Pawlowicz [Tue, 27 Dec 2016 13:39:15 +0000 (14:39 +0100)]
See #801 - adds History.md entry.

7 years agoSee #801 - recommends clean-css styles concatenation.
Jakub Pawlowicz [Tue, 27 Dec 2016 13:31:10 +0000 (14:31 +0100)]
See #801 - recommends clean-css styles concatenation.

Why:

* There is a difference between passing in a concatenated string
  and letting clean-css do the job. The former will discard
  `@import` statements appearing not at the beginning of the string,
  while the latter will discard only those appearing not at
  the beginning of any of the files. Because of this behavior,
  the latter way is recommended.

7 years agoSee #801 - adds test cases to avoid regression.
Jakub Pawlowicz [Tue, 27 Dec 2016 13:10:08 +0000 (14:10 +0100)]
See #801 - adds test cases to avoid regression.

Why:

* It works as expected since 426127a, but there were no
  explicit tests for this feature.

7 years agoFixes #849 - disables inlining protocol-less resources.
Jakub Pawlowicz [Mon, 26 Dec 2016 15:30:35 +0000 (16:30 +0100)]
Fixes #849 - disables inlining protocol-less resources.

Why:

* It's not safe to assume a HTTP protocol;
* It's better to leave such resources to be resolved at runtime
  when stylesheets are interpreted inside a HTTP(S) context.

7 years agoSplits `inliner` option in two.
Jakub Pawlowicz [Mon, 26 Dec 2016 15:03:11 +0000 (16:03 +0100)]
Splits `inliner` option in two.

* `{ inliner: { request: ... } }` becomes `{ inlineRequest: ... }`;
* `{ inliner: { timeout: N } }` becomes `{ inlineTimeout: N }`;
* `--timeout` becomes `--inline-timeout`.

Why:

* To relate it directly to the new `inline` option.
* Also `--timeout` option relates to `@import` inlining only
  so it should not be "global".

7 years agoFixes #767 - refactors inlining options.
Jakub Pawlowicz [Mon, 26 Dec 2016 14:26:09 +0000 (15:26 +0100)]
Fixes #767 - refactors inlining options.

Merges `processImport` and `processImportFrom` API options into
a single `inline` option. It accepts the same set of rules as
`processImportFrom` previously, e.g.

`{ inline: 'none' }`
`{ inline: ['local', '127.0.0.1] }`

Also the `inline` option defaults to `local` now, which means
remote `@import` rules are **NOT** inlined by default anymore.
To re-enable it use any of the following:

`{ inline: 'all' }`
`{ inline: 'local,remote' }`

Why:

* These two options were meant to be merged as they represent the
  same concept;
* Inlining remote `@import` rules by default may not be desirable;
* "Inline" as the option name better represents what this option
  does, as it also applies to source maps.

7 years agoReworks inlining so resources are loaded lazily.
Jakub Pawlowicz [Mon, 26 Dec 2016 11:42:08 +0000 (12:42 +0100)]
Reworks inlining so resources are loaded lazily.

Why:

* when using a hash as an input, the sources it references
  should be processed lazily instead of a whole hash being
  serialized & tokenized eagerly.

This change addresses the need by:

* See #791 - in-memory imports require such lazy processing.
  The other way, we end up with duplicated rules, and have to rely
  on advanced processing to remove them.

7 years agoFixes #791 - resolves imports in-memory if possible.
Jakub Pawlowicz [Sun, 25 Dec 2016 14:38:04 +0000 (15:38 +0100)]
Fixes #791 - resolves imports in-memory if possible.

Why:

* When a hash is given as a source, some imports can be inlined
  in-memory taking styles from the hash.

7 years agoSee #710 - adds a test case to prevent regressions.
Jakub Pawlowicz [Fri, 23 Dec 2016 22:00:46 +0000 (23:00 +0100)]
See #710 - adds a test case to prevent regressions.

7 years agoSee #808 - adds a test case to prevent regressions.
Jakub Pawlowicz [Fri, 23 Dec 2016 21:00:43 +0000 (22:00 +0100)]
See #808 - adds a test case to prevent regressions.

7 years agoFixes #845 - fixes web compatibility in 4.0.
Jakub Pawlowicz [Fri, 23 Dec 2016 20:43:50 +0000 (21:43 +0100)]
Fixes #845 - fixes web compatibility in 4.0.

Why:

* 4.0 calculates stats by default but `process.hrtime` is not
  available inside browsers. However, since we don't need
  sub-ms resolution, `Date.now()` can be used instead.

7 years agoFixes #685 - adds lowercase hex color normalization.
Jakub Pawlowicz [Fri, 23 Dec 2016 19:54:45 +0000 (20:54 +0100)]
Fixes #685 - adds lowercase hex color normalization.

Why:

* This change does not affect color interpretation.
* Allow potential merging improvements as colors are normalized.

7 years agoSee #560 - adds a test case to prevent future regressions.
Jakub Pawlowicz [Fri, 23 Dec 2016 17:24:56 +0000 (18:24 +0100)]
See #560 - adds a test case to prevent future regressions.

7 years agoFixes #847 - ignores selectors with invalid characters.
Jakub Pawlowicz [Fri, 23 Dec 2016 17:05:17 +0000 (18:05 +0100)]
Fixes #847 - ignores selectors with invalid characters.

Why:

* Browsers won't apply such rules so neither should we.

7 years agoFixes #758 - ignores rules with empty selectors.
Jakub Pawlowicz [Thu, 22 Dec 2016 21:18:33 +0000 (22:18 +0100)]
Fixes #758 - ignores rules with empty selectors.

7 years agoFixes #817 - makes `off` disable rounding.
Jakub Pawlowicz [Thu, 22 Dec 2016 20:51:11 +0000 (21:51 +0100)]
Fixes #817 - makes `off` disable rounding.

Why:

* `-1` is still an alias to `off`.
* It won't be used that often as rounding is now disabled
  by default.

7 years agoSee #209 - adds missing readme for `beautify` option.
Jakub Pawlowicz [Thu, 22 Dec 2016 15:13:03 +0000 (16:13 +0100)]
See #209 - adds missing readme for `beautify` option.

7 years agoFixes #209 - adds output formatting via `beautify` option.
Jakub Pawlowicz [Thu, 22 Dec 2016 14:41:58 +0000 (15:41 +0100)]
Fixes #209 - adds output formatting via `beautify` option.

Why:

* So clean-css can be used to format CSS nicely as well.

7 years agoFixes tokenizer edge case.
Jakub Pawlowicz [Thu, 22 Dec 2016 07:59:41 +0000 (08:59 +0100)]
Fixes tokenizer edge case.

If there is a semicolon marker after a property then the property
ends and its reference should be discarded. Otherwise next tokens
may get appended to the property.

7 years agoFixed #432 - adds URLs normalization.
Jakub Pawlowicz [Wed, 21 Dec 2016 11:05:46 +0000 (12:05 +0100)]
Fixed #432 - adds URLs normalization.

Why:

* So further merging or compacting can happen more effectively
  even when initial URL formatting is different.

7 years agoFixes #756 - adds disabling font-weight optimizations.
Jakub Pawlowicz [Wed, 21 Dec 2016 10:46:14 +0000 (11:46 +0100)]
Fixes #756 - adds disabling font-weight optimizations.

Why:

* Some users reported a need to keep original values;
* Actually we want all optimizations to be configurable.

7 years agoSee #657 - adds missing History.md entry.
Jakub Pawlowicz [Wed, 21 Dec 2016 07:37:58 +0000 (08:37 +0100)]
See #657 - adds missing History.md entry.

7 years agoFixes #686 - adds rounding precision for all units.
Jakub Pawlowicz [Tue, 20 Dec 2016 14:47:53 +0000 (15:47 +0100)]
Fixes #686 - adds rounding precision for all units.

** BREAKING CHANGE ** - setting a rounding precision value to a
number applies it to *all* units now, not `px` only.

Why:

* To give users more control over how units are optimized.

7 years agoFixes #657 - adds property name validation.
Jakub Pawlowicz [Tue, 20 Dec 2016 16:10:47 +0000 (17:10 +0100)]
Fixes #657 - adds property name validation.

It's a bit relaxed matching but too strict one would do too much
harm with many false-positives.

Why:

* To prevent processing errors further down the optimization pipeline.

7 years agoStandardizes <file>:<line>:<column> formatting.
Jakub Pawlowicz [Tue, 20 Dec 2016 15:22:44 +0000 (16:22 +0100)]
Standardizes <file>:<line>:<column> formatting.

Why:

* When a warning is raised we should give user as much info as
  possible, which includes a filename, line and column number.

7 years agoFixes #818 - disables `px` rounding by default.
Jakub Pawlowicz [Mon, 19 Dec 2016 09:26:45 +0000 (10:26 +0100)]
Fixes #818 - disables `px` rounding by default.

Why:

* It is a safer default than `2` which may lead to some
  issues with Bootstrap and other CSS frameworks depending
  on a high-precision `px` values.

Also see #686 which will make rounding more flexible and
available to all units.

7 years agoRefactors batch-test.js.
Jakub Pawlowicz [Mon, 19 Dec 2016 09:58:25 +0000 (10:58 +0100)]
Refactors batch-test.js.

Why:

* Wasn't too DRY anymore.

7 years agoFixes #704 - adds batch CLI tests.
Jakub Pawlowicz [Mon, 19 Dec 2016 09:49:00 +0000 (10:49 +0100)]
Fixes #704 - adds batch CLI tests.

Why:

* To compare output generated by CLI and API (should be the same!).

7 years agoAdds link to official web interface to readme.
Jakub Pawlowicz [Mon, 19 Dec 2016 07:16:47 +0000 (08:16 +0100)]
Adds link to official web interface to readme.

7 years agoAdds Readme section on 4.0 breaking changes.
Jakub Pawlowicz [Mon, 19 Dec 2016 07:11:29 +0000 (08:11 +0100)]
Adds Readme section on 4.0 breaking changes.

7 years agoSee #789 - adds a test case to avoid future regressions.
Jakub Pawlowicz [Mon, 19 Dec 2016 06:53:29 +0000 (07:53 +0100)]
See #789 - adds a test case to avoid future regressions.

7 years agoSee #809 - adds a test case to avoid future regressions.
Jakub Pawlowicz [Mon, 19 Dec 2016 06:43:07 +0000 (07:43 +0100)]
See #809 - adds a test case to avoid future regressions.

7 years agoSee #786 - adds a test case to avoid future regressions.
Jakub Pawlowicz [Mon, 19 Dec 2016 06:39:24 +0000 (07:39 +0100)]
See #786 - adds a test case to avoid future regressions.

7 years agoFixes #834 - adds extra line break in nested blocks.
Jakub Pawlowicz [Sun, 18 Dec 2016 15:46:28 +0000 (16:46 +0100)]
Fixes #834 - adds extra line break in nested blocks.

Why:

* It's slightly easier to read when preserving line breaks.

7 years agoFixes #839 - allows URIs in import inlining rules.
Jakub Pawlowicz [Sun, 18 Dec 2016 11:24:53 +0000 (12:24 +0100)]
Fixes #839 - allows URIs in import inlining rules.

Why:

* To give more control over which resource can and cannot be
  inlined.

7 years agoBumps nock dev dependency to 9.x.
Jakub Pawlowicz [Sun, 18 Dec 2016 10:02:05 +0000 (11:02 +0100)]
Bumps nock dev dependency to 9.x.

7 years agoBumps online version to clean-css 3.4.23.
Jakub Pawlowicz [Sat, 17 Dec 2016 17:04:17 +0000 (18:04 +0100)]
Bumps online version to clean-css 3.4.23.

7 years agoVersion 3.4.23 release notes.
Jakub Pawlowicz [Sat, 17 Dec 2016 16:53:12 +0000 (17:53 +0100)]
Version 3.4.23 release notes.

7 years agoSee #844 - fixes matching whitespace in property extraction.
Jakub Pawlowicz [Sat, 17 Dec 2016 16:46:06 +0000 (17:46 +0100)]
See #844 - fixes matching whitespace in property extraction.

On 3.4 branch it was completely broken whereas on master it had
problems with tab separated values while others were good.

7 years agoFixes #840 - allows input source map as map object.
Jakub Pawlowicz [Sat, 17 Dec 2016 12:14:16 +0000 (13:14 +0100)]
Fixes #840 - allows input source map as map object.

Why:

* It's been always odd that we required a serialized JSON when
  user may already had it parsed.

7 years agoFixes #843 - more restrictive quote removal rules.
Jakub Pawlowicz [Sat, 17 Dec 2016 11:54:27 +0000 (12:54 +0100)]
Fixes #843 - more restrictive quote removal rules.

Why:

* Only remove quotes from selector argument values if allowed.

7 years agoSee #843 - fixes an edge case in attribute tidying.
Jakub Pawlowicz [Sat, 17 Dec 2016 11:15:53 +0000 (12:15 +0100)]
See #843 - fixes an edge case in attribute tidying.

Why:

* We should treat single and double quotes properly as in tokenizer.

7 years agoFixes 4.0.0-pre Windows tests.
Jakub Pawlowicz [Sat, 17 Dec 2016 10:23:38 +0000 (11:23 +0100)]
Fixes 4.0.0-pre Windows tests.

Why:

* This is because of line breaks difference between platforms.

7 years agoRefactors rebasing code.
Jakub Pawlowicz [Fri, 16 Dec 2016 10:18:32 +0000 (11:18 +0100)]
Refactors rebasing code.

Why:

* By using the same wording / variable names it is now easier to
  understand how rebasing words.
* It's remarkable in how few places we need to rebase paths now. :)

7 years agoBumps version to 4.0.0-pre.
Jakub Pawlowicz [Thu, 15 Dec 2016 20:12:49 +0000 (21:12 +0100)]
Bumps version to 4.0.0-pre.

API and CLI compatibility has been broken thus the major version
needs to move up.

7 years agoMoves all writing-related code to `writer` folder.
Jakub Pawlowicz [Thu, 15 Dec 2016 16:20:01 +0000 (17:20 +0100)]
Moves all writing-related code to `writer` folder.

Why:

* To make it clearer what it does.

7 years agoMoves all reading-related modules to `reader` folder.
Jakub Pawlowicz [Thu, 15 Dec 2016 16:05:04 +0000 (17:05 +0100)]
Moves all reading-related modules to `reader` folder.

Why:

* Grouping it together for clarity sake.

7 years agoExposes inlined stylesheet URIs.
Jakub Pawlowicz [Wed, 14 Dec 2016 16:19:56 +0000 (17:19 +0100)]
Exposes inlined stylesheet URIs.

Why:

* So the list can be printed in debug mode.

7 years agoRestores source map support.
Jakub Pawlowicz [Sun, 11 Dec 2016 10:50:11 +0000 (11:50 +0100)]
Restores source map support.

Re-built from ground up on top of the new tokenizing process
it features simpler rebasing while still supporting all features
of the previous solution.

7 years agoStandardizes parsed tokens.
Jakub Pawlowicz [Sun, 11 Dec 2016 10:26:39 +0000 (11:26 +0100)]
Standardizes parsed tokens.

This commit unifies tokenized values' structure, i.e.

```
[
  <TOKEN_NAME>,
  <TOKEN_VALUE>,
  <METADATA>
]
```

Why:

* So it's easier to work with those values further down the
  optimizing pipeline and when restoring back to text content.

7 years agoSimplifies URL rebasing.
Jakub Pawlowicz [Thu, 8 Dec 2016 07:04:31 +0000 (08:04 +0100)]
Simplifies URL rebasing.

** WARNING ** - this is a truly breaking change.

There is now a single option called `rebaseTo`, which denotes a
path all relative URLs are rebased to.

Absolute URLs are kept intact as it's assumed user knows what
he/she does when using them, however absolute @imports are still
inlined relative to the current working directory.

This commit also re-introduces ability to pass arrays to CleanCSS
`minify` method.

** IMPORTANT ** - it'd probably be wise to give users an option
to use a function as `rebaseTo` so they can restore some of old
functionality if needed.

Why:

* The old system with three options (`relativeTo`, `root`, and
  `target`) was too hard to understand and work with reliably.

7 years agoRestores accepting `Buffer` as input.
Jakub Pawlowicz [Wed, 7 Dec 2016 12:19:11 +0000 (13:19 +0100)]
Restores accepting `Buffer` as input.

7 years agoRemoves `debug` API switch.
Jakub Pawlowicz [Wed, 7 Dec 2016 10:54:15 +0000 (11:54 +0100)]
Removes `debug` API switch.

Why:

* Stats are always calculated and available under `stats`
  property of the output hash.

7 years agoImproves warning & error messages raised during optimizations.
Jakub Pawlowicz [Tue, 6 Dec 2016 11:14:14 +0000 (12:14 +0100)]
Improves warning & error messages raised during optimizations.

Why:

* We can be more specific about raised errors now.

7 years agoFixes tokenization on extra close brace.
Jakub Pawlowicz [Tue, 6 Dec 2016 08:06:48 +0000 (09:06 +0100)]
Fixes tokenization on extra close brace.

Why:

* It should be ignored when at the end of tokenized string, but
  preserved when in the middle.

7 years agoReimplements `@import` inlining on top of the new tokenizer.
Jakub Pawlowicz [Tue, 29 Nov 2016 09:48:00 +0000 (10:48 +0100)]
Reimplements `@import` inlining on top of the new tokenizer.

It works roughly the same as the old inliner but at a different
step: not before tokenization but during it.

Thanks to it there's no need to match import URLs in sources,
deal with comments, etc.

7 years agoFixes all unit tests on top of the new tokenizer.
Jakub Pawlowicz [Sun, 13 Nov 2016 10:54:38 +0000 (11:54 +0100)]
Fixes all unit tests on top of the new tokenizer.

This involves the following changes too:

* /lib/selectors -> /lib/optimizer;
* new /lib/optimizer/tidy* modules for cleaning up tokens;
* redone URL rewriting as it doesn't require full document scan
  anymore, as it's run right after tokenization;
* compatibility class is now a simple function;
* introducing `readSources` method instead of SourceReader class.

7 years agoRewrites tokenizer without escaping.
Jakub Pawlowicz [Sat, 5 Nov 2016 07:16:15 +0000 (08:16 +0100)]
Rewrites tokenizer without escaping.

This way it's much easier to handle parsing as it's a "one step"
process instead of way more complex, legacy escaping.

7 years agoBumps online version to clean-css 3.4.22.
Jakub Pawlowicz [Mon, 12 Dec 2016 15:11:16 +0000 (16:11 +0100)]
Bumps online version to clean-css 3.4.22.

7 years agoVersion 3.4.22 release notes.
Jakub Pawlowicz [Mon, 12 Dec 2016 15:02:13 +0000 (16:02 +0100)]
Version 3.4.22 release notes.

7 years agoIgnores `@import` at-rules if after content.
Jakub Pawlowicz [Mon, 12 Dec 2016 13:12:22 +0000 (14:12 +0100)]
Ignores `@import` at-rules if after content.

Why:

* This is what browsers do and we should respect it.

7 years agoFixes #841 - disabled importing and many files passed as array.
Jakub Pawlowicz [Mon, 12 Dec 2016 12:57:06 +0000 (13:57 +0100)]
Fixes #841 - disabled importing and many files passed as array.

Why:

* Importing via `@shallow` feature should be propagated to next
  files in the importing queue.

7 years agoUpdates project description.
Jakub Pawlowicz [Wed, 16 Nov 2016 15:35:58 +0000 (16:35 +0100)]
Updates project description.

Why:

* To stress we have two platforms now.

7 years agoBumps online version to clean-css 3.4.21.
Jakub Pawlowicz [Wed, 16 Nov 2016 11:01:13 +0000 (12:01 +0100)]
Bumps online version to clean-css 3.4.21.

7 years agoVersion 3.4.21 release notes.
Jakub Pawlowicz [Wed, 16 Nov 2016 10:51:53 +0000 (11:51 +0100)]
Version 3.4.21 release notes.

7 years agoFixes #821 - edge case in reducing non-adjacent selectors.
Jakub Pawlowicz [Wed, 16 Nov 2016 10:43:17 +0000 (11:43 +0100)]
Fixes #821 - edge case in reducing non-adjacent selectors.

Why:

* In case of previously optimized empty rules, the join positions
  were not calculated correctly resulting in tokens being
  incorrectly optimized.

7 years agoFixes #830 - reordering border-* properties.
Jakub Pawlowicz [Wed, 16 Nov 2016 07:36:12 +0000 (08:36 +0100)]
Fixes #830 - reordering border-* properties.

Why:

* `border-X` and `border-<side>-X` were reorderable but obiously one
  cannot reorder them as that may change styling.

7 years agoFixes #833 - moving `@media` queries.
Jakub Pawlowicz [Tue, 15 Nov 2016 16:11:24 +0000 (17:11 +0100)]
Fixes #833 - moving `@media` queries.

Why:

* So it's not about `!important` modifier but `@` sign which were
  incorrectly treated as a special marker starting a block.
* The solution is somewhat hacky - checking if a preceding character
  is not a special marker - but an improved tokenizer will be there
  soon (-ish).

7 years agoAdds page view Clicky tracking to GitHub page.
Jakub Pawlowicz [Fri, 4 Nov 2016 15:11:15 +0000 (16:11 +0100)]
Adds page view Clicky tracking to GitHub page.

That's for page views only to figure out page usage.

7 years agoDisables keeping line break by default in UI.
Jakub Pawlowicz [Thu, 3 Nov 2016 20:14:50 +0000 (21:14 +0100)]
Disables keeping line break by default in UI.

Why:

* Mimics CLI and API default behavior.

7 years agoIgnores JSHint on /docs folder.
Jakub Pawlowicz [Thu, 3 Nov 2016 19:37:49 +0000 (20:37 +0100)]
Ignores JSHint on /docs folder.

Why:

* JS on public pages don't follow the same conventions as the
  rest of the repo.

7 years agoSee #260 - hides template tag where it's not supported.
Jakub Pawlowicz [Thu, 3 Nov 2016 19:27:23 +0000 (20:27 +0100)]
See #260 - hides template tag where it's not supported.

7 years agoSee #260 - adds `noscript` warning.
Jakub Pawlowicz [Thu, 3 Nov 2016 19:04:26 +0000 (20:04 +0100)]
See #260 - adds `noscript` warning.

Why:

* We need JavaScript to operate properly.

7 years agoSee #260 - delays Worker initialization.
Jakub Pawlowicz [Thu, 3 Nov 2016 18:57:34 +0000 (19:57 +0100)]
See #260 - delays Worker initialization.

Why:

* There's no point fetching CleanCSS until files are about to be
  optimized.
* It currently uses a fixed version of CleanCSS but we'll pass
  version to initializer once more versions are supported.

7 years agoSee #260 - adds UI for changing optimization settings.
Jakub Pawlowicz [Tue, 1 Nov 2016 07:56:21 +0000 (08:56 +0100)]
See #260 - adds UI for changing optimization settings.

Note: it disables advanced optimizations by default.

Why:

* To give users better control over how optimizations are applied.

7 years agoSee #260 - shows short optimization summary.
Jakub Pawlowicz [Mon, 31 Oct 2016 21:02:51 +0000 (22:02 +0100)]
See #260 - shows short optimization summary.

Why:

* To let user know how much smaller output content is.

7 years agoSee #260 - adds progress spinner.
Jakub Pawlowicz [Mon, 31 Oct 2016 20:32:30 +0000 (21:32 +0100)]
See #260 - adds progress spinner.

7 years agoSee #260 - adds worker error logging.
Jakub Pawlowicz [Mon, 31 Oct 2016 20:23:59 +0000 (21:23 +0100)]
See #260 - adds worker error logging.

Why:

* At least there will be some feedback.

7 years agoSee #260 - properly sets name of optimized file.
Jakub Pawlowicz [Mon, 31 Oct 2016 20:17:19 +0000 (21:17 +0100)]
See #260 - properly sets name of optimized file.

7 years agoSee #260 - adds nicer look&feel for optimized files.
Jakub Pawlowicz [Mon, 31 Oct 2016 17:14:29 +0000 (18:14 +0100)]
See #260 - adds nicer look&feel for optimized files.

7 years agoSee #260 - adds 'copy to clipboard' in UI.
Jakub Pawlowicz [Mon, 31 Oct 2016 17:03:18 +0000 (18:03 +0100)]
See #260 - adds 'copy to clipboard' in UI.

Why:

* So user can copy optimized content without downloading a file.

7 years agoSee #260 - adds a very basic browser client.
Jakub Pawlowicz [Fri, 21 Oct 2016 16:05:00 +0000 (18:05 +0200)]
See #260 - adds a very basic browser client.

Why:

* So there's an easy way to minify files without installing
  clean-css module;

7 years agoAdd test when precision not castable to int
vlakoff [Mon, 31 Oct 2016 21:32:26 +0000 (22:32 +0100)]
Add test when precision not castable to int

7 years agoVoid if precision value is not a number
vlakoff [Sat, 29 Oct 2016 08:10:26 +0000 (10:10 +0200)]
Void if precision value is not a number

7 years agoMove cast into buildPrecision()
vlakoff [Sat, 29 Oct 2016 08:09:20 +0000 (10:09 +0200)]
Move cast into buildPrecision()

7 years agoCast in options object rather than command line
vlakoff [Sat, 29 Oct 2016 08:08:02 +0000 (10:08 +0200)]
Cast in options object rather than command line

7 years agoNote that rounding only applies to px values (#820)
vlakoff [Mon, 10 Oct 2016 17:50:50 +0000 (19:50 +0200)]
Note that rounding only applies to px values (#820)

7 years agoVersion 3.4.20 release notes.
Jakub Pawlowicz [Mon, 26 Sep 2016 04:48:08 +0000 (06:48 +0200)]
Version 3.4.20 release notes.

7 years agoPrevent rules with :selection from being merged (#814)
silverwind [Mon, 26 Sep 2016 04:36:31 +0000 (06:36 +0200)]
Prevent rules with :selection from being merged (#814)

Firefox does not support :selection, only :-moz-selection. This change
adds :selection to the list of problematic selectors to prevent invalid
rules from being created.

Also cleaned up the regex, : and :: are equivalent in this regex,
so reduced all section to just :.

8 years agoVersion 3.4.19 release notes.
Jakub Pawlowicz [Mon, 25 Jul 2016 04:31:28 +0000 (06:31 +0200)]
Version 3.4.19 release notes.

8 years agoFixes #795 - `!important` and override compacting.
Jakub Pawlowicz [Mon, 25 Jul 2016 04:28:28 +0000 (06:28 +0200)]
Fixes #795 - `!important` and override compacting.

There was a broken test rule which didn't catch the bug, which is
now fixed.

8 years agoBumps logo version.
Jakub Pawlowicz [Fri, 15 Jul 2016 18:07:18 +0000 (20:07 +0200)]
Bumps logo version.

Why:

* MaxCDN cached the previous one permanently based on URL.
  So we need to change URL to point it to the new one.

8 years agoAdds a new, simpler droplet in our logo.
Jakub Pawlowicz [Fri, 15 Jul 2016 17:49:58 +0000 (19:49 +0200)]
Adds a new, simpler droplet in our logo.

8 years agoAligns all shapes in logo.
Jakub Pawlowicz [Tue, 12 Jul 2016 15:30:38 +0000 (17:30 +0200)]
Aligns all shapes in logo.

8 years agoReimports logo.svg via Sketch.
Jakub Pawlowicz [Tue, 12 Jul 2016 15:17:24 +0000 (17:17 +0200)]
Reimports logo.svg via Sketch.

Why:

* It's a SVG editor of choice;
* it will be easier to manage any future changes.

8 years agoRemoves invisible "drop" from logo SVG file.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:54:32 +0000 (15:54 +0200)]
Removes invisible "drop" from logo SVG file.

8 years agoRemoves empty `<g>` nodes from logo SVG file.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:46:23 +0000 (15:46 +0200)]
Removes empty `<g>` nodes from logo SVG file.

8 years agoCleans up Readme markup.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:43:04 +0000 (15:43 +0200)]
Cleans up Readme markup.

8 years agoPoints Readme logo to canonical repository.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:41:45 +0000 (15:41 +0200)]
Points Readme logo to canonical repository.