@gafreax/csscrunch
v1.2.12
Published
Simple CSS Parser to tokenize CSS, merge rules, and optimize it
Readme
CSS Crunch
This package provides a powerful and efficient TypeScript library for optimizing CSS strings. It enables developers to easily compress css JavaScript projects.
The great focus is on keeping a great compatibility across all kind of render engine especially on the various Outlook.
Features
- Group rules: Group same rules with one selector.
- Compress: Compress the size by removing not necessary char.
- Merge selector: Merge same selector into only one.
- Media Query: Move all media queries at the bottom.
Installation
npm install @gafreax/csscrunchUsage
// ESM
import csscrunch from '@gafreax/csscrunch'
const { default: compile } = csscrunch
const cssString = '.example { color: red; font-size: 16px; }';
const parsedCSS = compile(cssString);
// CommonJS
const csscrunch = require('@gafreax/csscrunch')
const { default: compile } = csscrunch
const cssString = '.example { color: red; font-size: 16px; }';
const parsedCSS = compile(cssString);
Optimization
To enable the optimization pass a Optimizations object (file: src/lib/optimization.d.ts) to the instance:
interface Optimizations {
paddingShortHand?: boolean
marginShortHand?: boolean
removeZeroUnits?: boolean
}CLI Usage
Quickly clean up your Css:
To optimize your CSS file, simply run the following command in your terminal:
$ npm start -- compile input.css optimized.cssOr via npx
$ npx @gafreax/csscrunch compile input.css optimized.cssOr via global install
$ npm install -g @gafreaxa/csscrunch
$ csscrunch compile input.css optimized.cssYou can also use the flags:
--optimize-short-hand to optimize padding and margin short hand
--optimize-margin to optimize margin short hand
--optimize-padding to optimize padding short hand
--remove-zero-units to remove zero units
--optimize-all to enable all optimizations
Example:
$ npx @gafreax/csscrunch compile --optimize-all input.css optimized.cssBenchmark
This project includes two types of benchmarks.
Vitest Benchmarks
To run the standard suite of benchmarks, use the following command:
pnpm run test:benchPerformance Comparison vs. clean-css
A dedicated script is available to compare the performance of csscrunch against clean-css. To run it, use the following command:
ts-node benchmark/comparison.tsContribution
We welcome contributions to this open-source project. If you encounter issues or have suggestions for improvement, please feel free to create GitHub issues or submit pull requests.
