TL;DR: I've uploaded new menu colors at http://erdani.com/d/, this time aiming for a more martian red ethos. Please let me know.

==================

So I was looking at the css today (original at http://paste.ofcode.org/fHGT24YASrWu3rnMYLdm4C taken from the zip at http://cssmenumaker.com/menu/modern-jquery-accordion-menu) and it was quite unwieldy to experiment with. For example, the same color appears hardcoded in a number of places; whenever changing one I'd need to change all, or miss some important instances (as it happened with my first experiment).

I'm sure experts must have tools for allowing things like variables and macros for css creation. Indeed there are a number of CSS editors that features things like variables, substitutions, and code generations, but most come at a cost and require quite some involvement.

So I slapped something much simpler together using... ddoc.

1. I aded this at the top of the original file:

Ddoc

and then this at the bottom:

Macros:

DDOC=$(BODY)
DDOC_COMMENT=/*$0*/
ESCAPES=/</</ />/>/ /&/&/

then saved the file as cssmenu.css.dd. Now I suddenly had a file compilable with ddoc, which produced itself (sans the heading and the macros). Here's the cmdline:

dmd -c -o- -Dfweb/css/cssmenu.css css/cssmenu.css.dd

It's a bit of a bummer that I need to define three unintuitive macros to get idempotent generation, but I guess that's that. We should document that somewhere.

2. Now the fun begins. Now with macros I could define things like variables and even functions, and change all by changing one. Cool! So I started looking for all colors in the document and converted them to macros.

After a short time I had http://paste.ofcode.org/3agBQ3t6C3UJsqMfRe4GeQL working. With that in hand, it was trivially easy to test different colors and see how they impact the look.

The result is as I mentioned at http://erdani.com/d. I trust you'll hate the colors but maybe not the hack.

So, may I add a pull request of this without anyone having an apoplexy attack? When we pass the site for styling we can pass the generated css.


Andrei

Reply via email to