console.warn
any messages when using deprecated
options; these are now sent to PostCSS. You will be able to see them if you
use a PostCSS runner with built-in messages support, or alternately by
loading postcss-reporter
or postcss-browser-reporter
in your plugins list.grid
identifier reduction by adding it to the list
of optimisations turned off when options.safe
is set to true
.unicode-range
descriptors. Values will
be converted when the code matches 0
& f
in the same place on both sides
of the range. So, u+2000-2fff
can be converted to u+2???
, but
u+2100-2fff
will be left as it is.v3.9.0
, where undefined
values
would attempt to be parsed.display: list-item inline flow
would be normalized
to inline list-item
rather than inline-list-item
(thanks to @mattbasta).display
property. For
example block flow
can be simplified to block
.safe
flag was not being persisted across
multiple files (thanks to @techmatt101).hasOwnProperty
instead of using an array of object keys.indexes-of
dependency.2.0.0
as a fix has landed in the new
version of uniqid.2.0.0
in order to
mitigate an issue with uniqid 3.0.0
.stripWWW
option.background-repeat
definitions; works with both this property
& the background
shorthand, and aims to compress the extended two value
syntax into the single value syntax.initial
values for properties when the actual initial value
is shorter; for example, min-width: initial
becomes min-width: 0
.steps(1)
.steps
functions with a
single argument.postcss-discard-overridden
to safely discard overridden rules with
the same identifier (thanks to @Justineo).cubic-bezier
functions that are equivalent to the timing keywords and compresses, as well
as normalizing the steps
timing function.perspective-origin
property to the list of supported properties
transformed by the reduce-positions
transform.background-position
were being incorrectly converted.background-position
values in the background
shorthand property.background-position
and the background
shorthand.core
module, now performs less AST passes.options.safe
threw an error when cssnano was
not used as part of a PostCSS instance, but standalone (such as in modules
like gulp-cssnano). cssnano now renames safe
internally to isSafe
.2.1.2
, as the 2.1.3
& 2.1.4
patches had
optimization regressions that are now resolved in 2.1.5
.translate3d(0, 0, 0)
becomes translateZ(0)
.outline: none
to outline: 0
, as there are
some cases where the values are not equivalent (thanks to @TrySound).16px
to 1pc
by default. Length
optimisations can be turned on via {convertValues: {length: true}}
.add
option to true
to prepend a UTF-8
charset to the output automatically (thanks to @TrySound).safe
option was added, which disables more aggressive optimisations, as
a convenient preset configuration (thanks to @TrySound).deg
to turn
& vice versa, & improved
minification performance in functions (thanks to @TrySound).process
method has the same signature as a PostCSS processor instance.merge
& fonts
that were deprecated in
release 2.5.0
were removed. The new architecture allows you to specify any
module name to disable it.inherit
keyword.functionOptimiser
.merge
& fonts
) will be removed in 3.0
.::before
to :before
; this release removes the dedicated
postcss-pseudoelements module.postcss-font-family
to be disabled.postcss([ cssnano ])
.ch
units; previously they were removed.postcss-plugin
keyword to package.json.cssnano.process(css, opts)
instead of cssnano(css, opts)
.background:none
to background:0 0
.url()
functions.@keyframes
and @counter-style
at-rules.remove
option (thanks to @dmitrykiselyov).removeAllButFirst
now operates on each CSS tree, rather than the
first one passed to cssnano.border:none
to border:0 0
.decl.before
from prior AST.@keyframes
and @counter-style
if they
have duplicated properties but are named differently.rem
,
trailing zeroes and slash/comma separated values
(thanks to @TrySound & @tunnckoCore).-webkit-tap-highlight-color
values were being
incorrectly transformed to transparent
. This is not supported in Safari.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.