pintariching/railwind

[feature request] `--minify` option

Opened this issue · 8 comments

Add --minify option to railwind_css.

Tailwind CSS provides the following features
Optimizing for Production

Yeah that should be added also.

Does this option just remove spaces and newlines, or what does it actually do?

Does this option just remove spaces and newlines

I think you're right about the basics!

Tailwind Play merges media queries.

minify

It would save even more space, but I don't know if it should be handled in this Issue.
Would this merge be better managed in another Issue?

I think this should be doable with the current implementation. First you need to iterate and group all the classes based on the railwind::modifiers::State. Then a new function needs to be added into railwind::class::ParsedClass that only generates the class selector without the state and wrap the resulting string in the state.

Also at the end, all the spaces and newlines should be stripped resulting in the minified string.

Hello,

First of all thanks for this awesome project!

One solution for the minification might be to use https://docs.rs/lightningcss/1.0.0-alpha.39/lightningcss

I will try to make a PR based on the information you provided!
That minify library may be heavy with many dependencies, so I will first try to see if Regex can handle it.

I don't think you need regex for this. You could use .replace(" ", "") to remove spaces and newlines. However I'm not sure what's faster, this or using regex.

Since there are CSS commentouts in preflight.css, I was doubt if I need to remove the commentouts in my minify process.
Would it be simpler to have a preflight.css that does not include the comments?

Tailwind Play keeps these comments in so I think we should too and only remove then when minifying. In this case, you're right about using Regex to remove them.