CLEANCSS(1)

NAME
cleancss - cleancss - fast and efficient CSS optimizer

SYNOPSIS
cleancss [options] <source-file ...>

OPTIONS

-v, --version
    output the version number

-c, --compatibility [ie7|ie8]
    Force compatibility mode (see Readme for advanced examples)

-d, --debug
    Shows debug information (minification time & compression efficiency)

-f, --format <options>
    Controls output formatting, see examples below

-o, --output [output-file]
    Use [output-file] as output instead of STDOUT

-O <n> [optimizations]
    Turn on level <n> optimizations; optionally accepts a list of fine-grained options, defaults to `1`, see examples below

--inline [rules]
    Enables inlining for listed sources (defaults to `local`)

--inline-timeout [seconds]
    Per connection timeout when fetching remote stylesheets (defaults to 5 seconds)

--remove-inlined-files
    Remove files inlined in <source-file ...> or via `@import` statements

--skip-rebase
    Disable URLs rebasing

--source-map
    Enables building input's source map

--source-map-inline-sources
    Enables inlining sources inside source maps

--input-source-map [file]
    Specifies the path of the input source map file

-h, --help
    output usage information

Examples:

%> cleancss one.css

%> cleancss -o one-min.css one.css

%> cleancss -o merged-and-minified.css one.css two.css three.css

%> cleancss one.css two.css three.css | gzip -9 -c > merged-minified-and-gzipped.css.gz

Formatting options:

%> cleancss --format beautify one.css

%> cleancss --format keep-breaks one.css

%> cleancss --format 'indentBy:1;indentWith:tab' one.css

%> cleancss --format 'breaks:afterBlockBegins=on;spaces:aroundSelectorRelation=on' one.css

%> # `breaks` controls where to insert breaks

%> #   `afterAtRule` controls if a line break comes after an at-rule; e.g. `@charset`; defaults to `off` (alias to `false`)

%> #   `afterBlockBegins` controls if a line break comes after a block begins; e.g. `@media`; defaults to `off`

%> #   `afterBlockEnds` controls if a line break comes after a block ends, defaults to `off`

%> #   `afterComment` controls if a line break comes after a comment; defaults to `off`

%> #   `afterProperty` controls if a line break comes after a property; defaults to `off`

%> #   `afterRuleBegins` controls if a line break comes after a rule begins; defaults to `off`

%> #   `afterRuleEnds` controls if a line break comes after a rule ends; defaults to `off`

%> #   `beforeBlockEnds` controls if a line break comes before a block ends; defaults to `off`

%> #   `betweenSelectors` controls if a line break comes between selectors; defaults to `off`

%> # `indentBy` controls number of characters to indent with; defaults to `0`

%> # `indentWith` controls a character to indent with, can be `space` or `tab`; defaults to `space`

%> # `spaces` controls where to insert spaces

%> #   `aroundSelectorRelation` controls if spaces come around selector relations; e.g. `div > a`; defaults to `off`

%> #   `beforeBlockBegins` controls if a space comes before a block begins; e.g. `.block {`; defaults to `off`

%> #   `beforeValue` controls if a space comes before a value; e.g. `width: 1rem`; defaults to `off`

%> # `wrapAt` controls maximum line length; defaults to `off`

Level 0 optimizations:

%> cleancss -O0 one.css

Level 1 optimizations:

%> cleancss -O1 one.css

%> cleancss -O1 removeQuotes:off;roundingPrecision:4;specialComments:1 one.css

%> cleancss -O1 all:off;specialComments:1 one.css

%> # `cleanupCharsets` controls `@charset` moving to the front of a stylesheet; defaults to `on`

%> # `normalizeUrls` controls URL normalzation; default to `on`

%> # `optimizeBackground` controls `background` property optimizatons; defaults to `on`

%> # `optimizeBorderRadius` controls `border-radius` property optimizatons; defaults to `on`

%> # `optimizeFilter` controls `filter` property optimizatons; defaults to `on`

%> # `optimizeFontWeight` controls `font-weight` property optimizatons; defaults to `on`

%> # `optimizeOutline` controls `outline` property optimizatons; defaults to `on`

%> # `removeEmpty` controls removing empty rules and nested blocks; defaults to `on` (since 4.1.0)

%> # `removeNegativePaddings` controls removing negative paddings; defaults to `on`

%> # `removeQuotes` controls removing quotes when unnecessary; defaults to `on`

%> # `removeWhitespace` controls removing unused whitespace; defaults to `on`

%> # `replaceMultipleZeros` contols removing redundant zeros; defaults to `on`

%> # `replaceTimeUnits` controls replacing time units with shorter values; defaults to `on

%> # `replaceZeroUnits` controls replacing zero values with units; defaults to `on`

%> # `roundingPrecision` rounds pixel values to `N` decimal places; `off` disables rounding; defaults to `off`

%> # `selectorsSortingMethod` denotes selector sorting method; can be `natural` or `standard`; defaults to `standard`

%> # `specialComments` denotes a number of /*! ... */ comments preserved; defaults to `all`

%> # `tidyAtRules` controls at-rules (e.g. `@charset`, `@import`) optimizing; defaults to `on`

%> # `tidyBlockScopes` controls block scopes (e.g. `@media`) optimizing; defaults to `on`

%> # `tidySelectors` controls selectors optimizing; defaults to `on`

Level 2 optimizations:

%> cleancss -O2 one.css

%> cleancss -O2 mergeMedia:off;restructureRules:off;mergeSemantically:on;mergeIntoShorthands:off one.css

%> cleancss -O2 all:off;removeDuplicateRules:on one.css

%> # `mergeAdjacentRules` controls adjacent rules merging; defaults to `on`

%> # `mergeIntoShorthands` controls merging properties into shorthands; defaults to `on`

%> # `mergeMedia` controls `@media` merging; defaults to `on`

%> # `mergeNonAdjacentRules` controls non-adjacent rule merging; defaults to `on`

%> # `mergeSemantically` controls semantic merging; defaults to `off`

%> # `overrideProperties` controls property overriding based on understandability; defaults to `on`

%> # `reduceNonAdjacentRules` controls non-adjacent rule reducing; defaults to `on`

%> # `removeDuplicateFontRules` controls duplicate `@font-face` removing; defaults to `on`

%> # `removeDuplicateMediaBlocks` controls duplicate `@media` removing; defaults to `on`

%> # `removeDuplicateRules` controls duplicate rules removing; defaults to `on`

%> # `removeEmpty` controls removing empty rules and nested blocks; defaults to `on` (since 4.1.0)

%> # `removeUnusedAtRules` controls unused at rule removing; defaults to `off` (since 4.1.0)

%> # `restructureRules` controls rule restructuring; defaults to `off`

%> # `skipProperties` controls which properties won't be optimized, defaults to empty list which means all will be optimized (since 4.1.0)