- Fixed issue #1218 - double hyphen in at-rule breaks parsing.
- Fixed issue #1220 - adds optimization for nth-* rules.
- Adds customizable value optimizers for variables.
- Fixed issue #1159 - adds optimization for
nth-child
andnth-of-type
. - Fixed issue #1181 - CSS level 4 color functions with spaces.
- Fixed issue #1183 - fraction optimizer breaks
image-set
. - Fixed issue #1208 - handling generic family names.
- Fixed issue #1210 - handling
file://
protocol.
- Fixed issue #1196 - correctly parse variables & comments mix.
- Fixed issue #1185 - keeping comments inside variables.
- Fixed issue #1194 - unexpected end of JSON input when source map is empty.
- Fixed an unsafe data URI regex, which, when clean-css is used as a service, could be used in a DOS attack.
- Fixed issue #1186 - bad error handling in batch mode with promises.
- Fixed issue #1180 - properly handle empty variable values.
- Fixed issue #1178 - fixes lack of space removal in variable blocks.
- Fixed issue #1177 - fix to missing local imports when only remote ones allowed.
- Fixed issue #1160 - keep zero units when inside multiple functions.
- Fixed issue #1161 - extra whitespace in URLs.
- Fixed issue #1166 - incorrect compoment splitting when empty multiplex part.
- Fixed issue #996 - space removed from pseudo classes.
- Fixed issue #1156 - invalid hsl/hsla validation in level 2 optimizations.
- Fixes stripping '%' from inside color functions.
- Improves tokenization speed by ~30%.
- Fixed issue #1143 - some missing level 1 value optimizations.
- Fixed issue #1139 - overriding & merging properties without
canOverride
set.
- Adds a way process input files without bundling it into one big output file.
- Adds level 1 and level 2 optimization plugins.
- Disables URL rebasing by default.
- Disables URL unquoting by default.
- Drops support for Node.js 6 & 8 to support last 3 Node.js releases: 10, 12, and 14.
- Fixed issue #889 - whitelisted level 1 optimizations.
- Fixed issue #975 - incorrect block name optimization.
- Fixed issue #1009 - whitespace around comments.
- Fixed issue #1021 - allow one- and two-letter property names.
- Fixed issue #1022 - merging into shorthands new property positioning.
- Fixed issue #1032 - wrong order of merged shorthands with inherit.
- Fixed issue #1043 -
calc
fallback removed within other function. - Fixed issue #1045 - non-standard protocol-less URL first slash removed.
- Fixed issue #1050 - correctly keeps default animation duration if delay is also set.
- Fixed issue #1053 - treats
calc()
as first class width value. - Fixed issue #1055 - supports 4- and 8-character hex with alpha color notation.
- Fixed issue #1057 - level 2 optimizations and quoted font family name.
- Fixed issue #1059 - animation time units as CSS expressions.
- Fixed issue #1060 - variable removed when shorthand's only value.
- Fixed issue #1062 - wrong optimization of CSS pseudo-classes with selector list.
- Fixed issue #1073 - adds support for non-standard
rpx
units. - Fixed issue #1075 - media merging and variables.
- Fixed issue #1087 - allow units with any case.
- Fixed issue #1088 - building source maps with source preserved via comments.
- Fixed issue #1090 - edge case in merging for
border
andborder-image
. - Fixed issue #1103 - don't allow merging longhand into
unset
shorthand. - Fixed issue #1115 - incorrect multiplex longhand into shorthand merging.
- Fixed issue #1117 - don't change zero values inside
min
,max
, andclamp
functions. - Fixed issue #1122 - don't wrap data URI in single quotes.
- Fixed issue #1125 - quotes stripped from withing
@supports
clause. - Fixed issue #1128 - take variables into account when reordering properties.
- Fixed issue #1132 - vendor-prefixed classes inside
:not()
. - Reworks all level 1 optimizations to conform to plugin style.
- 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
@import
s referenced from local ones.
- Fixed issue #957 -
0%
minification ofwidth
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 toinline: '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 understats
property. - Removes
debug
API switch as stats are always gathered and available understats
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 withbackground
shorthand. - Simplifies URL rebasing with a single
rebaseTo
option in API or inferred from--output
in CLI. - Splits
inliner
option intoinlineRequest
andinlineTimeout
. - 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 #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 #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
import
s. - 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 #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 #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 toprocess.cwd()
. - Fixed issue #371 -
background
fallback withnone
. - 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.
- 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 -
@import
s order in restructuring. - Fixes issue #478 - ultimate fix to brace whitespace.
- 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
to0
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
@import
s 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 #452 - regression in advanced merging.
- 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 intoadvanced
. - Renames
noAggressiveMerging
option intoaggressiveMerging
. - Renames
noRebase
option intorebase
. - 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 overridingpx
. - 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.
- 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
totransparent
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 inEmptyRemoval
.
- 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
@import
s. - 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
@import
s. - Fixed issue #213 - faster
rgb
tohex
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
toborder: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
import
s.
- 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
@import
s 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
@import
s 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 vianpm 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 -
@import
s 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 tobenchmark
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.
- Rewrite relative URLs in imported stylesheets. By @bluej100.
- Support alternative
@import
syntax with file name not wrapped insideurl()
statement. By @bluej100.
- Fixed issue #97 -
--remove-empty
& FontAwesome.
- Do not pick up
bench
andtest
while buildingnpm
package. By @sindresorhus.
- 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.
- Fixed issue #79 - node.js 0.10.x compatibility.
- Fixed issue #66 - line breaks without extra spaces should be handled correctly.
- 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 usingkeepLineBreaks
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.
- Fixed issue #37 - converting
white
and other colors in class names (reported by @malgorithms).
- Added stripping quotation from font names (if possible).
- Added stripping quotation from
@keyframes
declaration,animation
andanimation-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
andfont: bold
shortening the same way asfont-weight
is. - Refactored shorthand selectors and added
border-radius
,border-style
andborder-color
shortening. - Added
margin
,padding
andborder-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
.
- Fixed HSL/HSLA colors processing.
- Fixed shortening hex colors and their relation to hashes in URLs.
- Cleanup by @XhmikosR.
- Added better zeros processing for
rect(...)
syntax (clip property).
- 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.
- Added stripping special comments to CLI (
--s0
and--s1
options). - Added stripping special comments to programmatic interface
(
keepSpecialComments
option).
- Full Windows support with tests (./test.bat).
- Made path to vows local.
- Explicit node.js 0.6 requirement.
- Updated binary
-v
option (version). - Updated binary to output help when no options given (but not in piped mode).
- Added binary tests.
- Fixed stateless mode where calling
CleanCSS#process
directly was giving errors (reported by @facelessuser).
- 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.
- Fixed tests, package.json for development, and regex for removing empty declarations (thanks to @vvo).
- Fixed output method under node.js 0.6 which incorrectly tried to close
process.stdout
.
- Fixed cleaning up
0 0 0 0
expressions.
- 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).
- Fixed expanding
+
signs incalc()
when mixed up with adjacent+
selector.
- Fixed issue with cleaning up spaces inside
calc
/-moz-calc
declarations (thanks to @cvan for reporting it). - Fixed converting
#f00
tored
in borders and gradients.
- Fixed problem with expanding
none
to0
in partial/full background declarations. - Fixed including clean-css library from binary (global to local).
- Fixed problem with optimizing IE filters.
- Fixed problem with space before color in
border
property.
- Added stripping space before
!important
keyword. - Updated repository location and author information in package.json.
- Added options parsing via optimist.
- Changed code inclusion (thus the version bump).
- First version of clean-css library.
- Implemented all basic CSS transformations.