IgniterCss.CSS.CssProcessor (igniter_css v0.1.0)

View Source

A module that provides higher-level CSS processing functionality by leveraging the CSS.Parser module.

Summary

Functions

Applies browser compatibility fixes to CSS.

Extracts critical CSS by identifying and extracting all styles needed for above-the-fold content.

Merges multiple CSS files into one optimized stylesheet.

Processes a CSS file for production by

Functions

apply_browser_compatibility(css_content)

Applies browser compatibility fixes to CSS.

Makes CSS work across browsers by:

  1. Adding vendor prefixes for properties that need them
  2. Adding standard fallbacks for newer CSS features
  3. Adding the .hide-scrollbar modifier as needed

Returns

The CSS with compatibility fixes applied

extract_critical_css(css_content, critical_selectors)

Extracts critical CSS by identifying and extracting all styles needed for above-the-fold content.

Parameters

  • css_content - The full CSS content as a string
  • critical_selectors - List of selectors considered critical for above-the-fold content

Returns

A tuple with {critical_css, non_critical_css}

merge_css_files(css_files, opts \\ [])

Merges multiple CSS files into one optimized stylesheet.

Parameters

  • css_files - Map of {filename, content} pairs
  • opts - Options (same as process_for_production)

Returns

The merged and optimized CSS

process_for_production(css_content, opts \\ [])

Processes a CSS file for production by:

  1. Adding vendor prefixes for browser compatibility
  2. Removing duplicate rules
  3. Sorting properties for better diff comparison
  4. Minifying the CSS

Parameters

  • css_content - The CSS content as a string
  • opts - Options for processing:
    • :minify - Whether to minify the output (default: true)
    • :add_prefixes - Whether to add vendor prefixes (default: true)
    • :sort - Whether to sort properties (default: true)
    • :remove_duplicates - Whether to remove duplicates (default: true)

Returns

The processed CSS as a string