Why I Don't Use Compass Anymore

Left Compass behind a while ago for Libsass and Autoprefixer. However - some of the projects I contract with require it. I found that manually porting in the Compass mixins (Igosuki has compass-mixins built for bower and libsass ) allows me to seamlessly contribute to Compass projects without affecting my build process

Nice writeup. I felt the same way a while back and really didn’t see any usage for Compass after adding Autoprefixer into my workflow but recently brought it back since it’s core dependency for breakpoint and I also discovered it has some nice helpers for inlining images and fonts.

I couldn’t agree more. Whenever I’m working on a project that uses Compass I can’t help but think it isn’t even needed and definitely isn’t worth the extra compile times.

Like you said it’s incredibly useful for some people but I’m not one of them.

Oh forgot to mention. Compass contrast function is super rad. The one that you use to check if the background is dark or light and then set the text-color based on that is very useful. They also have a yiq color scheme, which is useful for when the previous function doesn’t function properly. I didn’t even know there was a yiq scheme but that was super useful when you design separately and hand over a styleguide to developers.

I’ve hated compass for ages. The mixins are so needlessly long!
The only reason I would use compass is for the auto-sprite but now that I’ve found Grunt Spritesmith I never have to use compass ever again! :smiley:

I agree with everything. I changed my whole scss boilerplate to a compass-free workflow, after all, I only used compass for prefixing anyway. I’m just very glad, that susy doesn’t depend on compass anymore since 2.0.

The one thing that keeps me using Compass and that isn’t mentioned in the article is plugins or extensions like Modular Scale.

Things like Susy and Breakpoint have moved away from Compass as a dependency, which is great. But there are still a few out there that require Compass, and even ones that can be used Sass only don’t always have all of the same features as the Compass version.

Modular scale is faster and can only use non-integer values with Compass, for example.

Same here, I stopped using Compass about a year ago.

My circumstances for why I stopped using Compass are a bit different and nowhere near as elaborate as yours Hugo :p.,

When I started learning Sass dealing with vendor prefixes was problematic. Enter Compass. And that’s basically the only reason I used it for. Nothing else.

I was compiling via the CMD so every time I wanted to use and advanced CSS3 property, I had to go hunt down the mixin in the Compass site, figure out where the mixin I needed was in the huge list of options and variations it has, then add it to the top of my main SCSS file and then call the mixin. For each and ever single advanced CSS3 property that needed prefixing.

Then I found Prepros and Koala App which allowed me to harness the power of Autoprefixer so all I needed to do was to write the CSS3 property as the spec said and be done, no worries about prefixing anymore.

Truth be told, I owe a lot of the little I know about Sass to Compass because although it was a lot of work implementing its mixins, it allow me to see and understand the power of Sass and question my own process and become a better professional.

Thanks for sharing Hugo.

I’m a little trapped in compass because of the awesome font mixin @include font-face() and
inline-font-files() to convert them to base64, do you know any replacemente for this?

Great article. I’ve been using Compass but will now look at removing it from our web app project. Thanks.

btw - saw a couple of typos in the article:

  • SVG Sprite Builder are legions > SVG Sprite Builders are legion
  • there are countless of sprite builders > there are countless sprite builders
  • plenty of over choices > plenty of other choices
  • whenever a new prefix bore or passed away > whenever a new prefix [?] passed away

Shameless self-promotion: Last week I published a gulp-plugin for polyfilling the compass image-helper functions: https://github.com/phlppschrr/gulp-compass-imagehelper

1 Like

@phlppschrr So why don’t you post it in the Showcase category and tell us a bit about it? :slight_smile:

1 Like

Hey Adrian – Thanks for catching these. I’ve edited the article and updated it. Let us know how you get on removing Compass! :slight_smile:

2 Likes

What’s about vertical rhythm?

Great article.

I’m trying to ditch Compass but I’m trapped with the image helpers, I find them really useful as I work with a lot of images in my projects, designers in my team seem to love background images, so I still use them. Any advice on a cool ruby-gem doing just the image helpers thing?

If you prefered Autoprefixer rather that Compass, maybe you should look at PostCSS. Autoprefixer is based on this CSS processor, like Compass is based on Sass. And PostCSS has many other great tools: https://github.com/postcss/postcss

I thought you’re going to recommend a new super all-in-one solution. But no, you’re now breaking your project’s dependencies into multiple tools instead of just one. Why would i do that?

And libsass is always behind compared to the original ruby-sass in terms of functionality. So that’s another no.

One of the key things for me is Compass’ typographic functions and mixins. Do you not find these useful to work with when establishing a vertical rhythm?

Although I could switch away from using Compass I haven’t really seen any negative side effects to using it in contrast to just plain Sass but lots of positives in terms of already having a pool of useful and well documented functions, mixins, and utilities. If you end up creating several of those yourself I don’t really see the advantage and it just means that others picking up the projects (including your future self) have less documentation and a less familiar base to pick up with.

After being literally forced to look for an alternative due to horrible performance as my projects got bigger, WOW, thank you for this suggestion. Cleaner code AND acceptable performance with autoprefixer. What the heck was I using Compass for? Goodbye forever.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.