bdkjones / CodeKit

CodeKit 3 Issue Tracker
https://codekitapp.com
82 stars 5 forks source link

Compass projects don't uncheck Libsass checkbox. #62

Closed jackw closed 8 years ago

jackw commented 8 years ago

Quick, short summary: Pulled in a CK2 project which CK3 correctly recognises as a Compass project but the 'Use the Libsass compiler (recommended)' checkbox is still checked. Compilation correctly uses Ruby Sass / Compass.

Expected results: The 'Use the Libsass compiler (recommended)' checkbox to be un-checked / disabled as Libsass isn't / can't be used.

Actual results: The 'Use the Libsass compiler (recommended)' checkbox remains checked even though Libsass isn't being used.

Exact steps to reproduce: Add a CK2 compass project to CK3.

Your configuration (any details about your system that you think might be relevant) OS X El Capitan 10.11.4, CK3 Beta 3

bdkjones commented 8 years ago

Fixed for Beta 4. The Libsass option will appear dimmed and unchecked for Compass projects.

Good catch, thanks.

iox commented 7 years ago

We have encountered a problem related to this change, after upgrading to Codekit 3:

As a workaround, we have gone back to using Codekit 2 for now. We know this is a corner case, but we are wondering, is there any way to force Codekit 3 to use libsass?

bdkjones commented 7 years ago

Unfortunately, no. This is the mother of all edge cases. The only way to do what you want is to remove the config.rb file from the project, remove the @import 'compass' statement from your stylesheet and then refresh the project so CodeKit does not see it as a Compass project. Libsass will then be available.

bdkjones commented 7 years ago

And Libsass flat-out is not compatible with Compass. That's one of the reasons Compass has been end-of-lifed. In CodeKit 2, even though the Libsass checkbox is available, your files are being compiled with Compass and the old Ruby Sass compiler. There's no difference between 2.x and 3.x in this regard.

iox commented 7 years ago

Thanks for the quick response.

In Codekit 2, I strongly believe we can activate the option to use libsass. After activating it, compiling is 10 times faster. I believe that compass is only incompatible with libsass if you use the compass specific functions.

Regarding the detection of compass, this is very interesting for us, as we could modify our project locally not to be autodetected as a compass project. Could you provide a bit more information about what checks does Codekit do to autodetect Compass? I have checked and we don't have any file called config.rb. We are using the following though, (which is compatible with libsass - https://github.com/sass/libsass/issues/82):

@import compass
@import "compass/reset"
@import "compass/css3"
bdkjones commented 7 years ago

The presence of compass in an @import statement will trigger CodeKit to treat the project as a Compass project. If you're not actually using Compass itself, you can just pull those stylesheets out of the Compass source, drop them into your project, and import them from there.

You could also likely drop the css3 sheet altogether and just tweak your Sass to use standard CSS3 instead of those ancient mixins. The world has come a long way.

iox commented 7 years ago

Thanks a lot, those are great tips ;)