Skip to content

Repository files navigation

PyPI - Project VersionPyPI - Python VersionGitHub - Project License

python-lightningcss

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.

Installation

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.

Usage

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.

About

Opinionated Python bindings for lightningcss

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages