UNPKG

@winglet/style-utils

Version:

Comprehensive CSS and style management utilities including className manipulation, CSS compression, and universal style manager for TypeScript projects

44 lines (43 loc) 1.76 kB
/** * Compresses CSS by removing unnecessary whitespace, comments, and redundant semicolons. * Uses byte-level processing for optimal performance while preserving CSS functionality. * Prioritizes speed over perfect compression - some trailing spaces may remain. * * @param css - The CSS string to compress * @returns A compressed CSS string with minimal whitespace and no comments * * @note This function prioritizes performance over perfect compression. * Some trailing spaces may remain in certain contexts (e.g., media queries) * to avoid expensive post-processing operations. * * @example * ```typescript * Basic CSS compression: * compressCss('.class { color: red; background: blue; }') * // Returns: '.class{color:red;background:blue}' * * Comment removal: * compressCss('.class { color: red; /* inline comment *\/ background: blue; }') * // Returns: '.class{color:red;background:blue}' * * Multiple whitespace handling: * compressCss('.class1 { color : red ; margin : 10px 20px ; }') * // Returns: '.class1{color:red;margin:10px 20px}' * * CSS selectors with combinators: * compressCss('.class1 .class2 > .class3 { color: red; }') * // Returns: '.class1 .class2>.class3{color:red}' * * Media queries (may have trailing spaces for performance): * compressCss('@media (max-width: 768px) { .container { padding: 0 16px; } }') * // Returns: '@media (max-width:768px){.container{padding:0 16px }}' (note trailing space) * * Complex CSS with comments: * compressCss('.container { width: 100%; /* comment *\/ margin: 0 auto; }') * // Returns: '.container{width:100%;margin:0 auto}' * * Empty input: * compressCss('') // Returns: '' *``` */ export declare const compressCss: (css: string) => string;