Make your CSS so fresh, so clean.
RefreshCSS
is a Python library that removes unused classes, ids, and element selectors from CSS.
pip install refreshcss
- Python library to integrate in other Python projects
- Can be used as a filter with
django-compressor
as part of minifying CSS
Add "refreshcss.filters.RefreshCSSFilter"
to COMPRESS_FILTERS
in the Django settings file.
COMPRESS_FILTERS = {
"css": [
"refreshcss.filters.RefreshCSSFilter",
...
],
"js": [...],
}
- Catalogue classes, ids, and elements that are currently being used in found HTML templates
- Catalogue classes, ids, and elements in a CSS stylesheet
- Return new CSS stylesheet that only contains rules that are actively being used by the HTML
I wanted to have a filter for django-compressor
that would purge unused CSS as part of the compress
step when deploying for coltrane
apps. After dealing with a manual process and attempting to integrate https://purgecss.com and https://github.com/uncss/uncss I thought "this couldn't be that hard to do in Python".
Which is always the thought at the beginning of every side project... and is never accurate.
RefreshCSS
only inspects HTML, so if CSS classes are being changed client-side then it will not know about it.
Currently no, although that is a possibility in the future.
Yes! That was a primary reason I built my own solution. 😅 Jinja might also be possible to support with some small tweaks, although it is untested.
Maybe. 🤷
Thanks for trying RefreshCSS
out! Please make a PR (pull request) with a small test that replicates the bug or, if that is not possible, create a new discussion.
- treeshake: I unfortunately could not get this to work on my local environment
- cssutils: This unfortunately seemed to choke on more modern CSS (when I tested on Bulma 1.0)
- css-optomizer
This project is supported by GitHub Sponsors and Digital Ocean.