python-lightningcss offers PyO3 bindings to the lightningcss library. Presently only a subset of functionality is exposed, intended for integration into a Python-centric web application rather than a JavaScript-based workflow. If the latter is needed, consider using the official npm lightningcss module, parcel, or webpack instead.
python-lightningcss includes wheels which can be installed for most platforms using pip:
$ pip install lightningcss
Alternatively, python-lightningcss may be installed directly from source:
$ pip install git+https://github.com/pydsigner/python-lightningcss
This will require that the Rust toolchain be installed.
importlightningcssparser_flags=lightningcss.calc_parser_flags(nesting=True)
input_css=""".navbar { margin: 0; a { padding-left: 0; padding-right: 0; padding-top: 5px; padding-bottom: 5px; }}"""output_css=lightningcss.process_stylesheet(
input_css,
filename="abc.css",
parser_flags=parser_flags,
browsers_list= ['defaults'],
minify=True,
)The filename keyword parameter is only used for displaying error messages from
the parser. When using browsers_list, lightningcss will try to transpile the
code to be compatible with the specified
browserslist target.
This package also supports creating a CSS bundle where all @import rules are
resolved into a single stylesheet:
bundled_css=lightningcss.bundle_css(
"main.css",
browsers_list= ["defaults"],
minify=False,
)All resources referenced via @import are resolved relative to the main file.