---
name: "cleancss"
section: "1"
platform: "linux"
package: "cleancss"
version: "5.3.3+~5.6.3-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cleancss"
---

# cleancss(1)

cleancss - fast and efficient CSS optimizer

## 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)
