Compass Magick

Dynamic image generation for Compass using ChunkyPNG/PhantomJS (no dependency on RMagick).


body {
  background: transparent magick-canvas(100px, 100px,
    magick-fill(magick-linear-gradient(red, green, blue))
  ) repeat-x;

A CSS3 Sassy Button recreated in Compass Magick: (showcases all features)


Installation is simple via RubyGems. Compass and ChunkyPNG are required.

gem install compass-magick

If you wish to use PhantomJS, please follow the build instructions.


To start a new Compass project with Magick included:

compass create -r magick my_project

To use Compass Magick within your existing projects, require the plugin from your Compass configuration:

require 'magick'

There is a short tutorial available which should guide you through creating a simple themeable button.


List of all available commands.

RDoc is also available for the entire project.

Similar Projects

compass-canvas is a Compass plugin that provides a drawing surface similar to the <canvas> element in JavaScript and Turtle graphics in other programming languages. It uses Cairo as a back-end to perform all graphics operations. The project supports anti-aliasing, vector graphics, gradients, masks, clipping, complex operations like drop shadow and many more.


Compass Magick is very much a work in progress. Documentation is sparse, speed is a major issue and there are probably a lot of bugs.

You can help by looking at any of the following areas (ordered by priority):


  • Willem van Bergen for his great work on ChunkyPNG which has been a major source of knowledge while working on the project
  • Chris Eppstein for Compass itself
  • The Ruby community for being awesome and welcoming a stranger

Copyright (c) 2011 Stan Angeloff. See for details.