While redesigning this blog I wanted to keep the "one color per post" concept I had in the previous version by changing (tweening) the logo's color accordingly to the article being viewed (or scrolled to). I rapidly realized I couldn't achieve this with just HTML+CS+JS and I didn't want to use Flash (mainly because of iOS devices but also to avoid loading a SWF file on every page).

I remembered hearing — a few months earlier — about Raphaël (a JS lib to render vector graphics). At that time I found the concept really interesting but couldn't see where to use it.

OK, so I know what I want to do, I know the tools I'll use, but how do we do that? Raphaël is cool, but its syntax looks a bit cryptic at first. It says it handles SVG, and — guess what — Illustrator can export to SVG. We're getting closer...

SVG is XML, but Raphaël doesn't eat XML, it eats a specific syntax meant to be compatible with SVG and VML. Hum... This is when I fire Flash Builder and start writing code. The goal: accept an SVG XML file as input and spit some "Raphaël-compatible script" out.

Boom (plus a little demo of an output).

I then simply had to export my Ai logo to SVG, open it in SVG2RaphaelJS, copy paste the output, and wire all that to the scroll/color tweening logic. Pretty easy.

Everything worked and looked nice on all browsers and OS's but I realized the sole idea of having a logo changing colors didn't work that well. For purely visual reasons. So I dropped it from my theme and rolled back to the black PNG version you can see right now.

The good thing is, the tool works pretty well (at least with Illustrator SVGs) and is OpenSource. Either use it or modify it, and tell me what you think. I did this in a hasty fashion and I probably won't use it a lot, so don't expect updates or bug fixes... But if you feel like improving it, please do so!