History
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 CLIFixed 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.
1.0.4 / 2013-05-23
Rewrite relative URLs in imported stylesheets. By @bluej100.
1.0.3 / 2013-05-20
Support alternative
@import
syntax with file name not wrapped insideurl()
statement. By @bluej100.
1.0.2 / 2013-04-29
Fixed issue #97 -
--remove-empty
& FontAwesome.
1.0.1 / 2013-04-08
Do not pick up
bench
andtest
while buildingnpm
package. By @sindresorhus.
1.0.0 / 2013-03-30
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.
0.10.2 / 2013-03-19
Fixed issue #79 - node.js 0.10.x compatibility.
0.10.1 / 2013-02-14
Fixed issue #66 - line breaks without extra spaces should be handled correctly.
0.10.0 / 2013-02-09
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.
0.9.1 / 2012-12-19
Fixed issue #37 - converting
white
and other colors in class names (reported by @malgorithms).
0.9.0 / 2012-12-15
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
.
0.8.3 / 2012-11-29
Fixed HSL/HSLA colors processing.
0.8.2 / 2012-10-31
Fixed shortening hex colors and their relation to hashes in URLs.
Cleanup by @XhmikosR.
0.8.1 / 2012-10-28
Added better zeros processing for
rect(...)
syntax (clip property).
0.8.0 / 2012-10-21
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.
0.7.0 / 2012-10-14
Added stripping special comments to CLI (
--s0
and--s1
options).Added stripping special comments to programmatic interface (
keepSpecialComments
option).
0.6.0 / 2012-08-05
Full Windows support with tests (./test.bat).
0.5.0 / 2012-08-02
Made path to vows local.
Explicit node.js 0.6 requirement.
0.4.2 / 2012-06-28
Updated binary
-v
option (version).Updated binary to output help when no options given (but not in piped mode).
Added binary tests.
0.4.1 / 2012-06-10
Fixed stateless mode where calling
CleanCSS#process
directly was giving errors (reported by @facelessuser).
0.4.0 / 2012-06-04
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.
0.3.3 / 2012-05-27
Fixed tests, package.json for development, and regex for removing empty declarations (thanks to @vvo).
0.3.2 / 2012-01-17
Fixed output method under node.js 0.6 which incorrectly tried to close
process.stdout
.
0.3.1 / 2011-12-16
Fixed cleaning up
0 0 0 0
expressions.
0.3.0 / 2011-11-29
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).
0.2.6 / 2011-11-27
Fixed expanding
+
signs incalc()
when mixed up with adjacent+
selector.
0.2.5 / 2011-11-27
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.
0.2.4 / 2011-05-25
Fixed problem with expanding
none
to0
in partial/full background declarations.Fixed including clean-css library from binary (global to local).
0.2.3 / 2011-04-18
Fixed problem with optimizing IE filters.
0.2.2 / 2011-04-17
Fixed problem with space before color in
border
property.
0.2.1 / 2011-03-19
Added stripping space before
!important
keyword.Updated repository location and author information in package.json.
0.2.0 / 2011-03-02
Added options parsing via optimist.
Changed code inclusion (thus the version bump).
0.1.0 / 2011-02-27
First version of clean-css library.
Implemented all basic CSS transformations.
Last updated